inl-ui 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/utils/config.ts","../../src/utils/className.ts","../../src/utils/installComponent.ts","../../src/utils/getSlots.ts","../../src/utils/index.ts","../../src/pageComponent/hooks/useVModel.ts","../../src/components/headerMenu/index.tsx","../../src/components/headerMenuItem/index.tsx","../../src/components/headerMenuTitle/index.tsx","../../src/components/videoPlayer/util/axios.ts","../../src/components/videoPlayer/util/byUuid.ts","../src/components/videoPlayer/util/ZLMRTCClient.js","../../src/components/videoPlayer/util/video.ts","../../src/components/videoPlayer/index.tsx","../../src/components/index.ts","../../src/pageComponent/views/systemManager/about.tsx","../../src/pageComponent/hooks/useTableList.ts","../../src/pageComponent/api/axios.ts","../../src/pageComponent/api/auth/userManager.ts","../../src/pageComponent/hooks/manage-module/useModalVisibleControl.ts","../../src/pageComponent/utils/base64.ts","../../src/pageComponent/utils/validation.ts","../../src/pageComponent/views/systemManager/authManager/userManager/userProfileDialog.tsx","../../src/pageComponent/utils/is.ts","../../src/pageComponent/components/SearchSelect.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/index.tsx","../../src/pageComponent/api/auth/roleManager.ts","../../src/pageComponent/utils/transform.ts","../../src/pageComponent/views/systemManager/authManager/RoleManager/updateRoleDialog.tsx","../../src/pageComponent/views/systemManager/authManager/RoleManager/index.tsx","../../src/pageComponent/hooks/useBus.ts","../../src/pageComponent/api/auth/menuManager.ts","../../src/pageComponent/hooks/useProxy.ts","../../src/pageComponent/utils/tree.ts","../../src/pageComponent/components/CommonTree.tsx","../../src/pageComponent/components/IconSelect.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/updateMenuDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/uploadJSONDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuSelectTree.tsx","../../src/pageComponent/components/DynamicIcon.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuDetail.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/index.tsx","../../src/pageComponent/api/org/postManager.ts","../../src/pageComponent/hooks/manage-module/useModalTitle.ts","../../src/pageComponent/hooks/manage-module/useModalForm.ts","../../src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/postManager/index.tsx","../../src/pageComponent/api/org/teamManager.ts","../../src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/teamManager/index.tsx","../../src/pageComponent/api/org/depManager.ts","../../src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/employeeTable.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/depTree.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/index.tsx","../../src/pageComponent/api/logManager.ts","../../src/pageComponent/views/systemManager/logManager.tsx","../../src/pageComponent/api/param.ts","../../src/pageComponent/components/ProFormItem.tsx","../../src/pageComponent/views/systemManager/paramManager/dynamicForm.tsx","../../src/pageComponent/views/systemManager/paramManager/collapseContainer.tsx","../../src/pageComponent/views/systemManager/paramManager/tabItem.tsx","../../src/pageComponent/views/systemManager/paramManager/index.tsx","../../src/pageComponent/components/EditPasswordForm.tsx","../../src/pageComponent/views/systemManager/personalSetting.tsx","../../src/pageComponent/index.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,"import axios from \"axios\";\n\nconst Events$1 = {\n WEBRTC_NOT_SUPPORT: \"WEBRTC_NOT_SUPPORT\",\n WEBRTC_ICE_CANDIDATE_ERROR: \"WEBRTC_ICE_CANDIDATE_ERROR\",\n WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED: \"WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED\",\n WEBRTC_ON_REMOTE_STREAMS: \"WEBRTC_ON_REMOTE_STREAMS\",\n WEBRTC_ON_LOCAL_STREAM: \"WEBRTC_ON_LOCAL_STREAM\",\n WEBRTC_ON_CONNECTION_STATE_CHANGE: \"WEBRTC_ON_CONNECTION_STATE_CHANGE\",\n CAPTURE_STREAM_FAILED: \"CAPTURE_STREAM_FAILED\",\n};\n\nconst VERSION = \"1.0.1\";\nconst BUILD_DATE = \"Tue Feb 08 2022 10:41:32 GMT+0800 (中国标准时间)\";\n\n// Copyright (C) <2018> Intel Corporation\n//\n// SPDX-License-Identifier: Apache-2.0\n// eslint-disable-next-line require-jsdoc\nfunction isFirefox() {\n return window.navigator.userAgent.match(\"Firefox\") !== null;\n} // eslint-disable-next-line require-jsdoc\n\nfunction isChrome() {\n return window.navigator.userAgent.match(\"Chrome\") !== null;\n} // eslint-disable-next-line require-jsdoc\n\nfunction isEdge() {\n return window.navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/) !== null;\n} // eslint-disable-next-line require-jsdoc\n\n// Copyright (C) <2018> Intel Corporation\n/**\n * @class AudioSourceInfo\n * @classDesc Source info about an audio track. Values: 'mic', 'screen-cast', 'file', 'mixed'.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst AudioSourceInfo = {\n MIC: \"mic\",\n SCREENCAST: \"screen-cast\",\n FILE: \"file\",\n MIXED: \"mixed\",\n};\n/**\n * @class VideoSourceInfo\n * @classDesc Source info about a video track. Values: 'camera', 'screen-cast', 'file', 'mixed'.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst VideoSourceInfo = {\n CAMERA: \"camera\",\n SCREENCAST: \"screen-cast\",\n FILE: \"file\",\n MIXED: \"mixed\",\n};\n/**\n * @class TrackKind\n * @classDesc Kind of a track. Values: 'audio' for audio track, 'video' for video track, 'av' for both audio and video tracks.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst TrackKind = {\n /**\n * Audio tracks.\n * @type string\n */\n AUDIO: \"audio\",\n\n /**\n * Video tracks.\n * @type string\n */\n VIDEO: \"video\",\n\n /**\n * Both audio and video tracks.\n * @type string\n */\n AUDIO_AND_VIDEO: \"av\",\n};\n/**\n * @class Resolution\n * @memberOf Owt.Base\n * @classDesc The Resolution defines the size of a rectangle.\n * @constructor\n * @param {number} width\n * @param {number} height\n */\n\nclass Resolution {\n // eslint-disable-next-line require-jsdoc\n constructor(width, height) {\n /**\n * @member {number} width\n * @instance\n * @memberof Owt.Base.Resolution\n */\n this.width = width;\n /**\n * @member {number} height\n * @instance\n * @memberof Owt.Base.Resolution\n */\n\n this.height = height;\n }\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nfunction extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nfunction wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [\n nativeEventName,\n wrappedCallback,\n ]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function (nativeEventName, cb) {\n if (\n nativeEventName !== eventNameToWrap ||\n !this._eventMap ||\n !this._eventMap[eventNameToWrap]\n ) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [\n nativeEventName,\n unwrappedCb,\n ]);\n };\n\n Object.defineProperty(proto, \"on\" + eventNameToWrap, {\n get() {\n return this[\"_on\" + eventNameToWrap];\n },\n set(cb) {\n if (this[\"_on\" + eventNameToWrap]) {\n this.removeEventListener(\n eventNameToWrap,\n this[\"_on\" + eventNameToWrap]\n );\n delete this[\"_on\" + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(\n eventNameToWrap,\n (this[\"_on\" + eventNameToWrap] = cb)\n );\n }\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nfunction disableLog(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\n );\n }\n logDisabled_ = bool;\n return bool ? \"adapter.js logging disabled\" : \"adapter.js logging enabled\";\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nfunction disableWarnings(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\n );\n }\n deprecationWarnings_ = !bool;\n return \"adapter.js deprecation warnings \" + (bool ? \"disabled\" : \"enabled\");\n}\n\nfunction log$1() {\n if (typeof window === \"object\") {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== \"undefined\" && typeof console.log === \"function\") {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nfunction deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(\n oldMethod + \" is deprecated, please use \" + newMethod + \" instead.\"\n );\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nfunction detectBrowser(window) {\n // Returned result object.\n const result = { browser: null, version: null };\n\n // Fail early if it's not a browser\n if (typeof window === \"undefined\" || !window.navigator) {\n result.browser = \"Not a browser.\";\n return result;\n }\n\n const { navigator } = window;\n\n if (navigator.mozGetUserMedia) {\n // Firefox.\n result.browser = \"firefox\";\n result.version = extractVersion(navigator.userAgent, /Firefox\\/(\\d+)\\./, 1);\n } else if (\n navigator.webkitGetUserMedia ||\n (window.isSecureContext === false &&\n window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)\n ) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = \"chrome\";\n result.version = extractVersion(\n navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./,\n 2\n );\n } else if (\n navigator.mediaDevices &&\n navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/)\n ) {\n // Edge.\n result.browser = \"edge\";\n result.version = extractVersion(\n navigator.userAgent,\n /Edge\\/(\\d+).(\\d+)$/,\n 2\n );\n } else if (\n window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)\n ) {\n // Safari.\n result.browser = \"safari\";\n result.version = extractVersion(\n navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./,\n 1\n );\n result.supportsUnifiedPlan =\n window.RTCRtpTransceiver &&\n \"currentDirection\" in window.RTCRtpTransceiver.prototype;\n } else {\n // Default fallthrough: not supported.\n result.browser = \"Not a supported browser.\";\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === \"[object Object]\";\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nfunction compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function (accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, { [key]: value });\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nfunction walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach((name) => {\n if (name.endsWith(\"Id\")) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith(\"Ids\")) {\n base[name].forEach((id) => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nfunction filterStats(result, track, outbound) {\n const streamStatsType = outbound ? \"outbound-rtp\" : \"inbound-rtp\";\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach((value) => {\n if (value.type === \"track\" && value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach((trackStat) => {\n result.forEach((stats) => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nconst logging = log$1;\n\nfunction shimGetUserMedia$3(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function (c) {\n if (typeof c !== \"object\" || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach((key) => {\n if (key === \"require\" || key === \"advanced\" || key === \"mediaSource\") {\n return;\n }\n const r = typeof c[key] === \"object\" ? c[key] : { ideal: c[key] };\n if (r.exact !== undefined && typeof r.exact === \"number\") {\n r.min = r.max = r.exact;\n }\n const oldname_ = function (prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return name === \"deviceId\" ? \"sourceId\" : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === \"number\") {\n oc[oldname_(\"min\", key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_(\"max\", key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_(\"\", key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== \"number\") {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(\"\", key)] = r.exact;\n } else {\n [\"min\", \"max\"].forEach((mix) => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function (constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === \"object\") {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, \"autoGainControl\", \"googAutoGainControl\");\n remap(constraints.audio, \"noiseSuppression\", \"googNoiseSuppression\");\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === \"object\") {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && (typeof face === \"object\" ? face : { ideal: face });\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if (\n face &&\n (face.exact === \"user\" ||\n face.exact === \"environment\" ||\n face.ideal === \"user\" ||\n face.ideal === \"environment\") &&\n !(\n navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies\n )\n ) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === \"environment\" || face.ideal === \"environment\") {\n matches = [\"back\", \"rear\"];\n } else if (face.exact === \"user\" || face.ideal === \"user\") {\n matches = [\"front\"];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices().then((devices) => {\n devices = devices.filter((d) => d.kind === \"videoinput\");\n let dev = devices.find((d) =>\n matches.some((match) => d.label.toLowerCase().includes(match))\n );\n if (!dev && devices.length && matches.includes(\"back\")) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact\n ? { exact: dev.deviceId }\n : { ideal: dev.deviceId };\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function (e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name:\n {\n PermissionDeniedError: \"NotAllowedError\",\n PermissionDismissedError: \"NotAllowedError\",\n InvalidStateError: \"NotAllowedError\",\n DevicesNotFoundError: \"NotFoundError\",\n ConstraintNotSatisfiedError: \"OverconstrainedError\",\n TrackStartError: \"NotReadableError\",\n MediaDeviceFailedDueToShutdown: \"NotAllowedError\",\n MediaDeviceKillSwitchOn: \"NotAllowedError\",\n TabCaptureError: \"AbortError\",\n ScreenCaptureError: \"AbortError\",\n DeviceCaptureError: \"AbortError\",\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && \": \") + this.message;\n },\n };\n };\n\n const getUserMedia_ = function (constraints, onSuccess, onError) {\n shimConstraints_(constraints, (c) => {\n navigator.webkitGetUserMedia(c, onSuccess, (e) => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (cs) {\n return shimConstraints_(cs, (c) =>\n origGetUserMedia(c).then(\n (stream) => {\n if (\n (c.audio && !stream.getAudioTracks().length) ||\n (c.video && !stream.getVideoTracks().length)\n ) {\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n throw new DOMException(\"\", \"NotFoundError\");\n }\n return stream;\n },\n (e) => Promise.reject(shimError_(e))\n )\n );\n };\n }\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nfunction shimGetDisplayMedia$2(window, getSourceId) {\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== \"function\") {\n console.error(\n \"shimGetDisplayMedia: getSourceId argument is not \" + \"a function\"\n );\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\n constraints\n ) {\n return getSourceId(constraints).then((sourceId) => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video && constraints.video.height;\n const frameRateSpecified =\n constraints.video && constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: \"desktop\",\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3,\n },\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nfunction shimOnTrack$1(window) {\n if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n !(\"ontrack\" in window.RTCPeerConnection.prototype)\n ) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"ontrack\", {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener(\"track\", this._ontrack);\n }\n this.addEventListener(\"track\", (this._ontrack = f));\n },\n enumerable: true,\n configurable: true,\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener(\"addtrack\", (te) => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(\n (r) => r.track && r.track.id === te.track.id\n );\n } else {\n receiver = { track: te.track };\n }\n\n const event = new Event(\"track\");\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = { receiver };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach((track) => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(\n (r) => r.track && r.track.id === track.id\n );\n } else {\n receiver = { track };\n }\n const event = new Event(\"track\");\n event.track = track;\n event.receiver = receiver;\n event.transceiver = { receiver };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener(\"addstream\", this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n if (!e.transceiver) {\n Object.defineProperty(e, \"transceiver\", {\n value: { receiver: e.receiver },\n });\n }\n return e;\n });\n }\n}\n\nfunction shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n !(\"getSenders\" in window.RTCPeerConnection.prototype) &&\n \"createDTMFSender\" in window.RTCPeerConnection.prototype\n ) {\n const shimSenderWithDtmf = function (pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === \"audio\") {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc,\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach((track) => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach((track) => {\n const sender = this._senders.find((s) => s.track === track);\n if (sender) {\n // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n \"getSenders\" in window.RTCPeerConnection.prototype &&\n \"createDTMFSender\" in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !(\"dtmf\" in window.RTCRtpSender.prototype)\n ) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === \"audio\") {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n });\n }\n}\n\nfunction shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === \"function\") {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (\n origGetStats.length === 0 &&\n (arguments.length === 0 || typeof selector !== \"function\")\n ) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function (response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach((report) => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type:\n {\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n }[report.type] || report.type,\n };\n report.names().forEach((name) => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function (stats) {\n return new Map(Object.keys(stats).map((key) => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function (response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_, selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function (response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n },\n reject,\n ]);\n }).then(onSucc, onErr);\n };\n}\n\nfunction shimSenderReceiverGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender &&\n window.RTCRtpReceiver\n )\n ) {\n return;\n }\n\n // shim sender stats.\n if (!(\"getStats\" in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then((result) =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n filterStats(result, sender.track, true)\n );\n };\n }\n\n // shim receiver stats.\n if (!(\"getStats\" in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach((receiver) => (receiver._pc = this));\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc\n .getStats()\n .then((result) => filterStats(result, receiver.track, false));\n };\n }\n\n if (\n !(\n \"getStats\" in window.RTCRtpSender.prototype &&\n \"getStats\" in window.RTCRtpReceiver.prototype\n )\n ) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (\n arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack\n ) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach((s) => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach((r) => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(\n new DOMException(\n \"There are more than one sender or receiver for the track.\",\n \"InvalidAccessError\"\n )\n );\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(\n new DOMException(\n \"There is no sender or receiver for the track.\",\n \"InvalidAccessError\"\n )\n );\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nfunction shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams).map(\n (streamId) => this._shimmedLocalStreams[streamId][0]\n );\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach((track) => {\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders().filter(\n (newSender) => existingSenders.indexOf(newSender) === -1\n );\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach((streamId) => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nfunction shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (\n window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65\n ) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams =\n window.RTCPeerConnection.prototype.getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map((stream) => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach((track) => {\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [this._streams[stream.id] || stream]);\n delete this._reverseStreams[\n this._streams[stream.id] ? this._streams[stream.id].id : stream.id\n ];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n if (this.signalingState === \"closed\") {\n throw new DOMException(\n \"The RTCPeerConnection's signalingState is 'closed'.\",\n \"InvalidStateError\"\n );\n }\n const streams = [].slice.call(arguments, 1);\n if (\n streams.length !== 1 ||\n !streams[0].getTracks().find((t) => t === track)\n ) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n \"The adapter.js addTrack polyfill only supports a single \" +\n \" stream which is associated with the specified track.\",\n \"NotSupportedError\"\n );\n }\n\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event(\"negotiationneeded\"));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find((s) => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, \"g\"), externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp,\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, \"g\"), internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp,\n });\n }\n [\"createOffer\", \"createAnswer\"].forEach(function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n const args = arguments;\n const isLegacyCall =\n arguments.length && typeof arguments[0] === \"function\";\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n },\n arguments[2],\n ]);\n }\n return nativeMethod\n .apply(this, arguments)\n .then((description) => replaceInternalStreamId(this, description));\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype,\n \"localDescription\"\n );\n Object.defineProperty(\n window.RTCPeerConnection.prototype,\n \"localDescription\",\n {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === \"\") {\n return description;\n }\n return replaceInternalStreamId(this, description);\n },\n }\n );\n\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n if (this.signalingState === \"closed\") {\n throw new DOMException(\n \"The RTCPeerConnection's signalingState is 'closed'.\",\n \"InvalidStateError\"\n );\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException(\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\n \"does not implement interface RTCRtpSender.\",\n \"TypeError\"\n );\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException(\n \"Sender was not created by this connection.\",\n \"InvalidAccessError\"\n );\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach((streamid) => {\n const hasTrack = this._streams[streamid]\n .getTracks()\n .find((track) => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event(\"negotiationneeded\"));\n }\n };\n}\n\nfunction shimPeerConnection$2(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\n function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (\n method === \"addIceCandidate\"\n ? window.RTCIceCandidate\n : window.RTCSessionDescription\n )(arguments[0]);\n return nativeMethod.apply(this, arguments);\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n }\n );\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nfunction fixNegotiationNeeded(window, browserDetails) {\n wrapPeerConnectionEvent(window, \"negotiationneeded\", (e) => {\n const pc = e.target;\n if (\n browserDetails.version < 72 ||\n (pc.getConfiguration && pc.getConfiguration().sdpSemantics === \"plan-b\")\n ) {\n if (pc.signalingState !== \"stable\") {\n return;\n }\n }\n return e;\n });\n}\n\nvar chromeShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimMediaStream: shimMediaStream,\n shimOnTrack: shimOnTrack$1,\n shimGetSendersWithDtmf: shimGetSendersWithDtmf,\n shimGetStats: shimGetStats,\n shimSenderReceiverGetStats: shimSenderReceiverGetStats,\n shimAddTrackRemoveTrackWithNative: shimAddTrackRemoveTrackWithNative,\n shimAddTrackRemoveTrack: shimAddTrackRemoveTrack,\n shimPeerConnection: shimPeerConnection$2,\n fixNegotiationNeeded: fixNegotiationNeeded,\n shimGetUserMedia: shimGetUserMedia$3,\n shimGetDisplayMedia: shimGetDisplayMedia$2,\n});\n\n/*\n * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers$1(iceServers, edgeVersion) {\n let hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter((server) => {\n if (server && (server.urls || server.url)) {\n let urls = server.urls || server.url;\n if (server.url && !server.urls) {\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\n }\n const isString = typeof urls === \"string\";\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter((url) => {\n // filter STUN unconditionally.\n if (url.indexOf(\"stun:\") === 0) {\n return false;\n }\n\n const validTurn =\n url.startsWith(\"turn\") &&\n !url.startsWith(\"turn:[\") &&\n url.includes(\"transport=udp\");\n if (validTurn && !hasTurn) {\n hasTurn = true;\n return true;\n }\n return validTurn && !hasTurn;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\nfunction createCommonjsModule(fn) {\n var module = { exports: {} };\n return fn(module, module.exports), module.exports;\n}\n\n/* eslint-env node */\n\nvar sdp = createCommonjsModule(function (module) {\n // SDP helpers.\n var SDPUtils = {};\n\n // Generate an alphanumeric identifier for cname or mids.\n // TODO: use UUIDs instead? https://gist.github.com/jed/982883\n SDPUtils.generateIdentifier = function () {\n return Math.random().toString(36).substr(2, 10);\n };\n\n // The RTCP CNAME used by all peerconnections from the same JS.\n SDPUtils.localCName = SDPUtils.generateIdentifier();\n\n // Splits SDP into lines, dealing with both CRLF and LF.\n SDPUtils.splitLines = function (blob) {\n return blob\n .trim()\n .split(\"\\n\")\n .map(function (line) {\n return line.trim();\n });\n };\n // Splits SDP into sessionpart and mediasections. Ensures CRLF.\n SDPUtils.splitSections = function (blob) {\n var parts = blob.split(\"\\nm=\");\n return parts.map(function (part, index) {\n return (index > 0 ? \"m=\" + part : part).trim() + \"\\r\\n\";\n });\n };\n\n // returns the session description.\n SDPUtils.getDescription = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n };\n\n // returns the individual media sections.\n SDPUtils.getMediaSections = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n };\n\n // Returns lines that start with a certain prefix.\n SDPUtils.matchPrefix = function (blob, prefix) {\n return SDPUtils.splitLines(blob).filter(function (line) {\n return line.indexOf(prefix) === 0;\n });\n };\n\n // Parses an ICE candidate line. Sample input:\n // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n // rport 55996\"\n SDPUtils.parseCandidate = function (line) {\n var parts;\n // Parse both variants.\n if (line.indexOf(\"a=candidate:\") === 0) {\n parts = line.substring(12).split(\" \");\n } else {\n parts = line.substring(10).split(\" \");\n }\n\n var candidate = {\n foundation: parts[0],\n component: parseInt(parts[1], 10),\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (var i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case \"raddr\":\n candidate.relatedAddress = parts[i + 1];\n break;\n case \"rport\":\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case \"tcptype\":\n candidate.tcpType = parts[i + 1];\n break;\n case \"ufrag\":\n candidate.ufrag = parts[i + 1]; // for backward compability.\n candidate.usernameFragment = parts[i + 1];\n break;\n default:\n // extension handling, in particular ufrag\n candidate[parts[i]] = parts[i + 1];\n break;\n }\n }\n return candidate;\n };\n\n // Translates a candidate object into SDP candidate attribute.\n SDPUtils.writeCandidate = function (candidate) {\n var sdp = [];\n sdp.push(candidate.foundation);\n sdp.push(candidate.component);\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n var type = candidate.type;\n sdp.push(\"typ\");\n sdp.push(type);\n if (type !== \"host\" && candidate.relatedAddress && candidate.relatedPort) {\n sdp.push(\"raddr\");\n sdp.push(candidate.relatedAddress);\n sdp.push(\"rport\");\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === \"tcp\") {\n sdp.push(\"tcptype\");\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push(\"ufrag\");\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return \"candidate:\" + sdp.join(\" \");\n };\n\n // Parses an ice-options line, returns an array of option tags.\n // a=ice-options:foo bar\n SDPUtils.parseIceOptions = function (line) {\n return line.substr(14).split(\" \");\n };\n\n // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n // a=rtpmap:111 opus/48000/2\n SDPUtils.parseRtpMap = function (line) {\n var parts = line.substr(9).split(\" \");\n var parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split(\"/\");\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n };\n\n // Generate an a=rtpmap line from RTCRtpCodecCapability or\n // RTCRtpCodecParameters.\n SDPUtils.writeRtpMap = function (codec) {\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n var channels = codec.channels || codec.numChannels || 1;\n return (\n \"a=rtpmap:\" +\n pt +\n \" \" +\n codec.name +\n \"/\" +\n codec.clockRate +\n (channels !== 1 ? \"/\" + channels : \"\") +\n \"\\r\\n\"\n );\n };\n\n // Parses an a=extmap line (headerextension from RFC 5285). Sample input:\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n // a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\n SDPUtils.parseExtmap = function (line) {\n var parts = line.substr(9).split(\" \");\n return {\n id: parseInt(parts[0], 10),\n direction:\n parts[0].indexOf(\"/\") > 0 ? parts[0].split(\"/\")[1] : \"sendrecv\",\n uri: parts[1],\n };\n };\n\n // Generates a=extmap line from RTCRtpHeaderExtensionParameters or\n // RTCRtpHeaderExtension.\n SDPUtils.writeExtmap = function (headerExtension) {\n return (\n \"a=extmap:\" +\n (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== \"sendrecv\"\n ? \"/\" + headerExtension.direction\n : \"\") +\n \" \" +\n headerExtension.uri +\n \"\\r\\n\"\n );\n };\n\n // Parses an ftmp line, returns dictionary. Sample input:\n // a=fmtp:96 vbr=on;cng=on\n // Also deals with vbr=on; cng=on\n SDPUtils.parseFmtp = function (line) {\n var parsed = {};\n var kv;\n var parts = line.substr(line.indexOf(\" \") + 1).split(\";\");\n for (var j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split(\"=\");\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n };\n\n // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeFmtp = function (codec) {\n var line = \"\";\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n var params = [];\n Object.keys(codec.parameters).forEach(function (param) {\n if (codec.parameters[param]) {\n params.push(param + \"=\" + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += \"a=fmtp:\" + pt + \" \" + params.join(\";\") + \"\\r\\n\";\n }\n return line;\n };\n\n // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n // a=rtcp-fb:98 nack rpsi\n SDPUtils.parseRtcpFb = function (line) {\n var parts = line.substr(line.indexOf(\" \") + 1).split(\" \");\n return {\n type: parts.shift(),\n parameter: parts.join(\" \"),\n };\n };\n // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeRtcpFb = function (codec) {\n var lines = \"\";\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(function (fb) {\n lines +=\n \"a=rtcp-fb:\" +\n pt +\n \" \" +\n fb.type +\n (fb.parameter && fb.parameter.length ? \" \" + fb.parameter : \"\") +\n \"\\r\\n\";\n });\n }\n return lines;\n };\n\n // Parses an RFC 5576 ssrc media attribute. Sample input:\n // a=ssrc:3735928559 cname:something\n SDPUtils.parseSsrcMedia = function (line) {\n var sp = line.indexOf(\" \");\n var parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n var colon = line.indexOf(\":\", sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n };\n\n SDPUtils.parseSsrcGroup = function (line) {\n var parts = line.substr(13).split(\" \");\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(function (ssrc) {\n return parseInt(ssrc, 10);\n }),\n };\n };\n\n // Extracts the MID (RFC 5888) from a media section.\n // returns the MID or undefined if no mid line was found.\n SDPUtils.getMid = function (mediaSection) {\n var mid = SDPUtils.matchPrefix(mediaSection, \"a=mid:\")[0];\n if (mid) {\n return mid.substr(6);\n }\n };\n\n SDPUtils.parseFingerprint = function (line) {\n var parts = line.substr(14).split(\" \");\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1],\n };\n };\n\n // Extracts DTLS parameters from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the fingerprint line as input. See also getIceParameters.\n SDPUtils.getDtlsParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(\n mediaSection + sessionpart,\n \"a=fingerprint:\"\n );\n // Note: a=setup line is ignored since we use the 'auto' role.\n // Note2: 'algorithm' is not case sensitive except in Edge.\n return {\n role: \"auto\",\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n };\n\n // Serializes DTLS parameters to SDP.\n SDPUtils.writeDtlsParameters = function (params, setupType) {\n var sdp = \"a=setup:\" + setupType + \"\\r\\n\";\n params.fingerprints.forEach(function (fp) {\n sdp += \"a=fingerprint:\" + fp.algorithm + \" \" + fp.value + \"\\r\\n\";\n });\n return sdp;\n };\n\n // Parses a=crypto lines into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\n SDPUtils.parseCryptoLine = function (line) {\n var parts = line.substr(9).split(\" \");\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n };\n\n SDPUtils.writeCryptoLine = function (parameters) {\n return (\n \"a=crypto:\" +\n parameters.tag +\n \" \" +\n parameters.cryptoSuite +\n \" \" +\n (typeof parameters.keyParams === \"object\"\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams\n ? \" \" + parameters.sessionParams.join(\" \")\n : \"\") +\n \"\\r\\n\"\n );\n };\n\n // Parses the crypto key parameters into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\n SDPUtils.parseCryptoKeyParams = function (keyParams) {\n if (keyParams.indexOf(\"inline:\") !== 0) {\n return null;\n }\n var parts = keyParams.substr(7).split(\"|\");\n return {\n keyMethod: \"inline\",\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(\":\")[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(\":\")[1] : undefined,\n };\n };\n\n SDPUtils.writeCryptoKeyParams = function (keyParams) {\n return (\n keyParams.keyMethod +\n \":\" +\n keyParams.keySalt +\n (keyParams.lifeTime ? \"|\" + keyParams.lifeTime : \"\") +\n (keyParams.mkiValue && keyParams.mkiLength\n ? \"|\" + keyParams.mkiValue + \":\" + keyParams.mkiLength\n : \"\")\n );\n };\n\n // Extracts all SDES paramters.\n SDPUtils.getCryptoParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=crypto:\");\n return lines.map(SDPUtils.parseCryptoLine);\n };\n\n // Parses ICE information from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the ice-ufrag and ice-pwd lines as input.\n SDPUtils.getIceParameters = function (mediaSection, sessionpart) {\n var ufrag = SDPUtils.matchPrefix(\n mediaSection + sessionpart,\n \"a=ice-ufrag:\"\n )[0];\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=ice-pwd:\")[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n };\n\n // Serializes ICE parameters to SDP.\n SDPUtils.writeIceParameters = function (params) {\n return (\n \"a=ice-ufrag:\" +\n params.usernameFragment +\n \"\\r\\n\" +\n \"a=ice-pwd:\" +\n params.password +\n \"\\r\\n\"\n );\n };\n\n // Parses the SDP media section and returns RTCRtpParameters.\n SDPUtils.parseRtpParameters = function (mediaSection) {\n var description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n for (var i = 3; i < mline.length; i++) {\n // find all codecs from mline[3..]\n var pt = mline[i];\n var rtpmapline = SDPUtils.matchPrefix(\n mediaSection,\n \"a=rtpmap:\" + pt + \" \"\n )[0];\n if (rtpmapline) {\n var codec = SDPUtils.parseRtpMap(rtpmapline);\n var fmtps = SDPUtils.matchPrefix(mediaSection, \"a=fmtp:\" + pt + \" \");\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection,\n \"a=rtcp-fb:\" + pt + \" \"\n ).map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case \"RED\":\n case \"ULPFEC\":\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, \"a=extmap:\").forEach(function (line) {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n };\n\n // Generates parts of the SDP media section describing the capabilities /\n // parameters.\n SDPUtils.writeRtpDescription = function (kind, caps) {\n var sdp = \"\";\n\n // Build the mline.\n sdp += \"m=\" + kind + \" \";\n sdp += caps.codecs.length > 0 ? \"9\" : \"0\"; // reject if no codecs.\n sdp += \" UDP/TLS/RTP/SAVPF \";\n sdp +=\n caps.codecs\n .map(function (codec) {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n })\n .join(\" \") + \"\\r\\n\";\n\n sdp += \"c=IN IP4 0.0.0.0\\r\\n\";\n sdp += \"a=rtcp:9 IN IP4 0.0.0.0\\r\\n\";\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(function (codec) {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n var maxptime = 0;\n caps.codecs.forEach(function (codec) {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += \"a=maxptime:\" + maxptime + \"\\r\\n\";\n }\n sdp += \"a=rtcp-mux\\r\\n\";\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(function (extension) {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n };\n\n // Parses the SDP media section and returns an array of\n // RTCRtpEncodingParameters.\n SDPUtils.parseRtpEncodingParameters = function (mediaSection) {\n var encodingParameters = [];\n var description = SDPUtils.parseRtpParameters(mediaSection);\n var hasRed = description.fecMechanisms.indexOf(\"RED\") !== -1;\n var hasUlpfec = description.fecMechanisms.indexOf(\"ULPFEC\") !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n var ssrcs = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (parts) {\n return parts.attribute === \"cname\";\n });\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n var secondarySsrc;\n\n var flows = SDPUtils.matchPrefix(mediaSection, \"a=ssrc-group:FID\").map(\n function (line) {\n var parts = line.substr(17).split(\" \");\n return parts.map(function (part) {\n return parseInt(part, 10);\n });\n }\n );\n if (\n flows.length > 0 &&\n flows[0].length > 1 &&\n flows[0][0] === primarySsrc\n ) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(function (codec) {\n if (codec.name.toUpperCase() === \"RTX\" && codec.parameters.apt) {\n var encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = { ssrc: secondarySsrc };\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? \"red+ulpfec\" : \"red\",\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n var bandwidth = SDPUtils.matchPrefix(mediaSection, \"b=\");\n if (bandwidth.length) {\n if (bandwidth[0].indexOf(\"b=TIAS:\") === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf(\"b=AS:\") === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth =\n parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95 - 50 * 40 * 8;\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(function (params) {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n };\n\n // parses http://draft.ortc.org/#rtcrtcpparameters*\n SDPUtils.parseRtcpParameters = function (mediaSection) {\n var rtcpParameters = {};\n\n // Gets the first SSRC. Note tha with RTX there might be multiple\n // SSRCs.\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (obj) {\n return obj.attribute === \"cname\";\n })[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n var rsize = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-rsize\");\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n var mux = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-mux\");\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n };\n\n // parses either a=msid: or a=ssrc:... msid lines and returns\n // the id of the MediaStream and MediaStreamTrack.\n SDPUtils.parseMsid = function (mediaSection) {\n var parts;\n var spec = SDPUtils.matchPrefix(mediaSection, \"a=msid:\");\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(\" \");\n return { stream: parts[0], track: parts[1] };\n }\n var planB = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (msidParts) {\n return msidParts.attribute === \"msid\";\n });\n if (planB.length > 0) {\n parts = planB[0].value.split(\" \");\n return { stream: parts[0], track: parts[1] };\n }\n };\n\n // SCTP\n // parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n // to draft-ietf-mmusic-sctp-sdp-05\n SDPUtils.parseSctpDescription = function (mediaSection) {\n var mline = SDPUtils.parseMLine(mediaSection);\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, \"a=max-message-size:\");\n var maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n var sctpPort = SDPUtils.matchPrefix(mediaSection, \"a=sctp-port:\");\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize: maxMessageSize,\n };\n }\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\");\n if (sctpMapLines.length > 0) {\n var parts = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\")[0]\n .substr(10)\n .split(\" \");\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize: maxMessageSize,\n };\n }\n };\n\n // SCTP\n // outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n // support by now receiving in this format, unless we originally parsed\n // as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n // protocol of DTLS/SCTP -- without UDP/ or TCP/)\n SDPUtils.writeSctpDescription = function (media, sctp) {\n var output = [];\n if (media.protocol !== \"DTLS/SCTP\") {\n output = [\n \"m=\" +\n media.kind +\n \" 9 \" +\n media.protocol +\n \" \" +\n sctp.protocol +\n \"\\r\\n\",\n \"c=IN IP4 0.0.0.0\\r\\n\",\n \"a=sctp-port:\" + sctp.port + \"\\r\\n\",\n ];\n } else {\n output = [\n \"m=\" + media.kind + \" 9 \" + media.protocol + \" \" + sctp.port + \"\\r\\n\",\n \"c=IN IP4 0.0.0.0\\r\\n\",\n \"a=sctpmap:\" + sctp.port + \" \" + sctp.protocol + \" 65535\\r\\n\",\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push(\"a=max-message-size:\" + sctp.maxMessageSize + \"\\r\\n\");\n }\n return output.join(\"\");\n };\n\n // Generate a session ID for SDP.\n // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n // recommends using a cryptographically random +ve 64-bit value\n // but right now this should be acceptable and within the right range\n SDPUtils.generateSessionId = function () {\n return Math.random().toString().substr(2, 21);\n };\n\n // Write boilder plate for start of SDP\n // sessId argument is optional - if not supplied it will\n // be generated randomly\n // sessVersion is optional and defaults to 2\n // sessUser is optional and defaults to 'thisisadapterortc'\n SDPUtils.writeSessionBoilerplate = function (sessId, sessVer, sessUser) {\n var sessionId;\n var version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n var user = sessUser || \"thisisadapterortc\";\n // FIXME: sess-id should be an NTP timestamp.\n return (\n \"v=0\\r\\n\" +\n \"o=\" +\n user +\n \" \" +\n sessionId +\n \" \" +\n version +\n \" IN IP4 127.0.0.1\\r\\n\" +\n \"s=-\\r\\n\" +\n \"t=0 0\\r\\n\"\n );\n };\n\n SDPUtils.writeMediaSection = function (transceiver, caps, type, stream) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters()\n );\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === \"offer\" ? \"actpass\" : \"active\"\n );\n\n sdp += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\n\n if (transceiver.direction) {\n sdp += \"a=\" + transceiver.direction + \"\\r\\n\";\n } else if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += \"a=sendrecv\\r\\n\";\n } else if (transceiver.rtpSender) {\n sdp += \"a=sendonly\\r\\n\";\n } else if (transceiver.rtpReceiver) {\n sdp += \"a=recvonly\\r\\n\";\n } else {\n sdp += \"a=inactive\\r\\n\";\n }\n\n if (transceiver.rtpSender) {\n // spec.\n var msid =\n \"msid:\" + stream.id + \" \" + transceiver.rtpSender.track.id + \"\\r\\n\";\n sdp += \"a=\" + msid;\n\n // for Chrome.\n sdp +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" \" +\n msid;\n sdp +=\n \"a=ssrc-group:FID \" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" \" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \"\\r\\n\";\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" cname:\" +\n SDPUtils.localCName +\n \"\\r\\n\";\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" cname:\" +\n SDPUtils.localCName +\n \"\\r\\n\";\n }\n return sdp;\n };\n\n // Gets the direction from the mediaSection or the sessionpart.\n SDPUtils.getDirection = function (mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n var lines = SDPUtils.splitLines(mediaSection);\n for (var i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case \"a=sendrecv\":\n case \"a=sendonly\":\n case \"a=recvonly\":\n case \"a=inactive\":\n return lines[i].substr(2);\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return \"sendrecv\";\n };\n\n SDPUtils.getKind = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n return mline[0].substr(2);\n };\n\n SDPUtils.isRejected = function (mediaSection) {\n return mediaSection.split(\" \", 2)[1] === \"0\";\n };\n\n SDPUtils.parseMLine = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var parts = lines[0].substr(2).split(\" \");\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(\" \"),\n };\n };\n\n SDPUtils.parseOLine = function (mediaSection) {\n var line = SDPUtils.matchPrefix(mediaSection, \"o=\")[0];\n var parts = line.substr(2).split(\" \");\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n };\n\n // a very naive interpretation of a valid SDP.\n SDPUtils.isValidSDP = function (blob) {\n if (typeof blob !== \"string\" || blob.length === 0) {\n return false;\n }\n var lines = SDPUtils.splitLines(blob);\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== \"=\") {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n };\n\n // Expose public methods.\n {\n module.exports = SDPUtils;\n }\n});\n\n/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction fixStatsType(stat) {\n return (\n {\n inboundrtp: \"inbound-rtp\",\n outboundrtp: \"outbound-rtp\",\n candidatepair: \"candidate-pair\",\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n }[stat.type] || stat.type\n );\n}\n\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\n var sdp$1 = sdp.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp$1 += sdp.writeIceParameters(transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp$1 += sdp.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === \"offer\" ? \"actpass\" : dtlsRole || \"active\"\n );\n\n sdp$1 += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\n\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp$1 += \"a=sendrecv\\r\\n\";\n } else if (transceiver.rtpSender) {\n sdp$1 += \"a=sendonly\\r\\n\";\n } else if (transceiver.rtpReceiver) {\n sdp$1 += \"a=recvonly\\r\\n\";\n } else {\n sdp$1 += \"a=inactive\\r\\n\";\n }\n\n if (transceiver.rtpSender) {\n var trackId =\n transceiver.rtpSender._initialTrackId || transceiver.rtpSender.track.id;\n transceiver.rtpSender._initialTrackId = trackId;\n // spec.\n var msid = \"msid:\" + (stream ? stream.id : \"-\") + \" \" + trackId + \"\\r\\n\";\n sdp$1 += \"a=\" + msid;\n // for Chrome. Legacy should no longer be required.\n sdp$1 +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\n\n // RTX\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp$1 +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].rtx.ssrc + \" \" + msid;\n sdp$1 +=\n \"a=ssrc-group:FID \" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" \" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \"\\r\\n\";\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp$1 +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" cname:\" +\n sdp.localCName +\n \"\\r\\n\";\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp$1 +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" cname:\" +\n sdp.localCName +\n \"\\r\\n\";\n }\n return sdp$1;\n}\n\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers(iceServers, edgeVersion) {\n var hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(function (server) {\n if (server && (server.urls || server.url)) {\n var urls = server.urls || server.url;\n if (server.url && !server.urls) {\n console.warn(\"RTCIceServer.url is deprecated! Use urls instead.\");\n }\n var isString = typeof urls === \"string\";\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(function (url) {\n var validTurn =\n url.indexOf(\"turn:\") === 0 &&\n url.indexOf(\"transport=udp\") !== -1 &&\n url.indexOf(\"turn:[\") === -1 &&\n !hasTurn;\n\n if (validTurn) {\n hasTurn = true;\n return true;\n }\n return (\n url.indexOf(\"stun:\") === 0 &&\n edgeVersion >= 14393 &&\n url.indexOf(\"?transport=udp\") === -1\n );\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\n// Determines the intersection of local and remote capabilities.\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\n var commonCapabilities = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n };\n\n var findCodecByPayloadType = function (pt, codecs) {\n pt = parseInt(pt, 10);\n for (var i = 0; i < codecs.length; i++) {\n if (\n codecs[i].payloadType === pt ||\n codecs[i].preferredPayloadType === pt\n ) {\n return codecs[i];\n }\n }\n };\n\n var rtxCapabilityMatches = function (lRtx, rRtx, lCodecs, rCodecs) {\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\n return (\n lCodec &&\n rCodec &&\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase()\n );\n };\n\n localCapabilities.codecs.forEach(function (lCodec) {\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\n var rCodec = remoteCapabilities.codecs[i];\n if (\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\n lCodec.clockRate === rCodec.clockRate\n ) {\n if (\n lCodec.name.toLowerCase() === \"rtx\" &&\n lCodec.parameters &&\n rCodec.parameters.apt\n ) {\n // for RTX we need to find the local rtx that has a apt\n // which points to the same local codec as the remote one.\n if (\n !rtxCapabilityMatches(\n lCodec,\n rCodec,\n localCapabilities.codecs,\n remoteCapabilities.codecs\n )\n ) {\n continue;\n }\n }\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\n // number of channels is the highest common number of channels\n rCodec.numChannels = Math.min(lCodec.numChannels, rCodec.numChannels);\n // push rCodec so we reply with offerer payload type\n commonCapabilities.codecs.push(rCodec);\n\n // determine common feedback mechanisms\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function (fb) {\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\n if (\n lCodec.rtcpFeedback[j].type === fb.type &&\n lCodec.rtcpFeedback[j].parameter === fb.parameter\n ) {\n return true;\n }\n }\n return false;\n });\n // FIXME: also need to determine .parameters\n // see https://github.com/openpeer/ortc/issues/569\n break;\n }\n }\n });\n\n localCapabilities.headerExtensions.forEach(function (lHeaderExtension) {\n for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\n commonCapabilities.headerExtensions.push(rHeaderExtension);\n break;\n }\n }\n });\n\n // FIXME: fecMechanisms\n return commonCapabilities;\n}\n\n// is action=setLocalDescription with type allowed in signalingState\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\n return (\n {\n offer: {\n setLocalDescription: [\"stable\", \"have-local-offer\"],\n setRemoteDescription: [\"stable\", \"have-remote-offer\"],\n },\n answer: {\n setLocalDescription: [\"have-remote-offer\", \"have-local-pranswer\"],\n setRemoteDescription: [\"have-local-offer\", \"have-remote-pranswer\"],\n },\n }[type][action].indexOf(signalingState) !== -1\n );\n}\n\nfunction maybeAddCandidate(iceTransport, candidate) {\n // Edge's internal representation adds some fields therefore\n // not all fieldѕ are taken into account.\n var alreadyAdded = iceTransport\n .getRemoteCandidates()\n .find(function (remoteCandidate) {\n return (\n candidate.foundation === remoteCandidate.foundation &&\n candidate.ip === remoteCandidate.ip &&\n candidate.port === remoteCandidate.port &&\n candidate.priority === remoteCandidate.priority &&\n candidate.protocol === remoteCandidate.protocol &&\n candidate.type === remoteCandidate.type\n );\n });\n if (!alreadyAdded) {\n iceTransport.addRemoteCandidate(candidate);\n }\n return !alreadyAdded;\n}\n\nfunction makeError(name, description) {\n var e = new Error(description);\n e.name = name;\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\n e.code = {\n NotSupportedError: 9,\n InvalidStateError: 11,\n InvalidAccessError: 15,\n TypeError: undefined,\n OperationError: undefined,\n }[name];\n return e;\n}\n\nvar rtcpeerconnection = function (window, edgeVersion) {\n // https://w3c.github.io/mediacapture-main/#mediastream\n // Helper function to add the track to the stream and\n // dispatch the event ourselves.\n function addTrackToStreamAndFireEvent(track, stream) {\n stream.addTrack(track);\n stream.dispatchEvent(\n new window.MediaStreamTrackEvent(\"addtrack\", { track: track })\n );\n }\n\n function removeTrackFromStreamAndFireEvent(track, stream) {\n stream.removeTrack(track);\n stream.dispatchEvent(\n new window.MediaStreamTrackEvent(\"removetrack\", { track: track })\n );\n }\n\n function fireAddTrack(pc, track, receiver, streams) {\n var trackEvent = new Event(\"track\");\n trackEvent.track = track;\n trackEvent.receiver = receiver;\n trackEvent.transceiver = { receiver: receiver };\n trackEvent.streams = streams;\n window.setTimeout(function () {\n pc._dispatchEvent(\"track\", trackEvent);\n });\n }\n\n var RTCPeerConnection = function (config) {\n var pc = this;\n\n var _eventTarget = document.createDocumentFragment();\n [\"addEventListener\", \"removeEventListener\", \"dispatchEvent\"].forEach(\n function (method) {\n pc[method] = _eventTarget[method].bind(_eventTarget);\n }\n );\n\n this.canTrickleIceCandidates = null;\n\n this.needNegotiation = false;\n\n this.localStreams = [];\n this.remoteStreams = [];\n\n this._localDescription = null;\n this._remoteDescription = null;\n\n this.signalingState = \"stable\";\n this.iceConnectionState = \"new\";\n this.connectionState = \"new\";\n this.iceGatheringState = \"new\";\n\n config = JSON.parse(JSON.stringify(config || {}));\n\n this.usingBundle = config.bundlePolicy === \"max-bundle\";\n if (config.rtcpMuxPolicy === \"negotiate\") {\n throw makeError(\n \"NotSupportedError\",\n \"rtcpMuxPolicy 'negotiate' is not supported\"\n );\n } else if (!config.rtcpMuxPolicy) {\n config.rtcpMuxPolicy = \"require\";\n }\n\n switch (config.iceTransportPolicy) {\n case \"all\":\n case \"relay\":\n break;\n default:\n config.iceTransportPolicy = \"all\";\n break;\n }\n\n switch (config.bundlePolicy) {\n case \"balanced\":\n case \"max-compat\":\n case \"max-bundle\":\n break;\n default:\n config.bundlePolicy = \"balanced\";\n break;\n }\n\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\n\n this._iceGatherers = [];\n if (config.iceCandidatePoolSize) {\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\n this._iceGatherers.push(\n new window.RTCIceGatherer({\n iceServers: config.iceServers,\n gatherPolicy: config.iceTransportPolicy,\n })\n );\n }\n } else {\n config.iceCandidatePoolSize = 0;\n }\n\n this._config = config;\n\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\n // everything that is needed to describe a SDP m-line.\n this.transceivers = [];\n\n this._sdpSessionId = sdp.generateSessionId();\n this._sdpSessionVersion = 0;\n\n this._dtlsRole = undefined; // role for a=setup to use in answers.\n\n this._isClosed = false;\n };\n\n Object.defineProperty(RTCPeerConnection.prototype, \"localDescription\", {\n configurable: true,\n get: function () {\n return this._localDescription;\n },\n });\n Object.defineProperty(RTCPeerConnection.prototype, \"remoteDescription\", {\n configurable: true,\n get: function () {\n return this._remoteDescription;\n },\n });\n\n // set up event handlers on prototype\n RTCPeerConnection.prototype.onicecandidate = null;\n RTCPeerConnection.prototype.onaddstream = null;\n RTCPeerConnection.prototype.ontrack = null;\n RTCPeerConnection.prototype.onremovestream = null;\n RTCPeerConnection.prototype.onsignalingstatechange = null;\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\n RTCPeerConnection.prototype.onconnectionstatechange = null;\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\n RTCPeerConnection.prototype.onnegotiationneeded = null;\n RTCPeerConnection.prototype.ondatachannel = null;\n\n RTCPeerConnection.prototype._dispatchEvent = function (name, event) {\n if (this._isClosed) {\n return;\n }\n this.dispatchEvent(event);\n if (typeof this[\"on\" + name] === \"function\") {\n this[\"on\" + name](event);\n }\n };\n\n RTCPeerConnection.prototype._emitGatheringStateChange = function () {\n var event = new Event(\"icegatheringstatechange\");\n this._dispatchEvent(\"icegatheringstatechange\", event);\n };\n\n RTCPeerConnection.prototype.getConfiguration = function () {\n return this._config;\n };\n\n RTCPeerConnection.prototype.getLocalStreams = function () {\n return this.localStreams;\n };\n\n RTCPeerConnection.prototype.getRemoteStreams = function () {\n return this.remoteStreams;\n };\n\n // internal helper to create a transceiver object.\n // (which is not yet the same as the WebRTC 1.0 transceiver)\n RTCPeerConnection.prototype._createTransceiver = function (kind, doNotAdd) {\n var hasBundleTransport = this.transceivers.length > 0;\n var transceiver = {\n track: null,\n iceGatherer: null,\n iceTransport: null,\n dtlsTransport: null,\n localCapabilities: null,\n remoteCapabilities: null,\n rtpSender: null,\n rtpReceiver: null,\n kind: kind,\n mid: null,\n sendEncodingParameters: null,\n recvEncodingParameters: null,\n stream: null,\n associatedRemoteMediaStreams: [],\n wantReceive: true,\n };\n if (this.usingBundle && hasBundleTransport) {\n transceiver.iceTransport = this.transceivers[0].iceTransport;\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\n } else {\n var transports = this._createIceAndDtlsTransports();\n transceiver.iceTransport = transports.iceTransport;\n transceiver.dtlsTransport = transports.dtlsTransport;\n }\n if (!doNotAdd) {\n this.transceivers.push(transceiver);\n }\n return transceiver;\n };\n\n RTCPeerConnection.prototype.addTrack = function (track, stream) {\n if (this._isClosed) {\n throw makeError(\n \"InvalidStateError\",\n \"Attempted to call addTrack on a closed peerconnection.\"\n );\n }\n\n var alreadyExists = this.transceivers.find(function (s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw makeError(\"InvalidAccessError\", \"Track already exists.\");\n }\n\n var transceiver;\n for (var i = 0; i < this.transceivers.length; i++) {\n if (\n !this.transceivers[i].track &&\n this.transceivers[i].kind === track.kind\n ) {\n transceiver = this.transceivers[i];\n }\n }\n if (!transceiver) {\n transceiver = this._createTransceiver(track.kind);\n }\n\n this._maybeFireNegotiationNeeded();\n\n if (this.localStreams.indexOf(stream) === -1) {\n this.localStreams.push(stream);\n }\n\n transceiver.track = track;\n transceiver.stream = stream;\n transceiver.rtpSender = new window.RTCRtpSender(\n track,\n transceiver.dtlsTransport\n );\n return transceiver.rtpSender;\n };\n\n RTCPeerConnection.prototype.addStream = function (stream) {\n var pc = this;\n if (edgeVersion >= 15025) {\n stream.getTracks().forEach(function (track) {\n pc.addTrack(track, stream);\n });\n } else {\n // Clone is necessary for local demos mostly, attaching directly\n // to two different senders does not work (build 10547).\n // Fixed in 15025 (or earlier)\n var clonedStream = stream.clone();\n stream.getTracks().forEach(function (track, idx) {\n var clonedTrack = clonedStream.getTracks()[idx];\n track.addEventListener(\"enabled\", function (event) {\n clonedTrack.enabled = event.enabled;\n });\n });\n clonedStream.getTracks().forEach(function (track) {\n pc.addTrack(track, clonedStream);\n });\n }\n };\n\n RTCPeerConnection.prototype.removeTrack = function (sender) {\n if (this._isClosed) {\n throw makeError(\n \"InvalidStateError\",\n \"Attempted to call removeTrack on a closed peerconnection.\"\n );\n }\n\n if (!(sender instanceof window.RTCRtpSender)) {\n throw new TypeError(\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\n \"does not implement interface RTCRtpSender.\"\n );\n }\n\n var transceiver = this.transceivers.find(function (t) {\n return t.rtpSender === sender;\n });\n\n if (!transceiver) {\n throw makeError(\n \"InvalidAccessError\",\n \"Sender was not created by this connection.\"\n );\n }\n var stream = transceiver.stream;\n\n transceiver.rtpSender.stop();\n transceiver.rtpSender = null;\n transceiver.track = null;\n transceiver.stream = null;\n\n // remove the stream from the set of local streams\n var localStreams = this.transceivers.map(function (t) {\n return t.stream;\n });\n if (\n localStreams.indexOf(stream) === -1 &&\n this.localStreams.indexOf(stream) > -1\n ) {\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\n }\n\n this._maybeFireNegotiationNeeded();\n };\n\n RTCPeerConnection.prototype.removeStream = function (stream) {\n var pc = this;\n stream.getTracks().forEach(function (track) {\n var sender = pc.getSenders().find(function (s) {\n return s.track === track;\n });\n if (sender) {\n pc.removeTrack(sender);\n }\n });\n };\n\n RTCPeerConnection.prototype.getSenders = function () {\n return this.transceivers\n .filter(function (transceiver) {\n return !!transceiver.rtpSender;\n })\n .map(function (transceiver) {\n return transceiver.rtpSender;\n });\n };\n\n RTCPeerConnection.prototype.getReceivers = function () {\n return this.transceivers\n .filter(function (transceiver) {\n return !!transceiver.rtpReceiver;\n })\n .map(function (transceiver) {\n return transceiver.rtpReceiver;\n });\n };\n\n RTCPeerConnection.prototype._createIceGatherer = function (\n sdpMLineIndex,\n usingBundle\n ) {\n var pc = this;\n if (usingBundle && sdpMLineIndex > 0) {\n return this.transceivers[0].iceGatherer;\n } else if (this._iceGatherers.length) {\n return this._iceGatherers.shift();\n }\n var iceGatherer = new window.RTCIceGatherer({\n iceServers: this._config.iceServers,\n gatherPolicy: this._config.iceTransportPolicy,\n });\n Object.defineProperty(iceGatherer, \"state\", {\n value: \"new\",\n writable: true,\n });\n\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\n this.transceivers[sdpMLineIndex].bufferCandidates = function (event) {\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n iceGatherer.state = end ? \"completed\" : \"gathering\";\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\n }\n };\n iceGatherer.addEventListener(\n \"localcandidate\",\n this.transceivers[sdpMLineIndex].bufferCandidates\n );\n return iceGatherer;\n };\n\n // start gathering from an RTCIceGatherer.\n RTCPeerConnection.prototype._gather = function (mid, sdpMLineIndex) {\n var pc = this;\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer.onlocalcandidate) {\n return;\n }\n var bufferedCandidateEvents =\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\n iceGatherer.removeEventListener(\n \"localcandidate\",\n this.transceivers[sdpMLineIndex].bufferCandidates\n );\n iceGatherer.onlocalcandidate = function (evt) {\n if (pc.usingBundle && sdpMLineIndex > 0) {\n // if we know that we use bundle we can drop candidates with\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\n // confused since we dispose the extra ice gatherer.\n return;\n }\n var event = new Event(\"icecandidate\");\n event.candidate = { sdpMid: mid, sdpMLineIndex: sdpMLineIndex };\n\n var cand = evt.candidate;\n // Edge emits an empty object for RTCIceCandidateComplete‥\n var end = !cand || Object.keys(cand).length === 0;\n if (end) {\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n if (iceGatherer.state === \"new\" || iceGatherer.state === \"gathering\") {\n iceGatherer.state = \"completed\";\n }\n } else {\n if (iceGatherer.state === \"new\") {\n iceGatherer.state = \"gathering\";\n }\n // RTCIceCandidate doesn't have a component, needs to be added\n cand.component = 1;\n // also the usernameFragment. TODO: update SDP to take both variants.\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\n\n var serializedCandidate = sdp.writeCandidate(cand);\n event.candidate = Object.assign(\n event.candidate,\n sdp.parseCandidate(serializedCandidate)\n );\n\n event.candidate.candidate = serializedCandidate;\n event.candidate.toJSON = function () {\n return {\n candidate: event.candidate.candidate,\n sdpMid: event.candidate.sdpMid,\n sdpMLineIndex: event.candidate.sdpMLineIndex,\n usernameFragment: event.candidate.usernameFragment,\n };\n };\n }\n\n // update local description.\n var sections = sdp.getMediaSections(pc._localDescription.sdp);\n if (!end) {\n sections[event.candidate.sdpMLineIndex] +=\n \"a=\" + event.candidate.candidate + \"\\r\\n\";\n } else {\n sections[event.candidate.sdpMLineIndex] += \"a=end-of-candidates\\r\\n\";\n }\n pc._localDescription.sdp =\n sdp.getDescription(pc._localDescription.sdp) + sections.join(\"\");\n var complete = pc.transceivers.every(function (transceiver) {\n return (\n transceiver.iceGatherer &&\n transceiver.iceGatherer.state === \"completed\"\n );\n });\n\n if (pc.iceGatheringState !== \"gathering\") {\n pc.iceGatheringState = \"gathering\";\n pc._emitGatheringStateChange();\n }\n\n // Emit candidate. Also emit null candidate when all gatherers are\n // complete.\n if (!end) {\n pc._dispatchEvent(\"icecandidate\", event);\n }\n if (complete) {\n pc._dispatchEvent(\"icecandidate\", new Event(\"icecandidate\"));\n pc.iceGatheringState = \"complete\";\n pc._emitGatheringStateChange();\n }\n };\n\n // emit already gathered candidates.\n window.setTimeout(function () {\n bufferedCandidateEvents.forEach(function (e) {\n iceGatherer.onlocalcandidate(e);\n });\n }, 0);\n };\n\n // Create ICE transport and DTLS transport.\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function () {\n var pc = this;\n var iceTransport = new window.RTCIceTransport(null);\n iceTransport.onicestatechange = function () {\n pc._updateIceConnectionState();\n pc._updateConnectionState();\n };\n\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\n dtlsTransport.ondtlsstatechange = function () {\n pc._updateConnectionState();\n };\n dtlsTransport.onerror = function () {\n // onerror does not set state to failed by itself.\n Object.defineProperty(dtlsTransport, \"state\", {\n value: \"failed\",\n writable: true,\n });\n pc._updateConnectionState();\n };\n\n return {\n iceTransport: iceTransport,\n dtlsTransport: dtlsTransport,\n };\n };\n\n // Destroy ICE gatherer, ICE transport and DTLS transport.\n // Without triggering the callbacks.\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function (\n sdpMLineIndex\n ) {\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer) {\n delete iceGatherer.onlocalcandidate;\n delete this.transceivers[sdpMLineIndex].iceGatherer;\n }\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\n if (iceTransport) {\n delete iceTransport.onicestatechange;\n delete this.transceivers[sdpMLineIndex].iceTransport;\n }\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\n if (dtlsTransport) {\n delete dtlsTransport.ondtlsstatechange;\n delete dtlsTransport.onerror;\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\n }\n };\n\n // Start the RTP Sender and Receiver for a transceiver.\n RTCPeerConnection.prototype._transceive = function (transceiver, send, recv) {\n var params = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n if (send && transceiver.rtpSender) {\n params.encodings = transceiver.sendEncodingParameters;\n params.rtcp = {\n cname: sdp.localCName,\n compound: transceiver.rtcpParameters.compound,\n };\n if (transceiver.recvEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\n }\n transceiver.rtpSender.send(params);\n }\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\n // remove RTX field in Edge 14942\n if (\n transceiver.kind === \"video\" &&\n transceiver.recvEncodingParameters &&\n edgeVersion < 15019\n ) {\n transceiver.recvEncodingParameters.forEach(function (p) {\n delete p.rtx;\n });\n }\n if (transceiver.recvEncodingParameters.length) {\n params.encodings = transceiver.recvEncodingParameters;\n } else {\n params.encodings = [{}];\n }\n params.rtcp = {\n compound: transceiver.rtcpParameters.compound,\n };\n if (transceiver.rtcpParameters.cname) {\n params.rtcp.cname = transceiver.rtcpParameters.cname;\n }\n if (transceiver.sendEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\n }\n transceiver.rtpReceiver.receive(params);\n }\n };\n\n RTCPeerConnection.prototype.setLocalDescription = function (description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\n return Promise.reject(\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\n );\n }\n\n if (\n !isActionAllowedInSignalingState(\n \"setLocalDescription\",\n description.type,\n pc.signalingState\n ) ||\n pc._isClosed\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not set local \" +\n description.type +\n \" in state \" +\n pc.signalingState\n )\n );\n }\n\n var sections;\n var sessionpart;\n if (description.type === \"offer\") {\n // VERY limited support for SDP munging. Limited to:\n // * changing the order of codecs\n sections = sdp.splitSections(description.sdp);\n sessionpart = sections.shift();\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var caps = sdp.parseRtpParameters(mediaSection);\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\n });\n\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n });\n } else if (description.type === \"answer\") {\n sections = sdp.splitSections(pc._remoteDescription.sdp);\n sessionpart = sections.shift();\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var transceiver = pc.transceivers[sdpMLineIndex];\n var iceGatherer = transceiver.iceGatherer;\n var iceTransport = transceiver.iceTransport;\n var dtlsTransport = transceiver.dtlsTransport;\n var localCapabilities = transceiver.localCapabilities;\n var remoteCapabilities = transceiver.remoteCapabilities;\n\n // treat bundle-only as not-rejected.\n var rejected =\n sdp.isRejected(mediaSection) &&\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\n\n if (!rejected && !transceiver.rejected) {\n var remoteIceParameters = sdp.getIceParameters(\n mediaSection,\n sessionpart\n );\n var remoteDtlsParameters = sdp.getDtlsParameters(\n mediaSection,\n sessionpart\n );\n if (isIceLite) {\n remoteDtlsParameters.role = \"server\";\n }\n\n if (!pc.usingBundle || sdpMLineIndex === 0) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n if (iceTransport.state === \"new\") {\n iceTransport.start(\n iceGatherer,\n remoteIceParameters,\n isIceLite ? \"controlling\" : \"controlled\"\n );\n }\n if (dtlsTransport.state === \"new\") {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // Calculate intersection of capabilities.\n var params = getCommonCapabilities(\n localCapabilities,\n remoteCapabilities\n );\n\n // Start the RTCRtpSender. The RTCRtpReceiver for this\n // transceiver has already been started in setRemoteDescription.\n pc._transceive(transceiver, params.codecs.length > 0, false);\n }\n });\n }\n\n pc._localDescription = {\n type: description.type,\n sdp: description.sdp,\n };\n if (description.type === \"offer\") {\n pc._updateSignalingState(\"have-local-offer\");\n } else {\n pc._updateSignalingState(\"stable\");\n }\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.setRemoteDescription = function (description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\n return Promise.reject(\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\n );\n }\n\n if (\n !isActionAllowedInSignalingState(\n \"setRemoteDescription\",\n description.type,\n pc.signalingState\n ) ||\n pc._isClosed\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not set remote \" +\n description.type +\n \" in state \" +\n pc.signalingState\n )\n );\n }\n\n var streams = {};\n pc.remoteStreams.forEach(function (stream) {\n streams[stream.id] = stream;\n });\n var receiverList = [];\n var sections = sdp.splitSections(description.sdp);\n var sessionpart = sections.shift();\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\n var usingBundle =\n sdp.matchPrefix(sessionpart, \"a=group:BUNDLE \").length > 0;\n pc.usingBundle = usingBundle;\n var iceOptions = sdp.matchPrefix(sessionpart, \"a=ice-options:\")[0];\n if (iceOptions) {\n pc.canTrickleIceCandidates =\n iceOptions.substr(14).split(\" \").indexOf(\"trickle\") >= 0;\n } else {\n pc.canTrickleIceCandidates = false;\n }\n\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var lines = sdp.splitLines(mediaSection);\n var kind = sdp.getKind(mediaSection);\n // treat bundle-only as not-rejected.\n var rejected =\n sdp.isRejected(mediaSection) &&\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\n var protocol = lines[0].substr(2).split(\" \")[2];\n\n var direction = sdp.getDirection(mediaSection, sessionpart);\n var remoteMsid = sdp.parseMsid(mediaSection);\n\n var mid = sdp.getMid(mediaSection) || sdp.generateIdentifier();\n\n // Reject datachannels which are not implemented yet.\n if (\n rejected ||\n (kind === \"application\" &&\n (protocol === \"DTLS/SCTP\" || protocol === \"UDP/DTLS/SCTP\"))\n ) {\n // TODO: this is dangerous in the case where a non-rejected m-line\n // becomes rejected.\n pc.transceivers[sdpMLineIndex] = {\n mid: mid,\n kind: kind,\n protocol: protocol,\n rejected: true,\n };\n return;\n }\n\n if (\n !rejected &&\n pc.transceivers[sdpMLineIndex] &&\n pc.transceivers[sdpMLineIndex].rejected\n ) {\n // recycle a rejected transceiver.\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\n }\n\n var transceiver;\n var iceGatherer;\n var iceTransport;\n var dtlsTransport;\n var rtpReceiver;\n var sendEncodingParameters;\n var recvEncodingParameters;\n var localCapabilities;\n\n var track;\n // FIXME: ensure the mediaSection has rtcp-mux set.\n var remoteCapabilities = sdp.parseRtpParameters(mediaSection);\n var remoteIceParameters;\n var remoteDtlsParameters;\n if (!rejected) {\n remoteIceParameters = sdp.getIceParameters(mediaSection, sessionpart);\n remoteDtlsParameters = sdp.getDtlsParameters(mediaSection, sessionpart);\n remoteDtlsParameters.role = \"client\";\n }\n recvEncodingParameters = sdp.parseRtpEncodingParameters(mediaSection);\n\n var rtcpParameters = sdp.parseRtcpParameters(mediaSection);\n\n var isComplete =\n sdp.matchPrefix(mediaSection, \"a=end-of-candidates\", sessionpart)\n .length > 0;\n var cands = sdp\n .matchPrefix(mediaSection, \"a=candidate:\")\n .map(function (cand) {\n return sdp.parseCandidate(cand);\n })\n .filter(function (cand) {\n return cand.component === 1;\n });\n\n // Check if we can use BUNDLE and dispose transports.\n if (\n (description.type === \"offer\" || description.type === \"answer\") &&\n !rejected &&\n usingBundle &&\n sdpMLineIndex > 0 &&\n pc.transceivers[sdpMLineIndex]\n ) {\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\n pc.transceivers[sdpMLineIndex].iceGatherer =\n pc.transceivers[0].iceGatherer;\n pc.transceivers[sdpMLineIndex].iceTransport =\n pc.transceivers[0].iceTransport;\n pc.transceivers[sdpMLineIndex].dtlsTransport =\n pc.transceivers[0].dtlsTransport;\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\n pc.transceivers[0].dtlsTransport\n );\n }\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\n pc.transceivers[0].dtlsTransport\n );\n }\n }\n if (description.type === \"offer\" && !rejected) {\n transceiver =\n pc.transceivers[sdpMLineIndex] || pc._createTransceiver(kind);\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(\n sdpMLineIndex,\n usingBundle\n );\n }\n\n if (cands.length && transceiver.iceTransport.state === \"new\") {\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\n transceiver.iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function (candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\n\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\n codec\n ) {\n return codec.name !== \"rtx\";\n });\n }\n\n sendEncodingParameters = transceiver.sendEncodingParameters || [\n {\n ssrc: (2 * sdpMLineIndex + 2) * 1001,\n },\n ];\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n var isNewTrack = false;\n if (direction === \"sendrecv\" || direction === \"sendonly\") {\n isNewTrack = !transceiver.rtpReceiver;\n rtpReceiver =\n transceiver.rtpReceiver ||\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\n\n if (isNewTrack) {\n var stream;\n track = rtpReceiver.track;\n // FIXME: does not work with Plan B.\n if (remoteMsid && remoteMsid.stream === \"-\");\n else if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n Object.defineProperty(streams[remoteMsid.stream], \"id\", {\n get: function () {\n return remoteMsid.stream;\n },\n });\n }\n Object.defineProperty(track, \"id\", {\n get: function () {\n return remoteMsid.track;\n },\n });\n stream = streams[remoteMsid.stream];\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n stream = streams.default;\n }\n if (stream) {\n addTrackToStreamAndFireEvent(track, stream);\n transceiver.associatedRemoteMediaStreams.push(stream);\n }\n receiverList.push([track, rtpReceiver, stream]);\n }\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\n transceiver.associatedRemoteMediaStreams.forEach(function (s) {\n var nativeTrack = s.getTracks().find(function (t) {\n return t.id === transceiver.rtpReceiver.track.id;\n });\n if (nativeTrack) {\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\n }\n });\n transceiver.associatedRemoteMediaStreams = [];\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.remoteCapabilities = remoteCapabilities;\n transceiver.rtpReceiver = rtpReceiver;\n transceiver.rtcpParameters = rtcpParameters;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n transceiver.recvEncodingParameters = recvEncodingParameters;\n\n // Start the RTCRtpReceiver now. The RTPSender is started in\n // setLocalDescription.\n pc._transceive(pc.transceivers[sdpMLineIndex], false, isNewTrack);\n } else if (description.type === \"answer\" && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex];\n iceGatherer = transceiver.iceGatherer;\n iceTransport = transceiver.iceTransport;\n dtlsTransport = transceiver.dtlsTransport;\n rtpReceiver = transceiver.rtpReceiver;\n sendEncodingParameters = transceiver.sendEncodingParameters;\n localCapabilities = transceiver.localCapabilities;\n\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\n recvEncodingParameters;\n pc.transceivers[sdpMLineIndex].remoteCapabilities = remoteCapabilities;\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\n\n if (cands.length && iceTransport.state === \"new\") {\n if (\n (isIceLite || isComplete) &&\n (!usingBundle || sdpMLineIndex === 0)\n ) {\n iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function (candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n if (!usingBundle || sdpMLineIndex === 0) {\n if (iceTransport.state === \"new\") {\n iceTransport.start(iceGatherer, remoteIceParameters, \"controlling\");\n }\n if (dtlsTransport.state === \"new\") {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // If the offer contained RTX but the answer did not,\n // remove RTX from sendEncodingParameters.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\n return c.name.toLowerCase() === \"rtx\";\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n pc._transceive(\n transceiver,\n direction === \"sendrecv\" || direction === \"recvonly\",\n direction === \"sendrecv\" || direction === \"sendonly\"\n );\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n if (\n rtpReceiver &&\n (direction === \"sendrecv\" || direction === \"sendonly\")\n ) {\n track = rtpReceiver.track;\n if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams.default);\n receiverList.push([track, rtpReceiver, streams.default]);\n }\n } else {\n // FIXME: actually the receiver should be created later.\n delete transceiver.rtpReceiver;\n }\n }\n });\n\n if (pc._dtlsRole === undefined) {\n pc._dtlsRole = description.type === \"offer\" ? \"active\" : \"passive\";\n }\n\n pc._remoteDescription = {\n type: description.type,\n sdp: description.sdp,\n };\n if (description.type === \"offer\") {\n pc._updateSignalingState(\"have-remote-offer\");\n } else {\n pc._updateSignalingState(\"stable\");\n }\n Object.keys(streams).forEach(function (sid) {\n var stream = streams[sid];\n if (stream.getTracks().length) {\n if (pc.remoteStreams.indexOf(stream) === -1) {\n pc.remoteStreams.push(stream);\n var event = new Event(\"addstream\");\n event.stream = stream;\n window.setTimeout(function () {\n pc._dispatchEvent(\"addstream\", event);\n });\n }\n\n receiverList.forEach(function (item) {\n var track = item[0];\n var receiver = item[1];\n if (stream.id !== item[2].id) {\n return;\n }\n fireAddTrack(pc, track, receiver, [stream]);\n });\n }\n });\n receiverList.forEach(function (item) {\n if (item[2]) {\n return;\n }\n fireAddTrack(pc, item[0], item[1], []);\n });\n\n // check whether addIceCandidate({}) was called within four seconds after\n // setRemoteDescription.\n window.setTimeout(function () {\n if (!(pc && pc.transceivers)) {\n return;\n }\n pc.transceivers.forEach(function (transceiver) {\n if (\n transceiver.iceTransport &&\n transceiver.iceTransport.state === \"new\" &&\n transceiver.iceTransport.getRemoteCandidates().length > 0\n ) {\n console.warn(\n \"Timeout for addRemoteCandidate. Consider sending \" +\n \"an end-of-candidates notification\"\n );\n transceiver.iceTransport.addRemoteCandidate({});\n }\n });\n }, 4000);\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.close = function () {\n this.transceivers.forEach(function (transceiver) {\n /* not yet\n if (transceiver.iceGatherer) {\n transceiver.iceGatherer.close();\n }\n */\n if (transceiver.iceTransport) {\n transceiver.iceTransport.stop();\n }\n if (transceiver.dtlsTransport) {\n transceiver.dtlsTransport.stop();\n }\n if (transceiver.rtpSender) {\n transceiver.rtpSender.stop();\n }\n if (transceiver.rtpReceiver) {\n transceiver.rtpReceiver.stop();\n }\n });\n // FIXME: clean up tracks, local streams, remote streams, etc\n this._isClosed = true;\n this._updateSignalingState(\"closed\");\n };\n\n // Update the signaling state.\n RTCPeerConnection.prototype._updateSignalingState = function (newState) {\n this.signalingState = newState;\n var event = new Event(\"signalingstatechange\");\n this._dispatchEvent(\"signalingstatechange\", event);\n };\n\n // Determine whether to fire the negotiationneeded event.\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function () {\n var pc = this;\n if (this.signalingState !== \"stable\" || this.needNegotiation === true) {\n return;\n }\n this.needNegotiation = true;\n window.setTimeout(function () {\n if (pc.needNegotiation) {\n pc.needNegotiation = false;\n var event = new Event(\"negotiationneeded\");\n pc._dispatchEvent(\"negotiationneeded\", event);\n }\n }, 0);\n };\n\n // Update the ice connection state.\n RTCPeerConnection.prototype._updateIceConnectionState = function () {\n var newState;\n var states = {\n new: 0,\n closed: 0,\n checking: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0,\n };\n this.transceivers.forEach(function (transceiver) {\n if (transceiver.iceTransport && !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n }\n });\n\n newState = \"new\";\n if (states.failed > 0) {\n newState = \"failed\";\n } else if (states.checking > 0) {\n newState = \"checking\";\n } else if (states.disconnected > 0) {\n newState = \"disconnected\";\n } else if (states.new > 0) {\n newState = \"new\";\n } else if (states.connected > 0) {\n newState = \"connected\";\n } else if (states.completed > 0) {\n newState = \"completed\";\n }\n\n if (newState !== this.iceConnectionState) {\n this.iceConnectionState = newState;\n var event = new Event(\"iceconnectionstatechange\");\n this._dispatchEvent(\"iceconnectionstatechange\", event);\n }\n };\n\n // Update the connection state.\n RTCPeerConnection.prototype._updateConnectionState = function () {\n var newState;\n var states = {\n new: 0,\n closed: 0,\n connecting: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0,\n };\n this.transceivers.forEach(function (transceiver) {\n if (\n transceiver.iceTransport &&\n transceiver.dtlsTransport &&\n !transceiver.rejected\n ) {\n states[transceiver.iceTransport.state]++;\n states[transceiver.dtlsTransport.state]++;\n }\n });\n // ICETransport.completed and connected are the same for this purpose.\n states.connected += states.completed;\n\n newState = \"new\";\n if (states.failed > 0) {\n newState = \"failed\";\n } else if (states.connecting > 0) {\n newState = \"connecting\";\n } else if (states.disconnected > 0) {\n newState = \"disconnected\";\n } else if (states.new > 0) {\n newState = \"new\";\n } else if (states.connected > 0) {\n newState = \"connected\";\n }\n\n if (newState !== this.connectionState) {\n this.connectionState = newState;\n var event = new Event(\"connectionstatechange\");\n this._dispatchEvent(\"connectionstatechange\", event);\n }\n };\n\n RTCPeerConnection.prototype.createOffer = function () {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(\n makeError(\"InvalidStateError\", \"Can not call createOffer after close\")\n );\n }\n\n var numAudioTracks = pc.transceivers.filter(function (t) {\n return t.kind === \"audio\";\n }).length;\n var numVideoTracks = pc.transceivers.filter(function (t) {\n return t.kind === \"video\";\n }).length;\n\n // Determine number of audio and video tracks we need to send/recv.\n var offerOptions = arguments[0];\n if (offerOptions) {\n // Reject Chrome legacy constraints.\n if (offerOptions.mandatory || offerOptions.optional) {\n throw new TypeError(\n \"Legacy mandatory/optional constraints not supported.\"\n );\n }\n if (offerOptions.offerToReceiveAudio !== undefined) {\n if (offerOptions.offerToReceiveAudio === true) {\n numAudioTracks = 1;\n } else if (offerOptions.offerToReceiveAudio === false) {\n numAudioTracks = 0;\n } else {\n numAudioTracks = offerOptions.offerToReceiveAudio;\n }\n }\n if (offerOptions.offerToReceiveVideo !== undefined) {\n if (offerOptions.offerToReceiveVideo === true) {\n numVideoTracks = 1;\n } else if (offerOptions.offerToReceiveVideo === false) {\n numVideoTracks = 0;\n } else {\n numVideoTracks = offerOptions.offerToReceiveVideo;\n }\n }\n }\n\n pc.transceivers.forEach(function (transceiver) {\n if (transceiver.kind === \"audio\") {\n numAudioTracks--;\n if (numAudioTracks < 0) {\n transceiver.wantReceive = false;\n }\n } else if (transceiver.kind === \"video\") {\n numVideoTracks--;\n if (numVideoTracks < 0) {\n transceiver.wantReceive = false;\n }\n }\n });\n\n // Create M-lines for recvonly streams.\n while (numAudioTracks > 0 || numVideoTracks > 0) {\n if (numAudioTracks > 0) {\n pc._createTransceiver(\"audio\");\n numAudioTracks--;\n }\n if (numVideoTracks > 0) {\n pc._createTransceiver(\"video\");\n numVideoTracks--;\n }\n }\n\n var sdp$1 = sdp.writeSessionBoilerplate(\n pc._sdpSessionId,\n pc._sdpSessionVersion++\n );\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n // For each track, create an ice gatherer, ice transport,\n // dtls transport, potentially rtpsender and rtpreceiver.\n var track = transceiver.track;\n var kind = transceiver.kind;\n var mid = transceiver.mid || sdp.generateIdentifier();\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(\n sdpMLineIndex,\n pc.usingBundle\n );\n }\n\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\n codec\n ) {\n return codec.name !== \"rtx\";\n });\n }\n localCapabilities.codecs.forEach(function (codec) {\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\n // by adding level-asymmetry-allowed=1\n if (\n codec.name === \"H264\" &&\n codec.parameters[\"level-asymmetry-allowed\"] === undefined\n ) {\n codec.parameters[\"level-asymmetry-allowed\"] = \"1\";\n }\n\n // for subsequent offers, we might have to re-use the payload\n // type of the last offer.\n if (\n transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.codecs\n ) {\n transceiver.remoteCapabilities.codecs.forEach(function (remoteCodec) {\n if (\n codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\n codec.clockRate === remoteCodec.clockRate\n ) {\n codec.preferredPayloadType = remoteCodec.payloadType;\n }\n });\n }\n });\n localCapabilities.headerExtensions.forEach(function (hdrExt) {\n var remoteExtensions =\n (transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.headerExtensions) ||\n [];\n remoteExtensions.forEach(function (rHdrExt) {\n if (hdrExt.uri === rHdrExt.uri) {\n hdrExt.id = rHdrExt.id;\n }\n });\n });\n\n // generate an ssrc now, to be used later in rtpSender.send\n var sendEncodingParameters = transceiver.sendEncodingParameters || [\n {\n ssrc: (2 * sdpMLineIndex + 1) * 1001,\n },\n ];\n if (track) {\n // add RTX\n if (\n edgeVersion >= 15019 &&\n kind === \"video\" &&\n !sendEncodingParameters[0].rtx\n ) {\n sendEncodingParameters[0].rtx = {\n ssrc: sendEncodingParameters[0].ssrc + 1,\n };\n }\n }\n\n if (transceiver.wantReceive) {\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\n transceiver.dtlsTransport,\n kind\n );\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n });\n\n // always offer BUNDLE and dispose on return if not supported.\n if (pc._config.bundlePolicy !== \"max-compat\") {\n sdp$1 +=\n \"a=group:BUNDLE \" +\n pc.transceivers\n .map(function (t) {\n return t.mid;\n })\n .join(\" \") +\n \"\\r\\n\";\n }\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\n\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n sdp$1 += writeMediaSection(\n transceiver,\n transceiver.localCapabilities,\n \"offer\",\n transceiver.stream,\n pc._dtlsRole\n );\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\n\n if (\n transceiver.iceGatherer &&\n pc.iceGatheringState !== \"new\" &&\n (sdpMLineIndex === 0 || !pc.usingBundle)\n ) {\n transceiver.iceGatherer.getLocalCandidates().forEach(function (cand) {\n cand.component = 1;\n sdp$1 += \"a=\" + sdp.writeCandidate(cand) + \"\\r\\n\";\n });\n\n if (transceiver.iceGatherer.state === \"completed\") {\n sdp$1 += \"a=end-of-candidates\\r\\n\";\n }\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: \"offer\",\n sdp: sdp$1,\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.createAnswer = function () {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(\n makeError(\"InvalidStateError\", \"Can not call createAnswer after close\")\n );\n }\n\n if (\n !(\n pc.signalingState === \"have-remote-offer\" ||\n pc.signalingState === \"have-local-pranswer\"\n )\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not call createAnswer in signalingState \" + pc.signalingState\n )\n );\n }\n\n var sdp$1 = sdp.writeSessionBoilerplate(\n pc._sdpSessionId,\n pc._sdpSessionVersion++\n );\n if (pc.usingBundle) {\n sdp$1 +=\n \"a=group:BUNDLE \" +\n pc.transceivers\n .map(function (t) {\n return t.mid;\n })\n .join(\" \") +\n \"\\r\\n\";\n }\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\n\n var mediaSectionsInOffer = sdp.getMediaSections(\n pc._remoteDescription.sdp\n ).length;\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\n return;\n }\n if (transceiver.rejected) {\n if (transceiver.kind === \"application\") {\n if (transceiver.protocol === \"DTLS/SCTP\") {\n // legacy fmt\n sdp$1 += \"m=application 0 DTLS/SCTP 5000\\r\\n\";\n } else {\n sdp$1 +=\n \"m=application 0 \" +\n transceiver.protocol +\n \" webrtc-datachannel\\r\\n\";\n }\n } else if (transceiver.kind === \"audio\") {\n sdp$1 +=\n \"m=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n\" + \"a=rtpmap:0 PCMU/8000\\r\\n\";\n } else if (transceiver.kind === \"video\") {\n sdp$1 +=\n \"m=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n\" +\n \"a=rtpmap:120 VP8/90000\\r\\n\";\n }\n sdp$1 +=\n \"c=IN IP4 0.0.0.0\\r\\n\" +\n \"a=inactive\\r\\n\" +\n \"a=mid:\" +\n transceiver.mid +\n \"\\r\\n\";\n return;\n }\n\n // FIXME: look at direction.\n if (transceiver.stream) {\n var localTrack;\n if (transceiver.kind === \"audio\") {\n localTrack = transceiver.stream.getAudioTracks()[0];\n } else if (transceiver.kind === \"video\") {\n localTrack = transceiver.stream.getVideoTracks()[0];\n }\n if (localTrack) {\n // add RTX\n if (\n edgeVersion >= 15019 &&\n transceiver.kind === \"video\" &&\n !transceiver.sendEncodingParameters[0].rtx\n ) {\n transceiver.sendEncodingParameters[0].rtx = {\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1,\n };\n }\n }\n }\n\n // Calculate intersection of capabilities.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\n return c.name.toLowerCase() === \"rtx\";\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n sdp$1 += writeMediaSection(\n transceiver,\n commonCapabilities,\n \"answer\",\n transceiver.stream,\n pc._dtlsRole\n );\n if (\n transceiver.rtcpParameters &&\n transceiver.rtcpParameters.reducedSize\n ) {\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: \"answer\",\n sdp: sdp$1,\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.addIceCandidate = function (candidate) {\n var pc = this;\n var sections;\n if (\n candidate &&\n !(candidate.sdpMLineIndex !== undefined || candidate.sdpMid)\n ) {\n return Promise.reject(new TypeError(\"sdpMLineIndex or sdpMid required\"));\n }\n\n // TODO: needs to go into ops queue.\n return new Promise(function (resolve, reject) {\n if (!pc._remoteDescription) {\n return reject(\n makeError(\n \"InvalidStateError\",\n \"Can not add ICE candidate without a remote description\"\n )\n );\n } else if (!candidate || candidate.candidate === \"\") {\n for (var j = 0; j < pc.transceivers.length; j++) {\n if (pc.transceivers[j].rejected) {\n continue;\n }\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\n sections[j] += \"a=end-of-candidates\\r\\n\";\n pc._remoteDescription.sdp =\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\n if (pc.usingBundle) {\n break;\n }\n }\n } else {\n var sdpMLineIndex = candidate.sdpMLineIndex;\n if (candidate.sdpMid) {\n for (var i = 0; i < pc.transceivers.length; i++) {\n if (pc.transceivers[i].mid === candidate.sdpMid) {\n sdpMLineIndex = i;\n break;\n }\n }\n }\n var transceiver = pc.transceivers[sdpMLineIndex];\n if (transceiver) {\n if (transceiver.rejected) {\n return resolve();\n }\n var cand =\n Object.keys(candidate.candidate).length > 0\n ? sdp.parseCandidate(candidate.candidate)\n : {};\n // Ignore Chrome's invalid candidates since Edge does not like them.\n if (cand.protocol === \"tcp\" && (cand.port === 0 || cand.port === 9)) {\n return resolve();\n }\n // Ignore RTCP candidates, we assume RTCP-MUX.\n if (cand.component && cand.component !== 1) {\n return resolve();\n }\n // when using bundle, avoid adding candidates to the wrong\n // ice transport. And avoid adding candidates added in the SDP.\n if (\n sdpMLineIndex === 0 ||\n (sdpMLineIndex > 0 &&\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)\n ) {\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\n return reject(\n makeError(\"OperationError\", \"Can not add ICE candidate\")\n );\n }\n }\n\n // update the remoteDescription.\n var candidateString = candidate.candidate.trim();\n if (candidateString.indexOf(\"a=\") === 0) {\n candidateString = candidateString.substr(2);\n }\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\n sections[sdpMLineIndex] +=\n \"a=\" + (cand.type ? candidateString : \"end-of-candidates\") + \"\\r\\n\";\n pc._remoteDescription.sdp =\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\n } else {\n return reject(\n makeError(\"OperationError\", \"Can not add ICE candidate\")\n );\n }\n }\n resolve();\n });\n };\n\n RTCPeerConnection.prototype.getStats = function (selector) {\n if (selector && selector instanceof window.MediaStreamTrack) {\n var senderOrReceiver = null;\n this.transceivers.forEach(function (transceiver) {\n if (transceiver.rtpSender && transceiver.rtpSender.track === selector) {\n senderOrReceiver = transceiver.rtpSender;\n } else if (\n transceiver.rtpReceiver &&\n transceiver.rtpReceiver.track === selector\n ) {\n senderOrReceiver = transceiver.rtpReceiver;\n }\n });\n if (!senderOrReceiver) {\n throw makeError(\"InvalidAccessError\", \"Invalid selector.\");\n }\n return senderOrReceiver.getStats();\n }\n\n var promises = [];\n this.transceivers.forEach(function (transceiver) {\n [\n \"rtpSender\",\n \"rtpReceiver\",\n \"iceGatherer\",\n \"iceTransport\",\n \"dtlsTransport\",\n ].forEach(function (method) {\n if (transceiver[method]) {\n promises.push(transceiver[method].getStats());\n }\n });\n });\n return Promise.all(promises).then(function (allStats) {\n var results = new Map();\n allStats.forEach(function (stats) {\n stats.forEach(function (stat) {\n results.set(stat.id, stat);\n });\n });\n return results;\n });\n };\n\n // fix low-level stat names and return Map instead of object.\n var ortcObjects = [\n \"RTCRtpSender\",\n \"RTCRtpReceiver\",\n \"RTCIceGatherer\",\n \"RTCIceTransport\",\n \"RTCDtlsTransport\",\n ];\n ortcObjects.forEach(function (ortcObjectName) {\n var obj = window[ortcObjectName];\n if (obj && obj.prototype && obj.prototype.getStats) {\n var nativeGetstats = obj.prototype.getStats;\n obj.prototype.getStats = function () {\n return nativeGetstats.apply(this).then(function (nativeStats) {\n var mapStats = new Map();\n Object.keys(nativeStats).forEach(function (id) {\n nativeStats[id].type = fixStatsType(nativeStats[id]);\n mapStats.set(id, nativeStats[id]);\n });\n return mapStats;\n });\n };\n }\n });\n\n // legacy callback shims. Should be moved to adapter.js some days.\n var methods = [\"createOffer\", \"createAnswer\"];\n methods.forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[0] === \"function\" || typeof args[1] === \"function\") {\n // legacy\n return nativeMethod.apply(this, [arguments[2]]).then(\n function (description) {\n if (typeof args[0] === \"function\") {\n args[0].apply(null, [description]);\n }\n },\n function (error) {\n if (typeof args[1] === \"function\") {\n args[1].apply(null, [error]);\n }\n }\n );\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n methods = [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"];\n methods.forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[1] === \"function\" || typeof args[2] === \"function\") {\n // legacy\n return nativeMethod.apply(this, arguments).then(\n function () {\n if (typeof args[1] === \"function\") {\n args[1].apply(null);\n }\n },\n function (error) {\n if (typeof args[2] === \"function\") {\n args[2].apply(null, [error]);\n }\n }\n );\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n // getStats is special. It doesn't have a spec legacy method yet we support\n // getStats(something, cb) without error callbacks.\n [\"getStats\"].forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[1] === \"function\") {\n return nativeMethod.apply(this, arguments).then(function () {\n if (typeof args[1] === \"function\") {\n args[1].apply(null);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n return RTCPeerConnection;\n};\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetUserMedia$2(window) {\n const navigator = window && window.navigator;\n\n const shimError_ = function (e) {\n return {\n name: { PermissionDeniedError: \"NotAllowedError\" }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint,\n toString() {\n return this.name;\n },\n };\n };\n\n // getUserMedia error shim.\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (c) {\n return origGetUserMedia(c).catch((e) => Promise.reject(shimError_(e)));\n };\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetDisplayMedia$1(window) {\n if (!(\"getDisplayMedia\" in window.navigator)) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n window.navigator.getDisplayMedia.bind(window.navigator);\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimPeerConnection$1(window, browserDetails) {\n if (window.RTCIceGatherer) {\n if (!window.RTCIceCandidate) {\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n return args;\n };\n }\n if (!window.RTCSessionDescription) {\n window.RTCSessionDescription = function RTCSessionDescription(args) {\n return args;\n };\n }\n // this adds an additional event listener to MediaStrackTrack that signals\n // when a tracks enabled property was changed. Workaround for a bug in\n // addStream, see below. No longer required in 15025+\n if (browserDetails.version < 15025) {\n const origMSTEnabled = Object.getOwnPropertyDescriptor(\n window.MediaStreamTrack.prototype,\n \"enabled\"\n );\n Object.defineProperty(window.MediaStreamTrack.prototype, \"enabled\", {\n set(value) {\n origMSTEnabled.set.call(this, value);\n const ev = new Event(\"enabled\");\n ev.enabled = value;\n this.dispatchEvent(ev);\n },\n });\n }\n }\n\n // ORTC defines the DTMF sender a bit different.\n // https://github.com/w3c/ortc/issues/714\n if (window.RTCRtpSender && !(\"dtmf\" in window.RTCRtpSender.prototype)) {\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === \"audio\") {\n this._dtmf = new window.RTCDtmfSender(this);\n } else if (this.track.kind === \"video\") {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n });\n }\n // Edge currently only implements the RTCDtmfSender, not the\n // RTCDTMFSender alias. See http://draft.ortc.org/#rtcdtmfsender2*\n if (window.RTCDtmfSender && !window.RTCDTMFSender) {\n window.RTCDTMFSender = window.RTCDtmfSender;\n }\n\n const RTCPeerConnectionShim = rtcpeerconnection(\n window,\n browserDetails.version\n );\n window.RTCPeerConnection = function RTCPeerConnection(config) {\n if (config && config.iceServers) {\n config.iceServers = filterIceServers$1(\n config.iceServers,\n browserDetails.version\n );\n log$1(\"ICE servers after filtering:\", config.iceServers);\n }\n return new RTCPeerConnectionShim(config);\n };\n window.RTCPeerConnection.prototype = RTCPeerConnectionShim.prototype;\n}\n\nfunction shimReplaceTrack(window) {\n // ORTC has replaceTrack -- https://github.com/w3c/ortc/issues/614\n if (\n window.RTCRtpSender &&\n !(\"replaceTrack\" in window.RTCRtpSender.prototype)\n ) {\n window.RTCRtpSender.prototype.replaceTrack =\n window.RTCRtpSender.prototype.setTrack;\n }\n}\n\nvar edgeShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimPeerConnection: shimPeerConnection$1,\n shimReplaceTrack: shimReplaceTrack,\n shimGetUserMedia: shimGetUserMedia$2,\n shimGetDisplayMedia: shimGetDisplayMedia$1,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetUserMedia$1(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function (constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n deprecated(\"navigator.getUserMedia\", \"navigator.mediaDevices.getUserMedia\");\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (\n !(\n browserDetails.version > 55 &&\n \"autoGainControl\" in navigator.mediaDevices.getSupportedConstraints()\n )\n ) {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (c) {\n if (typeof c === \"object\" && typeof c.audio === \"object\") {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, \"autoGainControl\", \"mozAutoGainControl\");\n remap(c.audio, \"noiseSuppression\", \"mozNoiseSuppression\");\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function () {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, \"mozAutoGainControl\", \"autoGainControl\");\n remap(obj, \"mozNoiseSuppression\", \"noiseSuppression\");\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function (c) {\n if (this.kind === \"audio\" && typeof c === \"object\") {\n c = JSON.parse(JSON.stringify(c));\n remap(c, \"autoGainControl\", \"mozAutoGainControl\");\n remap(c, \"noiseSuppression\", \"mozNoiseSuppression\");\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetDisplayMedia(window, preferredMediaSource) {\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\n constraints\n ) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException(\n \"getDisplayMedia without video \" + \"constraints is undefined\"\n );\n err.name = \"NotFoundError\";\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = { mediaSource: preferredMediaSource };\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimOnTrack(window) {\n if (\n typeof window === \"object\" &&\n window.RTCTrackEvent &&\n \"receiver\" in window.RTCTrackEvent.prototype &&\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\n ) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get() {\n return { receiver: this.receiver };\n },\n });\n }\n}\n\nfunction shimPeerConnection(window, browserDetails) {\n if (\n typeof window !== \"object\" ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)\n ) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\n function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (\n method === \"addIceCandidate\"\n ? window.RTCIceCandidate\n : window.RTCSessionDescription\n )(arguments[0]);\n return nativeMethod.apply(this, arguments);\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n }\n );\n }\n\n const modernStatsTypes = {\n inboundrtp: \"inbound-rtp\",\n outboundrtp: \"outbound-rtp\",\n candidatepair: \"candidate-pair\",\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats\n .apply(this, [selector || null])\n .then((stats) => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach((stat) => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== \"TypeError\") {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(\n i,\n Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type,\n })\n );\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nfunction shimSenderGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender\n )\n ) {\n return;\n }\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track\n ? this._pc.getStats(this.track)\n : Promise.resolve(new Map());\n };\n}\n\nfunction shimReceiverGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender\n )\n ) {\n return;\n }\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach((receiver) => (receiver._pc = this));\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nfunction shimRemoveStream(window) {\n if (\n !window.RTCPeerConnection ||\n \"removeStream\" in window.RTCPeerConnection.prototype\n ) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n deprecated(\"removeStream\", \"removeTrack\");\n this.getSenders().forEach((sender) => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nfunction shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nfunction shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck =\n initParameters && \"sendEncodings\" in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if (\"rid\" in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError(\"Invalid RID value provided.\");\n }\n }\n if (\"scaleResolutionDownBy\" in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError(\"scale_resolution_down_by must be >= 1.0\");\n }\n }\n if (\"maxFramerate\" in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError(\"max_framerate must be >= 0.0\");\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const { sender } = transceiver;\n const params = sender.getParameters();\n if (\n !(\"encodings\" in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)\n ) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(\n sender\n .setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n })\n .catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nfunction shimGetParameters(window) {\n if (!(typeof window === \"object\" && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters = function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!(\"encodings\" in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nfunction shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nfunction shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n\nvar firefoxShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimOnTrack: shimOnTrack,\n shimPeerConnection: shimPeerConnection,\n shimSenderGetStats: shimSenderGetStats,\n shimReceiverGetStats: shimReceiverGetStats,\n shimRemoveStream: shimRemoveStream,\n shimRTCDataChannel: shimRTCDataChannel,\n shimAddTransceiver: shimAddTransceiver,\n shimGetParameters: shimGetParameters,\n shimCreateOffer: shimCreateOffer,\n shimCreateAnswer: shimCreateAnswer,\n shimGetUserMedia: shimGetUserMedia$1,\n shimGetDisplayMedia: shimGetDisplayMedia,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimLocalStreamsAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n if (!(\"getLocalStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!(\"addStream\" in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream\n .getAudioTracks()\n .forEach((track) => _addTrack.call(this, track, stream));\n stream\n .getVideoTracks()\n .forEach((track) => _addTrack.call(this, track, stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n ...streams\n ) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!(\"removeStream\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach((sender) => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nfunction shimRemoteStreamsAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n if (!(\"getRemoteStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!(\"onaddstream\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"onaddstream\", {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener(\"addstream\", this._onaddstream);\n this.removeEventListener(\"track\", this._onaddstreampoly);\n }\n this.addEventListener(\"addstream\", (this._onaddstream = f));\n this.addEventListener(\n \"track\",\n (this._onaddstreampoly = (e) => {\n e.streams.forEach((stream) => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event(\"addstream\");\n event.stream = stream;\n this.dispatchEvent(event);\n });\n })\n );\n },\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener(\n \"track\",\n (this._onaddstreampoly = function (e) {\n e.streams.forEach((stream) => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event(\"addstream\");\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n })\n );\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nfunction shimCallbacksAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer = function createOffer(\n successCallback,\n failureCallback\n ) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer = function createAnswer(\n successCallback,\n failureCallback\n ) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function (description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function (description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function (candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nfunction shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (\n !navigator.getUserMedia &&\n navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia\n ) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints).then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nfunction shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({}, constraints, {\n video: compactObject(constraints.video),\n });\n }\n\n return constraints;\n}\n\nfunction shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection = function RTCPeerConnection(\n pcConfig,\n pcConstraints\n ) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty(\"urls\") && server.hasOwnProperty(\"url\")) {\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if (\"generateCertificate\" in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, \"generateCertificate\", {\n get() {\n return OrigPeerConnection.generateCertificate;\n },\n });\n }\n}\n\nfunction shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (\n typeof window === \"object\" &&\n window.RTCTrackEvent &&\n \"receiver\" in window.RTCTrackEvent.prototype &&\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\n ) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get() {\n return { receiver: this.receiver };\n },\n });\n }\n}\n\nfunction shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer(\n offerOptions\n ) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== \"undefined\") {\n // support bit values\n offerOptions.offerToReceiveAudio = !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(\n (transceiver) => transceiver.receiver.track.kind === \"audio\"\n );\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === \"sendrecv\") {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendonly\");\n } else {\n audioTransceiver.direction = \"sendonly\";\n }\n } else if (audioTransceiver.direction === \"recvonly\") {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"inactive\");\n } else {\n audioTransceiver.direction = \"inactive\";\n }\n }\n } else if (\n offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver\n ) {\n this.addTransceiver(\"audio\");\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== \"undefined\") {\n // support bit values\n offerOptions.offerToReceiveVideo = !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(\n (transceiver) => transceiver.receiver.track.kind === \"video\"\n );\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === \"sendrecv\") {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendonly\");\n } else {\n videoTransceiver.direction = \"sendonly\";\n }\n } else if (videoTransceiver.direction === \"recvonly\") {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"inactive\");\n } else {\n videoTransceiver.direction = \"inactive\";\n }\n }\n } else if (\n offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver\n ) {\n this.addTransceiver(\"video\");\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nfunction shimAudioContext(window) {\n if (typeof window !== \"object\" || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\nvar safariShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimLocalStreamsAPI: shimLocalStreamsAPI,\n shimRemoteStreamsAPI: shimRemoteStreamsAPI,\n shimCallbacksAPI: shimCallbacksAPI,\n shimGetUserMedia: shimGetUserMedia,\n shimConstraints: shimConstraints,\n shimRTCIceServerUrls: shimRTCIceServerUrls,\n shimTrackEventTransceiver: shimTrackEventTransceiver,\n shimCreateOfferLegacy: shimCreateOfferLegacy,\n shimAudioContext: shimAudioContext,\n});\n\n/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (\n !window.RTCIceCandidate ||\n (window.RTCIceCandidate && \"foundation\" in window.RTCIceCandidate.prototype)\n ) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (\n typeof args === \"object\" &&\n args.candidate &&\n args.candidate.indexOf(\"a=\") === 0\n ) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = sdp.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(\n nativeCandidate,\n parsedCandidate\n );\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n wrapPeerConnectionEvent(window, \"icecandidate\", (e) => {\n if (e.candidate) {\n Object.defineProperty(e, \"candidate\", {\n value: new window.RTCIceCandidate(e.candidate),\n writable: \"false\",\n });\n }\n return e;\n });\n}\n\nfunction shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!(\"sctp\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"sctp\", {\n get() {\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\n },\n });\n }\n\n const sctpInDescription = function (description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = sdp.splitSections(description.sdp);\n sections.shift();\n return sections.some((mediaSection) => {\n const mLine = sdp.parseMLine(mediaSection);\n return (\n mLine &&\n mLine.kind === \"application\" &&\n mLine.protocol.indexOf(\"SCTP\") !== -1\n );\n });\n };\n\n const getRemoteFirefoxVersion = function (description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function (remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === \"firefox\") {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize = browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function (description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === \"firefox\" && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = sdp.matchPrefix(description.sdp, \"a=max-message-size:\");\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === \"firefox\" && remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 76) {\n const { sdpSemantics } = this.getConfiguration();\n if (sdpSemantics === \"plan-b\") {\n Object.defineProperty(this, \"sctp\", {\n get() {\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, \"maxMessageSize\", {\n get() {\n return maxMessageSize;\n },\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nfunction shimSendThrowTypeError(window) {\n if (\n !(\n window.RTCPeerConnection &&\n \"createDataChannel\" in window.RTCPeerConnection.prototype\n )\n ) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (\n dc.readyState === \"open\" &&\n pc.sctp &&\n length > pc.sctp.maxMessageSize\n ) {\n throw new TypeError(\n \"Message too large (can send a maximum of \" +\n pc.sctp.maxMessageSize +\n \" bytes)\"\n );\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n wrapPeerConnectionEvent(window, \"datachannel\", (e) => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nfunction shimConnectionState(window) {\n if (\n !window.RTCPeerConnection ||\n \"connectionState\" in window.RTCPeerConnection.prototype\n ) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, \"connectionState\", {\n get() {\n return (\n {\n completed: \"connected\",\n checking: \"connecting\",\n }[this.iceConnectionState] || this.iceConnectionState\n );\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(proto, \"onconnectionstatechange\", {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener(\n \"connectionstatechange\",\n this._onconnectionstatechange\n );\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener(\n \"connectionstatechange\",\n (this._onconnectionstatechange = cb)\n );\n }\n },\n enumerable: true,\n configurable: true,\n });\n\n [\"setLocalDescription\", \"setRemoteDescription\"].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function () {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = (e) => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event(\"connectionstatechange\", e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener(\n \"iceconnectionstatechange\",\n this._connectionstatechangepoly\n );\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nfunction removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === \"safari\" && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (\n desc &&\n desc.sdp &&\n desc.sdp.indexOf(\"\\na=extmap-allow-mixed\") !== -1\n ) {\n const sdp = desc.sdp\n .split(\"\\n\")\n .filter((line) => {\n return line.trim() !== \"a=extmap-allow-mixed\";\n })\n .join(\"\\n\");\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (\n window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription\n ) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nfunction shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (\n ((browserDetails.browser === \"chrome\" && browserDetails.version < 78) ||\n (browserDetails.browser === \"firefox\" &&\n browserDetails.version < 68) ||\n browserDetails.browser === \"safari\") &&\n arguments[0] &&\n arguments[0].candidate === \"\"\n ) {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\nvar commonShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimRTCIceCandidate: shimRTCIceCandidate,\n shimMaxMessageSize: shimMaxMessageSize,\n shimSendThrowTypeError: shimSendThrowTypeError,\n shimConnectionState: shimConnectionState,\n removeExtmapAllowMixed: removeExtmapAllowMixed,\n shimAddIceCandidateNullOrEmpty: shimAddIceCandidateNullOrEmpty,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\n// Shimming starts here.\nfunction adapterFactory(\n { window } = {},\n options = {\n shimChrome: true,\n shimFirefox: true,\n shimEdge: true,\n shimSafari: true,\n }\n) {\n // Utils.\n const logging = log$1;\n const browserDetails = detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: extractVersion,\n disableLog: disableLog,\n disableWarnings: disableWarnings,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case \"chrome\":\n if (!chromeShim || !shimPeerConnection$2 || !options.shimChrome) {\n logging(\"Chrome shim is not included in this adapter release.\");\n return adapter;\n }\n if (browserDetails.version === null) {\n logging(\"Chrome shim can not determine version, not shimming.\");\n return adapter;\n }\n logging(\"adapter.js shimming chrome.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimGetUserMedia$3(window, browserDetails);\n shimMediaStream(window);\n shimPeerConnection$2(window, browserDetails);\n shimOnTrack$1(window);\n shimAddTrackRemoveTrack(window, browserDetails);\n shimGetSendersWithDtmf(window);\n shimGetStats(window);\n shimSenderReceiverGetStats(window);\n fixNegotiationNeeded(window, browserDetails);\n\n shimRTCIceCandidate(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n case \"firefox\":\n if (!firefoxShim || !shimPeerConnection || !options.shimFirefox) {\n logging(\"Firefox shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming firefox.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimGetUserMedia$1(window, browserDetails);\n shimPeerConnection(window, browserDetails);\n shimOnTrack(window);\n shimRemoveStream(window);\n shimSenderGetStats(window);\n shimReceiverGetStats(window);\n shimRTCDataChannel(window);\n shimAddTransceiver(window);\n shimGetParameters(window);\n shimCreateOffer(window);\n shimCreateAnswer(window);\n\n shimRTCIceCandidate(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n break;\n case \"edge\":\n if (!edgeShim || !shimPeerConnection$1 || !options.shimEdge) {\n logging(\"MS edge shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming edge.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = edgeShim;\n\n shimGetUserMedia$2(window);\n shimGetDisplayMedia$1(window);\n shimPeerConnection$1(window, browserDetails);\n shimReplaceTrack(window);\n\n // the edge shim implements the full RTCIceCandidate object.\n\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n break;\n case \"safari\":\n if (!safariShim || !options.shimSafari) {\n logging(\"Safari shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming safari.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimRTCIceServerUrls(window);\n shimCreateOfferLegacy(window);\n shimCallbacksAPI(window);\n shimLocalStreamsAPI(window);\n shimRemoteStreamsAPI(window);\n shimTrackEventTransceiver(window);\n shimGetUserMedia(window);\n shimAudioContext(window);\n\n shimRTCIceCandidate(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging(\"Unsupported browser!\");\n break;\n }\n\n return adapter;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nadapterFactory({ window: typeof window === \"undefined\" ? undefined : window });\n\n/**\n * @class AudioTrackConstraints\n * @classDesc Constraints for creating an audio MediaStreamTrack.\n * @memberof Owt.Base\n * @constructor\n * @param {Owt.Base.AudioSourceInfo} source Source info of this audio track.\n */\n\nclass AudioTrackConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(source) {\n if (!Object.values(AudioSourceInfo).some((v) => v === source)) {\n throw new TypeError(\"Invalid source.\");\n }\n /**\n * @member {string} source\n * @memberof Owt.Base.AudioTrackConstraints\n * @desc Values could be \"mic\", \"screen-cast\", \"file\" or \"mixed\".\n * @instance\n */\n\n this.source = source;\n /**\n * @member {string} deviceId\n * @memberof Owt.Base.AudioTrackConstraints\n * @desc Do not provide deviceId if source is not \"mic\".\n * @instance\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\n */\n\n this.deviceId = undefined;\n }\n}\n/**\n * @class VideoTrackConstraints\n * @classDesc Constraints for creating a video MediaStreamTrack.\n * @memberof Owt.Base\n * @constructor\n * @param {Owt.Base.VideoSourceInfo} source Source info of this video track.\n */\n\nclass VideoTrackConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(source) {\n if (!Object.values(VideoSourceInfo).some((v) => v === source)) {\n throw new TypeError(\"Invalid source.\");\n }\n /**\n * @member {string} source\n * @memberof Owt.Base.VideoTrackConstraints\n * @desc Values could be \"camera\", \"screen-cast\", \"file\" or \"mixed\".\n * @instance\n */\n\n this.source = source;\n /**\n * @member {string} deviceId\n * @memberof Owt.Base.VideoTrackConstraints\n * @desc Do not provide deviceId if source is not \"camera\".\n * @instance\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\n */\n\n this.deviceId = undefined;\n /**\n * @member {Owt.Base.Resolution} resolution\n * @memberof Owt.Base.VideoTrackConstraints\n * @instance\n */\n\n this.resolution = undefined;\n /**\n * @member {number} frameRate\n * @memberof Owt.Base.VideoTrackConstraints\n * @instance\n */\n\n this.frameRate = undefined;\n }\n}\n/**\n * @class StreamConstraints\n * @classDesc Constraints for creating a MediaStream from screen mic and camera.\n * @memberof Owt.Base\n * @constructor\n * @param {?Owt.Base.AudioTrackConstraints} audioConstraints\n * @param {?Owt.Base.VideoTrackConstraints} videoConstraints\n */\n\nclass StreamConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(audioConstraints = false, videoConstraints = false) {\n /**\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForAudio} audio\n * @memberof Owt.Base.MediaStreamDeviceConstraints\n * @instance\n */\n this.audio = audioConstraints;\n /**\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForVideo} Video\n * @memberof Owt.Base.MediaStreamDeviceConstraints\n * @instance\n */\n\n this.video = videoConstraints;\n }\n} // eslint-disable-next-line require-jsdoc\n\nfunction isVideoConstrainsForScreenCast(constraints) {\n return (\n typeof constraints.video === \"object\" &&\n constraints.video.source === VideoSourceInfo.SCREENCAST\n );\n}\n/**\n * @class MediaStreamFactory\n * @classDesc A factory to create MediaStream. You can also create MediaStream by yourself.\n * @memberof Owt.Base\n */\n\nclass MediaStreamFactory {\n /**\n * @function createMediaStream\n * @static\n * @desc Create a MediaStream with given constraints. If you want to create a MediaStream for screen cast, please make sure both audio and video's source are \"screen-cast\".\n * @memberof Owt.Base.MediaStreamFactory\n * @return {Promise<MediaStream, Error>} Return a promise that is resolved when stream is successfully created, or rejected if one of the following error happened:\n * - One or more parameters cannot be satisfied.\n * - Specified device is busy.\n * - Cannot obtain necessary permission or operation is canceled by user.\n * - Video source is screen cast, while audio source is not.\n * - Audio source is screen cast, while video source is disabled.\n * @param {Owt.Base.StreamConstraints} constraints\n */\n static createMediaStream(constraints) {\n if (\n typeof constraints !== \"object\" ||\n (!constraints.audio && !constraints.video)\n ) {\n return Promise.reject(new TypeError(\"Invalid constrains\"));\n }\n\n if (\n !isVideoConstrainsForScreenCast(constraints) &&\n typeof constraints.audio === \"object\" &&\n constraints.audio.source === AudioSourceInfo.SCREENCAST\n ) {\n return Promise.reject(\n new TypeError(\"Cannot share screen without video.\")\n );\n }\n\n if (\n isVideoConstrainsForScreenCast(constraints) &&\n !isChrome() &&\n !isFirefox()\n ) {\n return Promise.reject(\n new TypeError(\"Screen sharing only supports Chrome and Firefox.\")\n );\n }\n\n if (\n isVideoConstrainsForScreenCast(constraints) &&\n typeof constraints.audio === \"object\" &&\n constraints.audio.source !== AudioSourceInfo.SCREENCAST\n ) {\n return Promise.reject(\n new TypeError(\n \"Cannot capture video from screen cast while capture audio from\" +\n \" other source.\"\n )\n );\n } // Check and convert constraints.\n\n if (!constraints.audio && !constraints.video) {\n return Promise.reject(\n new TypeError(\"At least one of audio and video must be requested.\")\n );\n }\n\n const mediaConstraints = Object.create({});\n\n if (\n typeof constraints.audio === \"object\" &&\n constraints.audio.source === AudioSourceInfo.MIC\n ) {\n mediaConstraints.audio = Object.create({});\n\n if (isEdge()) {\n mediaConstraints.audio.deviceId = constraints.audio.deviceId;\n } else {\n mediaConstraints.audio.deviceId = {\n exact: constraints.audio.deviceId,\n };\n }\n } else {\n if (constraints.audio.source === AudioSourceInfo.SCREENCAST) {\n mediaConstraints.audio = true;\n } else {\n mediaConstraints.audio = constraints.audio;\n }\n }\n\n if (typeof constraints.video === \"object\") {\n mediaConstraints.video = Object.create({});\n\n if (typeof constraints.video.frameRate === \"number\") {\n mediaConstraints.video.frameRate = constraints.video.frameRate;\n }\n\n if (\n constraints.video.resolution &&\n constraints.video.resolution.width &&\n constraints.video.resolution.height\n ) {\n if (constraints.video.source === VideoSourceInfo.SCREENCAST) {\n mediaConstraints.video.width = constraints.video.resolution.width;\n mediaConstraints.video.height = constraints.video.resolution.height;\n } else {\n mediaConstraints.video.width = Object.create({});\n mediaConstraints.video.width.exact =\n constraints.video.resolution.width;\n mediaConstraints.video.height = Object.create({});\n mediaConstraints.video.height.exact =\n constraints.video.resolution.height;\n }\n }\n\n if (typeof constraints.video.deviceId === \"string\") {\n mediaConstraints.video.deviceId = {\n exact: constraints.video.deviceId,\n };\n }\n\n if (\n isFirefox() &&\n constraints.video.source === VideoSourceInfo.SCREENCAST\n ) {\n mediaConstraints.video.mediaSource = \"screen\";\n }\n } else {\n mediaConstraints.video = constraints.video;\n }\n\n if (isVideoConstrainsForScreenCast(constraints)) {\n return navigator.mediaDevices.getDisplayMedia(mediaConstraints);\n } else {\n return navigator.mediaDevices.getUserMedia(mediaConstraints);\n }\n }\n}\n\n// Copyright (C) <2018> Intel Corporation\n\nvar media = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n AudioTrackConstraints: AudioTrackConstraints,\n VideoTrackConstraints: VideoTrackConstraints,\n StreamConstraints: StreamConstraints,\n MediaStreamFactory: MediaStreamFactory,\n AudioSourceInfo: AudioSourceInfo,\n VideoSourceInfo: VideoSourceInfo,\n TrackKind: TrackKind,\n Resolution: Resolution,\n});\n\nlet logger;\nlet errorLogger;\nfunction setLogger() {\n /*eslint-disable */\n logger = console.log;\n errorLogger = console.error;\n /*eslint-enable */\n}\nfunction log(message, ...optionalParams) {\n if (logger) {\n logger(message, ...optionalParams);\n }\n}\nfunction error(message, ...optionalParams) {\n if (errorLogger) {\n errorLogger(message, ...optionalParams);\n }\n}\n\nclass Event$1 {\n constructor(type) {\n this.listener = {};\n this.type = type | \"\";\n }\n\n on(event, fn) {\n if (!this.listener[event]) {\n this.listener[event] = [];\n }\n\n this.listener[event].push(fn);\n return true;\n }\n\n off(event, fn) {\n if (this.listener[event]) {\n var index = this.listener[event].indexOf(fn);\n\n if (index > -1) {\n this.listener[event].splice(index, 1);\n }\n\n return true;\n }\n\n return false;\n }\n\n offAll() {\n this.listener = {};\n }\n\n dispatch(event, data) {\n if (this.listener[event]) {\n this.listener[event].map((each) => {\n each.apply(null, [data]);\n });\n return true;\n }\n\n return false;\n }\n}\n\nclass RTCEndpoint extends Event$1 {\n constructor(options) {\n super(\"RTCPusherPlayer\");\n this.TAG = \"[RTCPusherPlayer]\";\n let defaults = {\n element: \"\",\n // html video element\n debug: false,\n // if output debug log\n zlmsdpUrl: \"\",\n simulcast: false,\n useCamera: true,\n audioEnable: true,\n videoEnable: true,\n recvOnly: false,\n resolution: {\n w: 0,\n h: 0,\n },\n };\n this.options = Object.assign({}, defaults, options);\n\n if (this.options.debug) {\n setLogger();\n }\n\n this.e = {\n onicecandidate: this._onIceCandidate.bind(this),\n ontrack: this._onTrack.bind(this),\n onicecandidateerror: this._onIceCandidateError.bind(this),\n onconnectionstatechange: this._onconnectionstatechange.bind(this),\n };\n this._remoteStream = null;\n this._localStream = null;\n this.pc = new RTCPeerConnection(null);\n this.pc.onicecandidate = this.e.onicecandidate;\n this.pc.onicecandidateerror = this.e.onicecandidateerror;\n this.pc.ontrack = this.e.ontrack;\n this.pc.onconnectionstatechange = this.e.onconnectionstatechange;\n if (\n !this.options.recvOnly &&\n (this.options.audioEnable || this.options.videoEnable)\n )\n this.start();\n else this.receive();\n }\n\n receive() {\n const AudioTransceiverInit = {\n direction: \"recvonly\",\n sendEncodings: [],\n };\n const VideoTransceiverInit = {\n direction: \"recvonly\",\n sendEncodings: [],\n };\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\n this.pc\n .createOffer()\n .then((desc) => {\n log(this.TAG, \"offer:\", desc.sdp);\n this.pc.setLocalDescription(desc).then(() => {\n axios({\n method: \"post\",\n url: this.options.zlmsdpUrl,\n responseType: \"json\",\n data: desc.sdp,\n headers: {\n \"Content-Type\": \"text/plain;charset=utf-8\",\n },\n }).then((response) => {\n let ret = response.data; //JSON.parse(response.data);\n\n if (ret.code != 0) {\n // mean failed for offer/anwser exchange\n this.dispatch(Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED, ret);\n return;\n }\n\n let anwser = {};\n anwser.sdp = ret.sdp;\n anwser.type = \"answer\";\n log(this.TAG, \"answer:\", ret.sdp);\n this.pc\n .setRemoteDescription(anwser)\n .then(() => {\n log(this.TAG, \"set remote sucess\");\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n });\n });\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n }\n\n start() {\n let videoConstraints = false;\n let audioConstraints = false;\n\n if (this.options.useCamera) {\n if (this.options.videoEnable)\n videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\n } else {\n if (this.options.videoEnable) {\n videoConstraints = new VideoTrackConstraints(\n VideoSourceInfo.SCREENCAST\n );\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(\n AudioSourceInfo.SCREENCAST\n );\n } else {\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\n else {\n // error shared display media not only audio\n error(this.TAG, \"error paramter\");\n }\n }\n }\n\n if (\n this.options.resolution.w != 0 &&\n this.options.resolution.h != 0 &&\n typeof videoConstraints == \"object\"\n ) {\n videoConstraints.resolution = new Resolution(\n this.options.resolution.w,\n this.options.resolution.h\n );\n }\n\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(audioConstraints, videoConstraints)\n )\n .then((stream) => {\n this._localStream = stream;\n this.dispatch(Events$1.WEBRTC_ON_LOCAL_STREAM, stream);\n const AudioTransceiverInit = {\n direction: \"sendrecv\",\n sendEncodings: [],\n };\n const VideoTransceiverInit = {\n direction: \"sendrecv\",\n sendEncodings: [],\n };\n\n if (this.options.simulcast && stream.getVideoTracks().length > 0) {\n VideoTransceiverInit.sendEncodings = [\n {\n rid: \"h\",\n active: true,\n maxBitrate: 1000000,\n },\n {\n rid: \"m\",\n active: true,\n maxBitrate: 500000,\n scaleResolutionDownBy: 2,\n },\n {\n rid: \"l\",\n active: true,\n maxBitrate: 200000,\n scaleResolutionDownBy: 4,\n },\n ];\n }\n\n if (stream.getAudioTracks().length > 0) {\n this.pc.addTransceiver(\n stream.getAudioTracks()[0],\n AudioTransceiverInit\n );\n } else {\n AudioTransceiverInit.direction = \"recvonly\";\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\n }\n\n if (stream.getVideoTracks().length > 0) {\n this.pc.addTransceiver(\n stream.getVideoTracks()[0],\n VideoTransceiverInit\n );\n } else {\n VideoTransceiverInit.direction = \"recvonly\";\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\n }\n /*\n stream.getTracks().forEach((track,idx)=>{\n debug.log(this.TAG,track);\n this.pc.addTrack(track);\n });\n */\n\n this.pc\n .createOffer()\n .then((desc) => {\n log(this.TAG, \"offer:\", desc.sdp);\n this.pc.setLocalDescription(desc).then(() => {\n axios({\n method: \"post\",\n url: this.options.zlmsdpUrl,\n responseType: \"json\",\n data: desc.sdp,\n headers: {\n \"Content-Type\": \"text/plain;charset=utf-8\",\n },\n }).then((response) => {\n let ret = response.data; //JSON.parse(response.data);\n\n if (ret.code != 0) {\n // mean failed for offer/anwser exchange\n this.dispatch(\n Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,\n ret\n );\n return;\n }\n\n let anwser = {};\n anwser.sdp = ret.sdp;\n anwser.type = \"answer\";\n log(this.TAG, \"answer:\", ret.sdp);\n this.pc\n .setRemoteDescription(anwser)\n .then(() => {\n log(this.TAG, \"set remote sucess\");\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n });\n });\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n })\n .catch((e) => {\n this.dispatch(Events$1.CAPTURE_STREAM_FAILED); //debug.error(this.TAG,e);\n }); //const offerOptions = {};\n\n /*\n if (typeof this.pc.addTransceiver === 'function') {\n // |direction| seems not working on Safari.\n this.pc.addTransceiver('audio', { direction: 'recvonly' });\n this.pc.addTransceiver('video', { direction: 'recvonly' });\n } else {\n offerOptions.offerToReceiveAudio = true;\n offerOptions.offerToReceiveVideo = true;\n }\n */\n }\n\n _onIceCandidate(event) {\n if (event.candidate) {\n log(\"Remote ICE candidate: \\n \" + event.candidate.candidate); // Send the candidate to the remote peer\n }\n }\n\n _onTrack(event) {\n if (this.options.element && event.streams && event.streams.length > 0) {\n this.options.element.srcObject = event.streams[0];\n this._remoteStream = event.streams[0];\n this.dispatch(Events$1.WEBRTC_ON_REMOTE_STREAMS, event);\n } else {\n error(\"element pararm is failed\");\n }\n }\n\n _onIceCandidateError(event) {\n this.dispatch(Events$1.WEBRTC_ICE_CANDIDATE_ERROR, event);\n }\n\n _onconnectionstatechange(event) {\n this.dispatch(\n Events$1.WEBRTC_ON_CONNECTION_STATE_CHANGE,\n this.pc.connectionState\n );\n }\n\n close() {\n if (this.pc) {\n this.pc.close();\n this.pc = null;\n }\n\n if (this.options) {\n this.options = null;\n }\n\n if (this._localStream) {\n this._localStream.getTracks().forEach((track, idx) => {\n track.stop();\n });\n }\n\n if (this._remoteStream) {\n this._remoteStream.getTracks().forEach((track, idx) => {\n track.stop();\n });\n }\n }\n\n get remoteStream() {\n return this._remoteStream;\n }\n\n get localStream() {\n return this._localStream;\n }\n}\n\nconst quickScan = [\n {\n label: \"4K(UHD)\",\n width: 3840,\n height: 2160,\n },\n {\n label: \"1080p(FHD)\",\n width: 1920,\n height: 1080,\n },\n {\n label: \"UXGA\",\n width: 1600,\n height: 1200,\n ratio: \"4:3\",\n },\n {\n label: \"720p(HD)\",\n width: 1280,\n height: 720,\n },\n {\n label: \"SVGA\",\n width: 800,\n height: 600,\n },\n {\n label: \"VGA\",\n width: 640,\n height: 480,\n },\n {\n label: \"360p(nHD)\",\n width: 640,\n height: 360,\n },\n {\n label: \"CIF\",\n width: 352,\n height: 288,\n },\n {\n label: \"QVGA\",\n width: 320,\n height: 240,\n },\n {\n label: \"QCIF\",\n width: 176,\n height: 144,\n },\n {\n label: \"QQVGA\",\n width: 160,\n height: 120,\n },\n];\nfunction GetSupportCameraResolutions$1() {\n return new Promise(function (resolve, reject) {\n let resolutions = [];\n let ok = 0;\n let err = 0;\n\n for (let i = 0; i < quickScan.length; ++i) {\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n videoConstraints.resolution = new Resolution(\n quickScan[i].width,\n quickScan[i].height\n );\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(false, videoConstraints)\n )\n .then((stream) => {\n resolutions.push(quickScan[i]);\n ok++;\n\n if (ok + err == quickScan.length) {\n resolve(resolutions);\n }\n })\n .catch((e) => {\n err++;\n\n if (ok + err == quickScan.length) {\n resolve(resolutions);\n }\n });\n }\n });\n}\nfunction GetAllScanResolution$1() {\n return quickScan;\n}\nfunction isSupportResolution$1(w, h) {\n return new Promise(function (resolve, reject) {\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n videoConstraints.resolution = new Resolution(w, h);\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(false, videoConstraints)\n )\n .then((stream) => {\n resolve();\n })\n .catch((e) => {\n reject(e);\n });\n });\n}\nconst Events = Events$1;\nconst Media = media;\nconst Endpoint = RTCEndpoint;\nconst GetSupportCameraResolutions = GetSupportCameraResolutions$1;\nconst GetAllScanResolution = GetAllScanResolution$1;\nconst isSupportResolution = isSupportResolution$1;\n\nexport {\n Endpoint,\n Events,\n GetAllScanResolution,\n GetSupportCameraResolutions,\n Media,\n isSupportResolution,\n};\n//# sourceMappingURL=ZLMRTCClient.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["config","prefix","conf","classNames","ty","map","item","component","name","install","app","_context","slots","useSlots","i","default","utils","className","installComponent","getSlots","useVModel","props","key","emit","computed","get","set","value","active","type","String","Number","title","mode","titleClassName","itemClassName","menuList","HeaderMenu","defineComponent","setup","prop","menuLeft","slice","length","menuRight","HeaderMenuItem","emits","ref","watch","e","immediate","icon","HeaderMenuTitle","instance","axios","create","baseURL","timeout","headers","clientType","userId","getToken","sessionStorage","getItem","interceptors","request","use","method","paramsSerializer","params","JSON","stringify","Authorization","err","Promise","reject","response","res","resData","data","status","code","resolve","getByUuid","uuid","Events$1","WEBRTC_NOT_SUPPORT","WEBRTC_ICE_CANDIDATE_ERROR","WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED","WEBRTC_ON_REMOTE_STREAMS","WEBRTC_ON_LOCAL_STREAM","WEBRTC_ON_CONNECTION_STATE_CHANGE","CAPTURE_STREAM_FAILED","isFirefox","window","navigator","userAgent","match","isChrome","isEdge","AudioSourceInfo","MIC","SCREENCAST","FILE","MIXED","VideoSourceInfo","CAMERA","Resolution","constructor","width","height","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","pos","parseInt","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","prototype","nativeAddEventListener","addEventListener","nativeEventName","cb","apply","arguments","wrappedCallback","modifiedEvent","handleEvent","_eventMap","Map","nativeRemoveEventListener","removeEventListener","has","unwrappedCb","delete","size","Object","keys","defineProperty","enumerable","configurable","disableLog","bool","Error","disableWarnings","log$1","console","log","deprecated","oldMethod","newMethod","warn","detectBrowser","result","browser","version","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","mediaDevices","supportsUnifiedPlan","RTCRtpTransceiver","isObject","val","toString","call","compactObject","reduce","accumulator","isObj","isEmptyObject","undefined","assign","walkStats","stats","base","resultSet","id","forEach","endsWith","filterStats","track","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","push","trackStat","trackId","logging","shimGetUserMedia$3","browserDetails","constraintsToChrome_","c","mandatory","optional","cc","r","ideal","exact","min","max","oldname_","charAt","toUpperCase","oc","mix","advanced","concat","shimConstraints_","constraints","func","parse","audio","remap","obj","a","b","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","filter","d","kind","dev","find","some","label","toLowerCase","includes","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","message","constraint","constraintName","getUserMedia_","onSuccess","onError","getUserMedia","bind","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","stop","DOMException","shimGetDisplayMedia$2","getSourceId","error","getDisplayMedia","sourceId","widthSpecified","heightSpecified","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxWidth","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack$1","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","event","Event","transceiver","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","indexOf","splice","origAddStream","addStream","origRemoveStream","removeStream","s","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","t","oldStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","args","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection$2","RTCIceCandidate","fixNegotiationNeeded","target","getConfiguration","sdpSemantics","chromeShim","freeze","__proto__","shimOnTrack","shimPeerConnection","shimGetUserMedia","shimGetDisplayMedia","filterIceServers$1","iceServers","edgeVersion","hasTurn","server","urls","url","isString","validTurn","startsWith","createCommonjsModule","fn","module","exports","SDPUtils","generateIdentifier","Math","random","substr","localCName","splitLines","blob","trim","split","line","splitSections","parts","part","index","getDescription","sections","getMediaSections","shift","matchPrefix","parseCandidate","substring","candidate","foundation","protocol","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","join","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","direction","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","j","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","isNaN","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","user","writeMediaSection","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","msid","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","fixStatsType","inboundrtp","outboundrtp","candidatepair","dtlsRole","sdp$1","_initialTrackId","filterIceServers","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","action","offer","answer","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidAccessError","TypeError","OperationError","rtcpeerconnection","addTrackToStreamAndFireEvent","MediaStreamTrackEvent","removeTrackFromStreamAndFireEvent","fireAddTrack","trackEvent","setTimeout","_dispatchEvent","_eventTarget","document","createDocumentFragment","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceConnectionState","connectionState","iceGatheringState","usingBundle","bundlePolicy","rtcpMuxPolicy","iceTransportPolicy","_iceGatherers","iceCandidatePoolSize","gatherPolicy","_config","transceivers","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","ondatachannel","_emitGatheringStateChange","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","transports","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clone","clonedTrack","enabled","_createIceGatherer","sdpMLineIndex","writable","bufferedCandidateEvents","bufferCandidates","end","state","_gather","onlocalcandidate","evt","sdpMid","cand","serializedCandidate","toJSON","complete","every","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","onerror","_disposeIceAndDtlsTransports","_transceive","send","recv","encodings","p","receive","isIceLite","rejected","remoteIceParameters","remoteDtlsParameters","start","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","getCapabilities","isNewTrack","nativeTrack","hasRtx","sid","close","newState","states","new","closed","checking","connected","completed","disconnected","failed","connecting","createOffer","numAudioTracks","numVideoTracks","offerOptions","offerToReceiveAudio","offerToReceiveVideo","remoteCodec","hdrExt","remoteExtensions","rHdrExt","getLocalCandidates","createAnswer","mediaSectionsInOffer","localTrack","addIceCandidate","candidateString","senderOrReceiver","promises","all","allStats","results","ortcObjects","ortcObjectName","nativeGetstats","nativeStats","mapStats","methods","shimGetUserMedia$2","catch","shimGetDisplayMedia$1","shimPeerConnection$1","origMSTEnabled","ev","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimReplaceTrack","replaceTrack","setTrack","edgeShim","shimGetUserMedia$1","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","test","rid","parseFloat","scaleResolutionDownBy","RangeError","maxFramerate","getParameters","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","firefoxShim","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","successCallback","failureCallback","options","promise","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","hasOwnProperty","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","audioTransceiver","getTransceivers","setDirection","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","safariShim","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","byteLength","readyState","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","commonShim","adapterFactory","shimChrome","shimFirefox","shimEdge","shimSafari","adapter","browserShim","AudioTrackConstraints","source","values","v","VideoTrackConstraints","resolution","StreamConstraints","audioConstraints","videoConstraints","isVideoConstrainsForScreenCast","MediaStreamFactory","createMediaStream","mediaConstraints","logger","errorLogger","setLogger","optionalParams","Event$1","listener","on","off","offAll","dispatch","each","RTCEndpoint","TAG","defaults","element","debug","zlmsdpUrl","simulcast","useCamera","audioEnable","videoEnable","recvOnly","w","h","_onIceCandidate","_onTrack","onicecandidateerror","_onIceCandidateError","_remoteStream","_localStream","AudioTransceiverInit","VideoTransceiverInit","responseType","ret","anwser","srcObject","remoteStream","localStream","Events","Endpoint","appName","WebRtcMt","opt","init","p_player","playerMap","streamMap","mediaServerAddrMap","endpointConfig","createRtspUrl","plays","cameraUserName","cameraPwd","cameraIp","cameraRtspPort","cameraChannel","cameraStream","videoElm","mediaServerAddr","addRtspProxyUrl","hkNvrRtsp","sdpUrl","rtsp","createVideo","startPlay","text","info","stopPlay","player","clear","playEvent","rePlay","DISCONNECTED","LOST_SERVER","play","EndpointConfig","getElementById","camera","cameraUuid","timer","Date","getTime","VideoPlayer","_prop","streamType","webrtcTemplateMerged","replaceAll","mediaServerPo","pass","rtspPort","deep","onUnmounted","headerMenu","headerMenuItem","headerMenuTitle","videoPlayer","About","summary","hardware","software","database","manualUrl","context","reactive","showContent","loading","confirm","cancel","useTableList","getData","listProp","tableList","isLoading","total","refresh","debounce","totalCount","currPage","handlePageChange","page","getUser","corpId","token","userName","isPlainObject","omit","msg","getUserList","getRoleList","getEmployeeList","insertOneUserRecord","post","editUserRecord","put","resetPassword","changePassword","detail","deleteUserById","getEmployeeDetailInfo","employeeId","useModalVisibleControl","isDialogVisible","tableRow","handleOpenDialog","record","encodeStr","str","btoa","getRequiredRule","required","getMaxRule","UserProfileDialog","visible","Boolean","urlMap","inject","isVisible","profile","nextTick","api","employeeDetail","display","textAlign","sex","age","nativePlace","identityCard","hiredate","mobile","bossName","jobPostNames","footer","_func","flag","SearchSelect","Array","getUrl","extParams","valuePorp","excludeValues","attrs","modelValue","optionList","isFetching","lastFetchId","getOptionList","isNil","fetchId","keyword","curr","prev","isEqual","isArray","UpdateUserDialog","onRefresh","Function","formRef","form","cloneDeep","roleIds","resetFields","employeeList","modalTitle","isView","isProfileShow","handleProfileClick","handleResetPassword","Modal","content","onOk","resetPass","success","validatePassword","rule","checkPass","validateCheckPass","passWord","handleCommit","validate","add","update","span","employeeName","validator","roleTypeNames","phone","zhixin","wechat","mail","DEFAULT_URL","list","roleList","column","dataIndex","customRender","UserManager","provide","formState","keyWord","pageNum","pageSize","handleSubmit","isAddDialogShow","handleAddClick","isViewDialogShow","viewUserRecord","handleView","row","isEditDialogShow","handleEditClick","isDescDialogShow","descUserRecord","handleDecs","preventDefault","handleDeleteUser","marginBottom","resolveComponent","current","editFlg","deleteFlg","getRoleListByPager","switchRoleEnableStatus","insertRole","getRoleTreeEdit","getRoleTree","deleteRoleById","roleTypeId","transformMenuTree","treeData","softSysId","softSysName","subList","UpdateRoleDialog","checkedPermissionList","addPermission","editPermission","roleMenuVoList","checkedMenuIds","validatePermission","save","roleCode","roleTypeName","roleDesc","overflowY","children","switchStatus","columns","RoleManager","handleSwitchEnable","enable","viewRoleRecord","handleViewClick","editRoleRecord","handleDeleteClick","userCount","operation","emitterMap","useBus","emitter","mitt","getMenuTreeList","insertMenuRecord","editMenuRecord","deleteMenuById","menuId","sortMenu","uploadJSONFile","file","formData","FormData","append","ContentType","useProxy","getCurrentInstance","proxy","findById","childProp","dataList","node","removeDateProp","getParentById","sub","CommonTree","downLoadName","onSelect","onCopy","onDelete","onEdit","onAdd","onDrop","isJSONOperation","onJSONUploadClick","bus","searchText","originData","getTreeData","callback","selectedKeys","handleSelectNode","selected","_refresh","_reselect","parent","handleDownload","Blob","URL","createObjectURL","aEl","createElement","href","download","click","handleCopy","handleEdit","handleAddNodeClick","handleDelete","isDraggable","handleDrop","dropKey","dragKey","dragNode","dropPos","dropPosition","loop","dragObj","arr","dropToGap","unshift","expanded","ar","_item","setSort","sort","ind","handleRefresh","onMounted","onBeforeUnmount","padding","showLeafIcon","isSystem","dataRef","float","stopPropagation","valid","iconsList","CiOutlined","UpOutlined","ApiOutlined","EyeOutlined","KeyOutlined","IconSelect","selectValue","UpdateMenuDialog","isSystemParent","level","parentId","UploadJSONDialog","fileList","upload","originFileObj","onCancle","render","MenuSelectTree","treeRef","tree","isAddNodeDialogShow","addNodeParent","isUploadDialogShow","handleUploadClick","Dynamicicon","createVNode","icons","MenuDetail","isEdit","startEdit","handleSave","_edit","MenuManager","detailRef","currSelectNode","handleNodeSelect","handleNodeEdit","getPostList","switchPostEnable","getDepList","orgId","departmentList","updatePostRecord","insertPostRecord","deletePostById","jobPostId","useModalTitle","moduleName","useModalForm","getRecord","transformForm","cloneRecord","UpdatePostDialog","depList","createDt","depName","depId","remark","PostManager","viewRecord","editRecord","employeeCount","warning","checked","justifyContent","onChange","getTeamListByPage","switchEnableTeam","departmentId","edidTeamRecord","insertTeam","deleteTeamById","memberIds","isClean","empList","leaderId","postList","jobPostName","memberNames","leaderName","TeamManager","getDepData","insertDepRecord","updateDepRecord","deleteDepById","getDepEmployeeSelectList","ruleType","sortDepList","getDetail","getEmployeeDetail","insetEmployee","updateEmployee","deleteEmployeeById","UpdateEmployeeDialog","empDetail","jobPostIds","dayjs","format","addEmp","updateEmp","style","pattern","date","isAfter","allowClear","empSelect","bossId","postSelect","EmployeeTable","isValid","isTopLevel","deleteEmp","UpdateDepDialog","filteredDepList","fDep","dep","isEmpty","parentName","DepTree","handleSelect","isAddDepDialogShow","handleAddDepClick","addDepParent","isEditDepDialogShow","handleEditDepClick","editDepRecord","hanldeDeleteDep","hanldeDrop","DepManager","currDep","parentDepName","handleSelectDep","getList","getHead","searchList","LogManager","systemType","moduleType","operateType","recordType","startTime","endTime","time","systemTypeList","moduleTypeList","operateTypeList","recordTypeList","resp","handleReset","submit","startOf","endOf","contentText","createTime","headName","margin","getGroupList","getParamDefineList","groupId","batchSaveParamsValue","ProFormItem","paramDefine","paramDefineValue","isSwitch","inputValue","handleValueChange","Filed","InputNumber","Switch","Select","Input","rules","maxValue","minValue","limitLength","regularExpression","inputProps","unit","writeable","disabled","DynamicForm","urmMap","formDescList","getFormDescList","define","paramDefineValueVoList","valueDefineMap","handleFieldChange","_confirm","valueDefine","_update","CollapseContainer","defaultCollapse","isOpen","TabItem","tabId","groupFormRef","cellFormRef","onBeforeUpdate","groupList","getGoupAndCellParams","groupRes","cellPromises","_children","resList","allFormRef","validateList","formList","updateFormList","ins","cell","ParamManager","tabs","getTabs","Editpasswordform","formModel","checkPassWord","_validate","_reset","oldPassWord","updatePass","PersonalSetting","passwordFormRef","canEdit","copyForm","passwordForm","handleSavePassword","handleCancelClick","clearValidate","comps","pageComponents","components"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/utils/config.ts","../../src/utils/className.ts","../../src/utils/installComponent.ts","../../src/utils/getSlots.ts","../../src/utils/index.ts","../../src/pageComponent/hooks/useVModel.ts","../../src/components/headerMenu/index.tsx","../../src/components/headerMenuItem/index.tsx","../../src/components/headerMenuTitle/index.tsx","../../src/components/videoPlayer/util/axios.ts","../../src/components/videoPlayer/util/byUuid.ts","../src/components/videoPlayer/util/ZLMRTCClient.js","../../src/components/videoPlayer/util/video.ts","../../src/components/videoPlayer/index.tsx","../../src/components/index.ts","../../src/pageComponent/views/systemManager/about.tsx","../../src/pageComponent/hooks/useTableList.ts","../../src/pageComponent/api/axios.ts","../../src/pageComponent/api/auth/userManager.ts","../../src/pageComponent/hooks/manage-module/useModalVisibleControl.ts","../../src/pageComponent/utils/base64.ts","../../src/pageComponent/utils/validation.ts","../../src/pageComponent/views/systemManager/authManager/userManager/userProfileDialog.tsx","../../src/pageComponent/utils/is.ts","../../src/pageComponent/components/SearchSelect.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/updateUserDialog.tsx","../../src/pageComponent/views/systemManager/authManager/userManager/index.tsx","../../src/pageComponent/api/auth/roleManager.ts","../../src/pageComponent/utils/transform.ts","../../src/pageComponent/views/systemManager/authManager/RoleManager/updateRoleDialog.tsx","../../src/pageComponent/views/systemManager/authManager/RoleManager/index.tsx","../../src/pageComponent/hooks/useBus.ts","../../src/pageComponent/api/auth/menuManager.ts","../../src/pageComponent/hooks/useProxy.ts","../../src/pageComponent/utils/tree.ts","../../src/pageComponent/components/CommonTree.tsx","../../src/pageComponent/components/IconSelect.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/updateMenuDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/uploadJSONDialog.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuSelectTree.tsx","../../src/pageComponent/components/DynamicIcon.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/menuDetail.tsx","../../src/pageComponent/views/systemManager/authManager/menuManager/index.tsx","../../src/pageComponent/api/org/postManager.ts","../../src/pageComponent/hooks/manage-module/useModalTitle.ts","../../src/pageComponent/hooks/manage-module/useModalForm.ts","../../src/pageComponent/views/systemManager/orgManager/postManager/updatePostDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/postManager/index.tsx","../../src/pageComponent/api/org/teamManager.ts","../../src/pageComponent/views/systemManager/orgManager/teamManager/updateTeamDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/teamManager/index.tsx","../../src/pageComponent/api/org/depManager.ts","../../src/pageComponent/views/systemManager/orgManager/depManager/updateEmployeeDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/employeeTable.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/updateDepDialog.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/depTree.tsx","../../src/pageComponent/views/systemManager/orgManager/depManager/index.tsx","../../src/pageComponent/api/logManager.ts","../../src/pageComponent/views/systemManager/logManager.tsx","../../src/pageComponent/api/param.ts","../../src/pageComponent/components/ProFormItem.tsx","../../src/pageComponent/views/systemManager/paramManager/dynamicForm.tsx","../../src/pageComponent/views/systemManager/paramManager/collapseContainer.tsx","../../src/pageComponent/views/systemManager/paramManager/tabItem.tsx","../../src/pageComponent/views/systemManager/paramManager/index.tsx","../../src/pageComponent/components/EditPasswordForm.tsx","../../src/pageComponent/views/systemManager/personalSetting.tsx","../../src/pageComponent/index.ts","../../src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,"import axios from \"axios\";\n\nconst Events$1 = {\n WEBRTC_NOT_SUPPORT: \"WEBRTC_NOT_SUPPORT\",\n WEBRTC_ICE_CANDIDATE_ERROR: \"WEBRTC_ICE_CANDIDATE_ERROR\",\n WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED: \"WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED\",\n WEBRTC_ON_REMOTE_STREAMS: \"WEBRTC_ON_REMOTE_STREAMS\",\n WEBRTC_ON_LOCAL_STREAM: \"WEBRTC_ON_LOCAL_STREAM\",\n WEBRTC_ON_CONNECTION_STATE_CHANGE: \"WEBRTC_ON_CONNECTION_STATE_CHANGE\",\n CAPTURE_STREAM_FAILED: \"CAPTURE_STREAM_FAILED\",\n};\n\nconst VERSION = \"1.0.1\";\nconst BUILD_DATE = \"Tue Feb 08 2022 10:41:32 GMT+0800 (中国标准时间)\";\n\n// Copyright (C) <2018> Intel Corporation\n//\n// SPDX-License-Identifier: Apache-2.0\n// eslint-disable-next-line require-jsdoc\nfunction isFirefox() {\n return window.navigator.userAgent.match(\"Firefox\") !== null;\n} // eslint-disable-next-line require-jsdoc\n\nfunction isChrome() {\n return window.navigator.userAgent.match(\"Chrome\") !== null;\n} // eslint-disable-next-line require-jsdoc\n\nfunction isEdge() {\n return window.navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/) !== null;\n} // eslint-disable-next-line require-jsdoc\n\n// Copyright (C) <2018> Intel Corporation\n/**\n * @class AudioSourceInfo\n * @classDesc Source info about an audio track. Values: 'mic', 'screen-cast', 'file', 'mixed'.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst AudioSourceInfo = {\n MIC: \"mic\",\n SCREENCAST: \"screen-cast\",\n FILE: \"file\",\n MIXED: \"mixed\",\n};\n/**\n * @class VideoSourceInfo\n * @classDesc Source info about a video track. Values: 'camera', 'screen-cast', 'file', 'mixed'.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst VideoSourceInfo = {\n CAMERA: \"camera\",\n SCREENCAST: \"screen-cast\",\n FILE: \"file\",\n MIXED: \"mixed\",\n};\n/**\n * @class TrackKind\n * @classDesc Kind of a track. Values: 'audio' for audio track, 'video' for video track, 'av' for both audio and video tracks.\n * @memberOf Owt.Base\n * @readonly\n * @enum {string}\n */\n\nconst TrackKind = {\n /**\n * Audio tracks.\n * @type string\n */\n AUDIO: \"audio\",\n\n /**\n * Video tracks.\n * @type string\n */\n VIDEO: \"video\",\n\n /**\n * Both audio and video tracks.\n * @type string\n */\n AUDIO_AND_VIDEO: \"av\",\n};\n/**\n * @class Resolution\n * @memberOf Owt.Base\n * @classDesc The Resolution defines the size of a rectangle.\n * @constructor\n * @param {number} width\n * @param {number} height\n */\n\nclass Resolution {\n // eslint-disable-next-line require-jsdoc\n constructor(width, height) {\n /**\n * @member {number} width\n * @instance\n * @memberof Owt.Base.Resolution\n */\n this.width = width;\n /**\n * @member {number} height\n * @instance\n * @memberof Owt.Base.Resolution\n */\n\n this.height = height;\n }\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nlet logDisabled_ = true;\nlet deprecationWarnings_ = true;\n\n/**\n * Extract browser version out of the provided user agent string.\n *\n * @param {!string} uastring userAgent string.\n * @param {!string} expr Regular expression used as match criteria.\n * @param {!number} pos position in the version string to be returned.\n * @return {!number} browser version.\n */\nfunction extractVersion(uastring, expr, pos) {\n const match = uastring.match(expr);\n return match && match.length >= pos && parseInt(match[pos], 10);\n}\n\n// Wraps the peerconnection event eventNameToWrap in a function\n// which returns the modified event object (or false to prevent\n// the event).\nfunction wrapPeerConnectionEvent(window, eventNameToWrap, wrapper) {\n if (!window.RTCPeerConnection) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n const nativeAddEventListener = proto.addEventListener;\n proto.addEventListener = function (nativeEventName, cb) {\n if (nativeEventName !== eventNameToWrap) {\n return nativeAddEventListener.apply(this, arguments);\n }\n const wrappedCallback = (e) => {\n const modifiedEvent = wrapper(e);\n if (modifiedEvent) {\n if (cb.handleEvent) {\n cb.handleEvent(modifiedEvent);\n } else {\n cb(modifiedEvent);\n }\n }\n };\n this._eventMap = this._eventMap || {};\n if (!this._eventMap[eventNameToWrap]) {\n this._eventMap[eventNameToWrap] = new Map();\n }\n this._eventMap[eventNameToWrap].set(cb, wrappedCallback);\n return nativeAddEventListener.apply(this, [\n nativeEventName,\n wrappedCallback,\n ]);\n };\n\n const nativeRemoveEventListener = proto.removeEventListener;\n proto.removeEventListener = function (nativeEventName, cb) {\n if (\n nativeEventName !== eventNameToWrap ||\n !this._eventMap ||\n !this._eventMap[eventNameToWrap]\n ) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n if (!this._eventMap[eventNameToWrap].has(cb)) {\n return nativeRemoveEventListener.apply(this, arguments);\n }\n const unwrappedCb = this._eventMap[eventNameToWrap].get(cb);\n this._eventMap[eventNameToWrap].delete(cb);\n if (this._eventMap[eventNameToWrap].size === 0) {\n delete this._eventMap[eventNameToWrap];\n }\n if (Object.keys(this._eventMap).length === 0) {\n delete this._eventMap;\n }\n return nativeRemoveEventListener.apply(this, [\n nativeEventName,\n unwrappedCb,\n ]);\n };\n\n Object.defineProperty(proto, \"on\" + eventNameToWrap, {\n get() {\n return this[\"_on\" + eventNameToWrap];\n },\n set(cb) {\n if (this[\"_on\" + eventNameToWrap]) {\n this.removeEventListener(\n eventNameToWrap,\n this[\"_on\" + eventNameToWrap]\n );\n delete this[\"_on\" + eventNameToWrap];\n }\n if (cb) {\n this.addEventListener(\n eventNameToWrap,\n (this[\"_on\" + eventNameToWrap] = cb)\n );\n }\n },\n enumerable: true,\n configurable: true,\n });\n}\n\nfunction disableLog(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\n );\n }\n logDisabled_ = bool;\n return bool ? \"adapter.js logging disabled\" : \"adapter.js logging enabled\";\n}\n\n/**\n * Disable or enable deprecation warnings\n * @param {!boolean} bool set to true to disable warnings.\n */\nfunction disableWarnings(bool) {\n if (typeof bool !== \"boolean\") {\n return new Error(\n \"Argument type: \" + typeof bool + \". Please use a boolean.\"\n );\n }\n deprecationWarnings_ = !bool;\n return \"adapter.js deprecation warnings \" + (bool ? \"disabled\" : \"enabled\");\n}\n\nfunction log$1() {\n if (typeof window === \"object\") {\n if (logDisabled_) {\n return;\n }\n if (typeof console !== \"undefined\" && typeof console.log === \"function\") {\n console.log.apply(console, arguments);\n }\n }\n}\n\n/**\n * Shows a deprecation warning suggesting the modern and spec-compatible API.\n */\nfunction deprecated(oldMethod, newMethod) {\n if (!deprecationWarnings_) {\n return;\n }\n console.warn(\n oldMethod + \" is deprecated, please use \" + newMethod + \" instead.\"\n );\n}\n\n/**\n * Browser detector.\n *\n * @return {object} result containing browser and version\n * properties.\n */\nfunction detectBrowser(window) {\n // Returned result object.\n const result = { browser: null, version: null };\n\n // Fail early if it's not a browser\n if (typeof window === \"undefined\" || !window.navigator) {\n result.browser = \"Not a browser.\";\n return result;\n }\n\n const { navigator } = window;\n\n if (navigator.mozGetUserMedia) {\n // Firefox.\n result.browser = \"firefox\";\n result.version = extractVersion(navigator.userAgent, /Firefox\\/(\\d+)\\./, 1);\n } else if (\n navigator.webkitGetUserMedia ||\n (window.isSecureContext === false &&\n window.webkitRTCPeerConnection &&\n !window.RTCIceGatherer)\n ) {\n // Chrome, Chromium, Webview, Opera.\n // Version matches Chrome/WebRTC version.\n // Chrome 74 removed webkitGetUserMedia on http as well so we need the\n // more complicated fallback to webkitRTCPeerConnection.\n result.browser = \"chrome\";\n result.version = extractVersion(\n navigator.userAgent,\n /Chrom(e|ium)\\/(\\d+)\\./,\n 2\n );\n } else if (\n navigator.mediaDevices &&\n navigator.userAgent.match(/Edge\\/(\\d+).(\\d+)$/)\n ) {\n // Edge.\n result.browser = \"edge\";\n result.version = extractVersion(\n navigator.userAgent,\n /Edge\\/(\\d+).(\\d+)$/,\n 2\n );\n } else if (\n window.RTCPeerConnection &&\n navigator.userAgent.match(/AppleWebKit\\/(\\d+)\\./)\n ) {\n // Safari.\n result.browser = \"safari\";\n result.version = extractVersion(\n navigator.userAgent,\n /AppleWebKit\\/(\\d+)\\./,\n 1\n );\n result.supportsUnifiedPlan =\n window.RTCRtpTransceiver &&\n \"currentDirection\" in window.RTCRtpTransceiver.prototype;\n } else {\n // Default fallthrough: not supported.\n result.browser = \"Not a supported browser.\";\n return result;\n }\n\n return result;\n}\n\n/**\n * Checks if something is an object.\n *\n * @param {*} val The something you want to check.\n * @return true if val is an object, false otherwise.\n */\nfunction isObject(val) {\n return Object.prototype.toString.call(val) === \"[object Object]\";\n}\n\n/**\n * Remove all empty objects and undefined values\n * from a nested object -- an enhanced and vanilla version\n * of Lodash's `compact`.\n */\nfunction compactObject(data) {\n if (!isObject(data)) {\n return data;\n }\n\n return Object.keys(data).reduce(function (accumulator, key) {\n const isObj = isObject(data[key]);\n const value = isObj ? compactObject(data[key]) : data[key];\n const isEmptyObject = isObj && !Object.keys(value).length;\n if (value === undefined || isEmptyObject) {\n return accumulator;\n }\n return Object.assign(accumulator, { [key]: value });\n }, {});\n}\n\n/* iterates the stats graph recursively. */\nfunction walkStats(stats, base, resultSet) {\n if (!base || resultSet.has(base.id)) {\n return;\n }\n resultSet.set(base.id, base);\n Object.keys(base).forEach((name) => {\n if (name.endsWith(\"Id\")) {\n walkStats(stats, stats.get(base[name]), resultSet);\n } else if (name.endsWith(\"Ids\")) {\n base[name].forEach((id) => {\n walkStats(stats, stats.get(id), resultSet);\n });\n }\n });\n}\n\n/* filter getStats for a sender/receiver track. */\nfunction filterStats(result, track, outbound) {\n const streamStatsType = outbound ? \"outbound-rtp\" : \"inbound-rtp\";\n const filteredResult = new Map();\n if (track === null) {\n return filteredResult;\n }\n const trackStats = [];\n result.forEach((value) => {\n if (value.type === \"track\" && value.trackIdentifier === track.id) {\n trackStats.push(value);\n }\n });\n trackStats.forEach((trackStat) => {\n result.forEach((stats) => {\n if (stats.type === streamStatsType && stats.trackId === trackStat.id) {\n walkStats(result, stats, filteredResult);\n }\n });\n });\n return filteredResult;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nconst logging = log$1;\n\nfunction shimGetUserMedia$3(window, browserDetails) {\n const navigator = window && window.navigator;\n\n if (!navigator.mediaDevices) {\n return;\n }\n\n const constraintsToChrome_ = function (c) {\n if (typeof c !== \"object\" || c.mandatory || c.optional) {\n return c;\n }\n const cc = {};\n Object.keys(c).forEach((key) => {\n if (key === \"require\" || key === \"advanced\" || key === \"mediaSource\") {\n return;\n }\n const r = typeof c[key] === \"object\" ? c[key] : { ideal: c[key] };\n if (r.exact !== undefined && typeof r.exact === \"number\") {\n r.min = r.max = r.exact;\n }\n const oldname_ = function (prefix, name) {\n if (prefix) {\n return prefix + name.charAt(0).toUpperCase() + name.slice(1);\n }\n return name === \"deviceId\" ? \"sourceId\" : name;\n };\n if (r.ideal !== undefined) {\n cc.optional = cc.optional || [];\n let oc = {};\n if (typeof r.ideal === \"number\") {\n oc[oldname_(\"min\", key)] = r.ideal;\n cc.optional.push(oc);\n oc = {};\n oc[oldname_(\"max\", key)] = r.ideal;\n cc.optional.push(oc);\n } else {\n oc[oldname_(\"\", key)] = r.ideal;\n cc.optional.push(oc);\n }\n }\n if (r.exact !== undefined && typeof r.exact !== \"number\") {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(\"\", key)] = r.exact;\n } else {\n [\"min\", \"max\"].forEach((mix) => {\n if (r[mix] !== undefined) {\n cc.mandatory = cc.mandatory || {};\n cc.mandatory[oldname_(mix, key)] = r[mix];\n }\n });\n }\n });\n if (c.advanced) {\n cc.optional = (cc.optional || []).concat(c.advanced);\n }\n return cc;\n };\n\n const shimConstraints_ = function (constraints, func) {\n if (browserDetails.version >= 61) {\n return func(constraints);\n }\n constraints = JSON.parse(JSON.stringify(constraints));\n if (constraints && typeof constraints.audio === \"object\") {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n constraints = JSON.parse(JSON.stringify(constraints));\n remap(constraints.audio, \"autoGainControl\", \"googAutoGainControl\");\n remap(constraints.audio, \"noiseSuppression\", \"googNoiseSuppression\");\n constraints.audio = constraintsToChrome_(constraints.audio);\n }\n if (constraints && typeof constraints.video === \"object\") {\n // Shim facingMode for mobile & surface pro.\n let face = constraints.video.facingMode;\n face = face && (typeof face === \"object\" ? face : { ideal: face });\n const getSupportedFacingModeLies = browserDetails.version < 66;\n\n if (\n face &&\n (face.exact === \"user\" ||\n face.exact === \"environment\" ||\n face.ideal === \"user\" ||\n face.ideal === \"environment\") &&\n !(\n navigator.mediaDevices.getSupportedConstraints &&\n navigator.mediaDevices.getSupportedConstraints().facingMode &&\n !getSupportedFacingModeLies\n )\n ) {\n delete constraints.video.facingMode;\n let matches;\n if (face.exact === \"environment\" || face.ideal === \"environment\") {\n matches = [\"back\", \"rear\"];\n } else if (face.exact === \"user\" || face.ideal === \"user\") {\n matches = [\"front\"];\n }\n if (matches) {\n // Look for matches in label, or use last cam for back (typical).\n return navigator.mediaDevices.enumerateDevices().then((devices) => {\n devices = devices.filter((d) => d.kind === \"videoinput\");\n let dev = devices.find((d) =>\n matches.some((match) => d.label.toLowerCase().includes(match))\n );\n if (!dev && devices.length && matches.includes(\"back\")) {\n dev = devices[devices.length - 1]; // more likely the back cam\n }\n if (dev) {\n constraints.video.deviceId = face.exact\n ? { exact: dev.deviceId }\n : { ideal: dev.deviceId };\n }\n constraints.video = constraintsToChrome_(constraints.video);\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n });\n }\n }\n constraints.video = constraintsToChrome_(constraints.video);\n }\n logging(\"chrome: \" + JSON.stringify(constraints));\n return func(constraints);\n };\n\n const shimError_ = function (e) {\n if (browserDetails.version >= 64) {\n return e;\n }\n return {\n name:\n {\n PermissionDeniedError: \"NotAllowedError\",\n PermissionDismissedError: \"NotAllowedError\",\n InvalidStateError: \"NotAllowedError\",\n DevicesNotFoundError: \"NotFoundError\",\n ConstraintNotSatisfiedError: \"OverconstrainedError\",\n TrackStartError: \"NotReadableError\",\n MediaDeviceFailedDueToShutdown: \"NotAllowedError\",\n MediaDeviceKillSwitchOn: \"NotAllowedError\",\n TabCaptureError: \"AbortError\",\n ScreenCaptureError: \"AbortError\",\n DeviceCaptureError: \"AbortError\",\n }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint || e.constraintName,\n toString() {\n return this.name + (this.message && \": \") + this.message;\n },\n };\n };\n\n const getUserMedia_ = function (constraints, onSuccess, onError) {\n shimConstraints_(constraints, (c) => {\n navigator.webkitGetUserMedia(c, onSuccess, (e) => {\n if (onError) {\n onError(shimError_(e));\n }\n });\n });\n };\n navigator.getUserMedia = getUserMedia_.bind(navigator);\n\n // Even though Chrome 45 has navigator.mediaDevices and a getUserMedia\n // function which returns a Promise, it does not accept spec-style\n // constraints.\n if (navigator.mediaDevices.getUserMedia) {\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (cs) {\n return shimConstraints_(cs, (c) =>\n origGetUserMedia(c).then(\n (stream) => {\n if (\n (c.audio && !stream.getAudioTracks().length) ||\n (c.video && !stream.getVideoTracks().length)\n ) {\n stream.getTracks().forEach((track) => {\n track.stop();\n });\n throw new DOMException(\"\", \"NotFoundError\");\n }\n return stream;\n },\n (e) => Promise.reject(shimError_(e))\n )\n );\n };\n }\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\nfunction shimGetDisplayMedia$2(window, getSourceId) {\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n // getSourceId is a function that returns a promise resolving with\n // the sourceId of the screen/window/tab to be shared.\n if (typeof getSourceId !== \"function\") {\n console.error(\n \"shimGetDisplayMedia: getSourceId argument is not \" + \"a function\"\n );\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\n constraints\n ) {\n return getSourceId(constraints).then((sourceId) => {\n const widthSpecified = constraints.video && constraints.video.width;\n const heightSpecified = constraints.video && constraints.video.height;\n const frameRateSpecified =\n constraints.video && constraints.video.frameRate;\n constraints.video = {\n mandatory: {\n chromeMediaSource: \"desktop\",\n chromeMediaSourceId: sourceId,\n maxFrameRate: frameRateSpecified || 3,\n },\n };\n if (widthSpecified) {\n constraints.video.mandatory.maxWidth = widthSpecified;\n }\n if (heightSpecified) {\n constraints.video.mandatory.maxHeight = heightSpecified;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n });\n };\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimMediaStream(window) {\n window.MediaStream = window.MediaStream || window.webkitMediaStream;\n}\n\nfunction shimOnTrack$1(window) {\n if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n !(\"ontrack\" in window.RTCPeerConnection.prototype)\n ) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"ontrack\", {\n get() {\n return this._ontrack;\n },\n set(f) {\n if (this._ontrack) {\n this.removeEventListener(\"track\", this._ontrack);\n }\n this.addEventListener(\"track\", (this._ontrack = f));\n },\n enumerable: true,\n configurable: true,\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n if (!this._ontrackpoly) {\n this._ontrackpoly = (e) => {\n // onaddstream does not fire when a track is added to an existing\n // stream. But stream.onaddtrack is implemented so we use that.\n e.stream.addEventListener(\"addtrack\", (te) => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(\n (r) => r.track && r.track.id === te.track.id\n );\n } else {\n receiver = { track: te.track };\n }\n\n const event = new Event(\"track\");\n event.track = te.track;\n event.receiver = receiver;\n event.transceiver = { receiver };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n e.stream.getTracks().forEach((track) => {\n let receiver;\n if (window.RTCPeerConnection.prototype.getReceivers) {\n receiver = this.getReceivers().find(\n (r) => r.track && r.track.id === track.id\n );\n } else {\n receiver = { track };\n }\n const event = new Event(\"track\");\n event.track = track;\n event.receiver = receiver;\n event.transceiver = { receiver };\n event.streams = [e.stream];\n this.dispatchEvent(event);\n });\n };\n this.addEventListener(\"addstream\", this._ontrackpoly);\n }\n return origSetRemoteDescription.apply(this, arguments);\n };\n } else {\n // even if RTCRtpTransceiver is in window, it is only used and\n // emitted in unified-plan. Unfortunately this means we need\n // to unconditionally wrap the event.\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n if (!e.transceiver) {\n Object.defineProperty(e, \"transceiver\", {\n value: { receiver: e.receiver },\n });\n }\n return e;\n });\n }\n}\n\nfunction shimGetSendersWithDtmf(window) {\n // Overrides addTrack/removeTrack, depends on shimAddTrackRemoveTrack.\n if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n !(\"getSenders\" in window.RTCPeerConnection.prototype) &&\n \"createDTMFSender\" in window.RTCPeerConnection.prototype\n ) {\n const shimSenderWithDtmf = function (pc, track) {\n return {\n track,\n get dtmf() {\n if (this._dtmf === undefined) {\n if (track.kind === \"audio\") {\n this._dtmf = pc.createDTMFSender(track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n _pc: pc,\n };\n };\n\n // augment addTrack when getSenders is not available.\n if (!window.RTCPeerConnection.prototype.getSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n this._senders = this._senders || [];\n return this._senders.slice(); // return a copy of the internal state.\n };\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n let sender = origAddTrack.apply(this, arguments);\n if (!sender) {\n sender = shimSenderWithDtmf(this, track);\n this._senders.push(sender);\n }\n return sender;\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n origRemoveTrack.apply(this, arguments);\n const idx = this._senders.indexOf(sender);\n if (idx !== -1) {\n this._senders.splice(idx, 1);\n }\n };\n }\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._senders = this._senders || [];\n origAddStream.apply(this, [stream]);\n stream.getTracks().forEach((track) => {\n this._senders.push(shimSenderWithDtmf(this, track));\n });\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._senders = this._senders || [];\n origRemoveStream.apply(this, [stream]);\n\n stream.getTracks().forEach((track) => {\n const sender = this._senders.find((s) => s.track === track);\n if (sender) {\n // remove sender\n this._senders.splice(this._senders.indexOf(sender), 1);\n }\n });\n };\n } else if (\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n \"getSenders\" in window.RTCPeerConnection.prototype &&\n \"createDTMFSender\" in window.RTCPeerConnection.prototype &&\n window.RTCRtpSender &&\n !(\"dtmf\" in window.RTCRtpSender.prototype)\n ) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === \"audio\") {\n this._dtmf = this._pc.createDTMFSender(this.track);\n } else {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n });\n }\n}\n\nfunction shimGetStats(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n\n // If selector is a function then we are in the old style stats so just\n // pass back the original getStats format to avoid breaking old users.\n if (arguments.length > 0 && typeof selector === \"function\") {\n return origGetStats.apply(this, arguments);\n }\n\n // When spec-style getStats is supported, return those when called with\n // either no arguments or the selector argument is null.\n if (\n origGetStats.length === 0 &&\n (arguments.length === 0 || typeof selector !== \"function\")\n ) {\n return origGetStats.apply(this, []);\n }\n\n const fixChromeStats_ = function (response) {\n const standardReport = {};\n const reports = response.result();\n reports.forEach((report) => {\n const standardStats = {\n id: report.id,\n timestamp: report.timestamp,\n type:\n {\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n }[report.type] || report.type,\n };\n report.names().forEach((name) => {\n standardStats[name] = report.stat(name);\n });\n standardReport[standardStats.id] = standardStats;\n });\n\n return standardReport;\n };\n\n // shim getStats with maplike support\n const makeMapStats = function (stats) {\n return new Map(Object.keys(stats).map((key) => [key, stats[key]]));\n };\n\n if (arguments.length >= 2) {\n const successCallbackWrapper_ = function (response) {\n onSucc(makeMapStats(fixChromeStats_(response)));\n };\n\n return origGetStats.apply(this, [successCallbackWrapper_, selector]);\n }\n\n // promise-support\n return new Promise((resolve, reject) => {\n origGetStats.apply(this, [\n function (response) {\n resolve(makeMapStats(fixChromeStats_(response)));\n },\n reject,\n ]);\n }).then(onSucc, onErr);\n };\n}\n\nfunction shimSenderReceiverGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender &&\n window.RTCRtpReceiver\n )\n ) {\n return;\n }\n\n // shim sender stats.\n if (!(\"getStats\" in window.RTCRtpSender.prototype)) {\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n const sender = this;\n return this._pc.getStats().then((result) =>\n /* Note: this will include stats of all senders that\n * send a track with the same id as sender.track as\n * it is not possible to identify the RTCRtpSender.\n */\n filterStats(result, sender.track, true)\n );\n };\n }\n\n // shim receiver stats.\n if (!(\"getStats\" in window.RTCRtpReceiver.prototype)) {\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers =\n function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach((receiver) => (receiver._pc = this));\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n const receiver = this;\n return this._pc\n .getStats()\n .then((result) => filterStats(result, receiver.track, false));\n };\n }\n\n if (\n !(\n \"getStats\" in window.RTCRtpSender.prototype &&\n \"getStats\" in window.RTCRtpReceiver.prototype\n )\n ) {\n return;\n }\n\n // shim RTCPeerConnection.getStats(track).\n const origGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n if (\n arguments.length > 0 &&\n arguments[0] instanceof window.MediaStreamTrack\n ) {\n const track = arguments[0];\n let sender;\n let receiver;\n let err;\n this.getSenders().forEach((s) => {\n if (s.track === track) {\n if (sender) {\n err = true;\n } else {\n sender = s;\n }\n }\n });\n this.getReceivers().forEach((r) => {\n if (r.track === track) {\n if (receiver) {\n err = true;\n } else {\n receiver = r;\n }\n }\n return r.track === track;\n });\n if (err || (sender && receiver)) {\n return Promise.reject(\n new DOMException(\n \"There are more than one sender or receiver for the track.\",\n \"InvalidAccessError\"\n )\n );\n } else if (sender) {\n return sender.getStats();\n } else if (receiver) {\n return receiver.getStats();\n }\n return Promise.reject(\n new DOMException(\n \"There is no sender or receiver for the track.\",\n \"InvalidAccessError\"\n )\n );\n }\n return origGetStats.apply(this, arguments);\n };\n}\n\nfunction shimAddTrackRemoveTrackWithNative(window) {\n // shim addTrack/removeTrack with native variants in order to make\n // the interactions with legacy getLocalStreams behave as in other browsers.\n // Keeps a mapping stream.id => [stream, rtpsenders...]\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n return Object.keys(this._shimmedLocalStreams).map(\n (streamId) => this._shimmedLocalStreams[streamId][0]\n );\n };\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n if (!stream) {\n return origAddTrack.apply(this, arguments);\n }\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n const sender = origAddTrack.apply(this, arguments);\n if (!this._shimmedLocalStreams[stream.id]) {\n this._shimmedLocalStreams[stream.id] = [stream, sender];\n } else if (this._shimmedLocalStreams[stream.id].indexOf(sender) === -1) {\n this._shimmedLocalStreams[stream.id].push(sender);\n }\n return sender;\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n\n stream.getTracks().forEach((track) => {\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n const existingSenders = this.getSenders();\n origAddStream.apply(this, arguments);\n const newSenders = this.getSenders().filter(\n (newSender) => existingSenders.indexOf(newSender) === -1\n );\n this._shimmedLocalStreams[stream.id] = [stream].concat(newSenders);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n delete this._shimmedLocalStreams[stream.id];\n return origRemoveStream.apply(this, arguments);\n };\n\n const origRemoveTrack = window.RTCPeerConnection.prototype.removeTrack;\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n this._shimmedLocalStreams = this._shimmedLocalStreams || {};\n if (sender) {\n Object.keys(this._shimmedLocalStreams).forEach((streamId) => {\n const idx = this._shimmedLocalStreams[streamId].indexOf(sender);\n if (idx !== -1) {\n this._shimmedLocalStreams[streamId].splice(idx, 1);\n }\n if (this._shimmedLocalStreams[streamId].length === 1) {\n delete this._shimmedLocalStreams[streamId];\n }\n });\n }\n return origRemoveTrack.apply(this, arguments);\n };\n}\n\nfunction shimAddTrackRemoveTrack(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // shim addTrack and removeTrack.\n if (\n window.RTCPeerConnection.prototype.addTrack &&\n browserDetails.version >= 65\n ) {\n return shimAddTrackRemoveTrackWithNative(window);\n }\n\n // also shim pc.getLocalStreams when addTrack is shimmed\n // to return the original streams.\n const origGetLocalStreams =\n window.RTCPeerConnection.prototype.getLocalStreams;\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n const nativeStreams = origGetLocalStreams.apply(this);\n this._reverseStreams = this._reverseStreams || {};\n return nativeStreams.map((stream) => this._reverseStreams[stream.id]);\n };\n\n const origAddStream = window.RTCPeerConnection.prototype.addStream;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n stream.getTracks().forEach((track) => {\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n });\n // Add identity mapping for consistency with addTrack.\n // Unless this is being used with a stream from addTrack.\n if (!this._reverseStreams[stream.id]) {\n const newStream = new window.MediaStream(stream.getTracks());\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n stream = newStream;\n }\n origAddStream.apply(this, [stream]);\n };\n\n const origRemoveStream = window.RTCPeerConnection.prototype.removeStream;\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n\n origRemoveStream.apply(this, [this._streams[stream.id] || stream]);\n delete this._reverseStreams[\n this._streams[stream.id] ? this._streams[stream.id].id : stream.id\n ];\n delete this._streams[stream.id];\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n stream\n ) {\n if (this.signalingState === \"closed\") {\n throw new DOMException(\n \"The RTCPeerConnection's signalingState is 'closed'.\",\n \"InvalidStateError\"\n );\n }\n const streams = [].slice.call(arguments, 1);\n if (\n streams.length !== 1 ||\n !streams[0].getTracks().find((t) => t === track)\n ) {\n // this is not fully correct but all we can manage without\n // [[associated MediaStreams]] internal slot.\n throw new DOMException(\n \"The adapter.js addTrack polyfill only supports a single \" +\n \" stream which is associated with the specified track.\",\n \"NotSupportedError\"\n );\n }\n\n const alreadyExists = this.getSenders().find((s) => s.track === track);\n if (alreadyExists) {\n throw new DOMException(\"Track already exists.\", \"InvalidAccessError\");\n }\n\n this._streams = this._streams || {};\n this._reverseStreams = this._reverseStreams || {};\n const oldStream = this._streams[stream.id];\n if (oldStream) {\n // this is using odd Chrome behaviour, use with caution:\n // https://bugs.chromium.org/p/webrtc/issues/detail?id=7815\n // Note: we rely on the high-level addTrack/dtmf shim to\n // create the sender with a dtmf sender.\n oldStream.addTrack(track);\n\n // Trigger ONN async.\n Promise.resolve().then(() => {\n this.dispatchEvent(new Event(\"negotiationneeded\"));\n });\n } else {\n const newStream = new window.MediaStream([track]);\n this._streams[stream.id] = newStream;\n this._reverseStreams[newStream.id] = stream;\n this.addStream(newStream);\n }\n return this.getSenders().find((s) => s.track === track);\n };\n\n // replace the internal stream id with the external one and\n // vice versa.\n function replaceInternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(internalStream.id, \"g\"), externalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp,\n });\n }\n function replaceExternalStreamId(pc, description) {\n let sdp = description.sdp;\n Object.keys(pc._reverseStreams || []).forEach((internalId) => {\n const externalStream = pc._reverseStreams[internalId];\n const internalStream = pc._streams[externalStream.id];\n sdp = sdp.replace(new RegExp(externalStream.id, \"g\"), internalStream.id);\n });\n return new RTCSessionDescription({\n type: description.type,\n sdp,\n });\n }\n [\"createOffer\", \"createAnswer\"].forEach(function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n const args = arguments;\n const isLegacyCall =\n arguments.length && typeof arguments[0] === \"function\";\n if (isLegacyCall) {\n return nativeMethod.apply(this, [\n (description) => {\n const desc = replaceInternalStreamId(this, description);\n args[0].apply(null, [desc]);\n },\n (err) => {\n if (args[1]) {\n args[1].apply(null, err);\n }\n },\n arguments[2],\n ]);\n }\n return nativeMethod\n .apply(this, arguments)\n .then((description) => replaceInternalStreamId(this, description));\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n });\n\n const origSetLocalDescription =\n window.RTCPeerConnection.prototype.setLocalDescription;\n window.RTCPeerConnection.prototype.setLocalDescription =\n function setLocalDescription() {\n if (!arguments.length || !arguments[0].type) {\n return origSetLocalDescription.apply(this, arguments);\n }\n arguments[0] = replaceExternalStreamId(this, arguments[0]);\n return origSetLocalDescription.apply(this, arguments);\n };\n\n // TODO: mangle getStats: https://w3c.github.io/webrtc-stats/#dom-rtcmediastreamstats-streamidentifier\n\n const origLocalDescription = Object.getOwnPropertyDescriptor(\n window.RTCPeerConnection.prototype,\n \"localDescription\"\n );\n Object.defineProperty(\n window.RTCPeerConnection.prototype,\n \"localDescription\",\n {\n get() {\n const description = origLocalDescription.get.apply(this);\n if (description.type === \"\") {\n return description;\n }\n return replaceInternalStreamId(this, description);\n },\n }\n );\n\n window.RTCPeerConnection.prototype.removeTrack = function removeTrack(\n sender\n ) {\n if (this.signalingState === \"closed\") {\n throw new DOMException(\n \"The RTCPeerConnection's signalingState is 'closed'.\",\n \"InvalidStateError\"\n );\n }\n // We can not yet check for sender instanceof RTCRtpSender\n // since we shim RTPSender. So we check if sender._pc is set.\n if (!sender._pc) {\n throw new DOMException(\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\n \"does not implement interface RTCRtpSender.\",\n \"TypeError\"\n );\n }\n const isLocal = sender._pc === this;\n if (!isLocal) {\n throw new DOMException(\n \"Sender was not created by this connection.\",\n \"InvalidAccessError\"\n );\n }\n\n // Search for the native stream the senders track belongs to.\n this._streams = this._streams || {};\n let stream;\n Object.keys(this._streams).forEach((streamid) => {\n const hasTrack = this._streams[streamid]\n .getTracks()\n .find((track) => sender.track === track);\n if (hasTrack) {\n stream = this._streams[streamid];\n }\n });\n\n if (stream) {\n if (stream.getTracks().length === 1) {\n // if this is the last track of the stream, remove the stream. This\n // takes care of any shimmed _senders.\n this.removeStream(this._reverseStreams[stream.id]);\n } else {\n // relying on the same odd chrome behaviour as above.\n stream.removeTrack(sender.track);\n }\n this.dispatchEvent(new Event(\"negotiationneeded\"));\n }\n };\n}\n\nfunction shimPeerConnection$2(window, browserDetails) {\n if (!window.RTCPeerConnection && window.webkitRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.webkitRTCPeerConnection;\n }\n if (!window.RTCPeerConnection) {\n return;\n }\n\n // shim implicit creation of RTCSessionDescription/RTCIceCandidate\n if (browserDetails.version < 53) {\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\n function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (\n method === \"addIceCandidate\"\n ? window.RTCIceCandidate\n : window.RTCSessionDescription\n )(arguments[0]);\n return nativeMethod.apply(this, arguments);\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n }\n );\n }\n}\n\n// Attempt to fix ONN in plan-b mode.\nfunction fixNegotiationNeeded(window, browserDetails) {\n wrapPeerConnectionEvent(window, \"negotiationneeded\", (e) => {\n const pc = e.target;\n if (\n browserDetails.version < 72 ||\n (pc.getConfiguration && pc.getConfiguration().sdpSemantics === \"plan-b\")\n ) {\n if (pc.signalingState !== \"stable\") {\n return;\n }\n }\n return e;\n });\n}\n\nvar chromeShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimMediaStream: shimMediaStream,\n shimOnTrack: shimOnTrack$1,\n shimGetSendersWithDtmf: shimGetSendersWithDtmf,\n shimGetStats: shimGetStats,\n shimSenderReceiverGetStats: shimSenderReceiverGetStats,\n shimAddTrackRemoveTrackWithNative: shimAddTrackRemoveTrackWithNative,\n shimAddTrackRemoveTrack: shimAddTrackRemoveTrack,\n shimPeerConnection: shimPeerConnection$2,\n fixNegotiationNeeded: fixNegotiationNeeded,\n shimGetUserMedia: shimGetUserMedia$3,\n shimGetDisplayMedia: shimGetDisplayMedia$2,\n});\n\n/*\n * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers$1(iceServers, edgeVersion) {\n let hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter((server) => {\n if (server && (server.urls || server.url)) {\n let urls = server.urls || server.url;\n if (server.url && !server.urls) {\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\n }\n const isString = typeof urls === \"string\";\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter((url) => {\n // filter STUN unconditionally.\n if (url.indexOf(\"stun:\") === 0) {\n return false;\n }\n\n const validTurn =\n url.startsWith(\"turn\") &&\n !url.startsWith(\"turn:[\") &&\n url.includes(\"transport=udp\");\n if (validTurn && !hasTurn) {\n hasTurn = true;\n return true;\n }\n return validTurn && !hasTurn;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\nfunction createCommonjsModule(fn) {\n var module = { exports: {} };\n return fn(module, module.exports), module.exports;\n}\n\n/* eslint-env node */\n\nvar sdp = createCommonjsModule(function (module) {\n // SDP helpers.\n var SDPUtils = {};\n\n // Generate an alphanumeric identifier for cname or mids.\n // TODO: use UUIDs instead? https://gist.github.com/jed/982883\n SDPUtils.generateIdentifier = function () {\n return Math.random().toString(36).substr(2, 10);\n };\n\n // The RTCP CNAME used by all peerconnections from the same JS.\n SDPUtils.localCName = SDPUtils.generateIdentifier();\n\n // Splits SDP into lines, dealing with both CRLF and LF.\n SDPUtils.splitLines = function (blob) {\n return blob\n .trim()\n .split(\"\\n\")\n .map(function (line) {\n return line.trim();\n });\n };\n // Splits SDP into sessionpart and mediasections. Ensures CRLF.\n SDPUtils.splitSections = function (blob) {\n var parts = blob.split(\"\\nm=\");\n return parts.map(function (part, index) {\n return (index > 0 ? \"m=\" + part : part).trim() + \"\\r\\n\";\n });\n };\n\n // returns the session description.\n SDPUtils.getDescription = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n };\n\n // returns the individual media sections.\n SDPUtils.getMediaSections = function (blob) {\n var sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n };\n\n // Returns lines that start with a certain prefix.\n SDPUtils.matchPrefix = function (blob, prefix) {\n return SDPUtils.splitLines(blob).filter(function (line) {\n return line.indexOf(prefix) === 0;\n });\n };\n\n // Parses an ICE candidate line. Sample input:\n // candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n // rport 55996\"\n SDPUtils.parseCandidate = function (line) {\n var parts;\n // Parse both variants.\n if (line.indexOf(\"a=candidate:\") === 0) {\n parts = line.substring(12).split(\" \");\n } else {\n parts = line.substring(10).split(\" \");\n }\n\n var candidate = {\n foundation: parts[0],\n component: parseInt(parts[1], 10),\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7],\n };\n\n for (var i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case \"raddr\":\n candidate.relatedAddress = parts[i + 1];\n break;\n case \"rport\":\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case \"tcptype\":\n candidate.tcpType = parts[i + 1];\n break;\n case \"ufrag\":\n candidate.ufrag = parts[i + 1]; // for backward compability.\n candidate.usernameFragment = parts[i + 1];\n break;\n default:\n // extension handling, in particular ufrag\n candidate[parts[i]] = parts[i + 1];\n break;\n }\n }\n return candidate;\n };\n\n // Translates a candidate object into SDP candidate attribute.\n SDPUtils.writeCandidate = function (candidate) {\n var sdp = [];\n sdp.push(candidate.foundation);\n sdp.push(candidate.component);\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n var type = candidate.type;\n sdp.push(\"typ\");\n sdp.push(type);\n if (type !== \"host\" && candidate.relatedAddress && candidate.relatedPort) {\n sdp.push(\"raddr\");\n sdp.push(candidate.relatedAddress);\n sdp.push(\"rport\");\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === \"tcp\") {\n sdp.push(\"tcptype\");\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push(\"ufrag\");\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return \"candidate:\" + sdp.join(\" \");\n };\n\n // Parses an ice-options line, returns an array of option tags.\n // a=ice-options:foo bar\n SDPUtils.parseIceOptions = function (line) {\n return line.substr(14).split(\" \");\n };\n\n // Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n // a=rtpmap:111 opus/48000/2\n SDPUtils.parseRtpMap = function (line) {\n var parts = line.substr(9).split(\" \");\n var parsed = {\n payloadType: parseInt(parts.shift(), 10), // was: id\n };\n\n parts = parts[0].split(\"/\");\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n };\n\n // Generate an a=rtpmap line from RTCRtpCodecCapability or\n // RTCRtpCodecParameters.\n SDPUtils.writeRtpMap = function (codec) {\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n var channels = codec.channels || codec.numChannels || 1;\n return (\n \"a=rtpmap:\" +\n pt +\n \" \" +\n codec.name +\n \"/\" +\n codec.clockRate +\n (channels !== 1 ? \"/\" + channels : \"\") +\n \"\\r\\n\"\n );\n };\n\n // Parses an a=extmap line (headerextension from RFC 5285). Sample input:\n // a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n // a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\n SDPUtils.parseExtmap = function (line) {\n var parts = line.substr(9).split(\" \");\n return {\n id: parseInt(parts[0], 10),\n direction:\n parts[0].indexOf(\"/\") > 0 ? parts[0].split(\"/\")[1] : \"sendrecv\",\n uri: parts[1],\n };\n };\n\n // Generates a=extmap line from RTCRtpHeaderExtensionParameters or\n // RTCRtpHeaderExtension.\n SDPUtils.writeExtmap = function (headerExtension) {\n return (\n \"a=extmap:\" +\n (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== \"sendrecv\"\n ? \"/\" + headerExtension.direction\n : \"\") +\n \" \" +\n headerExtension.uri +\n \"\\r\\n\"\n );\n };\n\n // Parses an ftmp line, returns dictionary. Sample input:\n // a=fmtp:96 vbr=on;cng=on\n // Also deals with vbr=on; cng=on\n SDPUtils.parseFmtp = function (line) {\n var parsed = {};\n var kv;\n var parts = line.substr(line.indexOf(\" \") + 1).split(\";\");\n for (var j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split(\"=\");\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n };\n\n // Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeFmtp = function (codec) {\n var line = \"\";\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n var params = [];\n Object.keys(codec.parameters).forEach(function (param) {\n if (codec.parameters[param]) {\n params.push(param + \"=\" + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += \"a=fmtp:\" + pt + \" \" + params.join(\";\") + \"\\r\\n\";\n }\n return line;\n };\n\n // Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n // a=rtcp-fb:98 nack rpsi\n SDPUtils.parseRtcpFb = function (line) {\n var parts = line.substr(line.indexOf(\" \") + 1).split(\" \");\n return {\n type: parts.shift(),\n parameter: parts.join(\" \"),\n };\n };\n // Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\n SDPUtils.writeRtcpFb = function (codec) {\n var lines = \"\";\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(function (fb) {\n lines +=\n \"a=rtcp-fb:\" +\n pt +\n \" \" +\n fb.type +\n (fb.parameter && fb.parameter.length ? \" \" + fb.parameter : \"\") +\n \"\\r\\n\";\n });\n }\n return lines;\n };\n\n // Parses an RFC 5576 ssrc media attribute. Sample input:\n // a=ssrc:3735928559 cname:something\n SDPUtils.parseSsrcMedia = function (line) {\n var sp = line.indexOf(\" \");\n var parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10),\n };\n var colon = line.indexOf(\":\", sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n };\n\n SDPUtils.parseSsrcGroup = function (line) {\n var parts = line.substr(13).split(\" \");\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(function (ssrc) {\n return parseInt(ssrc, 10);\n }),\n };\n };\n\n // Extracts the MID (RFC 5888) from a media section.\n // returns the MID or undefined if no mid line was found.\n SDPUtils.getMid = function (mediaSection) {\n var mid = SDPUtils.matchPrefix(mediaSection, \"a=mid:\")[0];\n if (mid) {\n return mid.substr(6);\n }\n };\n\n SDPUtils.parseFingerprint = function (line) {\n var parts = line.substr(14).split(\" \");\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1],\n };\n };\n\n // Extracts DTLS parameters from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the fingerprint line as input. See also getIceParameters.\n SDPUtils.getDtlsParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(\n mediaSection + sessionpart,\n \"a=fingerprint:\"\n );\n // Note: a=setup line is ignored since we use the 'auto' role.\n // Note2: 'algorithm' is not case sensitive except in Edge.\n return {\n role: \"auto\",\n fingerprints: lines.map(SDPUtils.parseFingerprint),\n };\n };\n\n // Serializes DTLS parameters to SDP.\n SDPUtils.writeDtlsParameters = function (params, setupType) {\n var sdp = \"a=setup:\" + setupType + \"\\r\\n\";\n params.fingerprints.forEach(function (fp) {\n sdp += \"a=fingerprint:\" + fp.algorithm + \" \" + fp.value + \"\\r\\n\";\n });\n return sdp;\n };\n\n // Parses a=crypto lines into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\n SDPUtils.parseCryptoLine = function (line) {\n var parts = line.substr(9).split(\" \");\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n };\n\n SDPUtils.writeCryptoLine = function (parameters) {\n return (\n \"a=crypto:\" +\n parameters.tag +\n \" \" +\n parameters.cryptoSuite +\n \" \" +\n (typeof parameters.keyParams === \"object\"\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams\n ? \" \" + parameters.sessionParams.join(\" \")\n : \"\") +\n \"\\r\\n\"\n );\n };\n\n // Parses the crypto key parameters into\n // https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\n SDPUtils.parseCryptoKeyParams = function (keyParams) {\n if (keyParams.indexOf(\"inline:\") !== 0) {\n return null;\n }\n var parts = keyParams.substr(7).split(\"|\");\n return {\n keyMethod: \"inline\",\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(\":\")[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(\":\")[1] : undefined,\n };\n };\n\n SDPUtils.writeCryptoKeyParams = function (keyParams) {\n return (\n keyParams.keyMethod +\n \":\" +\n keyParams.keySalt +\n (keyParams.lifeTime ? \"|\" + keyParams.lifeTime : \"\") +\n (keyParams.mkiValue && keyParams.mkiLength\n ? \"|\" + keyParams.mkiValue + \":\" + keyParams.mkiLength\n : \"\")\n );\n };\n\n // Extracts all SDES paramters.\n SDPUtils.getCryptoParameters = function (mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=crypto:\");\n return lines.map(SDPUtils.parseCryptoLine);\n };\n\n // Parses ICE information from SDP media section or sessionpart.\n // FIXME: for consistency with other functions this should only\n // get the ice-ufrag and ice-pwd lines as input.\n SDPUtils.getIceParameters = function (mediaSection, sessionpart) {\n var ufrag = SDPUtils.matchPrefix(\n mediaSection + sessionpart,\n \"a=ice-ufrag:\"\n )[0];\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart, \"a=ice-pwd:\")[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n };\n\n // Serializes ICE parameters to SDP.\n SDPUtils.writeIceParameters = function (params) {\n return (\n \"a=ice-ufrag:\" +\n params.usernameFragment +\n \"\\r\\n\" +\n \"a=ice-pwd:\" +\n params.password +\n \"\\r\\n\"\n );\n };\n\n // Parses the SDP media section and returns RTCRtpParameters.\n SDPUtils.parseRtpParameters = function (mediaSection) {\n var description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: [],\n };\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n for (var i = 3; i < mline.length; i++) {\n // find all codecs from mline[3..]\n var pt = mline[i];\n var rtpmapline = SDPUtils.matchPrefix(\n mediaSection,\n \"a=rtpmap:\" + pt + \" \"\n )[0];\n if (rtpmapline) {\n var codec = SDPUtils.parseRtpMap(rtpmapline);\n var fmtps = SDPUtils.matchPrefix(mediaSection, \"a=fmtp:\" + pt + \" \");\n // Only the first a=fmtp:<pt> is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection,\n \"a=rtcp-fb:\" + pt + \" \"\n ).map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case \"RED\":\n case \"ULPFEC\":\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, \"a=extmap:\").forEach(function (line) {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n };\n\n // Generates parts of the SDP media section describing the capabilities /\n // parameters.\n SDPUtils.writeRtpDescription = function (kind, caps) {\n var sdp = \"\";\n\n // Build the mline.\n sdp += \"m=\" + kind + \" \";\n sdp += caps.codecs.length > 0 ? \"9\" : \"0\"; // reject if no codecs.\n sdp += \" UDP/TLS/RTP/SAVPF \";\n sdp +=\n caps.codecs\n .map(function (codec) {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n })\n .join(\" \") + \"\\r\\n\";\n\n sdp += \"c=IN IP4 0.0.0.0\\r\\n\";\n sdp += \"a=rtcp:9 IN IP4 0.0.0.0\\r\\n\";\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(function (codec) {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n var maxptime = 0;\n caps.codecs.forEach(function (codec) {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += \"a=maxptime:\" + maxptime + \"\\r\\n\";\n }\n sdp += \"a=rtcp-mux\\r\\n\";\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(function (extension) {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n };\n\n // Parses the SDP media section and returns an array of\n // RTCRtpEncodingParameters.\n SDPUtils.parseRtpEncodingParameters = function (mediaSection) {\n var encodingParameters = [];\n var description = SDPUtils.parseRtpParameters(mediaSection);\n var hasRed = description.fecMechanisms.indexOf(\"RED\") !== -1;\n var hasUlpfec = description.fecMechanisms.indexOf(\"ULPFEC\") !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n var ssrcs = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (parts) {\n return parts.attribute === \"cname\";\n });\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n var secondarySsrc;\n\n var flows = SDPUtils.matchPrefix(mediaSection, \"a=ssrc-group:FID\").map(\n function (line) {\n var parts = line.substr(17).split(\" \");\n return parts.map(function (part) {\n return parseInt(part, 10);\n });\n }\n );\n if (\n flows.length > 0 &&\n flows[0].length > 1 &&\n flows[0][0] === primarySsrc\n ) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(function (codec) {\n if (codec.name.toUpperCase() === \"RTX\" && codec.parameters.apt) {\n var encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10),\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = { ssrc: secondarySsrc };\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? \"red+ulpfec\" : \"red\",\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc,\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n var bandwidth = SDPUtils.matchPrefix(mediaSection, \"b=\");\n if (bandwidth.length) {\n if (bandwidth[0].indexOf(\"b=TIAS:\") === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf(\"b=AS:\") === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth =\n parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95 - 50 * 40 * 8;\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(function (params) {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n };\n\n // parses http://draft.ortc.org/#rtcrtcpparameters*\n SDPUtils.parseRtcpParameters = function (mediaSection) {\n var rtcpParameters = {};\n\n // Gets the first SSRC. Note tha with RTX there might be multiple\n // SSRCs.\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (obj) {\n return obj.attribute === \"cname\";\n })[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n var rsize = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-rsize\");\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n var mux = SDPUtils.matchPrefix(mediaSection, \"a=rtcp-mux\");\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n };\n\n // parses either a=msid: or a=ssrc:... msid lines and returns\n // the id of the MediaStream and MediaStreamTrack.\n SDPUtils.parseMsid = function (mediaSection) {\n var parts;\n var spec = SDPUtils.matchPrefix(mediaSection, \"a=msid:\");\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(\" \");\n return { stream: parts[0], track: parts[1] };\n }\n var planB = SDPUtils.matchPrefix(mediaSection, \"a=ssrc:\")\n .map(function (line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function (msidParts) {\n return msidParts.attribute === \"msid\";\n });\n if (planB.length > 0) {\n parts = planB[0].value.split(\" \");\n return { stream: parts[0], track: parts[1] };\n }\n };\n\n // SCTP\n // parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n // to draft-ietf-mmusic-sctp-sdp-05\n SDPUtils.parseSctpDescription = function (mediaSection) {\n var mline = SDPUtils.parseMLine(mediaSection);\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, \"a=max-message-size:\");\n var maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n var sctpPort = SDPUtils.matchPrefix(mediaSection, \"a=sctp-port:\");\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize: maxMessageSize,\n };\n }\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\");\n if (sctpMapLines.length > 0) {\n var parts = SDPUtils.matchPrefix(mediaSection, \"a=sctpmap:\")[0]\n .substr(10)\n .split(\" \");\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize: maxMessageSize,\n };\n }\n };\n\n // SCTP\n // outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n // support by now receiving in this format, unless we originally parsed\n // as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n // protocol of DTLS/SCTP -- without UDP/ or TCP/)\n SDPUtils.writeSctpDescription = function (media, sctp) {\n var output = [];\n if (media.protocol !== \"DTLS/SCTP\") {\n output = [\n \"m=\" +\n media.kind +\n \" 9 \" +\n media.protocol +\n \" \" +\n sctp.protocol +\n \"\\r\\n\",\n \"c=IN IP4 0.0.0.0\\r\\n\",\n \"a=sctp-port:\" + sctp.port + \"\\r\\n\",\n ];\n } else {\n output = [\n \"m=\" + media.kind + \" 9 \" + media.protocol + \" \" + sctp.port + \"\\r\\n\",\n \"c=IN IP4 0.0.0.0\\r\\n\",\n \"a=sctpmap:\" + sctp.port + \" \" + sctp.protocol + \" 65535\\r\\n\",\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push(\"a=max-message-size:\" + sctp.maxMessageSize + \"\\r\\n\");\n }\n return output.join(\"\");\n };\n\n // Generate a session ID for SDP.\n // https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n // recommends using a cryptographically random +ve 64-bit value\n // but right now this should be acceptable and within the right range\n SDPUtils.generateSessionId = function () {\n return Math.random().toString().substr(2, 21);\n };\n\n // Write boilder plate for start of SDP\n // sessId argument is optional - if not supplied it will\n // be generated randomly\n // sessVersion is optional and defaults to 2\n // sessUser is optional and defaults to 'thisisadapterortc'\n SDPUtils.writeSessionBoilerplate = function (sessId, sessVer, sessUser) {\n var sessionId;\n var version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n var user = sessUser || \"thisisadapterortc\";\n // FIXME: sess-id should be an NTP timestamp.\n return (\n \"v=0\\r\\n\" +\n \"o=\" +\n user +\n \" \" +\n sessionId +\n \" \" +\n version +\n \" IN IP4 127.0.0.1\\r\\n\" +\n \"s=-\\r\\n\" +\n \"t=0 0\\r\\n\"\n );\n };\n\n SDPUtils.writeMediaSection = function (transceiver, caps, type, stream) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters()\n );\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === \"offer\" ? \"actpass\" : \"active\"\n );\n\n sdp += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\n\n if (transceiver.direction) {\n sdp += \"a=\" + transceiver.direction + \"\\r\\n\";\n } else if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += \"a=sendrecv\\r\\n\";\n } else if (transceiver.rtpSender) {\n sdp += \"a=sendonly\\r\\n\";\n } else if (transceiver.rtpReceiver) {\n sdp += \"a=recvonly\\r\\n\";\n } else {\n sdp += \"a=inactive\\r\\n\";\n }\n\n if (transceiver.rtpSender) {\n // spec.\n var msid =\n \"msid:\" + stream.id + \" \" + transceiver.rtpSender.track.id + \"\\r\\n\";\n sdp += \"a=\" + msid;\n\n // for Chrome.\n sdp +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" \" +\n msid;\n sdp +=\n \"a=ssrc-group:FID \" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" \" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \"\\r\\n\";\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" cname:\" +\n SDPUtils.localCName +\n \"\\r\\n\";\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" cname:\" +\n SDPUtils.localCName +\n \"\\r\\n\";\n }\n return sdp;\n };\n\n // Gets the direction from the mediaSection or the sessionpart.\n SDPUtils.getDirection = function (mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n var lines = SDPUtils.splitLines(mediaSection);\n for (var i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case \"a=sendrecv\":\n case \"a=sendonly\":\n case \"a=recvonly\":\n case \"a=inactive\":\n return lines[i].substr(2);\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return \"sendrecv\";\n };\n\n SDPUtils.getKind = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(\" \");\n return mline[0].substr(2);\n };\n\n SDPUtils.isRejected = function (mediaSection) {\n return mediaSection.split(\" \", 2)[1] === \"0\";\n };\n\n SDPUtils.parseMLine = function (mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var parts = lines[0].substr(2).split(\" \");\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(\" \"),\n };\n };\n\n SDPUtils.parseOLine = function (mediaSection) {\n var line = SDPUtils.matchPrefix(mediaSection, \"o=\")[0];\n var parts = line.substr(2).split(\" \");\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5],\n };\n };\n\n // a very naive interpretation of a valid SDP.\n SDPUtils.isValidSDP = function (blob) {\n if (typeof blob !== \"string\" || blob.length === 0) {\n return false;\n }\n var lines = SDPUtils.splitLines(blob);\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== \"=\") {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n };\n\n // Expose public methods.\n {\n module.exports = SDPUtils;\n }\n});\n\n/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction fixStatsType(stat) {\n return (\n {\n inboundrtp: \"inbound-rtp\",\n outboundrtp: \"outbound-rtp\",\n candidatepair: \"candidate-pair\",\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n }[stat.type] || stat.type\n );\n}\n\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\n var sdp$1 = sdp.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp$1 += sdp.writeIceParameters(transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp$1 += sdp.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === \"offer\" ? \"actpass\" : dtlsRole || \"active\"\n );\n\n sdp$1 += \"a=mid:\" + transceiver.mid + \"\\r\\n\";\n\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp$1 += \"a=sendrecv\\r\\n\";\n } else if (transceiver.rtpSender) {\n sdp$1 += \"a=sendonly\\r\\n\";\n } else if (transceiver.rtpReceiver) {\n sdp$1 += \"a=recvonly\\r\\n\";\n } else {\n sdp$1 += \"a=inactive\\r\\n\";\n }\n\n if (transceiver.rtpSender) {\n var trackId =\n transceiver.rtpSender._initialTrackId || transceiver.rtpSender.track.id;\n transceiver.rtpSender._initialTrackId = trackId;\n // spec.\n var msid = \"msid:\" + (stream ? stream.id : \"-\") + \" \" + trackId + \"\\r\\n\";\n sdp$1 += \"a=\" + msid;\n // for Chrome. Legacy should no longer be required.\n sdp$1 +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].ssrc + \" \" + msid;\n\n // RTX\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp$1 +=\n \"a=ssrc:\" + transceiver.sendEncodingParameters[0].rtx.ssrc + \" \" + msid;\n sdp$1 +=\n \"a=ssrc-group:FID \" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" \" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \"\\r\\n\";\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp$1 +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].ssrc +\n \" cname:\" +\n sdp.localCName +\n \"\\r\\n\";\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp$1 +=\n \"a=ssrc:\" +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n \" cname:\" +\n sdp.localCName +\n \"\\r\\n\";\n }\n return sdp$1;\n}\n\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers(iceServers, edgeVersion) {\n var hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(function (server) {\n if (server && (server.urls || server.url)) {\n var urls = server.urls || server.url;\n if (server.url && !server.urls) {\n console.warn(\"RTCIceServer.url is deprecated! Use urls instead.\");\n }\n var isString = typeof urls === \"string\";\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(function (url) {\n var validTurn =\n url.indexOf(\"turn:\") === 0 &&\n url.indexOf(\"transport=udp\") !== -1 &&\n url.indexOf(\"turn:[\") === -1 &&\n !hasTurn;\n\n if (validTurn) {\n hasTurn = true;\n return true;\n }\n return (\n url.indexOf(\"stun:\") === 0 &&\n edgeVersion >= 14393 &&\n url.indexOf(\"?transport=udp\") === -1\n );\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\n// Determines the intersection of local and remote capabilities.\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\n var commonCapabilities = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n };\n\n var findCodecByPayloadType = function (pt, codecs) {\n pt = parseInt(pt, 10);\n for (var i = 0; i < codecs.length; i++) {\n if (\n codecs[i].payloadType === pt ||\n codecs[i].preferredPayloadType === pt\n ) {\n return codecs[i];\n }\n }\n };\n\n var rtxCapabilityMatches = function (lRtx, rRtx, lCodecs, rCodecs) {\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\n return (\n lCodec &&\n rCodec &&\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase()\n );\n };\n\n localCapabilities.codecs.forEach(function (lCodec) {\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\n var rCodec = remoteCapabilities.codecs[i];\n if (\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\n lCodec.clockRate === rCodec.clockRate\n ) {\n if (\n lCodec.name.toLowerCase() === \"rtx\" &&\n lCodec.parameters &&\n rCodec.parameters.apt\n ) {\n // for RTX we need to find the local rtx that has a apt\n // which points to the same local codec as the remote one.\n if (\n !rtxCapabilityMatches(\n lCodec,\n rCodec,\n localCapabilities.codecs,\n remoteCapabilities.codecs\n )\n ) {\n continue;\n }\n }\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\n // number of channels is the highest common number of channels\n rCodec.numChannels = Math.min(lCodec.numChannels, rCodec.numChannels);\n // push rCodec so we reply with offerer payload type\n commonCapabilities.codecs.push(rCodec);\n\n // determine common feedback mechanisms\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function (fb) {\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\n if (\n lCodec.rtcpFeedback[j].type === fb.type &&\n lCodec.rtcpFeedback[j].parameter === fb.parameter\n ) {\n return true;\n }\n }\n return false;\n });\n // FIXME: also need to determine .parameters\n // see https://github.com/openpeer/ortc/issues/569\n break;\n }\n }\n });\n\n localCapabilities.headerExtensions.forEach(function (lHeaderExtension) {\n for (var i = 0; i < remoteCapabilities.headerExtensions.length; i++) {\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\n commonCapabilities.headerExtensions.push(rHeaderExtension);\n break;\n }\n }\n });\n\n // FIXME: fecMechanisms\n return commonCapabilities;\n}\n\n// is action=setLocalDescription with type allowed in signalingState\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\n return (\n {\n offer: {\n setLocalDescription: [\"stable\", \"have-local-offer\"],\n setRemoteDescription: [\"stable\", \"have-remote-offer\"],\n },\n answer: {\n setLocalDescription: [\"have-remote-offer\", \"have-local-pranswer\"],\n setRemoteDescription: [\"have-local-offer\", \"have-remote-pranswer\"],\n },\n }[type][action].indexOf(signalingState) !== -1\n );\n}\n\nfunction maybeAddCandidate(iceTransport, candidate) {\n // Edge's internal representation adds some fields therefore\n // not all fieldѕ are taken into account.\n var alreadyAdded = iceTransport\n .getRemoteCandidates()\n .find(function (remoteCandidate) {\n return (\n candidate.foundation === remoteCandidate.foundation &&\n candidate.ip === remoteCandidate.ip &&\n candidate.port === remoteCandidate.port &&\n candidate.priority === remoteCandidate.priority &&\n candidate.protocol === remoteCandidate.protocol &&\n candidate.type === remoteCandidate.type\n );\n });\n if (!alreadyAdded) {\n iceTransport.addRemoteCandidate(candidate);\n }\n return !alreadyAdded;\n}\n\nfunction makeError(name, description) {\n var e = new Error(description);\n e.name = name;\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\n e.code = {\n NotSupportedError: 9,\n InvalidStateError: 11,\n InvalidAccessError: 15,\n TypeError: undefined,\n OperationError: undefined,\n }[name];\n return e;\n}\n\nvar rtcpeerconnection = function (window, edgeVersion) {\n // https://w3c.github.io/mediacapture-main/#mediastream\n // Helper function to add the track to the stream and\n // dispatch the event ourselves.\n function addTrackToStreamAndFireEvent(track, stream) {\n stream.addTrack(track);\n stream.dispatchEvent(\n new window.MediaStreamTrackEvent(\"addtrack\", { track: track })\n );\n }\n\n function removeTrackFromStreamAndFireEvent(track, stream) {\n stream.removeTrack(track);\n stream.dispatchEvent(\n new window.MediaStreamTrackEvent(\"removetrack\", { track: track })\n );\n }\n\n function fireAddTrack(pc, track, receiver, streams) {\n var trackEvent = new Event(\"track\");\n trackEvent.track = track;\n trackEvent.receiver = receiver;\n trackEvent.transceiver = { receiver: receiver };\n trackEvent.streams = streams;\n window.setTimeout(function () {\n pc._dispatchEvent(\"track\", trackEvent);\n });\n }\n\n var RTCPeerConnection = function (config) {\n var pc = this;\n\n var _eventTarget = document.createDocumentFragment();\n [\"addEventListener\", \"removeEventListener\", \"dispatchEvent\"].forEach(\n function (method) {\n pc[method] = _eventTarget[method].bind(_eventTarget);\n }\n );\n\n this.canTrickleIceCandidates = null;\n\n this.needNegotiation = false;\n\n this.localStreams = [];\n this.remoteStreams = [];\n\n this._localDescription = null;\n this._remoteDescription = null;\n\n this.signalingState = \"stable\";\n this.iceConnectionState = \"new\";\n this.connectionState = \"new\";\n this.iceGatheringState = \"new\";\n\n config = JSON.parse(JSON.stringify(config || {}));\n\n this.usingBundle = config.bundlePolicy === \"max-bundle\";\n if (config.rtcpMuxPolicy === \"negotiate\") {\n throw makeError(\n \"NotSupportedError\",\n \"rtcpMuxPolicy 'negotiate' is not supported\"\n );\n } else if (!config.rtcpMuxPolicy) {\n config.rtcpMuxPolicy = \"require\";\n }\n\n switch (config.iceTransportPolicy) {\n case \"all\":\n case \"relay\":\n break;\n default:\n config.iceTransportPolicy = \"all\";\n break;\n }\n\n switch (config.bundlePolicy) {\n case \"balanced\":\n case \"max-compat\":\n case \"max-bundle\":\n break;\n default:\n config.bundlePolicy = \"balanced\";\n break;\n }\n\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\n\n this._iceGatherers = [];\n if (config.iceCandidatePoolSize) {\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\n this._iceGatherers.push(\n new window.RTCIceGatherer({\n iceServers: config.iceServers,\n gatherPolicy: config.iceTransportPolicy,\n })\n );\n }\n } else {\n config.iceCandidatePoolSize = 0;\n }\n\n this._config = config;\n\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\n // everything that is needed to describe a SDP m-line.\n this.transceivers = [];\n\n this._sdpSessionId = sdp.generateSessionId();\n this._sdpSessionVersion = 0;\n\n this._dtlsRole = undefined; // role for a=setup to use in answers.\n\n this._isClosed = false;\n };\n\n Object.defineProperty(RTCPeerConnection.prototype, \"localDescription\", {\n configurable: true,\n get: function () {\n return this._localDescription;\n },\n });\n Object.defineProperty(RTCPeerConnection.prototype, \"remoteDescription\", {\n configurable: true,\n get: function () {\n return this._remoteDescription;\n },\n });\n\n // set up event handlers on prototype\n RTCPeerConnection.prototype.onicecandidate = null;\n RTCPeerConnection.prototype.onaddstream = null;\n RTCPeerConnection.prototype.ontrack = null;\n RTCPeerConnection.prototype.onremovestream = null;\n RTCPeerConnection.prototype.onsignalingstatechange = null;\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\n RTCPeerConnection.prototype.onconnectionstatechange = null;\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\n RTCPeerConnection.prototype.onnegotiationneeded = null;\n RTCPeerConnection.prototype.ondatachannel = null;\n\n RTCPeerConnection.prototype._dispatchEvent = function (name, event) {\n if (this._isClosed) {\n return;\n }\n this.dispatchEvent(event);\n if (typeof this[\"on\" + name] === \"function\") {\n this[\"on\" + name](event);\n }\n };\n\n RTCPeerConnection.prototype._emitGatheringStateChange = function () {\n var event = new Event(\"icegatheringstatechange\");\n this._dispatchEvent(\"icegatheringstatechange\", event);\n };\n\n RTCPeerConnection.prototype.getConfiguration = function () {\n return this._config;\n };\n\n RTCPeerConnection.prototype.getLocalStreams = function () {\n return this.localStreams;\n };\n\n RTCPeerConnection.prototype.getRemoteStreams = function () {\n return this.remoteStreams;\n };\n\n // internal helper to create a transceiver object.\n // (which is not yet the same as the WebRTC 1.0 transceiver)\n RTCPeerConnection.prototype._createTransceiver = function (kind, doNotAdd) {\n var hasBundleTransport = this.transceivers.length > 0;\n var transceiver = {\n track: null,\n iceGatherer: null,\n iceTransport: null,\n dtlsTransport: null,\n localCapabilities: null,\n remoteCapabilities: null,\n rtpSender: null,\n rtpReceiver: null,\n kind: kind,\n mid: null,\n sendEncodingParameters: null,\n recvEncodingParameters: null,\n stream: null,\n associatedRemoteMediaStreams: [],\n wantReceive: true,\n };\n if (this.usingBundle && hasBundleTransport) {\n transceiver.iceTransport = this.transceivers[0].iceTransport;\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\n } else {\n var transports = this._createIceAndDtlsTransports();\n transceiver.iceTransport = transports.iceTransport;\n transceiver.dtlsTransport = transports.dtlsTransport;\n }\n if (!doNotAdd) {\n this.transceivers.push(transceiver);\n }\n return transceiver;\n };\n\n RTCPeerConnection.prototype.addTrack = function (track, stream) {\n if (this._isClosed) {\n throw makeError(\n \"InvalidStateError\",\n \"Attempted to call addTrack on a closed peerconnection.\"\n );\n }\n\n var alreadyExists = this.transceivers.find(function (s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw makeError(\"InvalidAccessError\", \"Track already exists.\");\n }\n\n var transceiver;\n for (var i = 0; i < this.transceivers.length; i++) {\n if (\n !this.transceivers[i].track &&\n this.transceivers[i].kind === track.kind\n ) {\n transceiver = this.transceivers[i];\n }\n }\n if (!transceiver) {\n transceiver = this._createTransceiver(track.kind);\n }\n\n this._maybeFireNegotiationNeeded();\n\n if (this.localStreams.indexOf(stream) === -1) {\n this.localStreams.push(stream);\n }\n\n transceiver.track = track;\n transceiver.stream = stream;\n transceiver.rtpSender = new window.RTCRtpSender(\n track,\n transceiver.dtlsTransport\n );\n return transceiver.rtpSender;\n };\n\n RTCPeerConnection.prototype.addStream = function (stream) {\n var pc = this;\n if (edgeVersion >= 15025) {\n stream.getTracks().forEach(function (track) {\n pc.addTrack(track, stream);\n });\n } else {\n // Clone is necessary for local demos mostly, attaching directly\n // to two different senders does not work (build 10547).\n // Fixed in 15025 (or earlier)\n var clonedStream = stream.clone();\n stream.getTracks().forEach(function (track, idx) {\n var clonedTrack = clonedStream.getTracks()[idx];\n track.addEventListener(\"enabled\", function (event) {\n clonedTrack.enabled = event.enabled;\n });\n });\n clonedStream.getTracks().forEach(function (track) {\n pc.addTrack(track, clonedStream);\n });\n }\n };\n\n RTCPeerConnection.prototype.removeTrack = function (sender) {\n if (this._isClosed) {\n throw makeError(\n \"InvalidStateError\",\n \"Attempted to call removeTrack on a closed peerconnection.\"\n );\n }\n\n if (!(sender instanceof window.RTCRtpSender)) {\n throw new TypeError(\n \"Argument 1 of RTCPeerConnection.removeTrack \" +\n \"does not implement interface RTCRtpSender.\"\n );\n }\n\n var transceiver = this.transceivers.find(function (t) {\n return t.rtpSender === sender;\n });\n\n if (!transceiver) {\n throw makeError(\n \"InvalidAccessError\",\n \"Sender was not created by this connection.\"\n );\n }\n var stream = transceiver.stream;\n\n transceiver.rtpSender.stop();\n transceiver.rtpSender = null;\n transceiver.track = null;\n transceiver.stream = null;\n\n // remove the stream from the set of local streams\n var localStreams = this.transceivers.map(function (t) {\n return t.stream;\n });\n if (\n localStreams.indexOf(stream) === -1 &&\n this.localStreams.indexOf(stream) > -1\n ) {\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\n }\n\n this._maybeFireNegotiationNeeded();\n };\n\n RTCPeerConnection.prototype.removeStream = function (stream) {\n var pc = this;\n stream.getTracks().forEach(function (track) {\n var sender = pc.getSenders().find(function (s) {\n return s.track === track;\n });\n if (sender) {\n pc.removeTrack(sender);\n }\n });\n };\n\n RTCPeerConnection.prototype.getSenders = function () {\n return this.transceivers\n .filter(function (transceiver) {\n return !!transceiver.rtpSender;\n })\n .map(function (transceiver) {\n return transceiver.rtpSender;\n });\n };\n\n RTCPeerConnection.prototype.getReceivers = function () {\n return this.transceivers\n .filter(function (transceiver) {\n return !!transceiver.rtpReceiver;\n })\n .map(function (transceiver) {\n return transceiver.rtpReceiver;\n });\n };\n\n RTCPeerConnection.prototype._createIceGatherer = function (\n sdpMLineIndex,\n usingBundle\n ) {\n var pc = this;\n if (usingBundle && sdpMLineIndex > 0) {\n return this.transceivers[0].iceGatherer;\n } else if (this._iceGatherers.length) {\n return this._iceGatherers.shift();\n }\n var iceGatherer = new window.RTCIceGatherer({\n iceServers: this._config.iceServers,\n gatherPolicy: this._config.iceTransportPolicy,\n });\n Object.defineProperty(iceGatherer, \"state\", {\n value: \"new\",\n writable: true,\n });\n\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\n this.transceivers[sdpMLineIndex].bufferCandidates = function (event) {\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n iceGatherer.state = end ? \"completed\" : \"gathering\";\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\n }\n };\n iceGatherer.addEventListener(\n \"localcandidate\",\n this.transceivers[sdpMLineIndex].bufferCandidates\n );\n return iceGatherer;\n };\n\n // start gathering from an RTCIceGatherer.\n RTCPeerConnection.prototype._gather = function (mid, sdpMLineIndex) {\n var pc = this;\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer.onlocalcandidate) {\n return;\n }\n var bufferedCandidateEvents =\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\n iceGatherer.removeEventListener(\n \"localcandidate\",\n this.transceivers[sdpMLineIndex].bufferCandidates\n );\n iceGatherer.onlocalcandidate = function (evt) {\n if (pc.usingBundle && sdpMLineIndex > 0) {\n // if we know that we use bundle we can drop candidates with\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\n // confused since we dispose the extra ice gatherer.\n return;\n }\n var event = new Event(\"icecandidate\");\n event.candidate = { sdpMid: mid, sdpMLineIndex: sdpMLineIndex };\n\n var cand = evt.candidate;\n // Edge emits an empty object for RTCIceCandidateComplete‥\n var end = !cand || Object.keys(cand).length === 0;\n if (end) {\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n if (iceGatherer.state === \"new\" || iceGatherer.state === \"gathering\") {\n iceGatherer.state = \"completed\";\n }\n } else {\n if (iceGatherer.state === \"new\") {\n iceGatherer.state = \"gathering\";\n }\n // RTCIceCandidate doesn't have a component, needs to be added\n cand.component = 1;\n // also the usernameFragment. TODO: update SDP to take both variants.\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\n\n var serializedCandidate = sdp.writeCandidate(cand);\n event.candidate = Object.assign(\n event.candidate,\n sdp.parseCandidate(serializedCandidate)\n );\n\n event.candidate.candidate = serializedCandidate;\n event.candidate.toJSON = function () {\n return {\n candidate: event.candidate.candidate,\n sdpMid: event.candidate.sdpMid,\n sdpMLineIndex: event.candidate.sdpMLineIndex,\n usernameFragment: event.candidate.usernameFragment,\n };\n };\n }\n\n // update local description.\n var sections = sdp.getMediaSections(pc._localDescription.sdp);\n if (!end) {\n sections[event.candidate.sdpMLineIndex] +=\n \"a=\" + event.candidate.candidate + \"\\r\\n\";\n } else {\n sections[event.candidate.sdpMLineIndex] += \"a=end-of-candidates\\r\\n\";\n }\n pc._localDescription.sdp =\n sdp.getDescription(pc._localDescription.sdp) + sections.join(\"\");\n var complete = pc.transceivers.every(function (transceiver) {\n return (\n transceiver.iceGatherer &&\n transceiver.iceGatherer.state === \"completed\"\n );\n });\n\n if (pc.iceGatheringState !== \"gathering\") {\n pc.iceGatheringState = \"gathering\";\n pc._emitGatheringStateChange();\n }\n\n // Emit candidate. Also emit null candidate when all gatherers are\n // complete.\n if (!end) {\n pc._dispatchEvent(\"icecandidate\", event);\n }\n if (complete) {\n pc._dispatchEvent(\"icecandidate\", new Event(\"icecandidate\"));\n pc.iceGatheringState = \"complete\";\n pc._emitGatheringStateChange();\n }\n };\n\n // emit already gathered candidates.\n window.setTimeout(function () {\n bufferedCandidateEvents.forEach(function (e) {\n iceGatherer.onlocalcandidate(e);\n });\n }, 0);\n };\n\n // Create ICE transport and DTLS transport.\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function () {\n var pc = this;\n var iceTransport = new window.RTCIceTransport(null);\n iceTransport.onicestatechange = function () {\n pc._updateIceConnectionState();\n pc._updateConnectionState();\n };\n\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\n dtlsTransport.ondtlsstatechange = function () {\n pc._updateConnectionState();\n };\n dtlsTransport.onerror = function () {\n // onerror does not set state to failed by itself.\n Object.defineProperty(dtlsTransport, \"state\", {\n value: \"failed\",\n writable: true,\n });\n pc._updateConnectionState();\n };\n\n return {\n iceTransport: iceTransport,\n dtlsTransport: dtlsTransport,\n };\n };\n\n // Destroy ICE gatherer, ICE transport and DTLS transport.\n // Without triggering the callbacks.\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function (\n sdpMLineIndex\n ) {\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer) {\n delete iceGatherer.onlocalcandidate;\n delete this.transceivers[sdpMLineIndex].iceGatherer;\n }\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\n if (iceTransport) {\n delete iceTransport.onicestatechange;\n delete this.transceivers[sdpMLineIndex].iceTransport;\n }\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\n if (dtlsTransport) {\n delete dtlsTransport.ondtlsstatechange;\n delete dtlsTransport.onerror;\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\n }\n };\n\n // Start the RTP Sender and Receiver for a transceiver.\n RTCPeerConnection.prototype._transceive = function (transceiver, send, recv) {\n var params = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n if (send && transceiver.rtpSender) {\n params.encodings = transceiver.sendEncodingParameters;\n params.rtcp = {\n cname: sdp.localCName,\n compound: transceiver.rtcpParameters.compound,\n };\n if (transceiver.recvEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\n }\n transceiver.rtpSender.send(params);\n }\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\n // remove RTX field in Edge 14942\n if (\n transceiver.kind === \"video\" &&\n transceiver.recvEncodingParameters &&\n edgeVersion < 15019\n ) {\n transceiver.recvEncodingParameters.forEach(function (p) {\n delete p.rtx;\n });\n }\n if (transceiver.recvEncodingParameters.length) {\n params.encodings = transceiver.recvEncodingParameters;\n } else {\n params.encodings = [{}];\n }\n params.rtcp = {\n compound: transceiver.rtcpParameters.compound,\n };\n if (transceiver.rtcpParameters.cname) {\n params.rtcp.cname = transceiver.rtcpParameters.cname;\n }\n if (transceiver.sendEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\n }\n transceiver.rtpReceiver.receive(params);\n }\n };\n\n RTCPeerConnection.prototype.setLocalDescription = function (description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\n return Promise.reject(\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\n );\n }\n\n if (\n !isActionAllowedInSignalingState(\n \"setLocalDescription\",\n description.type,\n pc.signalingState\n ) ||\n pc._isClosed\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not set local \" +\n description.type +\n \" in state \" +\n pc.signalingState\n )\n );\n }\n\n var sections;\n var sessionpart;\n if (description.type === \"offer\") {\n // VERY limited support for SDP munging. Limited to:\n // * changing the order of codecs\n sections = sdp.splitSections(description.sdp);\n sessionpart = sections.shift();\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var caps = sdp.parseRtpParameters(mediaSection);\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\n });\n\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n });\n } else if (description.type === \"answer\") {\n sections = sdp.splitSections(pc._remoteDescription.sdp);\n sessionpart = sections.shift();\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var transceiver = pc.transceivers[sdpMLineIndex];\n var iceGatherer = transceiver.iceGatherer;\n var iceTransport = transceiver.iceTransport;\n var dtlsTransport = transceiver.dtlsTransport;\n var localCapabilities = transceiver.localCapabilities;\n var remoteCapabilities = transceiver.remoteCapabilities;\n\n // treat bundle-only as not-rejected.\n var rejected =\n sdp.isRejected(mediaSection) &&\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\n\n if (!rejected && !transceiver.rejected) {\n var remoteIceParameters = sdp.getIceParameters(\n mediaSection,\n sessionpart\n );\n var remoteDtlsParameters = sdp.getDtlsParameters(\n mediaSection,\n sessionpart\n );\n if (isIceLite) {\n remoteDtlsParameters.role = \"server\";\n }\n\n if (!pc.usingBundle || sdpMLineIndex === 0) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n if (iceTransport.state === \"new\") {\n iceTransport.start(\n iceGatherer,\n remoteIceParameters,\n isIceLite ? \"controlling\" : \"controlled\"\n );\n }\n if (dtlsTransport.state === \"new\") {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // Calculate intersection of capabilities.\n var params = getCommonCapabilities(\n localCapabilities,\n remoteCapabilities\n );\n\n // Start the RTCRtpSender. The RTCRtpReceiver for this\n // transceiver has already been started in setRemoteDescription.\n pc._transceive(transceiver, params.codecs.length > 0, false);\n }\n });\n }\n\n pc._localDescription = {\n type: description.type,\n sdp: description.sdp,\n };\n if (description.type === \"offer\") {\n pc._updateSignalingState(\"have-local-offer\");\n } else {\n pc._updateSignalingState(\"stable\");\n }\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.setRemoteDescription = function (description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if ([\"offer\", \"answer\"].indexOf(description.type) === -1) {\n return Promise.reject(\n makeError(\"TypeError\", 'Unsupported type \"' + description.type + '\"')\n );\n }\n\n if (\n !isActionAllowedInSignalingState(\n \"setRemoteDescription\",\n description.type,\n pc.signalingState\n ) ||\n pc._isClosed\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not set remote \" +\n description.type +\n \" in state \" +\n pc.signalingState\n )\n );\n }\n\n var streams = {};\n pc.remoteStreams.forEach(function (stream) {\n streams[stream.id] = stream;\n });\n var receiverList = [];\n var sections = sdp.splitSections(description.sdp);\n var sessionpart = sections.shift();\n var isIceLite = sdp.matchPrefix(sessionpart, \"a=ice-lite\").length > 0;\n var usingBundle =\n sdp.matchPrefix(sessionpart, \"a=group:BUNDLE \").length > 0;\n pc.usingBundle = usingBundle;\n var iceOptions = sdp.matchPrefix(sessionpart, \"a=ice-options:\")[0];\n if (iceOptions) {\n pc.canTrickleIceCandidates =\n iceOptions.substr(14).split(\" \").indexOf(\"trickle\") >= 0;\n } else {\n pc.canTrickleIceCandidates = false;\n }\n\n sections.forEach(function (mediaSection, sdpMLineIndex) {\n var lines = sdp.splitLines(mediaSection);\n var kind = sdp.getKind(mediaSection);\n // treat bundle-only as not-rejected.\n var rejected =\n sdp.isRejected(mediaSection) &&\n sdp.matchPrefix(mediaSection, \"a=bundle-only\").length === 0;\n var protocol = lines[0].substr(2).split(\" \")[2];\n\n var direction = sdp.getDirection(mediaSection, sessionpart);\n var remoteMsid = sdp.parseMsid(mediaSection);\n\n var mid = sdp.getMid(mediaSection) || sdp.generateIdentifier();\n\n // Reject datachannels which are not implemented yet.\n if (\n rejected ||\n (kind === \"application\" &&\n (protocol === \"DTLS/SCTP\" || protocol === \"UDP/DTLS/SCTP\"))\n ) {\n // TODO: this is dangerous in the case where a non-rejected m-line\n // becomes rejected.\n pc.transceivers[sdpMLineIndex] = {\n mid: mid,\n kind: kind,\n protocol: protocol,\n rejected: true,\n };\n return;\n }\n\n if (\n !rejected &&\n pc.transceivers[sdpMLineIndex] &&\n pc.transceivers[sdpMLineIndex].rejected\n ) {\n // recycle a rejected transceiver.\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\n }\n\n var transceiver;\n var iceGatherer;\n var iceTransport;\n var dtlsTransport;\n var rtpReceiver;\n var sendEncodingParameters;\n var recvEncodingParameters;\n var localCapabilities;\n\n var track;\n // FIXME: ensure the mediaSection has rtcp-mux set.\n var remoteCapabilities = sdp.parseRtpParameters(mediaSection);\n var remoteIceParameters;\n var remoteDtlsParameters;\n if (!rejected) {\n remoteIceParameters = sdp.getIceParameters(mediaSection, sessionpart);\n remoteDtlsParameters = sdp.getDtlsParameters(mediaSection, sessionpart);\n remoteDtlsParameters.role = \"client\";\n }\n recvEncodingParameters = sdp.parseRtpEncodingParameters(mediaSection);\n\n var rtcpParameters = sdp.parseRtcpParameters(mediaSection);\n\n var isComplete =\n sdp.matchPrefix(mediaSection, \"a=end-of-candidates\", sessionpart)\n .length > 0;\n var cands = sdp\n .matchPrefix(mediaSection, \"a=candidate:\")\n .map(function (cand) {\n return sdp.parseCandidate(cand);\n })\n .filter(function (cand) {\n return cand.component === 1;\n });\n\n // Check if we can use BUNDLE and dispose transports.\n if (\n (description.type === \"offer\" || description.type === \"answer\") &&\n !rejected &&\n usingBundle &&\n sdpMLineIndex > 0 &&\n pc.transceivers[sdpMLineIndex]\n ) {\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\n pc.transceivers[sdpMLineIndex].iceGatherer =\n pc.transceivers[0].iceGatherer;\n pc.transceivers[sdpMLineIndex].iceTransport =\n pc.transceivers[0].iceTransport;\n pc.transceivers[sdpMLineIndex].dtlsTransport =\n pc.transceivers[0].dtlsTransport;\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\n pc.transceivers[0].dtlsTransport\n );\n }\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\n pc.transceivers[0].dtlsTransport\n );\n }\n }\n if (description.type === \"offer\" && !rejected) {\n transceiver =\n pc.transceivers[sdpMLineIndex] || pc._createTransceiver(kind);\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(\n sdpMLineIndex,\n usingBundle\n );\n }\n\n if (cands.length && transceiver.iceTransport.state === \"new\") {\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\n transceiver.iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function (candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\n\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\n codec\n ) {\n return codec.name !== \"rtx\";\n });\n }\n\n sendEncodingParameters = transceiver.sendEncodingParameters || [\n {\n ssrc: (2 * sdpMLineIndex + 2) * 1001,\n },\n ];\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n var isNewTrack = false;\n if (direction === \"sendrecv\" || direction === \"sendonly\") {\n isNewTrack = !transceiver.rtpReceiver;\n rtpReceiver =\n transceiver.rtpReceiver ||\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\n\n if (isNewTrack) {\n var stream;\n track = rtpReceiver.track;\n // FIXME: does not work with Plan B.\n if (remoteMsid && remoteMsid.stream === \"-\");\n else if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n Object.defineProperty(streams[remoteMsid.stream], \"id\", {\n get: function () {\n return remoteMsid.stream;\n },\n });\n }\n Object.defineProperty(track, \"id\", {\n get: function () {\n return remoteMsid.track;\n },\n });\n stream = streams[remoteMsid.stream];\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n stream = streams.default;\n }\n if (stream) {\n addTrackToStreamAndFireEvent(track, stream);\n transceiver.associatedRemoteMediaStreams.push(stream);\n }\n receiverList.push([track, rtpReceiver, stream]);\n }\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\n transceiver.associatedRemoteMediaStreams.forEach(function (s) {\n var nativeTrack = s.getTracks().find(function (t) {\n return t.id === transceiver.rtpReceiver.track.id;\n });\n if (nativeTrack) {\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\n }\n });\n transceiver.associatedRemoteMediaStreams = [];\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.remoteCapabilities = remoteCapabilities;\n transceiver.rtpReceiver = rtpReceiver;\n transceiver.rtcpParameters = rtcpParameters;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n transceiver.recvEncodingParameters = recvEncodingParameters;\n\n // Start the RTCRtpReceiver now. The RTPSender is started in\n // setLocalDescription.\n pc._transceive(pc.transceivers[sdpMLineIndex], false, isNewTrack);\n } else if (description.type === \"answer\" && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex];\n iceGatherer = transceiver.iceGatherer;\n iceTransport = transceiver.iceTransport;\n dtlsTransport = transceiver.dtlsTransport;\n rtpReceiver = transceiver.rtpReceiver;\n sendEncodingParameters = transceiver.sendEncodingParameters;\n localCapabilities = transceiver.localCapabilities;\n\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\n recvEncodingParameters;\n pc.transceivers[sdpMLineIndex].remoteCapabilities = remoteCapabilities;\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\n\n if (cands.length && iceTransport.state === \"new\") {\n if (\n (isIceLite || isComplete) &&\n (!usingBundle || sdpMLineIndex === 0)\n ) {\n iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function (candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n if (!usingBundle || sdpMLineIndex === 0) {\n if (iceTransport.state === \"new\") {\n iceTransport.start(iceGatherer, remoteIceParameters, \"controlling\");\n }\n if (dtlsTransport.state === \"new\") {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // If the offer contained RTX but the answer did not,\n // remove RTX from sendEncodingParameters.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\n return c.name.toLowerCase() === \"rtx\";\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n pc._transceive(\n transceiver,\n direction === \"sendrecv\" || direction === \"recvonly\",\n direction === \"sendrecv\" || direction === \"sendonly\"\n );\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n if (\n rtpReceiver &&\n (direction === \"sendrecv\" || direction === \"sendonly\")\n ) {\n track = rtpReceiver.track;\n if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams.default);\n receiverList.push([track, rtpReceiver, streams.default]);\n }\n } else {\n // FIXME: actually the receiver should be created later.\n delete transceiver.rtpReceiver;\n }\n }\n });\n\n if (pc._dtlsRole === undefined) {\n pc._dtlsRole = description.type === \"offer\" ? \"active\" : \"passive\";\n }\n\n pc._remoteDescription = {\n type: description.type,\n sdp: description.sdp,\n };\n if (description.type === \"offer\") {\n pc._updateSignalingState(\"have-remote-offer\");\n } else {\n pc._updateSignalingState(\"stable\");\n }\n Object.keys(streams).forEach(function (sid) {\n var stream = streams[sid];\n if (stream.getTracks().length) {\n if (pc.remoteStreams.indexOf(stream) === -1) {\n pc.remoteStreams.push(stream);\n var event = new Event(\"addstream\");\n event.stream = stream;\n window.setTimeout(function () {\n pc._dispatchEvent(\"addstream\", event);\n });\n }\n\n receiverList.forEach(function (item) {\n var track = item[0];\n var receiver = item[1];\n if (stream.id !== item[2].id) {\n return;\n }\n fireAddTrack(pc, track, receiver, [stream]);\n });\n }\n });\n receiverList.forEach(function (item) {\n if (item[2]) {\n return;\n }\n fireAddTrack(pc, item[0], item[1], []);\n });\n\n // check whether addIceCandidate({}) was called within four seconds after\n // setRemoteDescription.\n window.setTimeout(function () {\n if (!(pc && pc.transceivers)) {\n return;\n }\n pc.transceivers.forEach(function (transceiver) {\n if (\n transceiver.iceTransport &&\n transceiver.iceTransport.state === \"new\" &&\n transceiver.iceTransport.getRemoteCandidates().length > 0\n ) {\n console.warn(\n \"Timeout for addRemoteCandidate. Consider sending \" +\n \"an end-of-candidates notification\"\n );\n transceiver.iceTransport.addRemoteCandidate({});\n }\n });\n }, 4000);\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.close = function () {\n this.transceivers.forEach(function (transceiver) {\n /* not yet\n if (transceiver.iceGatherer) {\n transceiver.iceGatherer.close();\n }\n */\n if (transceiver.iceTransport) {\n transceiver.iceTransport.stop();\n }\n if (transceiver.dtlsTransport) {\n transceiver.dtlsTransport.stop();\n }\n if (transceiver.rtpSender) {\n transceiver.rtpSender.stop();\n }\n if (transceiver.rtpReceiver) {\n transceiver.rtpReceiver.stop();\n }\n });\n // FIXME: clean up tracks, local streams, remote streams, etc\n this._isClosed = true;\n this._updateSignalingState(\"closed\");\n };\n\n // Update the signaling state.\n RTCPeerConnection.prototype._updateSignalingState = function (newState) {\n this.signalingState = newState;\n var event = new Event(\"signalingstatechange\");\n this._dispatchEvent(\"signalingstatechange\", event);\n };\n\n // Determine whether to fire the negotiationneeded event.\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function () {\n var pc = this;\n if (this.signalingState !== \"stable\" || this.needNegotiation === true) {\n return;\n }\n this.needNegotiation = true;\n window.setTimeout(function () {\n if (pc.needNegotiation) {\n pc.needNegotiation = false;\n var event = new Event(\"negotiationneeded\");\n pc._dispatchEvent(\"negotiationneeded\", event);\n }\n }, 0);\n };\n\n // Update the ice connection state.\n RTCPeerConnection.prototype._updateIceConnectionState = function () {\n var newState;\n var states = {\n new: 0,\n closed: 0,\n checking: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0,\n };\n this.transceivers.forEach(function (transceiver) {\n if (transceiver.iceTransport && !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n }\n });\n\n newState = \"new\";\n if (states.failed > 0) {\n newState = \"failed\";\n } else if (states.checking > 0) {\n newState = \"checking\";\n } else if (states.disconnected > 0) {\n newState = \"disconnected\";\n } else if (states.new > 0) {\n newState = \"new\";\n } else if (states.connected > 0) {\n newState = \"connected\";\n } else if (states.completed > 0) {\n newState = \"completed\";\n }\n\n if (newState !== this.iceConnectionState) {\n this.iceConnectionState = newState;\n var event = new Event(\"iceconnectionstatechange\");\n this._dispatchEvent(\"iceconnectionstatechange\", event);\n }\n };\n\n // Update the connection state.\n RTCPeerConnection.prototype._updateConnectionState = function () {\n var newState;\n var states = {\n new: 0,\n closed: 0,\n connecting: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0,\n };\n this.transceivers.forEach(function (transceiver) {\n if (\n transceiver.iceTransport &&\n transceiver.dtlsTransport &&\n !transceiver.rejected\n ) {\n states[transceiver.iceTransport.state]++;\n states[transceiver.dtlsTransport.state]++;\n }\n });\n // ICETransport.completed and connected are the same for this purpose.\n states.connected += states.completed;\n\n newState = \"new\";\n if (states.failed > 0) {\n newState = \"failed\";\n } else if (states.connecting > 0) {\n newState = \"connecting\";\n } else if (states.disconnected > 0) {\n newState = \"disconnected\";\n } else if (states.new > 0) {\n newState = \"new\";\n } else if (states.connected > 0) {\n newState = \"connected\";\n }\n\n if (newState !== this.connectionState) {\n this.connectionState = newState;\n var event = new Event(\"connectionstatechange\");\n this._dispatchEvent(\"connectionstatechange\", event);\n }\n };\n\n RTCPeerConnection.prototype.createOffer = function () {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(\n makeError(\"InvalidStateError\", \"Can not call createOffer after close\")\n );\n }\n\n var numAudioTracks = pc.transceivers.filter(function (t) {\n return t.kind === \"audio\";\n }).length;\n var numVideoTracks = pc.transceivers.filter(function (t) {\n return t.kind === \"video\";\n }).length;\n\n // Determine number of audio and video tracks we need to send/recv.\n var offerOptions = arguments[0];\n if (offerOptions) {\n // Reject Chrome legacy constraints.\n if (offerOptions.mandatory || offerOptions.optional) {\n throw new TypeError(\n \"Legacy mandatory/optional constraints not supported.\"\n );\n }\n if (offerOptions.offerToReceiveAudio !== undefined) {\n if (offerOptions.offerToReceiveAudio === true) {\n numAudioTracks = 1;\n } else if (offerOptions.offerToReceiveAudio === false) {\n numAudioTracks = 0;\n } else {\n numAudioTracks = offerOptions.offerToReceiveAudio;\n }\n }\n if (offerOptions.offerToReceiveVideo !== undefined) {\n if (offerOptions.offerToReceiveVideo === true) {\n numVideoTracks = 1;\n } else if (offerOptions.offerToReceiveVideo === false) {\n numVideoTracks = 0;\n } else {\n numVideoTracks = offerOptions.offerToReceiveVideo;\n }\n }\n }\n\n pc.transceivers.forEach(function (transceiver) {\n if (transceiver.kind === \"audio\") {\n numAudioTracks--;\n if (numAudioTracks < 0) {\n transceiver.wantReceive = false;\n }\n } else if (transceiver.kind === \"video\") {\n numVideoTracks--;\n if (numVideoTracks < 0) {\n transceiver.wantReceive = false;\n }\n }\n });\n\n // Create M-lines for recvonly streams.\n while (numAudioTracks > 0 || numVideoTracks > 0) {\n if (numAudioTracks > 0) {\n pc._createTransceiver(\"audio\");\n numAudioTracks--;\n }\n if (numVideoTracks > 0) {\n pc._createTransceiver(\"video\");\n numVideoTracks--;\n }\n }\n\n var sdp$1 = sdp.writeSessionBoilerplate(\n pc._sdpSessionId,\n pc._sdpSessionVersion++\n );\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n // For each track, create an ice gatherer, ice transport,\n // dtls transport, potentially rtpsender and rtpreceiver.\n var track = transceiver.track;\n var kind = transceiver.kind;\n var mid = transceiver.mid || sdp.generateIdentifier();\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(\n sdpMLineIndex,\n pc.usingBundle\n );\n }\n\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(function (\n codec\n ) {\n return codec.name !== \"rtx\";\n });\n }\n localCapabilities.codecs.forEach(function (codec) {\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\n // by adding level-asymmetry-allowed=1\n if (\n codec.name === \"H264\" &&\n codec.parameters[\"level-asymmetry-allowed\"] === undefined\n ) {\n codec.parameters[\"level-asymmetry-allowed\"] = \"1\";\n }\n\n // for subsequent offers, we might have to re-use the payload\n // type of the last offer.\n if (\n transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.codecs\n ) {\n transceiver.remoteCapabilities.codecs.forEach(function (remoteCodec) {\n if (\n codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\n codec.clockRate === remoteCodec.clockRate\n ) {\n codec.preferredPayloadType = remoteCodec.payloadType;\n }\n });\n }\n });\n localCapabilities.headerExtensions.forEach(function (hdrExt) {\n var remoteExtensions =\n (transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.headerExtensions) ||\n [];\n remoteExtensions.forEach(function (rHdrExt) {\n if (hdrExt.uri === rHdrExt.uri) {\n hdrExt.id = rHdrExt.id;\n }\n });\n });\n\n // generate an ssrc now, to be used later in rtpSender.send\n var sendEncodingParameters = transceiver.sendEncodingParameters || [\n {\n ssrc: (2 * sdpMLineIndex + 1) * 1001,\n },\n ];\n if (track) {\n // add RTX\n if (\n edgeVersion >= 15019 &&\n kind === \"video\" &&\n !sendEncodingParameters[0].rtx\n ) {\n sendEncodingParameters[0].rtx = {\n ssrc: sendEncodingParameters[0].ssrc + 1,\n };\n }\n }\n\n if (transceiver.wantReceive) {\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\n transceiver.dtlsTransport,\n kind\n );\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n });\n\n // always offer BUNDLE and dispose on return if not supported.\n if (pc._config.bundlePolicy !== \"max-compat\") {\n sdp$1 +=\n \"a=group:BUNDLE \" +\n pc.transceivers\n .map(function (t) {\n return t.mid;\n })\n .join(\" \") +\n \"\\r\\n\";\n }\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\n\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n sdp$1 += writeMediaSection(\n transceiver,\n transceiver.localCapabilities,\n \"offer\",\n transceiver.stream,\n pc._dtlsRole\n );\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\n\n if (\n transceiver.iceGatherer &&\n pc.iceGatheringState !== \"new\" &&\n (sdpMLineIndex === 0 || !pc.usingBundle)\n ) {\n transceiver.iceGatherer.getLocalCandidates().forEach(function (cand) {\n cand.component = 1;\n sdp$1 += \"a=\" + sdp.writeCandidate(cand) + \"\\r\\n\";\n });\n\n if (transceiver.iceGatherer.state === \"completed\") {\n sdp$1 += \"a=end-of-candidates\\r\\n\";\n }\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: \"offer\",\n sdp: sdp$1,\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.createAnswer = function () {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(\n makeError(\"InvalidStateError\", \"Can not call createAnswer after close\")\n );\n }\n\n if (\n !(\n pc.signalingState === \"have-remote-offer\" ||\n pc.signalingState === \"have-local-pranswer\"\n )\n ) {\n return Promise.reject(\n makeError(\n \"InvalidStateError\",\n \"Can not call createAnswer in signalingState \" + pc.signalingState\n )\n );\n }\n\n var sdp$1 = sdp.writeSessionBoilerplate(\n pc._sdpSessionId,\n pc._sdpSessionVersion++\n );\n if (pc.usingBundle) {\n sdp$1 +=\n \"a=group:BUNDLE \" +\n pc.transceivers\n .map(function (t) {\n return t.mid;\n })\n .join(\" \") +\n \"\\r\\n\";\n }\n sdp$1 += \"a=ice-options:trickle\\r\\n\";\n\n var mediaSectionsInOffer = sdp.getMediaSections(\n pc._remoteDescription.sdp\n ).length;\n pc.transceivers.forEach(function (transceiver, sdpMLineIndex) {\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\n return;\n }\n if (transceiver.rejected) {\n if (transceiver.kind === \"application\") {\n if (transceiver.protocol === \"DTLS/SCTP\") {\n // legacy fmt\n sdp$1 += \"m=application 0 DTLS/SCTP 5000\\r\\n\";\n } else {\n sdp$1 +=\n \"m=application 0 \" +\n transceiver.protocol +\n \" webrtc-datachannel\\r\\n\";\n }\n } else if (transceiver.kind === \"audio\") {\n sdp$1 +=\n \"m=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n\" + \"a=rtpmap:0 PCMU/8000\\r\\n\";\n } else if (transceiver.kind === \"video\") {\n sdp$1 +=\n \"m=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n\" +\n \"a=rtpmap:120 VP8/90000\\r\\n\";\n }\n sdp$1 +=\n \"c=IN IP4 0.0.0.0\\r\\n\" +\n \"a=inactive\\r\\n\" +\n \"a=mid:\" +\n transceiver.mid +\n \"\\r\\n\";\n return;\n }\n\n // FIXME: look at direction.\n if (transceiver.stream) {\n var localTrack;\n if (transceiver.kind === \"audio\") {\n localTrack = transceiver.stream.getAudioTracks()[0];\n } else if (transceiver.kind === \"video\") {\n localTrack = transceiver.stream.getVideoTracks()[0];\n }\n if (localTrack) {\n // add RTX\n if (\n edgeVersion >= 15019 &&\n transceiver.kind === \"video\" &&\n !transceiver.sendEncodingParameters[0].rtx\n ) {\n transceiver.sendEncodingParameters[0].rtx = {\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1,\n };\n }\n }\n }\n\n // Calculate intersection of capabilities.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities\n );\n\n var hasRtx = commonCapabilities.codecs.filter(function (c) {\n return c.name.toLowerCase() === \"rtx\";\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n sdp$1 += writeMediaSection(\n transceiver,\n commonCapabilities,\n \"answer\",\n transceiver.stream,\n pc._dtlsRole\n );\n if (\n transceiver.rtcpParameters &&\n transceiver.rtcpParameters.reducedSize\n ) {\n sdp$1 += \"a=rtcp-rsize\\r\\n\";\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: \"answer\",\n sdp: sdp$1,\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.addIceCandidate = function (candidate) {\n var pc = this;\n var sections;\n if (\n candidate &&\n !(candidate.sdpMLineIndex !== undefined || candidate.sdpMid)\n ) {\n return Promise.reject(new TypeError(\"sdpMLineIndex or sdpMid required\"));\n }\n\n // TODO: needs to go into ops queue.\n return new Promise(function (resolve, reject) {\n if (!pc._remoteDescription) {\n return reject(\n makeError(\n \"InvalidStateError\",\n \"Can not add ICE candidate without a remote description\"\n )\n );\n } else if (!candidate || candidate.candidate === \"\") {\n for (var j = 0; j < pc.transceivers.length; j++) {\n if (pc.transceivers[j].rejected) {\n continue;\n }\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\n sections[j] += \"a=end-of-candidates\\r\\n\";\n pc._remoteDescription.sdp =\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\n if (pc.usingBundle) {\n break;\n }\n }\n } else {\n var sdpMLineIndex = candidate.sdpMLineIndex;\n if (candidate.sdpMid) {\n for (var i = 0; i < pc.transceivers.length; i++) {\n if (pc.transceivers[i].mid === candidate.sdpMid) {\n sdpMLineIndex = i;\n break;\n }\n }\n }\n var transceiver = pc.transceivers[sdpMLineIndex];\n if (transceiver) {\n if (transceiver.rejected) {\n return resolve();\n }\n var cand =\n Object.keys(candidate.candidate).length > 0\n ? sdp.parseCandidate(candidate.candidate)\n : {};\n // Ignore Chrome's invalid candidates since Edge does not like them.\n if (cand.protocol === \"tcp\" && (cand.port === 0 || cand.port === 9)) {\n return resolve();\n }\n // Ignore RTCP candidates, we assume RTCP-MUX.\n if (cand.component && cand.component !== 1) {\n return resolve();\n }\n // when using bundle, avoid adding candidates to the wrong\n // ice transport. And avoid adding candidates added in the SDP.\n if (\n sdpMLineIndex === 0 ||\n (sdpMLineIndex > 0 &&\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)\n ) {\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\n return reject(\n makeError(\"OperationError\", \"Can not add ICE candidate\")\n );\n }\n }\n\n // update the remoteDescription.\n var candidateString = candidate.candidate.trim();\n if (candidateString.indexOf(\"a=\") === 0) {\n candidateString = candidateString.substr(2);\n }\n sections = sdp.getMediaSections(pc._remoteDescription.sdp);\n sections[sdpMLineIndex] +=\n \"a=\" + (cand.type ? candidateString : \"end-of-candidates\") + \"\\r\\n\";\n pc._remoteDescription.sdp =\n sdp.getDescription(pc._remoteDescription.sdp) + sections.join(\"\");\n } else {\n return reject(\n makeError(\"OperationError\", \"Can not add ICE candidate\")\n );\n }\n }\n resolve();\n });\n };\n\n RTCPeerConnection.prototype.getStats = function (selector) {\n if (selector && selector instanceof window.MediaStreamTrack) {\n var senderOrReceiver = null;\n this.transceivers.forEach(function (transceiver) {\n if (transceiver.rtpSender && transceiver.rtpSender.track === selector) {\n senderOrReceiver = transceiver.rtpSender;\n } else if (\n transceiver.rtpReceiver &&\n transceiver.rtpReceiver.track === selector\n ) {\n senderOrReceiver = transceiver.rtpReceiver;\n }\n });\n if (!senderOrReceiver) {\n throw makeError(\"InvalidAccessError\", \"Invalid selector.\");\n }\n return senderOrReceiver.getStats();\n }\n\n var promises = [];\n this.transceivers.forEach(function (transceiver) {\n [\n \"rtpSender\",\n \"rtpReceiver\",\n \"iceGatherer\",\n \"iceTransport\",\n \"dtlsTransport\",\n ].forEach(function (method) {\n if (transceiver[method]) {\n promises.push(transceiver[method].getStats());\n }\n });\n });\n return Promise.all(promises).then(function (allStats) {\n var results = new Map();\n allStats.forEach(function (stats) {\n stats.forEach(function (stat) {\n results.set(stat.id, stat);\n });\n });\n return results;\n });\n };\n\n // fix low-level stat names and return Map instead of object.\n var ortcObjects = [\n \"RTCRtpSender\",\n \"RTCRtpReceiver\",\n \"RTCIceGatherer\",\n \"RTCIceTransport\",\n \"RTCDtlsTransport\",\n ];\n ortcObjects.forEach(function (ortcObjectName) {\n var obj = window[ortcObjectName];\n if (obj && obj.prototype && obj.prototype.getStats) {\n var nativeGetstats = obj.prototype.getStats;\n obj.prototype.getStats = function () {\n return nativeGetstats.apply(this).then(function (nativeStats) {\n var mapStats = new Map();\n Object.keys(nativeStats).forEach(function (id) {\n nativeStats[id].type = fixStatsType(nativeStats[id]);\n mapStats.set(id, nativeStats[id]);\n });\n return mapStats;\n });\n };\n }\n });\n\n // legacy callback shims. Should be moved to adapter.js some days.\n var methods = [\"createOffer\", \"createAnswer\"];\n methods.forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[0] === \"function\" || typeof args[1] === \"function\") {\n // legacy\n return nativeMethod.apply(this, [arguments[2]]).then(\n function (description) {\n if (typeof args[0] === \"function\") {\n args[0].apply(null, [description]);\n }\n },\n function (error) {\n if (typeof args[1] === \"function\") {\n args[1].apply(null, [error]);\n }\n }\n );\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n methods = [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"];\n methods.forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[1] === \"function\" || typeof args[2] === \"function\") {\n // legacy\n return nativeMethod.apply(this, arguments).then(\n function () {\n if (typeof args[1] === \"function\") {\n args[1].apply(null);\n }\n },\n function (error) {\n if (typeof args[2] === \"function\") {\n args[2].apply(null, [error]);\n }\n }\n );\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n // getStats is special. It doesn't have a spec legacy method yet we support\n // getStats(something, cb) without error callbacks.\n [\"getStats\"].forEach(function (method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function () {\n var args = arguments;\n if (typeof args[1] === \"function\") {\n return nativeMethod.apply(this, arguments).then(function () {\n if (typeof args[1] === \"function\") {\n args[1].apply(null);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n return RTCPeerConnection;\n};\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetUserMedia$2(window) {\n const navigator = window && window.navigator;\n\n const shimError_ = function (e) {\n return {\n name: { PermissionDeniedError: \"NotAllowedError\" }[e.name] || e.name,\n message: e.message,\n constraint: e.constraint,\n toString() {\n return this.name;\n },\n };\n };\n\n // getUserMedia error shim.\n const origGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (c) {\n return origGetUserMedia(c).catch((e) => Promise.reject(shimError_(e)));\n };\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetDisplayMedia$1(window) {\n if (!(\"getDisplayMedia\" in window.navigator)) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia =\n window.navigator.getDisplayMedia.bind(window.navigator);\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimPeerConnection$1(window, browserDetails) {\n if (window.RTCIceGatherer) {\n if (!window.RTCIceCandidate) {\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n return args;\n };\n }\n if (!window.RTCSessionDescription) {\n window.RTCSessionDescription = function RTCSessionDescription(args) {\n return args;\n };\n }\n // this adds an additional event listener to MediaStrackTrack that signals\n // when a tracks enabled property was changed. Workaround for a bug in\n // addStream, see below. No longer required in 15025+\n if (browserDetails.version < 15025) {\n const origMSTEnabled = Object.getOwnPropertyDescriptor(\n window.MediaStreamTrack.prototype,\n \"enabled\"\n );\n Object.defineProperty(window.MediaStreamTrack.prototype, \"enabled\", {\n set(value) {\n origMSTEnabled.set.call(this, value);\n const ev = new Event(\"enabled\");\n ev.enabled = value;\n this.dispatchEvent(ev);\n },\n });\n }\n }\n\n // ORTC defines the DTMF sender a bit different.\n // https://github.com/w3c/ortc/issues/714\n if (window.RTCRtpSender && !(\"dtmf\" in window.RTCRtpSender.prototype)) {\n Object.defineProperty(window.RTCRtpSender.prototype, \"dtmf\", {\n get() {\n if (this._dtmf === undefined) {\n if (this.track.kind === \"audio\") {\n this._dtmf = new window.RTCDtmfSender(this);\n } else if (this.track.kind === \"video\") {\n this._dtmf = null;\n }\n }\n return this._dtmf;\n },\n });\n }\n // Edge currently only implements the RTCDtmfSender, not the\n // RTCDTMFSender alias. See http://draft.ortc.org/#rtcdtmfsender2*\n if (window.RTCDtmfSender && !window.RTCDTMFSender) {\n window.RTCDTMFSender = window.RTCDtmfSender;\n }\n\n const RTCPeerConnectionShim = rtcpeerconnection(\n window,\n browserDetails.version\n );\n window.RTCPeerConnection = function RTCPeerConnection(config) {\n if (config && config.iceServers) {\n config.iceServers = filterIceServers$1(\n config.iceServers,\n browserDetails.version\n );\n log$1(\"ICE servers after filtering:\", config.iceServers);\n }\n return new RTCPeerConnectionShim(config);\n };\n window.RTCPeerConnection.prototype = RTCPeerConnectionShim.prototype;\n}\n\nfunction shimReplaceTrack(window) {\n // ORTC has replaceTrack -- https://github.com/w3c/ortc/issues/614\n if (\n window.RTCRtpSender &&\n !(\"replaceTrack\" in window.RTCRtpSender.prototype)\n ) {\n window.RTCRtpSender.prototype.replaceTrack =\n window.RTCRtpSender.prototype.setTrack;\n }\n}\n\nvar edgeShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimPeerConnection: shimPeerConnection$1,\n shimReplaceTrack: shimReplaceTrack,\n shimGetUserMedia: shimGetUserMedia$2,\n shimGetDisplayMedia: shimGetDisplayMedia$1,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetUserMedia$1(window, browserDetails) {\n const navigator = window && window.navigator;\n const MediaStreamTrack = window && window.MediaStreamTrack;\n\n navigator.getUserMedia = function (constraints, onSuccess, onError) {\n // Replace Firefox 44+'s deprecation warning with unprefixed version.\n deprecated(\"navigator.getUserMedia\", \"navigator.mediaDevices.getUserMedia\");\n navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);\n };\n\n if (\n !(\n browserDetails.version > 55 &&\n \"autoGainControl\" in navigator.mediaDevices.getSupportedConstraints()\n )\n ) {\n const remap = function (obj, a, b) {\n if (a in obj && !(b in obj)) {\n obj[b] = obj[a];\n delete obj[a];\n }\n };\n\n const nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(\n navigator.mediaDevices\n );\n navigator.mediaDevices.getUserMedia = function (c) {\n if (typeof c === \"object\" && typeof c.audio === \"object\") {\n c = JSON.parse(JSON.stringify(c));\n remap(c.audio, \"autoGainControl\", \"mozAutoGainControl\");\n remap(c.audio, \"noiseSuppression\", \"mozNoiseSuppression\");\n }\n return nativeGetUserMedia(c);\n };\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {\n const nativeGetSettings = MediaStreamTrack.prototype.getSettings;\n MediaStreamTrack.prototype.getSettings = function () {\n const obj = nativeGetSettings.apply(this, arguments);\n remap(obj, \"mozAutoGainControl\", \"autoGainControl\");\n remap(obj, \"mozNoiseSuppression\", \"noiseSuppression\");\n return obj;\n };\n }\n\n if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {\n const nativeApplyConstraints =\n MediaStreamTrack.prototype.applyConstraints;\n MediaStreamTrack.prototype.applyConstraints = function (c) {\n if (this.kind === \"audio\" && typeof c === \"object\") {\n c = JSON.parse(JSON.stringify(c));\n remap(c, \"autoGainControl\", \"mozAutoGainControl\");\n remap(c, \"noiseSuppression\", \"mozNoiseSuppression\");\n }\n return nativeApplyConstraints.apply(this, [c]);\n };\n }\n }\n}\n\n/*\n * Copyright (c) 2018 The adapter.js project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimGetDisplayMedia(window, preferredMediaSource) {\n if (\n window.navigator.mediaDevices &&\n \"getDisplayMedia\" in window.navigator.mediaDevices\n ) {\n return;\n }\n if (!window.navigator.mediaDevices) {\n return;\n }\n window.navigator.mediaDevices.getDisplayMedia = function getDisplayMedia(\n constraints\n ) {\n if (!(constraints && constraints.video)) {\n const err = new DOMException(\n \"getDisplayMedia without video \" + \"constraints is undefined\"\n );\n err.name = \"NotFoundError\";\n // from https://heycam.github.io/webidl/#idl-DOMException-error-names\n err.code = 8;\n return Promise.reject(err);\n }\n if (constraints.video === true) {\n constraints.video = { mediaSource: preferredMediaSource };\n } else {\n constraints.video.mediaSource = preferredMediaSource;\n }\n return window.navigator.mediaDevices.getUserMedia(constraints);\n };\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimOnTrack(window) {\n if (\n typeof window === \"object\" &&\n window.RTCTrackEvent &&\n \"receiver\" in window.RTCTrackEvent.prototype &&\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\n ) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get() {\n return { receiver: this.receiver };\n },\n });\n }\n}\n\nfunction shimPeerConnection(window, browserDetails) {\n if (\n typeof window !== \"object\" ||\n !(window.RTCPeerConnection || window.mozRTCPeerConnection)\n ) {\n return; // probably media.peerconnection.enabled=false in about:config\n }\n if (!window.RTCPeerConnection && window.mozRTCPeerConnection) {\n // very basic support for old versions.\n window.RTCPeerConnection = window.mozRTCPeerConnection;\n }\n\n if (browserDetails.version < 53) {\n // shim away need for obsolete RTCIceCandidate/RTCSessionDescription.\n [\"setLocalDescription\", \"setRemoteDescription\", \"addIceCandidate\"].forEach(\n function (method) {\n const nativeMethod = window.RTCPeerConnection.prototype[method];\n const methodObj = {\n [method]() {\n arguments[0] = new (\n method === \"addIceCandidate\"\n ? window.RTCIceCandidate\n : window.RTCSessionDescription\n )(arguments[0]);\n return nativeMethod.apply(this, arguments);\n },\n };\n window.RTCPeerConnection.prototype[method] = methodObj[method];\n }\n );\n }\n\n const modernStatsTypes = {\n inboundrtp: \"inbound-rtp\",\n outboundrtp: \"outbound-rtp\",\n candidatepair: \"candidate-pair\",\n localcandidate: \"local-candidate\",\n remotecandidate: \"remote-candidate\",\n };\n\n const nativeGetStats = window.RTCPeerConnection.prototype.getStats;\n window.RTCPeerConnection.prototype.getStats = function getStats() {\n const [selector, onSucc, onErr] = arguments;\n return nativeGetStats\n .apply(this, [selector || null])\n .then((stats) => {\n if (browserDetails.version < 53 && !onSucc) {\n // Shim only promise getStats with spec-hyphens in type names\n // Leave callback version alone; misc old uses of forEach before Map\n try {\n stats.forEach((stat) => {\n stat.type = modernStatsTypes[stat.type] || stat.type;\n });\n } catch (e) {\n if (e.name !== \"TypeError\") {\n throw e;\n }\n // Avoid TypeError: \"type\" is read-only, in old versions. 34-43ish\n stats.forEach((stat, i) => {\n stats.set(\n i,\n Object.assign({}, stat, {\n type: modernStatsTypes[stat.type] || stat.type,\n })\n );\n });\n }\n }\n return stats;\n })\n .then(onSucc, onErr);\n };\n}\n\nfunction shimSenderGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender\n )\n ) {\n return;\n }\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpSender.prototype) {\n return;\n }\n const origGetSenders = window.RTCPeerConnection.prototype.getSenders;\n if (origGetSenders) {\n window.RTCPeerConnection.prototype.getSenders = function getSenders() {\n const senders = origGetSenders.apply(this, []);\n senders.forEach((sender) => (sender._pc = this));\n return senders;\n };\n }\n\n const origAddTrack = window.RTCPeerConnection.prototype.addTrack;\n if (origAddTrack) {\n window.RTCPeerConnection.prototype.addTrack = function addTrack() {\n const sender = origAddTrack.apply(this, arguments);\n sender._pc = this;\n return sender;\n };\n }\n window.RTCRtpSender.prototype.getStats = function getStats() {\n return this.track\n ? this._pc.getStats(this.track)\n : Promise.resolve(new Map());\n };\n}\n\nfunction shimReceiverGetStats(window) {\n if (\n !(\n typeof window === \"object\" &&\n window.RTCPeerConnection &&\n window.RTCRtpSender\n )\n ) {\n return;\n }\n if (window.RTCRtpSender && \"getStats\" in window.RTCRtpReceiver.prototype) {\n return;\n }\n const origGetReceivers = window.RTCPeerConnection.prototype.getReceivers;\n if (origGetReceivers) {\n window.RTCPeerConnection.prototype.getReceivers = function getReceivers() {\n const receivers = origGetReceivers.apply(this, []);\n receivers.forEach((receiver) => (receiver._pc = this));\n return receivers;\n };\n }\n wrapPeerConnectionEvent(window, \"track\", (e) => {\n e.receiver._pc = e.srcElement;\n return e;\n });\n window.RTCRtpReceiver.prototype.getStats = function getStats() {\n return this._pc.getStats(this.track);\n };\n}\n\nfunction shimRemoveStream(window) {\n if (\n !window.RTCPeerConnection ||\n \"removeStream\" in window.RTCPeerConnection.prototype\n ) {\n return;\n }\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n deprecated(\"removeStream\", \"removeTrack\");\n this.getSenders().forEach((sender) => {\n if (sender.track && stream.getTracks().includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n}\n\nfunction shimRTCDataChannel(window) {\n // rename DataChannel to RTCDataChannel (native fix in FF60):\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1173851\n if (window.DataChannel && !window.RTCDataChannel) {\n window.RTCDataChannel = window.DataChannel;\n }\n}\n\nfunction shimAddTransceiver(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origAddTransceiver = window.RTCPeerConnection.prototype.addTransceiver;\n if (origAddTransceiver) {\n window.RTCPeerConnection.prototype.addTransceiver =\n function addTransceiver() {\n this.setParametersPromises = [];\n const initParameters = arguments[1];\n const shouldPerformCheck =\n initParameters && \"sendEncodings\" in initParameters;\n if (shouldPerformCheck) {\n // If sendEncodings params are provided, validate grammar\n initParameters.sendEncodings.forEach((encodingParam) => {\n if (\"rid\" in encodingParam) {\n const ridRegex = /^[a-z0-9]{0,16}$/i;\n if (!ridRegex.test(encodingParam.rid)) {\n throw new TypeError(\"Invalid RID value provided.\");\n }\n }\n if (\"scaleResolutionDownBy\" in encodingParam) {\n if (!(parseFloat(encodingParam.scaleResolutionDownBy) >= 1.0)) {\n throw new RangeError(\"scale_resolution_down_by must be >= 1.0\");\n }\n }\n if (\"maxFramerate\" in encodingParam) {\n if (!(parseFloat(encodingParam.maxFramerate) >= 0)) {\n throw new RangeError(\"max_framerate must be >= 0.0\");\n }\n }\n });\n }\n const transceiver = origAddTransceiver.apply(this, arguments);\n if (shouldPerformCheck) {\n // Check if the init options were applied. If not we do this in an\n // asynchronous way and save the promise reference in a global object.\n // This is an ugly hack, but at the same time is way more robust than\n // checking the sender parameters before and after the createOffer\n // Also note that after the createoffer we are not 100% sure that\n // the params were asynchronously applied so we might miss the\n // opportunity to recreate offer.\n const { sender } = transceiver;\n const params = sender.getParameters();\n if (\n !(\"encodings\" in params) ||\n // Avoid being fooled by patched getParameters() below.\n (params.encodings.length === 1 &&\n Object.keys(params.encodings[0]).length === 0)\n ) {\n params.encodings = initParameters.sendEncodings;\n sender.sendEncodings = initParameters.sendEncodings;\n this.setParametersPromises.push(\n sender\n .setParameters(params)\n .then(() => {\n delete sender.sendEncodings;\n })\n .catch(() => {\n delete sender.sendEncodings;\n })\n );\n }\n }\n return transceiver;\n };\n }\n}\n\nfunction shimGetParameters(window) {\n if (!(typeof window === \"object\" && window.RTCRtpSender)) {\n return;\n }\n const origGetParameters = window.RTCRtpSender.prototype.getParameters;\n if (origGetParameters) {\n window.RTCRtpSender.prototype.getParameters = function getParameters() {\n const params = origGetParameters.apply(this, arguments);\n if (!(\"encodings\" in params)) {\n params.encodings = [].concat(this.sendEncodings || [{}]);\n }\n return params;\n };\n }\n}\n\nfunction shimCreateOffer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateOffer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nfunction shimCreateAnswer(window) {\n // https://github.com/webrtcHacks/adapter/issues/998#issuecomment-516921647\n // Firefox ignores the init sendEncodings options passed to addTransceiver\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1396918\n if (!(typeof window === \"object\" && window.RTCPeerConnection)) {\n return;\n }\n const origCreateAnswer = window.RTCPeerConnection.prototype.createAnswer;\n window.RTCPeerConnection.prototype.createAnswer = function createAnswer() {\n if (this.setParametersPromises && this.setParametersPromises.length) {\n return Promise.all(this.setParametersPromises)\n .then(() => {\n return origCreateAnswer.apply(this, arguments);\n })\n .finally(() => {\n this.setParametersPromises = [];\n });\n }\n return origCreateAnswer.apply(this, arguments);\n };\n}\n\nvar firefoxShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimOnTrack: shimOnTrack,\n shimPeerConnection: shimPeerConnection,\n shimSenderGetStats: shimSenderGetStats,\n shimReceiverGetStats: shimReceiverGetStats,\n shimRemoveStream: shimRemoveStream,\n shimRTCDataChannel: shimRTCDataChannel,\n shimAddTransceiver: shimAddTransceiver,\n shimGetParameters: shimGetParameters,\n shimCreateOffer: shimCreateOffer,\n shimCreateAnswer: shimCreateAnswer,\n shimGetUserMedia: shimGetUserMedia$1,\n shimGetDisplayMedia: shimGetDisplayMedia,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimLocalStreamsAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n if (!(\"getLocalStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getLocalStreams =\n function getLocalStreams() {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n return this._localStreams;\n };\n }\n if (!(\"addStream\" in window.RTCPeerConnection.prototype)) {\n const _addTrack = window.RTCPeerConnection.prototype.addTrack;\n window.RTCPeerConnection.prototype.addStream = function addStream(stream) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n // Try to emulate Chrome's behaviour of adding in audio-video order.\n // Safari orders by track id.\n stream\n .getAudioTracks()\n .forEach((track) => _addTrack.call(this, track, stream));\n stream\n .getVideoTracks()\n .forEach((track) => _addTrack.call(this, track, stream));\n };\n\n window.RTCPeerConnection.prototype.addTrack = function addTrack(\n track,\n ...streams\n ) {\n if (streams) {\n streams.forEach((stream) => {\n if (!this._localStreams) {\n this._localStreams = [stream];\n } else if (!this._localStreams.includes(stream)) {\n this._localStreams.push(stream);\n }\n });\n }\n return _addTrack.apply(this, arguments);\n };\n }\n if (!(\"removeStream\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.removeStream = function removeStream(\n stream\n ) {\n if (!this._localStreams) {\n this._localStreams = [];\n }\n const index = this._localStreams.indexOf(stream);\n if (index === -1) {\n return;\n }\n this._localStreams.splice(index, 1);\n const tracks = stream.getTracks();\n this.getSenders().forEach((sender) => {\n if (tracks.includes(sender.track)) {\n this.removeTrack(sender);\n }\n });\n };\n }\n}\n\nfunction shimRemoteStreamsAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n if (!(\"getRemoteStreams\" in window.RTCPeerConnection.prototype)) {\n window.RTCPeerConnection.prototype.getRemoteStreams =\n function getRemoteStreams() {\n return this._remoteStreams ? this._remoteStreams : [];\n };\n }\n if (!(\"onaddstream\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"onaddstream\", {\n get() {\n return this._onaddstream;\n },\n set(f) {\n if (this._onaddstream) {\n this.removeEventListener(\"addstream\", this._onaddstream);\n this.removeEventListener(\"track\", this._onaddstreampoly);\n }\n this.addEventListener(\"addstream\", (this._onaddstream = f));\n this.addEventListener(\n \"track\",\n (this._onaddstreampoly = (e) => {\n e.streams.forEach((stream) => {\n if (!this._remoteStreams) {\n this._remoteStreams = [];\n }\n if (this._remoteStreams.includes(stream)) {\n return;\n }\n this._remoteStreams.push(stream);\n const event = new Event(\"addstream\");\n event.stream = stream;\n this.dispatchEvent(event);\n });\n })\n );\n },\n });\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n const pc = this;\n if (!this._onaddstreampoly) {\n this.addEventListener(\n \"track\",\n (this._onaddstreampoly = function (e) {\n e.streams.forEach((stream) => {\n if (!pc._remoteStreams) {\n pc._remoteStreams = [];\n }\n if (pc._remoteStreams.indexOf(stream) >= 0) {\n return;\n }\n pc._remoteStreams.push(stream);\n const event = new Event(\"addstream\");\n event.stream = stream;\n pc.dispatchEvent(event);\n });\n })\n );\n }\n return origSetRemoteDescription.apply(pc, arguments);\n };\n }\n}\n\nfunction shimCallbacksAPI(window) {\n if (typeof window !== \"object\" || !window.RTCPeerConnection) {\n return;\n }\n const prototype = window.RTCPeerConnection.prototype;\n const origCreateOffer = prototype.createOffer;\n const origCreateAnswer = prototype.createAnswer;\n const setLocalDescription = prototype.setLocalDescription;\n const setRemoteDescription = prototype.setRemoteDescription;\n const addIceCandidate = prototype.addIceCandidate;\n\n prototype.createOffer = function createOffer(\n successCallback,\n failureCallback\n ) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateOffer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n prototype.createAnswer = function createAnswer(\n successCallback,\n failureCallback\n ) {\n const options = arguments.length >= 2 ? arguments[2] : arguments[0];\n const promise = origCreateAnswer.apply(this, [options]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n\n let withCallback = function (description, successCallback, failureCallback) {\n const promise = setLocalDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setLocalDescription = withCallback;\n\n withCallback = function (description, successCallback, failureCallback) {\n const promise = setRemoteDescription.apply(this, [description]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.setRemoteDescription = withCallback;\n\n withCallback = function (candidate, successCallback, failureCallback) {\n const promise = addIceCandidate.apply(this, [candidate]);\n if (!failureCallback) {\n return promise;\n }\n promise.then(successCallback, failureCallback);\n return Promise.resolve();\n };\n prototype.addIceCandidate = withCallback;\n}\n\nfunction shimGetUserMedia(window) {\n const navigator = window && window.navigator;\n\n if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {\n // shim not needed in Safari 12.1\n const mediaDevices = navigator.mediaDevices;\n const _getUserMedia = mediaDevices.getUserMedia.bind(mediaDevices);\n navigator.mediaDevices.getUserMedia = (constraints) => {\n return _getUserMedia(shimConstraints(constraints));\n };\n }\n\n if (\n !navigator.getUserMedia &&\n navigator.mediaDevices &&\n navigator.mediaDevices.getUserMedia\n ) {\n navigator.getUserMedia = function getUserMedia(constraints, cb, errcb) {\n navigator.mediaDevices.getUserMedia(constraints).then(cb, errcb);\n }.bind(navigator);\n }\n}\n\nfunction shimConstraints(constraints) {\n if (constraints && constraints.video !== undefined) {\n return Object.assign({}, constraints, {\n video: compactObject(constraints.video),\n });\n }\n\n return constraints;\n}\n\nfunction shimRTCIceServerUrls(window) {\n if (!window.RTCPeerConnection) {\n return;\n }\n // migrate from non-spec RTCIceServer.url to RTCIceServer.urls\n const OrigPeerConnection = window.RTCPeerConnection;\n window.RTCPeerConnection = function RTCPeerConnection(\n pcConfig,\n pcConstraints\n ) {\n if (pcConfig && pcConfig.iceServers) {\n const newIceServers = [];\n for (let i = 0; i < pcConfig.iceServers.length; i++) {\n let server = pcConfig.iceServers[i];\n if (!server.hasOwnProperty(\"urls\") && server.hasOwnProperty(\"url\")) {\n deprecated(\"RTCIceServer.url\", \"RTCIceServer.urls\");\n server = JSON.parse(JSON.stringify(server));\n server.urls = server.url;\n delete server.url;\n newIceServers.push(server);\n } else {\n newIceServers.push(pcConfig.iceServers[i]);\n }\n }\n pcConfig.iceServers = newIceServers;\n }\n return new OrigPeerConnection(pcConfig, pcConstraints);\n };\n window.RTCPeerConnection.prototype = OrigPeerConnection.prototype;\n // wrap static methods. Currently just generateCertificate.\n if (\"generateCertificate\" in OrigPeerConnection) {\n Object.defineProperty(window.RTCPeerConnection, \"generateCertificate\", {\n get() {\n return OrigPeerConnection.generateCertificate;\n },\n });\n }\n}\n\nfunction shimTrackEventTransceiver(window) {\n // Add event.transceiver member over deprecated event.receiver\n if (\n typeof window === \"object\" &&\n window.RTCTrackEvent &&\n \"receiver\" in window.RTCTrackEvent.prototype &&\n !(\"transceiver\" in window.RTCTrackEvent.prototype)\n ) {\n Object.defineProperty(window.RTCTrackEvent.prototype, \"transceiver\", {\n get() {\n return { receiver: this.receiver };\n },\n });\n }\n}\n\nfunction shimCreateOfferLegacy(window) {\n const origCreateOffer = window.RTCPeerConnection.prototype.createOffer;\n window.RTCPeerConnection.prototype.createOffer = function createOffer(\n offerOptions\n ) {\n if (offerOptions) {\n if (typeof offerOptions.offerToReceiveAudio !== \"undefined\") {\n // support bit values\n offerOptions.offerToReceiveAudio = !!offerOptions.offerToReceiveAudio;\n }\n const audioTransceiver = this.getTransceivers().find(\n (transceiver) => transceiver.receiver.track.kind === \"audio\"\n );\n if (offerOptions.offerToReceiveAudio === false && audioTransceiver) {\n if (audioTransceiver.direction === \"sendrecv\") {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"sendonly\");\n } else {\n audioTransceiver.direction = \"sendonly\";\n }\n } else if (audioTransceiver.direction === \"recvonly\") {\n if (audioTransceiver.setDirection) {\n audioTransceiver.setDirection(\"inactive\");\n } else {\n audioTransceiver.direction = \"inactive\";\n }\n }\n } else if (\n offerOptions.offerToReceiveAudio === true &&\n !audioTransceiver\n ) {\n this.addTransceiver(\"audio\");\n }\n\n if (typeof offerOptions.offerToReceiveVideo !== \"undefined\") {\n // support bit values\n offerOptions.offerToReceiveVideo = !!offerOptions.offerToReceiveVideo;\n }\n const videoTransceiver = this.getTransceivers().find(\n (transceiver) => transceiver.receiver.track.kind === \"video\"\n );\n if (offerOptions.offerToReceiveVideo === false && videoTransceiver) {\n if (videoTransceiver.direction === \"sendrecv\") {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"sendonly\");\n } else {\n videoTransceiver.direction = \"sendonly\";\n }\n } else if (videoTransceiver.direction === \"recvonly\") {\n if (videoTransceiver.setDirection) {\n videoTransceiver.setDirection(\"inactive\");\n } else {\n videoTransceiver.direction = \"inactive\";\n }\n }\n } else if (\n offerOptions.offerToReceiveVideo === true &&\n !videoTransceiver\n ) {\n this.addTransceiver(\"video\");\n }\n }\n return origCreateOffer.apply(this, arguments);\n };\n}\n\nfunction shimAudioContext(window) {\n if (typeof window !== \"object\" || window.AudioContext) {\n return;\n }\n window.AudioContext = window.webkitAudioContext;\n}\n\nvar safariShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimLocalStreamsAPI: shimLocalStreamsAPI,\n shimRemoteStreamsAPI: shimRemoteStreamsAPI,\n shimCallbacksAPI: shimCallbacksAPI,\n shimGetUserMedia: shimGetUserMedia,\n shimConstraints: shimConstraints,\n shimRTCIceServerUrls: shimRTCIceServerUrls,\n shimTrackEventTransceiver: shimTrackEventTransceiver,\n shimCreateOfferLegacy: shimCreateOfferLegacy,\n shimAudioContext: shimAudioContext,\n});\n\n/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nfunction shimRTCIceCandidate(window) {\n // foundation is arbitrarily chosen as an indicator for full support for\n // https://w3c.github.io/webrtc-pc/#rtcicecandidate-interface\n if (\n !window.RTCIceCandidate ||\n (window.RTCIceCandidate && \"foundation\" in window.RTCIceCandidate.prototype)\n ) {\n return;\n }\n\n const NativeRTCIceCandidate = window.RTCIceCandidate;\n window.RTCIceCandidate = function RTCIceCandidate(args) {\n // Remove the a= which shouldn't be part of the candidate string.\n if (\n typeof args === \"object\" &&\n args.candidate &&\n args.candidate.indexOf(\"a=\") === 0\n ) {\n args = JSON.parse(JSON.stringify(args));\n args.candidate = args.candidate.substr(2);\n }\n\n if (args.candidate && args.candidate.length) {\n // Augment the native candidate with the parsed fields.\n const nativeCandidate = new NativeRTCIceCandidate(args);\n const parsedCandidate = sdp.parseCandidate(args.candidate);\n const augmentedCandidate = Object.assign(\n nativeCandidate,\n parsedCandidate\n );\n\n // Add a serializer that does not serialize the extra attributes.\n augmentedCandidate.toJSON = function toJSON() {\n return {\n candidate: augmentedCandidate.candidate,\n sdpMid: augmentedCandidate.sdpMid,\n sdpMLineIndex: augmentedCandidate.sdpMLineIndex,\n usernameFragment: augmentedCandidate.usernameFragment,\n };\n };\n return augmentedCandidate;\n }\n return new NativeRTCIceCandidate(args);\n };\n window.RTCIceCandidate.prototype = NativeRTCIceCandidate.prototype;\n\n // Hook up the augmented candidate in onicecandidate and\n // addEventListener('icecandidate', ...)\n wrapPeerConnectionEvent(window, \"icecandidate\", (e) => {\n if (e.candidate) {\n Object.defineProperty(e, \"candidate\", {\n value: new window.RTCIceCandidate(e.candidate),\n writable: \"false\",\n });\n }\n return e;\n });\n}\n\nfunction shimMaxMessageSize(window, browserDetails) {\n if (!window.RTCPeerConnection) {\n return;\n }\n\n if (!(\"sctp\" in window.RTCPeerConnection.prototype)) {\n Object.defineProperty(window.RTCPeerConnection.prototype, \"sctp\", {\n get() {\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\n },\n });\n }\n\n const sctpInDescription = function (description) {\n if (!description || !description.sdp) {\n return false;\n }\n const sections = sdp.splitSections(description.sdp);\n sections.shift();\n return sections.some((mediaSection) => {\n const mLine = sdp.parseMLine(mediaSection);\n return (\n mLine &&\n mLine.kind === \"application\" &&\n mLine.protocol.indexOf(\"SCTP\") !== -1\n );\n });\n };\n\n const getRemoteFirefoxVersion = function (description) {\n // TODO: Is there a better solution for detecting Firefox?\n const match = description.sdp.match(/mozilla...THIS_IS_SDPARTA-(\\d+)/);\n if (match === null || match.length < 2) {\n return -1;\n }\n const version = parseInt(match[1], 10);\n // Test for NaN (yes, this is ugly)\n return version !== version ? -1 : version;\n };\n\n const getCanSendMaxMessageSize = function (remoteIsFirefox) {\n // Every implementation we know can send at least 64 KiB.\n // Note: Although Chrome is technically able to send up to 256 KiB, the\n // data does not reach the other peer reliably.\n // See: https://bugs.chromium.org/p/webrtc/issues/detail?id=8419\n let canSendMaxMessageSize = 65536;\n if (browserDetails.browser === \"firefox\") {\n if (browserDetails.version < 57) {\n if (remoteIsFirefox === -1) {\n // FF < 57 will send in 16 KiB chunks using the deprecated PPID\n // fragmentation.\n canSendMaxMessageSize = 16384;\n } else {\n // However, other FF (and RAWRTC) can reassemble PPID-fragmented\n // messages. Thus, supporting ~2 GiB when sending.\n canSendMaxMessageSize = 2147483637;\n }\n } else if (browserDetails.version < 60) {\n // Currently, all FF >= 57 will reset the remote maximum message size\n // to the default value when a data channel is created at a later\n // stage. :(\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n canSendMaxMessageSize = browserDetails.version === 57 ? 65535 : 65536;\n } else {\n // FF >= 60 supports sending ~2 GiB\n canSendMaxMessageSize = 2147483637;\n }\n }\n return canSendMaxMessageSize;\n };\n\n const getMaxMessageSize = function (description, remoteIsFirefox) {\n // Note: 65536 bytes is the default value from the SDP spec. Also,\n // every implementation we know supports receiving 65536 bytes.\n let maxMessageSize = 65536;\n\n // FF 57 has a slightly incorrect default remote max message size, so\n // we need to adjust it here to avoid a failure when sending.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1425697\n if (browserDetails.browser === \"firefox\" && browserDetails.version === 57) {\n maxMessageSize = 65535;\n }\n\n const match = sdp.matchPrefix(description.sdp, \"a=max-message-size:\");\n if (match.length > 0) {\n maxMessageSize = parseInt(match[0].substr(19), 10);\n } else if (browserDetails.browser === \"firefox\" && remoteIsFirefox !== -1) {\n // If the maximum message size is not present in the remote SDP and\n // both local and remote are Firefox, the remote peer can receive\n // ~2 GiB.\n maxMessageSize = 2147483637;\n }\n return maxMessageSize;\n };\n\n const origSetRemoteDescription =\n window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription() {\n this._sctp = null;\n // Chrome decided to not expose .sctp in plan-b mode.\n // As usual, adapter.js has to do an 'ugly worakaround'\n // to cover up the mess.\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 76) {\n const { sdpSemantics } = this.getConfiguration();\n if (sdpSemantics === \"plan-b\") {\n Object.defineProperty(this, \"sctp\", {\n get() {\n return typeof this._sctp === \"undefined\" ? null : this._sctp;\n },\n enumerable: true,\n configurable: true,\n });\n }\n }\n\n if (sctpInDescription(arguments[0])) {\n // Check if the remote is FF.\n const isFirefox = getRemoteFirefoxVersion(arguments[0]);\n\n // Get the maximum message size the local peer is capable of sending\n const canSendMMS = getCanSendMaxMessageSize(isFirefox);\n\n // Get the maximum message size of the remote peer.\n const remoteMMS = getMaxMessageSize(arguments[0], isFirefox);\n\n // Determine final maximum message size\n let maxMessageSize;\n if (canSendMMS === 0 && remoteMMS === 0) {\n maxMessageSize = Number.POSITIVE_INFINITY;\n } else if (canSendMMS === 0 || remoteMMS === 0) {\n maxMessageSize = Math.max(canSendMMS, remoteMMS);\n } else {\n maxMessageSize = Math.min(canSendMMS, remoteMMS);\n }\n\n // Create a dummy RTCSctpTransport object and the 'maxMessageSize'\n // attribute.\n const sctp = {};\n Object.defineProperty(sctp, \"maxMessageSize\", {\n get() {\n return maxMessageSize;\n },\n });\n this._sctp = sctp;\n }\n\n return origSetRemoteDescription.apply(this, arguments);\n };\n}\n\nfunction shimSendThrowTypeError(window) {\n if (\n !(\n window.RTCPeerConnection &&\n \"createDataChannel\" in window.RTCPeerConnection.prototype\n )\n ) {\n return;\n }\n\n // Note: Although Firefox >= 57 has a native implementation, the maximum\n // message size can be reset for all data channels at a later stage.\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1426831\n\n function wrapDcSend(dc, pc) {\n const origDataChannelSend = dc.send;\n dc.send = function send() {\n const data = arguments[0];\n const length = data.length || data.size || data.byteLength;\n if (\n dc.readyState === \"open\" &&\n pc.sctp &&\n length > pc.sctp.maxMessageSize\n ) {\n throw new TypeError(\n \"Message too large (can send a maximum of \" +\n pc.sctp.maxMessageSize +\n \" bytes)\"\n );\n }\n return origDataChannelSend.apply(dc, arguments);\n };\n }\n const origCreateDataChannel =\n window.RTCPeerConnection.prototype.createDataChannel;\n window.RTCPeerConnection.prototype.createDataChannel =\n function createDataChannel() {\n const dataChannel = origCreateDataChannel.apply(this, arguments);\n wrapDcSend(dataChannel, this);\n return dataChannel;\n };\n wrapPeerConnectionEvent(window, \"datachannel\", (e) => {\n wrapDcSend(e.channel, e.target);\n return e;\n });\n}\n\n/* shims RTCConnectionState by pretending it is the same as iceConnectionState.\n * See https://bugs.chromium.org/p/webrtc/issues/detail?id=6145#c12\n * for why this is a valid hack in Chrome. In Firefox it is slightly incorrect\n * since DTLS failures would be hidden. See\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1265827\n * for the Firefox tracking bug.\n */\nfunction shimConnectionState(window) {\n if (\n !window.RTCPeerConnection ||\n \"connectionState\" in window.RTCPeerConnection.prototype\n ) {\n return;\n }\n const proto = window.RTCPeerConnection.prototype;\n Object.defineProperty(proto, \"connectionState\", {\n get() {\n return (\n {\n completed: \"connected\",\n checking: \"connecting\",\n }[this.iceConnectionState] || this.iceConnectionState\n );\n },\n enumerable: true,\n configurable: true,\n });\n Object.defineProperty(proto, \"onconnectionstatechange\", {\n get() {\n return this._onconnectionstatechange || null;\n },\n set(cb) {\n if (this._onconnectionstatechange) {\n this.removeEventListener(\n \"connectionstatechange\",\n this._onconnectionstatechange\n );\n delete this._onconnectionstatechange;\n }\n if (cb) {\n this.addEventListener(\n \"connectionstatechange\",\n (this._onconnectionstatechange = cb)\n );\n }\n },\n enumerable: true,\n configurable: true,\n });\n\n [\"setLocalDescription\", \"setRemoteDescription\"].forEach((method) => {\n const origMethod = proto[method];\n proto[method] = function () {\n if (!this._connectionstatechangepoly) {\n this._connectionstatechangepoly = (e) => {\n const pc = e.target;\n if (pc._lastConnectionState !== pc.connectionState) {\n pc._lastConnectionState = pc.connectionState;\n const newEvent = new Event(\"connectionstatechange\", e);\n pc.dispatchEvent(newEvent);\n }\n return e;\n };\n this.addEventListener(\n \"iceconnectionstatechange\",\n this._connectionstatechangepoly\n );\n }\n return origMethod.apply(this, arguments);\n };\n });\n}\n\nfunction removeExtmapAllowMixed(window, browserDetails) {\n /* remove a=extmap-allow-mixed for webrtc.org < M71 */\n if (!window.RTCPeerConnection) {\n return;\n }\n if (browserDetails.browser === \"chrome\" && browserDetails.version >= 71) {\n return;\n }\n if (browserDetails.browser === \"safari\" && browserDetails.version >= 605) {\n return;\n }\n const nativeSRD = window.RTCPeerConnection.prototype.setRemoteDescription;\n window.RTCPeerConnection.prototype.setRemoteDescription =\n function setRemoteDescription(desc) {\n if (\n desc &&\n desc.sdp &&\n desc.sdp.indexOf(\"\\na=extmap-allow-mixed\") !== -1\n ) {\n const sdp = desc.sdp\n .split(\"\\n\")\n .filter((line) => {\n return line.trim() !== \"a=extmap-allow-mixed\";\n })\n .join(\"\\n\");\n // Safari enforces read-only-ness of RTCSessionDescription fields.\n if (\n window.RTCSessionDescription &&\n desc instanceof window.RTCSessionDescription\n ) {\n arguments[0] = new window.RTCSessionDescription({\n type: desc.type,\n sdp,\n });\n } else {\n desc.sdp = sdp;\n }\n }\n return nativeSRD.apply(this, arguments);\n };\n}\n\nfunction shimAddIceCandidateNullOrEmpty(window, browserDetails) {\n // Support for addIceCandidate(null or undefined)\n // as well as addIceCandidate({candidate: \"\", ...})\n // https://bugs.chromium.org/p/chromium/issues/detail?id=978582\n // Note: must be called before other polyfills which change the signature.\n if (!(window.RTCPeerConnection && window.RTCPeerConnection.prototype)) {\n return;\n }\n const nativeAddIceCandidate =\n window.RTCPeerConnection.prototype.addIceCandidate;\n if (!nativeAddIceCandidate || nativeAddIceCandidate.length === 0) {\n return;\n }\n window.RTCPeerConnection.prototype.addIceCandidate =\n function addIceCandidate() {\n if (!arguments[0]) {\n if (arguments[1]) {\n arguments[1].apply(null);\n }\n return Promise.resolve();\n }\n // Firefox 68+ emits and processes {candidate: \"\", ...}, ignore\n // in older versions.\n // Native support for ignoring exists for Chrome M77+.\n // Safari ignores as well, exact version unknown but works in the same\n // version that also ignores addIceCandidate(null).\n if (\n ((browserDetails.browser === \"chrome\" && browserDetails.version < 78) ||\n (browserDetails.browser === \"firefox\" &&\n browserDetails.version < 68) ||\n browserDetails.browser === \"safari\") &&\n arguments[0] &&\n arguments[0].candidate === \"\"\n ) {\n return Promise.resolve();\n }\n return nativeAddIceCandidate.apply(this, arguments);\n };\n}\n\nvar commonShim = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n shimRTCIceCandidate: shimRTCIceCandidate,\n shimMaxMessageSize: shimMaxMessageSize,\n shimSendThrowTypeError: shimSendThrowTypeError,\n shimConnectionState: shimConnectionState,\n removeExtmapAllowMixed: removeExtmapAllowMixed,\n shimAddIceCandidateNullOrEmpty: shimAddIceCandidateNullOrEmpty,\n});\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\n// Shimming starts here.\nfunction adapterFactory(\n { window } = {},\n options = {\n shimChrome: true,\n shimFirefox: true,\n shimEdge: true,\n shimSafari: true,\n }\n) {\n // Utils.\n const logging = log$1;\n const browserDetails = detectBrowser(window);\n\n const adapter = {\n browserDetails,\n commonShim,\n extractVersion: extractVersion,\n disableLog: disableLog,\n disableWarnings: disableWarnings,\n };\n\n // Shim browser if found.\n switch (browserDetails.browser) {\n case \"chrome\":\n if (!chromeShim || !shimPeerConnection$2 || !options.shimChrome) {\n logging(\"Chrome shim is not included in this adapter release.\");\n return adapter;\n }\n if (browserDetails.version === null) {\n logging(\"Chrome shim can not determine version, not shimming.\");\n return adapter;\n }\n logging(\"adapter.js shimming chrome.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = chromeShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimGetUserMedia$3(window, browserDetails);\n shimMediaStream(window);\n shimPeerConnection$2(window, browserDetails);\n shimOnTrack$1(window);\n shimAddTrackRemoveTrack(window, browserDetails);\n shimGetSendersWithDtmf(window);\n shimGetStats(window);\n shimSenderReceiverGetStats(window);\n fixNegotiationNeeded(window, browserDetails);\n\n shimRTCIceCandidate(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n case \"firefox\":\n if (!firefoxShim || !shimPeerConnection || !options.shimFirefox) {\n logging(\"Firefox shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming firefox.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = firefoxShim;\n\n // Must be called before shimPeerConnection.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimGetUserMedia$1(window, browserDetails);\n shimPeerConnection(window, browserDetails);\n shimOnTrack(window);\n shimRemoveStream(window);\n shimSenderGetStats(window);\n shimReceiverGetStats(window);\n shimRTCDataChannel(window);\n shimAddTransceiver(window);\n shimGetParameters(window);\n shimCreateOffer(window);\n shimCreateAnswer(window);\n\n shimRTCIceCandidate(window);\n shimConnectionState(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n break;\n case \"edge\":\n if (!edgeShim || !shimPeerConnection$1 || !options.shimEdge) {\n logging(\"MS edge shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming edge.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = edgeShim;\n\n shimGetUserMedia$2(window);\n shimGetDisplayMedia$1(window);\n shimPeerConnection$1(window, browserDetails);\n shimReplaceTrack(window);\n\n // the edge shim implements the full RTCIceCandidate object.\n\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n break;\n case \"safari\":\n if (!safariShim || !options.shimSafari) {\n logging(\"Safari shim is not included in this adapter release.\");\n return adapter;\n }\n logging(\"adapter.js shimming safari.\");\n // Export to the adapter global object visible in the browser.\n adapter.browserShim = safariShim;\n\n // Must be called before shimCallbackAPI.\n shimAddIceCandidateNullOrEmpty(window, browserDetails);\n\n shimRTCIceServerUrls(window);\n shimCreateOfferLegacy(window);\n shimCallbacksAPI(window);\n shimLocalStreamsAPI(window);\n shimRemoteStreamsAPI(window);\n shimTrackEventTransceiver(window);\n shimGetUserMedia(window);\n shimAudioContext(window);\n\n shimRTCIceCandidate(window);\n shimMaxMessageSize(window, browserDetails);\n shimSendThrowTypeError(window);\n removeExtmapAllowMixed(window, browserDetails);\n break;\n default:\n logging(\"Unsupported browser!\");\n break;\n }\n\n return adapter;\n}\n\n/*\n * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n\nadapterFactory({ window: typeof window === \"undefined\" ? undefined : window });\n\n/**\n * @class AudioTrackConstraints\n * @classDesc Constraints for creating an audio MediaStreamTrack.\n * @memberof Owt.Base\n * @constructor\n * @param {Owt.Base.AudioSourceInfo} source Source info of this audio track.\n */\n\nclass AudioTrackConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(source) {\n if (!Object.values(AudioSourceInfo).some((v) => v === source)) {\n throw new TypeError(\"Invalid source.\");\n }\n /**\n * @member {string} source\n * @memberof Owt.Base.AudioTrackConstraints\n * @desc Values could be \"mic\", \"screen-cast\", \"file\" or \"mixed\".\n * @instance\n */\n\n this.source = source;\n /**\n * @member {string} deviceId\n * @memberof Owt.Base.AudioTrackConstraints\n * @desc Do not provide deviceId if source is not \"mic\".\n * @instance\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\n */\n\n this.deviceId = undefined;\n }\n}\n/**\n * @class VideoTrackConstraints\n * @classDesc Constraints for creating a video MediaStreamTrack.\n * @memberof Owt.Base\n * @constructor\n * @param {Owt.Base.VideoSourceInfo} source Source info of this video track.\n */\n\nclass VideoTrackConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(source) {\n if (!Object.values(VideoSourceInfo).some((v) => v === source)) {\n throw new TypeError(\"Invalid source.\");\n }\n /**\n * @member {string} source\n * @memberof Owt.Base.VideoTrackConstraints\n * @desc Values could be \"camera\", \"screen-cast\", \"file\" or \"mixed\".\n * @instance\n */\n\n this.source = source;\n /**\n * @member {string} deviceId\n * @memberof Owt.Base.VideoTrackConstraints\n * @desc Do not provide deviceId if source is not \"camera\".\n * @instance\n * @see https://w3c.github.io/mediacapture-main/#def-constraint-deviceId\n */\n\n this.deviceId = undefined;\n /**\n * @member {Owt.Base.Resolution} resolution\n * @memberof Owt.Base.VideoTrackConstraints\n * @instance\n */\n\n this.resolution = undefined;\n /**\n * @member {number} frameRate\n * @memberof Owt.Base.VideoTrackConstraints\n * @instance\n */\n\n this.frameRate = undefined;\n }\n}\n/**\n * @class StreamConstraints\n * @classDesc Constraints for creating a MediaStream from screen mic and camera.\n * @memberof Owt.Base\n * @constructor\n * @param {?Owt.Base.AudioTrackConstraints} audioConstraints\n * @param {?Owt.Base.VideoTrackConstraints} videoConstraints\n */\n\nclass StreamConstraints {\n // eslint-disable-next-line require-jsdoc\n constructor(audioConstraints = false, videoConstraints = false) {\n /**\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForAudio} audio\n * @memberof Owt.Base.MediaStreamDeviceConstraints\n * @instance\n */\n this.audio = audioConstraints;\n /**\n * @member {Owt.Base.MediaStreamTrackDeviceConstraintsForVideo} Video\n * @memberof Owt.Base.MediaStreamDeviceConstraints\n * @instance\n */\n\n this.video = videoConstraints;\n }\n} // eslint-disable-next-line require-jsdoc\n\nfunction isVideoConstrainsForScreenCast(constraints) {\n return (\n typeof constraints.video === \"object\" &&\n constraints.video.source === VideoSourceInfo.SCREENCAST\n );\n}\n/**\n * @class MediaStreamFactory\n * @classDesc A factory to create MediaStream. You can also create MediaStream by yourself.\n * @memberof Owt.Base\n */\n\nclass MediaStreamFactory {\n /**\n * @function createMediaStream\n * @static\n * @desc Create a MediaStream with given constraints. If you want to create a MediaStream for screen cast, please make sure both audio and video's source are \"screen-cast\".\n * @memberof Owt.Base.MediaStreamFactory\n * @return {Promise<MediaStream, Error>} Return a promise that is resolved when stream is successfully created, or rejected if one of the following error happened:\n * - One or more parameters cannot be satisfied.\n * - Specified device is busy.\n * - Cannot obtain necessary permission or operation is canceled by user.\n * - Video source is screen cast, while audio source is not.\n * - Audio source is screen cast, while video source is disabled.\n * @param {Owt.Base.StreamConstraints} constraints\n */\n static createMediaStream(constraints) {\n if (\n typeof constraints !== \"object\" ||\n (!constraints.audio && !constraints.video)\n ) {\n return Promise.reject(new TypeError(\"Invalid constrains\"));\n }\n\n if (\n !isVideoConstrainsForScreenCast(constraints) &&\n typeof constraints.audio === \"object\" &&\n constraints.audio.source === AudioSourceInfo.SCREENCAST\n ) {\n return Promise.reject(\n new TypeError(\"Cannot share screen without video.\")\n );\n }\n\n if (\n isVideoConstrainsForScreenCast(constraints) &&\n !isChrome() &&\n !isFirefox()\n ) {\n return Promise.reject(\n new TypeError(\"Screen sharing only supports Chrome and Firefox.\")\n );\n }\n\n if (\n isVideoConstrainsForScreenCast(constraints) &&\n typeof constraints.audio === \"object\" &&\n constraints.audio.source !== AudioSourceInfo.SCREENCAST\n ) {\n return Promise.reject(\n new TypeError(\n \"Cannot capture video from screen cast while capture audio from\" +\n \" other source.\"\n )\n );\n } // Check and convert constraints.\n\n if (!constraints.audio && !constraints.video) {\n return Promise.reject(\n new TypeError(\"At least one of audio and video must be requested.\")\n );\n }\n\n const mediaConstraints = Object.create({});\n\n if (\n typeof constraints.audio === \"object\" &&\n constraints.audio.source === AudioSourceInfo.MIC\n ) {\n mediaConstraints.audio = Object.create({});\n\n if (isEdge()) {\n mediaConstraints.audio.deviceId = constraints.audio.deviceId;\n } else {\n mediaConstraints.audio.deviceId = {\n exact: constraints.audio.deviceId,\n };\n }\n } else {\n if (constraints.audio.source === AudioSourceInfo.SCREENCAST) {\n mediaConstraints.audio = true;\n } else {\n mediaConstraints.audio = constraints.audio;\n }\n }\n\n if (typeof constraints.video === \"object\") {\n mediaConstraints.video = Object.create({});\n\n if (typeof constraints.video.frameRate === \"number\") {\n mediaConstraints.video.frameRate = constraints.video.frameRate;\n }\n\n if (\n constraints.video.resolution &&\n constraints.video.resolution.width &&\n constraints.video.resolution.height\n ) {\n if (constraints.video.source === VideoSourceInfo.SCREENCAST) {\n mediaConstraints.video.width = constraints.video.resolution.width;\n mediaConstraints.video.height = constraints.video.resolution.height;\n } else {\n mediaConstraints.video.width = Object.create({});\n mediaConstraints.video.width.exact =\n constraints.video.resolution.width;\n mediaConstraints.video.height = Object.create({});\n mediaConstraints.video.height.exact =\n constraints.video.resolution.height;\n }\n }\n\n if (typeof constraints.video.deviceId === \"string\") {\n mediaConstraints.video.deviceId = {\n exact: constraints.video.deviceId,\n };\n }\n\n if (\n isFirefox() &&\n constraints.video.source === VideoSourceInfo.SCREENCAST\n ) {\n mediaConstraints.video.mediaSource = \"screen\";\n }\n } else {\n mediaConstraints.video = constraints.video;\n }\n\n if (isVideoConstrainsForScreenCast(constraints)) {\n return navigator.mediaDevices.getDisplayMedia(mediaConstraints);\n } else {\n return navigator.mediaDevices.getUserMedia(mediaConstraints);\n }\n }\n}\n\n// Copyright (C) <2018> Intel Corporation\n\nvar media = /*#__PURE__*/ Object.freeze({\n __proto__: null,\n AudioTrackConstraints: AudioTrackConstraints,\n VideoTrackConstraints: VideoTrackConstraints,\n StreamConstraints: StreamConstraints,\n MediaStreamFactory: MediaStreamFactory,\n AudioSourceInfo: AudioSourceInfo,\n VideoSourceInfo: VideoSourceInfo,\n TrackKind: TrackKind,\n Resolution: Resolution,\n});\n\nlet logger;\nlet errorLogger;\nfunction setLogger() {\n /*eslint-disable */\n logger = console.log;\n errorLogger = console.error;\n /*eslint-enable */\n}\nfunction log(message, ...optionalParams) {\n if (logger) {\n logger(message, ...optionalParams);\n }\n}\nfunction error(message, ...optionalParams) {\n if (errorLogger) {\n errorLogger(message, ...optionalParams);\n }\n}\n\nclass Event$1 {\n constructor(type) {\n this.listener = {};\n this.type = type | \"\";\n }\n\n on(event, fn) {\n if (!this.listener[event]) {\n this.listener[event] = [];\n }\n\n this.listener[event].push(fn);\n return true;\n }\n\n off(event, fn) {\n if (this.listener[event]) {\n var index = this.listener[event].indexOf(fn);\n\n if (index > -1) {\n this.listener[event].splice(index, 1);\n }\n\n return true;\n }\n\n return false;\n }\n\n offAll() {\n this.listener = {};\n }\n\n dispatch(event, data) {\n if (this.listener[event]) {\n this.listener[event].map((each) => {\n each.apply(null, [data]);\n });\n return true;\n }\n\n return false;\n }\n}\n\nclass RTCEndpoint extends Event$1 {\n constructor(options) {\n super(\"RTCPusherPlayer\");\n this.TAG = \"[RTCPusherPlayer]\";\n let defaults = {\n element: \"\",\n // html video element\n debug: false,\n // if output debug log\n zlmsdpUrl: \"\",\n simulcast: false,\n useCamera: true,\n audioEnable: true,\n videoEnable: true,\n recvOnly: false,\n resolution: {\n w: 0,\n h: 0,\n },\n };\n this.options = Object.assign({}, defaults, options);\n\n if (this.options.debug) {\n setLogger();\n }\n\n this.e = {\n onicecandidate: this._onIceCandidate.bind(this),\n ontrack: this._onTrack.bind(this),\n onicecandidateerror: this._onIceCandidateError.bind(this),\n onconnectionstatechange: this._onconnectionstatechange.bind(this),\n };\n this._remoteStream = null;\n this._localStream = null;\n this.pc = new RTCPeerConnection(null);\n this.pc.onicecandidate = this.e.onicecandidate;\n this.pc.onicecandidateerror = this.e.onicecandidateerror;\n this.pc.ontrack = this.e.ontrack;\n this.pc.onconnectionstatechange = this.e.onconnectionstatechange;\n if (\n !this.options.recvOnly &&\n (this.options.audioEnable || this.options.videoEnable)\n )\n this.start();\n else this.receive();\n }\n\n receive() {\n const AudioTransceiverInit = {\n direction: \"recvonly\",\n sendEncodings: [],\n };\n const VideoTransceiverInit = {\n direction: \"recvonly\",\n sendEncodings: [],\n };\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\n this.pc\n .createOffer()\n .then((desc) => {\n log(this.TAG, \"offer:\", desc.sdp);\n this.pc.setLocalDescription(desc).then(() => {\n axios({\n method: \"post\",\n url: this.options.zlmsdpUrl,\n responseType: \"json\",\n data: desc.sdp,\n headers: {\n \"Content-Type\": \"text/plain;charset=utf-8\",\n },\n }).then((response) => {\n let ret = response.data; //JSON.parse(response.data);\n\n if (ret.code != 0) {\n // mean failed for offer/anwser exchange\n this.dispatch(Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED, ret);\n return;\n }\n\n let anwser = {};\n anwser.sdp = ret.sdp;\n anwser.type = \"answer\";\n log(this.TAG, \"answer:\", ret.sdp);\n this.pc\n .setRemoteDescription(anwser)\n .then(() => {\n log(this.TAG, \"set remote sucess\");\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n });\n });\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n }\n\n start() {\n let videoConstraints = false;\n let audioConstraints = false;\n\n if (this.options.useCamera) {\n if (this.options.videoEnable)\n videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\n } else {\n if (this.options.videoEnable) {\n videoConstraints = new VideoTrackConstraints(\n VideoSourceInfo.SCREENCAST\n );\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(\n AudioSourceInfo.SCREENCAST\n );\n } else {\n if (this.options.audioEnable)\n audioConstraints = new AudioTrackConstraints(AudioSourceInfo.MIC);\n else {\n // error shared display media not only audio\n error(this.TAG, \"error paramter\");\n }\n }\n }\n\n if (\n this.options.resolution.w != 0 &&\n this.options.resolution.h != 0 &&\n typeof videoConstraints == \"object\"\n ) {\n videoConstraints.resolution = new Resolution(\n this.options.resolution.w,\n this.options.resolution.h\n );\n }\n\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(audioConstraints, videoConstraints)\n )\n .then((stream) => {\n this._localStream = stream;\n this.dispatch(Events$1.WEBRTC_ON_LOCAL_STREAM, stream);\n const AudioTransceiverInit = {\n direction: \"sendrecv\",\n sendEncodings: [],\n };\n const VideoTransceiverInit = {\n direction: \"sendrecv\",\n sendEncodings: [],\n };\n\n if (this.options.simulcast && stream.getVideoTracks().length > 0) {\n VideoTransceiverInit.sendEncodings = [\n {\n rid: \"h\",\n active: true,\n maxBitrate: 1000000,\n },\n {\n rid: \"m\",\n active: true,\n maxBitrate: 500000,\n scaleResolutionDownBy: 2,\n },\n {\n rid: \"l\",\n active: true,\n maxBitrate: 200000,\n scaleResolutionDownBy: 4,\n },\n ];\n }\n\n if (stream.getAudioTracks().length > 0) {\n this.pc.addTransceiver(\n stream.getAudioTracks()[0],\n AudioTransceiverInit\n );\n } else {\n AudioTransceiverInit.direction = \"recvonly\";\n this.pc.addTransceiver(\"audio\", AudioTransceiverInit);\n }\n\n if (stream.getVideoTracks().length > 0) {\n this.pc.addTransceiver(\n stream.getVideoTracks()[0],\n VideoTransceiverInit\n );\n } else {\n VideoTransceiverInit.direction = \"recvonly\";\n this.pc.addTransceiver(\"video\", VideoTransceiverInit);\n }\n /*\n stream.getTracks().forEach((track,idx)=>{\n debug.log(this.TAG,track);\n this.pc.addTrack(track);\n });\n */\n\n this.pc\n .createOffer()\n .then((desc) => {\n log(this.TAG, \"offer:\", desc.sdp);\n this.pc.setLocalDescription(desc).then(() => {\n axios({\n method: \"post\",\n url: this.options.zlmsdpUrl,\n responseType: \"json\",\n data: desc.sdp,\n headers: {\n \"Content-Type\": \"text/plain;charset=utf-8\",\n },\n }).then((response) => {\n let ret = response.data; //JSON.parse(response.data);\n\n if (ret.code != 0) {\n // mean failed for offer/anwser exchange\n this.dispatch(\n Events$1.WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED,\n ret\n );\n return;\n }\n\n let anwser = {};\n anwser.sdp = ret.sdp;\n anwser.type = \"answer\";\n log(this.TAG, \"answer:\", ret.sdp);\n this.pc\n .setRemoteDescription(anwser)\n .then(() => {\n log(this.TAG, \"set remote sucess\");\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n });\n });\n })\n .catch((e) => {\n error(this.TAG, e);\n });\n })\n .catch((e) => {\n this.dispatch(Events$1.CAPTURE_STREAM_FAILED); //debug.error(this.TAG,e);\n }); //const offerOptions = {};\n\n /*\n if (typeof this.pc.addTransceiver === 'function') {\n // |direction| seems not working on Safari.\n this.pc.addTransceiver('audio', { direction: 'recvonly' });\n this.pc.addTransceiver('video', { direction: 'recvonly' });\n } else {\n offerOptions.offerToReceiveAudio = true;\n offerOptions.offerToReceiveVideo = true;\n }\n */\n }\n\n _onIceCandidate(event) {\n if (event.candidate) {\n log(\"Remote ICE candidate: \\n \" + event.candidate.candidate); // Send the candidate to the remote peer\n }\n }\n\n _onTrack(event) {\n if (this.options.element && event.streams && event.streams.length > 0) {\n this.options.element.srcObject = event.streams[0];\n this._remoteStream = event.streams[0];\n this.dispatch(Events$1.WEBRTC_ON_REMOTE_STREAMS, event);\n } else {\n error(\"element pararm is failed\");\n }\n }\n\n _onIceCandidateError(event) {\n this.dispatch(Events$1.WEBRTC_ICE_CANDIDATE_ERROR, event);\n }\n\n _onconnectionstatechange(event) {\n this.dispatch(\n Events$1.WEBRTC_ON_CONNECTION_STATE_CHANGE,\n this.pc.connectionState\n );\n }\n\n close() {\n if (this.pc) {\n this.pc.close();\n this.pc = null;\n }\n\n if (this.options) {\n this.options = null;\n }\n\n if (this._localStream) {\n this._localStream.getTracks().forEach((track, idx) => {\n track.stop();\n });\n }\n\n if (this._remoteStream) {\n this._remoteStream.getTracks().forEach((track, idx) => {\n track.stop();\n });\n }\n }\n\n get remoteStream() {\n return this._remoteStream;\n }\n\n get localStream() {\n return this._localStream;\n }\n}\n\nconst quickScan = [\n {\n label: \"4K(UHD)\",\n width: 3840,\n height: 2160,\n },\n {\n label: \"1080p(FHD)\",\n width: 1920,\n height: 1080,\n },\n {\n label: \"UXGA\",\n width: 1600,\n height: 1200,\n ratio: \"4:3\",\n },\n {\n label: \"720p(HD)\",\n width: 1280,\n height: 720,\n },\n {\n label: \"SVGA\",\n width: 800,\n height: 600,\n },\n {\n label: \"VGA\",\n width: 640,\n height: 480,\n },\n {\n label: \"360p(nHD)\",\n width: 640,\n height: 360,\n },\n {\n label: \"CIF\",\n width: 352,\n height: 288,\n },\n {\n label: \"QVGA\",\n width: 320,\n height: 240,\n },\n {\n label: \"QCIF\",\n width: 176,\n height: 144,\n },\n {\n label: \"QQVGA\",\n width: 160,\n height: 120,\n },\n];\nfunction GetSupportCameraResolutions$1() {\n return new Promise(function (resolve, reject) {\n let resolutions = [];\n let ok = 0;\n let err = 0;\n\n for (let i = 0; i < quickScan.length; ++i) {\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n videoConstraints.resolution = new Resolution(\n quickScan[i].width,\n quickScan[i].height\n );\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(false, videoConstraints)\n )\n .then((stream) => {\n resolutions.push(quickScan[i]);\n ok++;\n\n if (ok + err == quickScan.length) {\n resolve(resolutions);\n }\n })\n .catch((e) => {\n err++;\n\n if (ok + err == quickScan.length) {\n resolve(resolutions);\n }\n });\n }\n });\n}\nfunction GetAllScanResolution$1() {\n return quickScan;\n}\nfunction isSupportResolution$1(w, h) {\n return new Promise(function (resolve, reject) {\n let videoConstraints = new VideoTrackConstraints(VideoSourceInfo.CAMERA);\n videoConstraints.resolution = new Resolution(w, h);\n MediaStreamFactory.createMediaStream(\n new StreamConstraints(false, videoConstraints)\n )\n .then((stream) => {\n resolve();\n })\n .catch((e) => {\n reject(e);\n });\n });\n}\nconst Events = Events$1;\nconst Media = media;\nconst Endpoint = RTCEndpoint;\nconst GetSupportCameraResolutions = GetSupportCameraResolutions$1;\nconst GetAllScanResolution = GetAllScanResolution$1;\nconst isSupportResolution = isSupportResolution$1;\n\nexport {\n Endpoint,\n Events,\n GetAllScanResolution,\n GetSupportCameraResolutions,\n Media,\n isSupportResolution,\n};\n//# sourceMappingURL=ZLMRTCClient.js.map\n",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["config","prefix","conf","classNames","ty","map","item","component","name","install","app","_context","slots","useSlots","i","default","utils","className","installComponent","getSlots","useVModel","props","key","emit","computed","get","set","value","active","type","String","Number","title","mode","titleClassName","itemClassName","menuList","HeaderMenu","defineComponent","setup","prop","menuLeft","slice","length","menuRight","HeaderMenuItem","emits","ref","watch","e","immediate","icon","HeaderMenuTitle","instance","axios","create","baseURL","timeout","headers","clientType","userId","getToken","sessionStorage","getItem","interceptors","request","use","method","paramsSerializer","params","JSON","stringify","Authorization","err","Promise","reject","response","res","resData","data","status","code","resolve","getByUuid","uuid","Events$1","WEBRTC_NOT_SUPPORT","WEBRTC_ICE_CANDIDATE_ERROR","WEBRTC_OFFER_ANWSER_EXCHANGE_FAILED","WEBRTC_ON_REMOTE_STREAMS","WEBRTC_ON_LOCAL_STREAM","WEBRTC_ON_CONNECTION_STATE_CHANGE","CAPTURE_STREAM_FAILED","isFirefox","window","navigator","userAgent","match","isChrome","isEdge","AudioSourceInfo","MIC","SCREENCAST","FILE","MIXED","VideoSourceInfo","CAMERA","Resolution","constructor","width","height","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","pos","parseInt","wrapPeerConnectionEvent","eventNameToWrap","wrapper","RTCPeerConnection","proto","prototype","nativeAddEventListener","addEventListener","nativeEventName","cb","apply","arguments","wrappedCallback","modifiedEvent","handleEvent","_eventMap","Map","nativeRemoveEventListener","removeEventListener","has","unwrappedCb","delete","size","Object","keys","defineProperty","enumerable","configurable","disableLog","bool","Error","disableWarnings","log$1","console","log","deprecated","oldMethod","newMethod","warn","detectBrowser","result","browser","version","mozGetUserMedia","webkitGetUserMedia","isSecureContext","webkitRTCPeerConnection","RTCIceGatherer","mediaDevices","supportsUnifiedPlan","RTCRtpTransceiver","isObject","val","toString","call","compactObject","reduce","accumulator","isObj","isEmptyObject","undefined","assign","walkStats","stats","base","resultSet","id","forEach","endsWith","filterStats","track","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","push","trackStat","trackId","logging","shimGetUserMedia$3","browserDetails","constraintsToChrome_","c","mandatory","optional","cc","r","ideal","exact","min","max","oldname_","charAt","toUpperCase","oc","mix","advanced","concat","shimConstraints_","constraints","func","parse","audio","remap","obj","a","b","video","face","facingMode","getSupportedFacingModeLies","getSupportedConstraints","matches","enumerateDevices","then","devices","filter","d","kind","dev","find","some","label","toLowerCase","includes","deviceId","shimError_","PermissionDeniedError","PermissionDismissedError","InvalidStateError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","message","constraint","constraintName","getUserMedia_","onSuccess","onError","getUserMedia","bind","origGetUserMedia","cs","stream","getAudioTracks","getVideoTracks","getTracks","stop","DOMException","shimGetDisplayMedia$2","getSourceId","error","getDisplayMedia","sourceId","widthSpecified","heightSpecified","frameRateSpecified","frameRate","chromeMediaSource","chromeMediaSourceId","maxFrameRate","maxWidth","maxHeight","shimMediaStream","MediaStream","webkitMediaStream","shimOnTrack$1","_ontrack","f","origSetRemoteDescription","setRemoteDescription","_ontrackpoly","te","receiver","getReceivers","event","Event","transceiver","streams","dispatchEvent","shimGetSendersWithDtmf","shimSenderWithDtmf","pc","dtmf","_dtmf","createDTMFSender","_pc","getSenders","_senders","origAddTrack","addTrack","sender","origRemoveTrack","removeTrack","idx","indexOf","splice","origAddStream","addStream","origRemoveStream","removeStream","s","RTCRtpSender","origGetSenders","senders","shimGetStats","origGetStats","getStats","selector","onSucc","onErr","fixChromeStats_","standardReport","reports","report","standardStats","timestamp","localcandidate","remotecandidate","names","stat","makeMapStats","successCallbackWrapper_","shimSenderReceiverGetStats","RTCRtpReceiver","origGetReceivers","receivers","srcElement","MediaStreamTrack","shimAddTrackRemoveTrackWithNative","getLocalStreams","_shimmedLocalStreams","streamId","alreadyExists","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","signalingState","t","oldStream","replaceInternalStreamId","description","sdp","internalId","externalStream","internalStream","replace","RegExp","RTCSessionDescription","replaceExternalStreamId","nativeMethod","methodObj","args","isLegacyCall","desc","origSetLocalDescription","setLocalDescription","origLocalDescription","getOwnPropertyDescriptor","isLocal","streamid","hasTrack","shimPeerConnection$2","RTCIceCandidate","fixNegotiationNeeded","target","getConfiguration","sdpSemantics","chromeShim","freeze","__proto__","shimOnTrack","shimPeerConnection","shimGetUserMedia","shimGetDisplayMedia","filterIceServers$1","iceServers","edgeVersion","hasTurn","server","urls","url","isString","validTurn","startsWith","createCommonjsModule","fn","module","exports","SDPUtils","generateIdentifier","Math","random","substr","localCName","splitLines","blob","trim","split","line","splitSections","parts","part","index","getDescription","sections","getMediaSections","shift","matchPrefix","parseCandidate","substring","candidate","foundation","protocol","priority","ip","address","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","join","parseIceOptions","parseRtpMap","parsed","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","pt","preferredPayloadType","parseExtmap","direction","uri","writeExtmap","headerExtension","preferredId","parseFmtp","kv","j","writeFmtp","parameters","param","parseRtcpFb","parameter","writeRtcpFb","lines","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","colon","attribute","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","role","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","tag","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","caps","maxptime","extension","parseRtpEncodingParameters","encodingParameters","hasRed","hasUlpfec","primarySsrc","secondarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","parseMsid","spec","planB","msidParts","parseSctpDescription","parseMLine","maxSizeLine","maxMessageSize","isNaN","sctpPort","fmt","sctpMapLines","writeSctpDescription","media","sctp","output","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","sessionId","user","writeMediaSection","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","msid","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","username","sessionVersion","netType","addressType","isValidSDP","fixStatsType","inboundrtp","outboundrtp","candidatepair","dtlsRole","sdp$1","_initialTrackId","filterIceServers","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","action","offer","answer","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidAccessError","TypeError","OperationError","rtcpeerconnection","addTrackToStreamAndFireEvent","MediaStreamTrackEvent","removeTrackFromStreamAndFireEvent","fireAddTrack","trackEvent","setTimeout","_dispatchEvent","_eventTarget","document","createDocumentFragment","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceConnectionState","connectionState","iceGatheringState","usingBundle","bundlePolicy","rtcpMuxPolicy","iceTransportPolicy","_iceGatherers","iceCandidatePoolSize","gatherPolicy","_config","transceivers","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","ondatachannel","_emitGatheringStateChange","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","transports","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","clonedStream","clone","clonedTrack","enabled","_createIceGatherer","sdpMLineIndex","writable","bufferedCandidateEvents","bufferCandidates","end","state","_gather","onlocalcandidate","evt","sdpMid","cand","serializedCandidate","toJSON","complete","every","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","onerror","_disposeIceAndDtlsTransports","_transceive","send","recv","encodings","p","receive","isIceLite","rejected","remoteIceParameters","remoteDtlsParameters","start","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","getCapabilities","isNewTrack","nativeTrack","hasRtx","sid","close","newState","states","new","closed","checking","connected","completed","disconnected","failed","connecting","createOffer","numAudioTracks","numVideoTracks","offerOptions","offerToReceiveAudio","offerToReceiveVideo","remoteCodec","hdrExt","remoteExtensions","rHdrExt","getLocalCandidates","createAnswer","mediaSectionsInOffer","localTrack","addIceCandidate","candidateString","senderOrReceiver","promises","all","allStats","results","ortcObjects","ortcObjectName","nativeGetstats","nativeStats","mapStats","methods","shimGetUserMedia$2","catch","shimGetDisplayMedia$1","shimPeerConnection$1","origMSTEnabled","ev","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimReplaceTrack","replaceTrack","setTrack","edgeShim","shimGetUserMedia$1","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","ridRegex","test","rid","parseFloat","scaleResolutionDownBy","RangeError","maxFramerate","getParameters","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","firefoxShim","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","successCallback","failureCallback","options","promise","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","hasOwnProperty","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","audioTransceiver","getTransceivers","setDirection","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","safariShim","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","sctpInDescription","mLine","getRemoteFirefoxVersion","getCanSendMaxMessageSize","remoteIsFirefox","canSendMaxMessageSize","getMaxMessageSize","canSendMMS","remoteMMS","POSITIVE_INFINITY","shimSendThrowTypeError","wrapDcSend","dc","origDataChannelSend","byteLength","readyState","origCreateDataChannel","createDataChannel","dataChannel","channel","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","commonShim","adapterFactory","shimChrome","shimFirefox","shimEdge","shimSafari","adapter","browserShim","AudioTrackConstraints","source","values","v","VideoTrackConstraints","resolution","StreamConstraints","audioConstraints","videoConstraints","isVideoConstrainsForScreenCast","MediaStreamFactory","createMediaStream","mediaConstraints","logger","errorLogger","setLogger","optionalParams","Event$1","listener","on","off","offAll","dispatch","each","RTCEndpoint","TAG","defaults","element","debug","zlmsdpUrl","simulcast","useCamera","audioEnable","videoEnable","recvOnly","w","h","_onIceCandidate","_onTrack","onicecandidateerror","_onIceCandidateError","_remoteStream","_localStream","AudioTransceiverInit","VideoTransceiverInit","responseType","ret","anwser","srcObject","remoteStream","localStream","Events","Endpoint","appName","WebRtcMt","opt","init","p_player","playerMap","streamMap","mediaServerAddrMap","endpointConfig","createRtspUrl","plays","cameraUserName","cameraPwd","cameraIp","cameraRtspPort","cameraChannel","cameraStream","videoElm","mediaServerAddr","addRtspProxyUrl","hkNvrRtsp","sdpUrl","rtsp","createVideo","startPlay","text","info","stopPlay","player","clear","playEvent","rePlay","DISCONNECTED","LOST_SERVER","play","EndpointConfig","getElementById","camera","cameraUuid","timer","Date","getTime","VideoPlayer","_prop","streamType","webrtcTemplateMerged","replaceAll","mediaServerPo","pass","rtspPort","deep","onUnmounted","headerMenu","headerMenuItem","headerMenuTitle","videoPlayer","About","summary","hardware","software","database","manualUrl","context","reactive","showContent","loading","confirm","cancel","useTableList","getData","listProp","tableList","isLoading","total","refresh","debounce","totalCount","currPage","handlePageChange","page","getUser","corpId","token","userName","isPlainObject","omit","msg","getUserList","getRoleList","getEmployeeList","insertOneUserRecord","post","editUserRecord","put","resetPassword","changePassword","detail","deleteUserById","getEmployeeDetailInfo","employeeId","useModalVisibleControl","isDialogVisible","tableRow","handleOpenDialog","record","encodeStr","str","btoa","getRequiredRule","required","getMaxRule","UserProfileDialog","visible","Boolean","urlMap","inject","isVisible","profile","nextTick","api","employeeDetail","display","textAlign","sex","age","nativePlace","identityCard","hiredate","mobile","bossName","jobPostNames","footer","_func","flag","SearchSelect","Array","getUrl","extParams","valuePorp","excludeValues","attrs","modelValue","optionList","isFetching","lastFetchId","getOptionList","isNil","fetchId","keyword","curr","prev","isEqual","isArray","UpdateUserDialog","onRefresh","Function","formRef","form","cloneDeep","roleIds","resetFields","employeeList","modalTitle","isView","isProfileShow","handleProfileClick","handleResetPassword","Modal","content","onOk","resetPass","success","validatePassword","rule","checkPass","validateCheckPass","passWord","handleCommit","validate","add","update","span","employeeName","validator","roleTypeNames","phone","zhixin","wechat","mail","DEFAULT_URL","list","roleList","column","dataIndex","customRender","UserManager","provide","formState","keyWord","pageNum","pageSize","handleSubmit","isAddDialogShow","handleAddClick","isViewDialogShow","viewUserRecord","handleView","row","isEditDialogShow","handleEditClick","isDescDialogShow","descUserRecord","handleDecs","preventDefault","handleDeleteUser","marginBottom","resolveComponent","current","editFlg","deleteFlg","getRoleListByPager","switchRoleEnableStatus","insertRole","getRoleTreeEdit","getRoleTree","deleteRoleById","roleTypeId","transformMenuTree","treeData","softSysId","softSysName","subList","UpdateRoleDialog","checkedPermissionList","addPermission","editPermission","roleMenuVoList","checkedMenuIds","validatePermission","save","roleCode","roleTypeName","roleDesc","overflowY","children","switchStatus","columns","RoleManager","handleSwitchEnable","enable","viewRoleRecord","handleViewClick","editRoleRecord","handleDeleteClick","userCount","operation","emitterMap","useBus","emitter","mitt","getMenuTreeList","insertMenuRecord","editMenuRecord","deleteMenuById","menuId","sortMenu","uploadJSONFile","file","formData","FormData","append","ContentType","useProxy","getCurrentInstance","proxy","findById","childProp","dataList","node","removeDateProp","getParentById","sub","CommonTree","downLoadName","onSelect","onCopy","onDelete","onEdit","onAdd","onDrop","isJSONOperation","onJSONUploadClick","bus","searchText","originData","getTreeData","callback","selectedKeys","handleSelectNode","selected","_refresh","_reselect","parent","handleDownload","Blob","URL","createObjectURL","aEl","createElement","href","download","click","handleCopy","handleEdit","handleAddNodeClick","handleDelete","isDraggable","handleDrop","dropKey","dragKey","dragNode","dropPos","dropPosition","loop","dragObj","arr","dropToGap","unshift","expanded","ar","_item","setSort","sort","ind","handleRefresh","onMounted","onBeforeUnmount","padding","showLeafIcon","isSystem","dataRef","float","stopPropagation","valid","iconsList","CiOutlined","UpOutlined","ApiOutlined","EyeOutlined","KeyOutlined","IconSelect","selectValue","UpdateMenuDialog","isSystemParent","level","parentId","UploadJSONDialog","fileList","upload","originFileObj","onCancle","render","MenuSelectTree","treeRef","tree","isAddNodeDialogShow","addNodeParent","isUploadDialogShow","handleUploadClick","Dynamicicon","createVNode","icons","MenuDetail","isEdit","startEdit","handleSave","_edit","MenuManager","detailRef","currSelectNode","handleNodeSelect","handleNodeEdit","getPostList","switchPostEnable","getDepList","orgId","departmentList","updatePostRecord","insertPostRecord","deletePostById","jobPostId","useModalTitle","moduleName","useModalForm","getRecord","transformForm","cloneRecord","UpdatePostDialog","depList","createDt","depName","depId","remark","PostManager","viewRecord","editRecord","employeeCount","warning","checked","justifyContent","onChange","getTeamListByPage","switchEnableTeam","departmentId","edidTeamRecord","insertTeam","deleteTeamById","memberIds","isClean","empList","leaderId","postList","jobPostName","memberNames","leaderName","TeamManager","getDepData","insertDepRecord","updateDepRecord","deleteDepById","getDepEmployeeSelectList","ruleType","sortDepList","getDetail","getEmployeeDetail","insetEmployee","updateEmployee","deleteEmployeeById","UpdateEmployeeDialog","empDetail","jobPostIds","dayjs","format","addEmp","updateEmp","style","pattern","date","isAfter","allowClear","empSelect","bossId","postSelect","EmployeeTable","isValid","isTopLevel","deleteEmp","UpdateDepDialog","filteredDepList","fDep","dep","isEmpty","parentName","DepTree","handleSelect","isAddDepDialogShow","handleAddDepClick","addDepParent","isEditDepDialogShow","handleEditDepClick","editDepRecord","hanldeDeleteDep","hanldeDrop","DepManager","currDep","parentDepName","handleSelectDep","getList","getHead","searchList","LogManager","systemType","moduleType","operateType","recordType","startTime","endTime","time","systemTypeList","moduleTypeList","operateTypeList","recordTypeList","resp","handleReset","submit","startOf","endOf","contentText","createTime","headName","margin","getGroupList","getParamDefineList","groupId","batchSaveParamsValue","ProFormItem","paramDefine","paramDefineValue","isSwitch","inputValue","handleValueChange","Filed","InputNumber","Switch","Select","Input","rules","maxValue","minValue","limitLength","regularExpression","inputProps","unit","writeable","disabled","DynamicForm","urmMap","formDescList","getFormDescList","define","paramDefineValueVoList","valueDefineMap","handleFieldChange","_confirm","valueDefine","_update","CollapseContainer","defaultCollapse","isOpen","TabItem","tabId","groupFormRef","cellFormRef","onBeforeUpdate","groupList","getGoupAndCellParams","groupRes","cellPromises","_children","resList","allFormRef","validateList","formList","updateFormList","ins","cell","ParamManager","tabs","getTabs","Editpasswordform","formModel","checkPassWord","_validate","_reset","oldPassWord","updatePass","PersonalSetting","passwordFormRef","canEdit","copyForm","passwordForm","handleSavePassword","handleCancelClick","clearValidate","comps","pageComponents","components"],"mappings":";;;;;;;;;;;AAAO,MAAMA,MAAM,GAAG;AACpBC,EAAAA,MAAM,EAAE;AADY,CAAf;;ACEP,MAAM;AAAEA,UAAAA;AAAF,IAAaC,MAAnB;AAEA,iBAAgBC,UAAD;AACb,QAAMC,EAAE,GAAG,OAAOD,UAAlB;;AAEA,MAAIC,EAAE,KAAK,QAAX,EAAqB;AACnB,WAAQD,UAA4B,CAACE,GAA7B,CAAkCC,IAAD;AACvC,UAAIA,IAAI,KAAK,EAAb,EAAiB,OAAO,EAAP;AACjB,gBAAUL,YAAUK,MAApB;AACD,KAHO,CAAR;AAID;;AAED,YAAUL,YAAUE,YAApB;AACD,CAXD;;ACAA,MAAM;AAAEF,EAAAA;AAAF,IAAaC,MAAnB;AAEA,wBAAe,CAACK,SAAD,EAAmCC,IAAnC;AACbD,EAAAA,SAAS,CAACE,OAAV,GAAqBC,GAAD;AAClBA,IAAAA,GAAG,CAACH,SAAJ,IAAiBN,UAAUO,MAA3B,EAAmCD,SAAnC;AACD,GAFD;;AAGA,SAAOA,SAAP;AACD,CALD;;ACJA,gBAAgBI,QAAD;AACb,QAAMC,KAAK,GAAGD,QAAQ,CAACC,KAAvB;AACA,QAAMC,QAAQ,GAAwC,EAAtD;;AAEA,OAAK,IAAIC,CAAT,IAAcF,KAAd,EAAqB;AACnBC,IAAAA,QAAQ,CAACC,CAAD,CAAR,GAAcF,KAAK,CAACE,CAAD,CAAnB;AACD;;AAED,MAAI,CAACD,QAAQ,CAACE,OAAd,EAAuB;AACrBF,IAAAA,QAAQ,CAACE,OAAT,GAAmB;AACjB,aAAO,EAAP;AACD,KAFD;AAGD;;AAED,SAAOF,QAAP;AACD,CAfD;;ACEA,MAAMG,KAAK,GAAG;AAAEC,EAAAA,SAAF;AAAaC,EAAAA,gBAAb;AAA+BC,EAAAA;AAA/B,CAAd;;SCFwBC,UAItBC,OAAUC,KAAQC;AAClB,SAAOC,QAAQ,CAAO;AACpBC,IAAAA,GAAG;AACD,aAAOJ,KAAK,CAACC,GAAD,CAAZ;AACD,KAHmB;;AAIpBI,IAAAA,GAAG,CAACC,KAAD;AACDJ,MAAAA,IAAI,WAAWD,KAAX,EAAyBK,KAAzB,CAAJ;AACD;;AANmB,GAAP,CAAf;AAQD;;ACVD,MAAMN,OAAK,GAAG;AACZO,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAGC,MAA2B,IAAKC,MADjC;AAENhB,IAAAA,OAAO,EAAE;AAFH,GADI;AAKZc,EAAAA,IAAI,EAAE;AACJA,IAAAA,IAAI,EAAEC,MADF;AAEJf,IAAAA,OAAO,EAAE;AAFL,GALM;AASZiB,EAAAA,KAAK,EAAE;AACLH,IAAAA,IAAI,EAAEC;AADD,GATK;AAYZG,EAAAA,IAAI,EAAE;AACJJ,IAAAA,IAAI,EAAEC,MADF;AAEJf,IAAAA,OAAO,EAAE;AAFL,GAZM;AAgBZE,EAAAA,SAAS,EAAE;AACTY,IAAAA,IAAI,EAAEC,MADG;AAETf,IAAAA,OAAO,EAAE;AAFA,GAhBC;AAoBZmB,EAAAA,cAAc,EAAE;AACdL,IAAAA,IAAI,EAAEC,MADQ;AAEdf,IAAAA,OAAO,EAAE;AAFK,GApBJ;AAwBZoB,EAAAA,aAAa,EAAE;AACbN,IAAAA,IAAI,EAAEC,MADO;AAEbf,IAAAA,OAAO,EAAE;AAFI;AAxBH,CAAd;AA8BA,MAAMqB,QAAQ,GAAG,CACf;AACE5B,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CADe,EAKf;AACEd,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CALe,EASf;AACEd,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CATe,EAaf;AACEd,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CAbe,EAiBf;AACEd,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CAjBe,EAqBf;AACEd,EAAAA,IAAI,EAAE,MADR;AAEEc,EAAAA,GAAG,EAAE;AAFP,CArBe,CAAjB;AA0BA,MAAMe,UAAU,GAAGC,eAAe,CAAC;AACjCjB,SAAAA,OADiC;;AAEjCkB,EAAAA,KAAK,CAACC,IAAD,EAAO;AAAE5B,IAAAA,KAAF;AAASW,IAAAA;AAAT,GAAP;AACH,IAAeH,SAAS,CAACoB,IAAD,EAAO,QAAP,EAAiBjB,IAAjB;AACxB,UAAMkB,QAAQ,GAAGL,QAAQ,CAACM,KAAT,CACf,CADe,EAEfN,QAAQ,CAACO,MAAT,GAAkB,CAAlB,KAAwB,CAAxB,GAA4BP,QAAQ,CAACO,MAAT,GAAkB,CAA9C,GAAkDP,QAAQ,CAACO,MAF5C,CAAjB;AAIA,UAAMC,SAAS,GAAGR,QAAQ,CAACM,KAAT,CAChBN,QAAQ,CAACO,MAAT,GAAkB,CAAlB,KAAwB,CAAxB,GAA4BP,QAAQ,CAACO,MAAT,GAAkB,CAA9C,GAAkD,CADlC,EAEhBP,QAAQ,CAACO,MAFO,CAAlB;AAIA,WAAO;AAAA,eACO,CAAC,iBAAD,EAAoBH,IAAI,CAACvB,SAAzB;AADP;AAAA,eAGM,CAAC,yBAAD,qBAA+CuB,IAAI,CAACP,MAApD;AAHN,QAKAO,IAAI,CAACP,IAAL,KAAc,QAAd;AAAA,eAEc;AAFd,QAGMQ,QAAQ,CAACpC,GAAT,CAAcC,IAAD;AAAA,gBAEFkC,IAAI,CAACZ,MAFH;AAAA,eAGHtB,IAAI,CAACgB,GAHF;AAAA,mBAICkB,IAAI,CAACL,aAJN;AAAA,wBAKOR,KAAD;AACdJ,QAAAA,IAAI,CAAC,eAAD,EAAkBI,KAAlB,CAAJ;AACD;AAPS;AAAA,sBASTrB,IAAI,CAACE,IATI;AAAA,MAAb,CAHN;AAAA,cAiBWgC,IAAI,CAACP,IAjBhB;AAAA,mBAkBgBO,IAAI,CAACN;AAlBrB;AAAA,sBAoBMM,IAAI,CAACR,KApBX;AAAA;AAAA,eAsBc;AAtBd,QAuBMY,SAAS,CAACvC,GAAV,CAAeC,IAAD;AAAA,gBAEHkC,IAAI,CAACZ,MAFF;AAAA,eAGJtB,IAAI,CAACgB,GAHD;AAAA,mBAIAkB,IAAI,CAACL,aAJL;AAAA,wBAKMR,KAAD;AACdJ,QAAAA,IAAI,CAAC,eAAD,EAAkBI,KAAlB,CAAJ;AACD;AAPU;AAAA,sBASVrB,IAAI,CAACE,IATK;AAAA,MAAd,CAvBN;AAAA,cAwCWgC,IAAI,CAACP,IAxChB;AAAA,mBAyCgBO,IAAI,CAACN;AAzCrB;AAAA,sBA2CMM,IAAI,CAACR,KA3CX;AAAA;AAAA,eA6Cc;AA7Cd,QA8CMI,QAAQ,CAAC/B,GAAT,CAAcC,IAAD;AAAA,gBAEFkC,IAAI,CAACZ,MAFH;AAAA,eAGHtB,IAAI,CAACgB,GAHF;AAAA,mBAICkB,IAAI,CAACL,aAJN;AAAA,wBAKOR,KAAD;AACdJ,QAAAA,IAAI,CAAC,eAAD,EAAkBI,KAAlB,CAAJ;AACD;AAPS;AAAA,sBASTrB,IAAI,CAACE,IATI;AAAA,MAAb,CA9CN,IALA,IAAP;AAqED;;AAjFgC,CAAD,CAAlC;AAoFA,iBAAeQ,KAAK,CAACE,gBAAN,CAAuBmB,UAAvB,EAAmC,aAAnC,CAAf;;AC9IA,MAAMhB,OAAK,GAAG;AACZO,EAAAA,MAAM,EAAE;AACNC,IAAAA,IAAI,EAAGC,MAA2B,IAAKC,MADjC;AAENhB,IAAAA,OAAO,EAAE;AAFH,GADI;AAKZY,EAAAA,KAAK,EAAE;AACLE,IAAAA,IAAI,EAAGC,MAA2B,IAAKC,MADlC;AAELhB,IAAAA,OAAO,EAAE;AAFJ,GALK;AASZE,EAAAA,SAAS,EAAE;AACTY,IAAAA,IAAI,EAAEC,MADG;AAETf,IAAAA,OAAO,EAAE;AAFA;AATC,CAAd;AAeA,MAAM8B,cAAc,GAAGP,eAAe,CAAC;AACrCjB,SAAAA,OADqC;AAErCyB,EAAAA,KAAK,EAAE,CAAC,cAAD,CAF8B;;AAGrCP,EAAAA,KAAK,CAACC,IAAD,EAAO;AAAE5B,IAAAA,KAAF;AAASW,IAAAA;AAAT,GAAP;AACH,UAAMK,MAAM,GAAGmB,GAAG,CAAC,EAAD,CAAlB;AACAC,IAAAA,KAAK,CACH,MAAMR,IAAI,CAACZ,MADR,EAEFqB,CAAD;AACErB,MAAAA,MAAM,CAACD,KAAP,GAAesB,CAAf;AACD,KAJE,EAKH;AACEC,MAAAA,SAAS,EAAE;AADb,KALG,CAAL;AASA,WAAO;AAAA,eAEI,CACL,sBADK,EAELtB,MAAM,CAACD,KAAP,KAAiBa,IAAI,CAACb,KAAtB,GAA8B,6BAA9B,GAA8D,EAFzD,EAGLa,IAAI,CAACvB,SAHA,CAFJ;AAAA,iBAOM;AACPM,QAAAA,IAAI,CAAC,cAAD,EAAiBiB,IAAI,CAACb,KAAtB,CAAJ;AACD;AATE,QAWFf,KAAK,CAACuC,IAAN,IAXE,6BAYIvC,KAAK,CAACG,OAAN,IAZJ,IAAP;AAeD;;AA7BoC,CAAD,CAAtC;AA+BA,qBAAeC,KAAK,CAACE,gBAAN,CAAuB2B,cAAvB,EAAuC,kBAAvC,CAAf;;AC9CA,MAAMxB,OAAK,GAAG;AACZJ,EAAAA,SAAS,EAAE;AACTY,IAAAA,IAAI,EAAEC,MADG;AAETf,IAAAA,OAAO,EAAE;AAFA,GADC;AAKZkB,EAAAA,IAAI,EAAE;AACJJ,IAAAA,IAAI,EAAEC,MADF;AAEJf,IAAAA,OAAO,EAAE;AAFL;AALM,CAAd;AAWA,MAAMqC,eAAe,GAAGd,eAAe,CAAC;AACtCjB,SAAAA,OADsC;;AAEtCkB,EAAAA,KAAK,CAACC,IAAD,EAAO;AAAE5B,IAAAA,KAAF;AAASW,IAAAA;AAAT,GAAP;AACH,WAAO;AAAA,eAEI,CACL,uBADK,qBAEciB,IAAI,CAACP,YAFnB,EAGLO,IAAI,CAACvB,SAHA;AAFJ;AAAA,eAQQ;AARR,QAQsCL,KAAK,CAACG,OAAN,IARtC,IAAP;AAWD;;AAdqC,CAAD,CAAvC;AAiBA,sBAAeC,KAAK,CAACE,gBAAN,CAAuBkC,eAAvB,EAAwC,mBAAxC,CAAf;;AC7BA,MAAMC,UAAQ,GAAGC,KAAK,CAACC,MAAN,CAAa;AAC5BC,EAAAA,OAAO,EAAE,OADmB;AAE5BC,EAAAA,OAAO,EAAE,IAFmB;AAG5BC,EAAAA,OAAO,EAAE;AACP,uBAAmB,QADZ;AAEPC,IAAAA,UAAU,EAAE,QAFL;AAGP,oBAAgB,gCAHT;AAIPC,IAAAA,MAAM,EAAE;AAJD;AAHmB,CAAb,CAAjB;;AAWA,MAAMC,UAAQ,GAAG;AACf,mBAAiBC,cAAc,CAACC,OAAf,CAAuB,OAAvB,GAAjB;AACD,CAFD;;AAIAV,UAAQ,CAACW,YAAT,CAAsBC,OAAtB,CAA8BC,GAA9B,CACGhE,IAAD;AACE,MAAIA,IAAI,CAACiE,MAAL,KAAgB,KAApB,EAA2B;AACzBjE,IAAAA,IAAI,CAACkE,gBAAL,GAAyBC,MAAD;AACtB,aAAOC,IAAI,CAACC,SAAL,CAAeF,MAAf,CAAP;AACD,KAFD;AAGD;;;AAEDnE,EAAAA,IAAI,CAACwD,OAAL,CAAac,aAAb,GAA6BX,UAAQ,EAArC;AAEA;AACA;;AACA,SAAO3D,IAAP;AACD,CAbH,EAcGuE,GAAD;AACE,SAAOC,OAAO,CAACC,MAAR,CAAeF,GAAf,CAAP;AACD,CAhBH;AAmBApB,UAAQ,CAACW,YAAT,CAAsBY,QAAtB,CAA+BV,GAA/B,CACGW,GAAD;AACE,QAAMC,OAAO,GAAGD,GAAG,CAACE,IAApB;AACA,QAAMC,MAAM,GAAGF,OAAO,CAACG,IAAR,KAAiB,OAAhC;;AACA,MAAID,MAAJ,EAAY;AACV,WAAON,OAAO,CAACQ,OAAR,CAAgBJ,OAAhB,CAAP;AACD;;AACD,SAAOJ,OAAO,CAACQ,OAAR,CAAgBL,GAAhB,CAAP;AACD,CARH,EASGJ,GAAD;AACE,SAAOC,OAAO,CAACC,MAAR,CAAeF,GAAf,CAAP;AACD,CAXH;;AC+BA,MAAMU,SAAS,GAAwD,MACrEC,IADqE;AAGrE,QAAMP,GAAG,GAAG,MAAMxB,UAAQ,CAAC5B,GAAT,iCACgB2D,MADhB,CAAlB;AAGA,SAAOP,GAAP;AACD,CAPD;;ACjEA,MAAMQ,QAAQ,GAAG;AACfC,EAAAA,kBAAkB,EAAE,oBADL;AAEfC,EAAAA,0BAA0B,EAAE,4BAFb;AAGfC,EAAAA,mCAAmC,EAAE,qCAHtB;AAIfC,EAAAA,wBAAwB,EAAE,0BAJX;AAKfC,EAAAA,sBAAsB,EAAE,wBALT;AAMfC,EAAAA,iCAAiC,EAAE,mCANpB;AAOfC,EAAAA,qBAAqB,EAAE;AAPR,CAAjB;AAcA;AACA;AACA;;AACA,SAASC,SAAT,GAAqB;AACnB,SAAOC,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,KAA3B,CAAiC,SAAjC,MAAgD,IAAvD;AACD;;;AAED,SAASC,QAAT,GAAoB;AAClB,SAAOJ,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,KAA3B,CAAiC,QAAjC,MAA+C,IAAtD;AACD;;;AAED,SAASE,MAAT,GAAkB;AAChB,SAAOL,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,KAA3B,CAAiC,oBAAjC,MAA2D,IAAlE;AACD;AAED;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,MAAMG,eAAe,GAAG;AACtBC,EAAAA,GAAG,EAAE,KADiB;AAEtBC,EAAAA,UAAU,EAAE,aAFU;AAGtBC,EAAAA,IAAI,EAAE,MAHgB;AAItBC,EAAAA,KAAK,EAAE;AAJe,CAAxB;AAMA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,eAAe,GAAG;AACtBC,EAAAA,MAAM,EAAE,QADc;AAEtBJ,EAAAA,UAAU,EAAE,aAFU;AAGtBC,EAAAA,IAAI,EAAE,MAHgB;AAItBC,EAAAA,KAAK,EAAE;AAJe,CAAxB;AAiCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMG,UAAN,CAAiB;AACf;AACAC,EAAAA,WAAW,CAACC,KAAD,EAAQC,MAAR,EAAgB;AACzB;AACJ;AACA;AACA;AACA;AACI,SAAKD,KAAL,GAAaA,KAAb;AACA;AACJ;AACA;AACA;AACA;;AAEI,SAAKC,MAAL,GAAcA,MAAd;AACD;;AAhBc;AAmBjB;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,IAAIC,YAAY,GAAG,IAAnB;AACA,IAAIC,oBAAoB,GAAG,IAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASC,cAAT,CAAwBC,QAAxB,EAAkCC,IAAlC,EAAwCC,GAAxC,EAA6C;AAC3C,QAAMnB,KAAK,GAAGiB,QAAQ,CAACjB,KAAT,CAAekB,IAAf,CAAd;AACA,SAAOlB,KAAK,IAAIA,KAAK,CAACtD,MAAN,IAAgByE,GAAzB,IAAgCC,QAAQ,CAACpB,KAAK,CAACmB,GAAD,CAAN,EAAa,EAAb,CAA/C;AACD;AAGD;AACA;;;AACA,SAASE,uBAAT,CAAiCxB,MAAjC,EAAyCyB,eAAzC,EAA0DC,OAA1D,EAAmE;AACjE,MAAI,CAAC1B,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD;;AACD,QAAMC,KAAK,GAAG5B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAvC;AACA,QAAMC,sBAAsB,GAAGF,KAAK,CAACG,gBAArC;;AACAH,EAAAA,KAAK,CAACG,gBAAN,GAAyB,UAAUC,eAAV,EAA2BC,EAA3B,EAA+B;AACtD,QAAID,eAAe,KAAKP,eAAxB,EAAyC;AACvC,aAAOK,sBAAsB,CAACI,KAAvB,CAA6B,IAA7B,EAAmCC,SAAnC,CAAP;AACD;;AACD,UAAMC,eAAe,GAAIjF,CAAD,IAAO;AAC7B,YAAMkF,aAAa,GAAGX,OAAO,CAACvE,CAAD,CAA7B;;AACA,UAAIkF,aAAJ,EAAmB;AACjB,YAAIJ,EAAE,CAACK,WAAP,EAAoB;AAClBL,UAAAA,EAAE,CAACK,WAAH,CAAeD,aAAf;AACD,SAFD,MAEO;AACLJ,UAAAA,EAAE,CAACI,aAAD,CAAF;AACD;AACF;AACF,KATD;;AAUA,SAAKE,SAAL,GAAiB,KAAKA,SAAL,IAAkB,EAAnC;;AACA,QAAI,CAAC,KAAKA,SAAL,CAAed,eAAf,CAAL,EAAsC;AACpC,WAAKc,SAAL,CAAed,eAAf,IAAkC,IAAIe,GAAJ,EAAlC;AACD;;AACD,SAAKD,SAAL,CAAed,eAAf,EAAgC7F,GAAhC,CAAoCqG,EAApC,EAAwCG,eAAxC;;AACA,WAAON,sBAAsB,CAACI,KAAvB,CAA6B,IAA7B,EAAmC,CACxCF,eADwC,EAExCI,eAFwC,CAAnC,CAAP;AAID,GAvBD;;AAyBA,QAAMK,yBAAyB,GAAGb,KAAK,CAACc,mBAAxC;;AACAd,EAAAA,KAAK,CAACc,mBAAN,GAA4B,UAAUV,eAAV,EAA2BC,EAA3B,EAA+B;AACzD,QACED,eAAe,KAAKP,eAApB,IACA,CAAC,KAAKc,SADN,IAEA,CAAC,KAAKA,SAAL,CAAed,eAAf,CAHH,EAIE;AACA,aAAOgB,yBAAyB,CAACP,KAA1B,CAAgC,IAAhC,EAAsCC,SAAtC,CAAP;AACD;;AACD,QAAI,CAAC,KAAKI,SAAL,CAAed,eAAf,EAAgCkB,GAAhC,CAAoCV,EAApC,CAAL,EAA8C;AAC5C,aAAOQ,yBAAyB,CAACP,KAA1B,CAAgC,IAAhC,EAAsCC,SAAtC,CAAP;AACD;;AACD,UAAMS,WAAW,GAAG,KAAKL,SAAL,CAAed,eAAf,EAAgC9F,GAAhC,CAAoCsG,EAApC,CAApB;;AACA,SAAKM,SAAL,CAAed,eAAf,EAAgCoB,MAAhC,CAAuCZ,EAAvC;;AACA,QAAI,KAAKM,SAAL,CAAed,eAAf,EAAgCqB,IAAhC,KAAyC,CAA7C,EAAgD;AAC9C,aAAO,KAAKP,SAAL,CAAed,eAAf,CAAP;AACD;;AACD,QAAIsB,MAAM,CAACC,IAAP,CAAY,KAAKT,SAAjB,EAA4B1F,MAA5B,KAAuC,CAA3C,EAA8C;AAC5C,aAAO,KAAK0F,SAAZ;AACD;;AACD,WAAOE,yBAAyB,CAACP,KAA1B,CAAgC,IAAhC,EAAsC,CAC3CF,eAD2C,EAE3CY,WAF2C,CAAtC,CAAP;AAID,GAvBD;;AAyBAG,EAAAA,MAAM,CAACE,cAAP,CAAsBrB,KAAtB,EAA6B,OAAOH,eAApC,EAAqD;AACnD9F,IAAAA,GAAG,GAAG;AACJ,aAAO,KAAK,QAAQ8F,eAAb,CAAP;AACD,KAHkD;;AAInD7F,IAAAA,GAAG,CAACqG,EAAD,EAAK;AACN,UAAI,KAAK,QAAQR,eAAb,CAAJ,EAAmC;AACjC,aAAKiB,mBAAL,CACEjB,eADF,EAEE,KAAK,QAAQA,eAAb,CAFF;AAIA,eAAO,KAAK,QAAQA,eAAb,CAAP;AACD;;AACD,UAAIQ,EAAJ,EAAQ;AACN,aAAKF,gBAAL,CACEN,eADF,EAEG,KAAK,QAAQA,eAAb,IAAgCQ,EAFnC;AAID;AACF,KAlBkD;;AAmBnDiB,IAAAA,UAAU,EAAE,IAnBuC;AAoBnDC,IAAAA,YAAY,EAAE;AApBqC,GAArD;AAsBD;;AAED,SAASC,UAAT,CAAoBC,IAApB,EAA0B;AACxB,MAAI,OAAOA,IAAP,KAAgB,SAApB,EAA+B;AAC7B,WAAO,IAAIC,KAAJ,CACL,oBAAoB,OAAOD,IAA3B,GAAkC,yBAD7B,CAAP;AAGD;;AACDpC,EAAAA,YAAY,GAAGoC,IAAf;AACA,SAAOA,IAAI,GAAG,6BAAH,GAAmC,4BAA9C;AACD;AAED;AACA;AACA;AACA;;;AACA,SAASE,eAAT,CAAyBF,IAAzB,EAA+B;AAC7B,MAAI,OAAOA,IAAP,KAAgB,SAApB,EAA+B;AAC7B,WAAO,IAAIC,KAAJ,CACL,oBAAoB,OAAOD,IAA3B,GAAkC,yBAD7B,CAAP;AAGD;;AACDnC,EAAAA,oBAAoB,GAAG,CAACmC,IAAxB;AACA,SAAO,sCAAsCA,IAAI,GAAG,UAAH,GAAgB,SAA1D,CAAP;AACD;;AAED,SAASG,KAAT,GAAiB;AACf,MAAI,OAAOxD,MAAP,KAAkB,QAAtB,EAAgC;AAC9B,QAAIiB,YAAJ,EAAkB;AAChB;AACD;;AACD,QAAI,OAAOwC,OAAP,KAAmB,WAAnB,IAAkC,OAAOA,OAAO,CAACC,GAAf,KAAuB,UAA7D,EAAyE;AACvED,MAAAA,OAAO,CAACC,GAAR,CAAYxB,KAAZ,CAAkBuB,OAAlB,EAA2BtB,SAA3B;AACD;AACF;AACF;AAED;AACA;AACA;;;AACA,SAASwB,UAAT,CAAoBC,SAApB,EAA+BC,SAA/B,EAA0C;AACxC,MAAI,CAAC3C,oBAAL,EAA2B;AACzB;AACD;;AACDuC,EAAAA,OAAO,CAACK,IAAR,CACEF,SAAS,GAAG,6BAAZ,GAA4CC,SAA5C,GAAwD,WAD1D;AAGD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,aAAT,CAAuB/D,MAAvB,EAA+B;AAC7B;AACA,QAAMgE,MAAM,GAAG;AAAEC,IAAAA,OAAO,EAAE,IAAX;AAAiBC,IAAAA,OAAO,EAAE;AAA1B,GAAf,CAF6B;;AAK7B,MAAI,OAAOlE,MAAP,KAAkB,WAAlB,IAAiC,CAACA,MAAM,CAACC,SAA7C,EAAwD;AACtD+D,IAAAA,MAAM,CAACC,OAAP,GAAiB,gBAAjB;AACA,WAAOD,MAAP;AACD;;AAED,QAAM;AAAE/D,IAAAA;AAAF,MAAgBD,MAAtB;;AAEA,MAAIC,SAAS,CAACkE,eAAd,EAA+B;AAC7B;AACAH,IAAAA,MAAM,CAACC,OAAP,GAAiB,SAAjB;AACAD,IAAAA,MAAM,CAACE,OAAP,GAAiB/C,cAAc,CAAClB,SAAS,CAACC,SAAX,EAAsB,kBAAtB,EAA0C,CAA1C,CAA/B;AACD,GAJD,MAIO,IACLD,SAAS,CAACmE,kBAAV,IACCpE,MAAM,CAACqE,eAAP,KAA2B,KAA3B,IACCrE,MAAM,CAACsE,uBADR,IAEC,CAACtE,MAAM,CAACuE,cAJL,EAKL;AACA;AACA;AACA;AACA;AACAP,IAAAA,MAAM,CAACC,OAAP,GAAiB,QAAjB;AACAD,IAAAA,MAAM,CAACE,OAAP,GAAiB/C,cAAc,CAC7BlB,SAAS,CAACC,SADmB,EAE7B,uBAF6B,EAG7B,CAH6B,CAA/B;AAKD,GAhBM,MAgBA,IACLD,SAAS,CAACuE,YAAV,IACAvE,SAAS,CAACC,SAAV,CAAoBC,KAApB,CAA0B,oBAA1B,CAFK,EAGL;AACA;AACA6D,IAAAA,MAAM,CAACC,OAAP,GAAiB,MAAjB;AACAD,IAAAA,MAAM,CAACE,OAAP,GAAiB/C,cAAc,CAC7BlB,SAAS,CAACC,SADmB,EAE7B,oBAF6B,EAG7B,CAH6B,CAA/B;AAKD,GAXM,MAWA,IACLF,MAAM,CAAC2B,iBAAP,IACA1B,SAAS,CAACC,SAAV,CAAoBC,KAApB,CAA0B,sBAA1B,CAFK,EAGL;AACA;AACA6D,IAAAA,MAAM,CAACC,OAAP,GAAiB,QAAjB;AACAD,IAAAA,MAAM,CAACE,OAAP,GAAiB/C,cAAc,CAC7BlB,SAAS,CAACC,SADmB,EAE7B,sBAF6B,EAG7B,CAH6B,CAA/B;AAKA8D,IAAAA,MAAM,CAACS,mBAAP,GACEzE,MAAM,CAAC0E,iBAAP,IACA,sBAAsB1E,MAAM,CAAC0E,iBAAP,CAAyB7C,SAFjD;AAGD,GAdM,MAcA;AACL;AACAmC,IAAAA,MAAM,CAACC,OAAP,GAAiB,0BAAjB;AACA,WAAOD,MAAP;AACD;;AAED,SAAOA,MAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASW,QAAT,CAAkBC,GAAlB,EAAuB;AACrB,SAAO7B,MAAM,CAAClB,SAAP,CAAiBgD,QAAjB,CAA0BC,IAA1B,CAA+BF,GAA/B,MAAwC,iBAA/C;AACD;AAED;AACA;AACA;AACA;AACA;;;AACA,SAASG,aAAT,CAAuB9F,IAAvB,EAA6B;AAC3B,MAAI,CAAC0F,QAAQ,CAAC1F,IAAD,CAAb,EAAqB;AACnB,WAAOA,IAAP;AACD;;AAED,SAAO8D,MAAM,CAACC,IAAP,CAAY/D,IAAZ,EAAkB+F,MAAlB,CAAyB,UAAUC,WAAV,EAAuBzJ,GAAvB,EAA4B;AAC1D,UAAM0J,KAAK,GAAGP,QAAQ,CAAC1F,IAAI,CAACzD,GAAD,CAAL,CAAtB;AACA,UAAMK,KAAK,GAAGqJ,KAAK,GAAGH,aAAa,CAAC9F,IAAI,CAACzD,GAAD,CAAL,CAAhB,GAA8ByD,IAAI,CAACzD,GAAD,CAArD;AACA,UAAM2J,aAAa,GAAGD,KAAK,IAAI,CAACnC,MAAM,CAACC,IAAP,CAAYnH,KAAZ,EAAmBgB,MAAnD;;AACA,QAAIhB,KAAK,KAAKuJ,SAAV,IAAuBD,aAA3B,EAA0C;AACxC,aAAOF,WAAP;AACD;;AACD,WAAOlC,MAAM,CAACsC,MAAP,CAAcJ,WAAd,EAA2B;AAAE,OAACzJ,GAAD,GAAOK;AAAT,KAA3B,CAAP;AACD,GARM,EAQJ,EARI,CAAP;AASD;AAED;;;AACA,SAASyJ,SAAT,CAAmBC,KAAnB,EAA0BC,IAA1B,EAAgCC,SAAhC,EAA2C;AACzC,MAAI,CAACD,IAAD,IAASC,SAAS,CAAC9C,GAAV,CAAc6C,IAAI,CAACE,EAAnB,CAAb,EAAqC;AACnC;AACD;;AACDD,EAAAA,SAAS,CAAC7J,GAAV,CAAc4J,IAAI,CAACE,EAAnB,EAAuBF,IAAvB;AACAzC,EAAAA,MAAM,CAACC,IAAP,CAAYwC,IAAZ,EAAkBG,OAAlB,CAA2BjL,IAAD,IAAU;AAClC,QAAIA,IAAI,CAACkL,QAAL,CAAc,IAAd,CAAJ,EAAyB;AACvBN,MAAAA,SAAS,CAACC,KAAD,EAAQA,KAAK,CAAC5J,GAAN,CAAU6J,IAAI,CAAC9K,IAAD,CAAd,CAAR,EAA+B+K,SAA/B,CAAT;AACD,KAFD,MAEO,IAAI/K,IAAI,CAACkL,QAAL,CAAc,KAAd,CAAJ,EAA0B;AAC/BJ,MAAAA,IAAI,CAAC9K,IAAD,CAAJ,CAAWiL,OAAX,CAAoBD,EAAD,IAAQ;AACzBJ,QAAAA,SAAS,CAACC,KAAD,EAAQA,KAAK,CAAC5J,GAAN,CAAU+J,EAAV,CAAR,EAAuBD,SAAvB,CAAT;AACD,OAFD;AAGD;AACF,GARD;AASD;AAED;;;AACA,SAASI,WAAT,CAAqB7B,MAArB,EAA6B8B,KAA7B,EAAoCC,QAApC,EAA8C;AAC5C,QAAMC,eAAe,GAAGD,QAAQ,GAAG,cAAH,GAAoB,aAApD;AACA,QAAME,cAAc,GAAG,IAAIzD,GAAJ,EAAvB;;AACA,MAAIsD,KAAK,KAAK,IAAd,EAAoB;AAClB,WAAOG,cAAP;AACD;;AACD,QAAMC,UAAU,GAAG,EAAnB;AACAlC,EAAAA,MAAM,CAAC2B,OAAP,CAAgB9J,KAAD,IAAW;AACxB,QAAIA,KAAK,CAACE,IAAN,KAAe,OAAf,IAA0BF,KAAK,CAACsK,eAAN,KAA0BL,KAAK,CAACJ,EAA9D,EAAkE;AAChEQ,MAAAA,UAAU,CAACE,IAAX,CAAgBvK,KAAhB;AACD;AACF,GAJD;AAKAqK,EAAAA,UAAU,CAACP,OAAX,CAAoBU,SAAD,IAAe;AAChCrC,IAAAA,MAAM,CAAC2B,OAAP,CAAgBJ,KAAD,IAAW;AACxB,UAAIA,KAAK,CAACxJ,IAAN,KAAeiK,eAAf,IAAkCT,KAAK,CAACe,OAAN,KAAkBD,SAAS,CAACX,EAAlE,EAAsE;AACpEJ,QAAAA,SAAS,CAACtB,MAAD,EAASuB,KAAT,EAAgBU,cAAhB,CAAT;AACD;AACF,KAJD;AAKD,GAND;AAOA,SAAOA,cAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMM,OAAO,GAAG/C,KAAhB;;AAEA,SAASgD,kBAAT,CAA4BxG,MAA5B,EAAoCyG,cAApC,EAAoD;AAClD,QAAMxG,SAAS,GAAGD,MAAM,IAAIA,MAAM,CAACC,SAAnC;;AAEA,MAAI,CAACA,SAAS,CAACuE,YAAf,EAA6B;AAC3B;AACD;;AAED,QAAMkC,oBAAoB,GAAG,UAAUC,CAAV,EAAa;AACxC,QAAI,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,CAACC,SAA3B,IAAwCD,CAAC,CAACE,QAA9C,EAAwD;AACtD,aAAOF,CAAP;AACD;;AACD,UAAMG,EAAE,GAAG,EAAX;AACA/D,IAAAA,MAAM,CAACC,IAAP,CAAY2D,CAAZ,EAAehB,OAAf,CAAwBnK,GAAD,IAAS;AAC9B,UAAIA,GAAG,KAAK,SAAR,IAAqBA,GAAG,KAAK,UAA7B,IAA2CA,GAAG,KAAK,aAAvD,EAAsE;AACpE;AACD;;AACD,YAAMuL,CAAC,GAAG,OAAOJ,CAAC,CAACnL,GAAD,CAAR,KAAkB,QAAlB,GAA6BmL,CAAC,CAACnL,GAAD,CAA9B,GAAsC;AAAEwL,QAAAA,KAAK,EAAEL,CAAC,CAACnL,GAAD;AAAV,OAAhD;;AACA,UAAIuL,CAAC,CAACE,KAAF,KAAY7B,SAAZ,IAAyB,OAAO2B,CAAC,CAACE,KAAT,KAAmB,QAAhD,EAA0D;AACxDF,QAAAA,CAAC,CAACG,GAAF,GAAQH,CAAC,CAACI,GAAF,GAAQJ,CAAC,CAACE,KAAlB;AACD;;AACD,YAAMG,QAAQ,GAAG,UAAUjN,MAAV,EAAkBO,IAAlB,EAAwB;AACvC,YAAIP,MAAJ,EAAY;AACV,iBAAOA,MAAM,GAAGO,IAAI,CAAC2M,MAAL,CAAY,CAAZ,EAAeC,WAAf,EAAT,GAAwC5M,IAAI,CAACkC,KAAL,CAAW,CAAX,CAA/C;AACD;;AACD,eAAOlC,IAAI,KAAK,UAAT,GAAsB,UAAtB,GAAmCA,IAA1C;AACD,OALD;;AAMA,UAAIqM,CAAC,CAACC,KAAF,KAAY5B,SAAhB,EAA2B;AACzB0B,QAAAA,EAAE,CAACD,QAAH,GAAcC,EAAE,CAACD,QAAH,IAAe,EAA7B;AACA,YAAIU,EAAE,GAAG,EAAT;;AACA,YAAI,OAAOR,CAAC,CAACC,KAAT,KAAmB,QAAvB,EAAiC;AAC/BO,UAAAA,EAAE,CAACH,QAAQ,CAAC,KAAD,EAAQ5L,GAAR,CAAT,CAAF,GAA2BuL,CAAC,CAACC,KAA7B;AACAF,UAAAA,EAAE,CAACD,QAAH,CAAYT,IAAZ,CAAiBmB,EAAjB;AACAA,UAAAA,EAAE,GAAG,EAAL;AACAA,UAAAA,EAAE,CAACH,QAAQ,CAAC,KAAD,EAAQ5L,GAAR,CAAT,CAAF,GAA2BuL,CAAC,CAACC,KAA7B;AACAF,UAAAA,EAAE,CAACD,QAAH,CAAYT,IAAZ,CAAiBmB,EAAjB;AACD,SAND,MAMO;AACLA,UAAAA,EAAE,CAACH,QAAQ,CAAC,EAAD,EAAK5L,GAAL,CAAT,CAAF,GAAwBuL,CAAC,CAACC,KAA1B;AACAF,UAAAA,EAAE,CAACD,QAAH,CAAYT,IAAZ,CAAiBmB,EAAjB;AACD;AACF;;AACD,UAAIR,CAAC,CAACE,KAAF,KAAY7B,SAAZ,IAAyB,OAAO2B,CAAC,CAACE,KAAT,KAAmB,QAAhD,EAA0D;AACxDH,QAAAA,EAAE,CAACF,SAAH,GAAeE,EAAE,CAACF,SAAH,IAAgB,EAA/B;AACAE,QAAAA,EAAE,CAACF,SAAH,CAAaQ,QAAQ,CAAC,EAAD,EAAK5L,GAAL,CAArB,IAAkCuL,CAAC,CAACE,KAApC;AACD,OAHD,MAGO;AACL,SAAC,KAAD,EAAQ,KAAR,EAAetB,OAAf,CAAwB6B,GAAD,IAAS;AAC9B,cAAIT,CAAC,CAACS,GAAD,CAAD,KAAWpC,SAAf,EAA0B;AACxB0B,YAAAA,EAAE,CAACF,SAAH,GAAeE,EAAE,CAACF,SAAH,IAAgB,EAA/B;AACAE,YAAAA,EAAE,CAACF,SAAH,CAAaQ,QAAQ,CAACI,GAAD,EAAMhM,GAAN,CAArB,IAAmCuL,CAAC,CAACS,GAAD,CAApC;AACD;AACF,SALD;AAMD;AACF,KAvCD;;AAwCA,QAAIb,CAAC,CAACc,QAAN,EAAgB;AACdX,MAAAA,EAAE,CAACD,QAAH,GAAc,CAACC,EAAE,CAACD,QAAH,IAAe,EAAhB,EAAoBa,MAApB,CAA2Bf,CAAC,CAACc,QAA7B,CAAd;AACD;;AACD,WAAOX,EAAP;AACD,GAjDD;;AAmDA,QAAMa,gBAAgB,GAAG,UAAUC,WAAV,EAAuBC,IAAvB,EAA6B;AACpD,QAAIpB,cAAc,CAACvC,OAAf,IAA0B,EAA9B,EAAkC;AAChC,aAAO2D,IAAI,CAACD,WAAD,CAAX;AACD;;AACDA,IAAAA,WAAW,GAAGpJ,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAemJ,WAAf,CAAX,CAAd;;AACA,QAAIA,WAAW,IAAI,OAAOA,WAAW,CAACG,KAAnB,KAA6B,QAAhD,EAA0D;AACxD,YAAMC,KAAK,GAAG,UAAUC,GAAV,EAAeC,CAAf,EAAkBC,CAAlB,EAAqB;AACjC,YAAID,CAAC,IAAID,GAAL,IAAY,EAAEE,CAAC,IAAIF,GAAP,CAAhB,EAA6B;AAC3BA,UAAAA,GAAG,CAACE,CAAD,CAAH,GAASF,GAAG,CAACC,CAAD,CAAZ;AACA,iBAAOD,GAAG,CAACC,CAAD,CAAV;AACD;AACF,OALD;;AAMAN,MAAAA,WAAW,GAAGpJ,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAemJ,WAAf,CAAX,CAAd;AACAI,MAAAA,KAAK,CAACJ,WAAW,CAACG,KAAb,EAAoB,iBAApB,EAAuC,qBAAvC,CAAL;AACAC,MAAAA,KAAK,CAACJ,WAAW,CAACG,KAAb,EAAoB,kBAApB,EAAwC,sBAAxC,CAAL;AACAH,MAAAA,WAAW,CAACG,KAAZ,GAAoBrB,oBAAoB,CAACkB,WAAW,CAACG,KAAb,CAAxC;AACD;;AACD,QAAIH,WAAW,IAAI,OAAOA,WAAW,CAACQ,KAAnB,KAA6B,QAAhD,EAA0D;AACxD;AACA,UAAIC,IAAI,GAAGT,WAAW,CAACQ,KAAZ,CAAkBE,UAA7B;AACAD,MAAAA,IAAI,GAAGA,IAAI,KAAK,OAAOA,IAAP,KAAgB,QAAhB,GAA2BA,IAA3B,GAAkC;AAAErB,QAAAA,KAAK,EAAEqB;AAAT,OAAvC,CAAX;AACA,YAAME,0BAA0B,GAAG9B,cAAc,CAACvC,OAAf,GAAyB,EAA5D;;AAEA,UACEmE,IAAI,KACHA,IAAI,CAACpB,KAAL,KAAe,MAAf,IACCoB,IAAI,CAACpB,KAAL,KAAe,aADhB,IAECoB,IAAI,CAACrB,KAAL,KAAe,MAFhB,IAGCqB,IAAI,CAACrB,KAAL,KAAe,aAJb,CAAJ,IAKA,EACE/G,SAAS,CAACuE,YAAV,CAAuBgE,uBAAvB,IACAvI,SAAS,CAACuE,YAAV,CAAuBgE,uBAAvB,GAAiDF,UADjD,IAEA,CAACC,0BAHH,CANF,EAWE;AACA,eAAOX,WAAW,CAACQ,KAAZ,CAAkBE,UAAzB;AACA,YAAIG,OAAJ;;AACA,YAAIJ,IAAI,CAACpB,KAAL,KAAe,aAAf,IAAgCoB,IAAI,CAACrB,KAAL,KAAe,aAAnD,EAAkE;AAChEyB,UAAAA,OAAO,GAAG,CAAC,MAAD,EAAS,MAAT,CAAV;AACD,SAFD,MAEO,IAAIJ,IAAI,CAACpB,KAAL,KAAe,MAAf,IAAyBoB,IAAI,CAACrB,KAAL,KAAe,MAA5C,EAAoD;AACzDyB,UAAAA,OAAO,GAAG,CAAC,OAAD,CAAV;AACD;;AACD,YAAIA,OAAJ,EAAa;AACX;AACA,iBAAOxI,SAAS,CAACuE,YAAV,CAAuBkE,gBAAvB,GAA0CC,IAA1C,CAAgDC,OAAD,IAAa;AACjEA,YAAAA,OAAO,GAAGA,OAAO,CAACC,MAAR,CAAgBC,CAAD,IAAOA,CAAC,CAACC,IAAF,KAAW,YAAjC,CAAV;AACA,gBAAIC,GAAG,GAAGJ,OAAO,CAACK,IAAR,CAAcH,CAAD,IACrBL,OAAO,CAACS,IAAR,CAAc/I,KAAD,IAAW2I,CAAC,CAACK,KAAF,CAAQC,WAAR,GAAsBC,QAAtB,CAA+BlJ,KAA/B,CAAxB,CADQ,CAAV;;AAGA,gBAAI,CAAC6I,GAAD,IAAQJ,OAAO,CAAC/L,MAAhB,IAA0B4L,OAAO,CAACY,QAAR,CAAiB,MAAjB,CAA9B,EAAwD;AACtDL,cAAAA,GAAG,GAAGJ,OAAO,CAACA,OAAO,CAAC/L,MAAR,GAAiB,CAAlB,CAAb,CADsD;AAEvD;;AACD,gBAAImM,GAAJ,EAAS;AACPpB,cAAAA,WAAW,CAACQ,KAAZ,CAAkBkB,QAAlB,GAA6BjB,IAAI,CAACpB,KAAL,GACzB;AAAEA,gBAAAA,KAAK,EAAE+B,GAAG,CAACM;AAAb,eADyB,GAEzB;AAAEtC,gBAAAA,KAAK,EAAEgC,GAAG,CAACM;AAAb,eAFJ;AAGD;;AACD1B,YAAAA,WAAW,CAACQ,KAAZ,GAAoB1B,oBAAoB,CAACkB,WAAW,CAACQ,KAAb,CAAxC;AACA7B,YAAAA,OAAO,CAAC,aAAa/H,IAAI,CAACC,SAAL,CAAemJ,WAAf,CAAd,CAAP;AACA,mBAAOC,IAAI,CAACD,WAAD,CAAX;AACD,WAhBM,CAAP;AAiBD;AACF;;AACDA,MAAAA,WAAW,CAACQ,KAAZ,GAAoB1B,oBAAoB,CAACkB,WAAW,CAACQ,KAAb,CAAxC;AACD;;AACD7B,IAAAA,OAAO,CAAC,aAAa/H,IAAI,CAACC,SAAL,CAAemJ,WAAf,CAAd,CAAP;AACA,WAAOC,IAAI,CAACD,WAAD,CAAX;AACD,GAnED;;AAqEA,QAAM2B,UAAU,GAAG,UAAUpM,CAAV,EAAa;AAC9B,QAAIsJ,cAAc,CAACvC,OAAf,IAA0B,EAA9B,EAAkC;AAChC,aAAO/G,CAAP;AACD;;AACD,WAAO;AACLzC,MAAAA,IAAI,EACF;AACE8O,QAAAA,qBAAqB,EAAE,iBADzB;AAEEC,QAAAA,wBAAwB,EAAE,iBAF5B;AAGEC,QAAAA,iBAAiB,EAAE,iBAHrB;AAIEC,QAAAA,oBAAoB,EAAE,eAJxB;AAKEC,QAAAA,2BAA2B,EAAE,sBAL/B;AAMEC,QAAAA,eAAe,EAAE,kBANnB;AAOEC,QAAAA,8BAA8B,EAAE,iBAPlC;AAQEC,QAAAA,uBAAuB,EAAE,iBAR3B;AASEC,QAAAA,eAAe,EAAE,YATnB;AAUEC,QAAAA,kBAAkB,EAAE,YAVtB;AAWEC,QAAAA,kBAAkB,EAAE;AAXtB,QAYE/M,CAAC,CAACzC,IAZJ,KAYayC,CAAC,CAACzC,IAdZ;AAeLyP,MAAAA,OAAO,EAAEhN,CAAC,CAACgN,OAfN;AAgBLC,MAAAA,UAAU,EAAEjN,CAAC,CAACiN,UAAF,IAAgBjN,CAAC,CAACkN,cAhBzB;;AAiBLxF,MAAAA,QAAQ,GAAG;AACT,eAAO,KAAKnK,IAAL,IAAa,KAAKyP,OAAL,IAAgB,IAA7B,IAAqC,KAAKA,OAAjD;AACD;;AAnBI,KAAP;AAqBD,GAzBD;;AA2BA,QAAMG,aAAa,GAAG,UAAU1C,WAAV,EAAuB2C,SAAvB,EAAkCC,OAAlC,EAA2C;AAC/D7C,IAAAA,gBAAgB,CAACC,WAAD,EAAejB,CAAD,IAAO;AACnC1G,MAAAA,SAAS,CAACmE,kBAAV,CAA6BuC,CAA7B,EAAgC4D,SAAhC,EAA4CpN,CAAD,IAAO;AAChD,YAAIqN,OAAJ,EAAa;AACXA,UAAAA,OAAO,CAACjB,UAAU,CAACpM,CAAD,CAAX,CAAP;AACD;AACF,OAJD;AAKD,KANe,CAAhB;AAOD,GARD;;AASA8C,EAAAA,SAAS,CAACwK,YAAV,GAAyBH,aAAa,CAACI,IAAd,CAAmBzK,SAAnB,CAAzB,CAnKkD;AAsKlD;AACA;;AACA,MAAIA,SAAS,CAACuE,YAAV,CAAuBiG,YAA3B,EAAyC;AACvC,UAAME,gBAAgB,GAAG1K,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoCC,IAApC,CACvBzK,SAAS,CAACuE,YADa,CAAzB;;AAGAvE,IAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,GAAsC,UAAUG,EAAV,EAAc;AAClD,aAAOjD,gBAAgB,CAACiD,EAAD,EAAMjE,CAAD,IAC1BgE,gBAAgB,CAAChE,CAAD,CAAhB,CAAoBgC,IAApB,CACGkC,MAAD,IAAY;AACV,YACGlE,CAAC,CAACoB,KAAF,IAAW,CAAC8C,MAAM,CAACC,cAAP,GAAwBjO,MAArC,IACC8J,CAAC,CAACyB,KAAF,IAAW,CAACyC,MAAM,CAACE,cAAP,GAAwBlO,MAFvC,EAGE;AACAgO,UAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA4BG,KAAD,IAAW;AACpCA,YAAAA,KAAK,CAACmF,IAAN;AACD,WAFD;AAGA,gBAAM,IAAIC,YAAJ,CAAiB,EAAjB,EAAqB,eAArB,CAAN;AACD;;AACD,eAAOL,MAAP;AACD,OAZH,EAaG1N,CAAD,IAAOyB,OAAO,CAACC,MAAR,CAAe0K,UAAU,CAACpM,CAAD,CAAzB,CAbT,CADqB,CAAvB;AAiBD,KAlBD;AAmBD;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgO,qBAAT,CAA+BnL,MAA/B,EAAuCoL,WAAvC,EAAoD;AAClD,MACEpL,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,IACA,qBAAqBxE,MAAM,CAACC,SAAP,CAAiBuE,YAFxC,EAGE;AACA;AACD;;AACD,MAAI,CAACxE,MAAM,CAACC,SAAP,CAAiBuE,YAAtB,EAAoC;AAClC;AACD,GATiD;AAWlD;;;AACA,MAAI,OAAO4G,WAAP,KAAuB,UAA3B,EAAuC;AACrC3H,IAAAA,OAAO,CAAC4H,KAAR,CACE,sDAAsD,YADxD;AAGA;AACD;;AACDrL,EAAAA,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,CAA8B8G,eAA9B,GAAgD,SAASA,eAAT,CAC9C1D,WAD8C,EAE9C;AACA,WAAOwD,WAAW,CAACxD,WAAD,CAAX,CAAyBe,IAAzB,CAA+B4C,QAAD,IAAc;AACjD,YAAMC,cAAc,GAAG5D,WAAW,CAACQ,KAAZ,IAAqBR,WAAW,CAACQ,KAAZ,CAAkBrH,KAA9D;AACA,YAAM0K,eAAe,GAAG7D,WAAW,CAACQ,KAAZ,IAAqBR,WAAW,CAACQ,KAAZ,CAAkBpH,MAA/D;AACA,YAAM0K,kBAAkB,GACtB9D,WAAW,CAACQ,KAAZ,IAAqBR,WAAW,CAACQ,KAAZ,CAAkBuD,SADzC;AAEA/D,MAAAA,WAAW,CAACQ,KAAZ,GAAoB;AAClBxB,QAAAA,SAAS,EAAE;AACTgF,UAAAA,iBAAiB,EAAE,SADV;AAETC,UAAAA,mBAAmB,EAAEN,QAFZ;AAGTO,UAAAA,YAAY,EAAEJ,kBAAkB,IAAI;AAH3B;AADO,OAApB;;AAOA,UAAIF,cAAJ,EAAoB;AAClB5D,QAAAA,WAAW,CAACQ,KAAZ,CAAkBxB,SAAlB,CAA4BmF,QAA5B,GAAuCP,cAAvC;AACD;;AACD,UAAIC,eAAJ,EAAqB;AACnB7D,QAAAA,WAAW,CAACQ,KAAZ,CAAkBxB,SAAlB,CAA4BoF,SAA5B,GAAwCP,eAAxC;AACD;;AACD,aAAOzL,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,CAA8BiG,YAA9B,CAA2C7C,WAA3C,CAAP;AACD,KAnBM,CAAP;AAoBD,GAvBD;AAwBD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASqE,eAAT,CAAyBjM,MAAzB,EAAiC;AAC/BA,EAAAA,MAAM,CAACkM,WAAP,GAAqBlM,MAAM,CAACkM,WAAP,IAAsBlM,MAAM,CAACmM,iBAAlD;AACD;;AAED,SAASC,aAAT,CAAuBpM,MAAvB,EAA+B;AAC7B,MACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA,EAAE,aAAa3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAxC,CAHF,EAIE;AACAkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAAC2B,iBAAP,CAAyBE,SAA/C,EAA0D,SAA1D,EAAqE;AACnElG,MAAAA,GAAG,GAAG;AACJ,eAAO,KAAK0Q,QAAZ;AACD,OAHkE;;AAInEzQ,MAAAA,GAAG,CAAC0Q,CAAD,EAAI;AACL,YAAI,KAAKD,QAAT,EAAmB;AACjB,eAAK3J,mBAAL,CAAyB,OAAzB,EAAkC,KAAK2J,QAAvC;AACD;;AACD,aAAKtK,gBAAL,CAAsB,OAAtB,EAAgC,KAAKsK,QAAL,GAAgBC,CAAhD;AACD,OATkE;;AAUnEpJ,MAAAA,UAAU,EAAE,IAVuD;AAWnEC,MAAAA,YAAY,EAAE;AAXqD,KAArE;AAaA,UAAMoJ,wBAAwB,GAC5BvM,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBADrC;;AAEAxM,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBAAnC,GACE,SAASA,oBAAT,GAAgC;AAC9B,UAAI,CAAC,KAAKC,YAAV,EAAwB;AACtB,aAAKA,YAAL,GAAqBtP,CAAD,IAAO;AACzB;AACA;AACAA,UAAAA,CAAC,CAAC0N,MAAF,CAAS9I,gBAAT,CAA0B,UAA1B,EAAuC2K,EAAD,IAAQ;AAC5C,gBAAIC,QAAJ;;AACA,gBAAI3M,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAAvC,EAAqD;AACnDD,cAAAA,QAAQ,GAAG,KAAKC,YAAL,GAAoB3D,IAApB,CACRlC,CAAD,IAAOA,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACjB,KAAF,CAAQJ,EAAR,KAAegH,EAAE,CAAC5G,KAAH,CAASJ,EADjC,CAAX;AAGD,aAJD,MAIO;AACLiH,cAAAA,QAAQ,GAAG;AAAE7G,gBAAAA,KAAK,EAAE4G,EAAE,CAAC5G;AAAZ,eAAX;AACD;;AAED,kBAAM+G,KAAK,GAAG,IAAIC,KAAJ,CAAU,OAAV,CAAd;AACAD,YAAAA,KAAK,CAAC/G,KAAN,GAAc4G,EAAE,CAAC5G,KAAjB;AACA+G,YAAAA,KAAK,CAACF,QAAN,GAAiBA,QAAjB;AACAE,YAAAA,KAAK,CAACE,WAAN,GAAoB;AAAEJ,cAAAA;AAAF,aAApB;AACAE,YAAAA,KAAK,CAACG,OAAN,GAAgB,CAAC7P,CAAC,CAAC0N,MAAH,CAAhB;AACA,iBAAKoC,aAAL,CAAmBJ,KAAnB;AACD,WAhBD;AAiBA1P,UAAAA,CAAC,CAAC0N,MAAF,CAASG,SAAT,GAAqBrF,OAArB,CAA8BG,KAAD,IAAW;AACtC,gBAAI6G,QAAJ;;AACA,gBAAI3M,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAAvC,EAAqD;AACnDD,cAAAA,QAAQ,GAAG,KAAKC,YAAL,GAAoB3D,IAApB,CACRlC,CAAD,IAAOA,CAAC,CAACjB,KAAF,IAAWiB,CAAC,CAACjB,KAAF,CAAQJ,EAAR,KAAeI,KAAK,CAACJ,EAD9B,CAAX;AAGD,aAJD,MAIO;AACLiH,cAAAA,QAAQ,GAAG;AAAE7G,gBAAAA;AAAF,eAAX;AACD;;AACD,kBAAM+G,KAAK,GAAG,IAAIC,KAAJ,CAAU,OAAV,CAAd;AACAD,YAAAA,KAAK,CAAC/G,KAAN,GAAcA,KAAd;AACA+G,YAAAA,KAAK,CAACF,QAAN,GAAiBA,QAAjB;AACAE,YAAAA,KAAK,CAACE,WAAN,GAAoB;AAAEJ,cAAAA;AAAF,aAApB;AACAE,YAAAA,KAAK,CAACG,OAAN,GAAgB,CAAC7P,CAAC,CAAC0N,MAAH,CAAhB;AACA,iBAAKoC,aAAL,CAAmBJ,KAAnB;AACD,WAfD;AAgBD,SApCD;;AAqCA,aAAK9K,gBAAL,CAAsB,WAAtB,EAAmC,KAAK0K,YAAxC;AACD;;AACD,aAAOF,wBAAwB,CAACrK,KAAzB,CAA+B,IAA/B,EAAqCC,SAArC,CAAP;AACD,KA3CH;AA4CD,GAhED,MAgEO;AACL;AACA;AACA;AACAX,IAAAA,uBAAuB,CAACxB,MAAD,EAAS,OAAT,EAAmB7C,CAAD,IAAO;AAC9C,UAAI,CAACA,CAAC,CAAC4P,WAAP,EAAoB;AAClBhK,QAAAA,MAAM,CAACE,cAAP,CAAsB9F,CAAtB,EAAyB,aAAzB,EAAwC;AACtCtB,UAAAA,KAAK,EAAE;AAAE8Q,YAAAA,QAAQ,EAAExP,CAAC,CAACwP;AAAd;AAD+B,SAAxC;AAGD;;AACD,aAAOxP,CAAP;AACD,KAPsB,CAAvB;AAQD;AACF;;AAED,SAAS+P,sBAAT,CAAgClN,MAAhC,EAAwC;AACtC;AACA,MACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA,EAAE,gBAAgB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAA3C,CAFA,IAGA,sBAAsB7B,MAAM,CAAC2B,iBAAP,CAAyBE,SAJjD,EAKE;AACA,UAAMsL,kBAAkB,GAAG,UAAUC,EAAV,EAActH,KAAd,EAAqB;AAC9C,aAAO;AACLA,QAAAA,KADK;;AAEL,YAAIuH,IAAJ,GAAW;AACT,cAAI,KAAKC,KAAL,KAAelI,SAAnB,EAA8B;AAC5B,gBAAIU,KAAK,CAACiD,IAAN,KAAe,OAAnB,EAA4B;AAC1B,mBAAKuE,KAAL,GAAaF,EAAE,CAACG,gBAAH,CAAoBzH,KAApB,CAAb;AACD,aAFD,MAEO;AACL,mBAAKwH,KAAL,GAAa,IAAb;AACD;AACF;;AACD,iBAAO,KAAKA,KAAZ;AACD,SAXI;;AAYLE,QAAAA,GAAG,EAAEJ;AAZA,OAAP;AAcD,KAfD,CADA;;;AAmBA,QAAI,CAACpN,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAAxC,EAAoD;AAClDzN,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAAnC,GAAgD,SAASA,UAAT,GAAsB;AACpE,aAAKC,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACA,eAAO,KAAKA,QAAL,CAAc9Q,KAAd,EAAP,CAFoE;AAGrE,OAHD;;AAIA,YAAM+Q,YAAY,GAAG3N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAxD;;AACA5N,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,CAC5C9H,KAD4C,EAE5C+E,MAF4C,EAG5C;AACA,YAAIgD,MAAM,GAAGF,YAAY,CAACzL,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAb;;AACA,YAAI,CAAC0L,MAAL,EAAa;AACXA,UAAAA,MAAM,GAAGV,kBAAkB,CAAC,IAAD,EAAOrH,KAAP,CAA3B;;AACA,eAAK4H,QAAL,CAActH,IAAd,CAAmByH,MAAnB;AACD;;AACD,eAAOA,MAAP;AACD,OAVD;;AAYA,YAAMC,eAAe,GAAG9N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkM,WAA3D;;AACA/N,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkM,WAAnC,GAAiD,SAASA,WAAT,CAC/CF,MAD+C,EAE/C;AACAC,QAAAA,eAAe,CAAC5L,KAAhB,CAAsB,IAAtB,EAA4BC,SAA5B;;AACA,cAAM6L,GAAG,GAAG,KAAKN,QAAL,CAAcO,OAAd,CAAsBJ,MAAtB,CAAZ;;AACA,YAAIG,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,eAAKN,QAAL,CAAcQ,MAAd,CAAqBF,GAArB,EAA0B,CAA1B;AACD;AACF,OARD;AASD;;AACD,UAAMG,aAAa,GAAGnO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAzD;;AACApO,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAnC,GAA+C,SAASA,SAAT,CAAmBvD,MAAnB,EAA2B;AACxE,WAAK6C,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACAS,MAAAA,aAAa,CAACjM,KAAd,CAAoB,IAApB,EAA0B,CAAC2I,MAAD,CAA1B;AACAA,MAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA4BG,KAAD,IAAW;AACpC,aAAK4H,QAAL,CAActH,IAAd,CAAmB+G,kBAAkB,CAAC,IAAD,EAAOrH,KAAP,CAArC;AACD,OAFD;AAGD,KAND;;AAQA,UAAMuI,gBAAgB,GAAGrO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAA5D;;AACAtO,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAAnC,GAAkD,SAASA,YAAT,CAChDzD,MADgD,EAEhD;AACA,WAAK6C,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACAW,MAAAA,gBAAgB,CAACnM,KAAjB,CAAuB,IAAvB,EAA6B,CAAC2I,MAAD,CAA7B;AAEAA,MAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA4BG,KAAD,IAAW;AACpC,cAAM+H,MAAM,GAAG,KAAKH,QAAL,CAAczE,IAAd,CAAoBsF,CAAD,IAAOA,CAAC,CAACzI,KAAF,KAAYA,KAAtC,CAAf;;AACA,YAAI+H,MAAJ,EAAY;AACV;AACA,eAAKH,QAAL,CAAcQ,MAAd,CAAqB,KAAKR,QAAL,CAAcO,OAAd,CAAsBJ,MAAtB,CAArB,EAAoD,CAApD;AACD;AACF,OAND;AAOD,KAbD;AAcD,GA7ED,MA6EO,IACL,OAAO7N,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA,gBAAgB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAFzC,IAGA,sBAAsB7B,MAAM,CAAC2B,iBAAP,CAAyBE,SAH/C,IAIA7B,MAAM,CAACwO,YAJP,IAKA,EAAE,UAAUxO,MAAM,CAACwO,YAAP,CAAoB3M,SAAhC,CANK,EAOL;AACA,UAAM4M,cAAc,GAAGzO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAA1D;;AACAzN,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAAnC,GAAgD,SAASA,UAAT,GAAsB;AACpE,YAAMiB,OAAO,GAAGD,cAAc,CAACvM,KAAf,CAAqB,IAArB,EAA2B,EAA3B,CAAhB;AACAwM,MAAAA,OAAO,CAAC/I,OAAR,CAAiBkI,MAAD,IAAaA,MAAM,CAACL,GAAP,GAAa,IAA1C;AACA,aAAOkB,OAAP;AACD,KAJD;;AAMA3L,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAACwO,YAAP,CAAoB3M,SAA1C,EAAqD,MAArD,EAA6D;AAC3DlG,MAAAA,GAAG,GAAG;AACJ,YAAI,KAAK2R,KAAL,KAAelI,SAAnB,EAA8B;AAC5B,cAAI,KAAKU,KAAL,CAAWiD,IAAX,KAAoB,OAAxB,EAAiC;AAC/B,iBAAKuE,KAAL,GAAa,KAAKE,GAAL,CAASD,gBAAT,CAA0B,KAAKzH,KAA/B,CAAb;AACD,WAFD,MAEO;AACL,iBAAKwH,KAAL,GAAa,IAAb;AACD;AACF;;AACD,eAAO,KAAKA,KAAZ;AACD;;AAV0D,KAA7D;AAYD;AACF;;AAED,SAASqB,YAAT,CAAsB3O,MAAtB,EAA8B;AAC5B,MAAI,CAACA,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD;;AAED,QAAMiN,YAAY,GAAG5O,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAAxD;;AACA7O,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAAnC,GAA8C,SAASA,QAAT,GAAoB;AAChE,UAAM,CAACC,QAAD,EAAWC,MAAX,EAAmBC,KAAnB,IAA4B7M,SAAlC,CADgE;AAIhE;;AACA,QAAIA,SAAS,CAACtF,MAAV,GAAmB,CAAnB,IAAwB,OAAOiS,QAAP,KAAoB,UAAhD,EAA4D;AAC1D,aAAOF,YAAY,CAAC1M,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD,KAP+D;AAUhE;;;AACA,QACEyM,YAAY,CAAC/R,MAAb,KAAwB,CAAxB,KACCsF,SAAS,CAACtF,MAAV,KAAqB,CAArB,IAA0B,OAAOiS,QAAP,KAAoB,UAD/C,CADF,EAGE;AACA,aAAOF,YAAY,CAAC1M,KAAb,CAAmB,IAAnB,EAAyB,EAAzB,CAAP;AACD;;AAED,UAAM+M,eAAe,GAAG,UAAUnQ,QAAV,EAAoB;AAC1C,YAAMoQ,cAAc,GAAG,EAAvB;AACA,YAAMC,OAAO,GAAGrQ,QAAQ,CAACkF,MAAT,EAAhB;AACAmL,MAAAA,OAAO,CAACxJ,OAAR,CAAiByJ,MAAD,IAAY;AAC1B,cAAMC,aAAa,GAAG;AACpB3J,UAAAA,EAAE,EAAE0J,MAAM,CAAC1J,EADS;AAEpB4J,UAAAA,SAAS,EAAEF,MAAM,CAACE,SAFE;AAGpBvT,UAAAA,IAAI,EACF;AACEwT,YAAAA,cAAc,EAAE,iBADlB;AAEEC,YAAAA,eAAe,EAAE;AAFnB,YAGEJ,MAAM,CAACrT,IAHT,KAGkBqT,MAAM,CAACrT;AAPP,SAAtB;AASAqT,QAAAA,MAAM,CAACK,KAAP,GAAe9J,OAAf,CAAwBjL,IAAD,IAAU;AAC/B2U,UAAAA,aAAa,CAAC3U,IAAD,CAAb,GAAsB0U,MAAM,CAACM,IAAP,CAAYhV,IAAZ,CAAtB;AACD,SAFD;AAGAwU,QAAAA,cAAc,CAACG,aAAa,CAAC3J,EAAf,CAAd,GAAmC2J,aAAnC;AACD,OAdD;AAgBA,aAAOH,cAAP;AACD,KApBD,CAlBgE;;;AAyChE,UAAMS,YAAY,GAAG,UAAUpK,KAAV,EAAiB;AACpC,aAAO,IAAI/C,GAAJ,CAAQO,MAAM,CAACC,IAAP,CAAYuC,KAAZ,EAAmBhL,GAAnB,CAAwBiB,GAAD,IAAS,CAACA,GAAD,EAAM+J,KAAK,CAAC/J,GAAD,CAAX,CAAhC,CAAR,CAAP;AACD,KAFD;;AAIA,QAAI2G,SAAS,CAACtF,MAAV,IAAoB,CAAxB,EAA2B;AACzB,YAAM+S,uBAAuB,GAAG,UAAU9Q,QAAV,EAAoB;AAClDiQ,QAAAA,MAAM,CAACY,YAAY,CAACV,eAAe,CAACnQ,QAAD,CAAhB,CAAb,CAAN;AACD,OAFD;;AAIA,aAAO8P,YAAY,CAAC1M,KAAb,CAAmB,IAAnB,EAAyB,CAAC0N,uBAAD,EAA0Bd,QAA1B,CAAzB,CAAP;AACD,KAnD+D;;;AAsDhE,WAAO,IAAIlQ,OAAJ,CAAY,CAACQ,OAAD,EAAUP,MAAV,KAAqB;AACtC+P,MAAAA,YAAY,CAAC1M,KAAb,CAAmB,IAAnB,EAAyB,CACvB,UAAUpD,QAAV,EAAoB;AAClBM,QAAAA,OAAO,CAACuQ,YAAY,CAACV,eAAe,CAACnQ,QAAD,CAAhB,CAAb,CAAP;AACD,OAHsB,EAIvBD,MAJuB,CAAzB;AAMD,KAPM,EAOJ8J,IAPI,CAOCoG,MAPD,EAOSC,KAPT,CAAP;AAQD,GA9DD;AA+DD;;AAED,SAASa,0BAAT,CAAoC7P,MAApC,EAA4C;AAC1C,MACE,EACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA3B,MAAM,CAACwO,YAFP,IAGAxO,MAAM,CAAC8P,cAJT,CADF,EAOE;AACA;AACD,GAVyC;;;AAa1C,MAAI,EAAE,cAAc9P,MAAM,CAACwO,YAAP,CAAoB3M,SAApC,CAAJ,EAAoD;AAClD,UAAM4M,cAAc,GAAGzO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAA1D;;AACA,QAAIgB,cAAJ,EAAoB;AAClBzO,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAAnC,GAAgD,SAASA,UAAT,GAAsB;AACpE,cAAMiB,OAAO,GAAGD,cAAc,CAACvM,KAAf,CAAqB,IAArB,EAA2B,EAA3B,CAAhB;AACAwM,QAAAA,OAAO,CAAC/I,OAAR,CAAiBkI,MAAD,IAAaA,MAAM,CAACL,GAAP,GAAa,IAA1C;AACA,eAAOkB,OAAP;AACD,OAJD;AAKD;;AAED,UAAMf,YAAY,GAAG3N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAxD;;AACA,QAAID,YAAJ,EAAkB;AAChB3N,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,GAAoB;AAChE,cAAMC,MAAM,GAAGF,YAAY,CAACzL,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAf;AACA0L,QAAAA,MAAM,CAACL,GAAP,GAAa,IAAb;AACA,eAAOK,MAAP;AACD,OAJD;AAKD;;AACD7N,IAAAA,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8BgN,QAA9B,GAAyC,SAASA,QAAT,GAAoB;AAC3D,YAAMhB,MAAM,GAAG,IAAf;AACA,aAAO,KAAKL,GAAL,CAASqB,QAAT,GAAoBlG,IAApB,CAA0B3E,MAAD;AAC9B;AACR;AACA;AACA;AACQ6B,MAAAA,WAAW,CAAC7B,MAAD,EAAS6J,MAAM,CAAC/H,KAAhB,EAAuB,IAAvB,CALN,CAAP;AAOD,KATD;AAUD,GAzCyC;;;AA4C1C,MAAI,EAAE,cAAc9F,MAAM,CAAC8P,cAAP,CAAsBjO,SAAtC,CAAJ,EAAsD;AACpD,UAAMkO,gBAAgB,GAAG/P,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAA5D;;AACA,QAAImD,gBAAJ,EAAsB;AACpB/P,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAAnC,GACE,SAASA,YAAT,GAAwB;AACtB,cAAMoD,SAAS,GAAGD,gBAAgB,CAAC7N,KAAjB,CAAuB,IAAvB,EAA6B,EAA7B,CAAlB;AACA8N,QAAAA,SAAS,CAACrK,OAAV,CAAmBgH,QAAD,IAAeA,QAAQ,CAACa,GAAT,GAAe,IAAhD;AACA,eAAOwC,SAAP;AACD,OALH;AAMD;;AACDxO,IAAAA,uBAAuB,CAACxB,MAAD,EAAS,OAAT,EAAmB7C,CAAD,IAAO;AAC9CA,MAAAA,CAAC,CAACwP,QAAF,CAAWa,GAAX,GAAiBrQ,CAAC,CAAC8S,UAAnB;AACA,aAAO9S,CAAP;AACD,KAHsB,CAAvB;;AAIA6C,IAAAA,MAAM,CAAC8P,cAAP,CAAsBjO,SAAtB,CAAgCgN,QAAhC,GAA2C,SAASA,QAAT,GAAoB;AAC7D,YAAMlC,QAAQ,GAAG,IAAjB;AACA,aAAO,KAAKa,GAAL,CACJqB,QADI,GAEJlG,IAFI,CAEE3E,MAAD,IAAY6B,WAAW,CAAC7B,MAAD,EAAS2I,QAAQ,CAAC7G,KAAlB,EAAyB,KAAzB,CAFxB,CAAP;AAGD,KALD;AAMD;;AAED,MACE,EACE,cAAc9F,MAAM,CAACwO,YAAP,CAAoB3M,SAAlC,IACA,cAAc7B,MAAM,CAAC8P,cAAP,CAAsBjO,SAFtC,CADF,EAKE;AACA;AACD,GAzEyC;;;AA4E1C,QAAM+M,YAAY,GAAG5O,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAAxD;;AACA7O,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAAnC,GAA8C,SAASA,QAAT,GAAoB;AAChE,QACE1M,SAAS,CAACtF,MAAV,GAAmB,CAAnB,IACAsF,SAAS,CAAC,CAAD,CAAT,YAAwBnC,MAAM,CAACkQ,gBAFjC,EAGE;AACA,YAAMpK,KAAK,GAAG3D,SAAS,CAAC,CAAD,CAAvB;AACA,UAAI0L,MAAJ;AACA,UAAIlB,QAAJ;AACA,UAAIhO,GAAJ;AACA,WAAK8O,UAAL,GAAkB9H,OAAlB,CAA2B4I,CAAD,IAAO;AAC/B,YAAIA,CAAC,CAACzI,KAAF,KAAYA,KAAhB,EAAuB;AACrB,cAAI+H,MAAJ,EAAY;AACVlP,YAAAA,GAAG,GAAG,IAAN;AACD,WAFD,MAEO;AACLkP,YAAAA,MAAM,GAAGU,CAAT;AACD;AACF;AACF,OARD;AASA,WAAK3B,YAAL,GAAoBjH,OAApB,CAA6BoB,CAAD,IAAO;AACjC,YAAIA,CAAC,CAACjB,KAAF,KAAYA,KAAhB,EAAuB;AACrB,cAAI6G,QAAJ,EAAc;AACZhO,YAAAA,GAAG,GAAG,IAAN;AACD,WAFD,MAEO;AACLgO,YAAAA,QAAQ,GAAG5F,CAAX;AACD;AACF;;AACD,eAAOA,CAAC,CAACjB,KAAF,KAAYA,KAAnB;AACD,OATD;;AAUA,UAAInH,GAAG,IAAKkP,MAAM,IAAIlB,QAAtB,EAAiC;AAC/B,eAAO/N,OAAO,CAACC,MAAR,CACL,IAAIqM,YAAJ,CACE,2DADF,EAEE,oBAFF,CADK,CAAP;AAMD,OAPD,MAOO,IAAI2C,MAAJ,EAAY;AACjB,eAAOA,MAAM,CAACgB,QAAP,EAAP;AACD,OAFM,MAEA,IAAIlC,QAAJ,EAAc;AACnB,eAAOA,QAAQ,CAACkC,QAAT,EAAP;AACD;;AACD,aAAOjQ,OAAO,CAACC,MAAR,CACL,IAAIqM,YAAJ,CACE,+CADF,EAEE,oBAFF,CADK,CAAP;AAMD;;AACD,WAAO0D,YAAY,CAAC1M,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD,GAhDD;AAiDD;;AAED,SAASgO,iCAAT,CAA2CnQ,MAA3C,EAAmD;AACjD;AACA;AACA;AACAA,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuO,eAAnC,GACE,SAASA,eAAT,GAA2B;AACzB,SAAKC,oBAAL,GAA4B,KAAKA,oBAAL,IAA6B,EAAzD;AACA,WAAOtN,MAAM,CAACC,IAAP,CAAY,KAAKqN,oBAAjB,EAAuC9V,GAAvC,CACJ+V,QAAD,IAAc,KAAKD,oBAAL,CAA0BC,QAA1B,EAAoC,CAApC,CADT,CAAP;AAGD,GANH;;AAQA,QAAM3C,YAAY,GAAG3N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAxD;;AACA5N,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,CAC5C9H,KAD4C,EAE5C+E,MAF4C,EAG5C;AACA,QAAI,CAACA,MAAL,EAAa;AACX,aAAO8C,YAAY,CAACzL,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD;;AACD,SAAKkO,oBAAL,GAA4B,KAAKA,oBAAL,IAA6B,EAAzD;AAEA,UAAMxC,MAAM,GAAGF,YAAY,CAACzL,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAf;;AACA,QAAI,CAAC,KAAKkO,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,CAAL,EAA2C;AACzC,WAAK2K,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,IAAuC,CAACmF,MAAD,EAASgD,MAAT,CAAvC;AACD,KAFD,MAEO,IAAI,KAAKwC,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,EAAqCuI,OAArC,CAA6CJ,MAA7C,MAAyD,CAAC,CAA9D,EAAiE;AACtE,WAAKwC,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,EAAqCU,IAArC,CAA0CyH,MAA1C;AACD;;AACD,WAAOA,MAAP;AACD,GAhBD;;AAkBA,QAAMM,aAAa,GAAGnO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAzD;;AACApO,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAnC,GAA+C,SAASA,SAAT,CAAmBvD,MAAnB,EAA2B;AACxE,SAAKwF,oBAAL,GAA4B,KAAKA,oBAAL,IAA6B,EAAzD;AAEAxF,IAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA4BG,KAAD,IAAW;AACpC,YAAMyK,aAAa,GAAG,KAAK9C,UAAL,GAAkBxE,IAAlB,CAAwBsF,CAAD,IAAOA,CAAC,CAACzI,KAAF,KAAYA,KAA1C,CAAtB;;AACA,UAAIyK,aAAJ,EAAmB;AACjB,cAAM,IAAIrF,YAAJ,CAAiB,uBAAjB,EAA0C,oBAA1C,CAAN;AACD;AACF,KALD;AAMA,UAAMsF,eAAe,GAAG,KAAK/C,UAAL,EAAxB;AACAU,IAAAA,aAAa,CAACjM,KAAd,CAAoB,IAApB,EAA0BC,SAA1B;AACA,UAAMsO,UAAU,GAAG,KAAKhD,UAAL,GAAkB5E,MAAlB,CAChB6H,SAAD,IAAeF,eAAe,CAACvC,OAAhB,CAAwByC,SAAxB,MAAuC,CAAC,CADtC,CAAnB;AAGA,SAAKL,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,IAAuC,CAACmF,MAAD,EAASnD,MAAT,CAAgB+I,UAAhB,CAAvC;AACD,GAfD;;AAiBA,QAAMpC,gBAAgB,GAAGrO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAA5D;;AACAtO,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAAnC,GAAkD,SAASA,YAAT,CAChDzD,MADgD,EAEhD;AACA,SAAKwF,oBAAL,GAA4B,KAAKA,oBAAL,IAA6B,EAAzD;AACA,WAAO,KAAKA,oBAAL,CAA0BxF,MAAM,CAACnF,EAAjC,CAAP;AACA,WAAO2I,gBAAgB,CAACnM,KAAjB,CAAuB,IAAvB,EAA6BC,SAA7B,CAAP;AACD,GAND;;AAQA,QAAM2L,eAAe,GAAG9N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkM,WAA3D;;AACA/N,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkM,WAAnC,GAAiD,SAASA,WAAT,CAC/CF,MAD+C,EAE/C;AACA,SAAKwC,oBAAL,GAA4B,KAAKA,oBAAL,IAA6B,EAAzD;;AACA,QAAIxC,MAAJ,EAAY;AACV9K,MAAAA,MAAM,CAACC,IAAP,CAAY,KAAKqN,oBAAjB,EAAuC1K,OAAvC,CAAgD2K,QAAD,IAAc;AAC3D,cAAMtC,GAAG,GAAG,KAAKqC,oBAAL,CAA0BC,QAA1B,EAAoCrC,OAApC,CAA4CJ,MAA5C,CAAZ;;AACA,YAAIG,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,eAAKqC,oBAAL,CAA0BC,QAA1B,EAAoCpC,MAApC,CAA2CF,GAA3C,EAAgD,CAAhD;AACD;;AACD,YAAI,KAAKqC,oBAAL,CAA0BC,QAA1B,EAAoCzT,MAApC,KAA+C,CAAnD,EAAsD;AACpD,iBAAO,KAAKwT,oBAAL,CAA0BC,QAA1B,CAAP;AACD;AACF,OARD;AASD;;AACD,WAAOxC,eAAe,CAAC5L,KAAhB,CAAsB,IAAtB,EAA4BC,SAA5B,CAAP;AACD,GAhBD;AAiBD;;AAED,SAASwO,uBAAT,CAAiC3Q,MAAjC,EAAyCyG,cAAzC,EAAyD;AACvD,MAAI,CAACzG,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD,GAHsD;;;AAKvD,MACE3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,IACAnH,cAAc,CAACvC,OAAf,IAA0B,EAF5B,EAGE;AACA,WAAOiM,iCAAiC,CAACnQ,MAAD,CAAxC;AACD,GAVsD;AAavD;;;AACA,QAAM4Q,mBAAmB,GACvB5Q,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuO,eADrC;;AAEApQ,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuO,eAAnC,GACE,SAASA,eAAT,GAA2B;AACzB,UAAMS,aAAa,GAAGD,mBAAmB,CAAC1O,KAApB,CAA0B,IAA1B,CAAtB;AACA,SAAK4O,eAAL,GAAuB,KAAKA,eAAL,IAAwB,EAA/C;AACA,WAAOD,aAAa,CAACtW,GAAd,CAAmBsQ,MAAD,IAAY,KAAKiG,eAAL,CAAqBjG,MAAM,CAACnF,EAA5B,CAA9B,CAAP;AACD,GALH;;AAOA,QAAMyI,aAAa,GAAGnO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAzD;;AACApO,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAnC,GAA+C,SAASA,SAAT,CAAmBvD,MAAnB,EAA2B;AACxE,SAAKkG,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACA,SAAKD,eAAL,GAAuB,KAAKA,eAAL,IAAwB,EAA/C;AAEAjG,IAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA4BG,KAAD,IAAW;AACpC,YAAMyK,aAAa,GAAG,KAAK9C,UAAL,GAAkBxE,IAAlB,CAAwBsF,CAAD,IAAOA,CAAC,CAACzI,KAAF,KAAYA,KAA1C,CAAtB;;AACA,UAAIyK,aAAJ,EAAmB;AACjB,cAAM,IAAIrF,YAAJ,CAAiB,uBAAjB,EAA0C,oBAA1C,CAAN;AACD;AACF,KALD,EAJwE;AAWxE;;AACA,QAAI,CAAC,KAAK4F,eAAL,CAAqBjG,MAAM,CAACnF,EAA5B,CAAL,EAAsC;AACpC,YAAMsL,SAAS,GAAG,IAAIhR,MAAM,CAACkM,WAAX,CAAuBrB,MAAM,CAACG,SAAP,EAAvB,CAAlB;AACA,WAAK+F,QAAL,CAAclG,MAAM,CAACnF,EAArB,IAA2BsL,SAA3B;AACA,WAAKF,eAAL,CAAqBE,SAAS,CAACtL,EAA/B,IAAqCmF,MAArC;AACAA,MAAAA,MAAM,GAAGmG,SAAT;AACD;;AACD7C,IAAAA,aAAa,CAACjM,KAAd,CAAoB,IAApB,EAA0B,CAAC2I,MAAD,CAA1B;AACD,GAnBD;;AAqBA,QAAMwD,gBAAgB,GAAGrO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAA5D;;AACAtO,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAAnC,GAAkD,SAASA,YAAT,CAChDzD,MADgD,EAEhD;AACA,SAAKkG,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACA,SAAKD,eAAL,GAAuB,KAAKA,eAAL,IAAwB,EAA/C;AAEAzC,IAAAA,gBAAgB,CAACnM,KAAjB,CAAuB,IAAvB,EAA6B,CAAC,KAAK6O,QAAL,CAAclG,MAAM,CAACnF,EAArB,KAA4BmF,MAA7B,CAA7B;AACA,WAAO,KAAKiG,eAAL,CACL,KAAKC,QAAL,CAAclG,MAAM,CAACnF,EAArB,IAA2B,KAAKqL,QAAL,CAAclG,MAAM,CAACnF,EAArB,EAAyBA,EAApD,GAAyDmF,MAAM,CAACnF,EAD3D,CAAP;AAGA,WAAO,KAAKqL,QAAL,CAAclG,MAAM,CAACnF,EAArB,CAAP;AACD,GAXD;;AAaA1F,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,CAC5C9H,KAD4C,EAE5C+E,MAF4C,EAG5C;AACA,QAAI,KAAKoG,cAAL,KAAwB,QAA5B,EAAsC;AACpC,YAAM,IAAI/F,YAAJ,CACJ,qDADI,EAEJ,mBAFI,CAAN;AAID;;AACD,UAAM8B,OAAO,GAAG,GAAGpQ,KAAH,CAASkI,IAAT,CAAc3C,SAAd,EAAyB,CAAzB,CAAhB;;AACA,QACE6K,OAAO,CAACnQ,MAAR,KAAmB,CAAnB,IACA,CAACmQ,OAAO,CAAC,CAAD,CAAP,CAAWhC,SAAX,GAAuB/B,IAAvB,CAA6BiI,CAAD,IAAOA,CAAC,KAAKpL,KAAzC,CAFH,EAGE;AACA;AACA;AACA,YAAM,IAAIoF,YAAJ,CACJ,6DACE,uDAFE,EAGJ,mBAHI,CAAN;AAKD;;AAED,UAAMqF,aAAa,GAAG,KAAK9C,UAAL,GAAkBxE,IAAlB,CAAwBsF,CAAD,IAAOA,CAAC,CAACzI,KAAF,KAAYA,KAA1C,CAAtB;;AACA,QAAIyK,aAAJ,EAAmB;AACjB,YAAM,IAAIrF,YAAJ,CAAiB,uBAAjB,EAA0C,oBAA1C,CAAN;AACD;;AAED,SAAK6F,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACA,SAAKD,eAAL,GAAuB,KAAKA,eAAL,IAAwB,EAA/C;AACA,UAAMK,SAAS,GAAG,KAAKJ,QAAL,CAAclG,MAAM,CAACnF,EAArB,CAAlB;;AACA,QAAIyL,SAAJ,EAAe;AACb;AACA;AACA;AACA;AACAA,MAAAA,SAAS,CAACvD,QAAV,CAAmB9H,KAAnB,EALa;;AAQblH,MAAAA,OAAO,CAACQ,OAAR,GAAkBuJ,IAAlB,CAAuB,MAAM;AAC3B,aAAKsE,aAAL,CAAmB,IAAIH,KAAJ,CAAU,mBAAV,CAAnB;AACD,OAFD;AAGD,KAXD,MAWO;AACL,YAAMkE,SAAS,GAAG,IAAIhR,MAAM,CAACkM,WAAX,CAAuB,CAACpG,KAAD,CAAvB,CAAlB;AACA,WAAKiL,QAAL,CAAclG,MAAM,CAACnF,EAArB,IAA2BsL,SAA3B;AACA,WAAKF,eAAL,CAAqBE,SAAS,CAACtL,EAA/B,IAAqCmF,MAArC;AACA,WAAKuD,SAAL,CAAe4C,SAAf;AACD;;AACD,WAAO,KAAKvD,UAAL,GAAkBxE,IAAlB,CAAwBsF,CAAD,IAAOA,CAAC,CAACzI,KAAF,KAAYA,KAA1C,CAAP;AACD,GAlDD,CA3DuD;AAgHvD;;;AACA,WAASsL,uBAAT,CAAiChE,EAAjC,EAAqCiE,WAArC,EAAkD;AAChD,QAAIC,GAAG,GAAGD,WAAW,CAACC,GAAtB;AACAvO,IAAAA,MAAM,CAACC,IAAP,CAAYoK,EAAE,CAAC0D,eAAH,IAAsB,EAAlC,EAAsCnL,OAAtC,CAA+C4L,UAAD,IAAgB;AAC5D,YAAMC,cAAc,GAAGpE,EAAE,CAAC0D,eAAH,CAAmBS,UAAnB,CAAvB;AACA,YAAME,cAAc,GAAGrE,EAAE,CAAC2D,QAAH,CAAYS,cAAc,CAAC9L,EAA3B,CAAvB;AACA4L,MAAAA,GAAG,GAAGA,GAAG,CAACI,OAAJ,CAAY,IAAIC,MAAJ,CAAWF,cAAc,CAAC/L,EAA1B,EAA8B,GAA9B,CAAZ,EAAgD8L,cAAc,CAAC9L,EAA/D,CAAN;AACD,KAJD;AAKA,WAAO,IAAIkM,qBAAJ,CAA0B;AAC/B7V,MAAAA,IAAI,EAAEsV,WAAW,CAACtV,IADa;AAE/BuV,MAAAA;AAF+B,KAA1B,CAAP;AAID;;AACD,WAASO,uBAAT,CAAiCzE,EAAjC,EAAqCiE,WAArC,EAAkD;AAChD,QAAIC,GAAG,GAAGD,WAAW,CAACC,GAAtB;AACAvO,IAAAA,MAAM,CAACC,IAAP,CAAYoK,EAAE,CAAC0D,eAAH,IAAsB,EAAlC,EAAsCnL,OAAtC,CAA+C4L,UAAD,IAAgB;AAC5D,YAAMC,cAAc,GAAGpE,EAAE,CAAC0D,eAAH,CAAmBS,UAAnB,CAAvB;AACA,YAAME,cAAc,GAAGrE,EAAE,CAAC2D,QAAH,CAAYS,cAAc,CAAC9L,EAA3B,CAAvB;AACA4L,MAAAA,GAAG,GAAGA,GAAG,CAACI,OAAJ,CAAY,IAAIC,MAAJ,CAAWH,cAAc,CAAC9L,EAA1B,EAA8B,GAA9B,CAAZ,EAAgD+L,cAAc,CAAC/L,EAA/D,CAAN;AACD,KAJD;AAKA,WAAO,IAAIkM,qBAAJ,CAA0B;AAC/B7V,MAAAA,IAAI,EAAEsV,WAAW,CAACtV,IADa;AAE/BuV,MAAAA;AAF+B,KAA1B,CAAP;AAID;;AACD,GAAC,aAAD,EAAgB,cAAhB,EAAgC3L,OAAhC,CAAwC,UAAUtH,MAAV,EAAkB;AACxD,UAAMyT,YAAY,GAAG9R,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,CAArB;AACA,UAAM0T,SAAS,GAAG;AAChB,OAAC1T,MAAD,IAAW;AACT,cAAM2T,IAAI,GAAG7P,SAAb;AACA,cAAM8P,YAAY,GAChB9P,SAAS,CAACtF,MAAV,IAAoB,OAAOsF,SAAS,CAAC,CAAD,CAAhB,KAAwB,UAD9C;;AAEA,YAAI8P,YAAJ,EAAkB;AAChB,iBAAOH,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyB,CAC7BmP,WAAD,IAAiB;AACf,kBAAMa,IAAI,GAAGd,uBAAuB,CAAC,IAAD,EAAOC,WAAP,CAApC;AACAW,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd,EAAoB,CAACgQ,IAAD,CAApB;AACD,WAJ6B,EAK7BvT,GAAD,IAAS;AACP,gBAAIqT,IAAI,CAAC,CAAD,CAAR,EAAa;AACXA,cAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd,EAAoBvD,GAApB;AACD;AACF,WAT6B,EAU9BwD,SAAS,CAAC,CAAD,CAVqB,CAAzB,CAAP;AAYD;;AACD,eAAO2P,YAAY,CAChB5P,KADI,CACE,IADF,EACQC,SADR,EAEJwG,IAFI,CAEE0I,WAAD,IAAiBD,uBAAuB,CAAC,IAAD,EAAOC,WAAP,CAFzC,CAAP;AAGD;;AAtBe,KAAlB;AAwBArR,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,IAA6C0T,SAAS,CAAC1T,MAAD,CAAtD;AACD,GA3BD;AA6BA,QAAM8T,uBAAuB,GAC3BnS,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuQ,mBADrC;;AAEApS,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuQ,mBAAnC,GACE,SAASA,mBAAT,GAA+B;AAC7B,QAAI,CAACjQ,SAAS,CAACtF,MAAX,IAAqB,CAACsF,SAAS,CAAC,CAAD,CAAT,CAAapG,IAAvC,EAA6C;AAC3C,aAAOoW,uBAAuB,CAACjQ,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAP;AACD;;AACDA,IAAAA,SAAS,CAAC,CAAD,CAAT,GAAe0P,uBAAuB,CAAC,IAAD,EAAO1P,SAAS,CAAC,CAAD,CAAhB,CAAtC;AACA,WAAOgQ,uBAAuB,CAACjQ,KAAxB,CAA8B,IAA9B,EAAoCC,SAApC,CAAP;AACD,GAPH,CAxKuD;;;AAmLvD,QAAMkQ,oBAAoB,GAAGtP,MAAM,CAACuP,wBAAP,CAC3BtS,MAAM,CAAC2B,iBAAP,CAAyBE,SADE,EAE3B,kBAF2B,CAA7B;AAIAkB,EAAAA,MAAM,CAACE,cAAP,CACEjD,MAAM,CAAC2B,iBAAP,CAAyBE,SAD3B,EAEE,kBAFF,EAGE;AACElG,IAAAA,GAAG,GAAG;AACJ,YAAM0V,WAAW,GAAGgB,oBAAoB,CAAC1W,GAArB,CAAyBuG,KAAzB,CAA+B,IAA/B,CAApB;;AACA,UAAImP,WAAW,CAACtV,IAAZ,KAAqB,EAAzB,EAA6B;AAC3B,eAAOsV,WAAP;AACD;;AACD,aAAOD,uBAAuB,CAAC,IAAD,EAAOC,WAAP,CAA9B;AACD;;AAPH,GAHF;;AAcArR,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkM,WAAnC,GAAiD,SAASA,WAAT,CAC/CF,MAD+C,EAE/C;AACA,QAAI,KAAKoD,cAAL,KAAwB,QAA5B,EAAsC;AACpC,YAAM,IAAI/F,YAAJ,CACJ,qDADI,EAEJ,mBAFI,CAAN;AAID,KAND;AAQA;;;AACA,QAAI,CAAC2C,MAAM,CAACL,GAAZ,EAAiB;AACf,YAAM,IAAItC,YAAJ,CACJ,iDACE,4CAFE,EAGJ,WAHI,CAAN;AAKD;;AACD,UAAMqH,OAAO,GAAG1E,MAAM,CAACL,GAAP,KAAe,IAA/B;;AACA,QAAI,CAAC+E,OAAL,EAAc;AACZ,YAAM,IAAIrH,YAAJ,CACJ,4CADI,EAEJ,oBAFI,CAAN;AAID,KAtBD;;;AAyBA,SAAK6F,QAAL,GAAgB,KAAKA,QAAL,IAAiB,EAAjC;AACA,QAAIlG,MAAJ;AACA9H,IAAAA,MAAM,CAACC,IAAP,CAAY,KAAK+N,QAAjB,EAA2BpL,OAA3B,CAAoC6M,QAAD,IAAc;AAC/C,YAAMC,QAAQ,GAAG,KAAK1B,QAAL,CAAcyB,QAAd,EACdxH,SADc,GAEd/B,IAFc,CAERnD,KAAD,IAAW+H,MAAM,CAAC/H,KAAP,KAAiBA,KAFnB,CAAjB;;AAGA,UAAI2M,QAAJ,EAAc;AACZ5H,QAAAA,MAAM,GAAG,KAAKkG,QAAL,CAAcyB,QAAd,CAAT;AACD;AACF,KAPD;;AASA,QAAI3H,MAAJ,EAAY;AACV,UAAIA,MAAM,CAACG,SAAP,GAAmBnO,MAAnB,KAA8B,CAAlC,EAAqC;AACnC;AACA;AACA,aAAKyR,YAAL,CAAkB,KAAKwC,eAAL,CAAqBjG,MAAM,CAACnF,EAA5B,CAAlB;AACD,OAJD,MAIO;AACL;AACAmF,QAAAA,MAAM,CAACkD,WAAP,CAAmBF,MAAM,CAAC/H,KAA1B;AACD;;AACD,WAAKmH,aAAL,CAAmB,IAAIH,KAAJ,CAAU,mBAAV,CAAnB;AACD;AACF,GAjDD;AAkDD;;AAED,SAAS4F,oBAAT,CAA8B1S,MAA9B,EAAsCyG,cAAtC,EAAsD;AACpD,MAAI,CAACzG,MAAM,CAAC2B,iBAAR,IAA6B3B,MAAM,CAACsE,uBAAxC,EAAiE;AAC/D;AACAtE,IAAAA,MAAM,CAAC2B,iBAAP,GAA2B3B,MAAM,CAACsE,uBAAlC;AACD;;AACD,MAAI,CAACtE,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD,GAPmD;;;AAUpD,MAAI8E,cAAc,CAACvC,OAAf,GAAyB,EAA7B,EAAiC;AAC/B,KAAC,qBAAD,EAAwB,sBAAxB,EAAgD,iBAAhD,EAAmEyB,OAAnE,CACE,UAAUtH,MAAV,EAAkB;AAChB,YAAMyT,YAAY,GAAG9R,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,CAArB;AACA,YAAM0T,SAAS,GAAG;AAChB,SAAC1T,MAAD,IAAW;AACT8D,UAAAA,SAAS,CAAC,CAAD,CAAT,GAAe,KACb9D,MAAM,KAAK,iBAAX,GACI2B,MAAM,CAAC2S,eADX,GAEI3S,MAAM,CAAC4R,qBAHE,EAIbzP,SAAS,CAAC,CAAD,CAJI,CAAf;AAKA,iBAAO2P,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD;;AARe,OAAlB;AAUAnC,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,IAA6C0T,SAAS,CAAC1T,MAAD,CAAtD;AACD,KAdH;AAgBD;AACF;;;AAGD,SAASuU,oBAAT,CAA8B5S,MAA9B,EAAsCyG,cAAtC,EAAsD;AACpDjF,EAAAA,uBAAuB,CAACxB,MAAD,EAAS,mBAAT,EAA+B7C,CAAD,IAAO;AAC1D,UAAMiQ,EAAE,GAAGjQ,CAAC,CAAC0V,MAAb;;AACA,QACEpM,cAAc,CAACvC,OAAf,GAAyB,EAAzB,IACCkJ,EAAE,CAAC0F,gBAAH,IAAuB1F,EAAE,CAAC0F,gBAAH,GAAsBC,YAAtB,KAAuC,QAFjE,EAGE;AACA,UAAI3F,EAAE,CAAC6D,cAAH,KAAsB,QAA1B,EAAoC;AAClC;AACD;AACF;;AACD,WAAO9T,CAAP;AACD,GAXsB,CAAvB;AAYD;;AAED,IAAI6V,UAAU,gBAAiBjQ,MAAM,CAACkQ,MAAP,CAAc;AAC3CC,EAAAA,SAAS,EAAE,IADgC;AAE3CjH,EAAAA,eAAe,EAAEA,eAF0B;AAG3CkH,EAAAA,WAAW,EAAE/G,aAH8B;AAI3Cc,EAAAA,sBAAsB,EAAEA,sBAJmB;AAK3CyB,EAAAA,YAAY,EAAEA,YAL6B;AAM3CkB,EAAAA,0BAA0B,EAAEA,0BANe;AAO3CM,EAAAA,iCAAiC,EAAEA,iCAPQ;AAQ3CQ,EAAAA,uBAAuB,EAAEA,uBARkB;AAS3CyC,EAAAA,kBAAkB,EAAEV,oBATuB;AAU3CE,EAAAA,oBAAoB,EAAEA,oBAVqB;AAW3CS,EAAAA,gBAAgB,EAAE7M,kBAXyB;AAY3C8M,EAAAA,mBAAmB,EAAEnI;AAZsB,CAAd,CAA/B;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASoI,kBAAT,CAA4BC,UAA5B,EAAwCC,WAAxC,EAAqD;AACnD,MAAIC,OAAO,GAAG,KAAd;AACAF,EAAAA,UAAU,GAAGhV,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAe+U,UAAf,CAAX,CAAb;AACA,SAAOA,UAAU,CAAC3K,MAAX,CAAmB8K,MAAD,IAAY;AACnC,QAAIA,MAAM,KAAKA,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACE,GAA3B,CAAV,EAA2C;AACzC,UAAID,IAAI,GAAGD,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACE,GAAjC;;AACA,UAAIF,MAAM,CAACE,GAAP,IAAc,CAACF,MAAM,CAACC,IAA1B,EAAgC;AAC9BjQ,QAAAA,UAAU,CAAC,kBAAD,EAAqB,mBAArB,CAAV;AACD;;AACD,YAAMmQ,QAAQ,GAAG,OAAOF,IAAP,KAAgB,QAAjC;;AACA,UAAIE,QAAJ,EAAc;AACZF,QAAAA,IAAI,GAAG,CAACA,IAAD,CAAP;AACD;;AACDA,MAAAA,IAAI,GAAGA,IAAI,CAAC/K,MAAL,CAAagL,GAAD,IAAS;AAC1B;AACA,YAAIA,GAAG,CAAC5F,OAAJ,CAAY,OAAZ,MAAyB,CAA7B,EAAgC;AAC9B,iBAAO,KAAP;AACD;;AAED,cAAM8F,SAAS,GACbF,GAAG,CAACG,UAAJ,CAAe,MAAf,KACA,CAACH,GAAG,CAACG,UAAJ,CAAe,QAAf,CADD,IAEAH,GAAG,CAACxK,QAAJ,CAAa,eAAb,CAHF;;AAIA,YAAI0K,SAAS,IAAI,CAACL,OAAlB,EAA2B;AACzBA,UAAAA,OAAO,GAAG,IAAV;AACA,iBAAO,IAAP;AACD;;AACD,eAAOK,SAAS,IAAI,CAACL,OAArB;AACD,OAfM,CAAP;AAiBA,aAAOC,MAAM,CAACE,GAAd;AACAF,MAAAA,MAAM,CAACC,IAAP,GAAcE,QAAQ,GAAGF,IAAI,CAAC,CAAD,CAAP,GAAaA,IAAnC;AACA,aAAO,CAAC,CAACA,IAAI,CAAC/W,MAAd;AACD;AACF,GA/BM,CAAP;AAgCD;;AAED,SAASoX,oBAAT,CAA8BC,EAA9B,EAAkC;AAChC,MAAIC,MAAM,GAAG;AAAEC,IAAAA,OAAO,EAAE;AAAX,GAAb;AACA,SAAOF,EAAE,CAACC,MAAD,EAASA,MAAM,CAACC,OAAhB,CAAF,EAA4BD,MAAM,CAACC,OAA1C;AACD;AAED;;;AAEA,IAAI9C,GAAG,GAAG2C,oBAAoB,CAAC,UAAUE,MAAV,EAAkB;AAC/C;AACA,MAAIE,QAAQ,GAAG,EAAf,CAF+C;AAK/C;;AACAA,EAAAA,QAAQ,CAACC,kBAAT,GAA8B,YAAY;AACxC,WAAOC,IAAI,CAACC,MAAL,GAAc3P,QAAd,CAAuB,EAAvB,EAA2B4P,MAA3B,CAAkC,CAAlC,EAAqC,EAArC,CAAP;AACD,GAFD,CAN+C;;;AAW/CJ,EAAAA,QAAQ,CAACK,UAAT,GAAsBL,QAAQ,CAACC,kBAAT,EAAtB,CAX+C;;AAc/CD,EAAAA,QAAQ,CAACM,UAAT,GAAsB,UAAUC,IAAV,EAAgB;AACpC,WAAOA,IAAI,CACRC,IADI,GAEJC,KAFI,CAEE,IAFF,EAGJva,GAHI,CAGA,UAAUwa,IAAV,EAAgB;AACnB,aAAOA,IAAI,CAACF,IAAL,EAAP;AACD,KALI,CAAP;AAMD,GAPD,CAd+C;;;AAuB/CR,EAAAA,QAAQ,CAACW,aAAT,GAAyB,UAAUJ,IAAV,EAAgB;AACvC,QAAIK,KAAK,GAAGL,IAAI,CAACE,KAAL,CAAW,MAAX,CAAZ;AACA,WAAOG,KAAK,CAAC1a,GAAN,CAAU,UAAU2a,IAAV,EAAgBC,KAAhB,EAAuB;AACtC,aAAO,CAACA,KAAK,GAAG,CAAR,GAAY,OAAOD,IAAnB,GAA0BA,IAA3B,EAAiCL,IAAjC,KAA0C,MAAjD;AACD,KAFM,CAAP;AAGD,GALD,CAvB+C;;;AA+B/CR,EAAAA,QAAQ,CAACe,cAAT,GAA0B,UAAUR,IAAV,EAAgB;AACxC,QAAIS,QAAQ,GAAGhB,QAAQ,CAACW,aAAT,CAAuBJ,IAAvB,CAAf;AACA,WAAOS,QAAQ,IAAIA,QAAQ,CAAC,CAAD,CAA3B;AACD,GAHD,CA/B+C;;;AAqC/ChB,EAAAA,QAAQ,CAACiB,gBAAT,GAA4B,UAAUV,IAAV,EAAgB;AAC1C,QAAIS,QAAQ,GAAGhB,QAAQ,CAACW,aAAT,CAAuBJ,IAAvB,CAAf;AACAS,IAAAA,QAAQ,CAACE,KAAT;AACA,WAAOF,QAAP;AACD,GAJD,CArC+C;;;AA4C/ChB,EAAAA,QAAQ,CAACmB,WAAT,GAAuB,UAAUZ,IAAV,EAAgBza,MAAhB,EAAwB;AAC7C,WAAOka,QAAQ,CAACM,UAAT,CAAoBC,IAApB,EAA0B/L,MAA1B,CAAiC,UAAUkM,IAAV,EAAgB;AACtD,aAAOA,IAAI,CAAC9G,OAAL,CAAa9T,MAAb,MAAyB,CAAhC;AACD,KAFM,CAAP;AAGD,GAJD,CA5C+C;AAmD/C;AACA;;;AACAka,EAAAA,QAAQ,CAACoB,cAAT,GAA0B,UAAUV,IAAV,EAAgB;AACxC,QAAIE,KAAJ,CADwC;;AAGxC,QAAIF,IAAI,CAAC9G,OAAL,CAAa,cAAb,MAAiC,CAArC,EAAwC;AACtCgH,MAAAA,KAAK,GAAGF,IAAI,CAACW,SAAL,CAAe,EAAf,EAAmBZ,KAAnB,CAAyB,GAAzB,CAAR;AACD,KAFD,MAEO;AACLG,MAAAA,KAAK,GAAGF,IAAI,CAACW,SAAL,CAAe,EAAf,EAAmBZ,KAAnB,CAAyB,GAAzB,CAAR;AACD;;AAED,QAAIa,SAAS,GAAG;AACdC,MAAAA,UAAU,EAAEX,KAAK,CAAC,CAAD,CADH;AAEdxa,MAAAA,SAAS,EAAE8G,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAFL;AAGdY,MAAAA,QAAQ,EAAEZ,KAAK,CAAC,CAAD,CAAL,CAAS7L,WAAT,EAHI;AAId0M,MAAAA,QAAQ,EAAEvU,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAJJ;AAKdc,MAAAA,EAAE,EAAEd,KAAK,CAAC,CAAD,CALK;AAMde,MAAAA,OAAO,EAAEf,KAAK,CAAC,CAAD,CANA;AAMK;AACnBgB,MAAAA,IAAI,EAAE1U,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAPA;AAQd;AACAlZ,MAAAA,IAAI,EAAEkZ,KAAK,CAAC,CAAD;AATG,KAAhB;;AAYA,SAAK,IAAIja,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGia,KAAK,CAACpY,MAA1B,EAAkC7B,CAAC,IAAI,CAAvC,EAA0C;AACxC,cAAQia,KAAK,CAACja,CAAD,CAAb;AACE,aAAK,OAAL;AACE2a,UAAAA,SAAS,CAACO,cAAV,GAA2BjB,KAAK,CAACja,CAAC,GAAG,CAAL,CAAhC;AACA;;AACF,aAAK,OAAL;AACE2a,UAAAA,SAAS,CAACQ,WAAV,GAAwB5U,QAAQ,CAAC0T,KAAK,CAACja,CAAC,GAAG,CAAL,CAAN,EAAe,EAAf,CAAhC;AACA;;AACF,aAAK,SAAL;AACE2a,UAAAA,SAAS,CAACS,OAAV,GAAoBnB,KAAK,CAACja,CAAC,GAAG,CAAL,CAAzB;AACA;;AACF,aAAK,OAAL;AACE2a,UAAAA,SAAS,CAACU,KAAV,GAAkBpB,KAAK,CAACja,CAAC,GAAG,CAAL,CAAvB,CADF;;AAEE2a,UAAAA,SAAS,CAACW,gBAAV,GAA6BrB,KAAK,CAACja,CAAC,GAAG,CAAL,CAAlC;AACA;;AACF;AACE;AACA2a,UAAAA,SAAS,CAACV,KAAK,CAACja,CAAD,CAAN,CAAT,GAAsBia,KAAK,CAACja,CAAC,GAAG,CAAL,CAA3B;AACA;AAjBJ;AAmBD;;AACD,WAAO2a,SAAP;AACD,GA3CD,CArD+C;;;AAmG/CtB,EAAAA,QAAQ,CAACkC,cAAT,GAA0B,UAAUZ,SAAV,EAAqB;AAC7C,QAAIrE,GAAG,GAAG,EAAV;AACAA,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACC,UAAnB;AACAtE,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAAClb,SAAnB;AACA6W,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACE,QAAV,CAAmBvO,WAAnB,EAAT;AACAgK,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACG,QAAnB;AACAxE,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACK,OAAV,IAAqBL,SAAS,CAACI,EAAxC;AACAzE,IAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACM,IAAnB;AAEA,QAAIla,IAAI,GAAG4Z,SAAS,CAAC5Z,IAArB;AACAuV,IAAAA,GAAG,CAAClL,IAAJ,CAAS,KAAT;AACAkL,IAAAA,GAAG,CAAClL,IAAJ,CAASrK,IAAT;;AACA,QAAIA,IAAI,KAAK,MAAT,IAAmB4Z,SAAS,CAACO,cAA7B,IAA+CP,SAAS,CAACQ,WAA7D,EAA0E;AACxE7E,MAAAA,GAAG,CAAClL,IAAJ,CAAS,OAAT;AACAkL,MAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACO,cAAnB;AACA5E,MAAAA,GAAG,CAAClL,IAAJ,CAAS,OAAT;AACAkL,MAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACQ,WAAnB;AACD;;AACD,QAAIR,SAAS,CAACS,OAAV,IAAqBT,SAAS,CAACE,QAAV,CAAmBzM,WAAnB,OAAqC,KAA9D,EAAqE;AACnEkI,MAAAA,GAAG,CAAClL,IAAJ,CAAS,SAAT;AACAkL,MAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACS,OAAnB;AACD;;AACD,QAAIT,SAAS,CAACW,gBAAV,IAA8BX,SAAS,CAACU,KAA5C,EAAmD;AACjD/E,MAAAA,GAAG,CAAClL,IAAJ,CAAS,OAAT;AACAkL,MAAAA,GAAG,CAAClL,IAAJ,CAASuP,SAAS,CAACW,gBAAV,IAA8BX,SAAS,CAACU,KAAjD;AACD;;AACD,WAAO,eAAe/E,GAAG,CAACkF,IAAJ,CAAS,GAAT,CAAtB;AACD,GA3BD,CAnG+C;AAiI/C;;;AACAnC,EAAAA,QAAQ,CAACoC,eAAT,GAA2B,UAAU1B,IAAV,EAAgB;AACzC,WAAOA,IAAI,CAACN,MAAL,CAAY,EAAZ,EAAgBK,KAAhB,CAAsB,GAAtB,CAAP;AACD,GAFD,CAlI+C;AAuI/C;;;AACAT,EAAAA,QAAQ,CAACqC,WAAT,GAAuB,UAAU3B,IAAV,EAAgB;AACrC,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,CAAZ,EAAeK,KAAf,CAAqB,GAArB,CAAZ;AACA,QAAI6B,MAAM,GAAG;AACXC,MAAAA,WAAW,EAAErV,QAAQ,CAAC0T,KAAK,CAACM,KAAN,EAAD,EAAgB,EAAhB,CADV;;AAAA,KAAb;AAIAN,IAAAA,KAAK,GAAGA,KAAK,CAAC,CAAD,CAAL,CAASH,KAAT,CAAe,GAAf,CAAR;AAEA6B,IAAAA,MAAM,CAACjc,IAAP,GAAcua,KAAK,CAAC,CAAD,CAAnB;AACA0B,IAAAA,MAAM,CAACE,SAAP,GAAmBtV,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAA3B,CATqC;;AAUrC0B,IAAAA,MAAM,CAACG,QAAP,GAAkB7B,KAAK,CAACpY,MAAN,KAAiB,CAAjB,GAAqB0E,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAA7B,GAA8C,CAAhE,CAVqC;;AAYrC0B,IAAAA,MAAM,CAACI,WAAP,GAAqBJ,MAAM,CAACG,QAA5B;AACA,WAAOH,MAAP;AACD,GAdD,CAxI+C;AAyJ/C;;;AACAtC,EAAAA,QAAQ,CAAC2C,WAAT,GAAuB,UAAUC,KAAV,EAAiB;AACtC,QAAIC,EAAE,GAAGD,KAAK,CAACL,WAAf;;AACA,QAAIK,KAAK,CAACE,oBAAN,KAA+B/R,SAAnC,EAA8C;AAC5C8R,MAAAA,EAAE,GAAGD,KAAK,CAACE,oBAAX;AACD;;AACD,QAAIL,QAAQ,GAAGG,KAAK,CAACH,QAAN,IAAkBG,KAAK,CAACF,WAAxB,IAAuC,CAAtD;AACA,WACE,cACAG,EADA,GAEA,GAFA,GAGAD,KAAK,CAACvc,IAHN,GAIA,GAJA,GAKAuc,KAAK,CAACJ,SALN,IAMCC,QAAQ,KAAK,CAAb,GAAiB,MAAMA,QAAvB,GAAkC,EANnC,IAOA,MARF;AAUD,GAhBD,CA1J+C;AA6K/C;AACA;;;AACAzC,EAAAA,QAAQ,CAAC+C,WAAT,GAAuB,UAAUrC,IAAV,EAAgB;AACrC,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,CAAZ,EAAeK,KAAf,CAAqB,GAArB,CAAZ;AACA,WAAO;AACLpP,MAAAA,EAAE,EAAEnE,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CADP;AAELoC,MAAAA,SAAS,EACPpC,KAAK,CAAC,CAAD,CAAL,CAAShH,OAAT,CAAiB,GAAjB,IAAwB,CAAxB,GAA4BgH,KAAK,CAAC,CAAD,CAAL,CAASH,KAAT,CAAe,GAAf,EAAoB,CAApB,CAA5B,GAAqD,UAHlD;AAILwC,MAAAA,GAAG,EAAErC,KAAK,CAAC,CAAD;AAJL,KAAP;AAMD,GARD,CA/K+C;AA0L/C;;;AACAZ,EAAAA,QAAQ,CAACkD,WAAT,GAAuB,UAAUC,eAAV,EAA2B;AAChD,WACE,eACCA,eAAe,CAAC9R,EAAhB,IAAsB8R,eAAe,CAACC,WADvC,KAECD,eAAe,CAACH,SAAhB,IAA6BG,eAAe,CAACH,SAAhB,KAA8B,UAA3D,GACG,MAAMG,eAAe,CAACH,SADzB,GAEG,EAJJ,IAKA,GALA,GAMAG,eAAe,CAACF,GANhB,GAOA,MARF;AAUD,GAXD,CA3L+C;AAyM/C;AACA;;;AACAjD,EAAAA,QAAQ,CAACqD,SAAT,GAAqB,UAAU3C,IAAV,EAAgB;AACnC,QAAI4B,MAAM,GAAG,EAAb;AACA,QAAIgB,EAAJ;AACA,QAAI1C,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAYM,IAAI,CAAC9G,OAAL,CAAa,GAAb,IAAoB,CAAhC,EAAmC6G,KAAnC,CAAyC,GAAzC,CAAZ;;AACA,SAAK,IAAI8C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG3C,KAAK,CAACpY,MAA1B,EAAkC+a,CAAC,EAAnC,EAAuC;AACrCD,MAAAA,EAAE,GAAG1C,KAAK,CAAC2C,CAAD,CAAL,CAAS/C,IAAT,GAAgBC,KAAhB,CAAsB,GAAtB,CAAL;AACA6B,MAAAA,MAAM,CAACgB,EAAE,CAAC,CAAD,CAAF,CAAM9C,IAAN,EAAD,CAAN,GAAuB8C,EAAE,CAAC,CAAD,CAAzB;AACD;;AACD,WAAOhB,MAAP;AACD,GATD,CA3M+C;;;AAuN/CtC,EAAAA,QAAQ,CAACwD,SAAT,GAAqB,UAAUZ,KAAV,EAAiB;AACpC,QAAIlC,IAAI,GAAG,EAAX;AACA,QAAImC,EAAE,GAAGD,KAAK,CAACL,WAAf;;AACA,QAAIK,KAAK,CAACE,oBAAN,KAA+B/R,SAAnC,EAA8C;AAC5C8R,MAAAA,EAAE,GAAGD,KAAK,CAACE,oBAAX;AACD;;AACD,QAAIF,KAAK,CAACa,UAAN,IAAoB/U,MAAM,CAACC,IAAP,CAAYiU,KAAK,CAACa,UAAlB,EAA8Bjb,MAAtD,EAA8D;AAC5D,UAAI0B,MAAM,GAAG,EAAb;AACAwE,MAAAA,MAAM,CAACC,IAAP,CAAYiU,KAAK,CAACa,UAAlB,EAA8BnS,OAA9B,CAAsC,UAAUoS,KAAV,EAAiB;AACrD,YAAId,KAAK,CAACa,UAAN,CAAiBC,KAAjB,CAAJ,EAA6B;AAC3BxZ,UAAAA,MAAM,CAAC6H,IAAP,CAAY2R,KAAK,GAAG,GAAR,GAAcd,KAAK,CAACa,UAAN,CAAiBC,KAAjB,CAA1B;AACD,SAFD,MAEO;AACLxZ,UAAAA,MAAM,CAAC6H,IAAP,CAAY2R,KAAZ;AACD;AACF,OAND;AAOAhD,MAAAA,IAAI,IAAI,YAAYmC,EAAZ,GAAiB,GAAjB,GAAuB3Y,MAAM,CAACiY,IAAP,CAAY,GAAZ,CAAvB,GAA0C,MAAlD;AACD;;AACD,WAAOzB,IAAP;AACD,GAlBD,CAvN+C;AA4O/C;;;AACAV,EAAAA,QAAQ,CAAC2D,WAAT,GAAuB,UAAUjD,IAAV,EAAgB;AACrC,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAYM,IAAI,CAAC9G,OAAL,CAAa,GAAb,IAAoB,CAAhC,EAAmC6G,KAAnC,CAAyC,GAAzC,CAAZ;AACA,WAAO;AACL/Y,MAAAA,IAAI,EAAEkZ,KAAK,CAACM,KAAN,EADD;AAEL0C,MAAAA,SAAS,EAAEhD,KAAK,CAACuB,IAAN,CAAW,GAAX;AAFN,KAAP;AAID,GAND,CA7O+C;;;AAqP/CnC,EAAAA,QAAQ,CAAC6D,WAAT,GAAuB,UAAUjB,KAAV,EAAiB;AACtC,QAAIkB,KAAK,GAAG,EAAZ;AACA,QAAIjB,EAAE,GAAGD,KAAK,CAACL,WAAf;;AACA,QAAIK,KAAK,CAACE,oBAAN,KAA+B/R,SAAnC,EAA8C;AAC5C8R,MAAAA,EAAE,GAAGD,KAAK,CAACE,oBAAX;AACD;;AACD,QAAIF,KAAK,CAACmB,YAAN,IAAsBnB,KAAK,CAACmB,YAAN,CAAmBvb,MAA7C,EAAqD;AACnD;AACAoa,MAAAA,KAAK,CAACmB,YAAN,CAAmBzS,OAAnB,CAA2B,UAAU0S,EAAV,EAAc;AACvCF,QAAAA,KAAK,IACH,eACAjB,EADA,GAEA,GAFA,GAGAmB,EAAE,CAACtc,IAHH,IAICsc,EAAE,CAACJ,SAAH,IAAgBI,EAAE,CAACJ,SAAH,CAAapb,MAA7B,GAAsC,MAAMwb,EAAE,CAACJ,SAA/C,GAA2D,EAJ5D,IAKA,MANF;AAOD,OARD;AASD;;AACD,WAAOE,KAAP;AACD,GAnBD,CArP+C;AA2Q/C;;;AACA9D,EAAAA,QAAQ,CAACiE,cAAT,GAA0B,UAAUvD,IAAV,EAAgB;AACxC,QAAIwD,EAAE,GAAGxD,IAAI,CAAC9G,OAAL,CAAa,GAAb,CAAT;AACA,QAAIgH,KAAK,GAAG;AACVuD,MAAAA,IAAI,EAAEjX,QAAQ,CAACwT,IAAI,CAACN,MAAL,CAAY,CAAZ,EAAe8D,EAAE,GAAG,CAApB,CAAD,EAAyB,EAAzB;AADJ,KAAZ;AAGA,QAAIE,KAAK,GAAG1D,IAAI,CAAC9G,OAAL,CAAa,GAAb,EAAkBsK,EAAlB,CAAZ;;AACA,QAAIE,KAAK,GAAG,CAAC,CAAb,EAAgB;AACdxD,MAAAA,KAAK,CAACyD,SAAN,GAAkB3D,IAAI,CAACN,MAAL,CAAY8D,EAAE,GAAG,CAAjB,EAAoBE,KAAK,GAAGF,EAAR,GAAa,CAAjC,CAAlB;AACAtD,MAAAA,KAAK,CAACpZ,KAAN,GAAckZ,IAAI,CAACN,MAAL,CAAYgE,KAAK,GAAG,CAApB,CAAd;AACD,KAHD,MAGO;AACLxD,MAAAA,KAAK,CAACyD,SAAN,GAAkB3D,IAAI,CAACN,MAAL,CAAY8D,EAAE,GAAG,CAAjB,CAAlB;AACD;;AACD,WAAOtD,KAAP;AACD,GAbD;;AAeAZ,EAAAA,QAAQ,CAACsE,cAAT,GAA0B,UAAU5D,IAAV,EAAgB;AACxC,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,EAAZ,EAAgBK,KAAhB,CAAsB,GAAtB,CAAZ;AACA,WAAO;AACL8D,MAAAA,SAAS,EAAE3D,KAAK,CAACM,KAAN,EADN;AAELsD,MAAAA,KAAK,EAAE5D,KAAK,CAAC1a,GAAN,CAAU,UAAUie,IAAV,EAAgB;AAC/B,eAAOjX,QAAQ,CAACiX,IAAD,EAAO,EAAP,CAAf;AACD,OAFM;AAFF,KAAP;AAMD,GARD,CA3R+C;AAsS/C;;;AACAnE,EAAAA,QAAQ,CAACyE,MAAT,GAAkB,UAAUC,YAAV,EAAwB;AACxC,QAAIC,GAAG,GAAG3E,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,QAAnC,EAA6C,CAA7C,CAAV;;AACA,QAAIC,GAAJ,EAAS;AACP,aAAOA,GAAG,CAACvE,MAAJ,CAAW,CAAX,CAAP;AACD;AACF,GALD;;AAOAJ,EAAAA,QAAQ,CAAC4E,gBAAT,GAA4B,UAAUlE,IAAV,EAAgB;AAC1C,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,EAAZ,EAAgBK,KAAhB,CAAsB,GAAtB,CAAZ;AACA,WAAO;AACLoE,MAAAA,SAAS,EAAEjE,KAAK,CAAC,CAAD,CAAL,CAAS7L,WAAT,EADN;AAC8B;AACnCvN,MAAAA,KAAK,EAAEoZ,KAAK,CAAC,CAAD;AAFP,KAAP;AAID,GAND,CA9S+C;AAuT/C;AACA;;;AACAZ,EAAAA,QAAQ,CAAC8E,iBAAT,GAA6B,UAAUJ,YAAV,EAAwBK,WAAxB,EAAqC;AAChE,QAAIjB,KAAK,GAAG9D,QAAQ,CAACmB,WAAT,CACVuD,YAAY,GAAGK,WADL,EAEV,gBAFU,CAAZ,CADgE;AAMhE;;AACA,WAAO;AACLC,MAAAA,IAAI,EAAE,MADD;AAELC,MAAAA,YAAY,EAAEnB,KAAK,CAAC5d,GAAN,CAAU8Z,QAAQ,CAAC4E,gBAAnB;AAFT,KAAP;AAID,GAXD,CAzT+C;;;AAuU/C5E,EAAAA,QAAQ,CAACkF,mBAAT,GAA+B,UAAUhb,MAAV,EAAkBib,SAAlB,EAA6B;AAC1D,QAAIlI,GAAG,GAAG,aAAakI,SAAb,GAAyB,MAAnC;AACAjb,IAAAA,MAAM,CAAC+a,YAAP,CAAoB3T,OAApB,CAA4B,UAAU8T,EAAV,EAAc;AACxCnI,MAAAA,GAAG,IAAI,mBAAmBmI,EAAE,CAACP,SAAtB,GAAkC,GAAlC,GAAwCO,EAAE,CAAC5d,KAA3C,GAAmD,MAA1D;AACD,KAFD;AAGA,WAAOyV,GAAP;AACD,GAND,CAvU+C;AAgV/C;;;AACA+C,EAAAA,QAAQ,CAACqF,eAAT,GAA2B,UAAU3E,IAAV,EAAgB;AACzC,QAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,CAAZ,EAAeK,KAAf,CAAqB,GAArB,CAAZ;AACA,WAAO;AACL6E,MAAAA,GAAG,EAAEpY,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CADR;AAEL2E,MAAAA,WAAW,EAAE3E,KAAK,CAAC,CAAD,CAFb;AAGL4E,MAAAA,SAAS,EAAE5E,KAAK,CAAC,CAAD,CAHX;AAIL6E,MAAAA,aAAa,EAAE7E,KAAK,CAACrY,KAAN,CAAY,CAAZ;AAJV,KAAP;AAMD,GARD;;AAUAyX,EAAAA,QAAQ,CAAC0F,eAAT,GAA2B,UAAUjC,UAAV,EAAsB;AAC/C,WACE,cACAA,UAAU,CAAC6B,GADX,GAEA,GAFA,GAGA7B,UAAU,CAAC8B,WAHX,GAIA,GAJA,IAKC,OAAO9B,UAAU,CAAC+B,SAAlB,KAAgC,QAAhC,GACGxF,QAAQ,CAAC2F,oBAAT,CAA8BlC,UAAU,CAAC+B,SAAzC,CADH,GAEG/B,UAAU,CAAC+B,SAPf,KAQC/B,UAAU,CAACgC,aAAX,GACG,MAAMhC,UAAU,CAACgC,aAAX,CAAyBtD,IAAzB,CAA8B,GAA9B,CADT,GAEG,EAVJ,IAWA,MAZF;AAcD,GAfD,CA3V+C;AA6W/C;;;AACAnC,EAAAA,QAAQ,CAAC4F,oBAAT,GAAgC,UAAUJ,SAAV,EAAqB;AACnD,QAAIA,SAAS,CAAC5L,OAAV,CAAkB,SAAlB,MAAiC,CAArC,EAAwC;AACtC,aAAO,IAAP;AACD;;AACD,QAAIgH,KAAK,GAAG4E,SAAS,CAACpF,MAAV,CAAiB,CAAjB,EAAoBK,KAApB,CAA0B,GAA1B,CAAZ;AACA,WAAO;AACLoF,MAAAA,SAAS,EAAE,QADN;AAELC,MAAAA,OAAO,EAAElF,KAAK,CAAC,CAAD,CAFT;AAGLmF,MAAAA,QAAQ,EAAEnF,KAAK,CAAC,CAAD,CAHV;AAILoF,MAAAA,QAAQ,EAAEpF,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAASH,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAX,GAAoC1P,SAJzC;AAKLkV,MAAAA,SAAS,EAAErF,KAAK,CAAC,CAAD,CAAL,GAAWA,KAAK,CAAC,CAAD,CAAL,CAASH,KAAT,CAAe,GAAf,EAAoB,CAApB,CAAX,GAAoC1P;AAL1C,KAAP;AAOD,GAZD;;AAcAiP,EAAAA,QAAQ,CAAC2F,oBAAT,GAAgC,UAAUH,SAAV,EAAqB;AACnD,WACEA,SAAS,CAACK,SAAV,GACA,GADA,GAEAL,SAAS,CAACM,OAFV,IAGCN,SAAS,CAACO,QAAV,GAAqB,MAAMP,SAAS,CAACO,QAArC,GAAgD,EAHjD,KAICP,SAAS,CAACQ,QAAV,IAAsBR,SAAS,CAACS,SAAhC,GACG,MAAMT,SAAS,CAACQ,QAAhB,GAA2B,GAA3B,GAAiCR,SAAS,CAACS,SAD9C,GAEG,EANJ,CADF;AASD,GAVD,CA5X+C;;;AAyY/CjG,EAAAA,QAAQ,CAACkG,mBAAT,GAA+B,UAAUxB,YAAV,EAAwBK,WAAxB,EAAqC;AAClE,QAAIjB,KAAK,GAAG9D,QAAQ,CAACmB,WAAT,CAAqBuD,YAAY,GAAGK,WAApC,EAAiD,WAAjD,CAAZ;AACA,WAAOjB,KAAK,CAAC5d,GAAN,CAAU8Z,QAAQ,CAACqF,eAAnB,CAAP;AACD,GAHD,CAzY+C;AA+Y/C;AACA;;;AACArF,EAAAA,QAAQ,CAACmG,gBAAT,GAA4B,UAAUzB,YAAV,EAAwBK,WAAxB,EAAqC;AAC/D,QAAI/C,KAAK,GAAGhC,QAAQ,CAACmB,WAAT,CACVuD,YAAY,GAAGK,WADL,EAEV,cAFU,EAGV,CAHU,CAAZ;AAIA,QAAIqB,GAAG,GAAGpG,QAAQ,CAACmB,WAAT,CAAqBuD,YAAY,GAAGK,WAApC,EAAiD,YAAjD,EAA+D,CAA/D,CAAV;;AACA,QAAI,EAAE/C,KAAK,IAAIoE,GAAX,CAAJ,EAAqB;AACnB,aAAO,IAAP;AACD;;AACD,WAAO;AACLnE,MAAAA,gBAAgB,EAAED,KAAK,CAAC5B,MAAN,CAAa,EAAb,CADb;AAELiG,MAAAA,QAAQ,EAAED,GAAG,CAAChG,MAAJ,CAAW,EAAX;AAFL,KAAP;AAID,GAbD,CAjZ+C;;;AAia/CJ,EAAAA,QAAQ,CAACsG,kBAAT,GAA8B,UAAUpc,MAAV,EAAkB;AAC9C,WACE,iBACAA,MAAM,CAAC+X,gBADP,GAEA,MAFA,GAGA,YAHA,GAIA/X,MAAM,CAACmc,QAJP,GAKA,MANF;AAQD,GATD,CAja+C;;;AA6a/CrG,EAAAA,QAAQ,CAACuG,kBAAT,GAA8B,UAAU7B,YAAV,EAAwB;AACpD,QAAI1H,WAAW,GAAG;AAChBwJ,MAAAA,MAAM,EAAE,EADQ;AAEhBC,MAAAA,gBAAgB,EAAE,EAFF;AAGhBC,MAAAA,aAAa,EAAE,EAHC;AAIhBC,MAAAA,IAAI,EAAE;AAJU,KAAlB;AAMA,QAAI7C,KAAK,GAAG9D,QAAQ,CAACM,UAAT,CAAoBoE,YAApB,CAAZ;AACA,QAAIkC,KAAK,GAAG9C,KAAK,CAAC,CAAD,CAAL,CAASrD,KAAT,CAAe,GAAf,CAAZ;;AACA,SAAK,IAAI9Z,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGigB,KAAK,CAACpe,MAA1B,EAAkC7B,CAAC,EAAnC,EAAuC;AACrC;AACA,UAAIkc,EAAE,GAAG+D,KAAK,CAACjgB,CAAD,CAAd;AACA,UAAIkgB,UAAU,GAAG7G,QAAQ,CAACmB,WAAT,CACfuD,YADe,EAEf,cAAc7B,EAAd,GAAmB,GAFJ,EAGf,CAHe,CAAjB;;AAIA,UAAIgE,UAAJ,EAAgB;AACd,YAAIjE,KAAK,GAAG5C,QAAQ,CAACqC,WAAT,CAAqBwE,UAArB,CAAZ;AACA,YAAIC,KAAK,GAAG9G,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,YAAY7B,EAAZ,GAAiB,GAApD,CAAZ,CAFc;;AAIdD,QAAAA,KAAK,CAACa,UAAN,GAAmBqD,KAAK,CAACte,MAAN,GAAewX,QAAQ,CAACqD,SAAT,CAAmByD,KAAK,CAAC,CAAD,CAAxB,CAAf,GAA8C,EAAjE;AACAlE,QAAAA,KAAK,CAACmB,YAAN,GAAqB/D,QAAQ,CAACmB,WAAT,CACnBuD,YADmB,EAEnB,eAAe7B,EAAf,GAAoB,GAFD,EAGnB3c,GAHmB,CAGf8Z,QAAQ,CAAC2D,WAHM,CAArB;AAIA3G,QAAAA,WAAW,CAACwJ,MAAZ,CAAmBzU,IAAnB,CAAwB6Q,KAAxB,EATc;;AAWd,gBAAQA,KAAK,CAACvc,IAAN,CAAW4M,WAAX,EAAR;AACE,eAAK,KAAL;AACA,eAAK,QAAL;AACE+J,YAAAA,WAAW,CAAC0J,aAAZ,CAA0B3U,IAA1B,CAA+B6Q,KAAK,CAACvc,IAAN,CAAW4M,WAAX,EAA/B;AACA;AAJJ;AAMD;AACF;;AACD+M,IAAAA,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,WAAnC,EAAgDpT,OAAhD,CAAwD,UAAUoP,IAAV,EAAgB;AACtE1D,MAAAA,WAAW,CAACyJ,gBAAZ,CAA6B1U,IAA7B,CAAkCiO,QAAQ,CAAC+C,WAAT,CAAqBrC,IAArB,CAAlC;AACD,KAFD,EAnCoD;;AAuCpD,WAAO1D,WAAP;AACD,GAxCD,CA7a+C;AAwd/C;;;AACAgD,EAAAA,QAAQ,CAAC+G,mBAAT,GAA+B,UAAUrS,IAAV,EAAgBsS,IAAhB,EAAsB;AACnD,QAAI/J,GAAG,GAAG,EAAV,CADmD;;AAInDA,IAAAA,GAAG,IAAI,OAAOvI,IAAP,GAAc,GAArB;AACAuI,IAAAA,GAAG,IAAI+J,IAAI,CAACR,MAAL,CAAYhe,MAAZ,GAAqB,CAArB,GAAyB,GAAzB,GAA+B,GAAtC,CALmD;;AAMnDyU,IAAAA,GAAG,IAAI,qBAAP;AACAA,IAAAA,GAAG,IACD+J,IAAI,CAACR,MAAL,CACGtgB,GADH,CACO,UAAU0c,KAAV,EAAiB;AACpB,UAAIA,KAAK,CAACE,oBAAN,KAA+B/R,SAAnC,EAA8C;AAC5C,eAAO6R,KAAK,CAACE,oBAAb;AACD;;AACD,aAAOF,KAAK,CAACL,WAAb;AACD,KANH,EAOGJ,IAPH,CAOQ,GAPR,IAOe,MARjB;AAUAlF,IAAAA,GAAG,IAAI,sBAAP;AACAA,IAAAA,GAAG,IAAI,6BAAP,CAlBmD;;AAqBnD+J,IAAAA,IAAI,CAACR,MAAL,CAAYlV,OAAZ,CAAoB,UAAUsR,KAAV,EAAiB;AACnC3F,MAAAA,GAAG,IAAI+C,QAAQ,CAAC2C,WAAT,CAAqBC,KAArB,CAAP;AACA3F,MAAAA,GAAG,IAAI+C,QAAQ,CAACwD,SAAT,CAAmBZ,KAAnB,CAAP;AACA3F,MAAAA,GAAG,IAAI+C,QAAQ,CAAC6D,WAAT,CAAqBjB,KAArB,CAAP;AACD,KAJD;AAKA,QAAIqE,QAAQ,GAAG,CAAf;AACAD,IAAAA,IAAI,CAACR,MAAL,CAAYlV,OAAZ,CAAoB,UAAUsR,KAAV,EAAiB;AACnC,UAAIA,KAAK,CAACqE,QAAN,GAAiBA,QAArB,EAA+B;AAC7BA,QAAAA,QAAQ,GAAGrE,KAAK,CAACqE,QAAjB;AACD;AACF,KAJD;;AAKA,QAAIA,QAAQ,GAAG,CAAf,EAAkB;AAChBhK,MAAAA,GAAG,IAAI,gBAAgBgK,QAAhB,GAA2B,MAAlC;AACD;;AACDhK,IAAAA,GAAG,IAAI,gBAAP;;AAEA,QAAI+J,IAAI,CAACP,gBAAT,EAA2B;AACzBO,MAAAA,IAAI,CAACP,gBAAL,CAAsBnV,OAAtB,CAA8B,UAAU4V,SAAV,EAAqB;AACjDjK,QAAAA,GAAG,IAAI+C,QAAQ,CAACkD,WAAT,CAAqBgE,SAArB,CAAP;AACD,OAFD;AAGD,KAzCkD;;;AA2CnD,WAAOjK,GAAP;AACD,GA5CD,CAzd+C;AAwgB/C;;;AACA+C,EAAAA,QAAQ,CAACmH,0BAAT,GAAsC,UAAUzC,YAAV,EAAwB;AAC5D,QAAI0C,kBAAkB,GAAG,EAAzB;AACA,QAAIpK,WAAW,GAAGgD,QAAQ,CAACuG,kBAAT,CAA4B7B,YAA5B,CAAlB;AACA,QAAI2C,MAAM,GAAGrK,WAAW,CAAC0J,aAAZ,CAA0B9M,OAA1B,CAAkC,KAAlC,MAA6C,CAAC,CAA3D;AACA,QAAI0N,SAAS,GAAGtK,WAAW,CAAC0J,aAAZ,CAA0B9M,OAA1B,CAAkC,QAAlC,MAAgD,CAAC,CAAjE,CAJ4D;;AAO5D,QAAI4K,KAAK,GAAGxE,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,SAAnC,EACTxe,GADS,CACL,UAAUwa,IAAV,EAAgB;AACnB,aAAOV,QAAQ,CAACiE,cAAT,CAAwBvD,IAAxB,CAAP;AACD,KAHS,EAITlM,MAJS,CAIF,UAAUoM,KAAV,EAAiB;AACvB,aAAOA,KAAK,CAACyD,SAAN,KAAoB,OAA3B;AACD,KANS,CAAZ;AAOA,QAAIkD,WAAW,GAAG/C,KAAK,CAAChc,MAAN,GAAe,CAAf,IAAoBgc,KAAK,CAAC,CAAD,CAAL,CAASL,IAA/C;AACA,QAAIqD,aAAJ;AAEA,QAAIC,KAAK,GAAGzH,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,kBAAnC,EAAuDxe,GAAvD,CACV,UAAUwa,IAAV,EAAgB;AACd,UAAIE,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,EAAZ,EAAgBK,KAAhB,CAAsB,GAAtB,CAAZ;AACA,aAAOG,KAAK,CAAC1a,GAAN,CAAU,UAAU2a,IAAV,EAAgB;AAC/B,eAAO3T,QAAQ,CAAC2T,IAAD,EAAO,EAAP,CAAf;AACD,OAFM,CAAP;AAGD,KANS,CAAZ;;AAQA,QACE4G,KAAK,CAACjf,MAAN,GAAe,CAAf,IACAif,KAAK,CAAC,CAAD,CAAL,CAASjf,MAAT,GAAkB,CADlB,IAEAif,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,MAAgBF,WAHlB,EAIE;AACAC,MAAAA,aAAa,GAAGC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAAhB;AACD;;AAEDzK,IAAAA,WAAW,CAACwJ,MAAZ,CAAmBlV,OAAnB,CAA2B,UAAUsR,KAAV,EAAiB;AAC1C,UAAIA,KAAK,CAACvc,IAAN,CAAW4M,WAAX,OAA6B,KAA7B,IAAsC2P,KAAK,CAACa,UAAN,CAAiBiE,GAA3D,EAAgE;AAC9D,YAAIC,QAAQ,GAAG;AACbxD,UAAAA,IAAI,EAAEoD,WADO;AAEbK,UAAAA,gBAAgB,EAAE1a,QAAQ,CAAC0V,KAAK,CAACa,UAAN,CAAiBiE,GAAlB,EAAuB,EAAvB;AAFb,SAAf;;AAIA,YAAIH,WAAW,IAAIC,aAAnB,EAAkC;AAChCG,UAAAA,QAAQ,CAACE,GAAT,GAAe;AAAE1D,YAAAA,IAAI,EAAEqD;AAAR,WAAf;AACD;;AACDJ,QAAAA,kBAAkB,CAACrV,IAAnB,CAAwB4V,QAAxB;;AACA,YAAIN,MAAJ,EAAY;AACVM,UAAAA,QAAQ,GAAGxd,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAeud,QAAf,CAAX,CAAX;AACAA,UAAAA,QAAQ,CAACG,GAAT,GAAe;AACb3D,YAAAA,IAAI,EAAEoD,WADO;AAEbQ,YAAAA,SAAS,EAAET,SAAS,GAAG,YAAH,GAAkB;AAFzB,WAAf;AAIAF,UAAAA,kBAAkB,CAACrV,IAAnB,CAAwB4V,QAAxB;AACD;AACF;AACF,KAnBD;;AAoBA,QAAIP,kBAAkB,CAAC5e,MAAnB,KAA8B,CAA9B,IAAmC+e,WAAvC,EAAoD;AAClDH,MAAAA,kBAAkB,CAACrV,IAAnB,CAAwB;AACtBoS,QAAAA,IAAI,EAAEoD;AADgB,OAAxB;AAGD,KAzD2D;;;AA4D5D,QAAIS,SAAS,GAAGhI,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,IAAnC,CAAhB;;AACA,QAAIsD,SAAS,CAACxf,MAAd,EAAsB;AACpB,UAAIwf,SAAS,CAAC,CAAD,CAAT,CAAapO,OAAb,CAAqB,SAArB,MAAoC,CAAxC,EAA2C;AACzCoO,QAAAA,SAAS,GAAG9a,QAAQ,CAAC8a,SAAS,CAAC,CAAD,CAAT,CAAa5H,MAAb,CAAoB,CAApB,CAAD,EAAyB,EAAzB,CAApB;AACD,OAFD,MAEO,IAAI4H,SAAS,CAAC,CAAD,CAAT,CAAapO,OAAb,CAAqB,OAArB,MAAkC,CAAtC,EAAyC;AAC9C;AACAoO,QAAAA,SAAS,GACP9a,QAAQ,CAAC8a,SAAS,CAAC,CAAD,CAAT,CAAa5H,MAAb,CAAoB,CAApB,CAAD,EAAyB,EAAzB,CAAR,GAAuC,IAAvC,GAA8C,IAA9C,GAAqD,KAAK,EAAL,GAAU,CADjE;AAED,OAJM,MAIA;AACL4H,QAAAA,SAAS,GAAGjX,SAAZ;AACD;;AACDqW,MAAAA,kBAAkB,CAAC9V,OAAnB,CAA2B,UAAUpH,MAAV,EAAkB;AAC3CA,QAAAA,MAAM,CAAC+d,UAAP,GAAoBD,SAApB;AACD,OAFD;AAGD;;AACD,WAAOZ,kBAAP;AACD,GA5ED,CAzgB+C;;;AAwlB/CpH,EAAAA,QAAQ,CAACkI,mBAAT,GAA+B,UAAUxD,YAAV,EAAwB;AACrD,QAAIyD,cAAc,GAAG,EAArB,CADqD;AAIrD;;AACA,QAAIC,UAAU,GAAGpI,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,SAAnC,EACdxe,GADc,CACV,UAAUwa,IAAV,EAAgB;AACnB,aAAOV,QAAQ,CAACiE,cAAT,CAAwBvD,IAAxB,CAAP;AACD,KAHc,EAIdlM,MAJc,CAIP,UAAUZ,GAAV,EAAe;AACrB,aAAOA,GAAG,CAACyQ,SAAJ,KAAkB,OAAzB;AACD,KANc,EAMZ,CANY,CAAjB;;AAOA,QAAI+D,UAAJ,EAAgB;AACdD,MAAAA,cAAc,CAACE,KAAf,GAAuBD,UAAU,CAAC5gB,KAAlC;AACA2gB,MAAAA,cAAc,CAAChE,IAAf,GAAsBiE,UAAU,CAACjE,IAAjC;AACD,KAfoD;AAkBrD;;;AACA,QAAImE,KAAK,GAAGtI,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,cAAnC,CAAZ;AACAyD,IAAAA,cAAc,CAACI,WAAf,GAA6BD,KAAK,CAAC9f,MAAN,GAAe,CAA5C;AACA2f,IAAAA,cAAc,CAACK,QAAf,GAA0BF,KAAK,CAAC9f,MAAN,KAAiB,CAA3C,CArBqD;AAwBrD;;AACA,QAAIigB,GAAG,GAAGzI,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,YAAnC,CAAV;AACAyD,IAAAA,cAAc,CAACM,GAAf,GAAqBA,GAAG,CAACjgB,MAAJ,GAAa,CAAlC;AAEA,WAAO2f,cAAP;AACD,GA7BD,CAxlB+C;AAwnB/C;;;AACAnI,EAAAA,QAAQ,CAAC0I,SAAT,GAAqB,UAAUhE,YAAV,EAAwB;AAC3C,QAAI9D,KAAJ;AACA,QAAI+H,IAAI,GAAG3I,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,SAAnC,CAAX;;AACA,QAAIiE,IAAI,CAACngB,MAAL,KAAgB,CAApB,EAAuB;AACrBoY,MAAAA,KAAK,GAAG+H,IAAI,CAAC,CAAD,CAAJ,CAAQvI,MAAR,CAAe,CAAf,EAAkBK,KAAlB,CAAwB,GAAxB,CAAR;AACA,aAAO;AAAEjK,QAAAA,MAAM,EAAEoK,KAAK,CAAC,CAAD,CAAf;AAAoBnP,QAAAA,KAAK,EAAEmP,KAAK,CAAC,CAAD;AAAhC,OAAP;AACD;;AACD,QAAIgI,KAAK,GAAG5I,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,SAAnC,EACTxe,GADS,CACL,UAAUwa,IAAV,EAAgB;AACnB,aAAOV,QAAQ,CAACiE,cAAT,CAAwBvD,IAAxB,CAAP;AACD,KAHS,EAITlM,MAJS,CAIF,UAAUqU,SAAV,EAAqB;AAC3B,aAAOA,SAAS,CAACxE,SAAV,KAAwB,MAA/B;AACD,KANS,CAAZ;;AAOA,QAAIuE,KAAK,CAACpgB,MAAN,GAAe,CAAnB,EAAsB;AACpBoY,MAAAA,KAAK,GAAGgI,KAAK,CAAC,CAAD,CAAL,CAASphB,KAAT,CAAeiZ,KAAf,CAAqB,GAArB,CAAR;AACA,aAAO;AAAEjK,QAAAA,MAAM,EAAEoK,KAAK,CAAC,CAAD,CAAf;AAAoBnP,QAAAA,KAAK,EAAEmP,KAAK,CAAC,CAAD;AAAhC,OAAP;AACD;AACF,GAlBD,CAznB+C;AA8oB/C;AACA;;;AACAZ,EAAAA,QAAQ,CAAC8I,oBAAT,GAAgC,UAAUpE,YAAV,EAAwB;AACtD,QAAIkC,KAAK,GAAG5G,QAAQ,CAAC+I,UAAT,CAAoBrE,YAApB,CAAZ;AACA,QAAIsE,WAAW,GAAGhJ,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,qBAAnC,CAAlB;AACA,QAAIuE,cAAJ;;AACA,QAAID,WAAW,CAACxgB,MAAZ,GAAqB,CAAzB,EAA4B;AAC1BygB,MAAAA,cAAc,GAAG/b,QAAQ,CAAC8b,WAAW,CAAC,CAAD,CAAX,CAAe5I,MAAf,CAAsB,EAAtB,CAAD,EAA4B,EAA5B,CAAzB;AACD;;AACD,QAAI8I,KAAK,CAACD,cAAD,CAAT,EAA2B;AACzBA,MAAAA,cAAc,GAAG,KAAjB;AACD;;AACD,QAAIE,QAAQ,GAAGnJ,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,cAAnC,CAAf;;AACA,QAAIyE,QAAQ,CAAC3gB,MAAT,GAAkB,CAAtB,EAAyB;AACvB,aAAO;AACLoZ,QAAAA,IAAI,EAAE1U,QAAQ,CAACic,QAAQ,CAAC,CAAD,CAAR,CAAY/I,MAAZ,CAAmB,EAAnB,CAAD,EAAyB,EAAzB,CADT;AAELoB,QAAAA,QAAQ,EAAEoF,KAAK,CAACwC,GAFX;AAGLH,QAAAA,cAAc,EAAEA;AAHX,OAAP;AAKD;;AACD,QAAII,YAAY,GAAGrJ,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,YAAnC,CAAnB;;AACA,QAAI2E,YAAY,CAAC7gB,MAAb,GAAsB,CAA1B,EAA6B;AAC3B,UAAIoY,KAAK,GAAGZ,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,YAAnC,EAAiD,CAAjD,EACTtE,MADS,CACF,EADE,EAETK,KAFS,CAEH,GAFG,CAAZ;AAGA,aAAO;AACLmB,QAAAA,IAAI,EAAE1U,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CADT;AAELY,QAAAA,QAAQ,EAAEZ,KAAK,CAAC,CAAD,CAFV;AAGLqI,QAAAA,cAAc,EAAEA;AAHX,OAAP;AAKD;AACF,GA7BD,CAhpB+C;AAgrB/C;AACA;AACA;AACA;;;AACAjJ,EAAAA,QAAQ,CAACsJ,oBAAT,GAAgC,UAAUC,KAAV,EAAiBC,IAAjB,EAAuB;AACrD,QAAIC,MAAM,GAAG,EAAb;;AACA,QAAIF,KAAK,CAAC/H,QAAN,KAAmB,WAAvB,EAAoC;AAClCiI,MAAAA,MAAM,GAAG,CACP,OACEF,KAAK,CAAC7U,IADR,GAEE,KAFF,GAGE6U,KAAK,CAAC/H,QAHR,GAIE,GAJF,GAKEgI,IAAI,CAAChI,QALP,GAME,MAPK,EAQP,sBARO,EASP,iBAAiBgI,IAAI,CAAC5H,IAAtB,GAA6B,MATtB,CAAT;AAWD,KAZD,MAYO;AACL6H,MAAAA,MAAM,GAAG,CACP,OAAOF,KAAK,CAAC7U,IAAb,GAAoB,KAApB,GAA4B6U,KAAK,CAAC/H,QAAlC,GAA6C,GAA7C,GAAmDgI,IAAI,CAAC5H,IAAxD,GAA+D,MADxD,EAEP,sBAFO,EAGP,eAAe4H,IAAI,CAAC5H,IAApB,GAA2B,GAA3B,GAAiC4H,IAAI,CAAChI,QAAtC,GAAiD,YAH1C,CAAT;AAKD;;AACD,QAAIgI,IAAI,CAACP,cAAL,KAAwBlY,SAA5B,EAAuC;AACrC0Y,MAAAA,MAAM,CAAC1X,IAAP,CAAY,wBAAwByX,IAAI,CAACP,cAA7B,GAA8C,MAA1D;AACD;;AACD,WAAOQ,MAAM,CAACtH,IAAP,CAAY,EAAZ,CAAP;AACD,GAzBD,CAprB+C;AAgtB/C;AACA;AACA;;;AACAnC,EAAAA,QAAQ,CAAC0J,iBAAT,GAA6B,YAAY;AACvC,WAAOxJ,IAAI,CAACC,MAAL,GAAc3P,QAAd,GAAyB4P,MAAzB,CAAgC,CAAhC,EAAmC,EAAnC,CAAP;AACD,GAFD,CAntB+C;AAwtB/C;AACA;AACA;AACA;;;AACAJ,EAAAA,QAAQ,CAAC2J,uBAAT,GAAmC,UAAUC,MAAV,EAAkBC,OAAlB,EAA2BC,QAA3B,EAAqC;AACtE,QAAIC,SAAJ;AACA,QAAIla,OAAO,GAAGga,OAAO,KAAK9Y,SAAZ,GAAwB8Y,OAAxB,GAAkC,CAAhD;;AACA,QAAID,MAAJ,EAAY;AACVG,MAAAA,SAAS,GAAGH,MAAZ;AACD,KAFD,MAEO;AACLG,MAAAA,SAAS,GAAG/J,QAAQ,CAAC0J,iBAAT,EAAZ;AACD;;AACD,QAAIM,IAAI,GAAGF,QAAQ,IAAI,mBAAvB,CARsE;;AAUtE,WACE,YACA,IADA,GAEAE,IAFA,GAGA,GAHA,GAIAD,SAJA,GAKA,GALA,GAMAla,OANA,GAOA,uBAPA,GAQA,SARA,GASA,WAVF;AAYD,GAtBD;;AAwBAmQ,EAAAA,QAAQ,CAACiK,iBAAT,GAA6B,UAAUvR,WAAV,EAAuBsO,IAAvB,EAA6Btf,IAA7B,EAAmC8O,MAAnC,EAA2C;AACtE,QAAIyG,GAAG,GAAG+C,QAAQ,CAAC+G,mBAAT,CAA6BrO,WAAW,CAAChE,IAAzC,EAA+CsS,IAA/C,CAAV,CADsE;;AAItE/J,IAAAA,GAAG,IAAI+C,QAAQ,CAACsG,kBAAT,CACL5N,WAAW,CAACwR,WAAZ,CAAwBC,kBAAxB,EADK,CAAP,CAJsE;;AAStElN,IAAAA,GAAG,IAAI+C,QAAQ,CAACkF,mBAAT,CACLxM,WAAW,CAAC0R,aAAZ,CAA0BD,kBAA1B,EADK,EAELziB,IAAI,KAAK,OAAT,GAAmB,SAAnB,GAA+B,QAF1B,CAAP;AAKAuV,IAAAA,GAAG,IAAI,WAAWvE,WAAW,CAACiM,GAAvB,GAA6B,MAApC;;AAEA,QAAIjM,WAAW,CAACsK,SAAhB,EAA2B;AACzB/F,MAAAA,GAAG,IAAI,OAAOvE,WAAW,CAACsK,SAAnB,GAA+B,MAAtC;AACD,KAFD,MAEO,IAAItK,WAAW,CAAC2R,SAAZ,IAAyB3R,WAAW,CAAC4R,WAAzC,EAAsD;AAC3DrN,MAAAA,GAAG,IAAI,gBAAP;AACD,KAFM,MAEA,IAAIvE,WAAW,CAAC2R,SAAhB,EAA2B;AAChCpN,MAAAA,GAAG,IAAI,gBAAP;AACD,KAFM,MAEA,IAAIvE,WAAW,CAAC4R,WAAhB,EAA6B;AAClCrN,MAAAA,GAAG,IAAI,gBAAP;AACD,KAFM,MAEA;AACLA,MAAAA,GAAG,IAAI,gBAAP;AACD;;AAED,QAAIvE,WAAW,CAAC2R,SAAhB,EAA2B;AACzB;AACA,UAAIE,IAAI,GACN,UAAU/T,MAAM,CAACnF,EAAjB,GAAsB,GAAtB,GAA4BqH,WAAW,CAAC2R,SAAZ,CAAsB5Y,KAAtB,CAA4BJ,EAAxD,GAA6D,MAD/D;AAEA4L,MAAAA,GAAG,IAAI,OAAOsN,IAAd,CAJyB;;AAOzBtN,MAAAA,GAAG,IACD,YAAYvE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IAAlD,GAAyD,GAAzD,GAA+DoG,IADjE;;AAEA,UAAI7R,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAA1C,EAA+C;AAC7C5K,QAAAA,GAAG,IACD,YACAvE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAD1C,GAEA,GAFA,GAGAoG,IAJF;AAKAtN,QAAAA,GAAG,IACD,sBACAvE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IADtC,GAEA,GAFA,GAGAzL,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAH1C,GAIA,MALF;AAMD;AACF,KAlDqE;;;AAoDtElH,IAAAA,GAAG,IACD,YACAvE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IADtC,GAEA,SAFA,GAGAnE,QAAQ,CAACK,UAHT,GAIA,MALF;;AAMA,QAAI3H,WAAW,CAAC2R,SAAZ,IAAyB3R,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAnE,EAAwE;AACtE5K,MAAAA,GAAG,IACD,YACAvE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAD1C,GAEA,SAFA,GAGAnE,QAAQ,CAACK,UAHT,GAIA,MALF;AAMD;;AACD,WAAOpD,GAAP;AACD,GAnED,CApvB+C;;;AA0zB/C+C,EAAAA,QAAQ,CAACyK,YAAT,GAAwB,UAAU/F,YAAV,EAAwBK,WAAxB,EAAqC;AAC3D;AACA,QAAIjB,KAAK,GAAG9D,QAAQ,CAACM,UAAT,CAAoBoE,YAApB,CAAZ;;AACA,SAAK,IAAI/d,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmd,KAAK,CAACtb,MAA1B,EAAkC7B,CAAC,EAAnC,EAAuC;AACrC,cAAQmd,KAAK,CAACnd,CAAD,CAAb;AACE,aAAK,YAAL;AACA,aAAK,YAAL;AACA,aAAK,YAAL;AACA,aAAK,YAAL;AACE,iBAAOmd,KAAK,CAACnd,CAAD,CAAL,CAASyZ,MAAT,CAAgB,CAAhB,CAAP;AACF;AANF;AAQD;;AACD,QAAI2E,WAAJ,EAAiB;AACf,aAAO/E,QAAQ,CAACyK,YAAT,CAAsB1F,WAAtB,CAAP;AACD;;AACD,WAAO,UAAP;AACD,GAjBD;;AAmBA/E,EAAAA,QAAQ,CAAC0K,OAAT,GAAmB,UAAUhG,YAAV,EAAwB;AACzC,QAAIZ,KAAK,GAAG9D,QAAQ,CAACM,UAAT,CAAoBoE,YAApB,CAAZ;AACA,QAAIkC,KAAK,GAAG9C,KAAK,CAAC,CAAD,CAAL,CAASrD,KAAT,CAAe,GAAf,CAAZ;AACA,WAAOmG,KAAK,CAAC,CAAD,CAAL,CAASxG,MAAT,CAAgB,CAAhB,CAAP;AACD,GAJD;;AAMAJ,EAAAA,QAAQ,CAAC2K,UAAT,GAAsB,UAAUjG,YAAV,EAAwB;AAC5C,WAAOA,YAAY,CAACjE,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,EAA2B,CAA3B,MAAkC,GAAzC;AACD,GAFD;;AAIAT,EAAAA,QAAQ,CAAC+I,UAAT,GAAsB,UAAUrE,YAAV,EAAwB;AAC5C,QAAIZ,KAAK,GAAG9D,QAAQ,CAACM,UAAT,CAAoBoE,YAApB,CAAZ;AACA,QAAI9D,KAAK,GAAGkD,KAAK,CAAC,CAAD,CAAL,CAAS1D,MAAT,CAAgB,CAAhB,EAAmBK,KAAnB,CAAyB,GAAzB,CAAZ;AACA,WAAO;AACL/L,MAAAA,IAAI,EAAEkM,KAAK,CAAC,CAAD,CADN;AAELgB,MAAAA,IAAI,EAAE1U,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAFT;AAGLY,MAAAA,QAAQ,EAAEZ,KAAK,CAAC,CAAD,CAHV;AAILwI,MAAAA,GAAG,EAAExI,KAAK,CAACrY,KAAN,CAAY,CAAZ,EAAe4Z,IAAf,CAAoB,GAApB;AAJA,KAAP;AAMD,GATD;;AAWAnC,EAAAA,QAAQ,CAAC4K,UAAT,GAAsB,UAAUlG,YAAV,EAAwB;AAC5C,QAAIhE,IAAI,GAAGV,QAAQ,CAACmB,WAAT,CAAqBuD,YAArB,EAAmC,IAAnC,EAAyC,CAAzC,CAAX;AACA,QAAI9D,KAAK,GAAGF,IAAI,CAACN,MAAL,CAAY,CAAZ,EAAeK,KAAf,CAAqB,GAArB,CAAZ;AACA,WAAO;AACLoK,MAAAA,QAAQ,EAAEjK,KAAK,CAAC,CAAD,CADV;AAELmJ,MAAAA,SAAS,EAAEnJ,KAAK,CAAC,CAAD,CAFX;AAGLkK,MAAAA,cAAc,EAAE5d,QAAQ,CAAC0T,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAHnB;AAILmK,MAAAA,OAAO,EAAEnK,KAAK,CAAC,CAAD,CAJT;AAKLoK,MAAAA,WAAW,EAAEpK,KAAK,CAAC,CAAD,CALb;AAMLe,MAAAA,OAAO,EAAEf,KAAK,CAAC,CAAD;AANT,KAAP;AAQD,GAXD,CAl2B+C;;;AAg3B/CZ,EAAAA,QAAQ,CAACiL,UAAT,GAAsB,UAAU1K,IAAV,EAAgB;AACpC,QAAI,OAAOA,IAAP,KAAgB,QAAhB,IAA4BA,IAAI,CAAC/X,MAAL,KAAgB,CAAhD,EAAmD;AACjD,aAAO,KAAP;AACD;;AACD,QAAIsb,KAAK,GAAG9D,QAAQ,CAACM,UAAT,CAAoBC,IAApB,CAAZ;;AACA,SAAK,IAAI5Z,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGmd,KAAK,CAACtb,MAA1B,EAAkC7B,CAAC,EAAnC,EAAuC;AACrC,UAAImd,KAAK,CAACnd,CAAD,CAAL,CAAS6B,MAAT,GAAkB,CAAlB,IAAuBsb,KAAK,CAACnd,CAAD,CAAL,CAASqM,MAAT,CAAgB,CAAhB,MAAuB,GAAlD,EAAuD;AACrD,eAAO,KAAP;AACD,OAHoC;;AAKtC;;AACD,WAAO,IAAP;AACD,GAZD,CAh3B+C;;;AA+3B/C;AACE8M,IAAAA,MAAM,CAACC,OAAP,GAAiBC,QAAjB;AACD;AACF,CAl4B6B,CAA9B;AAo4BA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASkL,YAAT,CAAsB7P,IAAtB,EAA4B;AAC1B,SACE;AACE8P,IAAAA,UAAU,EAAE,aADd;AAEEC,IAAAA,WAAW,EAAE,cAFf;AAGEC,IAAAA,aAAa,EAAE,gBAHjB;AAIEnQ,IAAAA,cAAc,EAAE,iBAJlB;AAKEC,IAAAA,eAAe,EAAE;AALnB,IAMEE,IAAI,CAAC3T,IANP,KAMgB2T,IAAI,CAAC3T,IAPvB;AASD;;AAED,SAASuiB,iBAAT,CAA2BvR,WAA3B,EAAwCsO,IAAxC,EAA8Ctf,IAA9C,EAAoD8O,MAApD,EAA4D8U,QAA5D,EAAsE;AACpE,MAAIC,KAAK,GAAGtO,GAAG,CAAC8J,mBAAJ,CAAwBrO,WAAW,CAAChE,IAApC,EAA0CsS,IAA1C,CAAZ,CADoE;;AAIpEuE,EAAAA,KAAK,IAAItO,GAAG,CAACqJ,kBAAJ,CAAuB5N,WAAW,CAACwR,WAAZ,CAAwBC,kBAAxB,EAAvB,CAAT,CAJoE;;AAOpEoB,EAAAA,KAAK,IAAItO,GAAG,CAACiI,mBAAJ,CACPxM,WAAW,CAAC0R,aAAZ,CAA0BD,kBAA1B,EADO,EAEPziB,IAAI,KAAK,OAAT,GAAmB,SAAnB,GAA+B4jB,QAAQ,IAAI,QAFpC,CAAT;AAKAC,EAAAA,KAAK,IAAI,WAAW7S,WAAW,CAACiM,GAAvB,GAA6B,MAAtC;;AAEA,MAAIjM,WAAW,CAAC2R,SAAZ,IAAyB3R,WAAW,CAAC4R,WAAzC,EAAsD;AACpDiB,IAAAA,KAAK,IAAI,gBAAT;AACD,GAFD,MAEO,IAAI7S,WAAW,CAAC2R,SAAhB,EAA2B;AAChCkB,IAAAA,KAAK,IAAI,gBAAT;AACD,GAFM,MAEA,IAAI7S,WAAW,CAAC4R,WAAhB,EAA6B;AAClCiB,IAAAA,KAAK,IAAI,gBAAT;AACD,GAFM,MAEA;AACLA,IAAAA,KAAK,IAAI,gBAAT;AACD;;AAED,MAAI7S,WAAW,CAAC2R,SAAhB,EAA2B;AACzB,QAAIpY,OAAO,GACTyG,WAAW,CAAC2R,SAAZ,CAAsBmB,eAAtB,IAAyC9S,WAAW,CAAC2R,SAAZ,CAAsB5Y,KAAtB,CAA4BJ,EADvE;AAEAqH,IAAAA,WAAW,CAAC2R,SAAZ,CAAsBmB,eAAtB,GAAwCvZ,OAAxC,CAHyB;;AAKzB,QAAIsY,IAAI,GAAG,WAAW/T,MAAM,GAAGA,MAAM,CAACnF,EAAV,GAAe,GAAhC,IAAuC,GAAvC,GAA6CY,OAA7C,GAAuD,MAAlE;AACAsZ,IAAAA,KAAK,IAAI,OAAOhB,IAAhB,CANyB;;AAQzBgB,IAAAA,KAAK,IACH,YAAY7S,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IAAlD,GAAyD,GAAzD,GAA+DoG,IADjE,CARyB;;AAYzB,QAAI7R,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAA1C,EAA+C;AAC7C0D,MAAAA,KAAK,IACH,YAAY7S,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAAtD,GAA6D,GAA7D,GAAmEoG,IADrE;AAEAgB,MAAAA,KAAK,IACH,sBACA7S,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IADtC,GAEA,GAFA,GAGAzL,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAH1C,GAIA,MALF;AAMD;AACF,GA9CmE;;;AAgDpEoH,EAAAA,KAAK,IACH,YACA7S,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IADtC,GAEA,SAFA,GAGAlH,GAAG,CAACoD,UAHJ,GAIA,MALF;;AAMA,MAAI3H,WAAW,CAAC2R,SAAZ,IAAyB3R,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAnE,EAAwE;AACtE0D,IAAAA,KAAK,IACH,YACA7S,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,CAA0C1D,IAD1C,GAEA,SAFA,GAGAlH,GAAG,CAACoD,UAHJ,GAIA,MALF;AAMD;;AACD,SAAOkL,KAAP;AACD;AAGD;AACA;AACA;AACA;;;AACA,SAASE,gBAAT,CAA0BtM,UAA1B,EAAsCC,WAAtC,EAAmD;AACjD,MAAIC,OAAO,GAAG,KAAd;AACAF,EAAAA,UAAU,GAAGhV,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAe+U,UAAf,CAAX,CAAb;AACA,SAAOA,UAAU,CAAC3K,MAAX,CAAkB,UAAU8K,MAAV,EAAkB;AACzC,QAAIA,MAAM,KAAKA,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACE,GAA3B,CAAV,EAA2C;AACzC,UAAID,IAAI,GAAGD,MAAM,CAACC,IAAP,IAAeD,MAAM,CAACE,GAAjC;;AACA,UAAIF,MAAM,CAACE,GAAP,IAAc,CAACF,MAAM,CAACC,IAA1B,EAAgC;AAC9BnQ,QAAAA,OAAO,CAACK,IAAR,CAAa,mDAAb;AACD;;AACD,UAAIgQ,QAAQ,GAAG,OAAOF,IAAP,KAAgB,QAA/B;;AACA,UAAIE,QAAJ,EAAc;AACZF,QAAAA,IAAI,GAAG,CAACA,IAAD,CAAP;AACD;;AACDA,MAAAA,IAAI,GAAGA,IAAI,CAAC/K,MAAL,CAAY,UAAUgL,GAAV,EAAe;AAChC,YAAIE,SAAS,GACXF,GAAG,CAAC5F,OAAJ,CAAY,OAAZ,MAAyB,CAAzB,IACA4F,GAAG,CAAC5F,OAAJ,CAAY,eAAZ,MAAiC,CAAC,CADlC,IAEA4F,GAAG,CAAC5F,OAAJ,CAAY,QAAZ,MAA0B,CAAC,CAF3B,IAGA,CAACyF,OAJH;;AAMA,YAAIK,SAAJ,EAAe;AACbL,UAAAA,OAAO,GAAG,IAAV;AACA,iBAAO,IAAP;AACD;;AACD,eACEG,GAAG,CAAC5F,OAAJ,CAAY,OAAZ,MAAyB,CAAzB,IACAwF,WAAW,IAAI,KADf,IAEAI,GAAG,CAAC5F,OAAJ,CAAY,gBAAZ,MAAkC,CAAC,CAHrC;AAKD,OAhBM,CAAP;AAkBA,aAAO0F,MAAM,CAACE,GAAd;AACAF,MAAAA,MAAM,CAACC,IAAP,GAAcE,QAAQ,GAAGF,IAAI,CAAC,CAAD,CAAP,GAAaA,IAAnC;AACA,aAAO,CAAC,CAACA,IAAI,CAAC/W,MAAd;AACD;AACF,GAhCM,CAAP;AAiCD;;;AAGD,SAASkjB,qBAAT,CAA+BC,iBAA/B,EAAkDC,kBAAlD,EAAsE;AACpE,MAAIC,kBAAkB,GAAG;AACvBrF,IAAAA,MAAM,EAAE,EADe;AAEvBC,IAAAA,gBAAgB,EAAE,EAFK;AAGvBC,IAAAA,aAAa,EAAE;AAHQ,GAAzB;;AAMA,MAAIoF,sBAAsB,GAAG,UAAUjJ,EAAV,EAAc2D,MAAd,EAAsB;AACjD3D,IAAAA,EAAE,GAAG3V,QAAQ,CAAC2V,EAAD,EAAK,EAAL,CAAb;;AACA,SAAK,IAAIlc,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6f,MAAM,CAAChe,MAA3B,EAAmC7B,CAAC,EAApC,EAAwC;AACtC,UACE6f,MAAM,CAAC7f,CAAD,CAAN,CAAU4b,WAAV,KAA0BM,EAA1B,IACA2D,MAAM,CAAC7f,CAAD,CAAN,CAAUmc,oBAAV,KAAmCD,EAFrC,EAGE;AACA,eAAO2D,MAAM,CAAC7f,CAAD,CAAb;AACD;AACF;AACF,GAVD;;AAYA,MAAIolB,oBAAoB,GAAG,UAAUC,IAAV,EAAgBC,IAAhB,EAAsBC,OAAtB,EAA+BC,OAA/B,EAAwC;AACjE,QAAIC,MAAM,GAAGN,sBAAsB,CAACE,IAAI,CAACvI,UAAL,CAAgBiE,GAAjB,EAAsBwE,OAAtB,CAAnC;AACA,QAAIG,MAAM,GAAGP,sBAAsB,CAACG,IAAI,CAACxI,UAAL,CAAgBiE,GAAjB,EAAsByE,OAAtB,CAAnC;AACA,WACEC,MAAM,IACNC,MADA,IAEAD,MAAM,CAAC/lB,IAAP,CAAY0O,WAAZ,OAA8BsX,MAAM,CAAChmB,IAAP,CAAY0O,WAAZ,EAHhC;AAKD,GARD;;AAUA4W,EAAAA,iBAAiB,CAACnF,MAAlB,CAAyBlV,OAAzB,CAAiC,UAAU8a,MAAV,EAAkB;AACjD,SAAK,IAAIzlB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGilB,kBAAkB,CAACpF,MAAnB,CAA0Bhe,MAA9C,EAAsD7B,CAAC,EAAvD,EAA2D;AACzD,UAAI0lB,MAAM,GAAGT,kBAAkB,CAACpF,MAAnB,CAA0B7f,CAA1B,CAAb;;AACA,UACEylB,MAAM,CAAC/lB,IAAP,CAAY0O,WAAZ,OAA8BsX,MAAM,CAAChmB,IAAP,CAAY0O,WAAZ,EAA9B,IACAqX,MAAM,CAAC5J,SAAP,KAAqB6J,MAAM,CAAC7J,SAF9B,EAGE;AACA,YACE4J,MAAM,CAAC/lB,IAAP,CAAY0O,WAAZ,OAA8B,KAA9B,IACAqX,MAAM,CAAC3I,UADP,IAEA4I,MAAM,CAAC5I,UAAP,CAAkBiE,GAHpB,EAIE;AACA;AACA;AACA,cACE,CAACqE,oBAAoB,CACnBK,MADmB,EAEnBC,MAFmB,EAGnBV,iBAAiB,CAACnF,MAHC,EAInBoF,kBAAkB,CAACpF,MAJA,CADvB,EAOE;AACA;AACD;AACF;;AACD6F,QAAAA,MAAM,GAAGliB,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAeiiB,MAAf,CAAX,CAAT,CAnBA;AAoBA;;AACAA,QAAAA,MAAM,CAAC3J,WAAP,GAAqBxC,IAAI,CAACrN,GAAL,CAASuZ,MAAM,CAAC1J,WAAhB,EAA6B2J,MAAM,CAAC3J,WAApC,CAArB,CArBA;;AAuBAmJ,QAAAA,kBAAkB,CAACrF,MAAnB,CAA0BzU,IAA1B,CAA+Bsa,MAA/B,EAvBA;;AA0BAA,QAAAA,MAAM,CAACtI,YAAP,GAAsBsI,MAAM,CAACtI,YAAP,CAAoBvP,MAApB,CAA2B,UAAUwP,EAAV,EAAc;AAC7D,eAAK,IAAIT,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG6I,MAAM,CAACrI,YAAP,CAAoBvb,MAAxC,EAAgD+a,CAAC,EAAjD,EAAqD;AACnD,gBACE6I,MAAM,CAACrI,YAAP,CAAoBR,CAApB,EAAuB7b,IAAvB,KAAgCsc,EAAE,CAACtc,IAAnC,IACA0kB,MAAM,CAACrI,YAAP,CAAoBR,CAApB,EAAuBK,SAAvB,KAAqCI,EAAE,CAACJ,SAF1C,EAGE;AACA,qBAAO,IAAP;AACD;AACF;;AACD,iBAAO,KAAP;AACD,SAVqB,CAAtB,CA1BA;AAsCA;;AACA;AACD;AACF;AACF,GAhDD;AAkDA+H,EAAAA,iBAAiB,CAAClF,gBAAlB,CAAmCnV,OAAnC,CAA2C,UAAUgb,gBAAV,EAA4B;AACrE,SAAK,IAAI3lB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGilB,kBAAkB,CAACnF,gBAAnB,CAAoCje,MAAxD,EAAgE7B,CAAC,EAAjE,EAAqE;AACnE,UAAI4lB,gBAAgB,GAAGX,kBAAkB,CAACnF,gBAAnB,CAAoC9f,CAApC,CAAvB;;AACA,UAAI2lB,gBAAgB,CAACrJ,GAAjB,KAAyBsJ,gBAAgB,CAACtJ,GAA9C,EAAmD;AACjD4I,QAAAA,kBAAkB,CAACpF,gBAAnB,CAAoC1U,IAApC,CAAyCwa,gBAAzC;AACA;AACD;AACF;AACF,GARD,EA/EoE;;AA0FpE,SAAOV,kBAAP;AACD;;;AAGD,SAASW,+BAAT,CAAyCC,MAAzC,EAAiD/kB,IAAjD,EAAuDkV,cAAvD,EAAuE;AACrE,SACE;AACE8P,IAAAA,KAAK,EAAE;AACL3O,MAAAA,mBAAmB,EAAE,CAAC,QAAD,EAAW,kBAAX,CADhB;AAEL5F,MAAAA,oBAAoB,EAAE,CAAC,QAAD,EAAW,mBAAX;AAFjB,KADT;AAKEwU,IAAAA,MAAM,EAAE;AACN5O,MAAAA,mBAAmB,EAAE,CAAC,mBAAD,EAAsB,qBAAtB,CADf;AAEN5F,MAAAA,oBAAoB,EAAE,CAAC,kBAAD,EAAqB,sBAArB;AAFhB;AALV,IASEzQ,IATF,EASQ+kB,MATR,EASgB7S,OAThB,CASwBgD,cATxB,MAS4C,CAAC,CAV/C;AAYD;;AAED,SAASgQ,iBAAT,CAA2BC,YAA3B,EAAyCvL,SAAzC,EAAoD;AAClD;AACA;AACA,MAAIwL,YAAY,GAAGD,YAAY,CAC5BE,mBADgB,GAEhBnY,IAFgB,CAEX,UAAUoY,eAAV,EAA2B;AAC/B,WACE1L,SAAS,CAACC,UAAV,KAAyByL,eAAe,CAACzL,UAAzC,IACAD,SAAS,CAACI,EAAV,KAAiBsL,eAAe,CAACtL,EADjC,IAEAJ,SAAS,CAACM,IAAV,KAAmBoL,eAAe,CAACpL,IAFnC,IAGAN,SAAS,CAACG,QAAV,KAAuBuL,eAAe,CAACvL,QAHvC,IAIAH,SAAS,CAACE,QAAV,KAAuBwL,eAAe,CAACxL,QAJvC,IAKAF,SAAS,CAAC5Z,IAAV,KAAmBslB,eAAe,CAACtlB,IANrC;AAQD,GAXgB,CAAnB;;AAYA,MAAI,CAAColB,YAAL,EAAmB;AACjBD,IAAAA,YAAY,CAACI,kBAAb,CAAgC3L,SAAhC;AACD;;AACD,SAAO,CAACwL,YAAR;AACD;;AAED,SAASI,SAAT,CAAmB7mB,IAAnB,EAAyB2W,WAAzB,EAAsC;AACpC,MAAIlU,CAAC,GAAG,IAAImG,KAAJ,CAAU+N,WAAV,CAAR;AACAlU,EAAAA,CAAC,CAACzC,IAAF,GAASA,IAAT,CAFoC;;AAIpCyC,EAAAA,CAAC,CAACgC,IAAF,GAAS;AACPqiB,IAAAA,iBAAiB,EAAE,CADZ;AAEP9X,IAAAA,iBAAiB,EAAE,EAFZ;AAGP+X,IAAAA,kBAAkB,EAAE,EAHb;AAIPC,IAAAA,SAAS,EAAEtc,SAJJ;AAKPuc,IAAAA,cAAc,EAAEvc;AALT,IAMP1K,IANO,CAAT;AAOA,SAAOyC,CAAP;AACD;;AAED,IAAIykB,iBAAiB,GAAG,UAAU5hB,MAAV,EAAkByT,WAAlB,EAA+B;AACrD;AACA;AACA;AACA,WAASoO,4BAAT,CAAsC/b,KAAtC,EAA6C+E,MAA7C,EAAqD;AACnDA,IAAAA,MAAM,CAAC+C,QAAP,CAAgB9H,KAAhB;AACA+E,IAAAA,MAAM,CAACoC,aAAP,CACE,IAAIjN,MAAM,CAAC8hB,qBAAX,CAAiC,UAAjC,EAA6C;AAAEhc,MAAAA,KAAK,EAAEA;AAAT,KAA7C,CADF;AAGD;;AAED,WAASic,iCAAT,CAA2Cjc,KAA3C,EAAkD+E,MAAlD,EAA0D;AACxDA,IAAAA,MAAM,CAACkD,WAAP,CAAmBjI,KAAnB;AACA+E,IAAAA,MAAM,CAACoC,aAAP,CACE,IAAIjN,MAAM,CAAC8hB,qBAAX,CAAiC,aAAjC,EAAgD;AAAEhc,MAAAA,KAAK,EAAEA;AAAT,KAAhD,CADF;AAGD;;AAED,WAASkc,YAAT,CAAsB5U,EAAtB,EAA0BtH,KAA1B,EAAiC6G,QAAjC,EAA2CK,OAA3C,EAAoD;AAClD,QAAIiV,UAAU,GAAG,IAAInV,KAAJ,CAAU,OAAV,CAAjB;AACAmV,IAAAA,UAAU,CAACnc,KAAX,GAAmBA,KAAnB;AACAmc,IAAAA,UAAU,CAACtV,QAAX,GAAsBA,QAAtB;AACAsV,IAAAA,UAAU,CAAClV,WAAX,GAAyB;AAAEJ,MAAAA,QAAQ,EAAEA;AAAZ,KAAzB;AACAsV,IAAAA,UAAU,CAACjV,OAAX,GAAqBA,OAArB;AACAhN,IAAAA,MAAM,CAACkiB,UAAP,CAAkB,YAAY;AAC5B9U,MAAAA,EAAE,CAAC+U,cAAH,CAAkB,OAAlB,EAA2BF,UAA3B;AACD,KAFD;AAGD;;AAED,MAAItgB,iBAAiB,GAAG,UAAUzH,MAAV,EAAkB;AACxC,QAAIkT,EAAE,GAAG,IAAT;;AAEA,QAAIgV,YAAY,GAAGC,QAAQ,CAACC,sBAAT,EAAnB;;AACA,KAAC,kBAAD,EAAqB,qBAArB,EAA4C,eAA5C,EAA6D3c,OAA7D,CACE,UAAUtH,MAAV,EAAkB;AAChB+O,MAAAA,EAAE,CAAC/O,MAAD,CAAF,GAAa+jB,YAAY,CAAC/jB,MAAD,CAAZ,CAAqBqM,IAArB,CAA0B0X,YAA1B,CAAb;AACD,KAHH;AAMA,SAAKG,uBAAL,GAA+B,IAA/B;AAEA,SAAKC,eAAL,GAAuB,KAAvB;AAEA,SAAKC,YAAL,GAAoB,EAApB;AACA,SAAKC,aAAL,GAAqB,EAArB;AAEA,SAAKC,iBAAL,GAAyB,IAAzB;AACA,SAAKC,kBAAL,GAA0B,IAA1B;AAEA,SAAK3R,cAAL,GAAsB,QAAtB;AACA,SAAK4R,kBAAL,GAA0B,KAA1B;AACA,SAAKC,eAAL,GAAuB,KAAvB;AACA,SAAKC,iBAAL,GAAyB,KAAzB;AAEA7oB,IAAAA,MAAM,GAAGsE,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAevE,MAAM,IAAI,EAAzB,CAAX,CAAT;AAEA,SAAK8oB,WAAL,GAAmB9oB,MAAM,CAAC+oB,YAAP,KAAwB,YAA3C;;AACA,QAAI/oB,MAAM,CAACgpB,aAAP,KAAyB,WAA7B,EAA0C;AACxC,YAAM3B,SAAS,CACb,mBADa,EAEb,4CAFa,CAAf;AAID,KALD,MAKO,IAAI,CAACrnB,MAAM,CAACgpB,aAAZ,EAA2B;AAChChpB,MAAAA,MAAM,CAACgpB,aAAP,GAAuB,SAAvB;AACD;;AAED,YAAQhpB,MAAM,CAACipB,kBAAf;AACE,WAAK,KAAL;AACA,WAAK,OAAL;AACE;;AACF;AACEjpB,QAAAA,MAAM,CAACipB,kBAAP,GAA4B,KAA5B;AACA;AANJ;;AASA,YAAQjpB,MAAM,CAAC+oB,YAAf;AACE,WAAK,UAAL;AACA,WAAK,YAAL;AACA,WAAK,YAAL;AACE;;AACF;AACE/oB,QAAAA,MAAM,CAAC+oB,YAAP,GAAsB,UAAtB;AACA;AAPJ;;AAUA/oB,IAAAA,MAAM,CAACsZ,UAAP,GAAoBsM,gBAAgB,CAAC5lB,MAAM,CAACsZ,UAAP,IAAqB,EAAtB,EAA0BC,WAA1B,CAApC;AAEA,SAAK2P,aAAL,GAAqB,EAArB;;AACA,QAAIlpB,MAAM,CAACmpB,oBAAX,EAAiC;AAC/B,WAAK,IAAIroB,CAAC,GAAGd,MAAM,CAACmpB,oBAApB,EAA0CroB,CAAC,GAAG,CAA9C,EAAiDA,CAAC,EAAlD,EAAsD;AACpD,aAAKooB,aAAL,CAAmBhd,IAAnB,CACE,IAAIpG,MAAM,CAACuE,cAAX,CAA0B;AACxBiP,UAAAA,UAAU,EAAEtZ,MAAM,CAACsZ,UADK;AAExB8P,UAAAA,YAAY,EAAEppB,MAAM,CAACipB;AAFG,SAA1B,CADF;AAMD;AACF,KATD,MASO;AACLjpB,MAAAA,MAAM,CAACmpB,oBAAP,GAA8B,CAA9B;AACD;;AAED,SAAKE,OAAL,GAAerpB,MAAf,CAxEwC;AA2ExC;;AACA,SAAKspB,YAAL,GAAoB,EAApB;AAEA,SAAKC,aAAL,GAAqBnS,GAAG,CAACyM,iBAAJ,EAArB;AACA,SAAK2F,kBAAL,GAA0B,CAA1B;AAEA,SAAKC,SAAL,GAAiBve,SAAjB,CAjFwC;;AAmFxC,SAAKwe,SAAL,GAAiB,KAAjB;AACD,GApFD;;AAsFA7gB,EAAAA,MAAM,CAACE,cAAP,CAAsBtB,iBAAiB,CAACE,SAAxC,EAAmD,kBAAnD,EAAuE;AACrEsB,IAAAA,YAAY,EAAE,IADuD;AAErExH,IAAAA,GAAG,EAAE,YAAY;AACf,aAAO,KAAKgnB,iBAAZ;AACD;AAJoE,GAAvE;AAMA5f,EAAAA,MAAM,CAACE,cAAP,CAAsBtB,iBAAiB,CAACE,SAAxC,EAAmD,mBAAnD,EAAwE;AACtEsB,IAAAA,YAAY,EAAE,IADwD;AAEtExH,IAAAA,GAAG,EAAE,YAAY;AACf,aAAO,KAAKinB,kBAAZ;AACD;AAJqE,GAAxE,EAzHqD;;AAiIrDjhB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BgiB,cAA5B,GAA6C,IAA7C;AACAliB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BiiB,WAA5B,GAA0C,IAA1C;AACAniB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BkiB,OAA5B,GAAsC,IAAtC;AACApiB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BmiB,cAA5B,GAA6C,IAA7C;AACAriB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BoiB,sBAA5B,GAAqD,IAArD;AACAtiB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BqiB,0BAA5B,GAAyD,IAAzD;AACAviB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BsiB,uBAA5B,GAAsD,IAAtD;AACAxiB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BuiB,yBAA5B,GAAwD,IAAxD;AACAziB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BwiB,mBAA5B,GAAkD,IAAlD;AACA1iB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4ByiB,aAA5B,GAA4C,IAA5C;;AAEA3iB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BsgB,cAA5B,GAA6C,UAAUznB,IAAV,EAAgBmS,KAAhB,EAAuB;AAClE,QAAI,KAAK+W,SAAT,EAAoB;AAClB;AACD;;AACD,SAAK3W,aAAL,CAAmBJ,KAAnB;;AACA,QAAI,OAAO,KAAK,OAAOnS,IAAZ,CAAP,KAA6B,UAAjC,EAA6C;AAC3C,WAAK,OAAOA,IAAZ,EAAkBmS,KAAlB;AACD;AACF,GARD;;AAUAlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B0iB,yBAA5B,GAAwD,YAAY;AAClE,QAAI1X,KAAK,GAAG,IAAIC,KAAJ,CAAU,yBAAV,CAAZ;;AACA,SAAKqV,cAAL,CAAoB,yBAApB,EAA+CtV,KAA/C;AACD,GAHD;;AAKAlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BiR,gBAA5B,GAA+C,YAAY;AACzD,WAAO,KAAKyQ,OAAZ;AACD,GAFD;;AAIA5hB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BuO,eAA5B,GAA8C,YAAY;AACxD,WAAO,KAAKqS,YAAZ;AACD,GAFD;;AAIA9gB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B2iB,gBAA5B,GAA+C,YAAY;AACzD,WAAO,KAAK9B,aAAZ;AACD,GAFD,CAnKqD;AAwKrD;;;AACA/gB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B4iB,kBAA5B,GAAiD,UAAU1b,IAAV,EAAgB2b,QAAhB,EAA0B;AACzE,QAAIC,kBAAkB,GAAG,KAAKnB,YAAL,CAAkB3mB,MAAlB,GAA2B,CAApD;AACA,QAAIkQ,WAAW,GAAG;AAChBjH,MAAAA,KAAK,EAAE,IADS;AAEhByY,MAAAA,WAAW,EAAE,IAFG;AAGhB2C,MAAAA,YAAY,EAAE,IAHE;AAIhBzC,MAAAA,aAAa,EAAE,IAJC;AAKhBuB,MAAAA,iBAAiB,EAAE,IALH;AAMhBC,MAAAA,kBAAkB,EAAE,IANJ;AAOhBvB,MAAAA,SAAS,EAAE,IAPK;AAQhBC,MAAAA,WAAW,EAAE,IARG;AAShB5V,MAAAA,IAAI,EAAEA,IATU;AAUhBiQ,MAAAA,GAAG,EAAE,IAVW;AAWhB6F,MAAAA,sBAAsB,EAAE,IAXR;AAYhB+F,MAAAA,sBAAsB,EAAE,IAZR;AAahB/Z,MAAAA,MAAM,EAAE,IAbQ;AAchBga,MAAAA,4BAA4B,EAAE,EAdd;AAehBC,MAAAA,WAAW,EAAE;AAfG,KAAlB;;AAiBA,QAAI,KAAK9B,WAAL,IAAoB2B,kBAAxB,EAA4C;AAC1C5X,MAAAA,WAAW,CAACmU,YAAZ,GAA2B,KAAKsC,YAAL,CAAkB,CAAlB,EAAqBtC,YAAhD;AACAnU,MAAAA,WAAW,CAAC0R,aAAZ,GAA4B,KAAK+E,YAAL,CAAkB,CAAlB,EAAqB/E,aAAjD;AACD,KAHD,MAGO;AACL,UAAIsG,UAAU,GAAG,KAAKC,2BAAL,EAAjB;;AACAjY,MAAAA,WAAW,CAACmU,YAAZ,GAA2B6D,UAAU,CAAC7D,YAAtC;AACAnU,MAAAA,WAAW,CAAC0R,aAAZ,GAA4BsG,UAAU,CAACtG,aAAvC;AACD;;AACD,QAAI,CAACiG,QAAL,EAAe;AACb,WAAKlB,YAAL,CAAkBpd,IAAlB,CAAuB2G,WAAvB;AACD;;AACD,WAAOA,WAAP;AACD,GA/BD;;AAiCApL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B+L,QAA5B,GAAuC,UAAU9H,KAAV,EAAiB+E,MAAjB,EAAyB;AAC9D,QAAI,KAAK+Y,SAAT,EAAoB;AAClB,YAAMrC,SAAS,CACb,mBADa,EAEb,wDAFa,CAAf;AAID;;AAED,QAAIhR,aAAa,GAAG,KAAKiT,YAAL,CAAkBva,IAAlB,CAAuB,UAAUsF,CAAV,EAAa;AACtD,aAAOA,CAAC,CAACzI,KAAF,KAAYA,KAAnB;AACD,KAFmB,CAApB;;AAIA,QAAIyK,aAAJ,EAAmB;AACjB,YAAMgR,SAAS,CAAC,oBAAD,EAAuB,uBAAvB,CAAf;AACD;;AAED,QAAIxU,WAAJ;;AACA,SAAK,IAAI/R,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG,KAAKwoB,YAAL,CAAkB3mB,MAAtC,EAA8C7B,CAAC,EAA/C,EAAmD;AACjD,UACE,CAAC,KAAKwoB,YAAL,CAAkBxoB,CAAlB,EAAqB8K,KAAtB,IACA,KAAK0d,YAAL,CAAkBxoB,CAAlB,EAAqB+N,IAArB,KAA8BjD,KAAK,CAACiD,IAFtC,EAGE;AACAgE,QAAAA,WAAW,GAAG,KAAKyW,YAAL,CAAkBxoB,CAAlB,CAAd;AACD;AACF;;AACD,QAAI,CAAC+R,WAAL,EAAkB;AAChBA,MAAAA,WAAW,GAAG,KAAK0X,kBAAL,CAAwB3e,KAAK,CAACiD,IAA9B,CAAd;AACD;;AAED,SAAKkc,2BAAL;;AAEA,QAAI,KAAKxC,YAAL,CAAkBxU,OAAlB,CAA0BpD,MAA1B,MAAsC,CAAC,CAA3C,EAA8C;AAC5C,WAAK4X,YAAL,CAAkBrc,IAAlB,CAAuByE,MAAvB;AACD;;AAEDkC,IAAAA,WAAW,CAACjH,KAAZ,GAAoBA,KAApB;AACAiH,IAAAA,WAAW,CAAClC,MAAZ,GAAqBA,MAArB;AACAkC,IAAAA,WAAW,CAAC2R,SAAZ,GAAwB,IAAI1e,MAAM,CAACwO,YAAX,CACtB1I,KADsB,EAEtBiH,WAAW,CAAC0R,aAFU,CAAxB;AAIA,WAAO1R,WAAW,CAAC2R,SAAnB;AACD,GA1CD;;AA4CA/c,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BuM,SAA5B,GAAwC,UAAUvD,MAAV,EAAkB;AACxD,QAAIuC,EAAE,GAAG,IAAT;;AACA,QAAIqG,WAAW,IAAI,KAAnB,EAA0B;AACxB5I,MAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA2B,UAAUG,KAAV,EAAiB;AAC1CsH,QAAAA,EAAE,CAACQ,QAAH,CAAY9H,KAAZ,EAAmB+E,MAAnB;AACD,OAFD;AAGD,KAJD,MAIO;AACL;AACA;AACA;AACA,UAAIqa,YAAY,GAAGra,MAAM,CAACsa,KAAP,EAAnB;AACAta,MAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA2B,UAAUG,KAAV,EAAiBkI,GAAjB,EAAsB;AAC/C,YAAIoX,WAAW,GAAGF,YAAY,CAACla,SAAb,GAAyBgD,GAAzB,CAAlB;AACAlI,QAAAA,KAAK,CAAC/D,gBAAN,CAAuB,SAAvB,EAAkC,UAAU8K,KAAV,EAAiB;AACjDuY,UAAAA,WAAW,CAACC,OAAZ,GAAsBxY,KAAK,CAACwY,OAA5B;AACD,SAFD;AAGD,OALD;AAMAH,MAAAA,YAAY,CAACla,SAAb,GAAyBrF,OAAzB,CAAiC,UAAUG,KAAV,EAAiB;AAChDsH,QAAAA,EAAE,CAACQ,QAAH,CAAY9H,KAAZ,EAAmBof,YAAnB;AACD,OAFD;AAGD;AACF,GArBD;;AAuBAvjB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BkM,WAA5B,GAA0C,UAAUF,MAAV,EAAkB;AAC1D,QAAI,KAAK+V,SAAT,EAAoB;AAClB,YAAMrC,SAAS,CACb,mBADa,EAEb,2DAFa,CAAf;AAID;;AAED,QAAI,EAAE1T,MAAM,YAAY7N,MAAM,CAACwO,YAA3B,CAAJ,EAA8C;AAC5C,YAAM,IAAIkT,SAAJ,CACJ,iDACE,4CAFE,CAAN;AAID;;AAED,QAAI3U,WAAW,GAAG,KAAKyW,YAAL,CAAkBva,IAAlB,CAAuB,UAAUiI,CAAV,EAAa;AACpD,aAAOA,CAAC,CAACwN,SAAF,KAAgB7Q,MAAvB;AACD,KAFiB,CAAlB;;AAIA,QAAI,CAACd,WAAL,EAAkB;AAChB,YAAMwU,SAAS,CACb,oBADa,EAEb,4CAFa,CAAf;AAID;;AACD,QAAI1W,MAAM,GAAGkC,WAAW,CAAClC,MAAzB;AAEAkC,IAAAA,WAAW,CAAC2R,SAAZ,CAAsBzT,IAAtB;AACA8B,IAAAA,WAAW,CAAC2R,SAAZ,GAAwB,IAAxB;AACA3R,IAAAA,WAAW,CAACjH,KAAZ,GAAoB,IAApB;AACAiH,IAAAA,WAAW,CAAClC,MAAZ,GAAqB,IAArB,CA9B0D;;AAiC1D,QAAI4X,YAAY,GAAG,KAAKe,YAAL,CAAkBjpB,GAAlB,CAAsB,UAAU2W,CAAV,EAAa;AACpD,aAAOA,CAAC,CAACrG,MAAT;AACD,KAFkB,CAAnB;;AAGA,QACE4X,YAAY,CAACxU,OAAb,CAAqBpD,MAArB,MAAiC,CAAC,CAAlC,IACA,KAAK4X,YAAL,CAAkBxU,OAAlB,CAA0BpD,MAA1B,IAAoC,CAAC,CAFvC,EAGE;AACA,WAAK4X,YAAL,CAAkBvU,MAAlB,CAAyB,KAAKuU,YAAL,CAAkBxU,OAAlB,CAA0BpD,MAA1B,CAAzB,EAA4D,CAA5D;AACD;;AAED,SAAKoa,2BAAL;AACD,GA5CD;;AA8CAtjB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4ByM,YAA5B,GAA2C,UAAUzD,MAAV,EAAkB;AAC3D,QAAIuC,EAAE,GAAG,IAAT;AACAvC,IAAAA,MAAM,CAACG,SAAP,GAAmBrF,OAAnB,CAA2B,UAAUG,KAAV,EAAiB;AAC1C,UAAI+H,MAAM,GAAGT,EAAE,CAACK,UAAH,GAAgBxE,IAAhB,CAAqB,UAAUsF,CAAV,EAAa;AAC7C,eAAOA,CAAC,CAACzI,KAAF,KAAYA,KAAnB;AACD,OAFY,CAAb;;AAGA,UAAI+H,MAAJ,EAAY;AACVT,QAAAA,EAAE,CAACW,WAAH,CAAeF,MAAf;AACD;AACF,KAPD;AAQD,GAVD;;AAYAlM,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B4L,UAA5B,GAAyC,YAAY;AACnD,WAAO,KAAK+V,YAAL,CACJ3a,MADI,CACG,UAAUkE,WAAV,EAAuB;AAC7B,aAAO,CAAC,CAACA,WAAW,CAAC2R,SAArB;AACD,KAHI,EAIJnkB,GAJI,CAIA,UAAUwS,WAAV,EAAuB;AAC1B,aAAOA,WAAW,CAAC2R,SAAnB;AACD,KANI,CAAP;AAOD,GARD;;AAUA/c,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B+K,YAA5B,GAA2C,YAAY;AACrD,WAAO,KAAK4W,YAAL,CACJ3a,MADI,CACG,UAAUkE,WAAV,EAAuB;AAC7B,aAAO,CAAC,CAACA,WAAW,CAAC4R,WAArB;AACD,KAHI,EAIJpkB,GAJI,CAIA,UAAUwS,WAAV,EAAuB;AAC1B,aAAOA,WAAW,CAAC4R,WAAnB;AACD,KANI,CAAP;AAOD,GARD;;AAUAhd,EAAAA,iBAAiB,CAACE,SAAlB,CAA4ByjB,kBAA5B,GAAiD,UAC/CC,aAD+C,EAE/CvC,WAF+C,EAG/C;AACA,QAAI5V,EAAE,GAAG,IAAT;;AACA,QAAI4V,WAAW,IAAIuC,aAAa,GAAG,CAAnC,EAAsC;AACpC,aAAO,KAAK/B,YAAL,CAAkB,CAAlB,EAAqBjF,WAA5B;AACD,KAFD,MAEO,IAAI,KAAK6E,aAAL,CAAmBvmB,MAAvB,EAA+B;AACpC,aAAO,KAAKumB,aAAL,CAAmB7N,KAAnB,EAAP;AACD;;AACD,QAAIgJ,WAAW,GAAG,IAAIve,MAAM,CAACuE,cAAX,CAA0B;AAC1CiP,MAAAA,UAAU,EAAE,KAAK+P,OAAL,CAAa/P,UADiB;AAE1C8P,MAAAA,YAAY,EAAE,KAAKC,OAAL,CAAaJ;AAFe,KAA1B,CAAlB;AAIApgB,IAAAA,MAAM,CAACE,cAAP,CAAsBsb,WAAtB,EAAmC,OAAnC,EAA4C;AAC1C1iB,MAAAA,KAAK,EAAE,KADmC;AAE1C2pB,MAAAA,QAAQ,EAAE;AAFgC,KAA5C;AAKA,SAAKhC,YAAL,CAAkB+B,aAAlB,EAAiCE,uBAAjC,GAA2D,EAA3D;;AACA,SAAKjC,YAAL,CAAkB+B,aAAlB,EAAiCG,gBAAjC,GAAoD,UAAU7Y,KAAV,EAAiB;AACnE,UAAI8Y,GAAG,GAAG,CAAC9Y,KAAK,CAAC8I,SAAP,IAAoB5S,MAAM,CAACC,IAAP,CAAY6J,KAAK,CAAC8I,SAAlB,EAA6B9Y,MAA7B,KAAwC,CAAtE,CADmE;AAGnE;;AACA0hB,MAAAA,WAAW,CAACqH,KAAZ,GAAoBD,GAAG,GAAG,WAAH,GAAiB,WAAxC;;AACA,UAAIvY,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BE,uBAA/B,KAA2D,IAA/D,EAAqE;AACnErY,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BE,uBAA/B,CAAuDrf,IAAvD,CAA4DyG,KAA5D;AACD;AACF,KARD;;AASA0R,IAAAA,WAAW,CAACxc,gBAAZ,CACE,gBADF,EAEE,KAAKyhB,YAAL,CAAkB+B,aAAlB,EAAiCG,gBAFnC;AAIA,WAAOnH,WAAP;AACD,GAlCD,CA3VqD;;;AAgYrD5c,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BgkB,OAA5B,GAAsC,UAAU7M,GAAV,EAAeuM,aAAf,EAA8B;AAClE,QAAInY,EAAE,GAAG,IAAT;AACA,QAAImR,WAAW,GAAG,KAAKiF,YAAL,CAAkB+B,aAAlB,EAAiChH,WAAnD;;AACA,QAAIA,WAAW,CAACuH,gBAAhB,EAAkC;AAChC;AACD;;AACD,QAAIL,uBAAuB,GACzB,KAAKjC,YAAL,CAAkB+B,aAAlB,EAAiCE,uBADnC;AAEA,SAAKjC,YAAL,CAAkB+B,aAAlB,EAAiCE,uBAAjC,GAA2D,IAA3D;AACAlH,IAAAA,WAAW,CAAC7b,mBAAZ,CACE,gBADF,EAEE,KAAK8gB,YAAL,CAAkB+B,aAAlB,EAAiCG,gBAFnC;;AAIAnH,IAAAA,WAAW,CAACuH,gBAAZ,GAA+B,UAAUC,GAAV,EAAe;AAC5C,UAAI3Y,EAAE,CAAC4V,WAAH,IAAkBuC,aAAa,GAAG,CAAtC,EAAyC;AACvC;AACA;AACA;AACA;AACD;;AACD,UAAI1Y,KAAK,GAAG,IAAIC,KAAJ,CAAU,cAAV,CAAZ;AACAD,MAAAA,KAAK,CAAC8I,SAAN,GAAkB;AAAEqQ,QAAAA,MAAM,EAAEhN,GAAV;AAAeuM,QAAAA,aAAa,EAAEA;AAA9B,OAAlB;AAEA,UAAIU,IAAI,GAAGF,GAAG,CAACpQ,SAAf,CAV4C;;AAY5C,UAAIgQ,GAAG,GAAG,CAACM,IAAD,IAASljB,MAAM,CAACC,IAAP,CAAYijB,IAAZ,EAAkBppB,MAAlB,KAA6B,CAAhD;;AACA,UAAI8oB,GAAJ,EAAS;AACP;AACA;AACA,YAAIpH,WAAW,CAACqH,KAAZ,KAAsB,KAAtB,IAA+BrH,WAAW,CAACqH,KAAZ,KAAsB,WAAzD,EAAsE;AACpErH,UAAAA,WAAW,CAACqH,KAAZ,GAAoB,WAApB;AACD;AACF,OAND,MAMO;AACL,YAAIrH,WAAW,CAACqH,KAAZ,KAAsB,KAA1B,EAAiC;AAC/BrH,UAAAA,WAAW,CAACqH,KAAZ,GAAoB,WAApB;AACD,SAHI;;;AAKLK,QAAAA,IAAI,CAACxrB,SAAL,GAAiB,CAAjB,CALK;;AAOLwrB,QAAAA,IAAI,CAAC5P,KAAL,GAAakI,WAAW,CAACC,kBAAZ,GAAiClI,gBAA9C;AAEA,YAAI4P,mBAAmB,GAAG5U,GAAG,CAACiF,cAAJ,CAAmB0P,IAAnB,CAA1B;AACApZ,QAAAA,KAAK,CAAC8I,SAAN,GAAkB5S,MAAM,CAACsC,MAAP,CAChBwH,KAAK,CAAC8I,SADU,EAEhBrE,GAAG,CAACmE,cAAJ,CAAmByQ,mBAAnB,CAFgB,CAAlB;AAKArZ,QAAAA,KAAK,CAAC8I,SAAN,CAAgBA,SAAhB,GAA4BuQ,mBAA5B;;AACArZ,QAAAA,KAAK,CAAC8I,SAAN,CAAgBwQ,MAAhB,GAAyB,YAAY;AACnC,iBAAO;AACLxQ,YAAAA,SAAS,EAAE9I,KAAK,CAAC8I,SAAN,CAAgBA,SADtB;AAELqQ,YAAAA,MAAM,EAAEnZ,KAAK,CAAC8I,SAAN,CAAgBqQ,MAFnB;AAGLT,YAAAA,aAAa,EAAE1Y,KAAK,CAAC8I,SAAN,CAAgB4P,aAH1B;AAILjP,YAAAA,gBAAgB,EAAEzJ,KAAK,CAAC8I,SAAN,CAAgBW;AAJ7B,WAAP;AAMD,SAPD;AAQD,OA3C2C;;;AA8C5C,UAAIjB,QAAQ,GAAG/D,GAAG,CAACgE,gBAAJ,CAAqBlI,EAAE,CAACuV,iBAAH,CAAqBrR,GAA1C,CAAf;;AACA,UAAI,CAACqU,GAAL,EAAU;AACRtQ,QAAAA,QAAQ,CAACxI,KAAK,CAAC8I,SAAN,CAAgB4P,aAAjB,CAAR,IACE,OAAO1Y,KAAK,CAAC8I,SAAN,CAAgBA,SAAvB,GAAmC,MADrC;AAED,OAHD,MAGO;AACLN,QAAAA,QAAQ,CAACxI,KAAK,CAAC8I,SAAN,CAAgB4P,aAAjB,CAAR,IAA2C,yBAA3C;AACD;;AACDnY,MAAAA,EAAE,CAACuV,iBAAH,CAAqBrR,GAArB,GACEA,GAAG,CAAC8D,cAAJ,CAAmBhI,EAAE,CAACuV,iBAAH,CAAqBrR,GAAxC,IAA+C+D,QAAQ,CAACmB,IAAT,CAAc,EAAd,CADjD;AAEA,UAAI4P,QAAQ,GAAGhZ,EAAE,CAACoW,YAAH,CAAgB6C,KAAhB,CAAsB,UAAUtZ,WAAV,EAAuB;AAC1D,eACEA,WAAW,CAACwR,WAAZ,IACAxR,WAAW,CAACwR,WAAZ,CAAwBqH,KAAxB,KAAkC,WAFpC;AAID,OALc,CAAf;;AAOA,UAAIxY,EAAE,CAAC2V,iBAAH,KAAyB,WAA7B,EAA0C;AACxC3V,QAAAA,EAAE,CAAC2V,iBAAH,GAAuB,WAAvB;;AACA3V,QAAAA,EAAE,CAACmX,yBAAH;AACD,OAjE2C;AAoE5C;;;AACA,UAAI,CAACoB,GAAL,EAAU;AACRvY,QAAAA,EAAE,CAAC+U,cAAH,CAAkB,cAAlB,EAAkCtV,KAAlC;AACD;;AACD,UAAIuZ,QAAJ,EAAc;AACZhZ,QAAAA,EAAE,CAAC+U,cAAH,CAAkB,cAAlB,EAAkC,IAAIrV,KAAJ,CAAU,cAAV,CAAlC;;AACAM,QAAAA,EAAE,CAAC2V,iBAAH,GAAuB,UAAvB;;AACA3V,QAAAA,EAAE,CAACmX,yBAAH;AACD;AACF,KA7ED,CAbkE;;;AA6FlEvkB,IAAAA,MAAM,CAACkiB,UAAP,CAAkB,YAAY;AAC5BuD,MAAAA,uBAAuB,CAAC9f,OAAxB,CAAgC,UAAUxI,CAAV,EAAa;AAC3CohB,QAAAA,WAAW,CAACuH,gBAAZ,CAA6B3oB,CAA7B;AACD,OAFD;AAGD,KAJD,EAIG,CAJH;AAKD,GAlGD,CAhYqD;;;AAqerDwE,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BmjB,2BAA5B,GAA0D,YAAY;AACpE,QAAI5X,EAAE,GAAG,IAAT;AACA,QAAI8T,YAAY,GAAG,IAAIlhB,MAAM,CAACsmB,eAAX,CAA2B,IAA3B,CAAnB;;AACApF,IAAAA,YAAY,CAACqF,gBAAb,GAAgC,YAAY;AAC1CnZ,MAAAA,EAAE,CAACoZ,yBAAH;;AACApZ,MAAAA,EAAE,CAACqZ,sBAAH;AACD,KAHD;;AAKA,QAAIhI,aAAa,GAAG,IAAIze,MAAM,CAAC0mB,gBAAX,CAA4BxF,YAA5B,CAApB;;AACAzC,IAAAA,aAAa,CAACkI,iBAAd,GAAkC,YAAY;AAC5CvZ,MAAAA,EAAE,CAACqZ,sBAAH;AACD,KAFD;;AAGAhI,IAAAA,aAAa,CAACmI,OAAd,GAAwB,YAAY;AAClC;AACA7jB,MAAAA,MAAM,CAACE,cAAP,CAAsBwb,aAAtB,EAAqC,OAArC,EAA8C;AAC5C5iB,QAAAA,KAAK,EAAE,QADqC;AAE5C2pB,QAAAA,QAAQ,EAAE;AAFkC,OAA9C;;AAIApY,MAAAA,EAAE,CAACqZ,sBAAH;AACD,KAPD;;AASA,WAAO;AACLvF,MAAAA,YAAY,EAAEA,YADT;AAELzC,MAAAA,aAAa,EAAEA;AAFV,KAAP;AAID,GAzBD,CAreqD;AAigBrD;;;AACA9c,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BglB,4BAA5B,GAA2D,UACzDtB,aADyD,EAEzD;AACA,QAAIhH,WAAW,GAAG,KAAKiF,YAAL,CAAkB+B,aAAlB,EAAiChH,WAAnD;;AACA,QAAIA,WAAJ,EAAiB;AACf,aAAOA,WAAW,CAACuH,gBAAnB;AACA,aAAO,KAAKtC,YAAL,CAAkB+B,aAAlB,EAAiChH,WAAxC;AACD;;AACD,QAAI2C,YAAY,GAAG,KAAKsC,YAAL,CAAkB+B,aAAlB,EAAiCrE,YAApD;;AACA,QAAIA,YAAJ,EAAkB;AAChB,aAAOA,YAAY,CAACqF,gBAApB;AACA,aAAO,KAAK/C,YAAL,CAAkB+B,aAAlB,EAAiCrE,YAAxC;AACD;;AACD,QAAIzC,aAAa,GAAG,KAAK+E,YAAL,CAAkB+B,aAAlB,EAAiC9G,aAArD;;AACA,QAAIA,aAAJ,EAAmB;AACjB,aAAOA,aAAa,CAACkI,iBAArB;AACA,aAAOlI,aAAa,CAACmI,OAArB;AACA,aAAO,KAAKpD,YAAL,CAAkB+B,aAAlB,EAAiC9G,aAAxC;AACD;AACF,GAnBD,CAlgBqD;;;AAwhBrD9c,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BilB,WAA5B,GAA0C,UAAU/Z,WAAV,EAAuBga,IAAvB,EAA6BC,IAA7B,EAAmC;AAC3E,QAAIzoB,MAAM,GAAGwhB,qBAAqB,CAChChT,WAAW,CAACiT,iBADoB,EAEhCjT,WAAW,CAACkT,kBAFoB,CAAlC;;AAIA,QAAI8G,IAAI,IAAIha,WAAW,CAAC2R,SAAxB,EAAmC;AACjCngB,MAAAA,MAAM,CAAC0oB,SAAP,GAAmBla,WAAW,CAAC8R,sBAA/B;AACAtgB,MAAAA,MAAM,CAACyc,IAAP,GAAc;AACZ0B,QAAAA,KAAK,EAAEpL,GAAG,CAACoD,UADC;AAEZmI,QAAAA,QAAQ,EAAE9P,WAAW,CAACyP,cAAZ,CAA2BK;AAFzB,OAAd;;AAIA,UAAI9P,WAAW,CAAC6X,sBAAZ,CAAmC/nB,MAAvC,EAA+C;AAC7C0B,QAAAA,MAAM,CAACyc,IAAP,CAAYxC,IAAZ,GAAmBzL,WAAW,CAAC6X,sBAAZ,CAAmC,CAAnC,EAAsCpM,IAAzD;AACD;;AACDzL,MAAAA,WAAW,CAAC2R,SAAZ,CAAsBqI,IAAtB,CAA2BxoB,MAA3B;AACD;;AACD,QAAIyoB,IAAI,IAAIja,WAAW,CAAC4R,WAApB,IAAmCpgB,MAAM,CAACsc,MAAP,CAAche,MAAd,GAAuB,CAA9D,EAAiE;AAC/D;AACA,UACEkQ,WAAW,CAAChE,IAAZ,KAAqB,OAArB,IACAgE,WAAW,CAAC6X,sBADZ,IAEAnR,WAAW,GAAG,KAHhB,EAIE;AACA1G,QAAAA,WAAW,CAAC6X,sBAAZ,CAAmCjf,OAAnC,CAA2C,UAAUuhB,CAAV,EAAa;AACtD,iBAAOA,CAAC,CAAChL,GAAT;AACD,SAFD;AAGD;;AACD,UAAInP,WAAW,CAAC6X,sBAAZ,CAAmC/nB,MAAvC,EAA+C;AAC7C0B,QAAAA,MAAM,CAAC0oB,SAAP,GAAmBla,WAAW,CAAC6X,sBAA/B;AACD,OAFD,MAEO;AACLrmB,QAAAA,MAAM,CAAC0oB,SAAP,GAAmB,CAAC,EAAD,CAAnB;AACD;;AACD1oB,MAAAA,MAAM,CAACyc,IAAP,GAAc;AACZ6B,QAAAA,QAAQ,EAAE9P,WAAW,CAACyP,cAAZ,CAA2BK;AADzB,OAAd;;AAGA,UAAI9P,WAAW,CAACyP,cAAZ,CAA2BE,KAA/B,EAAsC;AACpCne,QAAAA,MAAM,CAACyc,IAAP,CAAY0B,KAAZ,GAAoB3P,WAAW,CAACyP,cAAZ,CAA2BE,KAA/C;AACD;;AACD,UAAI3P,WAAW,CAAC8R,sBAAZ,CAAmChiB,MAAvC,EAA+C;AAC7C0B,QAAAA,MAAM,CAACyc,IAAP,CAAYxC,IAAZ,GAAmBzL,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IAAzD;AACD;;AACDzL,MAAAA,WAAW,CAAC4R,WAAZ,CAAwBwI,OAAxB,CAAgC5oB,MAAhC;AACD;AACF,GA3CD;;AA6CAoD,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BuQ,mBAA5B,GAAkD,UAAUf,WAAV,EAAuB;AACvE,QAAIjE,EAAE,GAAG,IAAT,CADuE;;AAIvE,QAAI,CAAC,OAAD,EAAU,QAAV,EAAoBa,OAApB,CAA4BoD,WAAW,CAACtV,IAAxC,MAAkD,CAAC,CAAvD,EAA0D;AACxD,aAAO6C,OAAO,CAACC,MAAR,CACL0iB,SAAS,CAAC,WAAD,EAAc,uBAAuBlQ,WAAW,CAACtV,IAAnC,GAA0C,GAAxD,CADJ,CAAP;AAGD;;AAED,QACE,CAAC8kB,+BAA+B,CAC9B,qBAD8B,EAE9BxP,WAAW,CAACtV,IAFkB,EAG9BqR,EAAE,CAAC6D,cAH2B,CAAhC,IAKA7D,EAAE,CAACwW,SANL,EAOE;AACA,aAAOhlB,OAAO,CAACC,MAAR,CACL0iB,SAAS,CACP,mBADO,EAEP,uBACElQ,WAAW,CAACtV,IADd,GAEE,YAFF,GAGEqR,EAAE,CAAC6D,cALE,CADJ,CAAP;AASD;;AAED,QAAIoE,QAAJ;AACA,QAAI+D,WAAJ;;AACA,QAAI/H,WAAW,CAACtV,IAAZ,KAAqB,OAAzB,EAAkC;AAChC;AACA;AACAsZ,MAAAA,QAAQ,GAAG/D,GAAG,CAAC0D,aAAJ,CAAkB3D,WAAW,CAACC,GAA9B,CAAX;AACA8H,MAAAA,WAAW,GAAG/D,QAAQ,CAACE,KAAT,EAAd;AACAF,MAAAA,QAAQ,CAAC1P,OAAT,CAAiB,UAAUoT,YAAV,EAAwBwM,aAAxB,EAAuC;AACtD,YAAIlK,IAAI,GAAG/J,GAAG,CAACsJ,kBAAJ,CAAuB7B,YAAvB,CAAX;AACA3L,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BvF,iBAA/B,GAAmD3E,IAAnD;AACD,OAHD;AAKAjO,MAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuBwY,aAAvB,EAAsC;AAC5DnY,QAAAA,EAAE,CAACyY,OAAH,CAAW9Y,WAAW,CAACiM,GAAvB,EAA4BuM,aAA5B;AACD,OAFD;AAGD,KAbD,MAaO,IAAIlU,WAAW,CAACtV,IAAZ,KAAqB,QAAzB,EAAmC;AACxCsZ,MAAAA,QAAQ,GAAG/D,GAAG,CAAC0D,aAAJ,CAAkB5H,EAAE,CAACwV,kBAAH,CAAsBtR,GAAxC,CAAX;AACA8H,MAAAA,WAAW,GAAG/D,QAAQ,CAACE,KAAT,EAAd;AACA,UAAI6R,SAAS,GAAG9V,GAAG,CAACkE,WAAJ,CAAgB4D,WAAhB,EAA6B,YAA7B,EAA2Cvc,MAA3C,GAAoD,CAApE;AACAwY,MAAAA,QAAQ,CAAC1P,OAAT,CAAiB,UAAUoT,YAAV,EAAwBwM,aAAxB,EAAuC;AACtD,YAAIxY,WAAW,GAAGK,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CAAlB;AACA,YAAIhH,WAAW,GAAGxR,WAAW,CAACwR,WAA9B;AACA,YAAI2C,YAAY,GAAGnU,WAAW,CAACmU,YAA/B;AACA,YAAIzC,aAAa,GAAG1R,WAAW,CAAC0R,aAAhC;AACA,YAAIuB,iBAAiB,GAAGjT,WAAW,CAACiT,iBAApC;AACA,YAAIC,kBAAkB,GAAGlT,WAAW,CAACkT,kBAArC,CANsD;;AAStD,YAAIoH,QAAQ,GACV/V,GAAG,CAAC0N,UAAJ,CAAejG,YAAf,KACAzH,GAAG,CAACkE,WAAJ,CAAgBuD,YAAhB,EAA8B,eAA9B,EAA+Clc,MAA/C,KAA0D,CAF5D;;AAIA,YAAI,CAACwqB,QAAD,IAAa,CAACta,WAAW,CAACsa,QAA9B,EAAwC;AACtC,cAAIC,mBAAmB,GAAGhW,GAAG,CAACkJ,gBAAJ,CACxBzB,YADwB,EAExBK,WAFwB,CAA1B;AAIA,cAAImO,oBAAoB,GAAGjW,GAAG,CAAC6H,iBAAJ,CACzBJ,YADyB,EAEzBK,WAFyB,CAA3B;;AAIA,cAAIgO,SAAJ,EAAe;AACbG,YAAAA,oBAAoB,CAAClO,IAArB,GAA4B,QAA5B;AACD;;AAED,cAAI,CAACjM,EAAE,CAAC4V,WAAJ,IAAmBuC,aAAa,KAAK,CAAzC,EAA4C;AAC1CnY,YAAAA,EAAE,CAACyY,OAAH,CAAW9Y,WAAW,CAACiM,GAAvB,EAA4BuM,aAA5B;;AACA,gBAAIrE,YAAY,CAAC0E,KAAb,KAAuB,KAA3B,EAAkC;AAChC1E,cAAAA,YAAY,CAACsG,KAAb,CACEjJ,WADF,EAEE+I,mBAFF,EAGEF,SAAS,GAAG,aAAH,GAAmB,YAH9B;AAKD;;AACD,gBAAI3I,aAAa,CAACmH,KAAd,KAAwB,KAA5B,EAAmC;AACjCnH,cAAAA,aAAa,CAAC+I,KAAd,CAAoBD,oBAApB;AACD;AACF,WAzBqC;;;AA4BtC,cAAIhpB,MAAM,GAAGwhB,qBAAqB,CAChCC,iBADgC,EAEhCC,kBAFgC,CAAlC,CA5BsC;AAkCtC;;AACA7S,UAAAA,EAAE,CAAC0Z,WAAH,CAAe/Z,WAAf,EAA4BxO,MAAM,CAACsc,MAAP,CAAche,MAAd,GAAuB,CAAnD,EAAsD,KAAtD;AACD;AACF,OAlDD;AAmDD;;AAEDuQ,IAAAA,EAAE,CAACuV,iBAAH,GAAuB;AACrB5mB,MAAAA,IAAI,EAAEsV,WAAW,CAACtV,IADG;AAErBuV,MAAAA,GAAG,EAAED,WAAW,CAACC;AAFI,KAAvB;;AAIA,QAAID,WAAW,CAACtV,IAAZ,KAAqB,OAAzB,EAAkC;AAChCqR,MAAAA,EAAE,CAACqa,qBAAH,CAAyB,kBAAzB;AACD,KAFD,MAEO;AACLra,MAAAA,EAAE,CAACqa,qBAAH,CAAyB,QAAzB;AACD;;AAED,WAAO7oB,OAAO,CAACQ,OAAR,EAAP;AACD,GAhHD;;AAkHAuC,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B2K,oBAA5B,GAAmD,UAAU6E,WAAV,EAAuB;AACxE,QAAIjE,EAAE,GAAG,IAAT,CADwE;;AAIxE,QAAI,CAAC,OAAD,EAAU,QAAV,EAAoBa,OAApB,CAA4BoD,WAAW,CAACtV,IAAxC,MAAkD,CAAC,CAAvD,EAA0D;AACxD,aAAO6C,OAAO,CAACC,MAAR,CACL0iB,SAAS,CAAC,WAAD,EAAc,uBAAuBlQ,WAAW,CAACtV,IAAnC,GAA0C,GAAxD,CADJ,CAAP;AAGD;;AAED,QACE,CAAC8kB,+BAA+B,CAC9B,sBAD8B,EAE9BxP,WAAW,CAACtV,IAFkB,EAG9BqR,EAAE,CAAC6D,cAH2B,CAAhC,IAKA7D,EAAE,CAACwW,SANL,EAOE;AACA,aAAOhlB,OAAO,CAACC,MAAR,CACL0iB,SAAS,CACP,mBADO,EAEP,wBACElQ,WAAW,CAACtV,IADd,GAEE,YAFF,GAGEqR,EAAE,CAAC6D,cALE,CADJ,CAAP;AASD;;AAED,QAAIjE,OAAO,GAAG,EAAd;AACAI,IAAAA,EAAE,CAACsV,aAAH,CAAiB/c,OAAjB,CAAyB,UAAUkF,MAAV,EAAkB;AACzCmC,MAAAA,OAAO,CAACnC,MAAM,CAACnF,EAAR,CAAP,GAAqBmF,MAArB;AACD,KAFD;AAGA,QAAI6c,YAAY,GAAG,EAAnB;AACA,QAAIrS,QAAQ,GAAG/D,GAAG,CAAC0D,aAAJ,CAAkB3D,WAAW,CAACC,GAA9B,CAAf;AACA,QAAI8H,WAAW,GAAG/D,QAAQ,CAACE,KAAT,EAAlB;AACA,QAAI6R,SAAS,GAAG9V,GAAG,CAACkE,WAAJ,CAAgB4D,WAAhB,EAA6B,YAA7B,EAA2Cvc,MAA3C,GAAoD,CAApE;AACA,QAAImmB,WAAW,GACb1R,GAAG,CAACkE,WAAJ,CAAgB4D,WAAhB,EAA6B,iBAA7B,EAAgDvc,MAAhD,GAAyD,CAD3D;AAEAuQ,IAAAA,EAAE,CAAC4V,WAAH,GAAiBA,WAAjB;AACA,QAAI2E,UAAU,GAAGrW,GAAG,CAACkE,WAAJ,CAAgB4D,WAAhB,EAA6B,gBAA7B,EAA+C,CAA/C,CAAjB;;AACA,QAAIuO,UAAJ,EAAgB;AACdva,MAAAA,EAAE,CAACmV,uBAAH,GACEoF,UAAU,CAAClT,MAAX,CAAkB,EAAlB,EAAsBK,KAAtB,CAA4B,GAA5B,EAAiC7G,OAAjC,CAAyC,SAAzC,KAAuD,CADzD;AAED,KAHD,MAGO;AACLb,MAAAA,EAAE,CAACmV,uBAAH,GAA6B,KAA7B;AACD;;AAEDlN,IAAAA,QAAQ,CAAC1P,OAAT,CAAiB,UAAUoT,YAAV,EAAwBwM,aAAxB,EAAuC;AACtD,UAAIpN,KAAK,GAAG7G,GAAG,CAACqD,UAAJ,CAAeoE,YAAf,CAAZ;AACA,UAAIhQ,IAAI,GAAGuI,GAAG,CAACyN,OAAJ,CAAYhG,YAAZ,CAAX,CAFsD;;AAItD,UAAIsO,QAAQ,GACV/V,GAAG,CAAC0N,UAAJ,CAAejG,YAAf,KACAzH,GAAG,CAACkE,WAAJ,CAAgBuD,YAAhB,EAA8B,eAA9B,EAA+Clc,MAA/C,KAA0D,CAF5D;AAGA,UAAIgZ,QAAQ,GAAGsC,KAAK,CAAC,CAAD,CAAL,CAAS1D,MAAT,CAAgB,CAAhB,EAAmBK,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAAf;AAEA,UAAIuC,SAAS,GAAG/F,GAAG,CAACwN,YAAJ,CAAiB/F,YAAjB,EAA+BK,WAA/B,CAAhB;AACA,UAAIwO,UAAU,GAAGtW,GAAG,CAACyL,SAAJ,CAAchE,YAAd,CAAjB;AAEA,UAAIC,GAAG,GAAG1H,GAAG,CAACwH,MAAJ,CAAWC,YAAX,KAA4BzH,GAAG,CAACgD,kBAAJ,EAAtC,CAZsD;;AAetD,UACE+S,QAAQ,IACPte,IAAI,KAAK,aAAT,KACE8M,QAAQ,KAAK,WAAb,IAA4BA,QAAQ,KAAK,eAD3C,CAFH,EAIE;AACA;AACA;AACAzI,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,IAAiC;AAC/BvM,UAAAA,GAAG,EAAEA,GAD0B;AAE/BjQ,UAAAA,IAAI,EAAEA,IAFyB;AAG/B8M,UAAAA,QAAQ,EAAEA,QAHqB;AAI/BwR,UAAAA,QAAQ,EAAE;AAJqB,SAAjC;AAMA;AACD;;AAED,UACE,CAACA,QAAD,IACAja,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CADA,IAEAnY,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B8B,QAHjC,EAIE;AACA;AACAja,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,IAAiCnY,EAAE,CAACqX,kBAAH,CAAsB1b,IAAtB,EAA4B,IAA5B,CAAjC;AACD;;AAED,UAAIgE,WAAJ;AACA,UAAIwR,WAAJ;AACA,UAAI2C,YAAJ;AACA,UAAIzC,aAAJ;AACA,UAAIE,WAAJ;AACA,UAAIE,sBAAJ;AACA,UAAI+F,sBAAJ;AACA,UAAI5E,iBAAJ;AAEA,UAAIla,KAAJ,CAjDsD;;AAmDtD,UAAIma,kBAAkB,GAAG3O,GAAG,CAACsJ,kBAAJ,CAAuB7B,YAAvB,CAAzB;AACA,UAAIuO,mBAAJ;AACA,UAAIC,oBAAJ;;AACA,UAAI,CAACF,QAAL,EAAe;AACbC,QAAAA,mBAAmB,GAAGhW,GAAG,CAACkJ,gBAAJ,CAAqBzB,YAArB,EAAmCK,WAAnC,CAAtB;AACAmO,QAAAA,oBAAoB,GAAGjW,GAAG,CAAC6H,iBAAJ,CAAsBJ,YAAtB,EAAoCK,WAApC,CAAvB;AACAmO,QAAAA,oBAAoB,CAAClO,IAArB,GAA4B,QAA5B;AACD;;AACDuL,MAAAA,sBAAsB,GAAGtT,GAAG,CAACkK,0BAAJ,CAA+BzC,YAA/B,CAAzB;AAEA,UAAIyD,cAAc,GAAGlL,GAAG,CAACiL,mBAAJ,CAAwBxD,YAAxB,CAArB;AAEA,UAAI8O,UAAU,GACZvW,GAAG,CAACkE,WAAJ,CAAgBuD,YAAhB,EAA8B,qBAA9B,EAAqDK,WAArD,EACGvc,MADH,GACY,CAFd;AAGA,UAAIirB,KAAK,GAAGxW,GAAG,CACZkE,WADS,CACGuD,YADH,EACiB,cADjB,EAETxe,GAFS,CAEL,UAAU0rB,IAAV,EAAgB;AACnB,eAAO3U,GAAG,CAACmE,cAAJ,CAAmBwQ,IAAnB,CAAP;AACD,OAJS,EAKTpd,MALS,CAKF,UAAUod,IAAV,EAAgB;AACtB,eAAOA,IAAI,CAACxrB,SAAL,KAAmB,CAA1B;AACD,OAPS,CAAZ,CAlEsD;;AA4EtD,UACE,CAAC4W,WAAW,CAACtV,IAAZ,KAAqB,OAArB,IAAgCsV,WAAW,CAACtV,IAAZ,KAAqB,QAAtD,KACA,CAACsrB,QADD,IAEArE,WAFA,IAGAuC,aAAa,GAAG,CAHhB,IAIAnY,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CALF,EAME;AACAnY,QAAAA,EAAE,CAACyZ,4BAAH,CAAgCtB,aAAhC;;AACAnY,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BhH,WAA/B,GACEnR,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmBjF,WADrB;AAEAnR,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BrE,YAA/B,GACE9T,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmBtC,YADrB;AAEA9T,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B9G,aAA/B,GACErR,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmB/E,aADrB;;AAEA,YAAIrR,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B7G,SAAnC,EAA8C;AAC5CtR,UAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B7G,SAA/B,CAAyCqJ,YAAzC,CACE3a,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmB/E,aADrB;AAGD;;AACD,YAAIrR,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B5G,WAAnC,EAAgD;AAC9CvR,UAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B5G,WAA/B,CAA2CoJ,YAA3C,CACE3a,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmB/E,aADrB;AAGD;AACF;;AACD,UAAIpN,WAAW,CAACtV,IAAZ,KAAqB,OAArB,IAAgC,CAACsrB,QAArC,EAA+C;AAC7Cta,QAAAA,WAAW,GACTK,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,KAAkCnY,EAAE,CAACqX,kBAAH,CAAsB1b,IAAtB,CADpC;AAEAgE,QAAAA,WAAW,CAACiM,GAAZ,GAAkBA,GAAlB;;AAEA,YAAI,CAACjM,WAAW,CAACwR,WAAjB,EAA8B;AAC5BxR,UAAAA,WAAW,CAACwR,WAAZ,GAA0BnR,EAAE,CAACkY,kBAAH,CACxBC,aADwB,EAExBvC,WAFwB,CAA1B;AAID;;AAED,YAAI8E,KAAK,CAACjrB,MAAN,IAAgBkQ,WAAW,CAACmU,YAAZ,CAAyB0E,KAAzB,KAAmC,KAAvD,EAA8D;AAC5D,cAAIiC,UAAU,KAAK,CAAC7E,WAAD,IAAgBuC,aAAa,KAAK,CAAvC,CAAd,EAAyD;AACvDxY,YAAAA,WAAW,CAACmU,YAAZ,CAAyB8G,mBAAzB,CAA6CF,KAA7C;AACD,WAFD,MAEO;AACLA,YAAAA,KAAK,CAACniB,OAAN,CAAc,UAAUgQ,SAAV,EAAqB;AACjCsL,cAAAA,iBAAiB,CAAClU,WAAW,CAACmU,YAAb,EAA2BvL,SAA3B,CAAjB;AACD,aAFD;AAGD;AACF;;AAEDqK,QAAAA,iBAAiB,GAAGhgB,MAAM,CAAC8P,cAAP,CAAsBmY,eAAtB,CAAsClf,IAAtC,CAApB,CAtB6C;AAyB7C;;AACA,YAAI0K,WAAW,GAAG,KAAlB,EAAyB;AACvBuM,UAAAA,iBAAiB,CAACnF,MAAlB,GAA2BmF,iBAAiB,CAACnF,MAAlB,CAAyBhS,MAAzB,CAAgC,UACzDoO,KADyD,EAEzD;AACA,mBAAOA,KAAK,CAACvc,IAAN,KAAe,KAAtB;AACD,WAJ0B,CAA3B;AAKD;;AAEDmkB,QAAAA,sBAAsB,GAAG9R,WAAW,CAAC8R,sBAAZ,IAAsC,CAC7D;AACErG,UAAAA,IAAI,EAAE,CAAC,IAAI+M,aAAJ,GAAoB,CAArB,IAA0B;AADlC,SAD6D,CAA/D,CAlC6C;;AAyC7C,YAAI2C,UAAU,GAAG,KAAjB;;AACA,YAAI7Q,SAAS,KAAK,UAAd,IAA4BA,SAAS,KAAK,UAA9C,EAA0D;AACxD6Q,UAAAA,UAAU,GAAG,CAACnb,WAAW,CAAC4R,WAA1B;AACAA,UAAAA,WAAW,GACT5R,WAAW,CAAC4R,WAAZ,IACA,IAAI3e,MAAM,CAAC8P,cAAX,CAA0B/C,WAAW,CAAC0R,aAAtC,EAAqD1V,IAArD,CAFF;;AAIA,cAAImf,UAAJ,EAAgB;AACd,gBAAIrd,MAAJ;AACA/E,YAAAA,KAAK,GAAG6Y,WAAW,CAAC7Y,KAApB,CAFc;;AAId,gBAAI8hB,UAAU,IAAIA,UAAU,CAAC/c,MAAX,KAAsB,GAAxC,EAA4C,CAA5C,KACK,IAAI+c,UAAJ,EAAgB;AACnB,kBAAI,CAAC5a,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAZ,EAAiC;AAC/BmC,gBAAAA,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAP,GAA6B,IAAI7K,MAAM,CAACkM,WAAX,EAA7B;AACAnJ,gBAAAA,MAAM,CAACE,cAAP,CAAsB+J,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAA7B,EAAkD,IAAlD,EAAwD;AACtDlP,kBAAAA,GAAG,EAAE,YAAY;AACf,2BAAOisB,UAAU,CAAC/c,MAAlB;AACD;AAHqD,iBAAxD;AAKD;;AACD9H,cAAAA,MAAM,CAACE,cAAP,CAAsB6C,KAAtB,EAA6B,IAA7B,EAAmC;AACjCnK,gBAAAA,GAAG,EAAE,YAAY;AACf,yBAAOisB,UAAU,CAAC9hB,KAAlB;AACD;AAHgC,eAAnC;AAKA+E,cAAAA,MAAM,GAAGmC,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAhB;AACD,aAfI,MAeE;AACL,kBAAI,CAACmC,OAAO,CAAC/R,OAAb,EAAsB;AACpB+R,gBAAAA,OAAO,CAAC/R,OAAR,GAAkB,IAAI+E,MAAM,CAACkM,WAAX,EAAlB;AACD;;AACDrB,cAAAA,MAAM,GAAGmC,OAAO,CAAC/R,OAAjB;AACD;;AACD,gBAAI4P,MAAJ,EAAY;AACVgX,cAAAA,4BAA4B,CAAC/b,KAAD,EAAQ+E,MAAR,CAA5B;AACAkC,cAAAA,WAAW,CAAC8X,4BAAZ,CAAyCze,IAAzC,CAA8CyE,MAA9C;AACD;;AACD6c,YAAAA,YAAY,CAACthB,IAAb,CAAkB,CAACN,KAAD,EAAQ6Y,WAAR,EAAqB9T,MAArB,CAAlB;AACD;AACF,SAtCD,MAsCO,IAAIkC,WAAW,CAAC4R,WAAZ,IAA2B5R,WAAW,CAAC4R,WAAZ,CAAwB7Y,KAAvD,EAA8D;AACnEiH,UAAAA,WAAW,CAAC8X,4BAAZ,CAAyClf,OAAzC,CAAiD,UAAU4I,CAAV,EAAa;AAC5D,gBAAI4Z,WAAW,GAAG5Z,CAAC,CAACvD,SAAF,GAAc/B,IAAd,CAAmB,UAAUiI,CAAV,EAAa;AAChD,qBAAOA,CAAC,CAACxL,EAAF,KAASqH,WAAW,CAAC4R,WAAZ,CAAwB7Y,KAAxB,CAA8BJ,EAA9C;AACD,aAFiB,CAAlB;;AAGA,gBAAIyiB,WAAJ,EAAiB;AACfpG,cAAAA,iCAAiC,CAACoG,WAAD,EAAc5Z,CAAd,CAAjC;AACD;AACF,WAPD;AAQAxB,UAAAA,WAAW,CAAC8X,4BAAZ,GAA2C,EAA3C;AACD;;AAED9X,QAAAA,WAAW,CAACiT,iBAAZ,GAAgCA,iBAAhC;AACAjT,QAAAA,WAAW,CAACkT,kBAAZ,GAAiCA,kBAAjC;AACAlT,QAAAA,WAAW,CAAC4R,WAAZ,GAA0BA,WAA1B;AACA5R,QAAAA,WAAW,CAACyP,cAAZ,GAA6BA,cAA7B;AACAzP,QAAAA,WAAW,CAAC8R,sBAAZ,GAAqCA,sBAArC;AACA9R,QAAAA,WAAW,CAAC6X,sBAAZ,GAAqCA,sBAArC,CAjG6C;AAoG7C;;AACAxX,QAAAA,EAAE,CAAC0Z,WAAH,CAAe1Z,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CAAf,EAA+C,KAA/C,EAAsD2C,UAAtD;AACD,OAtGD,MAsGO,IAAI7W,WAAW,CAACtV,IAAZ,KAAqB,QAArB,IAAiC,CAACsrB,QAAtC,EAAgD;AACrDta,QAAAA,WAAW,GAAGK,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CAAd;AACAhH,QAAAA,WAAW,GAAGxR,WAAW,CAACwR,WAA1B;AACA2C,QAAAA,YAAY,GAAGnU,WAAW,CAACmU,YAA3B;AACAzC,QAAAA,aAAa,GAAG1R,WAAW,CAAC0R,aAA5B;AACAE,QAAAA,WAAW,GAAG5R,WAAW,CAAC4R,WAA1B;AACAE,QAAAA,sBAAsB,GAAG9R,WAAW,CAAC8R,sBAArC;AACAmB,QAAAA,iBAAiB,GAAGjT,WAAW,CAACiT,iBAAhC;AAEA5S,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BX,sBAA/B,GACEA,sBADF;AAEAxX,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+BtF,kBAA/B,GAAoDA,kBAApD;AACA7S,QAAAA,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,EAA+B/I,cAA/B,GAAgDA,cAAhD;;AAEA,YAAIsL,KAAK,CAACjrB,MAAN,IAAgBqkB,YAAY,CAAC0E,KAAb,KAAuB,KAA3C,EAAkD;AAChD,cACE,CAACwB,SAAS,IAAIS,UAAd,MACC,CAAC7E,WAAD,IAAgBuC,aAAa,KAAK,CADnC,CADF,EAGE;AACArE,YAAAA,YAAY,CAAC8G,mBAAb,CAAiCF,KAAjC;AACD,WALD,MAKO;AACLA,YAAAA,KAAK,CAACniB,OAAN,CAAc,UAAUgQ,SAAV,EAAqB;AACjCsL,cAAAA,iBAAiB,CAAClU,WAAW,CAACmU,YAAb,EAA2BvL,SAA3B,CAAjB;AACD,aAFD;AAGD;AACF;;AAED,YAAI,CAACqN,WAAD,IAAgBuC,aAAa,KAAK,CAAtC,EAAyC;AACvC,cAAIrE,YAAY,CAAC0E,KAAb,KAAuB,KAA3B,EAAkC;AAChC1E,YAAAA,YAAY,CAACsG,KAAb,CAAmBjJ,WAAnB,EAAgC+I,mBAAhC,EAAqD,aAArD;AACD;;AACD,cAAI7I,aAAa,CAACmH,KAAd,KAAwB,KAA5B,EAAmC;AACjCnH,YAAAA,aAAa,CAAC+I,KAAd,CAAoBD,oBAApB;AACD;AACF,SAlCoD;AAqCrD;;;AACA,YAAIrH,kBAAkB,GAAGH,qBAAqB,CAC5ChT,WAAW,CAACiT,iBADgC,EAE5CjT,WAAW,CAACkT,kBAFgC,CAA9C;AAKA,YAAImI,MAAM,GAAGlI,kBAAkB,CAACrF,MAAnB,CAA0BhS,MAA1B,CAAiC,UAAUlC,CAAV,EAAa;AACzD,iBAAOA,CAAC,CAACjM,IAAF,CAAO0O,WAAP,OAAyB,KAAhC;AACD,SAFY,EAEVvM,MAFH;;AAGA,YAAI,CAACurB,MAAD,IAAWrb,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAArD,EAA0D;AACxD,iBAAOnP,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAA7C;AACD;;AAED9O,QAAAA,EAAE,CAAC0Z,WAAH,CACE/Z,WADF,EAEEsK,SAAS,KAAK,UAAd,IAA4BA,SAAS,KAAK,UAF5C,EAGEA,SAAS,KAAK,UAAd,IAA4BA,SAAS,KAAK,UAH5C,EAlDqD;;;AAyDrD,YACEsH,WAAW,KACVtH,SAAS,KAAK,UAAd,IAA4BA,SAAS,KAAK,UADhC,CADb,EAGE;AACAvR,UAAAA,KAAK,GAAG6Y,WAAW,CAAC7Y,KAApB;;AACA,cAAI8hB,UAAJ,EAAgB;AACd,gBAAI,CAAC5a,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAZ,EAAiC;AAC/BmC,cAAAA,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAP,GAA6B,IAAI7K,MAAM,CAACkM,WAAX,EAA7B;AACD;;AACD2V,YAAAA,4BAA4B,CAAC/b,KAAD,EAAQkH,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAAf,CAA5B;AACA6c,YAAAA,YAAY,CAACthB,IAAb,CAAkB,CAACN,KAAD,EAAQ6Y,WAAR,EAAqB3R,OAAO,CAAC4a,UAAU,CAAC/c,MAAZ,CAA5B,CAAlB;AACD,WAND,MAMO;AACL,gBAAI,CAACmC,OAAO,CAAC/R,OAAb,EAAsB;AACpB+R,cAAAA,OAAO,CAAC/R,OAAR,GAAkB,IAAI+E,MAAM,CAACkM,WAAX,EAAlB;AACD;;AACD2V,YAAAA,4BAA4B,CAAC/b,KAAD,EAAQkH,OAAO,CAAC/R,OAAhB,CAA5B;AACAysB,YAAAA,YAAY,CAACthB,IAAb,CAAkB,CAACN,KAAD,EAAQ6Y,WAAR,EAAqB3R,OAAO,CAAC/R,OAA7B,CAAlB;AACD;AACF,SAlBD,MAkBO;AACL;AACA,iBAAO8R,WAAW,CAAC4R,WAAnB;AACD;AACF;AACF,KA3RD;;AA6RA,QAAIvR,EAAE,CAACuW,SAAH,KAAiBve,SAArB,EAAgC;AAC9BgI,MAAAA,EAAE,CAACuW,SAAH,GAAetS,WAAW,CAACtV,IAAZ,KAAqB,OAArB,GAA+B,QAA/B,GAA0C,SAAzD;AACD;;AAEDqR,IAAAA,EAAE,CAACwV,kBAAH,GAAwB;AACtB7mB,MAAAA,IAAI,EAAEsV,WAAW,CAACtV,IADI;AAEtBuV,MAAAA,GAAG,EAAED,WAAW,CAACC;AAFK,KAAxB;;AAIA,QAAID,WAAW,CAACtV,IAAZ,KAAqB,OAAzB,EAAkC;AAChCqR,MAAAA,EAAE,CAACqa,qBAAH,CAAyB,mBAAzB;AACD,KAFD,MAEO;AACLra,MAAAA,EAAE,CAACqa,qBAAH,CAAyB,QAAzB;AACD;;AACD1kB,IAAAA,MAAM,CAACC,IAAP,CAAYgK,OAAZ,EAAqBrH,OAArB,CAA6B,UAAU0iB,GAAV,EAAe;AAC1C,UAAIxd,MAAM,GAAGmC,OAAO,CAACqb,GAAD,CAApB;;AACA,UAAIxd,MAAM,CAACG,SAAP,GAAmBnO,MAAvB,EAA+B;AAC7B,YAAIuQ,EAAE,CAACsV,aAAH,CAAiBzU,OAAjB,CAAyBpD,MAAzB,MAAqC,CAAC,CAA1C,EAA6C;AAC3CuC,UAAAA,EAAE,CAACsV,aAAH,CAAiBtc,IAAjB,CAAsByE,MAAtB;AACA,cAAIgC,KAAK,GAAG,IAAIC,KAAJ,CAAU,WAAV,CAAZ;AACAD,UAAAA,KAAK,CAAChC,MAAN,GAAeA,MAAf;AACA7K,UAAAA,MAAM,CAACkiB,UAAP,CAAkB,YAAY;AAC5B9U,YAAAA,EAAE,CAAC+U,cAAH,CAAkB,WAAlB,EAA+BtV,KAA/B;AACD,WAFD;AAGD;;AAED6a,QAAAA,YAAY,CAAC/hB,OAAb,CAAqB,UAAUnL,IAAV,EAAgB;AACnC,cAAIsL,KAAK,GAAGtL,IAAI,CAAC,CAAD,CAAhB;AACA,cAAImS,QAAQ,GAAGnS,IAAI,CAAC,CAAD,CAAnB;;AACA,cAAIqQ,MAAM,CAACnF,EAAP,KAAclL,IAAI,CAAC,CAAD,CAAJ,CAAQkL,EAA1B,EAA8B;AAC5B;AACD;;AACDsc,UAAAA,YAAY,CAAC5U,EAAD,EAAKtH,KAAL,EAAY6G,QAAZ,EAAsB,CAAC9B,MAAD,CAAtB,CAAZ;AACD,SAPD;AAQD;AACF,KArBD;AAsBA6c,IAAAA,YAAY,CAAC/hB,OAAb,CAAqB,UAAUnL,IAAV,EAAgB;AACnC,UAAIA,IAAI,CAAC,CAAD,CAAR,EAAa;AACX;AACD;;AACDwnB,MAAAA,YAAY,CAAC5U,EAAD,EAAK5S,IAAI,CAAC,CAAD,CAAT,EAAcA,IAAI,CAAC,CAAD,CAAlB,EAAuB,EAAvB,CAAZ;AACD,KALD,EAhXwE;AAwXxE;;AACAwF,IAAAA,MAAM,CAACkiB,UAAP,CAAkB,YAAY;AAC5B,UAAI,EAAE9U,EAAE,IAAIA,EAAE,CAACoW,YAAX,CAAJ,EAA8B;AAC5B;AACD;;AACDpW,MAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuB;AAC7C,YACEA,WAAW,CAACmU,YAAZ,IACAnU,WAAW,CAACmU,YAAZ,CAAyB0E,KAAzB,KAAmC,KADnC,IAEA7Y,WAAW,CAACmU,YAAZ,CAAyBE,mBAAzB,GAA+CvkB,MAA/C,GAAwD,CAH1D,EAIE;AACA4G,UAAAA,OAAO,CAACK,IAAR,CACE,sDACE,mCAFJ;AAIAiJ,UAAAA,WAAW,CAACmU,YAAZ,CAAyBI,kBAAzB,CAA4C,EAA5C;AACD;AACF,OAZD;AAaD,KAjBD,EAiBG,IAjBH;AAmBA,WAAO1iB,OAAO,CAACQ,OAAR,EAAP;AACD,GA7YD;;AA+YAuC,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BymB,KAA5B,GAAoC,YAAY;AAC9C,SAAK9E,YAAL,CAAkB7d,OAAlB,CAA0B,UAAUoH,WAAV,EAAuB;AAC/C;AACN;AACA;AACA;AACA;AACM,UAAIA,WAAW,CAACmU,YAAhB,EAA8B;AAC5BnU,QAAAA,WAAW,CAACmU,YAAZ,CAAyBjW,IAAzB;AACD;;AACD,UAAI8B,WAAW,CAAC0R,aAAhB,EAA+B;AAC7B1R,QAAAA,WAAW,CAAC0R,aAAZ,CAA0BxT,IAA1B;AACD;;AACD,UAAI8B,WAAW,CAAC2R,SAAhB,EAA2B;AACzB3R,QAAAA,WAAW,CAAC2R,SAAZ,CAAsBzT,IAAtB;AACD;;AACD,UAAI8B,WAAW,CAAC4R,WAAhB,EAA6B;AAC3B5R,QAAAA,WAAW,CAAC4R,WAAZ,CAAwB1T,IAAxB;AACD;AACF,KAlBD,EAD8C;;AAqB9C,SAAK2Y,SAAL,GAAiB,IAAjB;;AACA,SAAK6D,qBAAL,CAA2B,QAA3B;AACD,GAvBD,CAtkCqD;;;AAgmCrD9lB,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B4lB,qBAA5B,GAAoD,UAAUc,QAAV,EAAoB;AACtE,SAAKtX,cAAL,GAAsBsX,QAAtB;AACA,QAAI1b,KAAK,GAAG,IAAIC,KAAJ,CAAU,sBAAV,CAAZ;;AACA,SAAKqV,cAAL,CAAoB,sBAApB,EAA4CtV,KAA5C;AACD,GAJD,CAhmCqD;;;AAumCrDlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BojB,2BAA5B,GAA0D,YAAY;AACpE,QAAI7X,EAAE,GAAG,IAAT;;AACA,QAAI,KAAK6D,cAAL,KAAwB,QAAxB,IAAoC,KAAKuR,eAAL,KAAyB,IAAjE,EAAuE;AACrE;AACD;;AACD,SAAKA,eAAL,GAAuB,IAAvB;AACAxiB,IAAAA,MAAM,CAACkiB,UAAP,CAAkB,YAAY;AAC5B,UAAI9U,EAAE,CAACoV,eAAP,EAAwB;AACtBpV,QAAAA,EAAE,CAACoV,eAAH,GAAqB,KAArB;AACA,YAAI3V,KAAK,GAAG,IAAIC,KAAJ,CAAU,mBAAV,CAAZ;;AACAM,QAAAA,EAAE,CAAC+U,cAAH,CAAkB,mBAAlB,EAAuCtV,KAAvC;AACD;AACF,KAND,EAMG,CANH;AAOD,GAbD,CAvmCqD;;;AAunCrDlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B2kB,yBAA5B,GAAwD,YAAY;AAClE,QAAI+B,QAAJ;AACA,QAAIC,MAAM,GAAG;AACXC,MAAAA,GAAG,EAAE,CADM;AAEXC,MAAAA,MAAM,EAAE,CAFG;AAGXC,MAAAA,QAAQ,EAAE,CAHC;AAIXC,MAAAA,SAAS,EAAE,CAJA;AAKXC,MAAAA,SAAS,EAAE,CALA;AAMXC,MAAAA,YAAY,EAAE,CANH;AAOXC,MAAAA,MAAM,EAAE;AAPG,KAAb;AASA,SAAKvF,YAAL,CAAkB7d,OAAlB,CAA0B,UAAUoH,WAAV,EAAuB;AAC/C,UAAIA,WAAW,CAACmU,YAAZ,IAA4B,CAACnU,WAAW,CAACsa,QAA7C,EAAuD;AACrDmB,QAAAA,MAAM,CAACzb,WAAW,CAACmU,YAAZ,CAAyB0E,KAA1B,CAAN;AACD;AACF,KAJD;AAMA2C,IAAAA,QAAQ,GAAG,KAAX;;AACA,QAAIC,MAAM,CAACO,MAAP,GAAgB,CAApB,EAAuB;AACrBR,MAAAA,QAAQ,GAAG,QAAX;AACD,KAFD,MAEO,IAAIC,MAAM,CAACG,QAAP,GAAkB,CAAtB,EAAyB;AAC9BJ,MAAAA,QAAQ,GAAG,UAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACM,YAAP,GAAsB,CAA1B,EAA6B;AAClCP,MAAAA,QAAQ,GAAG,cAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACC,GAAP,GAAa,CAAjB,EAAoB;AACzBF,MAAAA,QAAQ,GAAG,KAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACI,SAAP,GAAmB,CAAvB,EAA0B;AAC/BL,MAAAA,QAAQ,GAAG,WAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACK,SAAP,GAAmB,CAAvB,EAA0B;AAC/BN,MAAAA,QAAQ,GAAG,WAAX;AACD;;AAED,QAAIA,QAAQ,KAAK,KAAK1F,kBAAtB,EAA0C;AACxC,WAAKA,kBAAL,GAA0B0F,QAA1B;AACA,UAAI1b,KAAK,GAAG,IAAIC,KAAJ,CAAU,0BAAV,CAAZ;;AACA,WAAKqV,cAAL,CAAoB,0BAApB,EAAgDtV,KAAhD;AACD;AACF,GArCD,CAvnCqD;;;AA+pCrDlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B4kB,sBAA5B,GAAqD,YAAY;AAC/D,QAAI8B,QAAJ;AACA,QAAIC,MAAM,GAAG;AACXC,MAAAA,GAAG,EAAE,CADM;AAEXC,MAAAA,MAAM,EAAE,CAFG;AAGXM,MAAAA,UAAU,EAAE,CAHD;AAIXJ,MAAAA,SAAS,EAAE,CAJA;AAKXC,MAAAA,SAAS,EAAE,CALA;AAMXC,MAAAA,YAAY,EAAE,CANH;AAOXC,MAAAA,MAAM,EAAE;AAPG,KAAb;AASA,SAAKvF,YAAL,CAAkB7d,OAAlB,CAA0B,UAAUoH,WAAV,EAAuB;AAC/C,UACEA,WAAW,CAACmU,YAAZ,IACAnU,WAAW,CAAC0R,aADZ,IAEA,CAAC1R,WAAW,CAACsa,QAHf,EAIE;AACAmB,QAAAA,MAAM,CAACzb,WAAW,CAACmU,YAAZ,CAAyB0E,KAA1B,CAAN;AACA4C,QAAAA,MAAM,CAACzb,WAAW,CAAC0R,aAAZ,CAA0BmH,KAA3B,CAAN;AACD;AACF,KATD,EAX+D;;AAsB/D4C,IAAAA,MAAM,CAACI,SAAP,IAAoBJ,MAAM,CAACK,SAA3B;AAEAN,IAAAA,QAAQ,GAAG,KAAX;;AACA,QAAIC,MAAM,CAACO,MAAP,GAAgB,CAApB,EAAuB;AACrBR,MAAAA,QAAQ,GAAG,QAAX;AACD,KAFD,MAEO,IAAIC,MAAM,CAACQ,UAAP,GAAoB,CAAxB,EAA2B;AAChCT,MAAAA,QAAQ,GAAG,YAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACM,YAAP,GAAsB,CAA1B,EAA6B;AAClCP,MAAAA,QAAQ,GAAG,cAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACC,GAAP,GAAa,CAAjB,EAAoB;AACzBF,MAAAA,QAAQ,GAAG,KAAX;AACD,KAFM,MAEA,IAAIC,MAAM,CAACI,SAAP,GAAmB,CAAvB,EAA0B;AAC/BL,MAAAA,QAAQ,GAAG,WAAX;AACD;;AAED,QAAIA,QAAQ,KAAK,KAAKzF,eAAtB,EAAuC;AACrC,WAAKA,eAAL,GAAuByF,QAAvB;AACA,UAAI1b,KAAK,GAAG,IAAIC,KAAJ,CAAU,uBAAV,CAAZ;;AACA,WAAKqV,cAAL,CAAoB,uBAApB,EAA6CtV,KAA7C;AACD;AACF,GA1CD;;AA4CAlL,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BonB,WAA5B,GAA0C,YAAY;AACpD,QAAI7b,EAAE,GAAG,IAAT;;AAEA,QAAIA,EAAE,CAACwW,SAAP,EAAkB;AAChB,aAAOhlB,OAAO,CAACC,MAAR,CACL0iB,SAAS,CAAC,mBAAD,EAAsB,sCAAtB,CADJ,CAAP;AAGD;;AAED,QAAI2H,cAAc,GAAG9b,EAAE,CAACoW,YAAH,CAAgB3a,MAAhB,CAAuB,UAAUqI,CAAV,EAAa;AACvD,aAAOA,CAAC,CAACnI,IAAF,KAAW,OAAlB;AACD,KAFoB,EAElBlM,MAFH;AAGA,QAAIssB,cAAc,GAAG/b,EAAE,CAACoW,YAAH,CAAgB3a,MAAhB,CAAuB,UAAUqI,CAAV,EAAa;AACvD,aAAOA,CAAC,CAACnI,IAAF,KAAW,OAAlB;AACD,KAFoB,EAElBlM,MAFH,CAZoD;;AAiBpD,QAAIusB,YAAY,GAAGjnB,SAAS,CAAC,CAAD,CAA5B;;AACA,QAAIinB,YAAJ,EAAkB;AAChB;AACA,UAAIA,YAAY,CAACxiB,SAAb,IAA0BwiB,YAAY,CAACviB,QAA3C,EAAqD;AACnD,cAAM,IAAI6a,SAAJ,CACJ,sDADI,CAAN;AAGD;;AACD,UAAI0H,YAAY,CAACC,mBAAb,KAAqCjkB,SAAzC,EAAoD;AAClD,YAAIgkB,YAAY,CAACC,mBAAb,KAAqC,IAAzC,EAA+C;AAC7CH,UAAAA,cAAc,GAAG,CAAjB;AACD,SAFD,MAEO,IAAIE,YAAY,CAACC,mBAAb,KAAqC,KAAzC,EAAgD;AACrDH,UAAAA,cAAc,GAAG,CAAjB;AACD,SAFM,MAEA;AACLA,UAAAA,cAAc,GAAGE,YAAY,CAACC,mBAA9B;AACD;AACF;;AACD,UAAID,YAAY,CAACE,mBAAb,KAAqClkB,SAAzC,EAAoD;AAClD,YAAIgkB,YAAY,CAACE,mBAAb,KAAqC,IAAzC,EAA+C;AAC7CH,UAAAA,cAAc,GAAG,CAAjB;AACD,SAFD,MAEO,IAAIC,YAAY,CAACE,mBAAb,KAAqC,KAAzC,EAAgD;AACrDH,UAAAA,cAAc,GAAG,CAAjB;AACD,SAFM,MAEA;AACLA,UAAAA,cAAc,GAAGC,YAAY,CAACE,mBAA9B;AACD;AACF;AACF;;AAEDlc,IAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuB;AAC7C,UAAIA,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AAChCmgB,QAAAA,cAAc;;AACd,YAAIA,cAAc,GAAG,CAArB,EAAwB;AACtBnc,UAAAA,WAAW,CAAC+X,WAAZ,GAA0B,KAA1B;AACD;AACF,OALD,MAKO,IAAI/X,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AACvCogB,QAAAA,cAAc;;AACd,YAAIA,cAAc,GAAG,CAArB,EAAwB;AACtBpc,UAAAA,WAAW,CAAC+X,WAAZ,GAA0B,KAA1B;AACD;AACF;AACF,KAZD,EA7CoD;;AA4DpD,WAAOoE,cAAc,GAAG,CAAjB,IAAsBC,cAAc,GAAG,CAA9C,EAAiD;AAC/C,UAAID,cAAc,GAAG,CAArB,EAAwB;AACtB9b,QAAAA,EAAE,CAACqX,kBAAH,CAAsB,OAAtB;;AACAyE,QAAAA,cAAc;AACf;;AACD,UAAIC,cAAc,GAAG,CAArB,EAAwB;AACtB/b,QAAAA,EAAE,CAACqX,kBAAH,CAAsB,OAAtB;;AACA0E,QAAAA,cAAc;AACf;AACF;;AAED,QAAIvJ,KAAK,GAAGtO,GAAG,CAAC0M,uBAAJ,CACV5Q,EAAE,CAACqW,aADO,EAEVrW,EAAE,CAACsW,kBAAH,EAFU,CAAZ;AAIAtW,IAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuBwY,aAAvB,EAAsC;AAC5D;AACA;AACA,UAAIzf,KAAK,GAAGiH,WAAW,CAACjH,KAAxB;AACA,UAAIiD,IAAI,GAAGgE,WAAW,CAAChE,IAAvB;AACA,UAAIiQ,GAAG,GAAGjM,WAAW,CAACiM,GAAZ,IAAmB1H,GAAG,CAACgD,kBAAJ,EAA7B;AACAvH,MAAAA,WAAW,CAACiM,GAAZ,GAAkBA,GAAlB;;AAEA,UAAI,CAACjM,WAAW,CAACwR,WAAjB,EAA8B;AAC5BxR,QAAAA,WAAW,CAACwR,WAAZ,GAA0BnR,EAAE,CAACkY,kBAAH,CACxBC,aADwB,EAExBnY,EAAE,CAAC4V,WAFqB,CAA1B;AAID;;AAED,UAAIhD,iBAAiB,GAAGhgB,MAAM,CAACwO,YAAP,CAAoByZ,eAApB,CAAoClf,IAApC,CAAxB,CAf4D;AAiB5D;;AACA,UAAI0K,WAAW,GAAG,KAAlB,EAAyB;AACvBuM,QAAAA,iBAAiB,CAACnF,MAAlB,GAA2BmF,iBAAiB,CAACnF,MAAlB,CAAyBhS,MAAzB,CAAgC,UACzDoO,KADyD,EAEzD;AACA,iBAAOA,KAAK,CAACvc,IAAN,KAAe,KAAtB;AACD,SAJ0B,CAA3B;AAKD;;AACDslB,MAAAA,iBAAiB,CAACnF,MAAlB,CAAyBlV,OAAzB,CAAiC,UAAUsR,KAAV,EAAiB;AAChD;AACA;AACA,YACEA,KAAK,CAACvc,IAAN,KAAe,MAAf,IACAuc,KAAK,CAACa,UAAN,CAAiB,yBAAjB,MAAgD1S,SAFlD,EAGE;AACA6R,UAAAA,KAAK,CAACa,UAAN,CAAiB,yBAAjB,IAA8C,GAA9C;AACD,SAR+C;AAWhD;;;AACA,YACE/K,WAAW,CAACkT,kBAAZ,IACAlT,WAAW,CAACkT,kBAAZ,CAA+BpF,MAFjC,EAGE;AACA9N,UAAAA,WAAW,CAACkT,kBAAZ,CAA+BpF,MAA/B,CAAsClV,OAAtC,CAA8C,UAAU4jB,WAAV,EAAuB;AACnE,gBACEtS,KAAK,CAACvc,IAAN,CAAW0O,WAAX,OAA6BmgB,WAAW,CAAC7uB,IAAZ,CAAiB0O,WAAjB,EAA7B,IACA6N,KAAK,CAACJ,SAAN,KAAoB0S,WAAW,CAAC1S,SAFlC,EAGE;AACAI,cAAAA,KAAK,CAACE,oBAAN,GAA6BoS,WAAW,CAAC3S,WAAzC;AACD;AACF,WAPD;AAQD;AACF,OAzBD;AA0BAoJ,MAAAA,iBAAiB,CAAClF,gBAAlB,CAAmCnV,OAAnC,CAA2C,UAAU6jB,MAAV,EAAkB;AAC3D,YAAIC,gBAAgB,GACjB1c,WAAW,CAACkT,kBAAZ,IACClT,WAAW,CAACkT,kBAAZ,CAA+BnF,gBADjC,IAEA,EAHF;AAIA2O,QAAAA,gBAAgB,CAAC9jB,OAAjB,CAAyB,UAAU+jB,OAAV,EAAmB;AAC1C,cAAIF,MAAM,CAAClS,GAAP,KAAeoS,OAAO,CAACpS,GAA3B,EAAgC;AAC9BkS,YAAAA,MAAM,CAAC9jB,EAAP,GAAYgkB,OAAO,CAAChkB,EAApB;AACD;AACF,SAJD;AAKD,OAVD,EAnD4D;;AAgE5D,UAAImZ,sBAAsB,GAAG9R,WAAW,CAAC8R,sBAAZ,IAAsC,CACjE;AACErG,QAAAA,IAAI,EAAE,CAAC,IAAI+M,aAAJ,GAAoB,CAArB,IAA0B;AADlC,OADiE,CAAnE;;AAKA,UAAIzf,KAAJ,EAAW;AACT;AACA,YACE2N,WAAW,IAAI,KAAf,IACA1K,IAAI,KAAK,OADT,IAEA,CAAC8V,sBAAsB,CAAC,CAAD,CAAtB,CAA0B3C,GAH7B,EAIE;AACA2C,UAAAA,sBAAsB,CAAC,CAAD,CAAtB,CAA0B3C,GAA1B,GAAgC;AAC9B1D,YAAAA,IAAI,EAAEqG,sBAAsB,CAAC,CAAD,CAAtB,CAA0BrG,IAA1B,GAAiC;AADT,WAAhC;AAGD;AACF;;AAED,UAAIzL,WAAW,CAAC+X,WAAhB,EAA6B;AAC3B/X,QAAAA,WAAW,CAAC4R,WAAZ,GAA0B,IAAI3e,MAAM,CAAC8P,cAAX,CACxB/C,WAAW,CAAC0R,aADY,EAExB1V,IAFwB,CAA1B;AAID;;AAEDgE,MAAAA,WAAW,CAACiT,iBAAZ,GAAgCA,iBAAhC;AACAjT,MAAAA,WAAW,CAAC8R,sBAAZ,GAAqCA,sBAArC;AACD,KA3FD,EA3EoD;;AAyKpD,QAAIzR,EAAE,CAACmW,OAAH,CAAWN,YAAX,KAA4B,YAAhC,EAA8C;AAC5CrD,MAAAA,KAAK,IACH,oBACAxS,EAAE,CAACoW,YAAH,CACGjpB,GADH,CACO,UAAU2W,CAAV,EAAa;AAChB,eAAOA,CAAC,CAAC8H,GAAT;AACD,OAHH,EAIGxC,IAJH,CAIQ,GAJR,CADA,GAMA,MAPF;AAQD;;AACDoJ,IAAAA,KAAK,IAAI,2BAAT;AAEAxS,IAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuBwY,aAAvB,EAAsC;AAC5D3F,MAAAA,KAAK,IAAItB,iBAAiB,CACxBvR,WADwB,EAExBA,WAAW,CAACiT,iBAFY,EAGxB,OAHwB,EAIxBjT,WAAW,CAAClC,MAJY,EAKxBuC,EAAE,CAACuW,SALqB,CAA1B;AAOA/D,MAAAA,KAAK,IAAI,kBAAT;;AAEA,UACE7S,WAAW,CAACwR,WAAZ,IACAnR,EAAE,CAAC2V,iBAAH,KAAyB,KADzB,KAECwC,aAAa,KAAK,CAAlB,IAAuB,CAACnY,EAAE,CAAC4V,WAF5B,CADF,EAIE;AACAjW,QAAAA,WAAW,CAACwR,WAAZ,CAAwBoL,kBAAxB,GAA6ChkB,OAA7C,CAAqD,UAAUsgB,IAAV,EAAgB;AACnEA,UAAAA,IAAI,CAACxrB,SAAL,GAAiB,CAAjB;AACAmlB,UAAAA,KAAK,IAAI,OAAOtO,GAAG,CAACiF,cAAJ,CAAmB0P,IAAnB,CAAP,GAAkC,MAA3C;AACD,SAHD;;AAKA,YAAIlZ,WAAW,CAACwR,WAAZ,CAAwBqH,KAAxB,KAAkC,WAAtC,EAAmD;AACjDhG,UAAAA,KAAK,IAAI,yBAAT;AACD;AACF;AACF,KAxBD;AA0BA,QAAI1N,IAAI,GAAG,IAAIlS,MAAM,CAAC4R,qBAAX,CAAiC;AAC1C7V,MAAAA,IAAI,EAAE,OADoC;AAE1CuV,MAAAA,GAAG,EAAEsO;AAFqC,KAAjC,CAAX;AAIA,WAAOhhB,OAAO,CAACQ,OAAR,CAAgB8S,IAAhB,CAAP;AACD,GApND;;AAsNAvQ,EAAAA,iBAAiB,CAACE,SAAlB,CAA4B+nB,YAA5B,GAA2C,YAAY;AACrD,QAAIxc,EAAE,GAAG,IAAT;;AAEA,QAAIA,EAAE,CAACwW,SAAP,EAAkB;AAChB,aAAOhlB,OAAO,CAACC,MAAR,CACL0iB,SAAS,CAAC,mBAAD,EAAsB,uCAAtB,CADJ,CAAP;AAGD;;AAED,QACE,EACEnU,EAAE,CAAC6D,cAAH,KAAsB,mBAAtB,IACA7D,EAAE,CAAC6D,cAAH,KAAsB,qBAFxB,CADF,EAKE;AACA,aAAOrS,OAAO,CAACC,MAAR,CACL0iB,SAAS,CACP,mBADO,EAEP,iDAAiDnU,EAAE,CAAC6D,cAF7C,CADJ,CAAP;AAMD;;AAED,QAAI2O,KAAK,GAAGtO,GAAG,CAAC0M,uBAAJ,CACV5Q,EAAE,CAACqW,aADO,EAEVrW,EAAE,CAACsW,kBAAH,EAFU,CAAZ;;AAIA,QAAItW,EAAE,CAAC4V,WAAP,EAAoB;AAClBpD,MAAAA,KAAK,IACH,oBACAxS,EAAE,CAACoW,YAAH,CACGjpB,GADH,CACO,UAAU2W,CAAV,EAAa;AAChB,eAAOA,CAAC,CAAC8H,GAAT;AACD,OAHH,EAIGxC,IAJH,CAIQ,GAJR,CADA,GAMA,MAPF;AAQD;;AACDoJ,IAAAA,KAAK,IAAI,2BAAT;AAEA,QAAIiK,oBAAoB,GAAGvY,GAAG,CAACgE,gBAAJ,CACzBlI,EAAE,CAACwV,kBAAH,CAAsBtR,GADG,EAEzBzU,MAFF;AAGAuQ,IAAAA,EAAE,CAACoW,YAAH,CAAgB7d,OAAhB,CAAwB,UAAUoH,WAAV,EAAuBwY,aAAvB,EAAsC;AAC5D,UAAIA,aAAa,GAAG,CAAhB,GAAoBsE,oBAAxB,EAA8C;AAC5C;AACD;;AACD,UAAI9c,WAAW,CAACsa,QAAhB,EAA0B;AACxB,YAAIta,WAAW,CAAChE,IAAZ,KAAqB,aAAzB,EAAwC;AACtC,cAAIgE,WAAW,CAAC8I,QAAZ,KAAyB,WAA7B,EAA0C;AACxC;AACA+J,YAAAA,KAAK,IAAI,oCAAT;AACD,WAHD,MAGO;AACLA,YAAAA,KAAK,IACH,qBACA7S,WAAW,CAAC8I,QADZ,GAEA,yBAHF;AAID;AACF,SAVD,MAUO,IAAI9I,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AACvC6W,UAAAA,KAAK,IACH,sCAAsC,0BADxC;AAED,SAHM,MAGA,IAAI7S,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AACvC6W,UAAAA,KAAK,IACH,wCACA,4BAFF;AAGD;;AACDA,QAAAA,KAAK,IACH,yBACA,gBADA,GAEA,QAFA,GAGA7S,WAAW,CAACiM,GAHZ,GAIA,MALF;AAMA;AACD,OA9B2D;;;AAiC5D,UAAIjM,WAAW,CAAClC,MAAhB,EAAwB;AACtB,YAAIif,UAAJ;;AACA,YAAI/c,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AAChC+gB,UAAAA,UAAU,GAAG/c,WAAW,CAAClC,MAAZ,CAAmBC,cAAnB,GAAoC,CAApC,CAAb;AACD,SAFD,MAEO,IAAIiC,WAAW,CAAChE,IAAZ,KAAqB,OAAzB,EAAkC;AACvC+gB,UAAAA,UAAU,GAAG/c,WAAW,CAAClC,MAAZ,CAAmBE,cAAnB,GAAoC,CAApC,CAAb;AACD;;AACD,YAAI+e,UAAJ,EAAgB;AACd;AACA,cACErW,WAAW,IAAI,KAAf,IACA1G,WAAW,CAAChE,IAAZ,KAAqB,OADrB,IAEA,CAACgE,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAHzC,EAIE;AACAnP,YAAAA,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAAtC,GAA4C;AAC1C1D,cAAAA,IAAI,EAAEzL,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsCrG,IAAtC,GAA6C;AADT,aAA5C;AAGD;AACF;AACF,OApD2D;;;AAuD5D,UAAI0H,kBAAkB,GAAGH,qBAAqB,CAC5ChT,WAAW,CAACiT,iBADgC,EAE5CjT,WAAW,CAACkT,kBAFgC,CAA9C;AAKA,UAAImI,MAAM,GAAGlI,kBAAkB,CAACrF,MAAnB,CAA0BhS,MAA1B,CAAiC,UAAUlC,CAAV,EAAa;AACzD,eAAOA,CAAC,CAACjM,IAAF,CAAO0O,WAAP,OAAyB,KAAhC;AACD,OAFY,EAEVvM,MAFH;;AAGA,UAAI,CAACurB,MAAD,IAAWrb,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAArD,EAA0D;AACxD,eAAOnP,WAAW,CAAC8R,sBAAZ,CAAmC,CAAnC,EAAsC3C,GAA7C;AACD;;AAED0D,MAAAA,KAAK,IAAItB,iBAAiB,CACxBvR,WADwB,EAExBmT,kBAFwB,EAGxB,QAHwB,EAIxBnT,WAAW,CAAClC,MAJY,EAKxBuC,EAAE,CAACuW,SALqB,CAA1B;;AAOA,UACE5W,WAAW,CAACyP,cAAZ,IACAzP,WAAW,CAACyP,cAAZ,CAA2BI,WAF7B,EAGE;AACAgD,QAAAA,KAAK,IAAI,kBAAT;AACD;AACF,KAhFD;AAkFA,QAAI1N,IAAI,GAAG,IAAIlS,MAAM,CAAC4R,qBAAX,CAAiC;AAC1C7V,MAAAA,IAAI,EAAE,QADoC;AAE1CuV,MAAAA,GAAG,EAAEsO;AAFqC,KAAjC,CAAX;AAIA,WAAOhhB,OAAO,CAACQ,OAAR,CAAgB8S,IAAhB,CAAP;AACD,GAjID;;AAmIAvQ,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BkoB,eAA5B,GAA8C,UAAUpU,SAAV,EAAqB;AACjE,QAAIvI,EAAE,GAAG,IAAT;AACA,QAAIiI,QAAJ;;AACA,QACEM,SAAS,IACT,EAAEA,SAAS,CAAC4P,aAAV,KAA4BngB,SAA5B,IAAyCuQ,SAAS,CAACqQ,MAArD,CAFF,EAGE;AACA,aAAOpnB,OAAO,CAACC,MAAR,CAAe,IAAI6iB,SAAJ,CAAc,kCAAd,CAAf,CAAP;AACD,KARgE;;;AAWjE,WAAO,IAAI9iB,OAAJ,CAAY,UAAUQ,OAAV,EAAmBP,MAAnB,EAA2B;AAC5C,UAAI,CAACuO,EAAE,CAACwV,kBAAR,EAA4B;AAC1B,eAAO/jB,MAAM,CACX0iB,SAAS,CACP,mBADO,EAEP,wDAFO,CADE,CAAb;AAMD,OAPD,MAOO,IAAI,CAAC5L,SAAD,IAAcA,SAAS,CAACA,SAAV,KAAwB,EAA1C,EAA8C;AACnD,aAAK,IAAIiC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGxK,EAAE,CAACoW,YAAH,CAAgB3mB,MAApC,EAA4C+a,CAAC,EAA7C,EAAiD;AAC/C,cAAIxK,EAAE,CAACoW,YAAH,CAAgB5L,CAAhB,EAAmByP,QAAvB,EAAiC;AAC/B;AACD;;AACDja,UAAAA,EAAE,CAACoW,YAAH,CAAgB5L,CAAhB,EAAmBsJ,YAAnB,CAAgCI,kBAAhC,CAAmD,EAAnD;AACAjM,UAAAA,QAAQ,GAAG/D,GAAG,CAACgE,gBAAJ,CAAqBlI,EAAE,CAACwV,kBAAH,CAAsBtR,GAA3C,CAAX;AACA+D,UAAAA,QAAQ,CAACuC,CAAD,CAAR,IAAe,yBAAf;AACAxK,UAAAA,EAAE,CAACwV,kBAAH,CAAsBtR,GAAtB,GACEA,GAAG,CAAC8D,cAAJ,CAAmBhI,EAAE,CAACwV,kBAAH,CAAsBtR,GAAzC,IAAgD+D,QAAQ,CAACmB,IAAT,CAAc,EAAd,CADlD;;AAEA,cAAIpJ,EAAE,CAAC4V,WAAP,EAAoB;AAClB;AACD;AACF;AACF,OAdM,MAcA;AACL,YAAIuC,aAAa,GAAG5P,SAAS,CAAC4P,aAA9B;;AACA,YAAI5P,SAAS,CAACqQ,MAAd,EAAsB;AACpB,eAAK,IAAIhrB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoS,EAAE,CAACoW,YAAH,CAAgB3mB,MAApC,EAA4C7B,CAAC,EAA7C,EAAiD;AAC/C,gBAAIoS,EAAE,CAACoW,YAAH,CAAgBxoB,CAAhB,EAAmBge,GAAnB,KAA2BrD,SAAS,CAACqQ,MAAzC,EAAiD;AAC/CT,cAAAA,aAAa,GAAGvqB,CAAhB;AACA;AACD;AACF;AACF;;AACD,YAAI+R,WAAW,GAAGK,EAAE,CAACoW,YAAH,CAAgB+B,aAAhB,CAAlB;;AACA,YAAIxY,WAAJ,EAAiB;AACf,cAAIA,WAAW,CAACsa,QAAhB,EAA0B;AACxB,mBAAOjoB,OAAO,EAAd;AACD;;AACD,cAAI6mB,IAAI,GACNljB,MAAM,CAACC,IAAP,CAAY2S,SAAS,CAACA,SAAtB,EAAiC9Y,MAAjC,GAA0C,CAA1C,GACIyU,GAAG,CAACmE,cAAJ,CAAmBE,SAAS,CAACA,SAA7B,CADJ,GAEI,EAHN,CAJe;;AASf,cAAIsQ,IAAI,CAACpQ,QAAL,KAAkB,KAAlB,KAA4BoQ,IAAI,CAAChQ,IAAL,KAAc,CAAd,IAAmBgQ,IAAI,CAAChQ,IAAL,KAAc,CAA7D,CAAJ,EAAqE;AACnE,mBAAO7W,OAAO,EAAd;AACD,WAXc;;;AAaf,cAAI6mB,IAAI,CAACxrB,SAAL,IAAkBwrB,IAAI,CAACxrB,SAAL,KAAmB,CAAzC,EAA4C;AAC1C,mBAAO2E,OAAO,EAAd;AACD,WAfc;AAiBf;;;AACA,cACEmmB,aAAa,KAAK,CAAlB,IACCA,aAAa,GAAG,CAAhB,IACCxY,WAAW,CAACmU,YAAZ,KAA6B9T,EAAE,CAACoW,YAAH,CAAgB,CAAhB,EAAmBtC,YAHpD,EAIE;AACA,gBAAI,CAACD,iBAAiB,CAAClU,WAAW,CAACmU,YAAb,EAA2B+E,IAA3B,CAAtB,EAAwD;AACtD,qBAAOpnB,MAAM,CACX0iB,SAAS,CAAC,gBAAD,EAAmB,2BAAnB,CADE,CAAb;AAGD;AACF,WA5Bc;;;AA+Bf,cAAIyI,eAAe,GAAGrU,SAAS,CAACA,SAAV,CAAoBd,IAApB,EAAtB;;AACA,cAAImV,eAAe,CAAC/b,OAAhB,CAAwB,IAAxB,MAAkC,CAAtC,EAAyC;AACvC+b,YAAAA,eAAe,GAAGA,eAAe,CAACvV,MAAhB,CAAuB,CAAvB,CAAlB;AACD;;AACDY,UAAAA,QAAQ,GAAG/D,GAAG,CAACgE,gBAAJ,CAAqBlI,EAAE,CAACwV,kBAAH,CAAsBtR,GAA3C,CAAX;AACA+D,UAAAA,QAAQ,CAACkQ,aAAD,CAAR,IACE,QAAQU,IAAI,CAAClqB,IAAL,GAAYiuB,eAAZ,GAA8B,mBAAtC,IAA6D,MAD/D;AAEA5c,UAAAA,EAAE,CAACwV,kBAAH,CAAsBtR,GAAtB,GACEA,GAAG,CAAC8D,cAAJ,CAAmBhI,EAAE,CAACwV,kBAAH,CAAsBtR,GAAzC,IAAgD+D,QAAQ,CAACmB,IAAT,CAAc,EAAd,CADlD;AAED,SAxCD,MAwCO;AACL,iBAAO3X,MAAM,CACX0iB,SAAS,CAAC,gBAAD,EAAmB,2BAAnB,CADE,CAAb;AAGD;AACF;;AACDniB,MAAAA,OAAO;AACR,KAhFM,CAAP;AAiFD,GA5FD;;AA8FAuC,EAAAA,iBAAiB,CAACE,SAAlB,CAA4BgN,QAA5B,GAAuC,UAAUC,QAAV,EAAoB;AACzD,QAAIA,QAAQ,IAAIA,QAAQ,YAAY9O,MAAM,CAACkQ,gBAA3C,EAA6D;AAC3D,UAAI+Z,gBAAgB,GAAG,IAAvB;AACA,WAAKzG,YAAL,CAAkB7d,OAAlB,CAA0B,UAAUoH,WAAV,EAAuB;AAC/C,YAAIA,WAAW,CAAC2R,SAAZ,IAAyB3R,WAAW,CAAC2R,SAAZ,CAAsB5Y,KAAtB,KAAgCgJ,QAA7D,EAAuE;AACrEmb,UAAAA,gBAAgB,GAAGld,WAAW,CAAC2R,SAA/B;AACD,SAFD,MAEO,IACL3R,WAAW,CAAC4R,WAAZ,IACA5R,WAAW,CAAC4R,WAAZ,CAAwB7Y,KAAxB,KAAkCgJ,QAF7B,EAGL;AACAmb,UAAAA,gBAAgB,GAAGld,WAAW,CAAC4R,WAA/B;AACD;AACF,OATD;;AAUA,UAAI,CAACsL,gBAAL,EAAuB;AACrB,cAAM1I,SAAS,CAAC,oBAAD,EAAuB,mBAAvB,CAAf;AACD;;AACD,aAAO0I,gBAAgB,CAACpb,QAAjB,EAAP;AACD;;AAED,QAAIqb,QAAQ,GAAG,EAAf;AACA,SAAK1G,YAAL,CAAkB7d,OAAlB,CAA0B,UAAUoH,WAAV,EAAuB;AAC/C,OACE,WADF,EAEE,aAFF,EAGE,aAHF,EAIE,cAJF,EAKE,eALF,EAMEpH,OANF,CAMU,UAAUtH,MAAV,EAAkB;AAC1B,YAAI0O,WAAW,CAAC1O,MAAD,CAAf,EAAyB;AACvB6rB,UAAAA,QAAQ,CAAC9jB,IAAT,CAAc2G,WAAW,CAAC1O,MAAD,CAAX,CAAoBwQ,QAApB,EAAd;AACD;AACF,OAVD;AAWD,KAZD;AAaA,WAAOjQ,OAAO,CAACurB,GAAR,CAAYD,QAAZ,EAAsBvhB,IAAtB,CAA2B,UAAUyhB,QAAV,EAAoB;AACpD,UAAIC,OAAO,GAAG,IAAI7nB,GAAJ,EAAd;AACA4nB,MAAAA,QAAQ,CAACzkB,OAAT,CAAiB,UAAUJ,KAAV,EAAiB;AAChCA,QAAAA,KAAK,CAACI,OAAN,CAAc,UAAU+J,IAAV,EAAgB;AAC5B2a,UAAAA,OAAO,CAACzuB,GAAR,CAAY8T,IAAI,CAAChK,EAAjB,EAAqBgK,IAArB;AACD,SAFD;AAGD,OAJD;AAKA,aAAO2a,OAAP;AACD,KARM,CAAP;AASD,GA1CD,CAloDqD;;;AA+qDrD,MAAIC,WAAW,GAAG,CAChB,cADgB,EAEhB,gBAFgB,EAGhB,gBAHgB,EAIhB,iBAJgB,EAKhB,kBALgB,CAAlB;AAOAA,EAAAA,WAAW,CAAC3kB,OAAZ,CAAoB,UAAU4kB,cAAV,EAA0B;AAC5C,QAAItiB,GAAG,GAAGjI,MAAM,CAACuqB,cAAD,CAAhB;;AACA,QAAItiB,GAAG,IAAIA,GAAG,CAACpG,SAAX,IAAwBoG,GAAG,CAACpG,SAAJ,CAAcgN,QAA1C,EAAoD;AAClD,UAAI2b,cAAc,GAAGviB,GAAG,CAACpG,SAAJ,CAAcgN,QAAnC;;AACA5G,MAAAA,GAAG,CAACpG,SAAJ,CAAcgN,QAAd,GAAyB,YAAY;AACnC,eAAO2b,cAAc,CAACtoB,KAAf,CAAqB,IAArB,EAA2ByG,IAA3B,CAAgC,UAAU8hB,WAAV,EAAuB;AAC5D,cAAIC,QAAQ,GAAG,IAAIloB,GAAJ,EAAf;AACAO,UAAAA,MAAM,CAACC,IAAP,CAAYynB,WAAZ,EAAyB9kB,OAAzB,CAAiC,UAAUD,EAAV,EAAc;AAC7C+kB,YAAAA,WAAW,CAAC/kB,EAAD,CAAX,CAAgB3J,IAAhB,GAAuBwjB,YAAY,CAACkL,WAAW,CAAC/kB,EAAD,CAAZ,CAAnC;AACAglB,YAAAA,QAAQ,CAAC9uB,GAAT,CAAa8J,EAAb,EAAiB+kB,WAAW,CAAC/kB,EAAD,CAA5B;AACD,WAHD;AAIA,iBAAOglB,QAAP;AACD,SAPM,CAAP;AAQD,OATD;AAUD;AACF,GAfD,EAtrDqD;;AAwsDrD,MAAIC,OAAO,GAAG,CAAC,aAAD,EAAgB,cAAhB,CAAd;AACAA,EAAAA,OAAO,CAAChlB,OAAR,CAAgB,UAAUtH,MAAV,EAAkB;AAChC,QAAIyT,YAAY,GAAGnQ,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,CAAnB;;AACAsD,IAAAA,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,IAAsC,YAAY;AAChD,UAAI2T,IAAI,GAAG7P,SAAX;;AACA,UAAI,OAAO6P,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAnB,IAAiC,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAxD,EAAoE;AAClE;AACA,eAAOF,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyB,CAACC,SAAS,CAAC,CAAD,CAAV,CAAzB,EAAyCwG,IAAzC,CACL,UAAU0I,WAAV,EAAuB;AACrB,cAAI,OAAOW,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCA,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd,EAAoB,CAACmP,WAAD,CAApB;AACD;AACF,SALI,EAML,UAAUhG,KAAV,EAAiB;AACf,cAAI,OAAO2G,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCA,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd,EAAoB,CAACmJ,KAAD,CAApB;AACD;AACF,SAVI,CAAP;AAYD;;AACD,aAAOyG,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD,KAlBD;AAmBD,GArBD;AAuBAwoB,EAAAA,OAAO,GAAG,CAAC,qBAAD,EAAwB,sBAAxB,EAAgD,iBAAhD,CAAV;AACAA,EAAAA,OAAO,CAAChlB,OAAR,CAAgB,UAAUtH,MAAV,EAAkB;AAChC,QAAIyT,YAAY,GAAGnQ,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,CAAnB;;AACAsD,IAAAA,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,IAAsC,YAAY;AAChD,UAAI2T,IAAI,GAAG7P,SAAX;;AACA,UAAI,OAAO6P,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAnB,IAAiC,OAAOA,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAxD,EAAoE;AAClE;AACA,eAAOF,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,EAAoCwG,IAApC,CACL,YAAY;AACV,cAAI,OAAOqJ,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCA,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd;AACD;AACF,SALI,EAML,UAAUmJ,KAAV,EAAiB;AACf,cAAI,OAAO2G,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCA,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd,EAAoB,CAACmJ,KAAD,CAApB;AACD;AACF,SAVI,CAAP;AAYD;;AACD,aAAOyG,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD,KAlBD;AAmBD,GArBD,EAjuDqD;AAyvDrD;;AACA,GAAC,UAAD,EAAawD,OAAb,CAAqB,UAAUtH,MAAV,EAAkB;AACrC,QAAIyT,YAAY,GAAGnQ,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,CAAnB;;AACAsD,IAAAA,iBAAiB,CAACE,SAAlB,CAA4BxD,MAA5B,IAAsC,YAAY;AAChD,UAAI2T,IAAI,GAAG7P,SAAX;;AACA,UAAI,OAAO6P,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjC,eAAOF,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,EAAoCwG,IAApC,CAAyC,YAAY;AAC1D,cAAI,OAAOqJ,IAAI,CAAC,CAAD,CAAX,KAAmB,UAAvB,EAAmC;AACjCA,YAAAA,IAAI,CAAC,CAAD,CAAJ,CAAQ9P,KAAR,CAAc,IAAd;AACD;AACF,SAJM,CAAP;AAKD;;AACD,aAAO4P,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD,KAVD;AAWD,GAbD;AAeA,SAAOR,iBAAP;AACD,CA1wDD;AA4wDA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASipB,kBAAT,CAA4B5qB,MAA5B,EAAoC;AAClC,QAAMC,SAAS,GAAGD,MAAM,IAAIA,MAAM,CAACC,SAAnC;;AAEA,QAAMsJ,UAAU,GAAG,UAAUpM,CAAV,EAAa;AAC9B,WAAO;AACLzC,MAAAA,IAAI,EAAE;AAAE8O,QAAAA,qBAAqB,EAAE;AAAzB,QAA6CrM,CAAC,CAACzC,IAA/C,KAAwDyC,CAAC,CAACzC,IAD3D;AAELyP,MAAAA,OAAO,EAAEhN,CAAC,CAACgN,OAFN;AAGLC,MAAAA,UAAU,EAAEjN,CAAC,CAACiN,UAHT;;AAILvF,MAAAA,QAAQ,GAAG;AACT,eAAO,KAAKnK,IAAZ;AACD;;AANI,KAAP;AAQD,GATD,CAHkC;;;AAelC,QAAMiQ,gBAAgB,GAAG1K,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoCC,IAApC,CACvBzK,SAAS,CAACuE,YADa,CAAzB;;AAGAvE,EAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,GAAsC,UAAU9D,CAAV,EAAa;AACjD,WAAOgE,gBAAgB,CAAChE,CAAD,CAAhB,CAAoBkkB,KAApB,CAA2B1tB,CAAD,IAAOyB,OAAO,CAACC,MAAR,CAAe0K,UAAU,CAACpM,CAAD,CAAzB,CAAjC,CAAP;AACD,GAFD;AAGD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAAS2tB,qBAAT,CAA+B9qB,MAA/B,EAAuC;AACrC,MAAI,EAAE,qBAAqBA,MAAM,CAACC,SAA9B,CAAJ,EAA8C;AAC5C;AACD;;AACD,MAAI,CAACD,MAAM,CAACC,SAAP,CAAiBuE,YAAtB,EAAoC;AAClC;AACD;;AACD,MACExE,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,IACA,qBAAqBxE,MAAM,CAACC,SAAP,CAAiBuE,YAFxC,EAGE;AACA;AACD;;AACDxE,EAAAA,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,CAA8B8G,eAA9B,GACEtL,MAAM,CAACC,SAAP,CAAiBqL,eAAjB,CAAiCZ,IAAjC,CAAsC1K,MAAM,CAACC,SAA7C,CADF;AAED;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAAS8qB,oBAAT,CAA8B/qB,MAA9B,EAAsCyG,cAAtC,EAAsD;AACpD,MAAIzG,MAAM,CAACuE,cAAX,EAA2B;AACzB,QAAI,CAACvE,MAAM,CAAC2S,eAAZ,EAA6B;AAC3B3S,MAAAA,MAAM,CAAC2S,eAAP,GAAyB,SAASA,eAAT,CAAyBX,IAAzB,EAA+B;AACtD,eAAOA,IAAP;AACD,OAFD;AAGD;;AACD,QAAI,CAAChS,MAAM,CAAC4R,qBAAZ,EAAmC;AACjC5R,MAAAA,MAAM,CAAC4R,qBAAP,GAA+B,SAASA,qBAAT,CAA+BI,IAA/B,EAAqC;AAClE,eAAOA,IAAP;AACD,OAFD;AAGD,KAVwB;AAYzB;AACA;;;AACA,QAAIvL,cAAc,CAACvC,OAAf,GAAyB,KAA7B,EAAoC;AAClC,YAAM8mB,cAAc,GAAGjoB,MAAM,CAACuP,wBAAP,CACrBtS,MAAM,CAACkQ,gBAAP,CAAwBrO,SADH,EAErB,SAFqB,CAAvB;AAIAkB,MAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAACkQ,gBAAP,CAAwBrO,SAA9C,EAAyD,SAAzD,EAAoE;AAClEjG,QAAAA,GAAG,CAACC,KAAD,EAAQ;AACTmvB,UAAAA,cAAc,CAACpvB,GAAf,CAAmBkJ,IAAnB,CAAwB,IAAxB,EAA8BjJ,KAA9B;AACA,gBAAMovB,EAAE,GAAG,IAAIne,KAAJ,CAAU,SAAV,CAAX;AACAme,UAAAA,EAAE,CAAC5F,OAAH,GAAaxpB,KAAb;AACA,eAAKoR,aAAL,CAAmBge,EAAnB;AACD;;AANiE,OAApE;AAQD;AACF,GA7BmD;AAgCpD;;;AACA,MAAIjrB,MAAM,CAACwO,YAAP,IAAuB,EAAE,UAAUxO,MAAM,CAACwO,YAAP,CAAoB3M,SAAhC,CAA3B,EAAuE;AACrEkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAACwO,YAAP,CAAoB3M,SAA1C,EAAqD,MAArD,EAA6D;AAC3DlG,MAAAA,GAAG,GAAG;AACJ,YAAI,KAAK2R,KAAL,KAAelI,SAAnB,EAA8B;AAC5B,cAAI,KAAKU,KAAL,CAAWiD,IAAX,KAAoB,OAAxB,EAAiC;AAC/B,iBAAKuE,KAAL,GAAa,IAAItN,MAAM,CAACkrB,aAAX,CAAyB,IAAzB,CAAb;AACD,WAFD,MAEO,IAAI,KAAKplB,KAAL,CAAWiD,IAAX,KAAoB,OAAxB,EAAiC;AACtC,iBAAKuE,KAAL,GAAa,IAAb;AACD;AACF;;AACD,eAAO,KAAKA,KAAZ;AACD;;AAV0D,KAA7D;AAYD,GA9CmD;AAgDpD;;;AACA,MAAItN,MAAM,CAACkrB,aAAP,IAAwB,CAAClrB,MAAM,CAACmrB,aAApC,EAAmD;AACjDnrB,IAAAA,MAAM,CAACmrB,aAAP,GAAuBnrB,MAAM,CAACkrB,aAA9B;AACD;;AAED,QAAME,qBAAqB,GAAGxJ,iBAAiB,CAC7C5hB,MAD6C,EAE7CyG,cAAc,CAACvC,OAF8B,CAA/C;;AAIAlE,EAAAA,MAAM,CAAC2B,iBAAP,GAA2B,SAASA,iBAAT,CAA2BzH,MAA3B,EAAmC;AAC5D,QAAIA,MAAM,IAAIA,MAAM,CAACsZ,UAArB,EAAiC;AAC/BtZ,MAAAA,MAAM,CAACsZ,UAAP,GAAoBD,kBAAkB,CACpCrZ,MAAM,CAACsZ,UAD6B,EAEpC/M,cAAc,CAACvC,OAFqB,CAAtC;AAIAV,MAAAA,KAAK,CAAC,8BAAD,EAAiCtJ,MAAM,CAACsZ,UAAxC,CAAL;AACD;;AACD,WAAO,IAAI4X,qBAAJ,CAA0BlxB,MAA1B,CAAP;AACD,GATD;;AAUA8F,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,GAAqCupB,qBAAqB,CAACvpB,SAA3D;AACD;;AAED,SAASwpB,gBAAT,CAA0BrrB,MAA1B,EAAkC;AAChC;AACA,MACEA,MAAM,CAACwO,YAAP,IACA,EAAE,kBAAkBxO,MAAM,CAACwO,YAAP,CAAoB3M,SAAxC,CAFF,EAGE;AACA7B,IAAAA,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8BypB,YAA9B,GACEtrB,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8B0pB,QADhC;AAED;AACF;;AAED,IAAIC,QAAQ,gBAAiBzoB,MAAM,CAACkQ,MAAP,CAAc;AACzCC,EAAAA,SAAS,EAAE,IAD8B;AAEzCE,EAAAA,kBAAkB,EAAE2X,oBAFqB;AAGzCM,EAAAA,gBAAgB,EAAEA,gBAHuB;AAIzChY,EAAAA,gBAAgB,EAAEuX,kBAJuB;AAKzCtX,EAAAA,mBAAmB,EAAEwX;AALoB,CAAd,CAA7B;AAQA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASW,kBAAT,CAA4BzrB,MAA5B,EAAoCyG,cAApC,EAAoD;AAClD,QAAMxG,SAAS,GAAGD,MAAM,IAAIA,MAAM,CAACC,SAAnC;AACA,QAAMiQ,gBAAgB,GAAGlQ,MAAM,IAAIA,MAAM,CAACkQ,gBAA1C;;AAEAjQ,EAAAA,SAAS,CAACwK,YAAV,GAAyB,UAAU7C,WAAV,EAAuB2C,SAAvB,EAAkCC,OAAlC,EAA2C;AAClE;AACA7G,IAAAA,UAAU,CAAC,wBAAD,EAA2B,qCAA3B,CAAV;AACA1D,IAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoC7C,WAApC,EAAiDe,IAAjD,CAAsD4B,SAAtD,EAAiEC,OAAjE;AACD,GAJD;;AAMA,MACE,EACE/D,cAAc,CAACvC,OAAf,GAAyB,EAAzB,IACA,qBAAqBjE,SAAS,CAACuE,YAAV,CAAuBgE,uBAAvB,EAFvB,CADF,EAKE;AACA,UAAMR,KAAK,GAAG,UAAUC,GAAV,EAAeC,CAAf,EAAkBC,CAAlB,EAAqB;AACjC,UAAID,CAAC,IAAID,GAAL,IAAY,EAAEE,CAAC,IAAIF,GAAP,CAAhB,EAA6B;AAC3BA,QAAAA,GAAG,CAACE,CAAD,CAAH,GAASF,GAAG,CAACC,CAAD,CAAZ;AACA,eAAOD,GAAG,CAACC,CAAD,CAAV;AACD;AACF,KALD;;AAOA,UAAMwjB,kBAAkB,GAAGzrB,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoCC,IAApC,CACzBzK,SAAS,CAACuE,YADe,CAA3B;;AAGAvE,IAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,GAAsC,UAAU9D,CAAV,EAAa;AACjD,UAAI,OAAOA,CAAP,KAAa,QAAb,IAAyB,OAAOA,CAAC,CAACoB,KAAT,KAAmB,QAAhD,EAA0D;AACxDpB,QAAAA,CAAC,GAAGnI,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAekI,CAAf,CAAX,CAAJ;AACAqB,QAAAA,KAAK,CAACrB,CAAC,CAACoB,KAAH,EAAU,iBAAV,EAA6B,oBAA7B,CAAL;AACAC,QAAAA,KAAK,CAACrB,CAAC,CAACoB,KAAH,EAAU,kBAAV,EAA8B,qBAA9B,CAAL;AACD;;AACD,aAAO2jB,kBAAkB,CAAC/kB,CAAD,CAAzB;AACD,KAPD;;AASA,QAAIuJ,gBAAgB,IAAIA,gBAAgB,CAACrO,SAAjB,CAA2B8pB,WAAnD,EAAgE;AAC9D,YAAMC,iBAAiB,GAAG1b,gBAAgB,CAACrO,SAAjB,CAA2B8pB,WAArD;;AACAzb,MAAAA,gBAAgB,CAACrO,SAAjB,CAA2B8pB,WAA3B,GAAyC,YAAY;AACnD,cAAM1jB,GAAG,GAAG2jB,iBAAiB,CAAC1pB,KAAlB,CAAwB,IAAxB,EAA8BC,SAA9B,CAAZ;AACA6F,QAAAA,KAAK,CAACC,GAAD,EAAM,oBAAN,EAA4B,iBAA5B,CAAL;AACAD,QAAAA,KAAK,CAACC,GAAD,EAAM,qBAAN,EAA6B,kBAA7B,CAAL;AACA,eAAOA,GAAP;AACD,OALD;AAMD;;AAED,QAAIiI,gBAAgB,IAAIA,gBAAgB,CAACrO,SAAjB,CAA2BgqB,gBAAnD,EAAqE;AACnE,YAAMC,sBAAsB,GAC1B5b,gBAAgB,CAACrO,SAAjB,CAA2BgqB,gBAD7B;;AAEA3b,MAAAA,gBAAgB,CAACrO,SAAjB,CAA2BgqB,gBAA3B,GAA8C,UAAUllB,CAAV,EAAa;AACzD,YAAI,KAAKoC,IAAL,KAAc,OAAd,IAAyB,OAAOpC,CAAP,KAAa,QAA1C,EAAoD;AAClDA,UAAAA,CAAC,GAAGnI,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAekI,CAAf,CAAX,CAAJ;AACAqB,UAAAA,KAAK,CAACrB,CAAD,EAAI,iBAAJ,EAAuB,oBAAvB,CAAL;AACAqB,UAAAA,KAAK,CAACrB,CAAD,EAAI,kBAAJ,EAAwB,qBAAxB,CAAL;AACD;;AACD,eAAOmlB,sBAAsB,CAAC5pB,KAAvB,CAA6B,IAA7B,EAAmC,CAACyE,CAAD,CAAnC,CAAP;AACD,OAPD;AAQD;AACF;AACF;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAAS2M,mBAAT,CAA6BtT,MAA7B,EAAqC+rB,oBAArC,EAA2D;AACzD,MACE/rB,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,IACA,qBAAqBxE,MAAM,CAACC,SAAP,CAAiBuE,YAFxC,EAGE;AACA;AACD;;AACD,MAAI,CAACxE,MAAM,CAACC,SAAP,CAAiBuE,YAAtB,EAAoC;AAClC;AACD;;AACDxE,EAAAA,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,CAA8B8G,eAA9B,GAAgD,SAASA,eAAT,CAC9C1D,WAD8C,EAE9C;AACA,QAAI,EAAEA,WAAW,IAAIA,WAAW,CAACQ,KAA7B,CAAJ,EAAyC;AACvC,YAAMzJ,GAAG,GAAG,IAAIuM,YAAJ,CACV,mCAAmC,0BADzB,CAAZ;AAGAvM,MAAAA,GAAG,CAACjE,IAAJ,GAAW,eAAX,CAJuC;;AAMvCiE,MAAAA,GAAG,CAACQ,IAAJ,GAAW,CAAX;AACA,aAAOP,OAAO,CAACC,MAAR,CAAeF,GAAf,CAAP;AACD;;AACD,QAAIiJ,WAAW,CAACQ,KAAZ,KAAsB,IAA1B,EAAgC;AAC9BR,MAAAA,WAAW,CAACQ,KAAZ,GAAoB;AAAE4jB,QAAAA,WAAW,EAAED;AAAf,OAApB;AACD,KAFD,MAEO;AACLnkB,MAAAA,WAAW,CAACQ,KAAZ,CAAkB4jB,WAAlB,GAAgCD,oBAAhC;AACD;;AACD,WAAO/rB,MAAM,CAACC,SAAP,CAAiBuE,YAAjB,CAA8BiG,YAA9B,CAA2C7C,WAA3C,CAAP;AACD,GAlBD;AAmBD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,SAASuL,WAAT,CAAqBnT,MAArB,EAA6B;AAC3B,MACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAACisB,aADP,IAEA,cAAcjsB,MAAM,CAACisB,aAAP,CAAqBpqB,SAFnC,IAGA,EAAE,iBAAiB7B,MAAM,CAACisB,aAAP,CAAqBpqB,SAAxC,CAJF,EAKE;AACAkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAACisB,aAAP,CAAqBpqB,SAA3C,EAAsD,aAAtD,EAAqE;AACnElG,MAAAA,GAAG,GAAG;AACJ,eAAO;AAAEgR,UAAAA,QAAQ,EAAE,KAAKA;AAAjB,SAAP;AACD;;AAHkE,KAArE;AAKD;AACF;;AAED,SAASyG,kBAAT,CAA4BpT,MAA5B,EAAoCyG,cAApC,EAAoD;AAClD,MACE,OAAOzG,MAAP,KAAkB,QAAlB,IACA,EAAEA,MAAM,CAAC2B,iBAAP,IAA4B3B,MAAM,CAACksB,oBAArC,CAFF,EAGE;AACA,WADA;AAED;;AACD,MAAI,CAAClsB,MAAM,CAAC2B,iBAAR,IAA6B3B,MAAM,CAACksB,oBAAxC,EAA8D;AAC5D;AACAlsB,IAAAA,MAAM,CAAC2B,iBAAP,GAA2B3B,MAAM,CAACksB,oBAAlC;AACD;;AAED,MAAIzlB,cAAc,CAACvC,OAAf,GAAyB,EAA7B,EAAiC;AAC/B;AACA,KAAC,qBAAD,EAAwB,sBAAxB,EAAgD,iBAAhD,EAAmEyB,OAAnE,CACE,UAAUtH,MAAV,EAAkB;AAChB,YAAMyT,YAAY,GAAG9R,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,CAArB;AACA,YAAM0T,SAAS,GAAG;AAChB,SAAC1T,MAAD,IAAW;AACT8D,UAAAA,SAAS,CAAC,CAAD,CAAT,GAAe,KACb9D,MAAM,KAAK,iBAAX,GACI2B,MAAM,CAAC2S,eADX,GAEI3S,MAAM,CAAC4R,qBAHE,EAIbzP,SAAS,CAAC,CAAD,CAJI,CAAf;AAKA,iBAAO2P,YAAY,CAAC5P,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAP;AACD;;AARe,OAAlB;AAUAnC,MAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCxD,MAAnC,IAA6C0T,SAAS,CAAC1T,MAAD,CAAtD;AACD,KAdH;AAgBD;;AAED,QAAM8tB,gBAAgB,GAAG;AACvB3M,IAAAA,UAAU,EAAE,aADW;AAEvBC,IAAAA,WAAW,EAAE,cAFU;AAGvBC,IAAAA,aAAa,EAAE,gBAHQ;AAIvBnQ,IAAAA,cAAc,EAAE,iBAJO;AAKvBC,IAAAA,eAAe,EAAE;AALM,GAAzB;AAQA,QAAM4c,cAAc,GAAGpsB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAA1D;;AACA7O,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgN,QAAnC,GAA8C,SAASA,QAAT,GAAoB;AAChE,UAAM,CAACC,QAAD,EAAWC,MAAX,EAAmBC,KAAnB,IAA4B7M,SAAlC;AACA,WAAOiqB,cAAc,CAClBlqB,KADI,CACE,IADF,EACQ,CAAC4M,QAAQ,IAAI,IAAb,CADR,EAEJnG,IAFI,CAEEpD,KAAD,IAAW;AACf,UAAIkB,cAAc,CAACvC,OAAf,GAAyB,EAAzB,IAA+B,CAAC6K,MAApC,EAA4C;AAC1C;AACA;AACA,YAAI;AACFxJ,UAAAA,KAAK,CAACI,OAAN,CAAe+J,IAAD,IAAU;AACtBA,YAAAA,IAAI,CAAC3T,IAAL,GAAYowB,gBAAgB,CAACzc,IAAI,CAAC3T,IAAN,CAAhB,IAA+B2T,IAAI,CAAC3T,IAAhD;AACD,WAFD;AAGD,SAJD,CAIE,OAAOoB,CAAP,EAAU;AACV,cAAIA,CAAC,CAACzC,IAAF,KAAW,WAAf,EAA4B;AAC1B,kBAAMyC,CAAN;AACD,WAHS;;;AAKVoI,UAAAA,KAAK,CAACI,OAAN,CAAc,CAAC+J,IAAD,EAAO1U,CAAP,KAAa;AACzBuK,YAAAA,KAAK,CAAC3J,GAAN,CACEZ,CADF,EAEE+H,MAAM,CAACsC,MAAP,CAAc,EAAd,EAAkBqK,IAAlB,EAAwB;AACtB3T,cAAAA,IAAI,EAAEowB,gBAAgB,CAACzc,IAAI,CAAC3T,IAAN,CAAhB,IAA+B2T,IAAI,CAAC3T;AADpB,aAAxB,CAFF;AAMD,WAPD;AAQD;AACF;;AACD,aAAOwJ,KAAP;AACD,KA1BI,EA2BJoD,IA3BI,CA2BCoG,MA3BD,EA2BSC,KA3BT,CAAP;AA4BD,GA9BD;AA+BD;;AAED,SAASqd,kBAAT,CAA4BrsB,MAA5B,EAAoC;AAClC,MACE,EACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA3B,MAAM,CAACwO,YAHT,CADF,EAME;AACA;AACD;;AACD,MAAIxO,MAAM,CAACwO,YAAP,IAAuB,cAAcxO,MAAM,CAACwO,YAAP,CAAoB3M,SAA7D,EAAwE;AACtE;AACD;;AACD,QAAM4M,cAAc,GAAGzO,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAA1D;;AACA,MAAIgB,cAAJ,EAAoB;AAClBzO,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC4L,UAAnC,GAAgD,SAASA,UAAT,GAAsB;AACpE,YAAMiB,OAAO,GAAGD,cAAc,CAACvM,KAAf,CAAqB,IAArB,EAA2B,EAA3B,CAAhB;AACAwM,MAAAA,OAAO,CAAC/I,OAAR,CAAiBkI,MAAD,IAAaA,MAAM,CAACL,GAAP,GAAa,IAA1C;AACA,aAAOkB,OAAP;AACD,KAJD;AAKD;;AAED,QAAMf,YAAY,GAAG3N,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAxD;;AACA,MAAID,YAAJ,EAAkB;AAChB3N,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,GAAoB;AAChE,YAAMC,MAAM,GAAGF,YAAY,CAACzL,KAAb,CAAmB,IAAnB,EAAyBC,SAAzB,CAAf;AACA0L,MAAAA,MAAM,CAACL,GAAP,GAAa,IAAb;AACA,aAAOK,MAAP;AACD,KAJD;AAKD;;AACD7N,EAAAA,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8BgN,QAA9B,GAAyC,SAASA,QAAT,GAAoB;AAC3D,WAAO,KAAK/I,KAAL,GACH,KAAK0H,GAAL,CAASqB,QAAT,CAAkB,KAAK/I,KAAvB,CADG,GAEHlH,OAAO,CAACQ,OAAR,CAAgB,IAAIoD,GAAJ,EAAhB,CAFJ;AAGD,GAJD;AAKD;;AAED,SAAS8pB,oBAAT,CAA8BtsB,MAA9B,EAAsC;AACpC,MACE,EACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAAC2B,iBADP,IAEA3B,MAAM,CAACwO,YAHT,CADF,EAME;AACA;AACD;;AACD,MAAIxO,MAAM,CAACwO,YAAP,IAAuB,cAAcxO,MAAM,CAAC8P,cAAP,CAAsBjO,SAA/D,EAA0E;AACxE;AACD;;AACD,QAAMkO,gBAAgB,GAAG/P,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAA5D;;AACA,MAAImD,gBAAJ,EAAsB;AACpB/P,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+K,YAAnC,GAAkD,SAASA,YAAT,GAAwB;AACxE,YAAMoD,SAAS,GAAGD,gBAAgB,CAAC7N,KAAjB,CAAuB,IAAvB,EAA6B,EAA7B,CAAlB;AACA8N,MAAAA,SAAS,CAACrK,OAAV,CAAmBgH,QAAD,IAAeA,QAAQ,CAACa,GAAT,GAAe,IAAhD;AACA,aAAOwC,SAAP;AACD,KAJD;AAKD;;AACDxO,EAAAA,uBAAuB,CAACxB,MAAD,EAAS,OAAT,EAAmB7C,CAAD,IAAO;AAC9CA,IAAAA,CAAC,CAACwP,QAAF,CAAWa,GAAX,GAAiBrQ,CAAC,CAAC8S,UAAnB;AACA,WAAO9S,CAAP;AACD,GAHsB,CAAvB;;AAIA6C,EAAAA,MAAM,CAAC8P,cAAP,CAAsBjO,SAAtB,CAAgCgN,QAAhC,GAA2C,SAASA,QAAT,GAAoB;AAC7D,WAAO,KAAKrB,GAAL,CAASqB,QAAT,CAAkB,KAAK/I,KAAvB,CAAP;AACD,GAFD;AAGD;;AAED,SAASymB,gBAAT,CAA0BvsB,MAA1B,EAAkC;AAChC,MACE,CAACA,MAAM,CAAC2B,iBAAR,IACA,kBAAkB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAF7C,EAGE;AACA;AACD;;AACD7B,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAAnC,GAAkD,SAASA,YAAT,CAChDzD,MADgD,EAEhD;AACAlH,IAAAA,UAAU,CAAC,cAAD,EAAiB,aAAjB,CAAV;AACA,SAAK8J,UAAL,GAAkB9H,OAAlB,CAA2BkI,MAAD,IAAY;AACpC,UAAIA,MAAM,CAAC/H,KAAP,IAAgB+E,MAAM,CAACG,SAAP,GAAmB3B,QAAnB,CAA4BwE,MAAM,CAAC/H,KAAnC,CAApB,EAA+D;AAC7D,aAAKiI,WAAL,CAAiBF,MAAjB;AACD;AACF,KAJD;AAKD,GATD;AAUD;;AAED,SAAS2e,kBAAT,CAA4BxsB,MAA5B,EAAoC;AAClC;AACA;AACA,MAAIA,MAAM,CAACysB,WAAP,IAAsB,CAACzsB,MAAM,CAAC0sB,cAAlC,EAAkD;AAChD1sB,IAAAA,MAAM,CAAC0sB,cAAP,GAAwB1sB,MAAM,CAACysB,WAA/B;AACD;AACF;;AAED,SAASE,kBAAT,CAA4B3sB,MAA5B,EAAoC;AAClC;AACA;AACA;AACA,MAAI,EAAE,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,CAAC2B,iBAAvC,CAAJ,EAA+D;AAC7D;AACD;;AACD,QAAMirB,kBAAkB,GAAG5sB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgrB,cAA9D;;AACA,MAAID,kBAAJ,EAAwB;AACtB5sB,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCgrB,cAAnC,GACE,SAASA,cAAT,GAA0B;AACxB,WAAKC,qBAAL,GAA6B,EAA7B;AACA,YAAMC,cAAc,GAAG5qB,SAAS,CAAC,CAAD,CAAhC;AACA,YAAM6qB,kBAAkB,GACtBD,cAAc,IAAI,mBAAmBA,cADvC;;AAEA,UAAIC,kBAAJ,EAAwB;AACtB;AACAD,QAAAA,cAAc,CAACE,aAAf,CAA6BtnB,OAA7B,CAAsCunB,aAAD,IAAmB;AACtD,cAAI,SAASA,aAAb,EAA4B;AAC1B,kBAAMC,QAAQ,GAAG,mBAAjB;;AACA,gBAAI,CAACA,QAAQ,CAACC,IAAT,CAAcF,aAAa,CAACG,GAA5B,CAAL,EAAuC;AACrC,oBAAM,IAAI3L,SAAJ,CAAc,6BAAd,CAAN;AACD;AACF;;AACD,cAAI,2BAA2BwL,aAA/B,EAA8C;AAC5C,gBAAI,EAAEI,UAAU,CAACJ,aAAa,CAACK,qBAAf,CAAV,IAAmD,GAArD,CAAJ,EAA+D;AAC7D,oBAAM,IAAIC,UAAJ,CAAe,yCAAf,CAAN;AACD;AACF;;AACD,cAAI,kBAAkBN,aAAtB,EAAqC;AACnC,gBAAI,EAAEI,UAAU,CAACJ,aAAa,CAACO,YAAf,CAAV,IAA0C,CAA5C,CAAJ,EAAoD;AAClD,oBAAM,IAAID,UAAJ,CAAe,8BAAf,CAAN;AACD;AACF;AACF,SAjBD;AAkBD;;AACD,YAAMzgB,WAAW,GAAG6f,kBAAkB,CAAC1qB,KAAnB,CAAyB,IAAzB,EAA+BC,SAA/B,CAApB;;AACA,UAAI6qB,kBAAJ,EAAwB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAM;AAAEnf,UAAAA;AAAF,YAAad,WAAnB;AACA,cAAMxO,MAAM,GAAGsP,MAAM,CAAC6f,aAAP,EAAf;;AACA,YACE,EAAE,eAAenvB,MAAjB;AAECA,QAAAA,MAAM,CAAC0oB,SAAP,CAAiBpqB,MAAjB,KAA4B,CAA5B,IACCkG,MAAM,CAACC,IAAP,CAAYzE,MAAM,CAAC0oB,SAAP,CAAiB,CAAjB,CAAZ,EAAiCpqB,MAAjC,KAA4C,CAJhD,EAKE;AACA0B,UAAAA,MAAM,CAAC0oB,SAAP,GAAmB8F,cAAc,CAACE,aAAlC;AACApf,UAAAA,MAAM,CAACof,aAAP,GAAuBF,cAAc,CAACE,aAAtC;AACA,eAAKH,qBAAL,CAA2B1mB,IAA3B,CACEyH,MAAM,CACH8f,aADH,CACiBpvB,MADjB,EAEGoK,IAFH,CAEQ,MAAM;AACV,mBAAOkF,MAAM,CAACof,aAAd;AACD,WAJH,EAKGpC,KALH,CAKS,MAAM;AACX,mBAAOhd,MAAM,CAACof,aAAd;AACD,WAPH,CADF;AAUD;AACF;;AACD,aAAOlgB,WAAP;AACD,KA3DH;AA4DD;AACF;;AAED,SAAS6gB,iBAAT,CAA2B5tB,MAA3B,EAAmC;AACjC,MAAI,EAAE,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,CAACwO,YAAvC,CAAJ,EAA0D;AACxD;AACD;;AACD,QAAMqf,iBAAiB,GAAG7tB,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8B6rB,aAAxD;;AACA,MAAIG,iBAAJ,EAAuB;AACrB7tB,IAAAA,MAAM,CAACwO,YAAP,CAAoB3M,SAApB,CAA8B6rB,aAA9B,GAA8C,SAASA,aAAT,GAAyB;AACrE,YAAMnvB,MAAM,GAAGsvB,iBAAiB,CAAC3rB,KAAlB,CAAwB,IAAxB,EAA8BC,SAA9B,CAAf;;AACA,UAAI,EAAE,eAAe5D,MAAjB,CAAJ,EAA8B;AAC5BA,QAAAA,MAAM,CAAC0oB,SAAP,GAAmB,GAAGvf,MAAH,CAAU,KAAKulB,aAAL,IAAsB,CAAC,EAAD,CAAhC,CAAnB;AACD;;AACD,aAAO1uB,MAAP;AACD,KAND;AAOD;AACF;;AAED,SAASuvB,eAAT,CAAyB9tB,MAAzB,EAAiC;AAC/B;AACA;AACA;AACA,MAAI,EAAE,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,CAAC2B,iBAAvC,CAAJ,EAA+D;AAC7D;AACD;;AACD,QAAMosB,eAAe,GAAG/tB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmConB,WAA3D;;AACAjpB,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmConB,WAAnC,GAAiD,SAASA,WAAT,GAAuB;AACtE,QAAI,KAAK6D,qBAAL,IAA8B,KAAKA,qBAAL,CAA2BjwB,MAA7D,EAAqE;AACnE,aAAO+B,OAAO,CAACurB,GAAR,CAAY,KAAK2C,qBAAjB,EACJnkB,IADI,CACC,MAAM;AACV,eAAOolB,eAAe,CAAC7rB,KAAhB,CAAsB,IAAtB,EAA4BC,SAA5B,CAAP;AACD,OAHI,EAIJ6rB,OAJI,CAII,MAAM;AACb,aAAKlB,qBAAL,GAA6B,EAA7B;AACD,OANI,CAAP;AAOD;;AACD,WAAOiB,eAAe,CAAC7rB,KAAhB,CAAsB,IAAtB,EAA4BC,SAA5B,CAAP;AACD,GAXD;AAYD;;AAED,SAAS8rB,gBAAT,CAA0BjuB,MAA1B,EAAkC;AAChC;AACA;AACA;AACA,MAAI,EAAE,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,CAAC2B,iBAAvC,CAAJ,EAA+D;AAC7D;AACD;;AACD,QAAMusB,gBAAgB,GAAGluB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+nB,YAA5D;;AACA5pB,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+nB,YAAnC,GAAkD,SAASA,YAAT,GAAwB;AACxE,QAAI,KAAKkD,qBAAL,IAA8B,KAAKA,qBAAL,CAA2BjwB,MAA7D,EAAqE;AACnE,aAAO+B,OAAO,CAACurB,GAAR,CAAY,KAAK2C,qBAAjB,EACJnkB,IADI,CACC,MAAM;AACV,eAAOulB,gBAAgB,CAAChsB,KAAjB,CAAuB,IAAvB,EAA6BC,SAA7B,CAAP;AACD,OAHI,EAIJ6rB,OAJI,CAII,MAAM;AACb,aAAKlB,qBAAL,GAA6B,EAA7B;AACD,OANI,CAAP;AAOD;;AACD,WAAOoB,gBAAgB,CAAChsB,KAAjB,CAAuB,IAAvB,EAA6BC,SAA7B,CAAP;AACD,GAXD;AAYD;;AAED,IAAIgsB,WAAW,gBAAiBprB,MAAM,CAACkQ,MAAP,CAAc;AAC5CC,EAAAA,SAAS,EAAE,IADiC;AAE5CC,EAAAA,WAAW,EAAEA,WAF+B;AAG5CC,EAAAA,kBAAkB,EAAEA,kBAHwB;AAI5CiZ,EAAAA,kBAAkB,EAAEA,kBAJwB;AAK5CC,EAAAA,oBAAoB,EAAEA,oBALsB;AAM5CC,EAAAA,gBAAgB,EAAEA,gBAN0B;AAO5CC,EAAAA,kBAAkB,EAAEA,kBAPwB;AAQ5CG,EAAAA,kBAAkB,EAAEA,kBARwB;AAS5CiB,EAAAA,iBAAiB,EAAEA,iBATyB;AAU5CE,EAAAA,eAAe,EAAEA,eAV2B;AAW5CG,EAAAA,gBAAgB,EAAEA,gBAX0B;AAY5C5a,EAAAA,gBAAgB,EAAEoY,kBAZ0B;AAa5CnY,EAAAA,mBAAmB,EAAEA;AAbuB,CAAd,CAAhC;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS8a,mBAAT,CAA6BpuB,MAA7B,EAAqC;AACnC,MAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,CAACA,MAAM,CAAC2B,iBAA1C,EAA6D;AAC3D;AACD;;AACD,MAAI,EAAE,qBAAqB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAhD,CAAJ,EAAgE;AAC9D7B,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuO,eAAnC,GACE,SAASA,eAAT,GAA2B;AACzB,UAAI,CAAC,KAAKie,aAAV,EAAyB;AACvB,aAAKA,aAAL,GAAqB,EAArB;AACD;;AACD,aAAO,KAAKA,aAAZ;AACD,KANH;AAOD;;AACD,MAAI,EAAE,eAAeruB,MAAM,CAAC2B,iBAAP,CAAyBE,SAA1C,CAAJ,EAA0D;AACxD,UAAMysB,SAAS,GAAGtuB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAArD;;AACA5N,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCuM,SAAnC,GAA+C,SAASA,SAAT,CAAmBvD,MAAnB,EAA2B;AACxE,UAAI,CAAC,KAAKwjB,aAAV,EAAyB;AACvB,aAAKA,aAAL,GAAqB,EAArB;AACD;;AACD,UAAI,CAAC,KAAKA,aAAL,CAAmBhlB,QAAnB,CAA4BwB,MAA5B,CAAL,EAA0C;AACxC,aAAKwjB,aAAL,CAAmBjoB,IAAnB,CAAwByE,MAAxB;AACD,OANuE;AAQxE;;;AACAA,MAAAA,MAAM,CACHC,cADH,GAEGnF,OAFH,CAEYG,KAAD,IAAWwoB,SAAS,CAACxpB,IAAV,CAAe,IAAf,EAAqBgB,KAArB,EAA4B+E,MAA5B,CAFtB;AAGAA,MAAAA,MAAM,CACHE,cADH,GAEGpF,OAFH,CAEYG,KAAD,IAAWwoB,SAAS,CAACxpB,IAAV,CAAe,IAAf,EAAqBgB,KAArB,EAA4B+E,MAA5B,CAFtB;AAGD,KAfD;;AAiBA7K,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC+L,QAAnC,GAA8C,SAASA,QAAT,CAC5C9H,KAD4C,EAE5C,GAAGkH,OAFyC,EAG5C;AACA,UAAIA,OAAJ,EAAa;AACXA,QAAAA,OAAO,CAACrH,OAAR,CAAiBkF,MAAD,IAAY;AAC1B,cAAI,CAAC,KAAKwjB,aAAV,EAAyB;AACvB,iBAAKA,aAAL,GAAqB,CAACxjB,MAAD,CAArB;AACD,WAFD,MAEO,IAAI,CAAC,KAAKwjB,aAAL,CAAmBhlB,QAAnB,CAA4BwB,MAA5B,CAAL,EAA0C;AAC/C,iBAAKwjB,aAAL,CAAmBjoB,IAAnB,CAAwByE,MAAxB;AACD;AACF,SAND;AAOD;;AACD,aAAOyjB,SAAS,CAACpsB,KAAV,CAAgB,IAAhB,EAAsBC,SAAtB,CAAP;AACD,KAdD;AAeD;;AACD,MAAI,EAAE,kBAAkBnC,MAAM,CAAC2B,iBAAP,CAAyBE,SAA7C,CAAJ,EAA6D;AAC3D7B,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCyM,YAAnC,GAAkD,SAASA,YAAT,CAChDzD,MADgD,EAEhD;AACA,UAAI,CAAC,KAAKwjB,aAAV,EAAyB;AACvB,aAAKA,aAAL,GAAqB,EAArB;AACD;;AACD,YAAMlZ,KAAK,GAAG,KAAKkZ,aAAL,CAAmBpgB,OAAnB,CAA2BpD,MAA3B,CAAd;;AACA,UAAIsK,KAAK,KAAK,CAAC,CAAf,EAAkB;AAChB;AACD;;AACD,WAAKkZ,aAAL,CAAmBngB,MAAnB,CAA0BiH,KAA1B,EAAiC,CAAjC;;AACA,YAAMoZ,MAAM,GAAG1jB,MAAM,CAACG,SAAP,EAAf;AACA,WAAKyC,UAAL,GAAkB9H,OAAlB,CAA2BkI,MAAD,IAAY;AACpC,YAAI0gB,MAAM,CAACllB,QAAP,CAAgBwE,MAAM,CAAC/H,KAAvB,CAAJ,EAAmC;AACjC,eAAKiI,WAAL,CAAiBF,MAAjB;AACD;AACF,OAJD;AAKD,KAjBD;AAkBD;AACF;;AAED,SAAS2gB,oBAAT,CAA8BxuB,MAA9B,EAAsC;AACpC,MAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,CAACA,MAAM,CAAC2B,iBAA1C,EAA6D;AAC3D;AACD;;AACD,MAAI,EAAE,sBAAsB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAjD,CAAJ,EAAiE;AAC/D7B,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2iB,gBAAnC,GACE,SAASA,gBAAT,GAA4B;AAC1B,aAAO,KAAKiK,cAAL,GAAsB,KAAKA,cAA3B,GAA4C,EAAnD;AACD,KAHH;AAID;;AACD,MAAI,EAAE,iBAAiBzuB,MAAM,CAAC2B,iBAAP,CAAyBE,SAA5C,CAAJ,EAA4D;AAC1DkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAAC2B,iBAAP,CAAyBE,SAA/C,EAA0D,aAA1D,EAAyE;AACvElG,MAAAA,GAAG,GAAG;AACJ,eAAO,KAAK+yB,YAAZ;AACD,OAHsE;;AAIvE9yB,MAAAA,GAAG,CAAC0Q,CAAD,EAAI;AACL,YAAI,KAAKoiB,YAAT,EAAuB;AACrB,eAAKhsB,mBAAL,CAAyB,WAAzB,EAAsC,KAAKgsB,YAA3C;AACA,eAAKhsB,mBAAL,CAAyB,OAAzB,EAAkC,KAAKisB,gBAAvC;AACD;;AACD,aAAK5sB,gBAAL,CAAsB,WAAtB,EAAoC,KAAK2sB,YAAL,GAAoBpiB,CAAxD;AACA,aAAKvK,gBAAL,CACE,OADF,EAEG,KAAK4sB,gBAAL,GAAyBxxB,CAAD,IAAO;AAC9BA,UAAAA,CAAC,CAAC6P,OAAF,CAAUrH,OAAV,CAAmBkF,MAAD,IAAY;AAC5B,gBAAI,CAAC,KAAK4jB,cAAV,EAA0B;AACxB,mBAAKA,cAAL,GAAsB,EAAtB;AACD;;AACD,gBAAI,KAAKA,cAAL,CAAoBplB,QAApB,CAA6BwB,MAA7B,CAAJ,EAA0C;AACxC;AACD;;AACD,iBAAK4jB,cAAL,CAAoBroB,IAApB,CAAyByE,MAAzB;;AACA,kBAAMgC,KAAK,GAAG,IAAIC,KAAJ,CAAU,WAAV,CAAd;AACAD,YAAAA,KAAK,CAAChC,MAAN,GAAeA,MAAf;AACA,iBAAKoC,aAAL,CAAmBJ,KAAnB;AACD,WAXD;AAYD,SAfH;AAiBD;;AA3BsE,KAAzE;AA6BA,UAAMN,wBAAwB,GAC5BvM,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBADrC;;AAEAxM,IAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBAAnC,GACE,SAASA,oBAAT,GAAgC;AAC9B,YAAMY,EAAE,GAAG,IAAX;;AACA,UAAI,CAAC,KAAKuhB,gBAAV,EAA4B;AAC1B,aAAK5sB,gBAAL,CACE,OADF,EAEG,KAAK4sB,gBAAL,GAAwB,UAAUxxB,CAAV,EAAa;AACpCA,UAAAA,CAAC,CAAC6P,OAAF,CAAUrH,OAAV,CAAmBkF,MAAD,IAAY;AAC5B,gBAAI,CAACuC,EAAE,CAACqhB,cAAR,EAAwB;AACtBrhB,cAAAA,EAAE,CAACqhB,cAAH,GAAoB,EAApB;AACD;;AACD,gBAAIrhB,EAAE,CAACqhB,cAAH,CAAkBxgB,OAAlB,CAA0BpD,MAA1B,KAAqC,CAAzC,EAA4C;AAC1C;AACD;;AACDuC,YAAAA,EAAE,CAACqhB,cAAH,CAAkBroB,IAAlB,CAAuByE,MAAvB;;AACA,kBAAMgC,KAAK,GAAG,IAAIC,KAAJ,CAAU,WAAV,CAAd;AACAD,YAAAA,KAAK,CAAChC,MAAN,GAAeA,MAAf;AACAuC,YAAAA,EAAE,CAACH,aAAH,CAAiBJ,KAAjB;AACD,WAXD;AAYD,SAfH;AAiBD;;AACD,aAAON,wBAAwB,CAACrK,KAAzB,CAA+BkL,EAA/B,EAAmCjL,SAAnC,CAAP;AACD,KAvBH;AAwBD;AACF;;AAED,SAASysB,gBAAT,CAA0B5uB,MAA1B,EAAkC;AAChC,MAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8B,CAACA,MAAM,CAAC2B,iBAA1C,EAA6D;AAC3D;AACD;;AACD,QAAME,SAAS,GAAG7B,MAAM,CAAC2B,iBAAP,CAAyBE,SAA3C;AACA,QAAMksB,eAAe,GAAGlsB,SAAS,CAAConB,WAAlC;AACA,QAAMiF,gBAAgB,GAAGrsB,SAAS,CAAC+nB,YAAnC;AACA,QAAMxX,mBAAmB,GAAGvQ,SAAS,CAACuQ,mBAAtC;AACA,QAAM5F,oBAAoB,GAAG3K,SAAS,CAAC2K,oBAAvC;AACA,QAAMud,eAAe,GAAGloB,SAAS,CAACkoB,eAAlC;;AAEAloB,EAAAA,SAAS,CAAConB,WAAV,GAAwB,SAASA,WAAT,CACtB4F,eADsB,EAEtBC,eAFsB,EAGtB;AACA,UAAMC,OAAO,GAAG5sB,SAAS,CAACtF,MAAV,IAAoB,CAApB,GAAwBsF,SAAS,CAAC,CAAD,CAAjC,GAAuCA,SAAS,CAAC,CAAD,CAAhE;AACA,UAAM6sB,OAAO,GAAGjB,eAAe,CAAC7rB,KAAhB,CAAsB,IAAtB,EAA4B,CAAC6sB,OAAD,CAA5B,CAAhB;;AACA,QAAI,CAACD,eAAL,EAAsB;AACpB,aAAOE,OAAP;AACD;;AACDA,IAAAA,OAAO,CAACrmB,IAAR,CAAakmB,eAAb,EAA8BC,eAA9B;AACA,WAAOlwB,OAAO,CAACQ,OAAR,EAAP;AACD,GAXD;;AAaAyC,EAAAA,SAAS,CAAC+nB,YAAV,GAAyB,SAASA,YAAT,CACvBiF,eADuB,EAEvBC,eAFuB,EAGvB;AACA,UAAMC,OAAO,GAAG5sB,SAAS,CAACtF,MAAV,IAAoB,CAApB,GAAwBsF,SAAS,CAAC,CAAD,CAAjC,GAAuCA,SAAS,CAAC,CAAD,CAAhE;AACA,UAAM6sB,OAAO,GAAGd,gBAAgB,CAAChsB,KAAjB,CAAuB,IAAvB,EAA6B,CAAC6sB,OAAD,CAA7B,CAAhB;;AACA,QAAI,CAACD,eAAL,EAAsB;AACpB,aAAOE,OAAP;AACD;;AACDA,IAAAA,OAAO,CAACrmB,IAAR,CAAakmB,eAAb,EAA8BC,eAA9B;AACA,WAAOlwB,OAAO,CAACQ,OAAR,EAAP;AACD,GAXD;;AAaA,MAAI6vB,YAAY,GAAG,UAAU5d,WAAV,EAAuBwd,eAAvB,EAAwCC,eAAxC,EAAyD;AAC1E,UAAME,OAAO,GAAG5c,mBAAmB,CAAClQ,KAApB,CAA0B,IAA1B,EAAgC,CAACmP,WAAD,CAAhC,CAAhB;;AACA,QAAI,CAACyd,eAAL,EAAsB;AACpB,aAAOE,OAAP;AACD;;AACDA,IAAAA,OAAO,CAACrmB,IAAR,CAAakmB,eAAb,EAA8BC,eAA9B;AACA,WAAOlwB,OAAO,CAACQ,OAAR,EAAP;AACD,GAPD;;AAQAyC,EAAAA,SAAS,CAACuQ,mBAAV,GAAgC6c,YAAhC;;AAEAA,EAAAA,YAAY,GAAG,UAAU5d,WAAV,EAAuBwd,eAAvB,EAAwCC,eAAxC,EAAyD;AACtE,UAAME,OAAO,GAAGxiB,oBAAoB,CAACtK,KAArB,CAA2B,IAA3B,EAAiC,CAACmP,WAAD,CAAjC,CAAhB;;AACA,QAAI,CAACyd,eAAL,EAAsB;AACpB,aAAOE,OAAP;AACD;;AACDA,IAAAA,OAAO,CAACrmB,IAAR,CAAakmB,eAAb,EAA8BC,eAA9B;AACA,WAAOlwB,OAAO,CAACQ,OAAR,EAAP;AACD,GAPD;;AAQAyC,EAAAA,SAAS,CAAC2K,oBAAV,GAAiCyiB,YAAjC;;AAEAA,EAAAA,YAAY,GAAG,UAAUtZ,SAAV,EAAqBkZ,eAArB,EAAsCC,eAAtC,EAAuD;AACpE,UAAME,OAAO,GAAGjF,eAAe,CAAC7nB,KAAhB,CAAsB,IAAtB,EAA4B,CAACyT,SAAD,CAA5B,CAAhB;;AACA,QAAI,CAACmZ,eAAL,EAAsB;AACpB,aAAOE,OAAP;AACD;;AACDA,IAAAA,OAAO,CAACrmB,IAAR,CAAakmB,eAAb,EAA8BC,eAA9B;AACA,WAAOlwB,OAAO,CAACQ,OAAR,EAAP;AACD,GAPD;;AAQAyC,EAAAA,SAAS,CAACkoB,eAAV,GAA4BkF,YAA5B;AACD;;AAED,SAAS5b,gBAAT,CAA0BrT,MAA1B,EAAkC;AAChC,QAAMC,SAAS,GAAGD,MAAM,IAAIA,MAAM,CAACC,SAAnC;;AAEA,MAAIA,SAAS,CAACuE,YAAV,IAA0BvE,SAAS,CAACuE,YAAV,CAAuBiG,YAArD,EAAmE;AACjE;AACA,UAAMjG,YAAY,GAAGvE,SAAS,CAACuE,YAA/B;;AACA,UAAM0qB,aAAa,GAAG1qB,YAAY,CAACiG,YAAb,CAA0BC,IAA1B,CAA+BlG,YAA/B,CAAtB;;AACAvE,IAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,GAAuC7C,WAAD,IAAiB;AACrD,aAAOsnB,aAAa,CAACC,eAAe,CAACvnB,WAAD,CAAhB,CAApB;AACD,KAFD;AAGD;;AAED,MACE,CAAC3H,SAAS,CAACwK,YAAX,IACAxK,SAAS,CAACuE,YADV,IAEAvE,SAAS,CAACuE,YAAV,CAAuBiG,YAHzB,EAIE;AACAxK,IAAAA,SAAS,CAACwK,YAAV,GAAyB,SAASA,YAAT,CAAsB7C,WAAtB,EAAmC3F,EAAnC,EAAuCmtB,KAAvC,EAA8C;AACrEnvB,MAAAA,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoC7C,WAApC,EAAiDe,IAAjD,CAAsD1G,EAAtD,EAA0DmtB,KAA1D;AACD,KAFwB,CAEvB1kB,IAFuB,CAElBzK,SAFkB,CAAzB;AAGD;AACF;;AAED,SAASkvB,eAAT,CAAyBvnB,WAAzB,EAAsC;AACpC,MAAIA,WAAW,IAAIA,WAAW,CAACQ,KAAZ,KAAsBhD,SAAzC,EAAoD;AAClD,WAAOrC,MAAM,CAACsC,MAAP,CAAc,EAAd,EAAkBuC,WAAlB,EAA+B;AACpCQ,MAAAA,KAAK,EAAErD,aAAa,CAAC6C,WAAW,CAACQ,KAAb;AADgB,KAA/B,CAAP;AAGD;;AAED,SAAOR,WAAP;AACD;;AAED,SAASynB,oBAAT,CAA8BrvB,MAA9B,EAAsC;AACpC,MAAI,CAACA,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD,GAHmC;;;AAKpC,QAAM2tB,kBAAkB,GAAGtvB,MAAM,CAAC2B,iBAAlC;;AACA3B,EAAAA,MAAM,CAAC2B,iBAAP,GAA2B,SAASA,iBAAT,CACzB4tB,QADyB,EAEzBC,aAFyB,EAGzB;AACA,QAAID,QAAQ,IAAIA,QAAQ,CAAC/b,UAAzB,EAAqC;AACnC,YAAMic,aAAa,GAAG,EAAtB;;AACA,WAAK,IAAIz0B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGu0B,QAAQ,CAAC/b,UAAT,CAAoB3W,MAAxC,EAAgD7B,CAAC,EAAjD,EAAqD;AACnD,YAAI2Y,MAAM,GAAG4b,QAAQ,CAAC/b,UAAT,CAAoBxY,CAApB,CAAb;;AACA,YAAI,CAAC2Y,MAAM,CAAC+b,cAAP,CAAsB,MAAtB,CAAD,IAAkC/b,MAAM,CAAC+b,cAAP,CAAsB,KAAtB,CAAtC,EAAoE;AAClE/rB,UAAAA,UAAU,CAAC,kBAAD,EAAqB,mBAArB,CAAV;AACAgQ,UAAAA,MAAM,GAAGnV,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAekV,MAAf,CAAX,CAAT;AACAA,UAAAA,MAAM,CAACC,IAAP,GAAcD,MAAM,CAACE,GAArB;AACA,iBAAOF,MAAM,CAACE,GAAd;AACA4b,UAAAA,aAAa,CAACrpB,IAAd,CAAmBuN,MAAnB;AACD,SAND,MAMO;AACL8b,UAAAA,aAAa,CAACrpB,IAAd,CAAmBmpB,QAAQ,CAAC/b,UAAT,CAAoBxY,CAApB,CAAnB;AACD;AACF;;AACDu0B,MAAAA,QAAQ,CAAC/b,UAAT,GAAsBic,aAAtB;AACD;;AACD,WAAO,IAAIH,kBAAJ,CAAuBC,QAAvB,EAAiCC,aAAjC,CAAP;AACD,GArBD;;AAsBAxvB,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,GAAqCytB,kBAAkB,CAACztB,SAAxD,CA5BoC;;AA8BpC,MAAI,yBAAyBytB,kBAA7B,EAAiD;AAC/CvsB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAAC2B,iBAA7B,EAAgD,qBAAhD,EAAuE;AACrEhG,MAAAA,GAAG,GAAG;AACJ,eAAO2zB,kBAAkB,CAACK,mBAA1B;AACD;;AAHoE,KAAvE;AAKD;AACF;;AAED,SAASC,yBAAT,CAAmC5vB,MAAnC,EAA2C;AACzC;AACA,MACE,OAAOA,MAAP,KAAkB,QAAlB,IACAA,MAAM,CAACisB,aADP,IAEA,cAAcjsB,MAAM,CAACisB,aAAP,CAAqBpqB,SAFnC,IAGA,EAAE,iBAAiB7B,MAAM,CAACisB,aAAP,CAAqBpqB,SAAxC,CAJF,EAKE;AACAkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAACisB,aAAP,CAAqBpqB,SAA3C,EAAsD,aAAtD,EAAqE;AACnElG,MAAAA,GAAG,GAAG;AACJ,eAAO;AAAEgR,UAAAA,QAAQ,EAAE,KAAKA;AAAjB,SAAP;AACD;;AAHkE,KAArE;AAKD;AACF;;AAED,SAASkjB,qBAAT,CAA+B7vB,MAA/B,EAAuC;AACrC,QAAM+tB,eAAe,GAAG/tB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmConB,WAA3D;;AACAjpB,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmConB,WAAnC,GAAiD,SAASA,WAAT,CAC/CG,YAD+C,EAE/C;AACA,QAAIA,YAAJ,EAAkB;AAChB,UAAI,OAAOA,YAAY,CAACC,mBAApB,KAA4C,WAAhD,EAA6D;AAC3D;AACAD,QAAAA,YAAY,CAACC,mBAAb,GAAmC,CAAC,CAACD,YAAY,CAACC,mBAAlD;AACD;;AACD,YAAMyG,gBAAgB,GAAG,KAAKC,eAAL,GAAuB9mB,IAAvB,CACtB8D,WAAD,IAAiBA,WAAW,CAACJ,QAAZ,CAAqB7G,KAArB,CAA2BiD,IAA3B,KAAoC,OAD9B,CAAzB;;AAGA,UAAIqgB,YAAY,CAACC,mBAAb,KAAqC,KAArC,IAA8CyG,gBAAlD,EAAoE;AAClE,YAAIA,gBAAgB,CAACzY,SAAjB,KAA+B,UAAnC,EAA+C;AAC7C,cAAIyY,gBAAgB,CAACE,YAArB,EAAmC;AACjCF,YAAAA,gBAAgB,CAACE,YAAjB,CAA8B,UAA9B;AACD,WAFD,MAEO;AACLF,YAAAA,gBAAgB,CAACzY,SAAjB,GAA6B,UAA7B;AACD;AACF,SAND,MAMO,IAAIyY,gBAAgB,CAACzY,SAAjB,KAA+B,UAAnC,EAA+C;AACpD,cAAIyY,gBAAgB,CAACE,YAArB,EAAmC;AACjCF,YAAAA,gBAAgB,CAACE,YAAjB,CAA8B,UAA9B;AACD,WAFD,MAEO;AACLF,YAAAA,gBAAgB,CAACzY,SAAjB,GAA6B,UAA7B;AACD;AACF;AACF,OAdD,MAcO,IACL+R,YAAY,CAACC,mBAAb,KAAqC,IAArC,IACA,CAACyG,gBAFI,EAGL;AACA,aAAKjD,cAAL,CAAoB,OAApB;AACD;;AAED,UAAI,OAAOzD,YAAY,CAACE,mBAApB,KAA4C,WAAhD,EAA6D;AAC3D;AACAF,QAAAA,YAAY,CAACE,mBAAb,GAAmC,CAAC,CAACF,YAAY,CAACE,mBAAlD;AACD;;AACD,YAAM2G,gBAAgB,GAAG,KAAKF,eAAL,GAAuB9mB,IAAvB,CACtB8D,WAAD,IAAiBA,WAAW,CAACJ,QAAZ,CAAqB7G,KAArB,CAA2BiD,IAA3B,KAAoC,OAD9B,CAAzB;;AAGA,UAAIqgB,YAAY,CAACE,mBAAb,KAAqC,KAArC,IAA8C2G,gBAAlD,EAAoE;AAClE,YAAIA,gBAAgB,CAAC5Y,SAAjB,KAA+B,UAAnC,EAA+C;AAC7C,cAAI4Y,gBAAgB,CAACD,YAArB,EAAmC;AACjCC,YAAAA,gBAAgB,CAACD,YAAjB,CAA8B,UAA9B;AACD,WAFD,MAEO;AACLC,YAAAA,gBAAgB,CAAC5Y,SAAjB,GAA6B,UAA7B;AACD;AACF,SAND,MAMO,IAAI4Y,gBAAgB,CAAC5Y,SAAjB,KAA+B,UAAnC,EAA+C;AACpD,cAAI4Y,gBAAgB,CAACD,YAArB,EAAmC;AACjCC,YAAAA,gBAAgB,CAACD,YAAjB,CAA8B,UAA9B;AACD,WAFD,MAEO;AACLC,YAAAA,gBAAgB,CAAC5Y,SAAjB,GAA6B,UAA7B;AACD;AACF;AACF,OAdD,MAcO,IACL+R,YAAY,CAACE,mBAAb,KAAqC,IAArC,IACA,CAAC2G,gBAFI,EAGL;AACA,aAAKpD,cAAL,CAAoB,OAApB;AACD;AACF;;AACD,WAAOkB,eAAe,CAAC7rB,KAAhB,CAAsB,IAAtB,EAA4BC,SAA5B,CAAP;AACD,GA7DD;AA8DD;;AAED,SAAS+tB,gBAAT,CAA0BlwB,MAA1B,EAAkC;AAChC,MAAI,OAAOA,MAAP,KAAkB,QAAlB,IAA8BA,MAAM,CAACmwB,YAAzC,EAAuD;AACrD;AACD;;AACDnwB,EAAAA,MAAM,CAACmwB,YAAP,GAAsBnwB,MAAM,CAACowB,kBAA7B;AACD;;AAED,IAAIC,UAAU,gBAAiBttB,MAAM,CAACkQ,MAAP,CAAc;AAC3CC,EAAAA,SAAS,EAAE,IADgC;AAE3Ckb,EAAAA,mBAAmB,EAAEA,mBAFsB;AAG3CI,EAAAA,oBAAoB,EAAEA,oBAHqB;AAI3CI,EAAAA,gBAAgB,EAAEA,gBAJyB;AAK3Cvb,EAAAA,gBAAgB,EAAEA,gBALyB;AAM3C8b,EAAAA,eAAe,EAAEA,eAN0B;AAO3CE,EAAAA,oBAAoB,EAAEA,oBAPqB;AAQ3CO,EAAAA,yBAAyB,EAAEA,yBARgB;AAS3CC,EAAAA,qBAAqB,EAAEA,qBAToB;AAU3CK,EAAAA,gBAAgB,EAAEA;AAVyB,CAAd,CAA/B;AAaA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASI,mBAAT,CAA6BtwB,MAA7B,EAAqC;AACnC;AACA;AACA,MACE,CAACA,MAAM,CAAC2S,eAAR,IACC3S,MAAM,CAAC2S,eAAP,IAA0B,gBAAgB3S,MAAM,CAAC2S,eAAP,CAAuB9Q,SAFpE,EAGE;AACA;AACD;;AAED,QAAM0uB,qBAAqB,GAAGvwB,MAAM,CAAC2S,eAArC;;AACA3S,EAAAA,MAAM,CAAC2S,eAAP,GAAyB,SAASA,eAAT,CAAyBX,IAAzB,EAA+B;AACtD;AACA,QACE,OAAOA,IAAP,KAAgB,QAAhB,IACAA,IAAI,CAAC2D,SADL,IAEA3D,IAAI,CAAC2D,SAAL,CAAe1H,OAAf,CAAuB,IAAvB,MAAiC,CAHnC,EAIE;AACA+D,MAAAA,IAAI,GAAGxT,IAAI,CAACsJ,KAAL,CAAWtJ,IAAI,CAACC,SAAL,CAAeuT,IAAf,CAAX,CAAP;AACAA,MAAAA,IAAI,CAAC2D,SAAL,GAAiB3D,IAAI,CAAC2D,SAAL,CAAelB,MAAf,CAAsB,CAAtB,CAAjB;AACD;;AAED,QAAIzC,IAAI,CAAC2D,SAAL,IAAkB3D,IAAI,CAAC2D,SAAL,CAAe9Y,MAArC,EAA6C;AAC3C;AACA,YAAM2zB,eAAe,GAAG,IAAID,qBAAJ,CAA0Bve,IAA1B,CAAxB;AACA,YAAMye,eAAe,GAAGnf,GAAG,CAACmE,cAAJ,CAAmBzD,IAAI,CAAC2D,SAAxB,CAAxB;AACA,YAAM+a,kBAAkB,GAAG3tB,MAAM,CAACsC,MAAP,CACzBmrB,eADyB,EAEzBC,eAFyB,CAA3B,CAJ2C;;AAU3CC,MAAAA,kBAAkB,CAACvK,MAAnB,GAA4B,SAASA,MAAT,GAAkB;AAC5C,eAAO;AACLxQ,UAAAA,SAAS,EAAE+a,kBAAkB,CAAC/a,SADzB;AAELqQ,UAAAA,MAAM,EAAE0K,kBAAkB,CAAC1K,MAFtB;AAGLT,UAAAA,aAAa,EAAEmL,kBAAkB,CAACnL,aAH7B;AAILjP,UAAAA,gBAAgB,EAAEoa,kBAAkB,CAACpa;AAJhC,SAAP;AAMD,OAPD;;AAQA,aAAOoa,kBAAP;AACD;;AACD,WAAO,IAAIH,qBAAJ,CAA0Bve,IAA1B,CAAP;AACD,GAhCD;;AAiCAhS,EAAAA,MAAM,CAAC2S,eAAP,CAAuB9Q,SAAvB,GAAmC0uB,qBAAqB,CAAC1uB,SAAzD,CA5CmC;AA+CnC;;AACAL,EAAAA,uBAAuB,CAACxB,MAAD,EAAS,cAAT,EAA0B7C,CAAD,IAAO;AACrD,QAAIA,CAAC,CAACwY,SAAN,EAAiB;AACf5S,MAAAA,MAAM,CAACE,cAAP,CAAsB9F,CAAtB,EAAyB,WAAzB,EAAsC;AACpCtB,QAAAA,KAAK,EAAE,IAAImE,MAAM,CAAC2S,eAAX,CAA2BxV,CAAC,CAACwY,SAA7B,CAD6B;AAEpC6P,QAAAA,QAAQ,EAAE;AAF0B,OAAtC;AAID;;AACD,WAAOroB,CAAP;AACD,GARsB,CAAvB;AASD;;AAED,SAASwzB,kBAAT,CAA4B3wB,MAA5B,EAAoCyG,cAApC,EAAoD;AAClD,MAAI,CAACzG,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD;;AAED,MAAI,EAAE,UAAU3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAArC,CAAJ,EAAqD;AACnDkB,IAAAA,MAAM,CAACE,cAAP,CAAsBjD,MAAM,CAAC2B,iBAAP,CAAyBE,SAA/C,EAA0D,MAA1D,EAAkE;AAChElG,MAAAA,GAAG,GAAG;AACJ,eAAO,OAAO,KAAKi1B,KAAZ,KAAsB,WAAtB,GAAoC,IAApC,GAA2C,KAAKA,KAAvD;AACD;;AAH+D,KAAlE;AAKD;;AAED,QAAMC,iBAAiB,GAAG,UAAUxf,WAAV,EAAuB;AAC/C,QAAI,CAACA,WAAD,IAAgB,CAACA,WAAW,CAACC,GAAjC,EAAsC;AACpC,aAAO,KAAP;AACD;;AACD,UAAM+D,QAAQ,GAAG/D,GAAG,CAAC0D,aAAJ,CAAkB3D,WAAW,CAACC,GAA9B,CAAjB;AACA+D,IAAAA,QAAQ,CAACE,KAAT;AACA,WAAOF,QAAQ,CAACnM,IAAT,CAAe6P,YAAD,IAAkB;AACrC,YAAM+X,KAAK,GAAGxf,GAAG,CAAC8L,UAAJ,CAAerE,YAAf,CAAd;AACA,aACE+X,KAAK,IACLA,KAAK,CAAC/nB,IAAN,KAAe,aADf,IAEA+nB,KAAK,CAACjb,QAAN,CAAe5H,OAAf,CAAuB,MAAvB,MAAmC,CAAC,CAHtC;AAKD,KAPM,CAAP;AAQD,GAdD;;AAgBA,QAAM8iB,uBAAuB,GAAG,UAAU1f,WAAV,EAAuB;AACrD;AACA,UAAMlR,KAAK,GAAGkR,WAAW,CAACC,GAAZ,CAAgBnR,KAAhB,CAAsB,iCAAtB,CAAd;;AACA,QAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,CAACtD,MAAN,GAAe,CAArC,EAAwC;AACtC,aAAO,CAAC,CAAR;AACD;;AACD,UAAMqH,OAAO,GAAG3C,QAAQ,CAACpB,KAAK,CAAC,CAAD,CAAN,EAAW,EAAX,CAAxB,CANqD;;AAQrD,WAAO+D,OAAO,KAAKA,OAAZ,GAAsB,CAAC,CAAvB,GAA2BA,OAAlC;AACD,GATD;;AAWA,QAAM8sB,wBAAwB,GAAG,UAAUC,eAAV,EAA2B;AAC1D;AACA;AACA;AACA;AACA,QAAIC,qBAAqB,GAAG,KAA5B;;AACA,QAAIzqB,cAAc,CAACxC,OAAf,KAA2B,SAA/B,EAA0C;AACxC,UAAIwC,cAAc,CAACvC,OAAf,GAAyB,EAA7B,EAAiC;AAC/B,YAAI+sB,eAAe,KAAK,CAAC,CAAzB,EAA4B;AAC1B;AACA;AACAC,UAAAA,qBAAqB,GAAG,KAAxB;AACD,SAJD,MAIO;AACL;AACA;AACAA,UAAAA,qBAAqB,GAAG,UAAxB;AACD;AACF,OAVD,MAUO,IAAIzqB,cAAc,CAACvC,OAAf,GAAyB,EAA7B,EAAiC;AACtC;AACA;AACA;AACA;AACAgtB,QAAAA,qBAAqB,GAAGzqB,cAAc,CAACvC,OAAf,KAA2B,EAA3B,GAAgC,KAAhC,GAAwC,KAAhE;AACD,OANM,MAMA;AACL;AACAgtB,QAAAA,qBAAqB,GAAG,UAAxB;AACD;AACF;;AACD,WAAOA,qBAAP;AACD,GA7BD;;AA+BA,QAAMC,iBAAiB,GAAG,UAAU9f,WAAV,EAAuB4f,eAAvB,EAAwC;AAChE;AACA;AACA,QAAI3T,cAAc,GAAG,KAArB,CAHgE;AAMhE;AACA;;AACA,QAAI7W,cAAc,CAACxC,OAAf,KAA2B,SAA3B,IAAwCwC,cAAc,CAACvC,OAAf,KAA2B,EAAvE,EAA2E;AACzEoZ,MAAAA,cAAc,GAAG,KAAjB;AACD;;AAED,UAAMnd,KAAK,GAAGmR,GAAG,CAACkE,WAAJ,CAAgBnE,WAAW,CAACC,GAA5B,EAAiC,qBAAjC,CAAd;;AACA,QAAInR,KAAK,CAACtD,MAAN,GAAe,CAAnB,EAAsB;AACpBygB,MAAAA,cAAc,GAAG/b,QAAQ,CAACpB,KAAK,CAAC,CAAD,CAAL,CAASsU,MAAT,CAAgB,EAAhB,CAAD,EAAsB,EAAtB,CAAzB;AACD,KAFD,MAEO,IAAIhO,cAAc,CAACxC,OAAf,KAA2B,SAA3B,IAAwCgtB,eAAe,KAAK,CAAC,CAAjE,EAAoE;AACzE;AACA;AACA;AACA3T,MAAAA,cAAc,GAAG,UAAjB;AACD;;AACD,WAAOA,cAAP;AACD,GAtBD;;AAwBA,QAAM/Q,wBAAwB,GAC5BvM,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBADrC;;AAEAxM,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBAAnC,GACE,SAASA,oBAAT,GAAgC;AAC9B,SAAKokB,KAAL,GAAa,IAAb,CAD8B;AAG9B;AACA;;AACA,QAAInqB,cAAc,CAACxC,OAAf,KAA2B,QAA3B,IAAuCwC,cAAc,CAACvC,OAAf,IAA0B,EAArE,EAAyE;AACvE,YAAM;AAAE6O,QAAAA;AAAF,UAAmB,KAAKD,gBAAL,EAAzB;;AACA,UAAIC,YAAY,KAAK,QAArB,EAA+B;AAC7BhQ,QAAAA,MAAM,CAACE,cAAP,CAAsB,IAAtB,EAA4B,MAA5B,EAAoC;AAClCtH,UAAAA,GAAG,GAAG;AACJ,mBAAO,OAAO,KAAKi1B,KAAZ,KAAsB,WAAtB,GAAoC,IAApC,GAA2C,KAAKA,KAAvD;AACD,WAHiC;;AAIlC1tB,UAAAA,UAAU,EAAE,IAJsB;AAKlCC,UAAAA,YAAY,EAAE;AALoB,SAApC;AAOD;AACF;;AAED,QAAI0tB,iBAAiB,CAAC1uB,SAAS,CAAC,CAAD,CAAV,CAArB,EAAqC;AACnC;AACA,YAAMpC,SAAS,GAAGgxB,uBAAuB,CAAC5uB,SAAS,CAAC,CAAD,CAAV,CAAzC,CAFmC;;AAKnC,YAAMivB,UAAU,GAAGJ,wBAAwB,CAACjxB,SAAD,CAA3C,CALmC;;AAQnC,YAAMsxB,SAAS,GAAGF,iBAAiB,CAAChvB,SAAS,CAAC,CAAD,CAAV,EAAepC,SAAf,CAAnC,CARmC;;AAWnC,UAAIud,cAAJ;;AACA,UAAI8T,UAAU,KAAK,CAAf,IAAoBC,SAAS,KAAK,CAAtC,EAAyC;AACvC/T,QAAAA,cAAc,GAAGrhB,MAAM,CAACq1B,iBAAxB;AACD,OAFD,MAEO,IAAIF,UAAU,KAAK,CAAf,IAAoBC,SAAS,KAAK,CAAtC,EAAyC;AAC9C/T,QAAAA,cAAc,GAAG/I,IAAI,CAACpN,GAAL,CAASiqB,UAAT,EAAqBC,SAArB,CAAjB;AACD,OAFM,MAEA;AACL/T,QAAAA,cAAc,GAAG/I,IAAI,CAACrN,GAAL,CAASkqB,UAAT,EAAqBC,SAArB,CAAjB;AACD,OAlBkC;AAqBnC;;;AACA,YAAMxT,IAAI,GAAG,EAAb;AACA9a,MAAAA,MAAM,CAACE,cAAP,CAAsB4a,IAAtB,EAA4B,gBAA5B,EAA8C;AAC5CliB,QAAAA,GAAG,GAAG;AACJ,iBAAO2hB,cAAP;AACD;;AAH2C,OAA9C;AAKA,WAAKsT,KAAL,GAAa/S,IAAb;AACD;;AAED,WAAOtR,wBAAwB,CAACrK,KAAzB,CAA+B,IAA/B,EAAqCC,SAArC,CAAP;AACD,GAnDH;AAoDD;;AAED,SAASovB,sBAAT,CAAgCvxB,MAAhC,EAAwC;AACtC,MACE,EACEA,MAAM,CAAC2B,iBAAP,IACA,uBAAuB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAFlD,CADF,EAKE;AACA;AACD,GARqC;AAWtC;AACA;;;AAEA,WAAS2vB,UAAT,CAAoBC,EAApB,EAAwBrkB,EAAxB,EAA4B;AAC1B,UAAMskB,mBAAmB,GAAGD,EAAE,CAAC1K,IAA/B;;AACA0K,IAAAA,EAAE,CAAC1K,IAAH,GAAU,SAASA,IAAT,GAAgB;AACxB,YAAM9nB,IAAI,GAAGkD,SAAS,CAAC,CAAD,CAAtB;AACA,YAAMtF,MAAM,GAAGoC,IAAI,CAACpC,MAAL,IAAeoC,IAAI,CAAC6D,IAApB,IAA4B7D,IAAI,CAAC0yB,UAAhD;;AACA,UACEF,EAAE,CAACG,UAAH,KAAkB,MAAlB,IACAxkB,EAAE,CAACyQ,IADH,IAEAhhB,MAAM,GAAGuQ,EAAE,CAACyQ,IAAH,CAAQP,cAHnB,EAIE;AACA,cAAM,IAAIoE,SAAJ,CACJ,8CACEtU,EAAE,CAACyQ,IAAH,CAAQP,cADV,GAEE,SAHE,CAAN;AAKD;;AACD,aAAOoU,mBAAmB,CAACxvB,KAApB,CAA0BuvB,EAA1B,EAA8BtvB,SAA9B,CAAP;AACD,KAfD;AAgBD;;AACD,QAAM0vB,qBAAqB,GACzB7xB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCiwB,iBADrC;;AAEA9xB,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCiwB,iBAAnC,GACE,SAASA,iBAAT,GAA6B;AAC3B,UAAMC,WAAW,GAAGF,qBAAqB,CAAC3vB,KAAtB,CAA4B,IAA5B,EAAkCC,SAAlC,CAApB;AACAqvB,IAAAA,UAAU,CAACO,WAAD,EAAc,IAAd,CAAV;AACA,WAAOA,WAAP;AACD,GALH;;AAMAvwB,EAAAA,uBAAuB,CAACxB,MAAD,EAAS,aAAT,EAAyB7C,CAAD,IAAO;AACpDq0B,IAAAA,UAAU,CAACr0B,CAAC,CAAC60B,OAAH,EAAY70B,CAAC,CAAC0V,MAAd,CAAV;AACA,WAAO1V,CAAP;AACD,GAHsB,CAAvB;AAID;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS80B,mBAAT,CAA6BjyB,MAA7B,EAAqC;AACnC,MACE,CAACA,MAAM,CAAC2B,iBAAR,IACA,qBAAqB3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAFhD,EAGE;AACA;AACD;;AACD,QAAMD,KAAK,GAAG5B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAvC;AACAkB,EAAAA,MAAM,CAACE,cAAP,CAAsBrB,KAAtB,EAA6B,iBAA7B,EAAgD;AAC9CjG,IAAAA,GAAG,GAAG;AACJ,aACE;AACEktB,QAAAA,SAAS,EAAE,WADb;AAEEF,QAAAA,QAAQ,EAAE;AAFZ,QAGE,KAAK9F,kBAHP,KAG8B,KAAKA,kBAJrC;AAMD,KAR6C;;AAS9C3f,IAAAA,UAAU,EAAE,IATkC;AAU9CC,IAAAA,YAAY,EAAE;AAVgC,GAAhD;AAYAJ,EAAAA,MAAM,CAACE,cAAP,CAAsBrB,KAAtB,EAA6B,yBAA7B,EAAwD;AACtDjG,IAAAA,GAAG,GAAG;AACJ,aAAO,KAAKu2B,wBAAL,IAAiC,IAAxC;AACD,KAHqD;;AAItDt2B,IAAAA,GAAG,CAACqG,EAAD,EAAK;AACN,UAAI,KAAKiwB,wBAAT,EAAmC;AACjC,aAAKxvB,mBAAL,CACE,uBADF,EAEE,KAAKwvB,wBAFP;AAIA,eAAO,KAAKA,wBAAZ;AACD;;AACD,UAAIjwB,EAAJ,EAAQ;AACN,aAAKF,gBAAL,CACE,uBADF,EAEG,KAAKmwB,wBAAL,GAAgCjwB,EAFnC;AAID;AACF,KAlBqD;;AAmBtDiB,IAAAA,UAAU,EAAE,IAnB0C;AAoBtDC,IAAAA,YAAY,EAAE;AApBwC,GAAxD;AAuBA,GAAC,qBAAD,EAAwB,sBAAxB,EAAgDwC,OAAhD,CAAyDtH,MAAD,IAAY;AAClE,UAAM8zB,UAAU,GAAGvwB,KAAK,CAACvD,MAAD,CAAxB;;AACAuD,IAAAA,KAAK,CAACvD,MAAD,CAAL,GAAgB,YAAY;AAC1B,UAAI,CAAC,KAAK+zB,0BAAV,EAAsC;AACpC,aAAKA,0BAAL,GAAmCj1B,CAAD,IAAO;AACvC,gBAAMiQ,EAAE,GAAGjQ,CAAC,CAAC0V,MAAb;;AACA,cAAIzF,EAAE,CAACilB,oBAAH,KAA4BjlB,EAAE,CAAC0V,eAAnC,EAAoD;AAClD1V,YAAAA,EAAE,CAACilB,oBAAH,GAA0BjlB,EAAE,CAAC0V,eAA7B;AACA,kBAAMwP,QAAQ,GAAG,IAAIxlB,KAAJ,CAAU,uBAAV,EAAmC3P,CAAnC,CAAjB;AACAiQ,YAAAA,EAAE,CAACH,aAAH,CAAiBqlB,QAAjB;AACD;;AACD,iBAAOn1B,CAAP;AACD,SARD;;AASA,aAAK4E,gBAAL,CACE,0BADF,EAEE,KAAKqwB,0BAFP;AAID;;AACD,aAAOD,UAAU,CAACjwB,KAAX,CAAiB,IAAjB,EAAuBC,SAAvB,CAAP;AACD,KAjBD;AAkBD,GApBD;AAqBD;;AAED,SAASowB,sBAAT,CAAgCvyB,MAAhC,EAAwCyG,cAAxC,EAAwD;AACtD;AACA,MAAI,CAACzG,MAAM,CAAC2B,iBAAZ,EAA+B;AAC7B;AACD;;AACD,MAAI8E,cAAc,CAACxC,OAAf,KAA2B,QAA3B,IAAuCwC,cAAc,CAACvC,OAAf,IAA0B,EAArE,EAAyE;AACvE;AACD;;AACD,MAAIuC,cAAc,CAACxC,OAAf,KAA2B,QAA3B,IAAuCwC,cAAc,CAACvC,OAAf,IAA0B,GAArE,EAA0E;AACxE;AACD;;AACD,QAAMsuB,SAAS,GAAGxyB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBAArD;;AACAxM,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmC2K,oBAAnC,GACE,SAASA,oBAAT,CAA8B0F,IAA9B,EAAoC;AAClC,QACEA,IAAI,IACJA,IAAI,CAACZ,GADL,IAEAY,IAAI,CAACZ,GAAL,CAASrD,OAAT,CAAiB,wBAAjB,MAA+C,CAAC,CAHlD,EAIE;AACA,YAAMqD,GAAG,GAAGY,IAAI,CAACZ,GAAL,CACTwD,KADS,CACH,IADG,EAETjM,MAFS,CAEDkM,IAAD,IAAU;AAChB,eAAOA,IAAI,CAACF,IAAL,OAAgB,sBAAvB;AACD,OAJS,EAKT2B,IALS,CAKJ,IALI,CAAZ,CADA;;AAQA,UACExW,MAAM,CAAC4R,qBAAP,IACAM,IAAI,YAAYlS,MAAM,CAAC4R,qBAFzB,EAGE;AACAzP,QAAAA,SAAS,CAAC,CAAD,CAAT,GAAe,IAAInC,MAAM,CAAC4R,qBAAX,CAAiC;AAC9C7V,UAAAA,IAAI,EAAEmW,IAAI,CAACnW,IADmC;AAE9CuV,UAAAA;AAF8C,SAAjC,CAAf;AAID,OARD,MAQO;AACLY,QAAAA,IAAI,CAACZ,GAAL,GAAWA,GAAX;AACD;AACF;;AACD,WAAOkhB,SAAS,CAACtwB,KAAV,CAAgB,IAAhB,EAAsBC,SAAtB,CAAP;AACD,GA3BH;AA4BD;;AAED,SAASswB,8BAAT,CAAwCzyB,MAAxC,EAAgDyG,cAAhD,EAAgE;AAC9D;AACA;AACA;AACA;AACA,MAAI,EAAEzG,MAAM,CAAC2B,iBAAP,IAA4B3B,MAAM,CAAC2B,iBAAP,CAAyBE,SAAvD,CAAJ,EAAuE;AACrE;AACD;;AACD,QAAM6wB,qBAAqB,GACzB1yB,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkoB,eADrC;;AAEA,MAAI,CAAC2I,qBAAD,IAA0BA,qBAAqB,CAAC71B,MAAtB,KAAiC,CAA/D,EAAkE;AAChE;AACD;;AACDmD,EAAAA,MAAM,CAAC2B,iBAAP,CAAyBE,SAAzB,CAAmCkoB,eAAnC,GACE,SAASA,eAAT,GAA2B;AACzB,QAAI,CAAC5nB,SAAS,CAAC,CAAD,CAAd,EAAmB;AACjB,UAAIA,SAAS,CAAC,CAAD,CAAb,EAAkB;AAChBA,QAAAA,SAAS,CAAC,CAAD,CAAT,CAAaD,KAAb,CAAmB,IAAnB;AACD;;AACD,aAAOtD,OAAO,CAACQ,OAAR,EAAP;AACD,KANwB;AAQzB;AACA;AACA;AACA;;;AACA,QACE,CAAEqH,cAAc,CAACxC,OAAf,KAA2B,QAA3B,IAAuCwC,cAAc,CAACvC,OAAf,GAAyB,EAAjE,IACEuC,cAAc,CAACxC,OAAf,KAA2B,SAA3B,IACCwC,cAAc,CAACvC,OAAf,GAAyB,EAF5B,IAGCuC,cAAc,CAACxC,OAAf,KAA2B,QAH7B,KAIA9B,SAAS,CAAC,CAAD,CAJT,IAKAA,SAAS,CAAC,CAAD,CAAT,CAAawT,SAAb,KAA2B,EAN7B,EAOE;AACA,aAAO/W,OAAO,CAACQ,OAAR,EAAP;AACD;;AACD,WAAOszB,qBAAqB,CAACxwB,KAAtB,CAA4B,IAA5B,EAAkCC,SAAlC,CAAP;AACD,GAxBH;AAyBD;;AAED,IAAIwwB,UAAU,gBAAiB5vB,MAAM,CAACkQ,MAAP,CAAc;AAC3CC,EAAAA,SAAS,EAAE,IADgC;AAE3Cod,EAAAA,mBAAmB,EAAEA,mBAFsB;AAG3CK,EAAAA,kBAAkB,EAAEA,kBAHuB;AAI3CY,EAAAA,sBAAsB,EAAEA,sBAJmB;AAK3CU,EAAAA,mBAAmB,EAAEA,mBALsB;AAM3CM,EAAAA,sBAAsB,EAAEA,sBANmB;AAO3CE,EAAAA,8BAA8B,EAAEA;AAPW,CAAd,CAA/B;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;;AACA,SAASG,cAAT,CACE;AAAE5yB,EAAAA;AAAF,IAAa,EADf,EAEE+uB,OAAO,GAAG;AACR8D,EAAAA,UAAU,EAAE,IADJ;AAERC,EAAAA,WAAW,EAAE,IAFL;AAGRC,EAAAA,QAAQ,EAAE,IAHF;AAIRC,EAAAA,UAAU,EAAE;AAJJ,CAFZ,EAQE;AACA;AACA,QAAMzsB,OAAO,GAAG/C,KAAhB;AACA,QAAMiD,cAAc,GAAG1C,aAAa,CAAC/D,MAAD,CAApC;AAEA,QAAMizB,OAAO,GAAG;AACdxsB,IAAAA,cADc;AAEdksB,IAAAA,UAFc;AAGdxxB,IAAAA,cAAc,EAAEA,cAHF;AAIdiC,IAAAA,UAAU,EAAEA,UAJE;AAKdG,IAAAA,eAAe,EAAEA;AALH,GAAhB,CALA;;AAcA,UAAQkD,cAAc,CAACxC,OAAvB;AACE,SAAK,QAAL;AACE,UAAI,CAAC+O,UAAD,IAAe,CAACN,oBAAhB,IAAwC,CAACqc,OAAO,CAAC8D,UAArD,EAAiE;AAC/DtsB,QAAAA,OAAO,CAAC,sDAAD,CAAP;AACA,eAAO0sB,OAAP;AACD;;AACD,UAAIxsB,cAAc,CAACvC,OAAf,KAA2B,IAA/B,EAAqC;AACnCqC,QAAAA,OAAO,CAAC,sDAAD,CAAP;AACA,eAAO0sB,OAAP;AACD;;AACD1sB,MAAAA,OAAO,CAAC,6BAAD,CAAP,CATF;;AAWE0sB,MAAAA,OAAO,CAACC,WAAR,GAAsBlgB,UAAtB,CAXF;;AAcEyf,MAAAA,8BAA8B,CAACzyB,MAAD,EAASyG,cAAT,CAA9B;AAEAD,MAAAA,kBAAkB,CAACxG,MAAD,EAASyG,cAAT,CAAlB;AACAwF,MAAAA,eAAe,CAACjM,MAAD,CAAf;AACA0S,MAAAA,oBAAoB,CAAC1S,MAAD,EAASyG,cAAT,CAApB;AACA2F,MAAAA,aAAa,CAACpM,MAAD,CAAb;AACA2Q,MAAAA,uBAAuB,CAAC3Q,MAAD,EAASyG,cAAT,CAAvB;AACAyG,MAAAA,sBAAsB,CAAClN,MAAD,CAAtB;AACA2O,MAAAA,YAAY,CAAC3O,MAAD,CAAZ;AACA6P,MAAAA,0BAA0B,CAAC7P,MAAD,CAA1B;AACA4S,MAAAA,oBAAoB,CAAC5S,MAAD,EAASyG,cAAT,CAApB;AAEA6pB,MAAAA,mBAAmB,CAACtwB,MAAD,CAAnB;AACAiyB,MAAAA,mBAAmB,CAACjyB,MAAD,CAAnB;AACA2wB,MAAAA,kBAAkB,CAAC3wB,MAAD,EAASyG,cAAT,CAAlB;AACA8qB,MAAAA,sBAAsB,CAACvxB,MAAD,CAAtB;AACAuyB,MAAAA,sBAAsB,CAACvyB,MAAD,EAASyG,cAAT,CAAtB;AACA;;AACF,SAAK,SAAL;AACE,UAAI,CAAC0nB,WAAD,IAAgB,CAAC/a,kBAAjB,IAAuC,CAAC2b,OAAO,CAAC+D,WAApD,EAAiE;AAC/DvsB,QAAAA,OAAO,CAAC,uDAAD,CAAP;AACA,eAAO0sB,OAAP;AACD;;AACD1sB,MAAAA,OAAO,CAAC,8BAAD,CAAP,CALF;;AAOE0sB,MAAAA,OAAO,CAACC,WAAR,GAAsB/E,WAAtB,CAPF;;AAUEsE,MAAAA,8BAA8B,CAACzyB,MAAD,EAASyG,cAAT,CAA9B;AAEAglB,MAAAA,kBAAkB,CAACzrB,MAAD,EAASyG,cAAT,CAAlB;AACA2M,MAAAA,kBAAkB,CAACpT,MAAD,EAASyG,cAAT,CAAlB;AACA0M,MAAAA,WAAW,CAACnT,MAAD,CAAX;AACAusB,MAAAA,gBAAgB,CAACvsB,MAAD,CAAhB;AACAqsB,MAAAA,kBAAkB,CAACrsB,MAAD,CAAlB;AACAssB,MAAAA,oBAAoB,CAACtsB,MAAD,CAApB;AACAwsB,MAAAA,kBAAkB,CAACxsB,MAAD,CAAlB;AACA2sB,MAAAA,kBAAkB,CAAC3sB,MAAD,CAAlB;AACA4tB,MAAAA,iBAAiB,CAAC5tB,MAAD,CAAjB;AACA8tB,MAAAA,eAAe,CAAC9tB,MAAD,CAAf;AACAiuB,MAAAA,gBAAgB,CAACjuB,MAAD,CAAhB;AAEAswB,MAAAA,mBAAmB,CAACtwB,MAAD,CAAnB;AACAiyB,MAAAA,mBAAmB,CAACjyB,MAAD,CAAnB;AACA2wB,MAAAA,kBAAkB,CAAC3wB,MAAD,EAASyG,cAAT,CAAlB;AACA8qB,MAAAA,sBAAsB,CAACvxB,MAAD,CAAtB;AACA;;AACF,SAAK,MAAL;AACE,UAAI,CAACwrB,QAAD,IAAa,CAACT,oBAAd,IAAsC,CAACgE,OAAO,CAACgE,QAAnD,EAA6D;AAC3DxsB,QAAAA,OAAO,CAAC,uDAAD,CAAP;AACA,eAAO0sB,OAAP;AACD;;AACD1sB,MAAAA,OAAO,CAAC,2BAAD,CAAP,CALF;;AAOE0sB,MAAAA,OAAO,CAACC,WAAR,GAAsB1H,QAAtB;AAEAZ,MAAAA,kBAAkB,CAAC5qB,MAAD,CAAlB;AACA8qB,MAAAA,qBAAqB,CAAC9qB,MAAD,CAArB;AACA+qB,MAAAA,oBAAoB,CAAC/qB,MAAD,EAASyG,cAAT,CAApB;AACA4kB,MAAAA,gBAAgB,CAACrrB,MAAD,CAAhB,CAZF;;AAgBE2wB,MAAAA,kBAAkB,CAAC3wB,MAAD,EAASyG,cAAT,CAAlB;AACA8qB,MAAAA,sBAAsB,CAACvxB,MAAD,CAAtB;AACA;;AACF,SAAK,QAAL;AACE,UAAI,CAACqwB,UAAD,IAAe,CAACtB,OAAO,CAACiE,UAA5B,EAAwC;AACtCzsB,QAAAA,OAAO,CAAC,sDAAD,CAAP;AACA,eAAO0sB,OAAP;AACD;;AACD1sB,MAAAA,OAAO,CAAC,6BAAD,CAAP,CALF;;AAOE0sB,MAAAA,OAAO,CAACC,WAAR,GAAsB7C,UAAtB,CAPF;;AAUEoC,MAAAA,8BAA8B,CAACzyB,MAAD,EAASyG,cAAT,CAA9B;AAEA4oB,MAAAA,oBAAoB,CAACrvB,MAAD,CAApB;AACA6vB,MAAAA,qBAAqB,CAAC7vB,MAAD,CAArB;AACA4uB,MAAAA,gBAAgB,CAAC5uB,MAAD,CAAhB;AACAouB,MAAAA,mBAAmB,CAACpuB,MAAD,CAAnB;AACAwuB,MAAAA,oBAAoB,CAACxuB,MAAD,CAApB;AACA4vB,MAAAA,yBAAyB,CAAC5vB,MAAD,CAAzB;AACAqT,MAAAA,gBAAgB,CAACrT,MAAD,CAAhB;AACAkwB,MAAAA,gBAAgB,CAAClwB,MAAD,CAAhB;AAEAswB,MAAAA,mBAAmB,CAACtwB,MAAD,CAAnB;AACA2wB,MAAAA,kBAAkB,CAAC3wB,MAAD,EAASyG,cAAT,CAAlB;AACA8qB,MAAAA,sBAAsB,CAACvxB,MAAD,CAAtB;AACAuyB,MAAAA,sBAAsB,CAACvyB,MAAD,EAASyG,cAAT,CAAtB;AACA;;AACF;AACEF,MAAAA,OAAO,CAAC,sBAAD,CAAP;AACA;AA7GJ;;AAgHA,SAAO0sB,OAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEAL,cAAc,CAAC;AAAE5yB,EAAAA,MAAM,EAAE,OAAOA,MAAP,KAAkB,WAAlB,GAAgCoF,SAAhC,GAA4CpF;AAAtD,CAAD,CAAd;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMmzB,qBAAN,CAA4B;AAC1B;AACAryB,EAAAA,WAAW,CAACsyB,MAAD,EAAS;AAClB,QAAI,CAACrwB,MAAM,CAACswB,MAAP,CAAc/yB,eAAd,EAA+B4I,IAA/B,CAAqCoqB,CAAD,IAAOA,CAAC,KAAKF,MAAjD,CAAL,EAA+D;AAC7D,YAAM,IAAI1R,SAAJ,CAAc,iBAAd,CAAN;AACD;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAEI,SAAK0R,MAAL,GAAcA,MAAd;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEI,SAAK9pB,QAAL,GAAgBlE,SAAhB;AACD;;AAvByB;AAyB5B;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,MAAMmuB,qBAAN,CAA4B;AAC1B;AACAzyB,EAAAA,WAAW,CAACsyB,MAAD,EAAS;AAClB,QAAI,CAACrwB,MAAM,CAACswB,MAAP,CAAc1yB,eAAd,EAA+BuI,IAA/B,CAAqCoqB,CAAD,IAAOA,CAAC,KAAKF,MAAjD,CAAL,EAA+D;AAC7D,YAAM,IAAI1R,SAAJ,CAAc,iBAAd,CAAN;AACD;AACD;AACJ;AACA;AACA;AACA;AACA;;;AAEI,SAAK0R,MAAL,GAAcA,MAAd;AACA;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEI,SAAK9pB,QAAL,GAAgBlE,SAAhB;AACA;AACJ;AACA;AACA;AACA;;AAEI,SAAKouB,UAAL,GAAkBpuB,SAAlB;AACA;AACJ;AACA;AACA;AACA;;AAEI,SAAKuG,SAAL,GAAiBvG,SAAjB;AACD;;AArCyB;AAuC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEA,MAAMquB,iBAAN,CAAwB;AACtB;AACA3yB,EAAAA,WAAW,CAAC4yB,gBAAgB,GAAG,KAApB,EAA2BC,gBAAgB,GAAG,KAA9C,EAAqD;AAC9D;AACJ;AACA;AACA;AACA;AACI,SAAK5rB,KAAL,GAAa2rB,gBAAb;AACA;AACJ;AACA;AACA;AACA;;AAEI,SAAKtrB,KAAL,GAAaurB,gBAAb;AACD;;AAhBqB;;;AAmBxB,SAASC,8BAAT,CAAwChsB,WAAxC,EAAqD;AACnD,SACE,OAAOA,WAAW,CAACQ,KAAnB,KAA6B,QAA7B,IACAR,WAAW,CAACQ,KAAZ,CAAkBgrB,MAAlB,KAA6BzyB,eAAe,CAACH,UAF/C;AAID;AACD;AACA;AACA;AACA;AACA;;;AAEA,MAAMqzB,kBAAN,CAAyB;AACvB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0B,SAAjBC,iBAAiB,CAAClsB,WAAD,EAAc;AACpC,QACE,OAAOA,WAAP,KAAuB,QAAvB,IACC,CAACA,WAAW,CAACG,KAAb,IAAsB,CAACH,WAAW,CAACQ,KAFtC,EAGE;AACA,aAAOxJ,OAAO,CAACC,MAAR,CAAe,IAAI6iB,SAAJ,CAAc,oBAAd,CAAf,CAAP;AACD;;AAED,QACE,CAACkS,8BAA8B,CAAChsB,WAAD,CAA/B,IACA,OAAOA,WAAW,CAACG,KAAnB,KAA6B,QAD7B,IAEAH,WAAW,CAACG,KAAZ,CAAkBqrB,MAAlB,KAA6B9yB,eAAe,CAACE,UAH/C,EAIE;AACA,aAAO5B,OAAO,CAACC,MAAR,CACL,IAAI6iB,SAAJ,CAAc,oCAAd,CADK,CAAP;AAGD;;AAED,QACEkS,8BAA8B,CAAChsB,WAAD,CAA9B,IACA,CAACxH,QAAQ,EADT,IAEA,CAACL,SAAS,EAHZ,EAIE;AACA,aAAOnB,OAAO,CAACC,MAAR,CACL,IAAI6iB,SAAJ,CAAc,kDAAd,CADK,CAAP;AAGD;;AAED,QACEkS,8BAA8B,CAAChsB,WAAD,CAA9B,IACA,OAAOA,WAAW,CAACG,KAAnB,KAA6B,QAD7B,IAEAH,WAAW,CAACG,KAAZ,CAAkBqrB,MAAlB,KAA6B9yB,eAAe,CAACE,UAH/C,EAIE;AACA,aAAO5B,OAAO,CAACC,MAAR,CACL,IAAI6iB,SAAJ,CACE,mEACE,gBAFJ,CADK,CAAP;AAMD,KAvCmC;;;AAyCpC,QAAI,CAAC9Z,WAAW,CAACG,KAAb,IAAsB,CAACH,WAAW,CAACQ,KAAvC,EAA8C;AAC5C,aAAOxJ,OAAO,CAACC,MAAR,CACL,IAAI6iB,SAAJ,CAAc,oDAAd,CADK,CAAP;AAGD;;AAED,UAAMqS,gBAAgB,GAAGhxB,MAAM,CAACtF,MAAP,CAAc,EAAd,CAAzB;;AAEA,QACE,OAAOmK,WAAW,CAACG,KAAnB,KAA6B,QAA7B,IACAH,WAAW,CAACG,KAAZ,CAAkBqrB,MAAlB,KAA6B9yB,eAAe,CAACC,GAF/C,EAGE;AACAwzB,MAAAA,gBAAgB,CAAChsB,KAAjB,GAAyBhF,MAAM,CAACtF,MAAP,CAAc,EAAd,CAAzB;;AAEA,UAAI4C,MAAM,EAAV,EAAc;AACZ0zB,QAAAA,gBAAgB,CAAChsB,KAAjB,CAAuBuB,QAAvB,GAAkC1B,WAAW,CAACG,KAAZ,CAAkBuB,QAApD;AACD,OAFD,MAEO;AACLyqB,QAAAA,gBAAgB,CAAChsB,KAAjB,CAAuBuB,QAAvB,GAAkC;AAChCrC,UAAAA,KAAK,EAAEW,WAAW,CAACG,KAAZ,CAAkBuB;AADO,SAAlC;AAGD;AACF,KAbD,MAaO;AACL,UAAI1B,WAAW,CAACG,KAAZ,CAAkBqrB,MAAlB,KAA6B9yB,eAAe,CAACE,UAAjD,EAA6D;AAC3DuzB,QAAAA,gBAAgB,CAAChsB,KAAjB,GAAyB,IAAzB;AACD,OAFD,MAEO;AACLgsB,QAAAA,gBAAgB,CAAChsB,KAAjB,GAAyBH,WAAW,CAACG,KAArC;AACD;AACF;;AAED,QAAI,OAAOH,WAAW,CAACQ,KAAnB,KAA6B,QAAjC,EAA2C;AACzC2rB,MAAAA,gBAAgB,CAAC3rB,KAAjB,GAAyBrF,MAAM,CAACtF,MAAP,CAAc,EAAd,CAAzB;;AAEA,UAAI,OAAOmK,WAAW,CAACQ,KAAZ,CAAkBuD,SAAzB,KAAuC,QAA3C,EAAqD;AACnDooB,QAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBuD,SAAvB,GAAmC/D,WAAW,CAACQ,KAAZ,CAAkBuD,SAArD;AACD;;AAED,UACE/D,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,IACA5rB,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BzyB,KAD7B,IAEA6G,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BxyB,MAH/B,EAIE;AACA,YAAI4G,WAAW,CAACQ,KAAZ,CAAkBgrB,MAAlB,KAA6BzyB,eAAe,CAACH,UAAjD,EAA6D;AAC3DuzB,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBrH,KAAvB,GAA+B6G,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BzyB,KAA5D;AACAgzB,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBpH,MAAvB,GAAgC4G,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BxyB,MAA7D;AACD,SAHD,MAGO;AACL+yB,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBrH,KAAvB,GAA+BgC,MAAM,CAACtF,MAAP,CAAc,EAAd,CAA/B;AACAs2B,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBrH,KAAvB,CAA6BkG,KAA7B,GACEW,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BzyB,KAD/B;AAEAgzB,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBpH,MAAvB,GAAgC+B,MAAM,CAACtF,MAAP,CAAc,EAAd,CAAhC;AACAs2B,UAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBpH,MAAvB,CAA8BiG,KAA9B,GACEW,WAAW,CAACQ,KAAZ,CAAkBorB,UAAlB,CAA6BxyB,MAD/B;AAED;AACF;;AAED,UAAI,OAAO4G,WAAW,CAACQ,KAAZ,CAAkBkB,QAAzB,KAAsC,QAA1C,EAAoD;AAClDyqB,QAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuBkB,QAAvB,GAAkC;AAChCrC,UAAAA,KAAK,EAAEW,WAAW,CAACQ,KAAZ,CAAkBkB;AADO,SAAlC;AAGD;;AAED,UACEvJ,SAAS,MACT6H,WAAW,CAACQ,KAAZ,CAAkBgrB,MAAlB,KAA6BzyB,eAAe,CAACH,UAF/C,EAGE;AACAuzB,QAAAA,gBAAgB,CAAC3rB,KAAjB,CAAuB4jB,WAAvB,GAAqC,QAArC;AACD;AACF,KArCD,MAqCO;AACL+H,MAAAA,gBAAgB,CAAC3rB,KAAjB,GAAyBR,WAAW,CAACQ,KAArC;AACD;;AAED,QAAIwrB,8BAA8B,CAAChsB,WAAD,CAAlC,EAAiD;AAC/C,aAAO3H,SAAS,CAACuE,YAAV,CAAuB8G,eAAvB,CAAuCyoB,gBAAvC,CAAP;AACD,KAFD,MAEO;AACL,aAAO9zB,SAAS,CAACuE,YAAV,CAAuBiG,YAAvB,CAAoCspB,gBAApC,CAAP;AACD;AACF;;AAlIsB;AAmJzB,IAAIC,MAAJ;AACA,IAAIC,WAAJ;;AACA,SAASC,SAAT,GAAqB;AACnB;AACAF,EAAAA,MAAM,GAAGvwB,OAAO,CAACC,GAAjB;AACAuwB,EAAAA,WAAW,GAAGxwB,OAAO,CAAC4H,KAAtB;AACA;AACD;;AACD,SAAS3H,GAAT,CAAayG,OAAb,EAAsB,GAAGgqB,cAAzB,EAAyC;AACvC,MAAIH,MAAJ,EAAY;AACVA,IAAAA,MAAM,CAAC7pB,OAAD,EAAU,GAAGgqB,cAAb,CAAN;AACD;AACF;;AACD,SAAS9oB,KAAT,CAAelB,OAAf,EAAwB,GAAGgqB,cAA3B,EAA2C;AACzC,MAAIF,WAAJ,EAAiB;AACfA,IAAAA,WAAW,CAAC9pB,OAAD,EAAU,GAAGgqB,cAAb,CAAX;AACD;AACF;;AAED,MAAMC,OAAN,CAAc;AACZtzB,EAAAA,WAAW,CAAC/E,IAAD,EAAO;AAChB,SAAKs4B,QAAL,GAAgB,EAAhB;AACA,SAAKt4B,IAAL,GAAYA,IAAI,GAAG,EAAnB;AACD;;AAEDu4B,EAAAA,EAAE,CAACznB,KAAD,EAAQqH,EAAR,EAAY;AACZ,QAAI,CAAC,KAAKmgB,QAAL,CAAcxnB,KAAd,CAAL,EAA2B;AACzB,WAAKwnB,QAAL,CAAcxnB,KAAd,IAAuB,EAAvB;AACD;;AAED,SAAKwnB,QAAL,CAAcxnB,KAAd,EAAqBzG,IAArB,CAA0B8N,EAA1B;AACA,WAAO,IAAP;AACD;;AAEDqgB,EAAAA,GAAG,CAAC1nB,KAAD,EAAQqH,EAAR,EAAY;AACb,QAAI,KAAKmgB,QAAL,CAAcxnB,KAAd,CAAJ,EAA0B;AACxB,UAAIsI,KAAK,GAAG,KAAKkf,QAAL,CAAcxnB,KAAd,EAAqBoB,OAArB,CAA6BiG,EAA7B,CAAZ;;AAEA,UAAIiB,KAAK,GAAG,CAAC,CAAb,EAAgB;AACd,aAAKkf,QAAL,CAAcxnB,KAAd,EAAqBqB,MAArB,CAA4BiH,KAA5B,EAAmC,CAAnC;AACD;;AAED,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AAEDqf,EAAAA,MAAM,GAAG;AACP,SAAKH,QAAL,GAAgB,EAAhB;AACD;;AAEDI,EAAAA,QAAQ,CAAC5nB,KAAD,EAAQ5N,IAAR,EAAc;AACpB,QAAI,KAAKo1B,QAAL,CAAcxnB,KAAd,CAAJ,EAA0B;AACxB,WAAKwnB,QAAL,CAAcxnB,KAAd,EAAqBtS,GAArB,CAA0Bm6B,IAAD,IAAU;AACjCA,QAAAA,IAAI,CAACxyB,KAAL,CAAW,IAAX,EAAiB,CAACjD,IAAD,CAAjB;AACD,OAFD;AAGA,aAAO,IAAP;AACD;;AAED,WAAO,KAAP;AACD;;AA1CW;;AA6Cd,MAAM01B,WAAN,SAA0BP,OAA1B,CAAkC;AAChCtzB,EAAAA,WAAW,CAACiuB,OAAD,EAAU;AACnB,UAAM,iBAAN;AACA,SAAK6F,GAAL,GAAW,mBAAX;AACA,QAAIC,QAAQ,GAAG;AACbC,MAAAA,OAAO,EAAE,EADI;AAEb;AACAC,MAAAA,KAAK,EAAE,KAHM;AAIb;AACAC,MAAAA,SAAS,EAAE,EALE;AAMbC,MAAAA,SAAS,EAAE,KANE;AAObC,MAAAA,SAAS,EAAE,IAPE;AAQbC,MAAAA,WAAW,EAAE,IARA;AASbC,MAAAA,WAAW,EAAE,IATA;AAUbC,MAAAA,QAAQ,EAAE,KAVG;AAWb7B,MAAAA,UAAU,EAAE;AACV8B,QAAAA,CAAC,EAAE,CADO;AAEVC,QAAAA,CAAC,EAAE;AAFO;AAXC,KAAf;AAgBA,SAAKxG,OAAL,GAAehsB,MAAM,CAACsC,MAAP,CAAc,EAAd,EAAkBwvB,QAAlB,EAA4B9F,OAA5B,CAAf;;AAEA,QAAI,KAAKA,OAAL,CAAagG,KAAjB,EAAwB;AACtBb,MAAAA,SAAS;AACV;;AAED,SAAK/2B,CAAL,GAAS;AACP0mB,MAAAA,cAAc,EAAE,KAAK2R,eAAL,CAAqB9qB,IAArB,CAA0B,IAA1B,CADT;AAEPqZ,MAAAA,OAAO,EAAE,KAAK0R,QAAL,CAAc/qB,IAAd,CAAmB,IAAnB,CAFF;AAGPgrB,MAAAA,mBAAmB,EAAE,KAAKC,oBAAL,CAA0BjrB,IAA1B,CAA+B,IAA/B,CAHd;AAIPyZ,MAAAA,uBAAuB,EAAE,KAAK+N,wBAAL,CAA8BxnB,IAA9B,CAAmC,IAAnC;AAJlB,KAAT;AAMA,SAAKkrB,aAAL,GAAqB,IAArB;AACA,SAAKC,YAAL,GAAoB,IAApB;AACA,SAAKzoB,EAAL,GAAU,IAAIzL,iBAAJ,CAAsB,IAAtB,CAAV;AACA,SAAKyL,EAAL,CAAQyW,cAAR,GAAyB,KAAK1mB,CAAL,CAAO0mB,cAAhC;AACA,SAAKzW,EAAL,CAAQsoB,mBAAR,GAA8B,KAAKv4B,CAAL,CAAOu4B,mBAArC;AACA,SAAKtoB,EAAL,CAAQ2W,OAAR,GAAkB,KAAK5mB,CAAL,CAAO4mB,OAAzB;AACA,SAAK3W,EAAL,CAAQ+W,uBAAR,GAAkC,KAAKhnB,CAAL,CAAOgnB,uBAAzC;AACA,QACE,CAAC,KAAK4K,OAAL,CAAasG,QAAd,KACC,KAAKtG,OAAL,CAAaoG,WAAb,IAA4B,KAAKpG,OAAL,CAAaqG,WAD1C,CADF,EAIE,KAAK5N,KAAL,GAJF,KAKK,KAAKL,OAAL;AACN;;AAEDA,EAAAA,OAAO,GAAG;AACR,UAAM2O,oBAAoB,GAAG;AAC3Bze,MAAAA,SAAS,EAAE,UADgB;AAE3B4V,MAAAA,aAAa,EAAE;AAFY,KAA7B;AAIA,UAAM8I,oBAAoB,GAAG;AAC3B1e,MAAAA,SAAS,EAAE,UADgB;AAE3B4V,MAAAA,aAAa,EAAE;AAFY,KAA7B;AAIA,SAAK7f,EAAL,CAAQyf,cAAR,CAAuB,OAAvB,EAAgCiJ,oBAAhC;AACA,SAAK1oB,EAAL,CAAQyf,cAAR,CAAuB,OAAvB,EAAgCkJ,oBAAhC;AACA,SAAK3oB,EAAL,CACG6b,WADH,GAEGtgB,IAFH,CAESuJ,IAAD,IAAU;AACdxO,MAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,QAAX,EAAqB1iB,IAAI,CAACZ,GAA1B,CAAH;AACA,WAAKlE,EAAL,CAAQgF,mBAAR,CAA4BF,IAA5B,EAAkCvJ,IAAlC,CAAuC,MAAM;AAC3CnL,QAAAA,KAAK,CAAC;AACJa,UAAAA,MAAM,EAAE,MADJ;AAEJwV,UAAAA,GAAG,EAAE,KAAKkb,OAAL,CAAaiG,SAFd;AAGJgB,UAAAA,YAAY,EAAE,MAHV;AAIJ/2B,UAAAA,IAAI,EAAEiT,IAAI,CAACZ,GAJP;AAKJ1T,UAAAA,OAAO,EAAE;AACP,4BAAgB;AADT;AALL,SAAD,CAAL,CAQG+K,IARH,CAQS7J,QAAD,IAAc;AACpB,cAAIm3B,GAAG,GAAGn3B,QAAQ,CAACG,IAAnB,CADoB;;AAGpB,cAAIg3B,GAAG,CAAC92B,IAAJ,IAAY,CAAhB,EAAmB;AACjB;AACA,iBAAKs1B,QAAL,CAAcl1B,QAAQ,CAACG,mCAAvB,EAA4Du2B,GAA5D;AACA;AACD;;AAED,cAAIC,MAAM,GAAG,EAAb;AACAA,UAAAA,MAAM,CAAC5kB,GAAP,GAAa2kB,GAAG,CAAC3kB,GAAjB;AACA4kB,UAAAA,MAAM,CAACn6B,IAAP,GAAc,QAAd;AACA2H,UAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,SAAX,EAAsBqB,GAAG,CAAC3kB,GAA1B,CAAH;AACA,eAAKlE,EAAL,CACGZ,oBADH,CACwB0pB,MADxB,EAEGvtB,IAFH,CAEQ,MAAM;AACVjF,YAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,mBAAX,CAAH;AACD,WAJH,EAKG/J,KALH,CAKU1tB,CAAD,IAAO;AACZkO,YAAAA,KAAK,CAAC,KAAKupB,GAAN,EAAWz3B,CAAX,CAAL;AACD,WAPH;AAQD,SA7BD;AA8BD,OA/BD;AAgCD,KApCH,EAqCG0tB,KArCH,CAqCU1tB,CAAD,IAAO;AACZkO,MAAAA,KAAK,CAAC,KAAKupB,GAAN,EAAWz3B,CAAX,CAAL;AACD,KAvCH;AAwCD;;AAEDqqB,EAAAA,KAAK,GAAG;AACN,QAAImM,gBAAgB,GAAG,KAAvB;AACA,QAAID,gBAAgB,GAAG,KAAvB;;AAEA,QAAI,KAAK3E,OAAL,CAAamG,SAAjB,EAA4B;AAC1B,UAAI,KAAKnG,OAAL,CAAaqG,WAAjB,EACEzB,gBAAgB,GAAG,IAAIJ,qBAAJ,CAA0B5yB,eAAe,CAACC,MAA1C,CAAnB;AACF,UAAI,KAAKmuB,OAAL,CAAaoG,WAAjB,EACEzB,gBAAgB,GAAG,IAAIP,qBAAJ,CAA0B7yB,eAAe,CAACC,GAA1C,CAAnB;AACH,KALD,MAKO;AACL,UAAI,KAAKwuB,OAAL,CAAaqG,WAAjB,EAA8B;AAC5BzB,QAAAA,gBAAgB,GAAG,IAAIJ,qBAAJ,CACjB5yB,eAAe,CAACH,UADC,CAAnB;AAGA,YAAI,KAAKuuB,OAAL,CAAaoG,WAAjB,EACEzB,gBAAgB,GAAG,IAAIP,qBAAJ,CACjB7yB,eAAe,CAACE,UADC,CAAnB;AAGH,OARD,MAQO;AACL,YAAI,KAAKuuB,OAAL,CAAaoG,WAAjB,EACEzB,gBAAgB,GAAG,IAAIP,qBAAJ,CAA0B7yB,eAAe,CAACC,GAA1C,CAAnB,CADF,KAEK;AACH;AACA8K,UAAAA,KAAK,CAAC,KAAKupB,GAAN,EAAW,gBAAX,CAAL;AACD;AACF;AACF;;AAED,QACE,KAAK7F,OAAL,CAAayE,UAAb,CAAwB8B,CAAxB,IAA6B,CAA7B,IACA,KAAKvG,OAAL,CAAayE,UAAb,CAAwB+B,CAAxB,IAA6B,CAD7B,IAEA,OAAO5B,gBAAP,IAA2B,QAH7B,EAIE;AACAA,MAAAA,gBAAgB,CAACH,UAAjB,GAA8B,IAAI3yB,UAAJ,CAC5B,KAAKkuB,OAAL,CAAayE,UAAb,CAAwB8B,CADI,EAE5B,KAAKvG,OAAL,CAAayE,UAAb,CAAwB+B,CAFI,CAA9B;AAID;;AAED1B,IAAAA,kBAAkB,CAACC,iBAAnB,CACE,IAAIL,iBAAJ,CAAsBC,gBAAtB,EAAwCC,gBAAxC,CADF,EAGGhrB,IAHH,CAGSkC,MAAD,IAAY;AAChB,WAAKgrB,YAAL,GAAoBhrB,MAApB;AACA,WAAK4pB,QAAL,CAAcl1B,QAAQ,CAACK,sBAAvB,EAA+CiL,MAA/C;AACA,YAAMirB,oBAAoB,GAAG;AAC3Bze,QAAAA,SAAS,EAAE,UADgB;AAE3B4V,QAAAA,aAAa,EAAE;AAFY,OAA7B;AAIA,YAAM8I,oBAAoB,GAAG;AAC3B1e,QAAAA,SAAS,EAAE,UADgB;AAE3B4V,QAAAA,aAAa,EAAE;AAFY,OAA7B;;AAKA,UAAI,KAAK8B,OAAL,CAAakG,SAAb,IAA0BpqB,MAAM,CAACE,cAAP,GAAwBlO,MAAxB,GAAiC,CAA/D,EAAkE;AAChEk5B,QAAAA,oBAAoB,CAAC9I,aAArB,GAAqC,CACnC;AACEI,UAAAA,GAAG,EAAE,GADP;AAEEvxB,UAAAA,MAAM,EAAE,IAFV;AAGEwgB,UAAAA,UAAU,EAAE;AAHd,SADmC,EAMnC;AACE+Q,UAAAA,GAAG,EAAE,GADP;AAEEvxB,UAAAA,MAAM,EAAE,IAFV;AAGEwgB,UAAAA,UAAU,EAAE,MAHd;AAIEiR,UAAAA,qBAAqB,EAAE;AAJzB,SANmC,EAYnC;AACEF,UAAAA,GAAG,EAAE,GADP;AAEEvxB,UAAAA,MAAM,EAAE,IAFV;AAGEwgB,UAAAA,UAAU,EAAE,MAHd;AAIEiR,UAAAA,qBAAqB,EAAE;AAJzB,SAZmC,CAArC;AAmBD;;AAED,UAAI1iB,MAAM,CAACC,cAAP,GAAwBjO,MAAxB,GAAiC,CAArC,EAAwC;AACtC,aAAKuQ,EAAL,CAAQyf,cAAR,CACEhiB,MAAM,CAACC,cAAP,GAAwB,CAAxB,CADF,EAEEgrB,oBAFF;AAID,OALD,MAKO;AACLA,QAAAA,oBAAoB,CAACze,SAArB,GAAiC,UAAjC;AACA,aAAKjK,EAAL,CAAQyf,cAAR,CAAuB,OAAvB,EAAgCiJ,oBAAhC;AACD;;AAED,UAAIjrB,MAAM,CAACE,cAAP,GAAwBlO,MAAxB,GAAiC,CAArC,EAAwC;AACtC,aAAKuQ,EAAL,CAAQyf,cAAR,CACEhiB,MAAM,CAACE,cAAP,GAAwB,CAAxB,CADF,EAEEgrB,oBAFF;AAID,OALD,MAKO;AACLA,QAAAA,oBAAoB,CAAC1e,SAArB,GAAiC,UAAjC;AACA,aAAKjK,EAAL,CAAQyf,cAAR,CAAuB,OAAvB,EAAgCkJ,oBAAhC;AACD;AACD;AACR;AACA;AACA;AACA;AACA;;;AAEQ,WAAK3oB,EAAL,CACG6b,WADH,GAEGtgB,IAFH,CAESuJ,IAAD,IAAU;AACdxO,QAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,QAAX,EAAqB1iB,IAAI,CAACZ,GAA1B,CAAH;AACA,aAAKlE,EAAL,CAAQgF,mBAAR,CAA4BF,IAA5B,EAAkCvJ,IAAlC,CAAuC,MAAM;AAC3CnL,UAAAA,KAAK,CAAC;AACJa,YAAAA,MAAM,EAAE,MADJ;AAEJwV,YAAAA,GAAG,EAAE,KAAKkb,OAAL,CAAaiG,SAFd;AAGJgB,YAAAA,YAAY,EAAE,MAHV;AAIJ/2B,YAAAA,IAAI,EAAEiT,IAAI,CAACZ,GAJP;AAKJ1T,YAAAA,OAAO,EAAE;AACP,8BAAgB;AADT;AALL,WAAD,CAAL,CAQG+K,IARH,CAQS7J,QAAD,IAAc;AACpB,gBAAIm3B,GAAG,GAAGn3B,QAAQ,CAACG,IAAnB,CADoB;;AAGpB,gBAAIg3B,GAAG,CAAC92B,IAAJ,IAAY,CAAhB,EAAmB;AACjB;AACA,mBAAKs1B,QAAL,CACEl1B,QAAQ,CAACG,mCADX,EAEEu2B,GAFF;AAIA;AACD;;AAED,gBAAIC,MAAM,GAAG,EAAb;AACAA,YAAAA,MAAM,CAAC5kB,GAAP,GAAa2kB,GAAG,CAAC3kB,GAAjB;AACA4kB,YAAAA,MAAM,CAACn6B,IAAP,GAAc,QAAd;AACA2H,YAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,SAAX,EAAsBqB,GAAG,CAAC3kB,GAA1B,CAAH;AACA,iBAAKlE,EAAL,CACGZ,oBADH,CACwB0pB,MADxB,EAEGvtB,IAFH,CAEQ,MAAM;AACVjF,cAAAA,GAAG,CAAC,KAAKkxB,GAAN,EAAW,mBAAX,CAAH;AACD,aAJH,EAKG/J,KALH,CAKU1tB,CAAD,IAAO;AACZkO,cAAAA,KAAK,CAAC,KAAKupB,GAAN,EAAWz3B,CAAX,CAAL;AACD,aAPH;AAQD,WAhCD;AAiCD,SAlCD;AAmCD,OAvCH,EAwCG0tB,KAxCH,CAwCU1tB,CAAD,IAAO;AACZkO,QAAAA,KAAK,CAAC,KAAKupB,GAAN,EAAWz3B,CAAX,CAAL;AACD,OA1CH;AA2CD,KA1GH,EA2GG0tB,KA3GH,CA2GU1tB,CAAD,IAAO;AACZ,WAAKs3B,QAAL,CAAcl1B,QAAQ,CAACO,qBAAvB,EADY;AAEb,KA7GH,EAvCM;;AAsJN;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG;;AAED01B,EAAAA,eAAe,CAAC3oB,KAAD,EAAQ;AACrB,QAAIA,KAAK,CAAC8I,SAAV,EAAqB;AACnBjS,MAAAA,GAAG,CAAC,8BAA8BmJ,KAAK,CAAC8I,SAAN,CAAgBA,SAA/C,CAAH,CADmB;AAEpB;AACF;;AAED8f,EAAAA,QAAQ,CAAC5oB,KAAD,EAAQ;AACd,QAAI,KAAKkiB,OAAL,CAAa+F,OAAb,IAAwBjoB,KAAK,CAACG,OAA9B,IAAyCH,KAAK,CAACG,OAAN,CAAcnQ,MAAd,GAAuB,CAApE,EAAuE;AACrE,WAAKkyB,OAAL,CAAa+F,OAAb,CAAqBqB,SAArB,GAAiCtpB,KAAK,CAACG,OAAN,CAAc,CAAd,CAAjC;AACA,WAAK4oB,aAAL,GAAqB/oB,KAAK,CAACG,OAAN,CAAc,CAAd,CAArB;AACA,WAAKynB,QAAL,CAAcl1B,QAAQ,CAACI,wBAAvB,EAAiDkN,KAAjD;AACD,KAJD,MAIO;AACLxB,MAAAA,KAAK,CAAC,0BAAD,CAAL;AACD;AACF;;AAEDsqB,EAAAA,oBAAoB,CAAC9oB,KAAD,EAAQ;AAC1B,SAAK4nB,QAAL,CAAcl1B,QAAQ,CAACE,0BAAvB,EAAmDoN,KAAnD;AACD;;AAEDqlB,EAAAA,wBAAwB,CAACrlB,KAAD,EAAQ;AAC9B,SAAK4nB,QAAL,CACEl1B,QAAQ,CAACM,iCADX,EAEE,KAAKuN,EAAL,CAAQ0V,eAFV;AAID;;AAEDwF,EAAAA,KAAK,GAAG;AACN,QAAI,KAAKlb,EAAT,EAAa;AACX,WAAKA,EAAL,CAAQkb,KAAR;AACA,WAAKlb,EAAL,GAAU,IAAV;AACD;;AAED,QAAI,KAAK2hB,OAAT,EAAkB;AAChB,WAAKA,OAAL,GAAe,IAAf;AACD;;AAED,QAAI,KAAK8G,YAAT,EAAuB;AACrB,WAAKA,YAAL,CAAkB7qB,SAAlB,GAA8BrF,OAA9B,CAAsC,CAACG,KAAD,EAAQkI,GAAR,KAAgB;AACpDlI,QAAAA,KAAK,CAACmF,IAAN;AACD,OAFD;AAGD;;AAED,QAAI,KAAK2qB,aAAT,EAAwB;AACtB,WAAKA,aAAL,CAAmB5qB,SAAnB,GAA+BrF,OAA/B,CAAuC,CAACG,KAAD,EAAQkI,GAAR,KAAgB;AACrDlI,QAAAA,KAAK,CAACmF,IAAN;AACD,OAFD;AAGD;AACF;;AAEe,MAAZmrB,YAAY,GAAG;AACjB,WAAO,KAAKR,aAAZ;AACD;;AAEc,MAAXS,WAAW,GAAG;AAChB,WAAO,KAAKR,YAAZ;AACD;;AA9T+B;;AA8alC,MAAMS,MAAM,GAAG/2B,QAAf;AAEA,MAAMg3B,QAAQ,GAAG5B,WAAjB;;AC/pNA,MAAM6B,OAAO,GAAG,MAAhB;MAgCaC;AACX31B,EAAAA,YAAY41B;AACV,SAAKC,IAAL,CAAUD,GAAV;AACD;;AAEME,EAAAA,QAAQ;;AAELr5B,EAAAA,QAAQ,GAAGC,KAAK,CAACC,MAAN,CAAa;AAChCE,IAAAA,OAAO,EAAE;AADuB,GAAb,CAAH;AAIRk5B,EAAAA,SAAS,GAAG,IAAIr0B,GAAJ,EAAH;AAETs0B,EAAAA,SAAS,GAAG,IAAIt0B,GAAJ,EAAH;AAETu0B,EAAAA,kBAAkB,GAAG,IAAIv0B,GAAJ,EAAH;AAElBtI,EAAAA,MAAM,GAAG;AACjBo7B,IAAAA,CAAC,EAAE,GADc;AAEjBC,IAAAA,CAAC,EAAE,GAFc;AAGjByB,IAAAA,cAAc,EAAE;AAHC,GAAH;;AAONC,EAAAA,aAAa,CAACC,KAAD;AACrB,UAAM;AACJC,MAAAA,cADI;AAEJC,MAAAA,SAFI;AAGJC,MAAAA,QAHI;AAIJC,MAAAA,cAJI;AAKJC,MAAAA,aALI;AAMJC,MAAAA,YANI;AAOJC,MAAAA,QAPI;AAQJC,MAAAA,eARI;AASJC,MAAAA;AATI,QAUFT,KAVJ;;AAYA,UAAMU,SAAS,8CAAf;AACA,UAAM/sB,MAAM,OAAOwsB,YAAYC,kBAAkBC,iBAAiBC,cAAlE;;AAEA,UAAMK,MAAM,MAAMH,wCAAwClB,kBAAkB3rB,kBAA5E;AACA,UAAMitB,IAAI,GAAG,EAAb;AACA,SAAKhB,SAAL,CAAel7B,GAAf,CAAmB67B,QAAnB,EAA6B5sB,MAA7B;AACA,WAAO;AAAEitB,MAAAA,IAAF;AAAQjtB,MAAAA,MAAR;AAAgB8sB,MAAAA,eAAhB;AAAiCE,MAAAA,MAAjC;AAAyCD,MAAAA;AAAzC,KAAP;AACD;;;AAGSjB,EAAAA,IAAI,CAACD,GAAD;AACZ;AACA,QAAIA,GAAG,CAACM,cAAR,EAAwB;AACtB,WAAK98B,MAAL,CAAY88B,cAAZ,GAA6BN,GAAG,CAACM,cAAjC;AACD;;;AAGD,QAAIN,GAAG,CAACnB,CAAR,EAAW,KAAKr7B,MAAL,CAAYq7B,CAAZ,GAAgBmB,GAAG,CAACnB,CAApB;AACX,QAAImB,GAAG,CAACpB,CAAR,EAAW,KAAKp7B,MAAL,CAAYo7B,CAAZ,GAAgBoB,GAAG,CAACpB,CAApB;;AAGX,QAAIvyB,MAAM,CAAClB,SAAP,CAAiBgD,QAAjB,CAA0BC,IAA1B,CAA+B4xB,GAAG,CAACQ,KAAnC,MAA8C,iBAAlD,EAAqE;AACnE;AACA,WAAKN,QAAL,GAAgB,KAAKmB,WAAL,CAAiBrB,GAAG,CAACQ,KAArB,CAAhB;AACD,KAHD,MAGO;AACL;AACA,WAAK,MAAMl8B,CAAX,IAAgB07B,GAAG,CAACQ,KAApB,EAAmD;AACjD,aAAKa,WAAL,CAAiB/8B,CAAjB;AACD;AACF;AACF;;;AAGS+8B,EAAAA,WAAW,CAACb,KAAD;AACnB,SAAKH,kBAAL,CAAwBn7B,GAAxB,CAA4Bs7B,KAAK,CAACO,QAAlC,EAA4CP,KAA5C;AACA,UAAM;AAAES,MAAAA;AAAF,QAAsB,KAAKV,aAAL,CAAmBC,KAAnB,CAA5B;AAEA,WAAO,IAAIt4B,OAAJ,CAAY,CAACQ,OAAD,EAAUP,MAAV;AACjB,WAAKtB,QAAL,CAAc5B,GAAd,CAAkBg8B,eAAlB,EAAmChvB,IAAnC,CAAyC5J,GAAD;AACtC,YAAIA,GAAG,CAACE,IAAJ,CAASE,IAAT,KAAkB,CAAtB,EAAyB;AACvB;AACA,eAAK64B,SAAL,CAAed,KAAf;AACA93B,UAAAA,OAAO,CAACL,GAAG,CAACE,IAAL,CAAP;AACD,SAJD,MAIO;AACL;AACA,eAAK83B,kBAAL,CAAwBl0B,MAAxB,CAA+Bq0B,KAAK,CAACO,QAArC;AACA54B,UAAAA,MAAM;AACN,eAAK6E,GAAL,CAAS,KAAT,EAAgB,cAAhB;AACD;AACF,OAXD;AAYD,KAbM,CAAP;AAcD;;AAEDA,EAAAA,GAAG,CAAC3H,IAAD,EAAgCk8B,IAAhC;AACD,YAAQl8B,IAAR;AACE,WAAK,KAAL;AACE,cAAM,IAAIuH,KAAJ,CAAU20B,IAAV,CAAN;;AACF,WAAK,MAAL;AACEx0B,QAAAA,OAAO,CAACK,IAAR,CAAam0B,IAAb;AACA;;AACF;AACEx0B,QAAAA,OAAO,CAACy0B,IAAR,CAAaD,IAAb;AAPJ;AASD;;;AAGDE,EAAAA,QAAQ,CAACzyB,EAAD;AACN,QAAIA,EAAJ,EAAQ;AACN;AACA,UAAI0yB,MAAM,GAAG,KAAKvB,SAAL,CAAel7B,GAAf,CAAmB+J,EAAnB,CAAb;;AACA,UAAI0yB,MAAJ,EAAY;AACVA,QAAAA,MAAM,CAAC9P,KAAP;AACA,aAAKuO,SAAL,CAAeh0B,MAAf,CAAsB6C,EAAtB;AACA,aAAKqxB,kBAAL,CAAwBl0B,MAAxB,CAA+B6C,EAA/B;AACA0yB,QAAAA,MAAM,GAAG,IAAT;AACD;AACF,KATD,MASO;AACL;AACA,WAAKvB,SAAL,CAAelxB,OAAf,CAAwBnL,IAAD;AACrBA,QAAAA,IAAI,CAAC8tB,KAAL;AACA9tB,QAAAA,IAAI,GAAG,IAAP;AACD,OAHD;AAIA,WAAKq8B,SAAL,CAAewB,KAAf;AACA,WAAKtB,kBAAL,CAAwBsB,KAAxB;AACD;AACF;;;AAGSC,EAAAA,SAAS,CAACF,MAAD,EAAcX,QAAd,EAAgCI,MAAhC;AACjB;AACAO,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAAC72B,0BAAjB,EAA8CtC,CAAD;AAC3C;AACA,WAAKuG,GAAL,CAAS,KAAT,EAAgB,UAAhB;AACA,WAAK60B,MAAL,CAAYd,QAAZ;AACD,KAJD;AAKAW,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAAC32B,wBAAjB,EAA4CxC,CAAD;AACzC;AACAsG,MAAAA,OAAO,CAACC,GAAR,CAAY,MAAZ,EAAoBvG,CAAC,CAAC6P,OAAtB;AACD,KAHD;AAIAorB,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAAC52B,mCAAjB,EAAuDvC,CAAD;AACpD;AACA,WAAKuG,GAAL,CAAS,MAAT,gCAA+CvG,GAA/C;AACA,WAAKo7B,MAAL,CAAYd,QAAZ;AACD,KAJD;AAKAW,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAACkC,YAAjB,EAAgCr7B,CAAD;AAC7B,WAAKuG,GAAL,CAAS,MAAT,cAA6B+zB,UAA7B;AACA,WAAKc,MAAL,CAAYd,QAAZ;AACD,KAHD;AAIAW,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAACmC,WAAjB,EAA+Bt7B,CAAD;AAC5B,WAAKuG,GAAL,CAAS,MAAT,iBAAgC+zB,UAAhC;AACA,WAAKc,MAAL,CAAYd,QAAZ;AACD,KAHD;AAKAW,IAAAA,MAAM,CAAC9D,EAAP,CAAUgC,MAAM,CAACz2B,iCAAjB,EAAqD+lB,KAAD;AAClD;AACA,UAAIA,KAAK,KAAK,cAAV,IAA4BA,KAAK,KAAK,QAA1C,EAAoD;AAClD,aAAK2S,MAAL,CAAYd,QAAZ;AACD;AACF,KALD;AAMD;;;AAGSc,EAAAA,MAAM,CAACd,QAAD;AACd,UAAMx4B,IAAI,GAAG,KAAK83B,kBAAL,CAAwBp7B,GAAxB,CAA4B87B,QAA5B,CAAb;AACA,SAAKO,SAAL,CAAe/4B,IAAf;;AACA,QAAI,KAAK43B,SAAL,CAAel0B,GAAf,CAAmB80B,QAAnB,CAAJ,EAAkC;AAChCvV,MAAAA,UAAU,CAAC;AACT,aAAKwW,IAAL,CAAUz5B,IAAV;AACD,OAFS,EAEP,IAFO,CAAV;AAGD;AACF;;;AAGSy5B,EAAAA,IAAI,CAACjB,QAAD;AACZ,UAAMP,KAAK,GAAG,KAAKH,kBAAL,CAAwBp7B,GAAxB,CAA4B87B,QAA5B,CAAd;AACA,UAAM;AAAEI,MAAAA;AAAF,QAAa,KAAKZ,aAAL,CAAmBC,KAAnB,CAAnB;AACA,UAAM;AAAE5B,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAW,KAAKr7B,MAAtB;AACA,UAAMy+B,cAAc,GAAG;AACrB7D,MAAAA,OAAO,EAAEzS,QAAQ,CAACuW,cAAT,CAAwBnB,QAAxB,CADY;AAErB1C,MAAAA,KAAK,EAAE,KAFc;AAGrBC,MAAAA,SAAS,EAAE6C,MAHU;AAIrB5C,MAAAA,SAAS,EAAE,KAJU;AAKrBC,MAAAA,SAAS,EAAE,KALU;AAMrBC,MAAAA,WAAW,EAAE,KANQ;AAOrBC,MAAAA,WAAW,EAAE,IAPQ;AAQrBC,MAAAA,QAAQ,EAAE,IARW;AASrB7B,MAAAA,UAAU,EAAE;AAAE8B,QAAAA,CAAF;AAAKC,QAAAA;AAAL;AATS,KAAvB;AAWA,UAAM6C,MAAM,GAAG,IAAI7B,QAAJ,CAAa,EAC1B,GAAGxzB,MAAM,CAACsC,MAAP,CAAcszB,cAAd,EAA8B,KAAKz+B,MAAL,CAAY88B,cAA1C;AADuB,KAAb,CAAf;AAGA,SAAKsB,SAAL,CAAeF,MAAf,EAAuBX,QAAvB,EAAiCI,MAAjC;AACA,SAAKhB,SAAL,CAAej7B,GAAf,CAAmB67B,QAAnB,EAA6BW,MAA7B;AACD;;;AAGDJ,EAAAA,SAAS,CAACd,KAAD;AACP;AACAhV,IAAAA,UAAU,CAAC;AACT,WAAKwW,IAAL,CAAUxB,KAAK,CAACO,QAAhB;AACD,KAFS,EAEP,GAFO,CAAV;AAGD;;;;AC3OH,MAAMl8B,KAAK,GAAG;AACZ;AACAs9B,EAAAA,MAAM,EAAE;AACN98B,IAAAA,IAAI,EAAEgH;AADA,GAFI;AAMZ;AACA+1B,EAAAA,UAAU,EAAE98B;AAPA,CAAd;AAUA,MAAM+8B,KAAK,GAAG,IAAIC,IAAJ,GAAWC,OAAX,EAAd;AACA,MAAMC,WAAW,GAAG18B,eAAe,CAAC;AAClC9B,EAAAA,IAAI,EAAE,aAD4B;AAElCa,EAAAA,KAFkC;;AAGlCkB,EAAAA,KAAK,CAAC08B,KAAD,EAAQt+B,QAAR;AACH;AACA,QAAI69B,IAAJ;;AAGA,UAAM/B,IAAI,GAAIkC,MAAD;AACXH,MAAAA,IAAI,GAAG,IAAP;AACA,YAAM;AAAE1G,QAAAA,OAAF;AAAWoH,QAAAA;AAAX,UAA0BP,MAAhC;AACA,UAAIhlB,GAAG,GAAGglB,MAAM,CAACQ,oBAAjB;AACAxlB,MAAAA,GAAG,GAAGA,GAAG,CAACylB,UAAJ,CAAe,YAAf,EAA6BtH,OAA7B,CAAN;AACAne,MAAAA,GAAG,GAAGA,GAAG,CAACylB,UAAJ,CAAe,eAAf,EAAgCF,UAAhC,CAAN;AACAV,MAAAA,IAAI,GAAG,IAAIjC,QAAJ,CAAa;AAClBS,QAAAA,KAAK,EAAE;AACLO,UAAAA,QAAQ,gBAAgBsB,OADnB;AAELrB,UAAAA,eAAe,EAAEmB,MAAM,CAACU,aAAP,CAAqB1lB,GAFjC;AAGLsjB,UAAAA,cAAc,EAAE0B,MAAM,CAACxa,IAHlB;AAIL+Y,UAAAA,SAAS,EAAEyB,MAAM,CAACW,IAJb;AAKLnC,UAAAA,QAAQ,EAAEwB,MAAM,CAAC9iB,EALZ;AAMLuhB,UAAAA,cAAc,KAAKuB,MAAM,CAACY,UANrB;AAOLlC,UAAAA,aAAa,EAAEsB,MAAM,CAAC7G,OAPjB;AAQLwF,UAAAA,YAAY,EAAEqB,MAAM,CAACO,UARhB;AASLzB,UAAAA,eAAe,EAAE9jB;AATZ;AADW,OAAb,CAAP;AAaD,KAnBD;;;AAsBA3W,IAAAA,KAAK,CACH,MAAMi8B,KAAK,CAACL,UADT,EAEH,MAAO37B,CAAP;AACE,UAAIA,CAAJ,EAAO;AACL,cAAM4B,GAAG,GAAG,MAAMM,SAAS,CAAClC,CAAD,CAA3B;;AACA,YAAI4B,GAAG,CAACE,IAAR,EAAc;AACZ03B,UAAAA,IAAI,CAAC53B,GAAG,CAACE,IAAL,CAAJ;AACD;AACF;AACF,KATE,EAUH;AACE7B,MAAAA,SAAS,EAAE;AADb,KAVG,CAAL;;AAgBAF,IAAAA,KAAK,CACH,MAAMi8B,KAAK,CAACN,MADT,EAEF17B,CAAD;AACE,UAAIA,CAAJ,EAAO;AACLg7B,QAAAA,QAAQ;AACRxB,QAAAA,IAAI,CAACx5B,CAAD,CAAJ;AACD;AACF,KAPE,EAQH;AACEC,MAAAA,SAAS,EAAE,IADb;AAEEs8B,MAAAA,IAAI,EAAE;AAFR,KARG,CAAL;;AAeA,UAAMvB,QAAQ,GAAG;AACf,UAAIO,IAAJ,EAAU;AACRA,QAAAA,IAAI,CAACP,QAAL,eAA4BY,OAA5B;AACD;AACF,KAJD;;;AAOAY,IAAAA,WAAW,CAAC;AACVxB,MAAAA,QAAQ;AACT,KAFU,CAAX;AAGA,WAAO;AAAA,0BAEeY,OAFf;AAAA,eAGG,sEAHH;AAAA;AAAA;AAAA,YAAP;AAQD;;AA/EiC,CAAD,CAAnC;AAkFA,kBAAe79B,KAAK,CAACE,gBAAN,CAAuB89B,WAAvB,EAAoC,cAApC,CAAf;;AC7FA,iBAAe,CAACU,UAAD,EAAaC,cAAb,EAA6BC,eAA7B,EAA8CC,WAA9C,CAAf;;ACQA,MAAMC,KAAK,GAAGx9B,eAAe,CAAC;AAC5BjB,EAAAA,KAAK,EAAE;AACL;AACA0+B,IAAAA,OAAO,EAAE;AACPl+B,MAAAA,IAAI,EAAEC;AADC,KAFJ;AAKL;AACAk+B,IAAAA,QAAQ,EAAE;AACRn+B,MAAAA,IAAI,EAAEgH;AADE,KANL;AASL;AACAo3B,IAAAA,QAAQ,EAAE;AACRp+B,MAAAA,IAAI,EAAEgH;AADE,KAVL;AAaL;AACAq3B,IAAAA,QAAQ,EAAE;AACRr+B,MAAAA,IAAI,EAAEgH;AADE,KAdL;AAiBL;AACAs3B,IAAAA,SAAS,EAAE;AACTt+B,MAAAA,IAAI,EAAEC;AADG;AAlBN,GADqB;;AAuB5BS,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,IAAgBr9B,GAAG,CAAC,KAAD;AAEnB,IAAcs9B,QAAQ,CAAC;AACrBC,MAAAA,WAAW,EAAE,KADQ;AAErBC,MAAAA,OAAO,EAAE;AAFY,KAAD;;AAKtB,UAAMC,OAAO,GAAIv9B,CAAD;AACdsG,MAAAA,OAAO,CAACC,GAAR,CAAYvG,CAAZ;AAED,KAHD;;AAKA,UAAMw9B,MAAM,GAAIx9B,CAAD;AACbsG,MAAAA,OAAO,CAACC,GAAR,CAAYvG,CAAZ;AAED,KAHD;;AAUA,WAAO;AAAA,eACM,OADN;AAAA,YACiB;AADjB;AAAA,eAEQ;AAFR;AAAA,eAMO,mBANP;AAAA,iBAOS,IAPT;AAAA,qBAQa,IARb;AAAA,mBASW,aATX;AAAA,mBAUYu9B,OAVZ;AAAA,kBAWWC;AAXX;AAAA;AAAA,gBAcQ,SAdR;AAAA,mBAeY;AAER;AAjBJ;AAAA;AAAA;AAAA;AAAA,eAuEQ;AAvER;AAAA,eAwEU;AAxEV;AAAA,eA0ES;AA1ET;AAAA,sBA0EiBj+B,IAAI,CAACu9B,OA1EtB;AAAA;AAAA,eA4EQ;AA5ER;AAAA,eA6EU;AA7EV,yDA+EFv9B,IAAI,CAACw9B,QAAL;AAAA,eAEc;AAFd,2DAE+Bx9B,IAAI,CAACw9B,QAAL,CAAch2B,OAF7C;AAAA,eAGe;AAHf;AAAA,sBAGuBxH,IAAI,CAACw9B,QAAL,CAAcD,OAHrC;AAAA,QA/EE,EAqFFv9B,IAAI,CAACy9B,QAAL;AAAA,eAEc;AAFd,2DAE+Bz9B,IAAI,CAACy9B,QAAL,CAAcj2B,OAF7C;AAAA,eAGe;AAHf;AAAA,sBAGuBxH,IAAI,CAACy9B,QAAL,CAAcF,OAHrC;AAAA,QArFE,EA4FFv9B,IAAI,CAAC09B,QAAL;AAAA,eAEc;AAFd,iEAEgC19B,IAAI,CAAC09B,QAAL,CAAcl2B,OAF9C;AAAA,eAGe;AAHf;AAAA,sBAGuBxH,IAAI,CAAC09B,QAAL,CAAcH,OAHrC;AAAA,QA5FE,EAmGFv9B,IAAI,CAAC29B,SAAL;AAAA,eACY;AADZ;AAAA,eAEc;AAFd;AAAA,eAGgB;AAHhB;AAAA,eAKY,MALZ;AAAA,gBAK0B,QAL1B;AAAA,cAKyC39B,IAAI,CAAC29B;AAL9C,mGAnGE,EAAP;AAiHD;;AA/J2B,CAAD,CAA7B;AAkKA,cAAen/B,KAAK,CAACE,gBAAN,CAAuB4+B,KAAvB,EAA8B,OAA9B,CAAf;;AC/KA;;;;;;;AAWA;;;;;;SAKwBY,aACtBC,SACAC;AAEA,QAAMC,SAAS,GAAG99B,GAAG,CAAC,EAAD,CAArB;AACA,QAAM+9B,SAAS,GAAG/9B,GAAG,CAAC,KAAD,CAArB;AAEA,QAAMg+B,KAAK,GAAGh+B,GAAG,CAAC,CAAD,CAAjB;;AAGA,QAAMi+B,OAAO,GAAGC,QAAQ,CAAC;AACvBH,IAAAA,SAAS,CAACn/B,KAAV,GAAkB,IAAlB;;AACA,QAAI;AACF,YAAM;AAAEoD,QAAAA;AAAF,UAAW,MAAM47B,OAAO,EAA9B;;AACA,UAAIC,QAAJ,EAAc;AACZC,QAAAA,SAAS,CAACl/B,KAAV,GAAkBoD,IAAI,CAAC67B,QAAD,CAAtB;AACAG,QAAAA,KAAK,CAACp/B,KAAN,GAAcoD,IAAI,CAACm8B,UAAnB;AACD,OAHD,MAGO;AACLL,QAAAA,SAAS,CAACl/B,KAAV,GAAkBoD,IAAlB;AACD;AACF,KARD,SAQU;AACR+7B,MAAAA,SAAS,CAACn/B,KAAV,GAAkB,KAAlB;AACD;AACF,GAbuB,EAarB,GAbqB,CAAxB;AAeA,QAAMw/B,QAAQ,GAAGp+B,GAAG,CAAC,CAAD,CAApB;;AACA,QAAMq+B,gBAAgB,GAAIC,IAAD;AACvBF,IAAAA,QAAQ,CAACx/B,KAAT,GAAiB0/B,IAAjB;AACAL,IAAAA,OAAO;AACR,GAHD;;AAKA,SAAO;AACLF,IAAAA,SADK;AAELD,IAAAA,SAFK;AAILM,IAAAA,QAJK;AAKLC,IAAAA,gBALK;AAMLL,IAAAA,KANK;AAOLC,IAAAA;AAPK,GAAP;AASD;;ACxDD;;;;;;;AAWA,MAAM39B,QAAQ,GAAGC,KAAK,CAACC,MAAN,CAAa;AAC5BC,EAAAA,OAAO,EAAE,OADmB;AAE5BC,EAAAA,OAAO,EAAE,IAFmB;AAG5BC,EAAAA,OAAO,EAAE;AACP,uBAAmB,QADZ;AAEPC,IAAAA,UAAU,EAAE,KAFL;AAGP,oBAAgB;AAHT;AAHmB,CAAb,CAAjB;;AAUA,MAAME,QAAQ,GAAG;AACf,YAAUC,cAAc,CAACC,OAAf,CAAuB,OAAvB,GAAV;AACD,CAFD;;AAIA,MAAMu9B,OAAO,GAAG;AACd,QAAMnd,IAAI,GAAGrgB,cAAc,CAACC,OAAf,CAAuB,UAAvB,CAAb;;AACA,MAAIogB,IAAJ,EAAU;AACR,WAAO7f,IAAI,CAACsJ,KAAL,CAAWuW,IAAX,CAAP;AACD;AACF,CALD;;AAOA9gB,QAAQ,CAACW,YAAT,CAAsBC,OAAtB,CAA8BC,GAA9B,CACGhE,IAAD;AACE,QAAMqhC,MAAM,GAAGz9B,cAAc,CAACC,OAAf,CAAuB,QAAvB,CAAf;AACA7D,EAAAA,IAAI,CAACwD,OAAL,CAAa89B,KAAb,GAAqB39B,QAAQ,EAA7B;AACA3D,EAAAA,IAAI,CAACwD,OAAL,CAAaE,MAAb,GAAsB09B,OAAO,IAAI19B,MAAjC;AACA1D,EAAAA,IAAI,CAACwD,OAAL,CAAa+9B,QAAb,GAAwBH,OAAO,IAAIG,QAAnC;AACA,QAAM;AAAE18B,IAAAA,IAAI,GAAG;AAAT,MAAgB7E,IAAtB;;AACA,MAAIwhC,aAAa,CAAC38B,IAAD,CAAjB,EAAyB;AACvB;AACA,SAAK,MAAMzD,GAAX,IAAkByD,IAAlB,EAAwB;AACtB,UAAIA,IAAI,CAACzD,GAAD,CAAJ,KAAc4J,SAAlB,EAA6B;AAC3BnG,QAAAA,IAAI,CAACzD,GAAD,CAAJ,GAAY,IAAZ;AACD;AACF,KANsB;;;AAQvBpB,IAAAA,IAAI,CAAC6E,IAAL,GAAY48B,IAAI,CACd58B,IADc,EAEd,UAFc,EAGd,YAHc,EAId,UAJc,EAKd,YALc,CAAhB;AAOD;;AACD,MAAIw8B,MAAJ,EAAY;AACVrhC,IAAAA,IAAI,CAACwD,OAAL,CAAa69B,MAAb,GAAsBA,MAAtB;AACD;;AACD,SAAOrhC,IAAP;AACD,CA3BH,EA4BGuE,GAAD;AACE,SAAOC,OAAO,CAACC,MAAR,CAAeF,GAAf,CAAP;AACD,CA9BH;AAiCApB,QAAQ,CAACW,YAAT,CAAsBY,QAAtB,CAA+BV,GAA/B,CACGW,GAAD;AACE,QAAMC,OAAO,GAAGD,GAAG,CAACE,IAApB;AACA,QAAMC,MAAM,GAAGF,OAAO,CAACG,IAAR,KAAiB,GAAhC;;AACA,MAAID,MAAJ,EAAY;AACV,WAAON,OAAO,CAACQ,OAAR,CAAgBJ,OAAhB,CAAP;AACD;;AACD,QAAM88B,GAAG,GAAG/8B,GAAG,CAACE,IAAJ,EAAU68B,GAAV,IAAiB,MAA7B;AACA3xB,EAAAA,OAAO,CAACkB,KAAR,CAAcywB,GAAd;AAEA,SAAOl9B,OAAO,CAACC,MAAR,CAAeG,OAAf,CAAP;AACD,CAXH,EAYGL,GAAD;AACE,SAAOC,OAAO,CAACC,MAAR,CAAeF,GAAf,CAAP;AACD,CAdH;;ACjEA;;;;;;;AAUA,YAAe;AACb;;;AAGAo9B,EAAAA,WAAW,EAAGloB,GAAD,IAAkBtV,MAAD;AAC5B,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANY;;AAOb;;;AAGAy9B,EAAAA,WAAW,EAAGnoB,GAAD,IAAiB;AAC5B,WAAOtW,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,CAAP;AACD,GAZY;;AAab;;;AAGAooB,EAAAA,eAAe,EAAGpoB,GAAD,IAAiB;AAChC,WAAOtW,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,CAAP;AACD,GAlBY;;AAmBb;;;AAGAqoB,EAAAA,mBAAmB,EAAGroB,GAAD,IAAkB5U,IAAD;AACpC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAxBY;;AAyBb;;;AAGAm9B,EAAAA,cAAc,EAAGvoB,GAAD,IAAkB5U,IAAD;AAC/B,WAAO1B,QAAQ,CAAC8+B,GAAT,CAAaxoB,GAAb,EAAkB5U,IAAlB,CAAP;AACD,GA9BY;;AA+Bb;;;;AAIAq9B,EAAAA,aAAa,EAAGzoB,GAAD,IAAkB/V,MAAD;AAC9B,WAAOP,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB;AAAE/V,MAAAA;AAAF,KAAnB,CAAP;AACD,GArCY;;AAsCb;;;AAGAy+B,EAAAA,cAAc,EAAG1oB,GAAD,IAAkB5U,IAAD;AAC/B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA3CY;;AA4Cb;;;;AAIAu9B,EAAAA,MAAM,EAAG3oB,GAAD,IAAkBtV,MAAD;AACvB,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GAlDY;;AAmDb;;;AAGAk+B,EAAAA,cAAc,EAAG5oB,GAAD,IAAkBnO,EAAD;AAC/B,WAAOnI,QAAQ,CAACsF,MAAT,IAAmBgR,MAAMnO,IAAzB,CAAP;AACD,GAxDY;;AAyDb;;;AAGAg3B,EAAAA,qBAAqB,EAAG7oB,GAAD,IAAkB8oB,UAAD;AACtC,WAAOp/B,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAM8oB,YAAtB,CAAP;AACD;AA9DY,CAAf;;ACVA;;;;;;;AAUA;;;;SAGwBC;AACtB,QAAMC,eAAe,GAAG5/B,GAAG,CAAC,KAAD,CAA3B;AAEA,QAAM6/B,QAAQ,GAAG7/B,GAAG,CAAC,EAAD,CAApB;;AAEA,QAAM8/B,gBAAgB,GAAIC,MAAD;AACvBH,IAAAA,eAAe,CAAChhC,KAAhB,GAAwB,IAAxB;;AACA,QAAImhC,MAAJ,EAAY;AACVF,MAAAA,QAAQ,CAACjhC,KAAT,GAAiBmhC,MAAjB;AACD;AACF,GALD;;AAOA,SAAO,CAACH,eAAD,EAAkBE,gBAAlB,EAAoCD,QAApC,CAAP;AAKD;;AC9BD;;;;;;;;AAQA;;;;;SAKgBG,UAAUC;AACxB,SAAOl9B,MAAM,CAACm9B,IAAP,CAAYD,GAAZ,CAAP;AACD;;ACbD;;;;;SAIgBE,gBAAgBj0B;AAC9B,SAAO;AACLk0B,IAAAA,QAAQ,EAAE,IADL;AAELlzB,IAAAA,OAAO,KAAKhB;AAFP,GAAP;AAID;AAED;;;;;;SAKgBm0B,WAAWn0B,OAAehC;AACxC,SAAO;AACLA,IAAAA,GADK;AAELgD,IAAAA,OAAO,KAAKhB,cAAchC;AAFrB,GAAP;AAID;;ACRD,MAAMo2B,iBAAiB,GAAG/gC,eAAe,CAAC;AACxCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADiC;AAExCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKL+hC,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAENs6B,MAAAA,QAAQ,EAAE;AAFJ;AALH,GAFiC;;AAYxC5gC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAMoiC,OAAO,GAAG5gC,GAAG,CAAM,EAAN,CAAnB;AAEA;;AACAC,IAAAA,KAAK,CAAC0gC,SAAD,EAAY,MAAOh5B,GAAP;AACf,UAAIA,GAAJ,EAAS;AACP,cAAMk5B,QAAQ,EAAd;AACA,cAAM;AAAE7+B,UAAAA;AAAF,YAAW,MAAM8+B,KAAG,CAACrB,qBAAJ,CAA0BgB,MAAM,CAACM,cAAjC,EACrBziC,KAAK,CAACyhC,MAAN,CAAaL,UADQ,CAAvB;AAGAkB,QAAAA,OAAO,CAAChiC,KAAR,GAAgBoD,IAAhB;AACD;AACF,KARI,CAAL;AAUA,WAAO;AAAA,eACM;AADN;AAAA,eAGK,MAHL;AAAA,eAIM,GAJN;AAK0B,eAL1B,EAKS2+B,SAAS,CAAC/hC,KALnB;AAAA,oCAKS+hC,SAAS,CAAC/hC,KALnB;AAAA;AAQCZ,MAAAA,OAAO,EAAE;AAAA,kBAEG,CAFH;AAAA,sBAGO;AACVgjC,UAAAA,OAAO,EAAE,OADC;AAEVC,UAAAA,SAAS,EAAE,OAFD;AAGVn9B,UAAAA,KAAK,EAAE;AAHG;AAHP;AAAA;AAAA,mBASsB;AATtB;AAAA,0BAUF88B,OAAO,CAAChiC,KAAR,CAAcsD,IAVZ;AAAA;AAAA,mBAYsB;AAZtB;AAAA,0BAaF0+B,OAAO,CAAChiC,KAAR,CAAcnB,IAbZ;AAAA;AAAA,mBAesB;AAftB;AAAA,0BAgBFmjC,OAAO,CAAChiC,KAAR,CAAcsiC,GAAd,KAAsB,CAAtB,GAA0B,GAA1B,GAAgC,GAhB9B;AAAA;AAAA,mBAkBsB;AAlBtB;AAAA,0BAmBFN,OAAO,CAAChiC,KAAR,CAAcuiC,GAnBZ;AAAA;AAAA,mBAqBsB;AArBtB;AAAA,0BAsBFP,OAAO,CAAChiC,KAAR,CAAcwiC,WAtBZ;AAAA;AAAA,mBAwBsB;AAxBtB;AAAA,0BAyBFR,OAAO,CAAChiC,KAAR,CAAcyiC,YAzBZ;AAAA;AAAA,mBA2BsB;AA3BtB;AAAA,0BA4BFT,OAAO,CAAChiC,KAAR,CAAc0iC,QA5BZ;AAAA;AAAA,mBA8BsB;AA9BtB;AAAA,0BA+BFV,OAAO,CAAChiC,KAAR,CAAc2iC,MA/BZ;AAAA;AAAA,mBAiCsB;AAjCtB;AAAA,0BAkCFX,OAAO,CAAChiC,KAAR,CAAc4iC,QAlCZ;AAAA;AAAA,mBAoCsB;AApCtB;AAAA,0BAqCFZ,OAAO,CAAChiC,KAAR,CAAc6iC,YArCZ;AAAA;AAAA,QARV;AAiDCC,MAAAA,MAAM,EAAE;AAAA,mBACa,MAAOf,SAAS,CAAC/hC,KAAV,GAAkB;AADtC;AAAA;AAAA;AAjDT,QAAP;AA0DD;;AAxFuC,CAAD,CAAzC;;ACNA;;;;;;SAMgBwqB,MAAMpe,KAA8B22B;AAClD,MAAIC,IAAI,GAAG,IAAX;;AACA,OAAK,MAAMrjC,GAAX,IAAkByM,GAAlB,EAAuB;AACrB,QAAIlF,MAAM,CAAClB,SAAP,CAAiB6tB,cAAjB,CAAgC5qB,IAAhC,CAAqCmD,GAArC,EAA0CzM,GAA1C,CAAJ,EAAoD;AAClD,YAAMuD,GAAG,GAAG6/B,KAAK,CAACpjC,GAAD,EAAMyM,GAAG,CAACzM,GAAD,CAAT,CAAjB;;AACA,UAAI,CAACuD,GAAL,EAAU;AACR8/B,QAAAA,IAAI,GAAG,KAAP;AACA;AACD;AACF;AACF;;AACD,SAAOA,IAAP;AACD;;;;;;ACXD,MAAMC,YAAY,GAAGtiC,eAAe,CAAC;AACnCQ,EAAAA,KAAK,EAAE,CAAC,cAAD,CAD4B;AAEnCzB,EAAAA,KAAK,EAAE;AACLM,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,CAACC,MAAD,EAAS+iC,KAAT,EAAgB9iC,MAAhB;AADD,KADF;AAIL;AACA+iC,IAAAA,MAAM,EAAE;AACNjjC,MAAAA,IAAI,EAAEC,MADA;AAENqhC,MAAAA,QAAQ,EAAE;AAFJ,KALH;;AASL;AACA4B,IAAAA,SAAS,EAAE;AACTljC,MAAAA,IAAI,EAAEgH;AADG,KAVN;AAaLm8B,IAAAA,SAAS,EAAE;AACTnjC,MAAAA,IAAI,EAAEgH,MADG;AAET9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFA,KAbN;;AAiBL;AACAkkC,IAAAA,aAAa,EAAE;AACbpjC,MAAAA,IAAI,EAAEgjC,KADO;AAEb9jC,MAAAA,OAAO,EAAE,MAAM;AAFF;AAlBV,GAF4B;;AAyBnCwB,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA,IAAF;AAAQ2jC,IAAAA;AAAR,GAAR;AACH,UAAMC,UAAU,GAAG/jC,SAAS,CAACC,KAAD,EAAQ,OAAR,EAAiBE,IAAjB,CAA5B;AAEA;;AACA,UAAM6jC,UAAU,GAAGriC,GAAG,CAAC,EAAD,CAAtB;AACA,UAAMsiC,UAAU,GAAGtiC,GAAG,CAAC,KAAD,CAAtB;AACA,QAAIuiC,WAAW,GAAG,CAAlB;AACA,UAAMC,aAAa,GAAGtE,QAAQ,CAAC,MAAOv2B,GAAP;AAC7B,UACE,CAACrJ,KAAK,CAAC0jC,SAAP,IACA5Y,KAAK,CAAC9qB,KAAK,CAAC0jC,SAAP,EAAkB,CAACzjC,GAAD,EAAMK,KAAN,KAAgB,CAAC6jC,KAAK,CAAC7jC,KAAD,CAAxC,CAFP,EAGE;AACA,cAAM8jC,OAAO,GAAGH,WAAhB,CADA;;AAGAF,QAAAA,UAAU,CAACzjC,KAAX,GAAmB,EAAnB;AACA0jC,QAAAA,UAAU,CAAC1jC,KAAX,GAAmB,IAAnB;;AACA,YAAI;AACF;AACA,gBAAM;AAAEoD,YAAAA;AAAF,cAAW,MAAM1B,QAAQ,CAAC5B,GAAT,CAAaJ,KAAK,CAACyjC,MAAnB,EAA2B;AAChDzgC,YAAAA,MAAM,EAAE,EAAE,GAAGhD,KAAK,CAAC0jC,SAAX;AAAsBW,cAAAA,OAAO,EAAEh7B;AAA/B;AADwC,WAA3B,CAAvB;;AAGA,cAAI46B,WAAW,KAAKG,OAApB,EAA6B;;AAI7BL,UAAAA,UAAU,CAACzjC,KAAX,GAAmBoD,IAAnB;AACD,SAVD,SAUU;AACRsgC,UAAAA,UAAU,CAAC1jC,KAAX,GAAmB,KAAnB;AACD;AACF;AACF,KAvB6B,EAuB3B,GAvB2B,CAA9B;AAwBA4jC,IAAAA,aAAa,CAAC,EAAD,CAAb;AAEAviC,IAAAA,KAAK,CACH,MAAM3B,KAAK,CAAC0jC,SADT,EAEH,CAACY,IAAD,EAAOC,IAAP;AACE,UAAI,CAACC,OAAO,CAACF,IAAD,EAAOC,IAAP,CAAZ,EAA0B;AACxBL,QAAAA,aAAa,CAAC,EAAD,CAAb;AACD;AACF,KANE,CAAL;AASAviC,IAAAA,KAAK,CACH,MAAM3B,KAAK,CAAC4jC,aADT,EAEH,CAACU,IAAD,EAAOC,IAAP;AACE,UAAIC,OAAO,CAACF,IAAD,EAAOC,IAAP,CAAX,EAAyB;;AACzB,UAAIf,KAAK,CAACiB,OAAN,CAAcX,UAAU,CAACxjC,KAAzB,CAAJ,EAAqC;AACnCwjC,QAAAA,UAAU,CAACxjC,KAAX,GAAmBwjC,UAAU,CAACxjC,KAAX,CAAiBgN,MAAjB,CAChBrO,IAAD,IAAU,CAACe,KAAK,CAAC4jC,aAAN,CAAoB91B,QAApB,CAA6B7O,IAA7B,CADM,CAAnB;AAGD,OAJD,MAIO;AACL,YAAIe,KAAK,CAAC4jC,aAAN,CAAoB91B,QAApB,CAA6Bg2B,UAAU,CAACxjC,KAAxC,CAAJ,EAAoD;AAClDwjC,UAAAA,UAAU,CAACxjC,KAAX,GAAmBuJ,SAAnB;AACD;AACF;AACF,KAbE,CAAL;AAgBA,WAAO;AAAA;;AAAA,kEAECg6B,KAFD;AAAA,2BAGcG,UAAU,CAAC1jC,KAAX,GAAmB,KAAnB,GAA2B,MAHzC;AAAA;AAAA,oCAKuB,KALvB;AAAA,qBAMQ,IANR;AAAA,wBAOW,KAPX;AAQyB,eARzB,EAQOwjC,UAAU,CAACxjC,KARlB;AAAA,oCAQOwjC,UAAU,CAACxjC,KARlB;AAAA,oBASO4jC;AATP,4BAWFH,UAAU,CAACzjC,KAAX,CAAiBtB,GAAjB,CACEC,IAAD,IACE,CAACe,KAAK,CAAC4jC,aAAN,CAAoB91B,QAApB,CACC7O,IAAI,CAACe,KAAK,CAAC2jC,SAAN,CAAgB1jC,GAAhB,IAAuB,IAAxB,CADL,CAAD;AAAA,eAGwBhB,IAAI,CAACe,KAAK,CAAC2jC,SAAN,CAAgB1jC,GAAhB,IAAuB,IAAxB;AAH5B;AAAA,wBAIKhB,IAAI,CAACe,KAAK,CAAC2jC,SAAN,CAAgB/1B,KAAhB,IAAyB,MAA1B,CAJT;AAAA,QAFH,CAXE;AAAA;AAAA;AAAA,KAAP;AAuBD;;AA1GkC,CAAD,CAApC;;;;;;ACKA,MAAM82B,gBAAgB,GAAGzjC,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;;AAKL;AACAkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC,MADF;AAEJf,MAAAA,OAAO,EAAE;AAFL,KAND;;AAUL;AACA+hC,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KAXH;;AAeL;AACAilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAhBN,GAFgC;;AAsBvC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA;;AACA,UAAM2kC,OAAO,GAAGnjC,GAAG,EAAnB;AACA,UAAMojC,IAAI,GAAGpjC,GAAG,CAAM,EAAN,CAAhB;AACAC,IAAAA,KAAK,CAAC0gC,SAAD,EAAY,MAAOh5B,GAAP;AACf;AACA,YAAMk5B,QAAQ,EAAd;;AAEA,UAAIl5B,GAAJ,EAAS;AACP,YAAIrJ,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AAC1BkkC,QAAAA,IAAI,CAACxkC,KAAL,GAAaykC,SAAS,CAAC/kC,KAAK,CAACyhC,MAAP,CAAtB,CAFO;;AAIPqD,QAAAA,IAAI,CAACxkC,KAAL,CAAW0kC,OAAX,GAAqBF,IAAI,CAACxkC,KAAL,CAAW0kC,OAAX,CAAmBzrB,KAAnB,CAAyB,GAAzB,CAArB;AACD,OALD,MAKO;AACL;AACAsrB,QAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACD;AACF,KAbI,CAAL;;AAgBA,UAAMC,YAAY,GAAGxjC,GAAG,CAAC,EAAD,CAAxB;AACA8gC,IAAAA,KAAG,CACA9B,eADH,CACmByB,MAAM,CAAC+C,YAD1B,IAEG93B,IAFH,CAEQ,CAAC;AAAE1J,MAAAA;AAAF,KAAD,KAAewhC,YAAY,CAAC5kC,KAAb,GAAqBoD,IAF5C;AAIA;;AACA,UAAMyhC,UAAU,GAAGhlC,QAAQ,CAAC;AAC1B,UAAIH,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B,OAAO,MAAP,CAA1B,KACK,IAAIZ,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B,OAAO,MAAP;AAChC,aAAO,MAAP;AACD,KAJ0B,CAA3B;AAMA;;AACA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;;AAEA,UAAMw+B,MAAM,GAAG;AACbiD,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAFD;AAIA;;;AACA,UAAM,CAAC+kC,aAAD,EAAgBC,kBAAhB,IAAsCjE,sBAAsB,EAAlE;;AAGA,UAAMkE,mBAAmB,GAAG;AAC1BC,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,EAAE,SAFG;;AAGZ,cAAMC,IAAN;AACE,gBAAMlD,KAAG,CAACzB,aAAJ,CAAkBoB,MAAM,CAACwD,SAAzB,EAAoCb,IAAI,CAACxkC,KAAL,CAAWiC,MAA/C,CAAN;AACAqM,UAAAA,OAAO,CAACg3B,OAAR,CAAgB,OAAhB;AACD;;AANW,OAAd;AAQD,KATD;AAWA;;;AACA,UAAMC,gBAAgB,GAAG,OAAOC,IAAP,EAAkBxlC,KAAlB;AACvB,UAAI,CAACA,KAAL,EAAY;;AACZ,UAAIA,KAAK,CAACgB,MAAN,GAAe,CAAf,IAAoBhB,KAAK,CAACgB,MAAN,GAAe,EAAvC,EAA2C;AACzC,cAAM,IAAIyG,KAAJ,CAAU,eAAV,CAAN;AACD;;AACD,UAAI+8B,IAAI,CAACxkC,KAAL,CAAWylC,SAAX,IAAwBzlC,KAAK,KAAKwkC,IAAI,CAACxkC,KAAL,CAAWylC,SAAjD,EAA4D;AAC1D,cAAM,IAAIh+B,KAAJ,CAAU,WAAV,CAAN;AACD;;AACD,aAAO,IAAP;AACD,KATD;;AAUA,UAAMi+B,iBAAiB,GAAG,OAAOF,IAAP,EAAkBxlC,KAAlB;AACxB,UAAI,CAACA,KAAL,EAAY;;AACZ,UAAIwkC,IAAI,CAACxkC,KAAL,CAAW2lC,QAAX,IAAuB3lC,KAAK,KAAKwkC,IAAI,CAACxkC,KAAL,CAAW2lC,QAAhD,EAA0D;AACxD,cAAM,IAAIl+B,KAAJ,CAAU,WAAV,CAAN;AACD;;AACD,aAAO,IAAP;AACD,KAND;AAQA;;;AACA,UAAMm+B,YAAY,GAAG;AACnB,YAAMrB,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAMziC,IAAI,GAAG,EACX,GAAGohC,IAAI,CAACxkC,KADG;AAEX0kC,QAAAA,OAAO,EAAEF,IAAI,CAACxkC,KAAL,CAAW0kC,OAAX,CAAmB/pB,IAAnB,CAAwB,GAAxB;AAFE,OAAb;;AAKA,UAAIjb,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB4C,QAAM,MAAMg/B,KAAG,CAAC7B,mBAAJ,CAAwBwB,MAAM,CAACiE,GAA/B,EAAoC,EAC9C,GAAG9F,IAAI,CAAC58B,IAAD,EAAO,WAAP,CADuC;AAE9CuiC,UAAAA,QAAQ,EAAEvE,SAAS,CAACh+B,IAAI,CAACuiC,QAAN;AAF2B,SAApC,CAAZ;AAID,OALD,MAKO,IAAIjmC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC4C,QAAM,MAAMg/B,KAAG,CAAC3B,cAAJ,CAAmBsB,MAAM,CAACkE,MAA1B,EAAkC3iC,IAAlC,CAAZ;AACD;;AAED07B,MAAAA,MAAM;AACNp/B,MAAAA,KAAK,CAAC2kC,SAAN;AACD,KAlBD;;AAoBA,WAAO;AAAA,eACM;AADN;AAAA,eAGMQ,UAAU,CAAC7kC,KAHjB;AAAA;AAK0B,eAL1B,EAKS+hC,SAAS,CAAC/hC,KALnB;AAAA,oCAKS+hC,SAAS,CAAC/hC,KALnB;AAAA;AAQCZ,MAAAA,OAAO,EAAE;AAAA;;AAAA;AAAA,iBACMmlC,OADN;AAAA,sBACyB;AAAEyB,YAAAA,IAAI,EAAE;AAAR,WADzB;AAAA,mBAC6CxB,IAAI,CAACxkC;AADlD;AAAA;AAAA,oBAGE,UAHF;AAAA,qBAIG,KAJH;AAAA;AAAA,qBAMIuhC,eAAe,CAAC,KAAD;AANnB;AAAA,4BAQFuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW8/B,QADnB;AAGyC,qBAHzC,EAGoB0E,IAAI,CAACxkC,KAAL,CAAW8/B,QAH/B;AAAA,0CAGoB0E,IAAI,CAACxkC,KAAL,CAAW8/B,QAH/B;AAAA,oBARE;AAAA;AAAA,oBAeE,cAfF;AAAA,qBAgBG,MAhBH;AAAA,oBAiBE;AAjBF;AAAA,4BAmBFgF,MAAM,CAAC9kC,KAAP;AAAA,sBACgB,MADhB;AAAA,yBACgCglC;AADhC;AAAA,8BAEIR,IAAI,CAACxkC,KAAL,CAAWimC,YAFf;AAAA;AAAA;AAOoC,qBAPpC,EAOazB,IAAI,CAACxkC,KAAL,CAAW8gC,UAPxB;AAAA,0CAOa0D,IAAI,CAACxkC,KAAL,CAAW8gC,UAPxB;AAAA,iCASI8D,YAAY,CAAC5kC,KAAb,CAAmBtB,GAAnB,CAAwBC,IAAD;AAAA,qBACAA,IAAI,CAACkL;AADL;AAAA,8BAEnBlL,IAAI,CAACE,IAFc;AAAA,cAAvB,CATJ;AAAA;AAAA,cAnBE;AAAA,cAoCJa,KAAK,CAACY,IAAN,KAAe,KAAf;AAAA;AAAA,oBAIU,UAJV;AAAA,qBAKW,MALX;AAAA;AAAA,oBAOU,4BAPV;AAAA,qBAQY,CACL;AAAE4lC,cAAAA,SAAS,EAAEX;AAAb,aADK,EAEL;AAAE/D,cAAAA,QAAQ,EAAE,IAAZ;AAAkBlzB,cAAAA,OAAO,EAAE;AAA3B,aAFK;AARZ;AAAA;AAcsC,qBAdtC,EAciBk2B,IAAI,CAACxkC,KAAL,CAAW2lC,QAd5B;AAAA,0CAciBnB,IAAI,CAACxkC,KAAL,CAAW2lC,QAd5B;AAAA;AAAA;AAAA,oBAkBU,WAlBV;AAAA,qBAmBW,MAnBX;AAAA;AAAA,qBAqBY,CACL;AAAEO,cAAAA,SAAS,EAAER;AAAb,aADK,EAEL;AAAElE,cAAAA,QAAQ,EAAE,IAAZ;AAAkBlzB,cAAAA,OAAO,EAAE;AAA3B,aAFK;AArBZ;AAAA;AA2BuC,qBA3BvC,EA2BiBk2B,IAAI,CAACxkC,KAAL,CAAWylC,SA3B5B;AAAA,0CA2BiBjB,IAAI,CAACxkC,KAAL,CAAWylC,SA3B5B;AAAA;AAAA;AAAA;AAAA,oBAiCmB,UAjCnB;AAAA,qBAiCoC;AAjCpC;AAAA,8HAmCI/lC,KAAK,CAACY,IAAN,KAAe,MAAf;AAAA,sBACgB,MADhB;AAAA,yBACgC2kC;AADhC;AAAA;AAAA,cAnCJ;AAAA,YApCI;AAAA,oBA+EE,SA/EF;AAAA,qBAgFG,MAhFH;AAAA;AAAA,qBAkFI1D,eAAe,CAAC,MAAD;AAlFnB;AAAA,4BAoFFuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWmmC,aADnB;AAAA,wBAIU;AAJV;AAKS7lC,cAAAA,IAAI,EAAE;AALf;AAAA,2BAMc;AAAEX,gBAAAA,GAAG,EAAE,QAAP;AAAiB2N,gBAAAA,KAAK,EAAE;AAAxB,eANd;AAOiC,qBAPjC,EAOak3B,IAAI,CAACxkC,KAAL,CAAW0kC,OAPxB;AAAA,0CAOaF,IAAI,CAACxkC,KAAL,CAAW0kC,OAPxB;AAAA,qBApFE;AAAA;AAAA,oBAgGE,OAhGF;AAAA,qBAiGG,IAjGH;AAAA;AAAA,qBAmGInD,eAAe,CAAC,IAAD;AAnGnB;AAAA,4BAqGFuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWomC,KADnB;AAGsC,qBAHtC,EAGoB5B,IAAI,CAACxkC,KAAL,CAAWomC,KAH/B;AAAA,0CAGoB5B,IAAI,CAACxkC,KAAL,CAAWomC,KAH/B;AAAA,oBArGE;AAAA;AAAA,oBA2Ga,QA3Gb;AAAA,qBA2G4B;AA3G5B;AAAA,4BA4GFtB,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWqmC,MADnB;AAGuC,qBAHvC,EAGoB7B,IAAI,CAACxkC,KAAL,CAAWqmC,MAH/B;AAAA,0CAGoB7B,IAAI,CAACxkC,KAAL,CAAWqmC,MAH/B;AAAA,oBA5GE;AAAA;AAAA,oBAkHa,QAlHb;AAAA,qBAkH4B;AAlH5B;AAAA,4BAmHFvB,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWsmC,MADnB;AAGuC,qBAHvC,EAGoB9B,IAAI,CAACxkC,KAAL,CAAWsmC,MAH/B;AAAA,0CAGoB9B,IAAI,CAACxkC,KAAL,CAAWsmC,MAH/B;AAAA,oBAnHE;AAAA;AAAA,oBAyHa,MAzHb;AAAA,qBAyH0B;AAzH1B;AAAA,4BA0HFxB,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWumC,IADnB;AAGqC,qBAHrC,EAGoB/B,IAAI,CAACxkC,KAAL,CAAWumC,IAH/B;AAAA,0CAGoB/B,IAAI,CAACxkC,KAAL,CAAWumC,IAH/B;AAAA,oBA1HE;AAAA;AAAA;AAAA,OARV;AA0ICzD,MAAAA,MAAM,EAAE;AAAA;AAAA,qBAEehE;AAFf;AAAA;AAAA,YAGH,CAACgG,MAAM,CAAC9kC,KAAR;AAAA,kBACgB,SADhB;AAAA,qBACmC4lC;AADnC;AAAA;AAAA,UAHG;AAAA;AA1IT;AAAA,gBAuJOlmC,KAAK,CAACyhC,MAvJb;AAwJ8B,eAxJ9B,EAwJS4D,aAAa,CAAC/kC,KAxJvB;AAAA,oCAwJS+kC,aAAa,CAAC/kC,KAxJvB;AAAA,cAAP;AA4JD;;AApRsC,CAAD,CAAxC;;ACiBA,MAAMwmC,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,8BADqB;AAE3B9F,EAAAA,MAAM,EAAE,yBAFmB;AAG3BmF,EAAAA,GAAG,EAAE,yBAHsB;AAI3BC,EAAAA,MAAM,EAAE,6BAJmB;AAK3B/+B,EAAAA,MAAM,EAAE,0BALmB;AAM3B0/B,EAAAA,QAAQ,EAAE,uBANiB;AAO3BvE,EAAAA,cAAc,EAAE,8BAPW;AAQ3ByC,EAAAA,YAAY,EAAE,kCARa;AAS3BS,EAAAA,SAAS,EAAE;AATgB,CAA7B;AAgBA,MAAMsB,QAAM,GAAG,CACb;AACEtmC,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE,UAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CADa,EAMb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,eAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CANa,EAWb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,cAFb;AAGEjnC,EAAAA,GAAG,EAAE,cAHP;AAIEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAJT,CAXa,EAiBb;AACExmC,EAAAA,KAAK,EAAE,IADT;AAEEumC,EAAAA,SAAS,EAAE,OAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAjBa,EAsBb;AACEU,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAtBa,EA2Bb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CA3Ba,EAgCb;AACEU,EAAAA,KAAK,EAAE,IADT;AAEEV,EAAAA,GAAG,EAAE,QAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CAhCa,CAAf;AAuCA,MAAMC,WAAW,GAAGnmC,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACL;AACAsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AAFA,GAD2B;;AAQlCwB,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG9mC,KAAK,CAACsY;AAA3B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAMmF,SAAS,GAAG5lC,GAAG,CAAY;AAC/B0+B,MAAAA,QAAQ,EAAE;AADqB,KAAZ,CAArB;AAIA;;AACA,UAAM;AAAEN,MAAAA,QAAF;AAAYC,MAAAA,gBAAZ;AAA8BN,MAAAA,SAA9B;AAAyCE,MAAAA,OAAzC;AAAkDH,MAAAA,SAAlD;AAA6DE,MAAAA;AAA7D,QACJL,YAAY,CACV,MACEmD,KAAG,CAAChC,WAAJ,CAAgB2B,MAAM,CAAC4E,IAAvB,EAA6B;AAC3BQ,MAAAA,OAAO,EAAED,SAAS,CAAChnC,KAAV,CAAgB8/B,QADE;AAE3BoH,MAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KAFS;AAG3BmnC,MAAAA,QAAQ,EAAE;AAHiB,KAA7B,CAFQ,EAOV,WAPU,CADd;AAUA9H,IAAAA,OAAO;;AAEP,UAAM+H,YAAY,GAAG;AACnB/H,MAAAA,OAAO;AACR,KAFD;AAIA;;;AACA,UAAMgI,eAAe,GAAGjmC,GAAG,CAAC,KAAD,CAA3B;;AACA,UAAMkmC,cAAc,GAAG,MAAOD,eAAe,CAACrnC,KAAhB,GAAwB,IAAtD;AAEA;;;AACA,UAAMunC,gBAAgB,GAAGnmC,GAAG,CAAC,KAAD,CAA5B;AACA,UAAMomC,cAAc,GAAGpmC,GAAG,CAAC,EAAD,CAA1B;;AACA,UAAMqmC,UAAU,GAAG,MAAOC,GAAP;AACjB,YAAM;AAAEtkC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAACvB,MAAJ,CAAWkB,MAAM,CAAClB,MAAlB,EAA0B;AAAE1+B,QAAAA,MAAM,EAAEylC,GAAG,CAACzlC;AAAd,OAA1B,CAAvB;AACAulC,MAAAA,cAAc,CAACxnC,KAAf,GAAuB,EACrB,GAAGoD,IADkB;AAErB6iC,QAAAA,YAAY,EAAEyB,GAAG,CAACzB,YAFG;AAGrBnF,QAAAA,UAAU,EAAE4G,GAAG,CAAC5G,UAHK;AAIrB4D,QAAAA,OAAO,EAAEgD,GAAG,CAAChD;AAJQ,OAAvB;AAMA6C,MAAAA,gBAAgB,CAACvnC,KAAjB,GAAyB,IAAzB;AACD,KATD;AAWA;;;AACA,UAAM2nC,gBAAgB,GAAGvmC,GAAG,CAAC,KAAD,CAA5B;AACA,UAAMm/B,cAAc,GAAGn/B,GAAG,CAAC,EAAD,CAA1B;;AACA,UAAMwmC,eAAe,GAAG,MAAOF,GAAP;AACtB,YAAM;AAAEtkC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAACvB,MAAJ,CAAWkB,MAAM,CAAClB,MAAlB,EAA0B;AAAE1+B,QAAAA,MAAM,EAAEylC,GAAG,CAACzlC;AAAd,OAA1B,CAAvB;AACAs+B,MAAAA,cAAc,CAACvgC,KAAf,GAAuB,EACrB,GAAGoD,IADkB;AAErB6iC,QAAAA,YAAY,EAAEyB,GAAG,CAACzB,YAFG;AAGrBnF,QAAAA,UAAU,EAAE4G,GAAG,CAAC5G,UAHK;AAIrB4D,QAAAA,OAAO,EAAEgD,GAAG,CAAChD;AAJQ,OAAvB;AAMAiD,MAAAA,gBAAgB,CAAC3nC,KAAjB,GAAyB,IAAzB;AACD,KATD;AAWA;;;AACA,UAAM6nC,gBAAgB,GAAGzmC,GAAG,CAAC,KAAD,CAA5B;AACA,UAAM0mC,cAAc,GAAG1mC,GAAG,CAAC,EAAD,CAA1B;;AACA,UAAM2mC,UAAU,GAAG,CAACzmC,CAAD,EAAgBomC,GAAhB;AACjBpmC,MAAAA,CAAC,CAAC0mC,cAAF;AACAH,MAAAA,gBAAgB,CAAC7nC,KAAjB,GAAyB,IAAzB;AACA8nC,MAAAA,cAAc,CAAC9nC,KAAf,GAAuB0nC,GAAvB;AACD,KAJD;AAMA;;;AACA,UAAMO,gBAAgB,GAAI9G,MAAD;AACvB+D,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,YAAYhE,MAAM,CAACrB,YAFd;;AAGZ,cAAMsF,IAAN;AACE,gBAAMlD,KAAG,CAACtB,cAAJ,CAAmBiB,MAAM,CAAC76B,MAA1B,EAAkCm6B,MAAM,CAACl/B,MAAzC,CAAN;AACAqM,UAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,UAAAA,OAAO;AACR;;AAPW,OAAd;AASD,KAVD;;AAYA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ,cAFR;AAAA,eAE8B;AAAE6I,QAAAA,YAAY,EAAE;AAAhB;AAF9B;AAAA,eAIQlB,SAAS,CAAChnC,KAJlB;AAAA,cAKM,OALN;AAAA,gBAMQ,QANR;AAAA,eAOO,YAPP;AAAA,kBAQWonC;AARX;AAAA;AAAA,iBAUoB;AAVpB;AAAA;AAAA,yBAYiB,SAZjB;AAAA;AAcyC,iBAdzC,EAceJ,SAAS,CAAChnC,KAAV,CAAgB8/B,QAd/B;AAAA,sCAcekH,SAAS,CAAChnC,KAAV,CAAgB8/B,QAd/B;AAAA;AAAA;AAAA,gBAoBQ,SApBR;AAAA,qBAqBa;AArBb;AAAA;AAuBKt+B,QAAAA,IAAI,EAAE,MAAMk4B,CAAC,CAACyO,gBAAgB,CAAC,gBAAD,CAAjB;AAvBlB;AAAA;AAAA,eA8BU;AA9BV;AAAA,cAgCQ,SAhCR;AAAA,iBAoCYb;AApCZ;AAAA;AAkCK9lC,MAAAA,IAAI,EAAE,MAAMk4B,CAAC,CAACyO,gBAAgB,CAAC,cAAD,CAAjB;AAlClB;AAAA,oBA4CWjJ,SAAS,CAACl/B,KA5CrB;AAAA,iBA6CQ2mC,QA7CR;AAAA,gBA8CM,QA9CN;AAAA,iBA+CQxH,SAAS,CAACn/B,KA/ClB;AAAA,oBAgDW;AACVmnC,QAAAA,QAAQ,EAAE,EADA;AAEViB,QAAAA,OAAO,EAAE5I,QAAQ,CAACx/B,KAFR;AAGV,4BAAoBy/B,gBAHV;AAIVL,QAAAA,KAAK,EAAEA,KAAK,CAACp/B;AAJH;AAhDX,OAsDQ;AACPimC,MAAAA,YAAY,EAAE,CAAC;AAAE9E,QAAAA;AAAF,OAAD;AACZ;AAAA,qBACe7/B,CAAD,IAAOymC,UAAU,CAACzmC,CAAD,EAAI6/B,MAAJ;AAD/B,YAEKA,MAAM,CAAC8E,YAFZ;AAKD,OAPM;AAQPhhB,MAAAA,MAAM,EAAE,CAAC;AAAEkc,QAAAA;AAAF,OAAD;AACN;AAAA,kBAGW,OAHX;AAAA,kBAIW,MAJX;AAAA,qBAKe,MAAMsG,UAAU,CAACtG,MAAD;AAL/B;AAAA;AAAA,YASKA,MAAM,CAACkH,OAAP;AAAA,kBAEQ,OAFR;AAAA,kBAGQ,MAHR;AAAA,qBAIY,MAAMT,eAAe,CAACzG,MAAD,CAJjC;AAAA,mBAKS;AALT;AAAA;AAAA,UATL,EAmBKA,MAAM,CAACmH,SAAP;AAAA,kBAEQ,OAFR;AAAA,kBAGQ,MAHR;AAAA;AAAA,qBAKY,MAAML,gBAAgB,CAAC9G,MAAD;AALlC;AAAA;AAAA,UAnBL;AA+BD;AAxCM,KAtDR;AAAA,cAoGI,KApGJ;AAqGgC,eArGhC,EAqGSkG,eAAe,CAACrnC,KArGzB;AAAA,oCAqGSqnC,eAAe,CAACrnC,KArGzB;AAAA,mBAsGUq/B;AAtGV;AAAA,cAyGI,MAzGJ;AA0GiC,eA1GjC,EA0GSsI,gBAAgB,CAAC3nC,KA1G1B;AAAA,oCA0GS2nC,gBAAgB,CAAC3nC,KA1G1B;AAAA,gBA2GOugC,cAAc,CAACvgC,KA3GtB;AAAA,mBA4GUq/B;AA5GV;AAAA,cA+GI,MA/GJ;AAgHiC,eAhHjC,EAgHSkI,gBAAgB,CAACvnC,KAhH1B;AAAA,oCAgHSunC,gBAAgB,CAACvnC,KAhH1B;AAAA,gBAiHOwnC,cAAc,CAACxnC;AAjHtB;AAAA,gBAoHO8nC,cAAc,CAAC9nC,KApHtB;AAqHiC,eArHjC,EAqHS6nC,gBAAgB,CAAC7nC,KArH1B;AAAA,oCAqHS6nC,gBAAgB,CAAC7nC,KArH1B;AAAA,cAAP;AAyHD;;AAhNiC,CAAD,CAAnC;AAmNA,oBAAeX,KAAK,CAACE,gBAAN,CAAuBunC,WAAvB,EAAoC,cAApC,CAAf;;AChTA;;;;;;;AAUA,MAAM5E,KAAG,GAAG;AACV;;;AAGAqG,EAAAA,kBAAkB,EAAGvwB,GAAD,IAAkBtV,MAAD;AACnC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANS;;AAOV;;;AAGA8lC,EAAAA,sBAAsB,EAAGxwB,GAAD,IAAkBtV,MAAD;AACvC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GAZS;;AAaV;;;AAGA+lC,EAAAA,UAAU,EAAGzwB,GAAD,IAAkBtV,MAAD;AAC3B,WAAOhB,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmBtV,MAAnB,CAAP;AACD,GAlBS;;AAmBV;;;AAGAgmC,EAAAA,eAAe,EAAG1wB,GAAD,IAAkBtV,MAAD;AAChC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GAxBS;;AAyBV;;;AAGAimC,EAAAA,WAAW,EAAG3wB,GAAD,IAAiB;AAC5B,WAAOtW,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,CAAP;AACD,GA9BS;;AA+BV;;;AAGA4wB,EAAAA,cAAc,EAAG5wB,GAAD,IAAkB6wB,UAAD;AAC/B,WAAOnnC,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA,MAAM,EAAE;AAAEmmC,QAAAA;AAAF;AAAV,KAAlB,CAAP;AACD;AApCS,CAAZ;;ACVA;;;;;;;;AAQA;;;;;;;SAOgBC,kBAAkBC;AAChC,SAAOA,QAAQ,CAACrqC,GAAT,CAAcC,IAAD;AAClB,WAAO,EACL,GAAGA,IADE;AAELkL,MAAAA,EAAE,QAAQlL,IAAI,CAACqqC,WAFV;AAGLnqC,MAAAA,IAAI,EAAEF,IAAI,CAACsqC,WAHN;AAILC,MAAAA,OAAO,EAAEvqC,IAAI,CAAC8B;AAJT,KAAP;AAMD,GAPM,CAAP;AAQD;;ACND,MAAM0oC,gBAAgB,GAAGxoC,eAAe,CAAC;AACvCjB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC;AADF,KALD;AAQLghC,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KARH;AAYLilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAZN,GADgC;AAiBvCnjC,EAAAA,KAAK,EAAE,CAAC,gBAAD,CAjBgC;;AAkBvCP,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;;AAGA,UAAMmpC,QAAQ,GAAG3nC,GAAG,CAAQ,EAAR,CAApB;;AAGA,UAAMgoC,qBAAqB,GAAGhoC,GAAG,CAAC,EAAD,CAAjC;AAEA;;AACA,UAAMmjC,OAAO,GAAGnjC,GAAG,EAAnB;AACA,UAAMojC,IAAI,GAAGpjC,GAAG,CAAM,EAAN,CAAhB;AACAC,IAAAA,KAAK,CAAC0gC,SAAD,EAAY,MAAOh5B,GAAP;AACf;AACA,YAAMk5B,QAAQ,EAAd;AACAmH,MAAAA,qBAAqB,CAACppC,KAAtB,GAA8B,EAA9B;;AAEA,UAAI+I,GAAJ,EAAS;AACP,YAAIrJ,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,gBAAM;AAAE8C,YAAAA;AAAF,cAAW,MAAM8+B,KAAG,CAACyG,WAAJ,CAAgB9G,MAAM,CAACwH,aAAvB,GAAvB;AACAN,UAAAA,QAAQ,CAAC/oC,KAAT,GAAiB8oC,iBAAiB,CAAC1lC,IAAD,CAAlC;AACA;AACD,SAJD,MAIO,IAAI1D,KAAK,CAACY,IAAN,KAAe,MAAf,IAAyBZ,KAAK,CAACY,IAAN,KAAe,MAA5C,EAAoD;AACzD,gBAAM;AAAE8C,YAAAA;AAAF,cAAW,MAAM8+B,KAAG,CAACwG,eAAJ,CAAoB7G,MAAM,CAACyH,cAA3B,EAA2C;AAChET,YAAAA,UAAU,EAAEnpC,KAAK,CAACyhC,MAAN,CAAa0H;AADuC,WAA3C,CAAvB;AAIAE,UAAAA,QAAQ,CAAC/oC,KAAT,GAAiB8oC,iBAAiB,CAAC1lC,IAAI,CAACmmC,cAAN,CAAlC;AACAH,UAAAA,qBAAqB,CAACppC,KAAtB,GAA8BoD,IAAI,CAAComC,cAAnC;AACD;;AACDhF,QAAAA,IAAI,CAACxkC,KAAL,GAAaykC,SAAS,CAAC/kC,KAAK,CAACyhC,MAAP,CAAtB,CAbO;AAgBP;AACA;AACD,OAlBD,MAkBO;AACL;AACAoD,QAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACD;AACF,KA3BI,CAAL;AA6BA;;AACA,UAAME,UAAU,GAAGhlC,QAAQ,CAAC;AAC1B,UAAIH,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B,OAAO,MAAP,CAA1B,KACK,IAAIZ,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B,OAAO,MAAP;AAChC,aAAO,MAAP;AACD,KAJ0B,CAA3B;AAMA;;AACA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;;AAEA,UAAMw+B,MAAM,GAAG;AACbiD,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAFD;;;AAKA,UAAMypC,kBAAkB,GAAG,OAAOjE,IAAP,EAAkBxlC,KAAlB;AACzB,UAAIopC,qBAAqB,CAACppC,KAAtB,CAA4BgB,MAAhC,EAAwC;AACtC,eAAO,IAAP;AACD,OAFD,MAEO;AACL,eAAO,IAAIyG,KAAJ,CAAU,OAAV,CAAP;AACD;AACF,KAND;;AAQA,UAAMm+B,YAAY,GAAG;AACnB,YAAMrB,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAM3iC,GAAG,GAAG,EACV,GAAGshC,IAAI,CAACxkC,KADE;AAEVwpC,QAAAA,cAAc,EAAEJ,qBAAqB,CAACppC;AAF5B,OAAZ;;AAIA,UAAIN,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM4hC,KAAG,CAACuG,UAAJ,CAAe5G,MAAM,CAAC6H,IAAtB,EAA4BxmC,GAA5B,CAAN;AACAoL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD,OAHD,MAGO,IAAI5lC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC,cAAM4hC,KAAG,CAACuG,UAAJ,CAAe5G,MAAM,CAAC6H,IAAtB,EAA4BxmC,GAA5B,CAAN;AACAoL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD;;AACD5lC,MAAAA,KAAK,CAAC2kC,SAAN;AACAtC,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAfD;;AAiBA,WAAO;AAAA,eACM;AADN;AAAA,eAGM6kC,UAAU,CAAC7kC,KAHjB;AAAA;AAK0B,eAL1B,EAKS+hC,SAAS,CAAC/hC,KALnB;AAAA,oCAKS+hC,SAAS,CAAC/hC,KALnB;AAAA;AAQCZ,MAAAA,OAAO,EAAE;AAAA,eACMmlC,OADN;AAAA,oBACyB;AAAEyB,UAAAA,IAAI,EAAE;AAAR,SADzB;AAAA,iBAC6CxB,IAAI,CAACxkC;AADlD;AAAA;AAAA,mBAGG,MAHH;AAAA,kBAIE,UAJF;AAAA;AAAA,mBAMIuhC,eAAe,CAAC,MAAD;AANnB;AAAA,0BAQFuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW2pC,QADnB;AAGyC,mBAHzC,EAGoBnF,IAAI,CAACxkC,KAAL,CAAW2pC,QAH/B;AAAA,wCAGoBnF,IAAI,CAACxkC,KAAL,CAAW2pC,QAH/B;AAAA,kBARE;AAAA;AAAA,mBAeG,MAfH;AAAA,kBAgBE,cAhBF;AAAA;AAAA,mBAkBIpI,eAAe,CAAC,MAAD;AAlBnB;AAAA,0BAoBFuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW4pC,YADnB;AAG6C,mBAH7C,EAGoBpF,IAAI,CAACxkC,KAAL,CAAW4pC,YAH/B;AAAA,wCAGoBpF,IAAI,CAACxkC,KAAL,CAAW4pC,YAH/B;AAAA,kBApBE;AAAA;AAAA,mBA0Bc,MA1Bd;AAAA,kBA0B0B;AA1B1B;AAAA,0BA2BF9E,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW6pC,QADnB;AAG4C,mBAH5C,EAGuBrF,IAAI,CAACxkC,KAAL,CAAW6pC,QAHlC;AAAA,wCAGuBrF,IAAI,CAACxkC,KAAL,CAAW6pC,QAHlC;AAAA,kBA3BE;AAAA;AAAA,kBAkCE,KAlCF;AAAA,mBAmCI;AAAE3D,YAAAA,SAAS,EAAEuD;AAAb,WAnCJ;AAAA,mBAoCG;AApCH;AAAA,0BAsCFV,QAAQ,CAAC/oC,KAAT,CAAegB,MAAf,GAAwB,CAAxB;AAAA,qBACa;AAAEmP,cAAAA,SAAS,EAAE,OAAb;AAAsB25B,cAAAA,SAAS,EAAE;AAAjC;AADb;AAAA;AAAA,0BAIiB;AACVnqC,cAAAA,GAAG,EAAE,IADK;AAEVoqC,cAAAA,QAAQ,EAAE,SAFA;AAGV1pC,cAAAA,KAAK,EAAE;AAHG,aAJjB;AAAA,wBASeykC,MAAM,CAAC9kC,KATtB;AAAA;AAAA,yBAWgB+oC,QAAQ,CAAC/oC,KAXzB;AAY4C,yBAZ5C,EAYeopC,qBAAqB,CAACppC,KAZrC;AAAA,8CAYeopC,qBAAqB,CAACppC,KAZrC;AAAA,oBAtCE;AAAA;AAAA,QARV;AAiEC8iC,MAAAA,MAAM,EAAE;AAAA;AAAA,qBAEehE;AAFf;AAAA;AAAA,YAGH,CAACgG,MAAM,CAAC9kC,KAAR;AAAA,kBACgB,SADhB;AAAA,qBACmC4lC;AADnC;AAAA;AAAA,UAHG;AAAA;AAjET,QAAP;AA+ED;;AApLsC,CAAD,CAAxC;;ACMA,MAAMY,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,2BADqB;AAE3BiD,EAAAA,IAAI,EAAE,6BAFqB;AAG3BL,EAAAA,aAAa,EAAE,8BAHY;AAI3BriC,EAAAA,MAAM,EAAE,iCAJmB;AAK3BsiC,EAAAA,cAAc,EAAE,kCALW;AAM3BU,EAAAA,YAAY,EAAE;AANa,CAA7B;AASA,MAAMC,SAAO,GAAG,CACd;AACE5pC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CADc,EAKd;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CALc,EASd;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CATc,EAad;AACEvmC,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAbc,EAiBd;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAjBc,EAqBd;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEV,EAAAA,GAAG,EAAE,QAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CArBc,EA0Bd;AACExmC,EAAAA,KAAK,EAAE,IADT;AAEEV,EAAAA,GAAG,EAAE,UAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CA1Bc,CAAhB;AAiCA;;;;AAGA,MAAMqD,WAAW,GAAGvpC,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD2B;;AAOlCwB,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG9mC,KAAK,CAACsY;AAA3B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAM70B,MAAM,GAAG5L,GAAG,CAAC;AACjB2iC,MAAAA,OAAO,EAAE;AADQ,KAAD,CAAlB;AAIA,UAAM;AAAE5E,MAAAA,SAAF;AAAaE,MAAAA,OAAb;AAAsBH,MAAAA,SAAtB;AAAiCE,MAAAA,KAAjC;AAAwCI,MAAAA,QAAxC;AAAkDC,MAAAA;AAAlD,QACJV,YAAY,CACV,MACEmD,KAAG,CAACqG,kBAAJ,CAAuB1G,MAAM,CAAC4E,IAA9B,EAAoC;AAClC1C,MAAAA,OAAO,EAAE/2B,MAAM,CAAChN,KAAP,CAAa+jC,OADY;AAElCmD,MAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KAFgB;AAGlCmnC,MAAAA,QAAQ,EAAE;AAHwB,KAApC,CAFQ,EAOV,UAPU,CADd;AAUA9H,IAAAA,OAAO;AAEP;;AACA,UAAM8K,kBAAkB,GAAG,OAAO9mC,MAAP,EAAwB89B,MAAxB;AACzB+D,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,IADK;AAEZ8kC,QAAAA,OAAO,OAAO9hC,MAAM,GAAG,IAAH,GAAU,UAAU89B,MAAM,CAACyI,gBAFnC;;AAGZ,cAAMxE,IAAN;AACE,gBAAMlD,KAAG,CAACsG,sBAAJ,CAA2B3G,MAAM,CAACmI,YAAlC,EAAgD;AACpDnB,YAAAA,UAAU,EAAE1H,MAAM,CAAC0H,UADiC;AAEpDuB,YAAAA,MAAM,EAAEhqC,MAAM,CAACiD,MAAD;AAFsC,WAAhD,CAAN;AAIAiL,UAAAA,OAAO,CAACg3B,OAAR,IAAmBjiC,MAAM,GAAG,IAAH,GAAU,QAAnC;AACAg8B,UAAAA,OAAO;AACR;;AAVW,OAAd;AAYD,KAbD;AAeA;;;AACA,UAAMkI,gBAAgB,GAAGnmC,GAAG,CAAC,KAAD,CAA5B;AACA,UAAMipC,cAAc,GAAGjpC,GAAG,CAAC,EAAD,CAA1B;;AACA,UAAMkpC,eAAe,GAAI5C,GAAD;AACtBH,MAAAA,gBAAgB,CAACvnC,KAAjB,GAAyB,IAAzB;AACAqqC,MAAAA,cAAc,CAACrqC,KAAf,GAAuB0nC,GAAvB;AACD,KAHD;AAKA;;;AACA,UAAML,eAAe,GAAGjmC,GAAG,CAAC,KAAD,CAA3B;;AACA,UAAMkmC,cAAc,GAAG,MAAOD,eAAe,CAACrnC,KAAhB,GAAwB,IAAtD;AAEA;;;AACA,UAAM2nC,gBAAgB,GAAGvmC,GAAG,CAAC,KAAD,CAA5B;AACA,UAAMmpC,cAAc,GAAGnpC,GAAG,CAAC,EAAD,CAA1B;;AACA,UAAMwmC,eAAe,GAAIF,GAAD;AACtBC,MAAAA,gBAAgB,CAAC3nC,KAAjB,GAAyB,IAAzB;AACAuqC,MAAAA,cAAc,CAACvqC,KAAf,GAAuB0nC,GAAvB;AACD,KAHD;AAKA;;;AACA,UAAM8C,iBAAiB,GAAIrJ,MAAD;AACxB,UAAIA,MAAM,CAACsJ,SAAP,GAAmB,CAAvB,EAA0B;AACxBvF,QAAAA,KAAK,CAAC11B,KAAN,CAAY;AACV21B,UAAAA,OAAO,QAAQhE,MAAM,CAACyI;AADZ,SAAZ;AAGD,OAJD,MAIO;AACL1E,QAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,UAAAA,KAAK,EAAE,MADK;AAEZ8kC,UAAAA,OAAO,YAAYhE,MAAM,CAACyI,gBAFd;;AAGZ,gBAAMxE,IAAN;AACE,kBAAMlD,KAAG,CAAC0G,cAAJ,CAAmB/G,MAAM,CAAC76B,MAA1B,EAAkCm6B,MAAM,CAAC0H,UAAzC,CAAN;AACAv6B,YAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,YAAAA,OAAO;AACR;;AAPW,SAAd;AASD;AACF,KAhBD;;AAkBA,UAAM+H,YAAY,GAAG;AACnB/H,MAAAA,OAAO;AACR,KAFD;;AAIA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ;AAFR;AAAA,eAIQryB,MAAM,CAAChN,KAJf;AAAA,cAKM,OALN;AAAA,gBAMQ,QANR;AAAA,eAOO,YAPP;AAAA,kBAQWonC;AARX;AAAA;AAAA,iBAUoB;AAVpB;AAAA;AAAA,yBAYiB,SAZjB;AAAA;AAcqC,iBAdrC,EAcep6B,MAAM,CAAChN,KAAP,CAAa+jC,OAd5B;AAAA,sCAce/2B,MAAM,CAAChN,KAAP,CAAa+jC,OAd5B;AAAA;AAAA;AAAA,gBAkBgB,SAlBhB;AAAA,qBAkBoC;AAlBpC;AAAA;AAAA;AAAA;AAAA,eAuBU;AAvBV;AAAA,cAwBgB,SAxBhB;AAAA,iBAwBmCuD;AAxBnC;AAAA;AAAA;AAAA,oBAgCW;AACVH,QAAAA,QAAQ,EAAE,EADA;AAEViB,QAAAA,OAAO,EAAE5I,QAAQ,CAACx/B,KAFR;AAGV,4BAAoBy/B,gBAHV;AAIVL,QAAAA,KAAK,EAAEA,KAAK,CAACp/B;AAJH,OAhCX;AAAA,iBAsCQm/B,SAAS,CAACn/B,KAtClB;AAAA,iBAuCQiqC,SAvCR;AAAA,oBAwCW/K,SAAS,CAACl/B;AAxCrB;AA2CCqD,MAAAA,MAAM,EAAE,CAAC;AAAE89B,QAAAA;AAAF,OAAD;AAAA,mBAEKA,MAAM,CAACiJ,MAAP,KAAkB,CAFvB;AAAA,mBAIA/mC,MAAD,IACC8mC,kBAAkB,CAAC9mC,MAAD,EAAS89B,MAAT;AALlB,cA3CT;AAoDCuJ,MAAAA,SAAS,EAAE,CAAC;AAAEvJ,QAAAA;AAAF,OAAD;AAAA;AAAA,kBAGA,OAHA;AAAA,kBAIA,MAJA;AAAA,qBAKI,MAAMmJ,eAAe,CAACnJ,MAAD;AALzB;AAAA;AAAA,YASNA,MAAM,CAACkH,OAAP;AAAA,kBAEQ,OAFR;AAAA,kBAGQ,MAHR;AAAA,qBAIY,MAAMT,eAAe,CAACzG,MAAD;AAJjC;AAAA;AAAA,UATM,EAkBNA,MAAM,CAACmH,SAAP;AAAA,kBAEQ,OAFR;AAAA,kBAGQ,MAHR;AAAA;AAAA,qBAKY,MAAMkC,iBAAiB,CAACrJ,MAAD;AALnC;AAAA;AAAA,UAlBM;AAAA;AApDZ;AAAA,cAuFI,KAvFJ;AAwFgC,eAxFhC,EAwFSkG,eAAe,CAACrnC,KAxFzB;AAAA,oCAwFSqnC,eAAe,CAACrnC,KAxFzB;AAAA,mBAyFUq/B;AAzFV;AAAA,cA4FI,MA5FJ;AA6FiC,eA7FjC,EA6FSsI,gBAAgB,CAAC3nC,KA7F1B;AAAA,oCA6FS2nC,gBAAgB,CAAC3nC,KA7F1B;AAAA,gBA8FOuqC,cAAc,CAACvqC,KA9FtB;AAAA,mBA+FUq/B;AA/FV;AAAA,cAkGI,MAlGJ;AAmGiC,eAnGjC,EAmGSkI,gBAAgB,CAACvnC,KAnG1B;AAAA,oCAmGSunC,gBAAgB,CAACvnC,KAnG1B;AAAA,gBAoGOqqC,cAAc,CAACrqC;AApGtB,cAAP;AAwGD;;AA9LiC,CAAD,CAAnC;AAiMA,oBAAeX,KAAK,CAACE,gBAAN,CAAuB2qC,WAAvB,EAAoC,cAApC,CAAf;;ACtQA;;;;;;;AAUA,MAAMS,UAAU,GAAG,IAAIhkC,GAAJ,EAAnB;AAEA;;;;;SAIwBikC,OACtBtyB,MAAM,GAAG;AAET,MAAIqyB,UAAU,CAAC7jC,GAAX,CAAewR,MAAf,CAAJ,EAA4B;AAC1B,WAAOqyB,UAAU,CAAC7qC,GAAX,CAAewY,MAAf,CAAP;AACD;;AACD,QAAMuyB,OAAO,GAAGC,IAAI,EAApB;AACAH,EAAAA,UAAU,CAAC5qC,GAAX,CAAeuY,MAAf,EAAuBuyB,OAAvB;AACA,SAAOA,OAAP;AACD;;ACzBD;;;;;;;AAUA,MAAM3I,KAAG,GAAG;AACV;;;AAGA6I,EAAAA,eAAe,EAAG/yB,GAAD,IAAkBtV,MAAD;AAChC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANS;;AAOV;;;AAGAsoC,EAAAA,gBAAgB,EAAGhzB,GAAD,IAAkB5U,IAAD;AACjC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAZS;;AAaV;;;AAGA6nC,EAAAA,cAAc,EAAGjzB,GAAD,IAAkB5U,IAAD;AAC/B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAlBS;;AAmBV;;;AAGA8nC,EAAAA,cAAc,EAAGlzB,GAAD,IAAkBmzB,MAAD;AAC/B,WAAOzpC,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAMmzB,QAAtB,CAAP;AACD,GAxBS;;AAyBV;;;AAGAC,EAAAA,QAAQ,EAAGpzB,GAAD,IAAkB5U,IAAD;AACzB,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA9BS;;AA+BV;;;AAGAioC,EAAAA,cAAc,EAAGrzB,GAAD,IAAkBszB,IAAD;AAC/B,UAAMC,QAAQ,GAAG,IAAIC,QAAJ,EAAjB;AACAD,IAAAA,QAAQ,CAACE,MAAT,CAAgB,MAAhB,EAAwBH,IAAxB;AACA,WAAO5pC,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmBuzB,QAAnB,EAA6B;AAClCxpC,MAAAA,OAAO,EAAE;AAAE2pC,QAAAA,WAAW,EAAE;AAAf;AADyB,KAA7B,CAAP;AAGD;AAxCS,CAAZ;;ACRA;;;;SAGwBC;AACtB,SAAOC,kBAAkB,GAAIC,KAA7B;AACD;;ACPD;;;;;;;;AAQA;;;;;;SAMgBC,SAAS/C,UAAiBl/B,IAAYkiC,SAAS,GAAG;AAChE,QAAM3+B,IAAI,GAAI4+B,QAAD;AACX,QAAIC,IAAJ;AACAD,IAAAA,QAAQ,CAAC3+B,IAAT,CAAe1O,IAAD;AACZ,UAAIqkC,IAAI,GAAG,KAAX;;AACA,UAAIrkC,IAAI,CAACkL,EAAL,KAAYA,EAAhB,EAAoB;AAClBm5B,QAAAA,IAAI,GAAG,IAAP;AACAiJ,QAAAA,IAAI,GAAGttC,IAAP;AACD,OAHD,MAGO;AACL,cAAMuE,GAAG,GAAGkK,IAAI,CAACzO,IAAI,CAACotC,SAAD,CAAL,CAAhB;;AACA,YAAI7oC,GAAJ,EAAS;AACP8/B,UAAAA,IAAI,GAAG,IAAP;AACAiJ,UAAAA,IAAI,GAAG/oC,GAAP;AACD;AACF;;AACD,aAAO8/B,IAAP;AACD,KAbD;AAcA,WAAOiJ,IAAP;AACD,GAjBD;;AAmBA,SAAO7+B,IAAI,CAAC27B,QAAD,CAAX;AACD;AAED;;;;SAGgBmD,eAAenD;AAC7BA,EAAAA,QAAQ,CAACj/B,OAAT,CAAkBnL,IAAD;AACf,SAAK,MAAMgB,GAAX,IAAkBhB,IAAlB,EAAwB;AACtB,UAAIukC,KAAK,CAACiB,OAAN,CAAcxlC,IAAI,CAACgB,GAAD,CAAlB,CAAJ,EAA8B;AAC5BusC,QAAAA,cAAc,CAACvtC,IAAI,CAACgB,GAAD,CAAL,CAAd;AACD;;AACD,UAAIA,GAAG,KAAK,UAAR,IAAsBA,GAAG,KAAK,UAAlC,EAA8C;AAC5C,eAAOhB,IAAI,CAACgB,GAAD,CAAX;AACD;AACF;AACF,GATD;AAUD;AAED;;;;SAGgBwsC,cACd1F,MACA58B,IACAuiC,GAAG,GAAG,WACNhgC;AAEA,MAAIjE,MAAJ;AAEAs+B,EAAAA,IAAI,CAACp5B,IAAL,CAAW1O,IAAD;AACR,QAAIA,IAAI,CAACkL,EAAL,KAAYA,EAAhB,EAAoB;AAClB1B,MAAAA,MAAM,GAAGiE,GAAT;AACA,aAAO,IAAP;AACD;;AACD,QAAIggC,GAAG,IAAIztC,IAAX,EAAiB;AACfwJ,MAAAA,MAAM,GAAGgkC,aAAa,CAACxtC,IAAI,CAACytC,GAAD,CAAL,EAAYviC,EAAZ,EAAgBuiC,GAAhB,EAAqBztC,IAArB,CAAtB;;AACA,UAAIwJ,MAAM,IAAIjB,MAAM,CAACC,IAAP,CAAYgB,MAAZ,EAAoBnH,MAApB,GAA6B,CAA3C,EAA8C;AAC5C,eAAO,IAAP;AACD;;AACD,aAAO,KAAP;AACD;;AACD,WAAO,KAAP;AACD,GAbD;AAeA,SAAOmH,MAAP;AACD;;ACtDD,MAAMkkC,UAAU,GAAG1rC,eAAe,CAAC;AACjCjB,EAAAA,KAAK,EAAE;AACL4sC,IAAAA,YAAY,EAAE;AACZpsC,MAAAA,IAAI,EAAEC,MADM;AAEZf,MAAAA,OAAO,EAAE;AAFG,KADT;AAKL4/B,IAAAA,OAAO,EAAE;AACP9+B,MAAAA,IAAI,EAAEokC,QADC;AAEP9C,MAAAA,QAAQ,EAAE;AAFH,KALJ;AASL+K,IAAAA,QAAQ,EAAE;AACRrsC,MAAAA,IAAI,EAAEokC;AADE,KATL;AAYLkI,IAAAA,MAAM,EAAE;AACNtsC,MAAAA,IAAI,EAAEokC;AADA,KAZH;AAeLmI,IAAAA,QAAQ,EAAE;AACRvsC,MAAAA,IAAI,EAAEokC;AADE,KAfL;AAkBLoI,IAAAA,MAAM,EAAE;AACNxsC,MAAAA,IAAI,EAAEokC;AADA,KAlBH;AAqBLqI,IAAAA,KAAK,EAAE;AACLzsC,MAAAA,IAAI,EAAEokC;AADD,KArBF;AAwBLsI,IAAAA,MAAM,EAAE;AACN1sC,MAAAA,IAAI,EAAEokC;AADA,KAxBH;AA2BLuI,IAAAA,eAAe,EAAE;AACf3sC,MAAAA,IAAI,EAAE0hC,OADS;AAEfxiC,MAAAA,OAAO,EAAE;AAFM,KA3BZ;AA+BL0tC,IAAAA,iBAAiB,EAAE;AACjB5sC,MAAAA,IAAI,EAAEokC;AADW;AA/Bd,GAD0B;;AAoCjC1jC,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmsC,KAAK,GAAGF,QAAQ,EAAtB;AACA,UAAMoB,GAAG,GAAGnC,MAAM,CAAC,QAAD,CAAlB;AAEA,UAAMoC,UAAU,GAAG5rC,GAAG,CAAC,EAAD,CAAtB;AAEA,UAAM2nC,QAAQ,GAAG3nC,GAAG,CAAC,EAAD,CAApB;AACA,UAAM6rC,UAAU,GAAG7rC,GAAG,CAAC,EAAD,CAAtB;AAEA,UAAM+9B,SAAS,GAAG/9B,GAAG,CAAC,KAAD,CAArB;;AAGA,UAAM8rC,WAAW,GAAG5N,QAAQ,CAAC,MAAO6N,QAAP;AAC3BhO,MAAAA,SAAS,CAACn/B,KAAV,GAAkB,IAAlB;AACA,YAAMoD,IAAI,GAAG,MAAM1D,KAAK,CAACs/B,OAAN,CAAcgO,UAAU,CAAChtC,KAAzB,CAAnB;AACA+oC,MAAAA,QAAQ,CAAC/oC,KAAT,GAAiBoD,IAAjB;AACA6pC,MAAAA,UAAU,CAACjtC,KAAX,GAAmBoD,IAAnB;AACA+7B,MAAAA,SAAS,CAACn/B,KAAV,GAAkB,KAAlB;;AAEA,UAAI,CAACotC,YAAY,CAACptC,KAAb,CAAmBgB,MAAxB,EAAgC;AAC9BosC,QAAAA,YAAY,CAACptC,KAAb,CAAmB,CAAnB,IAAwBoD,IAAI,CAAC,CAAD,CAAJ,CAAQyG,EAAhC;AACAwjC,QAAAA,gBAAgB,CAAC,EAAD,EAAK;AAAEC,UAAAA,QAAQ,EAAE,IAAZ;AAAkBrB,UAAAA,IAAI,EAAE7oC,IAAI,CAAC,CAAD;AAA5B,SAAL,CAAhB;AACD;;AACD+pC,MAAAA,QAAQ;AACT,KAZ2B,EAYzB,GAZyB,CAA5B;AAaAD,IAAAA,WAAW;;AAEXrB,IAAAA,KAAK,CAAC0B,QAAN,GAAiBL,WAAjB;AAEA;;AACA,UAAME,YAAY,GAAGhsC,GAAG,CAAQ,EAAR,CAAxB;;AACA,UAAMisC,gBAAgB,GAAG,CAAClmC,IAAD,EAAY;AAAE8kC,MAAAA,IAAF;AAAQqB,MAAAA;AAAR,KAAZ;AACvB,UAAI,CAACA,QAAL,EAAe;AACb5tC,QAAAA,KAAK,CAAC6sC,QAAN,GAAiBhjC,SAAjB;AACD,OAFD,MAEO;AACL7J,QAAAA,KAAK,CAAC6sC,QAAN,GAAiBN,IAAjB;AACD;AACF,KAND;;;AAQAJ,IAAAA,KAAK,CAAC2B,SAAN,GAAkB;AAChB,YAAMvB,IAAI,GAAQH,QAAQ,CAAC/C,QAAQ,CAAC/oC,KAAV,EAAiBotC,YAAY,CAACptC,KAAb,CAAmB,CAAnB,CAAjB,CAA1B;AACA,YAAMytC,MAAM,GAAGtB,aAAa,CAACpD,QAAQ,CAAC/oC,KAAV,EAAiBisC,IAAI,CAACpiC,EAAtB,CAA5B;;AAGAwjC,MAAAA,gBAAgB,CAAC,EAAD,EAAK;AACnBpB,QAAAA,IAAI,EAAE,EAAE,GAAGA,IAAL;AAAWwB,UAAAA,MAAM,EAAE;AAAExB,YAAAA,IAAI,EAAEwB;AAAR;AAAnB,SADa;AAEnBH,QAAAA,QAAQ,EAAE;AAFS,OAAL,CAAhB;AAID,KATD;AAWA;AACA;;;AACA,UAAMI,cAAc,GAAG;AACrB,YAAMrM,GAAG,GAAG1+B,IAAI,CAACC,SAAL,CAAeqqC,UAAU,CAACjtC,KAA1B,EAAiC,IAAjC,EAAuC,CAAvC,CAAZ;AACA,YAAM+Y,IAAI,GAAG,IAAI40B,IAAJ,CAAS,CAACtM,GAAD,CAAT,CAAb;AACA,YAAMrpB,GAAG,GAAG41B,GAAG,CAACC,eAAJ,CAAoB90B,IAApB,CAAZ;AACA,YAAM+0B,GAAG,GAAGtnB,QAAQ,CAACunB,aAAT,CAAuB,GAAvB,CAAZ;AACAD,MAAAA,GAAG,CAACE,IAAJ,GAAWh2B,GAAX;AACA81B,MAAAA,GAAG,CAACG,QAAJ,GAAevuC,KAAK,CAAC4sC,YAArB;AACAwB,MAAAA,GAAG,CAACI,KAAJ;AACD,KARD;;;AAUA,UAAMC,UAAU,GAAIlC,IAAD;AACjB/G,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,YAAY8G,IAAI,CAACptC,QAFZ;;AAGZ,cAAMumC,IAAN;AACE1lC,UAAAA,KAAK,CAAC8sC,MAAN,GAAeP,IAAf;AACD;;AALW,OAAd;AAOD,KARD;;;AAUA,UAAMmC,UAAU,GAAIhrC,IAAD;AACjB1D,MAAAA,KAAK,CAACgtC,MAAN,GAAetpC,IAAf;AACD,KAFD;;;AAIA,UAAMirC,kBAAkB,GAAIjrC,IAAD;AACzB1D,MAAAA,KAAK,CAACitC,KAAN,GAAcvpC,IAAd;AACD,KAFD;;;AAKA,UAAMkrC,YAAY,GAAIrC,IAAD;AACnB/G,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,YAAY8G,IAAI,CAACptC,QAFZ;;AAGZ,cAAMumC,IAAN;AACE1lC,UAAAA,KAAK,CAAC+sC,QAAN,GAAiBR,IAAjB;AACD;;AALW,OAAd;AAOD,KARD;AAUA;;;AACA,UAAMsC,WAAW,GAAGntC,GAAG,CAAC,KAAD,CAAvB;;AACA,UAAMotC,UAAU,GAAInS,IAAD;AACjB,YAAMoS,OAAO,GAAGpS,IAAI,CAAC4P,IAAL,CAAUpiC,EAA1B;AACA,YAAM6kC,OAAO,GAAGrS,IAAI,CAACsS,QAAL,CAAc9kC,EAA9B;AACA,YAAM+kC,OAAO,GAAGvS,IAAI,CAAC4P,IAAL,CAAUxmC,GAAV,CAAcwT,KAAd,CAAoB,GAApB,CAAhB;AACA,YAAM41B,YAAY,GAChBxS,IAAI,CAACwS,YAAL,GAAoBzuC,MAAM,CAACwuC,OAAO,CAACA,OAAO,CAAC5tC,MAAR,GAAiB,CAAlB,CAAR,CAD5B;;AAEA,YAAM8tC,IAAI,GAAG,CAAC1rC,IAAD,EAAYyG,EAAZ,EAAiCsjC,QAAjC;AACX/pC,QAAAA,IAAI,CAAC0G,OAAL,CAAa,CAACnL,IAAD,EAAY2a,KAAZ;AACX,cAAI3a,IAAI,CAACkL,EAAL,KAAYA,EAAhB,EAAoB;AAClB,mBAAOsjC,QAAQ,CAACxuC,IAAD,EAAO2a,KAAP,EAAclW,IAAd,CAAf;AACD;;AACD,cAAIzE,IAAI,CAACuqC,OAAT,EAAkB;AAChB,mBAAO4F,IAAI,CAACnwC,IAAI,CAACuqC,OAAN,EAAer/B,EAAf,EAAmBsjC,QAAnB,CAAX;AACD;AACF,SAPD;AAQD,OATD;;AAUA,YAAM/pC,IAAI,GAAG,CAAC,GAAG2lC,QAAQ,CAAC/oC,KAAb,CAAb;;AAGA,UAAI+uC,OAAJ;AACAD,MAAAA,IAAI,CAAC1rC,IAAD,EAAOsrC,OAAP,EAAgB,CAAC/vC,IAAD,EAAY2a,KAAZ,EAA2B01B,GAA3B;AAClBA,QAAAA,GAAG,CAAC38B,MAAJ,CAAWiH,KAAX,EAAkB,CAAlB;AACAy1B,QAAAA,OAAO,GAAGpwC,IAAV;AACD,OAHG,CAAJ;;AAIA,UAAI,CAAC09B,IAAI,CAAC4S,SAAV,EAAqB;AACnB;AACAH,QAAAA,IAAI,CAAC1rC,IAAD,EAAOqrC,OAAP,EAAiB9vC,IAAD;AAClBA,UAAAA,IAAI,CAACuqC,OAAL,GAAevqC,IAAI,CAACuqC,OAAL,IAAgB,EAA/B;;AAEAvqC,UAAAA,IAAI,CAACuqC,OAAL,CAAagG,OAAb,CAAqBH,OAArB;AACD,SAJG,CAAJ;AAKD,OAPD,MAOO,IACL,CAAC1S,IAAI,CAAC4P,IAAL,CAAU/C,OAAV,IAAqB,EAAtB,EAA0BloC,MAA1B,GAAmC,CAAnC;AACAq7B,MAAAA,IAAI,CAAC4P,IAAL,CAAUkD,QADV;AAEAN,MAAAA,YAAY,KAAK,CAHZ;AAAA,QAIL;AACAC,QAAAA,IAAI,CAAC1rC,IAAD,EAAOqrC,OAAP,EAAiB9vC,IAAD;AAClBA,UAAAA,IAAI,CAACuqC,OAAL,GAAevqC,IAAI,CAACuqC,OAAL,IAAgB,EAA/B;;AAEAvqC,UAAAA,IAAI,CAACuqC,OAAL,CAAagG,OAAb,CAAqBH,OAArB;AACD,SAJG,CAAJ;AAKD,OAVM,MAUA;AACL,YAAIK,EAAE,GAAU,EAAhB;AACA,YAAIjwC,CAAC,GAAG,CAAR;AACA2vC,QAAAA,IAAI,CAAC1rC,IAAD,EAAOqrC,OAAP,EAAgB,CAACY,KAAD,EAAa/1B,KAAb,EAA4B01B,GAA5B;AAClBI,UAAAA,EAAE,GAAGJ,GAAL;AACA7vC,UAAAA,CAAC,GAAGma,KAAJ;AACD,SAHG,CAAJ;;AAIA,YAAIu1B,YAAY,KAAK,CAAC,CAAtB,EAAyB;AACvBO,UAAAA,EAAE,CAAC/8B,MAAH,CAAUlT,CAAV,EAAa,CAAb,EAAgB4vC,OAAhB;AACD,SAFD,MAEO;AACLK,UAAAA,EAAE,CAAC/8B,MAAH,CAAUlT,CAAC,GAAG,CAAd,EAAiB,CAAjB,EAAoB4vC,OAApB;AACD;AACF;;AAGD;AAEA;;;AACA,YAAMO,OAAO,GAAG,CAACrD,IAAD,EAAY3yB,KAAZ;AACd2yB,QAAAA,IAAI,CAACsD,IAAL,GAAYj2B,KAAK,GAAG,CAApB;;AACA,YAAI2yB,IAAI,CAAC/C,OAAL,CAAaloC,MAAjB,EAAyB;AACvBirC,UAAAA,IAAI,CAAC/C,OAAL,CAAap/B,OAAb,CAAqB,CAACsiC,GAAD,EAAWoD,GAAX;AACnBF,YAAAA,OAAO,CAAClD,GAAD,EAAMoD,GAAN,CAAP;AACD,WAFD;AAGD;AACF,OAPD;;;AAUA,YAAMtsC,GAAG,GAAGE,IAAI,CAAC1E,GAAL,CAAS,CAACC,IAAD,EAAY2a,KAAZ;AACnBg2B,QAAAA,OAAO,CAAC3wC,IAAD,EAAO2a,KAAP,CAAP;AACA3a,QAAAA,IAAI,CAACkL,EAAL,GAAUnE,QAAQ,CAAC/G,IAAI,CAACkL,EAAL,CAAQgM,OAAR,CAAgB,KAAhB,EAAuB,EAAvB,CAAD,CAAlB;AACAlX,QAAAA,IAAI,CAAC8B,QAAL,GAAgB9B,IAAI,CAACuqC,OAArB;AACA,eAAOvqC,IAAP;AACD,OALW,CAAZ;;AAQAe,MAAAA,KAAK,CAACktC,MAAN,GAAe1pC,GAAf;AACD,KA9ED;AAgFA;;;AACA,UAAMusC,aAAa,GAAG;AACpB,YAAMvC,WAAW,CAACrB,KAAK,CAAC2B,SAAP,CAAjB;AACD,KAFD;;AAGAkC,IAAAA,SAAS,CAAC,MAAM3C,GAAG,CAACtU,EAAJ,CAAO,cAAP,EAAuBgX,aAAvB,CAAP,CAAT;AACAE,IAAAA,eAAe,CAAC,MAAM5C,GAAG,CAACrU,GAAJ,CAAQ,cAAR,EAAwB+W,aAAxB,CAAP,CAAf;AAEA,WAAO;AAAA,eACM;AADN;AAAA,eAIM;AAAEvH,QAAAA,YAAY,EAAE;AAAhB,OAJN;AAAA,qBAKW,OALX;AAAA;AAAA;AAQ2B,aAR3B,EAQS8E,UAAU,CAAChtC,KARpB;AAAA,kCAQSgtC,UAAU,CAAChtC,KARpB;AAAA,kBASSktC;AATT;AAAA,eAYQ;AAZR,QAaAxtC,KAAK,CAACmtC,eAAN;AAAA,eAGY;AAAE+C,QAAAA,OAAO,EAAE;AAAX,OAHZ;AAAA,cAIU,MAJV;AAAA,iBAKc,MAAMlwC,KAAK,CAACotC,iBAAN;AALpB;AAAA;AAAA;AAAA,eAWY;AAAE8C,QAAAA,OAAO,EAAE;AAAX,OAXZ;AAAA,cAYU,MAZV;AAAA,iBAaclC;AAbd;AAAA;AAAA,QAbA;AAAA,eAkCQ;AAlCR;AAAA,kBAmCiBvO,SAAS,CAACn/B;AAnC3B;AAAA,sBAoCE+oC,QAAQ,CAAC/oC,KAAT,CAAegB,MAAf,GAAwB,CAAxB;AAAA,oBAEa;AAAE6uC,UAAAA,YAAY,EAAE;AAAhB,SAFb;AAAA;AAAA,qBAIctB,WAAW,CAACvuC,KAJ1B;AAAA;AAAA,sBAMe;AAAE+pC,UAAAA,QAAQ,EAAE,SAAZ;AAAuBpqC,UAAAA,GAAG,EAAE,IAA5B;AAAkCU,UAAAA,KAAK,EAAE;AAAzC,SANf;AAAA,oBAOa0oC,QAAQ,CAAC/oC,KAPtB;AAQiC,sBARjC,EAQaotC,YAAY,CAACptC,KAR1B;AAAA,2CAQaotC,YAAY,CAACptC,KAR1B;AAAA,oBASaqtC,gBATb;AAAA,kBAUWmB;AAVX;AAaKnuC,QAAAA,KAAK,EAAE,CAAC;AAAExB,UAAAA,IAAF;AAAQyuC,UAAAA,QAAR;AAAkBwC,UAAAA,QAAlB;AAA4BC,UAAAA;AAA5B,SAAD;AACL;AAAA,qBACc;AADd;AAAA,qBAEgB;AAFhB,cAEwBlxC,IAFxB,IAIKyuC,QAAQ,IAAIwC,QAAZ;AAAA,qBACa,WADb;AAAA,qBACgC;AAAEE,cAAAA,KAAK,EAAE;AAAT;AADhC;AAAA,uBAGe1uC,CAAD;AACPA,cAAAA,CAAC,CAAC2uC,eAAF;AACA5B,cAAAA,kBAAkB,CAAC0B,OAAD,CAAlB;AACD;AANN,oBAJL,EAcKzC,QAAQ,IAAI,CAACwC,QAAb;AAAA,qBACa,WADb;AAAA,qBACgC;AAAEE,cAAAA,KAAK,EAAE;AAAT;AADhC;AAAA,4BAIM,CAACD,OAAO,CAAC7G,OAAR,CAAgBloC,MAAjB,IACCtB,KAAK,CAAC8sC,MAAN,KAAiBjjC,SADlB;AAAA,yBAGejI,CAAD;AACPA,gBAAAA,CAAC,CAAC2uC,eAAF;AACA9B,gBAAAA,UAAU,CAAC4B,OAAD,CAAV;AACD;AANN,oBAJN;AAAA,yBAciBzuC,CAAD;AACPA,gBAAAA,CAAC,CAAC2uC,eAAF;AACA7B,gBAAAA,UAAU,CAAC2B,OAAD,CAAV;AACD;AAjBR,sBAoBM,CAACA,OAAO,CAAC7G,OAAR,CAAgBloC,MAAjB;AAAA,yBAEaM,CAAD;AACPA,gBAAAA,CAAC,CAAC2uC,eAAF;AACA3B,gBAAAA,YAAY,CAACyB,OAAD,CAAZ;AACD;AALJ,oBApBN,EA4BMA,OAAO,CAACG,KAAR,KAAkB,CAAlB;AAAA,yBAEa5uC,CAAD;AACPA,gBAAAA,CAAC,CAAC2uC,eAAF;AACA5B,gBAAAA,kBAAkB,CAAC0B,OAAD,CAAlB;AACD;AALJ,oBA5BN,EAoCM,CAAC/C,UAAU,CAAChtC,KAAZ;AAAA,yBAEasB,CAAD;AACPA,gBAAAA,CAAC,CAAC2uC,eAAF;AACD,eAJJ;AAAA,6BAKiB3uC,CAAD;AACXitC,gBAAAA,WAAW,CAACvuC,KAAZ,GAAoB,IAApB;AACD,eAPJ;AAAA,8BAQiB;AACZuuC,gBAAAA,WAAW,CAACvuC,KAAZ,GAAoB,KAApB;AACD;AAVJ,oBApCN;AAAA,cAdL;AAoED;AAlFN,+DApCF;AAAA,UAAP;AAgID;;AAxVgC,CAAD,CAAlC;;;;;;ACPA,MAAMmwC,SAAS,GAAG,CAChB;AAAEtxC,EAAAA,IAAI,EAAE,YAAR;AAAsB2C,EAAAA,IAAI,EAAE4uC;AAA5B,CADgB,EAEhB;AAAEvxC,EAAAA,IAAI,EAAE,YAAR;AAAsB2C,EAAAA,IAAI,EAAE6uC;AAA5B,CAFgB,EAGhB;AAAExxC,EAAAA,IAAI,EAAE,aAAR;AAAuB2C,EAAAA,IAAI,EAAE8uC;AAA7B,CAHgB,EAIhB;AAAEzxC,EAAAA,IAAI,EAAE,aAAR;AAAuB2C,EAAAA,IAAI,EAAE+uC;AAA7B,CAJgB,EAKhB;AAAE1xC,EAAAA,IAAI,EAAE,aAAR;AAAuB2C,EAAAA,IAAI,EAAEgvC;AAA7B,CALgB,CAAlB;AAQA,MAAMC,UAAU,GAAG9vC,eAAe,CAAC;AACjCQ,EAAAA,KAAK,EAAE,CAAC,cAAD,CAD0B;AAEjCzB,EAAAA,KAAK,EAAE;AACLM,IAAAA,KAAK,EAAE;AACLE,MAAAA,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT;AADD;AADF,GAF0B;;AAOjCQ,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAM8wC,WAAW,GAAGjxC,SAAS,CAACC,KAAD,EAAQ,OAAR,EAAiBE,IAAjB,CAA7B;AAEA,WAAO;AAAA;;AAAA;AACkC,eADlC,EACe8wC,WAAW,CAAC1wC,KAD3B;AAAA,oCACe0wC,WAAW,CAAC1wC,KAD3B;AAAA,2BAEFmwC,SAAS,CAACzxC,GAAV,CAAeC,IAAD;AAAA,eACSA,IAAI,CAACE;AADd;AAAA;AAAA,QAAd,CAFE;AAAA;AAAA;AAAA,KAAP;AASD;;AAnBgC,CAAD,CAAlC;;ACVA,MAAM8xC,gBAAgB,GAAGhwC,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLquC,IAAAA,MAAM,EAAE;AACNvtC,MAAAA,IAAI,EAAEgH,MADA;AAENs6B,MAAAA,QAAQ,EAAE;AAFJ,KALH;AASL6C,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AATN,GAFgC;;AAevC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMyC,OAAO,GAAGnjC,GAAG,EAAnB;AAEA,UAAM2gC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAM4kC,IAAI,GAAGpjC,GAAG,CAAC;AACfkC,MAAAA,IAAI,EAAE,EADS;AAEfzE,MAAAA,IAAI,EAAE,EAFS;AAGfmZ,MAAAA,GAAG,EAAE,EAHU;AAIfk4B,MAAAA,KAAK,EAAE,IAJQ;AAKf1uC,MAAAA,IAAI,EAAE+H;AALS,KAAD,CAAhB;;AAQA,UAAMq8B,YAAY,GAAG;AACnB,YAAMrB,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAM+K,cAAc,GAAGlxC,KAAK,CAAC+tC,MAAN,CAAa5jC,EAAb,CAAgBsO,UAAhB,CAA2B,KAA3B,CAAvB;AACA,YAAM+pB,KAAG,CAAC8I,gBAAJ,CAAqBnJ,MAAM,CAACiE,GAA5B,EAAiC,EACrC,GAAGtB,IAAI,CAACxkC,KAD6B;AAErCkwC,QAAAA,KAAK,EAAE9vC,MAAM,CAACokC,IAAI,CAACxkC,KAAL,CAAWkwC,KAAZ,CAFwB;AAGrCW,QAAAA,KAAK,EAAED,cAAc,GAAG,CAAH,GAAOlxC,KAAK,CAAC+tC,MAAN,CAAaoD,KAAb,GAAqB,CAHZ;AAIrCC,QAAAA,QAAQ,EAAEF,cAAc,GAAG,IAAH,GAAUlxC,KAAK,CAAC+tC,MAAN,CAAa5jC,EAJV;AAKrCm/B,QAAAA,SAAS,EAAEtpC,KAAK,CAAC+tC,MAAN,CAAazE;AALa,OAAjC,CAAN;AAOA16B,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACA5lC,MAAAA,KAAK,CAAC2kC,SAAN;AACAtC,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAbD;;;AAgBAqB,IAAAA,KAAK,CAAC0gC,SAAD,EAAah5B,GAAD;AACf,UAAI,CAACA,GAAL,EAAU;AACRw7B,QAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACD;AACF,KAJI,CAAL;AAMA,WAAO;AAAA,eACM;AADN;AAAA,eAGK,MAHL;AAAA;AAK0B,eAL1B,EAKS5C,SAAS,CAAC/hC,KALnB;AAAA,oCAKS+hC,SAAS,CAAC/hC,KALnB;AAAA,cAMK4lC;AANL;AAAA;AAAA,eAQYrB,OARZ;AAAA,oBAQ+B;AAAEyB,UAAAA,IAAI,EAAE;AAAR,SAR/B;AAAA,iBAQmDxB,IAAI,CAACxkC;AARxD;AAAA;AAAA,mBAUS,MAVT;AAAA,kBAWQ,MAXR;AAAA;AAAA,mBAaUuhC,eAAe,CAAC,MAAD;AAbzB;AAAA;AAeuC,mBAfvC,EAesBiD,IAAI,CAACxkC,KAAL,CAAWsD,IAfjC;AAAA,wCAesBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAfjC;AAAA;AAAA;AAAA,mBAkBS,MAlBT;AAAA,kBAmBQ,MAnBR;AAAA;AAAA,mBAqBUi+B,eAAe,CAAC,MAAD;AArBzB;AAAA;AAuBuC,mBAvBvC,EAuBsBiD,IAAI,CAACxkC,KAAL,CAAWnB,IAvBjC;AAAA,wCAuBsB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAvBjC;AAAA;AAAA;AAAA,mBA0BS,OA1BT;AAAA,kBA2BQ,KA3BR;AAAA;AAAA,mBA6BU0iC,eAAe,CAAC,OAAD;AA7BzB;AAAA;AA+BsC,mBA/BtC,EA+BsBiD,IAAI,CAACxkC,KAAL,CAAWgY,GA/BjC;AAAA,wCA+BsBwsB,IAAI,CAACxkC,KAAL,CAAWgY,GA/BjC;AAAA;AAAA;AAAA,mBAiCoB,MAjCpB;AAAA,kBAiCgC;AAjChC;AAAA;AAkCyC,qBAlCzC,EAkCuBwsB,IAAI,CAACxkC,KAAL,CAAWkwC,KAlClC;AAAA,0CAkCuB1L,IAAI,CAACxkC,KAAL,CAAWkwC,KAlClC;AAAA;AAAA;AAAA,mBAoCoB,MApCpB;AAAA,kBAoCgC;AApChC;AAAA;AAqC0C,mBArC1C,EAqCyB1L,IAAI,CAACxkC,KAAL,CAAWwB,IArCpC;AAAA,wCAqCyBgjC,IAAI,CAACxkC,KAAL,CAAWwB,IArCpC;AAAA;AAAA;AAAA;AAAA,QAAP;AA2CD;;AA/FsC,CAAD,CAAxC;;ACFA,MAAMuvC,gBAAgB,GAAGpwC,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AALN,GAFgC;;AAWvC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMkP,QAAQ,GAAG5vC,GAAG,CAAQ,EAAR,CAApB;AAEA,UAAM2gC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;;AAGA,UAAMgmC,YAAY,GAAG;AACnB,YAAM0F,IAAI,GAAG0F,QAAQ,CAAChxC,KAAT,CAAe,CAAf,CAAb;;AACA,UAAI,CAACsrC,IAAL,EAAW;AACT,eAAOh9B,OAAO,CAACrG,IAAR,CAAa,OAAb,CAAP;AACD;;AACD,YAAMi6B,KAAG,CAACmJ,cAAJ,CAAmBxJ,MAAM,CAACoP,MAA1B,EAAkC3F,IAAI,CAAC4F,aAAvC,CAAN;AACA5iC,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAvD,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACAN,MAAAA,KAAK,CAAC2kC,SAAN;AACD,KATD;;;AAYA,UAAM8M,QAAQ,GAAG;AACfH,MAAAA,QAAQ,CAAChxC,KAAT,GAAiB,EAAjB;AACD,KAFD;;AAIA,WAAO;AAAE+hC,MAAAA,SAAF;AAAa6D,MAAAA,YAAb;AAA2BoL,MAAAA,QAA3B;AAAqCG,MAAAA;AAArC,KAAP;AACD,GApCsC;;AAqCvCC,EAAAA,MAAM;AACJ;AAAA,eACa;AADb;AAAA,eAGY,UAHZ;AAIgC,eAJhC,EAIgB,KAAKrP,SAJrB;AAAA,oCAIgB,KAAKA,SAJrB;AAAA,cAKY,KAAK6D,YALjB;AAAA,kBAMgB,KAAKuL;AANrB;AAAA;AAAA,kBASe,kBATf;AAAA,oBAUkB,CAVlB;AAWiC,kBAXjC,EAWkB,KAAKH,QAXvB;AAAA,uCAWkB,KAAKA,QAXvB;AAAA,wBAYsB,YAAY;AAZlC;AAAA;AAAA,mBAciB;AAdjB;AAAA,mBAiBiB;AAjBjB;AAAA;AAAA;AAsBD;;AA5DsC,CAAD,CAAxC;;ACIA;;;;AAGA,MAAMK,cAAc,GAAG1wC,eAAe,CAAC;AACrCjB,EAAAA,KAAK,EAAE;AACL6sC,IAAAA,QAAQ,EAAE;AACRrsC,MAAAA,IAAI,EAAEokC;AADE,KADL;AAILoI,IAAAA,MAAM,EAAE;AACNxsC,MAAAA,IAAI,EAAEokC;AADA;AAJH,GAD8B;;AASrC1jC,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,IAAY8I,MAAM,CAAC,QAAD;AAElB,UAAM0G,OAAO,GAAGlwC,GAAG,EAAnB;AAEA,QAAIi+B,OAAJ;AAEAqQ,IAAAA,SAAS,CAAC,MAAOrQ,OAAO,GAAGiS,OAAO,CAACtxC,KAAR,CAAcutC,QAAhC,CAAT;;AAGA,UAAML,WAAW,GAAG,OAAOnJ,OAAO,GAAG,EAAjB;AAClB,YAAM;AAAE3gC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAAC6I,eAAJ,CAAoBlJ,MAAM,CAAC0P,IAA3B,EAAiC;AAAExN,QAAAA;AAAF,OAAjC,CAAvB;AACA,aAAO3gC,IAAI,CAAC1E,GAAL,CAAUC,IAAD;AACdA,QAAAA,IAAI,CAACE,IAAL,GAAYF,IAAI,CAACsqC,WAAjB;AACAtqC,QAAAA,IAAI,CAACkL,EAAL,GAAU,QAAQlL,IAAI,CAACqqC,SAAvB;AACArqC,QAAAA,IAAI,CAACmxC,QAAL,GAAgB,IAAhB;AACAnxC,QAAAA,IAAI,CAACuqC,OAAL,GAAevqC,IAAI,CAAC8B,QAApB;AACA,eAAO9B,IAAP;AACD,OANM,CAAP;AAOD,KATD;AAWA;;;AACA,UAAM0uC,gBAAgB,GAAIpB,IAAD;AACvBvsC,MAAAA,KAAK,CAAC6sC,QAAN,GAAiBN,IAAjB;AACD,KAFD;AAIA;AACA;;;AACA,UAAMkC,UAAU,GAAG,MAAOlC,IAAP;AACjB,YAAM/J,KAAG,CAAC8I,gBAAJ,CAAqBnJ,MAAM,CAACiE,GAA5B,EACJ9F,IAAI,CAACiM,IAAD,EAAO,IAAP,EAAa,MAAb,EAAqB,SAArB,CADA,CAAN;AAGA39B,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,MAAAA,OAAO;AACR,KAND;;;AAQA,UAAM+O,UAAU,GAAInC,IAAD;AACjBvsC,MAAAA,KAAK,CAACgtC,MAAN,GAAeT,IAAf;AACD,KAFD;;;AAIA,UAAMqC,YAAY,GAAG,MAAOrC,IAAP;AACnB,YAAM/J,KAAG,CAACgJ,cAAJ,CAAmBrJ,MAAM,CAAC76B,MAA1B,EAAkCilC,IAAI,CAACpiC,EAAvC,CAAN;AACAyE,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,MAAAA,OAAO;AACPgO,MAAAA,gBAAgB;AACjB,KALD;;;AAOA,UAAM,CAACmE,mBAAD,EAAsBnD,kBAAtB,EAA0CoD,aAA1C,IACJ1Q,sBAAsB,EADxB;AAGA;;AACA,UAAMyN,UAAU,GAAIprC,IAAD;AACjB;AACA8+B,MAAAA,KAAG,CACAkJ,QADH,CACYvJ,MAAM,CAAC0N,IADnB,EACyBnsC,IADzB,EAEG0J,IAFH,CAEQ;AACJwB,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,QAAAA,OAAO;AACR,OALH;AAMD,KARD;;;AAWA,UAAM,CAACqS,kBAAD,EAAqBC,iBAArB,IAA0C5Q,sBAAsB,EAAtE;AAEA,WAAO;AAAA,eACM;AADN;AAAA,aAGIuQ,OAHJ;AAAA;AAAA,sBAKY,WALZ;AAAA,iBAMQpE,WANR;AAAA,gBAOOiB,UAPP;AAAA,eAQME,kBARN;AAAA,gBASOD,UATP;AAAA,kBAUSE,YAVT;AAAA,gBAWOE,UAXP;AAAA,kBAYSnB,gBAZT;AAAA,2BAakBsE;AAblB;AAAA,mBAiBUtS,OAjBV;AAAA,gBAkBOoS,aAAa,CAACzxC,KAlBrB;AAmBoC,eAnBpC,EAmBSwxC,mBAAmB,CAACxxC,KAnB7B;AAAA,oCAmBSwxC,mBAAmB,CAACxxC,KAnB7B;AAAA;AAuBmC,eAvBnC,EAuBS0xC,kBAAkB,CAAC1xC,KAvB5B;AAAA,oCAuBS0xC,kBAAkB,CAAC1xC,KAvB5B;AAAA,mBAwBUq/B;AAxBV,cAAP;AA4BD;;AAvGoC,CAAD,CAAtC;;ACZA,MAAMuS,WAAW,GAAGjxC,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACL8B,IAAAA,IAAI,EAAE;AACJtB,MAAAA,IAAI,EAAEC,MADF;AAEJf,MAAAA,OAAO,EAAE;AAFL;AADD,GAD2B;;AAOlCwB,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAE6jC,IAAAA;AAAF,GAAR;AACH,WAAO;AAAA,eACO;AADP,QAEF7jC,KAAK,CAAC8B,IAAN,GAAaqwC,WAAW,CAAEC,KAAa,CAACpyC,KAAK,CAAC8B,IAAP,CAAf,EAA6B+hC,KAA7B,CAAxB,GAA8D,EAF5D,EAAP;AAKD;;AAbiC,CAAD,CAAnC;;ACSA,MAAMwO,UAAU,GAAGpxC,eAAe,CAAC;AACjCjB,EAAAA,KAAK,EAAE;AACLusC,IAAAA,IAAI,EAAE;AACJ/rC,MAAAA,IAAI,EAAEgH;AADF;AADD,GAD0B;;AAMjCtG,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAM+J,KAAK,GAAGF,QAAQ,EAAtB;AACA,UAAMoB,GAAG,GAAGnC,MAAM,CAAC,QAAD,CAAlB;AAEA,UAAMrG,OAAO,GAAGnjC,GAAG,EAAnB;AAEA;;AACA,UAAM4wC,MAAM,GAAG5wC,GAAG,CAAC,KAAD,CAAlB;AAEA,UAAMojC,IAAI,GAAGpjC,GAAG,CAAM,EAAN,CAAhB;;AAEA,UAAM6wC,SAAS,GAAG;AAChB,UAAIvyC,KAAK,CAACusC,IAAV,EAAgB;AACd+F,QAAAA,MAAM,CAAChyC,KAAP,GAAe,KAAf;AACAwkC,QAAAA,IAAI,CAACxkC,KAAL,GAAaykC,SAAS,CAAC,EACrB,IAAI/kC,KAAK,CAACusC,IAAN,CAAW8D,OAAX,IAAsBrwC,KAAK,CAACusC,IAAhC,CADqB;AAErBiE,UAAAA,KAAK,EAAExwC,KAAK,CAACusC,IAAN,CAAWiE,KAAX,KAAqB;AAFP,SAAD,CAAtB;AAIA8B,QAAAA,MAAM,CAAChyC,KAAP,GAAe,IAAf;AACD;AACF,KATD;;AAWA,UAAMkyC,UAAU,GAAG;AACjB,YAAM3N,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AAEA,YAAM3D,KAAG,CAAC+I,cAAJ,CAAmBpJ,MAAM,CAACkE,MAA1B,EAAkC,EACtC,GAAG/F,IAAI,CAACwE,IAAI,CAACxkC,KAAN,EAAa,SAAb,CAD+B;AAEtCkwC,QAAAA,KAAK,EAAE1L,IAAI,CAACxkC,KAAL,CAAWkwC,KAAX,GAAmB,CAAnB,GAAuB;AAFQ,OAAlC,CAAN;AAIA5hC,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAyH,MAAAA,GAAG,CAACntC,IAAJ,CAAS,cAAT;AACAoyC,MAAAA,MAAM,CAAChyC,KAAP,GAAe,KAAf;AACD,KAVD;AAYA;;;AACA6rC,IAAAA,KAAK,CAACsG,KAAN,GAAc;AACZF,MAAAA,SAAS;AACV,KAFD;;AAIA,WAAO;AACL;AAAA,iBACa;AADb,UAEKvyC,KAAK,CAACusC,IAAN;AAAA,iBAEc;AAFd;AAAA,iBAGiB;AAHjB;AAAA,wBAKQ+F,MAAM,CAAChyC,KAAP;AAAA,iBAGS,OAHT;AAAA,qBAIc,MAAOgyC,MAAM,CAAChyC,KAAP,GAAe;AAJpC;AAAA;AAAA;AAAA,iBAQiB,MARjB;AAAA,kBAQ6B,SAR7B;AAAA,qBAQgDkyC;AARhD;AAAA;AAAA;AAAA,iBAcO,MAdP;AAAA,kBAeQ,SAfR;AAAA,qBAgBYD,SAhBZ;AAAA,sBAiBavyC,KAAK,CAACusC,IAAN,CAAW6D;AAjBxB;AAAA;AAAA,UALR;AAAA;AAAA,iBA8BW,MA9BX;AAAA,eA+BUvL,OA/BV;AAAA,oBAgCe;AAAEyB,UAAAA,IAAI,EAAE;AAAR,SAhCf;AAAA,sBAiCgB,OAjChB;AAAA,iBAkCYxB,IAAI,CAACxkC;AAlCjB;AAAA;AAAA,mBAqCa,MArCb;AAAA,kBAsCY,MAtCZ;AAAA;AAAA,mBAwCcuhC,eAAe,CAAC,MAAD;AAxC7B;AAAA,0BA0CQyQ,MAAM,CAAChyC,KAAP;AACqC,mBADrC,EACoBwkC,IAAI,CAACxkC,KAAL,CAAWsD,IAD/B;AAAA,wCACoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAD/B;AAAA,gDAGQ5D,KAAK,CAACusC,IAAN,CAAW3oC,IAHnB,EA1CR;AAAA;AAAA,mBAiDa,MAjDb;AAAA,kBAkDY,MAlDZ;AAAA;AAAA,mBAoDci+B,eAAe,CAAC,MAAD;AApD7B;AAAA,0BAsDQyQ,MAAM,CAAChyC,KAAP;AACqC,mBADrC,EACoBwkC,IAAI,CAACxkC,KAAL,CAAWnB,IAD/B;AAAA,wCACoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAD/B;AAAA,gDAGQa,KAAK,CAACusC,IAAN,CAAWptC,IAHnB,EAtDR;AAAA;AAAA,mBA4DwB;AA5DxB;AAAA,qDA6Dca,KAAK,CAACusC,IAAN,EAAYwB,MAAZ,EAAoBxB,IAApB,EAA0BptC,IA7DxC;AAAA;AAAA,mBAgEa,OAhEb;AAAA,kBAiEY,KAjEZ;AAAA;AAAA,mBAmEc0iC,eAAe,CAAC,OAAD;AAnE7B;AAAA,0BAqEQyQ,MAAM,CAAChyC,KAAP;AACoC,mBADpC,EACoBwkC,IAAI,CAACxkC,KAAL,CAAWgY,GAD/B;AAAA,wCACoBwsB,IAAI,CAACxkC,KAAL,CAAWgY,GAD/B;AAAA,gDAGQtY,KAAK,CAACusC,IAAN,CAAWj0B,GAHnB,EArER;AAAA;AAAA,mBA2EwB,MA3ExB;AAAA,kBA2EoC;AA3EpC;AAAA,0BA4EQg6B,MAAM,CAAChyC,KAAP;AACuC,qBADvC,EACqBwkC,IAAI,CAACxkC,KAAL,CAAWkwC,KADhC;AAAA,0CACqB1L,IAAI,CAACxkC,KAAL,CAAWkwC,KADhC;AAAA,gDAGQxwC,KAAK,CAACusC,IAAN,CAAWiE,KAAX,GAAmB,IAAnB,GAA0B,IAHlC,EA5ER;AAAA;AAAA,mBAkFwB,MAlFxB;AAAA,kBAkFoC;AAlFpC;AAAA,0BAmFQ8B,MAAM,CAAChyC,KAAP;AACwC,mBADxC,EACuBwkC,IAAI,CAACxkC,KAAL,CAAWwB,IADlC;AAAA,wCACuBgjC,IAAI,CAACxkC,KAAL,CAAWwB,IADlC;AAAA;AAAA,oBAGoB9B,KAAK,CAACusC,IAAN,CAAWzqC;AAH/B,kBAnFR;AAAA;AAAA;AAAA,iBA4FiB;AAAE0O,UAAAA,QAAQ,EAAE;AAAZ,SA5FjB;AAAA,uBA4FoD;AA5FpD,cAFL;AAkGD,KAnGD;AAoGD;;AAnJgC,CAAD,CAAlC;;ACSA,MAAMs2B,aAAW,GAAY;AAC3B+K,EAAAA,IAAI,EAAE,sBADqB;AAE3BzL,EAAAA,GAAG,EAAE,uBAFsB;AAG3BC,EAAAA,MAAM,EAAE,yBAHmB;AAI3B/+B,EAAAA,MAAM,EAAE,0BAJmB;AAK3BuoC,EAAAA,IAAI,EAAE,8BALqB;AAM3B0B,EAAAA,MAAM,EAAE;AANmB,CAA7B;AASA;;;;AAGA,MAAMmB,WAAW,GAAGzxC,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD2B;;AAOlCwB,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG9mC,KAAK,CAACsY;AAA3B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAMwQ,SAAS,GAAGjxC,GAAG,EAArB;AACA,UAAMkxC,cAAc,GAAGlxC,GAAG,EAA1B;;AAEA,UAAMmxC,gBAAgB,GAAItG,IAAD,IAAgBqG,cAAc,CAACtyC,KAAf,GAAuBisC,IAAhE;;AAEA,UAAMuG,cAAc,GAAIvG,IAAD;AACrB;AACAoG,MAAAA,SAAS,CAACryC,KAAV,CAAgBmyC,KAAhB;AACD,KAHD;;AAKA,WAAO;AAAA,eACM;AADN;AAAA,eAGQ;AAHR;AAAA,kBAIyBI,gBAJzB;AAAA,gBAImDC;AAJnD;AAAA,eAMQ;AANR;AAAA,eAQQ;AARR;AAAA,aASgBH,SAThB;AAAA,cASiCC,cAAc,CAACtyC;AAThD,gBAAP;AAaD;;AAlCiC,CAAD,CAAnC;AAqCA,oBAAeX,KAAK,CAACE,gBAAN,CAAuB6yC,WAAvB,EAAoC,cAApC,CAAf;;AC7EA;;;;;;;AAUA,MAAMlQ,KAAG,GAAG;AACV;;;AAGAuQ,EAAAA,WAAW,EAAGz6B,GAAD,IAAkBtV,MAAD;AAC5B,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANS;;AAOV;;;AAGAgwC,EAAAA,gBAAgB,EAAG16B,GAAD,IAAkB5U,IAAD;AACjC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAZS;;AAaV;;;AAGAuvC,EAAAA,UAAU,EAAG36B,GAAD,IAAiB;AAC3B,UAAM;AAAE5U,MAAAA;AAAF,QAAW,MAAM1B,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AACvCtV,MAAAA,MAAM,EAAE;AAAEkwC,QAAAA,KAAK,EAAE;AAAT;AAD+B,KAAlB,CAAvB;AAGA,WAAOxvC,IAAI,CAACyvC,cAAL,IAAuB,EAA9B;AACD,GArBS;;AAsBV;;;AAGAC,EAAAA,gBAAgB,EAAG96B,GAAD,IAAkB5U,IAAD;AACjC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA3BS;;AA4BV;;;AAGA2vC,EAAAA,gBAAgB,EAAG/6B,GAAD,IAAkB5U,IAAD;AACjC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAjCS;;AAkCV;;;AAGA4vC,EAAAA,cAAc,EAAGh7B,GAAD,IAAkBi7B,SAAD;AAC/B,WAAOvxC,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAMi7B,WAAtB,CAAP;AACD;AAvCS,CAAZ;;ACVA;;;;;;;AAUA;;;;;;SAKwBC,cACtB5yC,MACA6yC;AAEA,QAAMtO,UAAU,GAAGhlC,QAAQ,CAAC;AAC1B,QAAIS,IAAI,KAAK,KAAb,EAAoB;AAClB,kBAAY6yC,YAAZ;AACD;;AACD,QAAI7yC,IAAI,KAAK,MAAb,EAAqB;AACnB,kBAAY6yC,YAAZ;AACD;;AACD,gBAAYA,YAAZ;AACD,GAR0B,CAA3B;AAUA,SAAOtO,UAAP;AACD;;AC9BD;;;;;;;SAWwBuO,aACtBrR,WACAsR,WACA/yC,MACAgzC;AAEA,QAAM/O,OAAO,GAAGnjC,GAAG,EAAnB;AACA,QAAMojC,IAAI,GAAGpjC,GAAG,CAAM,EAAN,CAAhB;AACAC,EAAAA,KAAK,CAAC0gC,SAAD,EAAY,MAAOh5B,GAAP;AACf;AACA,UAAMk5B,QAAQ,EAAd;;AAEA,QAAIl5B,GAAJ,EAAS;AACP,UAAIzI,IAAI,KAAK,KAAb,EAAoB;AAEpB,YAAMizC,WAAW,GAAG9O,SAAS,CAAC4O,SAAS,EAAV,CAA7B;AACAC,MAAAA,aAAa,IAAIA,aAAa,CAACC,WAAD,CAA9B;AACA/O,MAAAA,IAAI,CAACxkC,KAAL,GAAauzC,WAAb;AACD,KAND,MAMO;AACL;AACAhP,MAAAA,OAAO,CAACvkC,KAAR,EAAe2kC,WAAf;AACD;AACF,GAdI,CAAL;AAgBA,SAAO;AAAEJ,IAAAA,OAAF;AAAWC,IAAAA;AAAX,GAAP;AACD;;AClBD,MAAMgP,kBAAgB,GAAG7yC,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC,MADF;AAEJqhC,MAAAA,QAAQ,EAAE;AAFN,KALD;AASLL,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KATH;AAaLilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAbN,GAFgC;;AAmBvC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAMilC,UAAU,GAAGqO,aAAa,CAACxzC,KAAK,CAACY,IAAP,EAAa,IAAb,CAAhC;AAEA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;AAEA;;AACA,UAAMmzC,OAAO,GAAGryC,GAAG,CAAC,EAAD,CAAnB;;AACA,UAAMuxC,UAAU,GAAG;AACjB,YAAMlM,IAAI,GAAG,MAAMvE,KAAG,CAACyQ,UAAJ,CAAe9Q,MAAM,CAAC4R,OAAtB,GAAnB;AACAA,MAAAA,OAAO,CAACzzC,KAAR,GAAgBymC,IAAhB;AACD,KAHD;;AAIAkM,IAAAA,UAAU;AAEV,UAAM;AAAEnO,MAAAA,IAAF;AAAQD,MAAAA;AAAR,QAAoB6O,YAAY,CACpCrR,SADoC,EAEpC,MAAMriC,KAAK,CAACyhC,MAFwB,EAGpCzhC,KAAK,CAACY,IAH8B,CAAtC;AAMA;;AACA,UAAM4xC,UAAU,GAAG;AACjB,YAAM3N,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;;AACA,UAAInmC,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM4hC,KAAG,CAAC6Q,gBAAJ,CAAqBlR,MAAM,CAACiE,GAA5B,EAAiCtB,IAAI,CAACxkC,KAAtC,CAAN;AACAsO,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD,OAHD,MAGO,IAAI5lC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC,cAAM4hC,KAAG,CAAC4Q,gBAAJ,CAAqBjR,MAAM,CAACkE,MAA5B,EAAoC,EACxC,GAAGvB,IAAI,CAACxkC,KADgC;AAExC0zC,UAAAA,QAAQ,EAAE;AAF8B,SAApC,CAAN;AAIAplC,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD;;AACDvD,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACAN,MAAAA,KAAK,CAAC2kC,SAAN;AACD,KAdD;;AAgBA,WAAO;AAAA,eACM;AADN;AAAA,eAGMQ,UAAU,CAAC7kC,KAHjB;AAAA;AAK0B,eAL1B,EAKS+hC,SAAS,CAAC/hC,KALnB;AAAA,oCAKS+hC,SAAS,CAAC/hC,KALnB;AAAA;AAQCZ,MAAAA,OAAO,EAAE;AAAA,eACMmlC,OADN;AAAA,oBACyB;AAAEyB,UAAAA,IAAI,EAAE;AAAR,SADzB;AAAA,iBAC6CxB,IAAI,CAACxkC;AADlD;AAAA;AAAA,kBAGE,OAHF;AAAA;AAAA,mBAKG,MALH;AAAA,mBAMIuhC,eAAe,CAAC,MAAD;AANnB;AAAA,0BAQFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAawS,OADrB;AAAA,0BAIe;AACVrmC,cAAAA,KAAK,EAAE,MADG;AAEVtN,cAAAA,KAAK,EAAE,IAFG;AAGV+pC,cAAAA,QAAQ,EAAE;AAHA,aAJf;AAAA,wBASa0J,OAAO,CAACzzC,KATrB;AAU+B,mBAV/B,EAUawkC,IAAI,CAACxkC,KAAL,CAAW4zC,KAVxB;AAAA,wCAUapP,IAAI,CAACxkC,KAAL,CAAW4zC,KAVxB;AAAA,kBARE;AAAA;AAAA,kBAuBE,MAvBF;AAAA;AAAA,mBAyBG,MAzBH;AAAA,mBA0BIrS,eAAe,CAAC,MAAD;AA1BnB;AAAA,0BA4BFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAatiC,IADrB;AAGqC,mBAHrC,EAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,wCAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,kBA5BE;AAAA;AAAA,kBAkCa,QAlCb;AAAA,mBAkC4B;AAlC5B;AAAA,0BAmCFimC,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa0S,MADrB;AAG0C,mBAH1C,EAGuBrP,IAAI,CAACxkC,KAAL,CAAW6zC,MAHlC;AAAA,wCAGuBrP,IAAI,CAACxkC,KAAL,CAAW6zC,MAHlC;AAAA,kBAnCE;AAAA;AAAA,QARV;AAmDC/Q,MAAAA,MAAM,EAAE;AAAA;AAAA,qBAEe,MAAOf,SAAS,CAAC/hC,KAAV,GAAkB;AAFxC;AAAA;AAAA,YAKH,CAAC8kC,MAAM,CAAC9kC,KAAR;AAAA,kBACgB,SADhB;AAAA,qBACmCkyC;AADnC;AAAA;AAAA,UALG;AAAA;AAnDT,QAAP;AAmED;;AA9HsC,CAAD,CAAxC;;ACOA,MAAM1L,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,8BADqB;AAE3BX,EAAAA,GAAG,EAAE,4BAFsB;AAG3BC,EAAAA,MAAM,EAAE,4BAHmB;AAI3B/+B,EAAAA,MAAM,EAAE,6BAJmB;AAK3BysC,EAAAA,OAAO,EAAE,4BALkB;AAM3BzJ,EAAAA,YAAY,EAAE;AANa,CAA7B;AASA,MAAMrD,QAAM,GAAG,CACb;AACEtmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CADa,EAKb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CALa,EASb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CATa,EAab;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAba,EAiBb;AACEvmC,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAjBa,EAqBb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CArBa,EAyBb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEV,EAAAA,GAAG,EAAE,OAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CAzBa,EA8Bb;AACExmC,EAAAA,KAAK,EAAE,IADT;AAEEV,EAAAA,GAAG,EAAE,QAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CA9Ba,CAAf;AAqCA,MAAMiN,WAAW,GAAGnzC,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD2B;;AAOlCwB,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,UAAMoD,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG3lC,IAAI,CAACmX;AAA1B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAM2C,IAAI,GAAGpjC,GAAG,CAAC;AACf6lC,MAAAA,OAAO,EAAE;AADM,KAAD,CAAhB;AAIA,UAAM;AAAEzH,MAAAA,QAAF;AAAYJ,MAAAA,KAAZ;AAAmBK,MAAAA,gBAAnB;AAAqCN,MAAAA,SAArC;AAAgDE,MAAAA,OAAhD;AAAyDH,MAAAA;AAAzD,QACJH,YAAY,CACV,MACEmD,KAAG,CAACuQ,WAAJ,CAAgB5Q,MAAM,CAAC4E,IAAvB,EAA6B;AAC3BS,MAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KADS;AAE3BmnC,MAAAA,QAAQ,EAAE,EAFiB;AAG3BpD,MAAAA,OAAO,EAAES,IAAI,CAACxkC,KAAL,CAAWinC;AAHO,KAA7B,CAFQ,EAOV,aAPU,CADd;AAUA5H,IAAAA,OAAO;AAEP;;AACA,UAAM,CAACkI,gBAAD,EAAmB+C,eAAnB,EAAoCyJ,UAApC,IACJhT,sBAAsB,EADxB;AAEA;;AACA,UAAM,CAACsG,eAAD,EAAkBC,cAAlB,IAAoCvG,sBAAsB,EAAhE;AACA;;AACA,UAAM,CAAC4G,gBAAD,EAAmBC,eAAnB,EAAoCoM,UAApC,IACJjT,sBAAsB,EADxB;AAEA;;AACA,UAAMyJ,iBAAiB,GAAIrJ,MAAD;AACxB,UAAIA,MAAM,CAAC8S,aAAP,GAAuB,CAA3B,EAA8B;AAC5B,eAAO3lC,OAAO,CAAC4lC,OAAR,CAAgB,qBAAhB,CAAP;AACD;;AACDhP,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,YAAYhE,MAAM,CAACtiC,QAFd;;AAGZ,cAAMumC,IAAN;AACE,gBAAMlD,KAAG,CAAC8Q,cAAJ,CAAmBnR,MAAM,CAAC76B,MAA1B,EAAkCm6B,MAAM,CAACt3B,EAAzC,CAAN;AACAyE,UAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,UAAAA,OAAO;AACR;;AAPW,OAAd;AASD,KAbD;AAeA;;;AACA,UAAM8K,kBAAkB,GAAG,OAAOhJ,MAAP,EAAoBgT,OAApB;AACzB,UAAI,CAACA,OAAD,IAAYhT,MAAM,CAAC8S,aAAP,GAAuB,CAAvC,EAA0C;AACxC,eAAO3lC,OAAO,CAAC4lC,OAAR,CAAgB,qBAAhB,CAAP;AACD;;AACDhP,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,IADK;AAEZ8kC,QAAAA,OAAO,OAAOgP,OAAO,GAAG,IAAH,GAAU,OAFnB;;AAGZ,cAAM/O,IAAN;AACE,gBAAMlD,KAAG,CAACwQ,gBAAJ,CAAqB7Q,MAAM,CAACmI,YAA5B,EAA0C;AAC9CngC,YAAAA,EAAE,EAAEs3B,MAAM,CAACt3B,EADmC;AAE9CqmC,YAAAA,KAAK,EAAEiE,OAAO,GAAG,CAAH,GAAO;AAFyB,WAA1C,CAAN;AAIA7lC,UAAAA,OAAO,CAACg3B,OAAR,IAAmB6O,OAAO,GAAG,IAAH,GAAU,QAApC;AACA9U,UAAAA,OAAO;AACR;;AAVW,OAAd;AAYD,KAhBD;;AAkBA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ;AAFR;AAAA,eAGe;AAAEn6B,QAAAA,KAAK,EAAE,MAAT;AAAiBkvC,QAAAA,cAAc,EAAE;AAAjC;AAHf;AAAA;AAAA,gBAIgB,SAJhB;AAAA,mBAImC9M;AAJnC;AAAA;AAAA;AAAA,uBAQe,SARf;AAAA;AAAA;AAWiC,eAXjC,EAWa9C,IAAI,CAACxkC,KAAL,CAAWinC,OAXxB;AAAA,oCAWazC,IAAI,CAACxkC,KAAL,CAAWinC,OAXxB;AAAA,oBAYa5H;AAZb;AAAA;AAAA,iBAkBQF,SAAS,CAACn/B,KAlBlB;AAAA,oBAmBWk/B,SAAS,CAACl/B,KAnBrB;AAAA,iBAoBQ2mC,QApBR;AAAA,oBAqBW;AAAEvH,QAAAA,KAAK,EAAEA,KAAK,CAACp/B,KAAf;AAAsBq0C,QAAAA,QAAQ,EAAE5U;AAAhC;AArBX,OAsBQ;AACPyQ,MAAAA,KAAK,EAAE,CAAC;AAAE/O,QAAAA;AAAF,OAAD;AACL;AAAA,qBAEaA,MAAM,CAAC+O,KAAP,KAAiB,CAF9B;AAAA,qBAIO,CAACiE,OAAD,EAAmB7yC,CAAnB,KACC6oC,kBAAkB,CAAChJ,MAAD,EAASgT,OAAT;AAL1B;AASD,OAXM;AAYPlvB,MAAAA,MAAM,EAAE,CAAC;AAAEkc,QAAAA;AAAF,OAAD;AACN;AAAA,kBAGW,OAHX;AAAA,kBAIW,MAJX;AAAA,qBAKe,MAAMmJ,eAAe,CAACnJ,MAAD;AALpC;AAAA;AAAA;AAAA,kBAUW,OAVX;AAAA,kBAWW,MAXX;AAAA,qBAYe,MAAMyG,eAAe,CAACzG,MAAD;AAZpC;AAAA;AAAA;AAAA,kBAiBW,OAjBX;AAAA,kBAkBW,MAlBX;AAAA;AAAA,qBAoBe,MAAMqJ,iBAAiB,CAACrJ,MAAD;AApBtC;AAAA;AAAA;AA0BD;AAvCM,KAtBR;AAAA,cAkEI,MAlEJ;AAAA,gBAmEO4S,UAAU,CAAC/zC,KAnElB;AAoEiC,eApEjC,EAoESunC,gBAAgB,CAACvnC,KApE1B;AAAA,oCAoESunC,gBAAgB,CAACvnC,KApE1B;AAAA;AAAA,cAuEI,KAvEJ;AAwEgC,eAxEhC,EAwESqnC,eAAe,CAACrnC,KAxEzB;AAAA,oCAwESqnC,eAAe,CAACrnC,KAxEzB;AAAA,mBAyEUq/B;AAzEV;AAAA,cA4EI,MA5EJ;AAAA,gBA6EO2U,UAAU,CAACh0C,KA7ElB;AA8EiC,eA9EjC,EA8ES2nC,gBAAgB,CAAC3nC,KA9E1B;AAAA,oCA8ES2nC,gBAAgB,CAAC3nC,KA9E1B;AAAA,mBA+EUq/B;AA/EV,cAAP;AAmFD;;AAzJiC,CAAD,CAAnC;AA4JA,oBAAehgC,KAAK,CAACE,gBAAN,CAAuBu0C,WAAvB,EAAoC,cAApC,CAAf;;ACnOA;;;;;;;AAUA,MAAM5R,KAAG,GAAG;AACV;;;AAGAoS,EAAAA,iBAAiB,EAAGt8B,GAAD,IAAkBtV,MAAD;AAClC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANS;;AAOV;;;AAGA6xC,EAAAA,gBAAgB,EAAGv8B,GAAD,IAAkB5U,IAAD;AACjC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAZS;;AAaV;;;AAGAuvC,EAAAA,UAAU,EAAG36B,GAAD,IAAiB;AAC3B,UAAM;AAAE5U,MAAAA;AAAF,QAAW,MAAM1B,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AACvCtV,MAAAA,MAAM,EAAE;AAAEkwC,QAAAA,KAAK,EAAE;AAAT;AAD+B,KAAlB,CAAvB;AAGA,WAAOxvC,IAAI,CAACyvC,cAAL,IAAuB,EAA9B;AACD,GArBS;;AAsBV;;;AAGAJ,EAAAA,WAAW,EAAGz6B,GAAD,IAAkBtV,MAAD;AAC5B,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GA3BS;;AA4BV;;;AAGA09B,EAAAA,eAAe,EAAGpoB,GAAD,IAAkB47B,KAAD;AAChC,WAAOlyC,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AACvBtV,MAAAA,MAAM,EAAE;AAAE8xC,QAAAA,YAAY,EAAEZ;AAAhB;AADe,KAAlB,CAAP;AAGD,GAnCS;;AAoCV;;;AAGAa,EAAAA,cAAc,EAAGz8B,GAAD,IAAkB5U,IAAD;AAC/B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAzCS;;AA0CV;;;AAGAsxC,EAAAA,UAAU,EAAG18B,GAAD,IAAkB5U,IAAD;AAC3B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA/CS;;AAgDV;;;AAGAuxC,EAAAA,cAAc,EAAG38B,GAAD,IAAkBnO,EAAD;AAC/B,WAAOnI,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAMnO,IAAtB,CAAP;AACD;AArDS,CAAZ;;;;;;ACSA,MAAM2pC,gBAAgB,GAAG7yC,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC,MADF;AAEJqhC,MAAAA,QAAQ,EAAE;AAFN,KALD;AASLL,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KATH;AAaLilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAbN,GAFgC;;AAmBvC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAMilC,UAAU,GAAGqO,aAAa,CAACxzC,KAAK,CAACY,IAAP,EAAa,IAAb,CAAhC;AAEA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;AAEA,UAAM;AAAEkkC,MAAAA,IAAF;AAAQD,MAAAA;AAAR,QAAoB6O,YAAY,CACpCrR,SADoC,EAEpC,MAAMriC,KAAK,CAACyhC,MAFwB,EAGpCzhC,KAAK,CAACY,IAH8B,EAInC4K,CAAD;AACEA,MAAAA,CAAC,CAAC0pC,SAAF,GAAc1pC,CAAC,EAAE0pC,SAAH,EAAc37B,KAAd,CAAoB,GAApB,KAA4B,EAA1C;AACD,KANmC,CAAtC;AASA5X,IAAAA,KAAK,CAACmjC,IAAD,EAAO;AACVpE,MAAAA,eAAe,CAAC,KAAD,CAAf;AACD,KAFI,CAAL;AAIA;AACA;;AACA,UAAMqT,OAAO,GAAGryC,GAAG,CAAQ,EAAR,CAAnB;;AACA,UAAMuxC,UAAU,GAAG;AACjB,YAAMlM,IAAI,GAAG,MAAMvE,KAAG,CAACyQ,UAAJ,CAAe9Q,MAAM,CAAC4R,OAAtB,GAAnB;AACAA,MAAAA,OAAO,CAACzzC,KAAR,GAAgBymC,IAAhB;AACD,KAHD;;AAIAkM,IAAAA,UAAU;;AAGV,UAAM/N,YAAY,GAAGxjC,GAAG,CAAC,EAAD,CAAxB;;AAEA,UAAMg/B,eAAe,GAAG,OAAOyU,OAAO,GAAG,IAAjB;AACtB,UAAI,CAACrQ,IAAI,CAACxkC,KAAL,CAAW4zC,KAAhB,EAAuB;AACvB,YAAM;AAAExwC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAAC9B,eAAJ,CAAoByB,MAAM,CAACiT,OAA3B,EACrBtQ,IAAI,CAACxkC,KAAL,CAAW4zC,KADU,CAAvB;AAGAhP,MAAAA,YAAY,CAAC5kC,KAAb,GAAqBoD,IAArB;;AAEA,UAAIyxC,OAAJ,EAAa;AACXrQ,QAAAA,IAAI,CAACxkC,KAAL,CAAW40C,SAAX,GAAuB,EAAvB;AACApQ,QAAAA,IAAI,CAACxkC,KAAL,CAAW+0C,QAAX,GAAsBxrC,SAAtB;AACD;AACF,KAXD;;;AAcA,UAAMyrC,QAAQ,GAAG5zC,GAAG,CAAC,EAAD,CAApB;;AACA,UAAMqxC,WAAW,GAAG;AAClBvQ,MAAAA,KAAG,CACAuQ,WADH,CACe5Q,MAAM,CAACmT,QADtB,EACgC;AAAEpB,QAAAA,KAAK,EAAEpP,IAAI,CAACxkC,KAAL,CAAW4zC;AAApB,OADhC,EAEG9mC,IAFH,CAEQ,CAAC;AAAE1J,QAAAA;AAAF,OAAD,KAAe4xC,QAAQ,CAACh1C,KAAT,GAAiBoD,IAFxC;AAGD,KAJD;;AAMA/B,IAAAA,KAAK,CACH,MAAMmjC,IAAI,CAACxkC,KAAL,CAAW4zC,KADd,EAEF7qC,GAAD;AACE,UAAIA,GAAJ,EAAS0pC,WAAW;AACrB,KAJE,EAKH;AAAElxC,MAAAA,SAAS,EAAE;AAAb,KALG,CAAL;AAQA;;AACA,UAAM2wC,UAAU,GAAG;AACjB,YAAM3N,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAMziC,IAAI,GAAG,EACX,GAAGohC,IAAI,CAACxkC,KADG;AAEX40C,QAAAA,SAAS,EAAEpQ,IAAI,CAACxkC,KAAL,EAAY40C,SAAZ,EAAuBj6B,IAAvB,CAA4B,GAA5B,KAAoC;AAFpC,OAAb;;AAIA,UAAIjb,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM4hC,KAAG,CAACwS,UAAJ,CAAe7S,MAAM,CAACiE,GAAtB,EAA2B1iC,IAA3B,CAAN;AACAkL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD,OAHD,MAGO,IAAI5lC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC,cAAM4hC,KAAG,CAACuS,cAAJ,CAAmB5S,MAAM,CAACkE,MAA1B,EAAkC3iC,IAAlC,CAAN;AACAkL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD;;AACD5lC,MAAAA,KAAK,CAAC2kC,SAAN;AACAtC,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAfD;;AAiBA,WAAO;AACL;AAAA,iBACa;AADb;AAAA,iBAGa6kC,UAAU,CAAC7kC,KAHxB;AAAA;AAKiC,iBALjC,EAKgB+hC,SAAS,CAAC/hC,KAL1B;AAAA,sCAKgB+hC,SAAS,CAAC/hC,KAL1B;AAAA;AAQQZ,QAAAA,OAAO,EAAE;AAAA;;AAAA;AAAA,mBACMmlC,OADN;AAAA,wBACyB;AAAEyB,cAAAA,IAAI,EAAE;AAAR,aADzB;AAAA,qBAC6CxB,IAAI,CAACxkC;AADlD;AAAA;AAAA,sBAGE,MAHF;AAAA;AAAA,uBAKG,MALH;AAAA,uBAMIuhC,eAAe,CAAC,MAAD;AANnB;AAAA,8BAQFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa79B,IADrB;AAGqC,uBAHrC,EAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,4CAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,sBARE;AAAA;AAAA,sBAeE,OAfF;AAAA;AAAA,uBAiBG,MAjBH;AAAA,uBAkBIi+B,eAAe,CAAC,MAAD;AAlBnB;AAAA,8BAoBFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAawS,OADrB;AAAA,8BAIe;AACVrmC,kBAAAA,KAAK,EAAE,MADG;AAEVtN,kBAAAA,KAAK,EAAE,IAFG;AAGV+pC,kBAAAA,QAAQ,EAAE;AAHA,iBAJf;AAAA,4BASa0J,OAAO,CAACzzC,KATrB;AAU+B,uBAV/B,EAUawkC,IAAI,CAACxkC,KAAL,CAAW4zC,KAVxB;AAAA,4CAUapP,IAAI,CAACxkC,KAAL,CAAW4zC,KAVxB;AAAA,4BAWaxT;AAXb,sBApBE;AAAA;AAAA,sBAmCa,WAnCb;AAAA,uBAmC+B;AAnC/B;AAAA,8BAoCF0E,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa8T,WADrB;AAAA;AAKmC,uBALnC,EAKazQ,IAAI,CAACxkC,KAAL,CAAWizC,SALxB;AAAA,4CAKazO,IAAI,CAACxkC,KAAL,CAAWizC,SALxB;AAAA,mCAOI+B,QAAQ,CAACh1C,KAAT,CAAetB,GAAf,CAAoBC,IAAD;AAAA,uBACIA,IAAI,CAACkL;AADT;AAAA,gCAEflL,IAAI,CAACE,IAFU;AAAA,gBAAnB,CAPJ;AAAA;AAAA,gBApCE;AAAA;AAAA,sBAoDE,MApDF;AAAA;AAAA,uBAsDG,MAtDH;AAAA,uBAuDI0iC,eAAe,CAAC,MAAD;AAvDnB;AAAA,8BAyDFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAatiC,IADrB;AAGqC,uBAHrC,EAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,4CAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,sBAzDE;AAAA;AAAA,sBAgEE,WAhEF;AAAA;AAAA,uBAkEG,MAlEH;AAAA,uBAmEI0iC,eAAe,CAAC,MAAD;AAnEnB;AAAA,8BAqEFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa+T,WADrB;AAIS50C,gBAAAA,IAAI,EAAE;AAJf;AAAA,0BAKWuhC,MAAM,CAACiT,OALlB;AAAA,6BAMc;AAAEN,kBAAAA,YAAY,EAAEhQ,IAAI,CAACxkC,KAAL,CAAW4zC;AAA3B,iBANd;AAAA,iCAOkB,CAACpP,IAAI,CAACxkC,KAAL,CAAW+0C,QAAZ,CAPlB;AAQmC,uBARnC,EAQavQ,IAAI,CAACxkC,KAAL,CAAW40C,SARxB;AAAA,4CAQapQ,IAAI,CAACxkC,KAAL,CAAW40C,SARxB;AAAA,uBArEE;AAAA;AAAA,sBAkFE,UAlFF;AAAA;AAAA,uBAoFG,MApFH;AAAA,uBAqFIrT,eAAe,CAAC,MAAD;AArFnB;AAAA,8BAuFFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAagU,UADrB;AAAA,0BAIWtT,MAAM,CAACiT,OAJlB;AAAA,6BAKc;AAAEN,kBAAAA,YAAY,EAAEhQ,IAAI,CAACxkC,KAAL,CAAW4zC;AAA3B,iBALd;AAAA,iCAMkBpP,IAAI,CAACxkC,KAAL,CAAW40C,SAN7B;AAOkC,uBAPlC,EAOapQ,IAAI,CAACxkC,KAAL,CAAW+0C,QAPxB;AAAA,4CAOavQ,IAAI,CAACxkC,KAAL,CAAW+0C,QAPxB;AAAA,sBAvFE;AAAA;AAAA;AAAA,SARjB;AA4GQjS,QAAAA,MAAM,EAAE;AAAA;AAAA,uBAEe,MAAOf,SAAS,CAAC/hC,KAAV,GAAkB;AAFxC;AAAA;AAAA,cAKH,CAAC8kC,MAAM,CAAC9kC,KAAR;AAAA,oBACgB,SADhB;AAAA,uBACmCkyC;AADnC;AAAA;AAAA,YALG;AAAA;AA5GhB;AA4HD,KA7HD;AA8HD;;AAlOsC,CAAD,CAAxC;;ACUA,MAAM1L,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,gCADqB;AAE3BX,EAAAA,GAAG,EAAE,2BAFsB;AAG3BC,EAAAA,MAAM,EAAE,8BAHmB;AAI3B/+B,EAAAA,MAAM,EAAE,+BAJmB;AAK3BgjC,EAAAA,YAAY,EAAE,8BALa;AAM3ByJ,EAAAA,OAAO,EAAE,4BANkB;AAO3BuB,EAAAA,QAAQ,EAAE,iCAPiB;AAQ3BF,EAAAA,OAAO,EAAE;AARkB,CAA7B;AAWA,MAAMnO,QAAM,GAAG,CACb;AACEtmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CADa,EAKb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CALa,EASb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CATa,EAab;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAba,EAiBb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAjBa,EAqBb;AACEvmC,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CArBa,EAyBb;AACEvmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE;AAFb,CAzBa,EA6Bb;AACEvmC,EAAAA,KAAK,EAAE,IADT;AAEEiZ,EAAAA,KAAK,EAAE,OAFT;AAGEra,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CA7Ba,EAkCb;AACExmC,EAAAA,KAAK,EAAE,IADT;AAEEV,EAAAA,GAAG,EAAE,QAFP;AAGEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAHT,CAlCa,CAAf;AAyCA,MAAMuO,WAAW,GAAGz0C,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD2B;;AAOlCwB,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,UAAMoD,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG3lC,IAAI,CAACmX;AAA1B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAM2C,IAAI,GAAGpjC,GAAG,CAAC;AACf6lC,MAAAA,OAAO,EAAE;AADM,KAAD,CAAhB;AAIA,UAAM;AAAEzH,MAAAA,QAAF;AAAYJ,MAAAA,KAAZ;AAAmBK,MAAAA,gBAAnB;AAAqCN,MAAAA,SAArC;AAAgDE,MAAAA,OAAhD;AAAyDH,MAAAA;AAAzD,QACJH,YAAY,CACV,MACEmD,KAAG,CAACoS,iBAAJ,CAAsBzS,MAAM,CAAC4E,IAA7B,EAAmC;AACjCS,MAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KADe;AAEjCmnC,MAAAA,QAAQ,EAAE,EAFuB;AAGjCpD,MAAAA,OAAO,EAAES,IAAI,CAACxkC,KAAL,CAAWinC;AAHa,KAAnC,CAFQ,EAOV,eAPU,CADd;AAUA5H,IAAAA,OAAO;AAEP;;AACA,UAAM,CAACkI,gBAAD,EAAmB+C,eAAnB,EAAoCyJ,UAApC,IACJhT,sBAAsB,EADxB;AAEA;;AACA,UAAM,CAACsG,eAAD,EAAkBC,cAAlB,IAAoCvG,sBAAsB,EAAhE;AACA;;AACA,UAAM,CAAC4G,gBAAD,EAAmBC,eAAnB,EAAoCoM,UAApC,IACJjT,sBAAsB,EADxB;AAGA;;AACA,UAAMyJ,iBAAiB,GAAIrJ,MAAD;AACxB+D,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,YAAYhE,MAAM,CAACtiC,QAFd;;AAGZ,cAAMumC,IAAN;AACE,gBAAMlD,KAAG,CAACyS,cAAJ,CAAmB9S,MAAM,CAAC76B,MAA1B,EAAkCm6B,MAAM,CAACt3B,EAAzC,CAAN;AACAyE,UAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,UAAAA,OAAO;AACR;;AAPW,OAAd;AASD,KAVD;AAYA;;;AACA,UAAM8K,kBAAkB,GAAG,OAAOhJ,MAAP,EAAoBgT,OAApB;AACzBjP,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,IADK;AAEZ8kC,QAAAA,OAAO,OAAOgP,OAAO,GAAG,IAAH,GAAU,OAFnB;;AAGZ,cAAM/O,IAAN;AACE,gBAAMlD,KAAG,CAACqS,gBAAJ,CAAqB1S,MAAM,CAACmI,YAA5B,EAA0C;AAC9CngC,YAAAA,EAAE,EAAEs3B,MAAM,CAACt3B,EADmC;AAE9CqmC,YAAAA,KAAK,EAAEiE,OAAO,GAAG,CAAH,GAAO;AAFyB,WAA1C,CAAN;AAIA7lC,UAAAA,OAAO,CAACg3B,OAAR,IAAmB6O,OAAO,GAAG,IAAH,GAAU,QAApC;AACA9U,UAAAA,OAAO;AACR;;AAVW,OAAd;AAYD,KAbD;;AAeA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ;AAFR;AAAA,eAGe;AAAEn6B,QAAAA,KAAK,EAAE,MAAT;AAAiBkvC,QAAAA,cAAc,EAAE;AAAjC;AAHf;AAAA;AAAA,gBAIgB,SAJhB;AAAA,mBAImC9M;AAJnC;AAAA;AAAA;AAAA,uBAQe,SARf;AAAA;AAAA;AAWiC,eAXjC,EAWa9C,IAAI,CAACxkC,KAAL,CAAWinC,OAXxB;AAAA,oCAWazC,IAAI,CAACxkC,KAAL,CAAWinC,OAXxB;AAAA,oBAYa5H;AAZb;AAAA;AAAA,iBAkBQF,SAAS,CAACn/B,KAlBlB;AAAA,oBAmBWk/B,SAAS,CAACl/B,KAnBrB;AAAA,iBAoBQ2mC,QApBR;AAAA,oBAqBW;AAAEvH,QAAAA,KAAK,EAAEA,KAAK,CAACp/B,KAAf;AAAsBq0C,QAAAA,QAAQ,EAAE5U;AAAhC;AArBX,OAsBQ;AACPyQ,MAAAA,KAAK,EAAE,CAAC;AAAE/O,QAAAA;AAAF,OAAD;AACL;AAAA,qBAEaA,MAAM,CAAC+O,KAAP,KAAiB,CAF9B;AAAA,qBAIO,CAACiE,OAAD,EAAmB7yC,CAAnB,KACC6oC,kBAAkB,CAAChJ,MAAD,EAASgT,OAAT;AAL1B;AASD,OAXM;AAYPlvB,MAAAA,MAAM,EAAE,CAAC;AAAEkc,QAAAA;AAAF,OAAD;AACN;AAAA;AAAA,oBAGW,OAHX;AAAA,oBAIW,MAJX;AAAA,uBAKe,MAAMmJ,eAAe,CAACnJ,MAAD;AALpC;AAAA;AAAA;AAAA,oBAUW,OAVX;AAAA,oBAWW,MAXX;AAAA,uBAYe,MAAMyG,eAAe,CAACzG,MAAD;AAZpC;AAAA;AAAA;AAAA,oBAiBW,OAjBX;AAAA,oBAkBW,MAlBX;AAAA;AAAA,uBAoBe,MAAMqJ,iBAAiB,CAACrJ,MAAD;AApBtC;AAAA;AAAA;AAAA;AA0BD;AAvCM,KAtBR;AAAA,cAkEI,MAlEJ;AAAA,gBAmEO4S,UAAU,CAAC/zC,KAnElB;AAoEiC,eApEjC,EAoESunC,gBAAgB,CAACvnC,KApE1B;AAAA,oCAoESunC,gBAAgB,CAACvnC,KApE1B;AAAA;AAAA,cAuEI,KAvEJ;AAwEgC,eAxEhC,EAwESqnC,eAAe,CAACrnC,KAxEzB;AAAA,oCAwESqnC,eAAe,CAACrnC,KAxEzB;AAAA,mBAyEUq/B;AAzEV;AAAA,cA4EI,MA5EJ;AAAA,gBA6EO2U,UAAU,CAACh0C,KA7ElB;AA8EiC,eA9EjC,EA8ES2nC,gBAAgB,CAAC3nC,KA9E1B;AAAA,oCA8ES2nC,gBAAgB,CAAC3nC,KA9E1B;AAAA,mBA+EUq/B;AA/EV,cAAP;AAmFD;;AApJiC,CAAD,CAAnC;AAuJA,oBAAehgC,KAAK,CAACE,gBAAN,CAAuB61C,WAAvB,EAAoC,cAApC,CAAf;;ACxOA;;;;;;;AASA,MAAMlT,KAAG,GAAG;AACV;;;AAGAmT,EAAAA,UAAU,EAAGr9B,GAAD,IAAkBtV,MAAD;AAC3B,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GANS;;AAOV;;;AAGA4yC,EAAAA,eAAe,EAAGt9B,GAAD,IAAkB5U,IAAD;AAChC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAZS;;AAcV;;;AAGAmyC,EAAAA,eAAe,EAAGv9B,GAAD,IAAkB5U,IAAD;AAChC,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAnBS;;AAoBV;;;AAGAoyC,EAAAA,aAAa,EAAGx9B,GAAD,IAAkBw8B,YAAD;AAC9B,WAAO9yC,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAMw8B,cAAtB,CAAP;AACD,GAzBS;;AA0BV;;;AAGAiB,EAAAA,wBAAwB,EACrBz9B,GAAD,IACA,CAACw8B,YAAD,EAAuBkB,WAAsB,CAA7C;AACE,WAAOh0C,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AACvBtV,MAAAA,MAAM,EAAE;AAAE8xC,QAAAA,YAAF;AAAgBkB,QAAAA;AAAhB;AADe,KAAlB,CAAP;AAGD,GAnCO;;AAqCV;;;AAGAC,EAAAA,WAAW,EAAG39B,GAAD,IAAkB5U,IAAD;AAC5B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA1CS;;AA4CV;;;AAGAwyC,EAAAA,SAAS,EAAG59B,GAAD,IAAkBtV,MAAD;AAC1B,WAAOhB,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAMtV,QAAtB,CAAP;AACD,GAjDS;;AAmDV;;AACA;;;AAGA09B,EAAAA,eAAe,EAAGpoB,GAAD,IAAkBtV,MAAD;AAChC,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD,GAzDS;;AA0DV;;;AAGA+vC,EAAAA,WAAW,EAAGz6B,GAAD,IAAiB;AAC5B,WAAOtW,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,CAAP;AACD,GA/DS;;AAgEV;;;AAGA69B,EAAAA,iBAAiB,EAAG79B,GAAD,IAAkB8oB,UAAD;AAClC,WAAOp/B,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAM8oB,YAAtB,CAAP;AACD,GArES;;AAsEV;;;AAGAgV,EAAAA,aAAa,EAAG99B,GAAD,IAAkB5U,IAAD;AAC9B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GA3ES;;AA4EV;;;AAGA2yC,EAAAA,cAAc,EAAG/9B,GAAD,IAAkB5U,IAAD;AAC/B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GAjFS;;AAkFV;;;AAGA4yC,EAAAA,kBAAkB,EAAGh+B,GAAD,IAAkB8oB,UAAD;AACnC,WAAOp/B,QAAQ,CAAC5B,GAAT,IAAgBkY,MAAM8oB,YAAtB,CAAP;AACD;AAvFS,CAAZ;;ACkBA,MAAMmV,oBAAoB,GAAGt1C,eAAe,CAAC;AAC3CQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CADoC;AAE3CzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC,MADF;AAEJqhC,MAAAA,QAAQ,EAAE;AAFN,KALD;AASLL,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KATH;AAaLw0C,IAAAA,KAAK,EAAE;AACL1zC,MAAAA,IAAI,EAAE,CAACE,MAAD,EAASD,MAAT;AADD,KAbF;AAgBLkkC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAhBN,GAFoC;;AAsB3C1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAMilC,UAAU,GAAGqO,aAAa,CAACxzC,KAAK,CAACY,IAAP,EAAa,IAAb,CAAhC;AAEA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;AAEA;;AACA,UAAMkkC,IAAI,GAAGpjC,GAAG,CAAM,EAAN,CAAhB;AACA,UAAMmjC,OAAO,GAAGnjC,GAAG,EAAnB;AACAC,IAAAA,KAAK,CAAC0gC,SAAD,EAAY,MAAOh5B,GAAP;AACf,UAAI,CAACA,GAAL,EAAU;AACRw7B,QAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACA;AACD;;AACD,YAAM1C,QAAQ,EAAd;;AACA,UAAIviC,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM;AAAE8C,UAAAA;AAAF,YAAW,MAAM8+B,KAAG,CAAC2T,iBAAJ,CAAsBhU,MAAM,CAACqU,SAA7B,EACrBx2C,KAAK,CAACyhC,MAAN,CAAat3B,EADQ,CAAvB;AAGAzG,QAAAA,IAAI,CAAC+yC,UAAL,GAAkB/yC,IAAI,EAAE+yC,UAAN,EAAkBl9B,KAAlB,CAAwB,GAAxB,KAAgC,EAAlD;AACA7V,QAAAA,IAAI,CAACs/B,QAAL,GAAgB0T,KAAK,CAAChzC,IAAI,CAACs/B,QAAN,CAArB;AACA8B,QAAAA,IAAI,CAACxkC,KAAL,GAAaoD,IAAb;AACD;AACF,KAdI,CAAL;AAgBA;;AACA,UAAM8uC,UAAU,GAAG;AACjB,YAAM3N,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAMziC,IAAI,GAAG,EACX,GAAGohC,IAAI,CAACxkC,KADG;AAEXm2C,QAAAA,UAAU,EAAE3R,IAAI,CAACxkC,KAAL,EAAYm2C,UAAZ,EAAwBx7B,IAAxB,CAA6B,GAA7B,KAAqC,EAFtC;AAGX+nB,QAAAA,QAAQ,EAAE8B,IAAI,CAACxkC,KAAL,CAAW0iC,QAAX,CAAoB2T,MAApB,CAA2B,qBAA3B,CAHC;AAIXzC,QAAAA,KAAK,EAAEl0C,KAAK,CAACyhC,MAAN,EAAcyS,KAAd,IAAuBl0C,KAAK,CAACk0C;AAJzB,OAAb;;AAOA,UAAIl0C,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM4hC,KAAG,CAAC4T,aAAJ,CAAkBjU,MAAM,CAACyU,MAAzB,EAAiClzC,IAAjC,CAAN;AACAkL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD,OAHD,MAGO,IAAI5lC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC,cAAM4hC,KAAG,CAAC6T,cAAJ,CAAmBlU,MAAM,CAAC0U,SAA1B,EAAqCnzC,IAArC,CAAN;AACAkL,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD;;AACD5lC,MAAAA,KAAK,CAAC2kC,SAAN;AACAtC,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAlBD;;AAoBA,WAAO;AACL;AAAA,iBACa;AADb;AAAA,iBAGa,GAHb;AAAA,iBAIa6kC,UAAU,CAAC7kC,KAJxB;AAAA;AAMiC,iBANjC,EAMgB+hC,SAAS,CAAC/hC,KAN1B;AAAA,sCAMgB+hC,SAAS,CAAC/hC,KAN1B;AAAA;AASQZ,QAAAA,OAAO,EAAE;AAAA,iBAEAmlC,OAFA;AAAA,sBAGK;AAAEiS,YAAAA,KAAK,EAAE;AAAEtxC,cAAAA,KAAK,EAAE;AAAT;AAAT,WAHL;AAAA,mBAIEs/B,IAAI,CAACxkC;AAJP;AAAA;AAAA;AAAA,sBAOU;AAPV;AAAA;AAAA,wBASM,MATN;AAAA;AAAA,yBAWO,QAXP;AAAA,yBAYQuhC,eAAe,CAAC,IAAD;AAZvB;AAAA,gCAcEuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWsD,IADnB;AAGqC,yBAHrC,EAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,8CAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,wBAdF;AAAA;AAAA;AAAA,sBAqBU;AArBV;AAAA;AAAA,wBAuBM,MAvBN;AAAA;AAAA,yBAyBO,IAzBP;AAAA,yBA0BQi+B,eAAe,CAAC,IAAD;AA1BvB;AAAA,gCA4BEuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWnB,IADnB;AAGqC,yBAHrC,EAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,8CAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,wBA5BF;AAAA;AAAA;AAAA,sBAmCU;AAnCV;AAAA;AAAA,wBAqCM,KArCN;AAAA;AAAA,yBAuCO,IAvCP;AAAA,yBAwCQ0iC,eAAe,CAAC,IAAD;AAxCvB;AAAA,gCA0CEuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWsiC,GAAX,GAAiB,GAAjB,GAAuB,GAD/B;AAGqC,yBAHrC,EAGqBkC,IAAI,CAACxkC,KAAL,CAAWsiC,GAHhC;AAAA,8CAGqBkC,IAAI,CAACxkC,KAAL,CAAWsiC,GAHhC;AAAA;AAAA;AAAA,2BAIyB;AAJzB;AAAA;AAAA;AAAA,2BAKyB;AALzB;AAAA;AAAA;AAAA,kBA1CF;AAAA;AAAA;AAAA,sBAoDU;AApDV;AAAA;AAAA,wBAsDM,KAtDN;AAAA;AAAA,yBAwDO,IAxDP;AAAA,yBAyDQf,eAAe,CAAC,IAAD;AAzDvB;AAAA,gCA2DEuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWuiC,GADnB;AAAA,yBAIQ,CAJR;AAAA,8BAKa,KALb;AAM6B,yBAN7B,EAMaiC,IAAI,CAACxkC,KAAL,CAAWuiC,GANxB;AAAA,8CAMaiC,IAAI,CAACxkC,KAAL,CAAWuiC,GANxB;AAAA,wBA3DF;AAAA;AAAA;AAAA,sBAsEU;AAtEV;AAAA;AAAA,wBAwEM,aAxEN;AAAA;AAAA,yBA0EO,IA1EP;AAAA,yBA2EQhB,eAAe,CAAC,IAAD;AA3EvB;AAAA,gCA6EEuD,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWwiC,WADnB;AAIqC,yBAJrC,EAIagC,IAAI,CAACxkC,KAAL,CAAWwiC,WAJxB;AAAA,8CAIagC,IAAI,CAACxkC,KAAL,CAAWwiC,WAJxB;AAAA,wBA7EF;AAAA;AAAA;AAAA,sBAsFU;AAtFV;AAAA;AAAA,wBAwFM,cAxFN;AAAA,yBAyFO,MAzFP;AAAA,yBA0FQ,CACL;AACEiU,kBAAAA,OAAO,EAAE,0CADX;AAEEnoC,kBAAAA,OAAO,EAAE;AAFX,iBADK;AA1FR;AAAA,gCAiGEw2B,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAWyiC,YADnB;AAIsC,yBAJtC,EAIa+B,IAAI,CAACxkC,KAAL,CAAWyiC,YAJxB;AAAA,8CAIa+B,IAAI,CAACxkC,KAAL,CAAWyiC,YAJxB;AAAA,wBAjGF;AAAA;AAAA;AAAA,sBA0GU;AA1GV;AAAA;AAAA,wBA4GM,UA5GN;AAAA;AAAA,yBA8GO,MA9GP;AAAA,yBA+GQlB,eAAe,CAAC,MAAD;AA/GvB;AAAA,gCAiHEuD,MAAM,CAAC9kC,KAAP,8BAEIwkC,IAAI,CAACxkC,KAAL,CAAW0iC,QAAX,EAAqB2T,MAArB,CAA4B,YAA5B,CAFJ;AAAA,4BAMU,YANV;AAAA,kCAOkBK,IAAD,IACZA,IAAI,IAAIA,IAAI,EAAEC,OAAN,CAAcP,KAAK,EAAnB,CARb;AAUkC,yBAVlC,EAUa5R,IAAI,CAACxkC,KAAL,CAAW0iC,QAVxB;AAAA,8CAUa8B,IAAI,CAACxkC,KAAL,CAAW0iC,QAVxB;AAAA,wBAjHF;AAAA;AAAA;AAAA,sBAgIU;AAhIV;AAAA;AAAA,wBAkIM,QAlIN;AAAA;AAAA,yBAoIO,KApIP;AAAA,yBAqIQ,CACLnB,eAAe,CAAC,KAAD,CADV,EAEL;AACEkV,kBAAAA,OAAO,EACL,wEAFJ;AAGEnoC,kBAAAA,OAAO,EAAE;AAHX,iBAFK;AArIR;AAAA,gCA8IEw2B,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW2iC,MADnB;AAGuC,yBAHvC,EAGoB6B,IAAI,CAACxkC,KAAL,CAAW2iC,MAH/B;AAAA,8CAGoB6B,IAAI,CAACxkC,KAAL,CAAW2iC,MAH/B;AAAA,wBA9IF;AAAA;AAAA;AAAA,sBAqJU;AArJV;AAAA;AAAA,wBAsJiB,QAtJjB;AAAA,yBAsJgC;AAtJhC;AAAA,gCAuJEmC,MAAM,CAAC9kC,KAAP,8BACQwkC,IAAI,CAACxkC,KAAL,CAAW4iC,QADnB;AAISgU,kBAAAA,UAAU,EAAE;AAJrB;AAAA,4BAKW/U,MAAM,CAACgV,SALlB;AAAA,+BAMc;AACTrC,oBAAAA,YAAY,EAAE90C,KAAK,CAACyhC,MAAN,EAAcyS,KAAd,IAAuBl0C,KAAK,CAACk0C,KADlC;AAET8B,oBAAAA,QAAQ,EAAE;AAFD,mBANd;AAUgC,yBAVhC,EAUalR,IAAI,CAACxkC,KAAL,CAAW82C,MAVxB;AAAA,8CAUatS,IAAI,CAACxkC,KAAL,CAAW82C,MAVxB;AAAA,yBAvJF;AAAA;AAAA;AAAA,sBAsKU;AAtKV;AAAA;AAAA,wBAwKM,YAxKN;AAAA;AAAA,yBA0KO,MA1KP;AAAA,yBA2KQvV,eAAe,CAAC,MAAD;AA3KvB;AAAA,gCA6KEuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa0B,YADrB;AAISviC,kBAAAA,IAAI,EAAE;AAJf;AAAA,4BAKWuhC,MAAM,CAACkV,UALlB;AAAA,+BAMc;AACTnD,oBAAAA,KAAK,EAAEl0C,KAAK,CAACyhC,MAAN,EAAcyS,KAAd,IAAuBl0C,KAAK,CAACk0C;AAD3B,mBANd;AASoC,yBATpC,EASapP,IAAI,CAACxkC,KAAL,CAAWm2C,UATxB;AAAA,8CASa3R,IAAI,CAACxkC,KAAL,CAAWm2C,UATxB;AAAA,yBA7KF;AAAA;AAAA;AAAA;AAAA,UATjB;AAuMQrT,QAAAA,MAAM,EAAE;AAAA;AAAA,uBAEe,MAAOf,SAAS,CAAC/hC,KAAV,GAAkB;AAFxC;AAAA;AAAA,cAKH,CAAC8kC,MAAM,CAAC9kC,KAAR;AAAA,oBACgB,SADhB;AAAA,uBACmCkyC;AADnC;AAAA;AAAA,YALG;AAAA;AAvMhB;AAuND,KAxND;AAyND;;AAhS0C,CAAD,CAA5C;;ACVA,MAAMjI,OAAO,GAAG,CACd;AACE5pC,EAAAA,KAAK,EAAE,IADT;AAEEumC,EAAAA,SAAS,EAAE,MAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CADc,EAMd;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,SAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CANc,EAWd;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,cAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAXc,EAgBd;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,UAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAhBc,EAqBd;AACEU,EAAAA,KAAK,EAAE,IADT;AAEEumC,EAAAA,SAAS,EAAE,QAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CArBc,EA0Bd;AACEU,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CA1Bc,EA+Bd;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,UAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CA/Bc,EAoCd;AACEU,EAAAA,KAAK,EAAE,IADT;AAEEumC,EAAAA,SAAS,EAAE,QAFb;AAGEjnC,EAAAA,GAAG,EAAE,QAHP;AAIEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAJT,CApCc,CAAhB;AA4CA,MAAMmQ,aAAa,GAAGr2C,eAAe,CAAC;AACpCjB,EAAAA,KAAK,EAAE;AACLk0C,IAAAA,KAAK,EAAE;AACL1zC,MAAAA,IAAI,EAAE,CAACE,MAAD,EAASD,MAAT;AADD,KADF;AAIL82C,IAAAA,OAAO,EAAE;AACP/2C,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF;AAJJ,GAD6B;;AAUpCwB,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMiC,OAAO,GAAG3iC,GAAG,CAAC,EAAD,CAAnB;AAEA,UAAM81C,UAAU,GAAGr3C,QAAQ,CAAC,SAASH,KAAK,CAACk0C,OAAT,CAAiBz7B,UAAjB,CAA4B,KAA5B,CAAP,CAA3B;AAEA,UAAM;AAAEgnB,MAAAA,SAAF;AAAaD,MAAAA,SAAb;AAAwBG,MAAAA,OAAxB;AAAiCG,MAAAA,QAAjC;AAA2CC,MAAAA,gBAA3C;AAA6DL,MAAAA;AAA7D,QACJL,YAAY,CAAC;AACX,UAAIr/B,KAAK,CAACk0C,KAAV,EAAiB;AACf;AACA,cAAMA,KAAK,GAAGsD,UAAU,CAACl3C,KAAX,GAAmB,IAAnB,GAA0BN,KAAK,CAACk0C,KAA9C;AACA,eAAO1R,KAAG,CAAC9B,eAAJ,CAAoByB,MAAM,CAACiT,OAA3B,EAAoC;AACzCN,UAAAA,YAAY,EAAEZ,KAD2B;AAEzC7P,UAAAA,OAAO,EAAEA,OAAO,CAAC/jC,KAFwB;AAGzCknC,UAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KAHuB;AAIzCmnC,UAAAA,QAAQ,EAAE;AAJ+B,SAApC,CAAP;AAMD;;AACD,aAAOpkC,OAAO,CAACQ,OAAR,CAAgB;AAAEH,QAAAA,IAAI,EAAE;AAAR,OAAhB,CAAP;AACD,KAZW,EAYT,cAZS,CADd;AAeA;;AACA/B,IAAAA,KAAK,CACH,MAAM3B,KAAK,CAACk0C,KADT,EAEF7qC,GAAD;AACE,UAAIA,GAAJ,EAAS;AACPy2B,QAAAA,QAAQ,CAACx/B,KAAT,GAAiB,CAAjB;AACAq/B,QAAAA,OAAO;AACR,OAHD,MAGO;AACLH,QAAAA,SAAS,CAACl/B,KAAV,GAAkB,EAAlB;AACAo/B,QAAAA,KAAK,CAACp/B,KAAN,GAAc,CAAd;AACAw/B,QAAAA,QAAQ,CAACx/B,KAAT,GAAiB,CAAjB;AACD;AACF,KAXE,EAYH;AAAEuB,MAAAA,SAAS,EAAE;AAAb,KAZG,CAAL;;AAgBA,UAAM,CAACgmC,gBAAD,EAAmB+C,eAAnB,EAAoCyJ,UAApC,IACJhT,sBAAsB,EADxB;;AAGA,UAAM,CAACsG,eAAD,EAAkBC,cAAlB,IAAoCvG,sBAAsB,EAAhE;;AAEA,UAAM,CAAC4G,gBAAD,EAAmBC,eAAnB,EAAoCoM,UAApC,IACJjT,sBAAsB,EADxB;;AAIA,UAAMyJ,iBAAiB,GAAIrJ,MAAD;AACxB+D,MAAAA,KAAK,CAACrG,OAAN,CAAc;AACZx+B,QAAAA,KAAK,EAAE,MADK;AAEZ8kC,QAAAA,OAAO,WAAWhE,MAAM,CAACtiC,OAFb;;AAGZ,cAAMumC,IAAN;AACE,gBAAMlD,KAAG,CAAC8T,kBAAJ,CAAuBnU,MAAM,CAACsV,SAA9B,EAAyChW,MAAM,CAACt3B,EAAhD,CAAN;AACAw1B,UAAAA,OAAO;AACR;;AANW,OAAd;AAQD,KATD;;AAWA,WAAO;AAAA,eACM;AADN;AAAA,eAEO;AAFP;AAAA,eAGQ;AAHR;AAAA;AAAA,gBAMQ,SANR;AAAA,oBAOa6X,UAAU,CAACl3C,KAAX,IAAoB,CAACN,KAAK,CAACu3C,OAPxC;AAAA,mBAQY3P;AARZ;AAAA;AAAA;AAAA;AAAA,eAcQ;AAAEpiC,QAAAA,KAAK,EAAE;AAAT,OAdR;AAAA,qBAea,OAfb;AAAA;AAiB0B,aAjB1B,EAiBW6+B,OAAO,CAAC/jC,KAjBnB;AAAA,kCAiBW+jC,OAAO,CAAC/jC,KAjBnB;AAAA,iBAkBUq/B;AAlBV;AAAA,iBAsBQF,SAAS,CAACn/B,KAtBlB;AAAA,iBAuBQiqC,OAvBR;AAAA,oBAwBW/K,SAAS,CAACl/B,KAxBrB;AAAA,oBAyBW;AACVmnC,QAAAA,QAAQ,EAAE,EADA;AAEViB,QAAAA,OAAO,EAAE5I,QAAQ,CAACx/B,KAFR;AAGV,4BAAoBy/B,gBAHV;AAIVL,QAAAA,KAAK,EAAEA,KAAK,CAACp/B;AAJH;AAzBX;AAiCCilB,MAAAA,MAAM,EAAE,CAAC;AAAEkc,QAAAA;AAAF,OAAD;AAAA;AAAA,kBAGG,OAHH;AAAA,kBAIG,MAJH;AAAA,qBAKO,MAAMmJ,eAAe,CAACnJ,MAAD;AAL5B;AAAA;AAAA;AAAA,kBAUG,OAVH;AAAA,kBAWG,MAXH;AAAA,qBAYO,MAAMyG,eAAe,CAACzG,MAAD;AAZ5B;AAAA;AAAA;AAAA,kBAiBG,OAjBH;AAAA,kBAkBG,MAlBH;AAAA;AAAA,qBAoBO,MAAMqJ,iBAAiB,CAACrJ,MAAD;AApB9B;AAAA;AAAA;AAAA;AAjCT;AAAA,cA+DI,MA/DJ;AAAA,gBAgEO4S,UAAU,CAAC/zC,KAhElB;AAiEiC,eAjEjC,EAiESunC,gBAAgB,CAACvnC,KAjE1B;AAAA,oCAiESunC,gBAAgB,CAACvnC,KAjE1B;AAAA;AAAA,cAoEI,KApEJ;AAAA,eAqEMN,KAAK,CAACk0C,KArEZ;AAsEgC,eAtEhC,EAsESvM,eAAe,CAACrnC,KAtEzB;AAAA,oCAsESqnC,eAAe,CAACrnC,KAtEzB;AAAA,mBAuEUq/B;AAvEV;AAAA,cA0EI,MA1EJ;AAAA,gBA2EO2U,UAAU,CAACh0C,KA3ElB;AAAA,eA4EMN,KAAK,CAACk0C,KA5EZ;AA6EiC,eA7EjC,EA6ESjM,gBAAgB,CAAC3nC,KA7E1B;AAAA,oCA6ES2nC,gBAAgB,CAAC3nC,KA7E1B;AAAA,mBA8EUq/B;AA9EV,cAAP;AAkFD;;AAvJmC,CAAD,CAArC;;;;;;ACzCA,MAAM+X,eAAe,GAAGz2C,eAAe,CAAC;AACtCQ,EAAAA,KAAK,EAAE,CAAC,gBAAD,CAD+B;AAEtCzB,EAAAA,KAAK,EAAE;AACLiiC,IAAAA,OAAO,EAAE;AACPzhC,MAAAA,IAAI,EAAE0hC,OADC;AAEPxiC,MAAAA,OAAO,EAAE;AAFF,KADJ;AAKLkB,IAAAA,IAAI,EAAE;AACJJ,MAAAA,IAAI,EAAEC,MADF;AAEJqhC,MAAAA,QAAQ,EAAE;AAFN,KALD;AASLL,IAAAA,MAAM,EAAE;AACNjhC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KATH;AAaLquC,IAAAA,MAAM,EAAE;AACNvtC,MAAAA,IAAI,EAAEgH,MADA;AAEN9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFH,KAbH;AAiBLilC,IAAAA,SAAS,EAAE;AACTnkC,MAAAA,IAAI,EAAEokC;AADG;AAjBN,GAF+B;;AAuBtC1jC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMiiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMC,SAAS,GAAGtiC,SAAS,CAACC,KAAD,EAAQ,SAAR,EAAmBE,IAAnB,CAA3B;AAEA,UAAMilC,UAAU,GAAGqO,aAAa,CAACxzC,KAAK,CAACY,IAAP,EAAa,IAAb,CAAhC;AAEA,UAAMwkC,MAAM,GAAGjlC,QAAQ,CAAC,MAAMH,KAAK,CAACY,IAAN,KAAe,MAAtB,CAAvB;AAEA,UAAM;AAAEkkC,MAAAA,IAAF;AAAQD,MAAAA;AAAR,QAAoB6O,YAAY,CACpCrR,SADoC,EAEpC,MAAMriC,KAAK,CAACyhC,MAFwB,EAGpCzhC,KAAK,CAACY,IAH8B,CAAtC;AAMA;AACA;;AACA,UAAMmzC,OAAO,GAAGryC,GAAG,CAAQ,EAAR,CAAnB;;AACA,UAAMuxC,UAAU,GAAG;AACjB,YAAM;AAAEvvC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAACmT,UAAJ,CAAexT,MAAM,CAAC0P,IAAtB,EAA4B,EAA5B,CAAvB;AACAkC,MAAAA,OAAO,CAACzzC,KAAR,GAAgB,CAACoD,IAAD,EAAO1E,GAAP,CAAYC,IAAD;AACzBA,QAAAA,IAAI,CAACuqC,OAAL,GAAevqC,IAAI,CAACk0C,cAApB;AACAl0C,QAAAA,IAAI,CAACkL,EAAL,SAAgBlL,IAAI,CAACkL,IAArB;;AAEA,eAAOlL,IAAP;AACD,OALe,CAAhB;AAMD,KARD;;;AAUA,UAAM04C,eAAe,GAAGx3C,QAAQ,CAAC;AAC/B,eAASy3C,IAAT,CAAcC,GAAd;AACE,eAAOA,GAAG,CACP74C,GADI,CACCC,IAAD;AACH,cAAIA,IAAI,CAACkL,EAAL,KAAY26B,IAAI,CAACxkC,KAAL,CAAW6J,EAA3B,EAA+B;AAC7B,mBAAO,EACL,GAAGlL,IADE;AAELuqC,cAAAA,OAAO,EAAEoO,IAAI,CAAC34C,IAAI,CAACuqC,OAAN;AAFR,aAAP;AAID;AACF,SARI,EASJl8B,MATI,CASG40B,OATH,CAAP;AAUD;;AACD,aAAO0V,IAAI,CAAC7D,OAAO,CAACzzC,KAAT,CAAX;AACD,KAd+B,CAAhC;AAeA2yC,IAAAA,UAAU;;AAGV,UAAM/N,YAAY,GAAGxjC,GAAG,CAAC,EAAD,CAAxB;;AAEA,UAAMg/B,eAAe,GAAG;AACtB,UAAI,CAAC1gC,KAAK,CAACyhC,MAAN,CAAat3B,EAAlB,EAAsB;AACtB,YAAM;AAAEzG,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAACuT,wBAAJ,CAA6B5T,MAAM,CAACgV,SAApC,EACrBn3C,KAAK,CAACyhC,MAAN,CAAat3B,EADQ,EAErB,CAFqB,CAAvB;AAIA+6B,MAAAA,YAAY,CAAC5kC,KAAb,GAAqBoD,IAArB;AACD,KAPD;;AASA/B,IAAAA,KAAK,CAAC0gC,SAAD,EAAY;AACf,UAAIyV,OAAO,CAAC93C,KAAK,CAACyhC,MAAP,CAAP,IAAyB,CAACY,SAAS,CAAC/hC,KAAxC,EAA+C;AAC/C,YAAM+C,OAAO,CAACQ,OAAR,EAAN;AACA68B,MAAAA,eAAe;AACf,YAAMr9B,OAAO,CAACQ,OAAR,EAAN;;AACA,UAAI7D,KAAK,CAACY,IAAN,KAAe,MAAf,IAAyBkkC,IAAI,CAACxkC,KAAL,CAAW8wC,QAAX,KAAwB,IAArD,EAA2D;AACzDtM,QAAAA,IAAI,CAACxkC,KAAL,CAAW8wC,QAAX,GAAsB2C,OAAO,CAACzzC,KAAR,CAAc,CAAd,GAAkB6J,EAAxC;AACD;AACF,KARI,CAAL;AAUA;;AACA,UAAMqoC,UAAU,GAAG;AACjB,YAAM3N,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AAEA,YAAMziC,IAAI,GAAG,EAAE,GAAGohC,IAAI,CAACxkC;AAAV,OAAb;AACA,YAAMk3C,UAAU,MAAMx3C,KAAK,CAAC+tC,MAAN,CAAa5jC,IAAhB,CAAqBsO,UAArB,CAAgC,KAAhC,CAAnB;;AACA,UAAIzY,KAAK,CAACY,IAAN,KAAe,KAAnB,EAA0B;AACxB,cAAM4hC,KAAG,CAACoT,eAAJ,CAAoB,EACxB,GAAGlyC,IADqB;AAExB0tC,UAAAA,QAAQ,EAAEoG,UAAU,GAAG,IAAH,GAAUx3C,KAAK,CAAC+tC,MAAN,CAAa5jC,EAFnB;AAGxBgnC,UAAAA,KAAK,EAAEqG,UAAU,GAAG,CAAH,GAAOx3C,KAAK,CAAC+tC,MAAN,CAAaoD,KAAb,GAAqB,CAHrB;AAIxB+B,UAAAA,KAAK,EAAE,CAJiB;AAKxB1C,UAAAA,KAAK,EAAE1L,IAAI,CAACxkC,KAAL,CAAWkwC,KAAX,IAAoB;AALH,SAApB,CAAN;AAOA5hC,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD,OATD,MASO,IAAI5lC,KAAK,CAACY,IAAN,KAAe,MAAnB,EAA2B;AAChC,cAAM4hC,KAAG,CAACqT,eAAJ,CAAoB1T,MAAM,CAACkE,MAA3B,EAAmC,EACvC,GAAG/F,IAAI,CAAC58B,IAAD,EAAO,SAAP,CADgC;AAEvC0tC,UAAAA,QAAQ,EAAEoG,UAAU,GAAG,IAAH,GAAUx3C,KAAK,CAAC+tC,MAAN,CAAa5jC;AAFJ,SAAnC,CAAN;AAIAyE,QAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACD;;AACD5lC,MAAAA,KAAK,CAAC2kC,SAAN;AACAtC,MAAAA,SAAS,CAAC/hC,KAAV,GAAkB,KAAlB;AACD,KAvBD;;AAyBA,WAAO;AACL;AAAA,iBACa;AADb;AAAA,iBAGa6kC,UAAU,CAAC7kC,KAHxB;AAAA;AAKiC,iBALjC,EAKgB+hC,SAAS,CAAC/hC,KAL1B;AAAA,sCAKgB+hC,SAAS,CAAC/hC,KAL1B;AAAA;AAQQZ,QAAAA,OAAO,EAAE;AAAA;;AAAA;AAAA,mBACMmlC,OADN;AAAA,wBACyB;AAAEyB,cAAAA,IAAI,EAAE;AAAR,aADzB;AAAA,qBAC6CxB,IAAI,CAACxkC;AADlD;AAAA;AAAA,sBAGE,MAHF;AAAA;AAAA,uBAKG,MALH;AAAA,uBAMIuhC,eAAe,CAAC,MAAD;AANnB;AAAA,8BAQFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa79B,IADrB;AAGqC,uBAHrC,EAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,4CAGoBkhC,IAAI,CAACxkC,KAAL,CAAWsD,IAH/B;AAAA,sBARE;AAAA;AAAA,sBAeE,MAfF;AAAA;AAAA,uBAiBG,MAjBH;AAAA,uBAkBIi+B,eAAe,CAAC,MAAD;AAlBnB;AAAA,8BAoBFuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAatiC,IADrB;AAGqC,uBAHrC,EAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,4CAGoB2lC,IAAI,CAACxkC,KAAL,CAAWnB,IAH/B;AAAA,sBApBE;AAAA,gBA2BJa,KAAK,CAACY,IAAN,KAAe,KAAf;AAAA,sBAEQ,UAFR;AAAA;AAAA,uBAIS,MAJT;AAAA,uBAKUihC,eAAe,CAAC,MAAD;AALzB;AAAA,8BAOIuD,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAasW,UADrB;AAIkC,uBAJlC,EAIajT,IAAI,CAACxkC,KAAL,CAAW8wC,QAJxB;AAAA,4CAIatM,IAAI,CAACxkC,KAAL,CAAW8wC,QAJxB;AAAA,4BAKauG,eAAe,CAACr3C,KAL7B;AAAA;AAAA,8BAOe;AACVA,kBAAAA,KAAK,EAAE,IADG;AAEVsN,kBAAAA,KAAK,EAAE,MAFG;AAGVy8B,kBAAAA,QAAQ,EAAE;AAHA;AAPf,sBAPJ;AAAA,cA3BI;AAAA,sBAoDa,QApDb;AAAA,uBAoD4B;AApD5B;AAAA,8BAqDFjF,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAayB,QADrB;AAGwC,uBAHxC,EAGqB4B,IAAI,CAACxkC,KAAL,CAAW82C,MAHhC;AAAA,4CAGqBtS,IAAI,CAACxkC,KAAL,CAAW82C,MAHhC;AAAA,mCAIIlS,YAAY,CAAC5kC,KAAb,CAAmBtB,GAAnB,CAAwBC,IAAD;AAAA,uBACAA,IAAI,CAACkL;AADL;AAAA,gCAEnBlL,IAAI,CAACE,IAFc;AAAA,gBAAvB,CAJJ;AAAA;AAAA,gBArDE;AAAA;AAAA,sBAiEa,OAjEb;AAAA,uBAiE2B;AAjE3B;AAAA,8BAkEFimC,MAAM,CAAC9kC,KAAP,8BACQN,KAAK,CAACyhC,MAAN,CAAa+O,KAAb,GAAqB,IAArB,GAA4B,IADpC;AAAA,gCAIiB,CAJjB;AAK+B,uBAL/B,EAKa1L,IAAI,CAACxkC,KAAL,CAAWkwC,KALxB;AAAA,4CAKa1L,IAAI,CAACxkC,KAAL,CAAWkwC,KALxB;AAAA;AAAA;AAAA,yBAOyB;AAPzB;AAAA;AAAA;AAAA,yBAQyB;AARzB;AAAA;AAAA;AAAA,gBAlEE;AAAA;AAAA;AAAA,SARjB;AAwFQpN,QAAAA,MAAM,EAAE;AAAA;AAAA,uBAEe,MAAOf,SAAS,CAAC/hC,KAAV,GAAkB;AAFxC;AAAA;AAAA,cAKH,CAAC8kC,MAAM,CAAC9kC,KAAR;AAAA,oBACgB,SADhB;AAAA,uBACmCkyC;AADnC;AAAA;AAAA,YALG;AAAA;AAxFhB;AAwGD,KAzGD;AA0GD;;AA9NqC,CAAD,CAAvC;;ACFA,MAAMwF,OAAO,GAAG/2C,eAAe,CAAC;AAC9BjB,EAAAA,KAAK,EAAE;AACL6sC,IAAAA,QAAQ,EAAE;AACRrsC,MAAAA,IAAI,EAAEokC;AADE;AADL,GADuB;;AAM9B1jC,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA,UAAMwP,OAAO,GAAGlwC,GAAG,EAAnB;;AAGA,QAAIi+B,OAAJ;AAEAqQ,IAAAA,SAAS,CAAC,MAAOrQ,OAAO,GAAGiS,OAAO,CAACtxC,KAAR,CAAcutC,QAAhC,CAAT;;AAEA,UAAML,WAAW,GAAG,OAAOnJ,OAAO,GAAG,EAAjB;AAClB,YAAM;AAAE3gC,QAAAA;AAAF,UAAW,MAAM8+B,KAAG,CAACmT,UAAJ,CAAexT,MAAM,CAAC0P,IAAtB,EAA4B;AAAExN,QAAAA;AAAF,OAA5B,CAAvB;AACA,YAAM7gC,GAAG,GAAG,CAACE,IAAD,EAAO1E,GAAP,CAAYC,IAAD;AACrBA,QAAAA,IAAI,CAACkL,EAAL,SAAgBlL,IAAI,CAACkL,IAArB;AACAlL,QAAAA,IAAI,CAACuqC,OAAL,GAAevqC,IAAI,CAACk0C,cAApB;AACAl0C,QAAAA,IAAI,CAACmxC,QAAL,GAAgB,IAAhB;AACA,eAAOnxC,IAAP;AACD,OALW,CAAZ;AAMA,aAAOuE,GAAP;AACD,KATD;;;AAYA,UAAMy0C,YAAY,GAAI1L,IAAD;AACnBvsC,MAAAA,KAAK,CAAC6sC,QAAN,GAAiBN,IAAjB;AACD,KAFD;AAIA;AACA;;;AACA,UAAM,CAAC2L,kBAAD,EAAqBC,iBAArB,EAAwCC,YAAxC,IACJ/W,sBAAsB,EADxB;;AAGA,UAAM,CAACgX,mBAAD,EAAsBC,kBAAtB,EAA0CC,aAA1C,IACJlX,sBAAsB,EADxB;;AAGA,UAAMmX,eAAe,GAAG,MAAOjM,IAAP;AACtB,YAAM/J,KAAG,CAACsT,aAAJ,CAAkB3T,MAAM,CAAC76B,MAAzB,EAAiCilC,IAAI,CAACpiC,EAAtC,CAAN;AACAyE,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,MAAAA,OAAO;AACPsY,MAAAA,YAAY;AACb,KALD;;;AAOA,UAAMQ,UAAU,GAAG,MAAO/0C,IAAP;AACjB8oC,MAAAA,cAAc,CAAC9oC,IAAD,CAAd;AACA,YAAM8+B,KAAG,CAACyT,WAAJ,CAAgB9T,MAAM,CAAC0N,IAAvB,EAA6BnsC,IAAI,CAAC,CAAD,CAAjC,CAAN;AACAkL,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;AACAjG,MAAAA,OAAO;AACR,KALD;;AAOA,WAAO;AAAA,eACM;AADN;AAAA,aAGIiS,OAHJ;AAAA,iBAIQpE,WAJR;AAAA,yBAKgB,KALhB;AAAA,eAMM2K,iBANN;AAAA,gBAOOG,kBAPP;AAAA,kBAQSE,eART;AAAA,gBASOC,UATP;AAAA,kBAUSR;AAVT;AAAA,cAeI,KAfJ;AAgBmC,eAhBnC,EAgBSC,kBAAkB,CAAC53C,KAhB5B;AAAA,oCAgBS43C,kBAAkB,CAAC53C,KAhB5B;AAAA,gBAiBO83C,YAAY,CAAC93C,KAjBpB;AAAA,mBAkBUq/B;AAlBV;AAAA,cAsBI,MAtBJ;AAAA,gBAuBO4Y,aAAa,CAACj4C,KAvBrB;AAwBoC,eAxBpC,EAwBS+3C,mBAAmB,CAAC/3C,KAxB7B;AAAA,oCAwBS+3C,mBAAmB,CAAC/3C,KAxB7B;AAAA,mBAyBUq/B;AAzBV,cAAP;AA6BD;;AAnF6B,CAAD,CAA/B;;AC8BA,MAAMmH,aAAW,GAAY;AAC3B+K,EAAAA,IAAI,EAAE,4BADqB;AAE3B5Q,EAAAA,MAAM,EAAE,gCAFmB;AAG3BmF,EAAAA,GAAG,EAAE,4BAHsB;AAI3BC,EAAAA,MAAM,EAAE,+BAJmB;AAK3B/+B,EAAAA,MAAM,EAAE,gCALmB;AAM3BuoC,EAAAA,IAAI,EAAE,oCANqB;AAO3BsH,EAAAA,SAAS,EAAE,kCAPgB;AAQ3B/B,EAAAA,OAAO,EAAE,+BARkB;AAS3BoB,EAAAA,SAAS,EAAE,8BATgB;AAU3BK,EAAAA,SAAS,EAAE,6BAVgB;AAW3BD,EAAAA,MAAM,EAAE,0BAXmB;AAY3Ba,EAAAA,SAAS,EAAE,8BAZgB;AAa3BJ,EAAAA,UAAU,EAAE;AAbe,CAA7B;AAgBA,MAAMqB,UAAU,GAAGz3C,eAAe,CAAC;AACjCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD0B;;AAOjCwB,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,UAAMoD,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG3lC,IAAI,CAACmX;AAA1B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAMkL,GAAG,GAAGnC,MAAM,CAAC,QAAD,CAAlB;AAEA,UAAMyN,OAAO,GAAGj3C,GAAG,CAAM,EAAN,CAAnB;AACA,UAAMk3C,aAAa,GAAGl3C,GAAG,CAAC,EAAD,CAAzB;AAEA;;AACA,UAAMm3C,eAAe,GAAG,MAAOhB,GAAP;AACtB,UAAIA,GAAJ,EAAS;AACP,YAAIA,GAAG,CAACzH,QAAR,EAAkB;AAChBuI,UAAAA,OAAO,CAACr4C,KAAR,GAAgBu3C,GAAhB;AACD,SAFD,MAEO;AACL,gBAAM;AAAEn0C,YAAAA;AAAF,cAAW,MAAM8+B,KAAG,CAAC0T,SAAJ,CAAc/T,MAAM,CAAClB,MAArB,EAA6B4W,GAAG,CAAC1tC,EAAjC,CAAvB;AACAwuC,UAAAA,OAAO,CAACr4C,KAAR,GAAgBoD,IAAI,IAAI,EAAxB;AACAk1C,UAAAA,aAAa,CAACt4C,KAAd,GAAsBu3C,GAAG,CAAC9J,MAAJ,CAAWxB,IAAX,CAAgBptC,IAAtC;AACD;AACF,OARD,MAQO;AACLw5C,QAAAA,OAAO,CAACr4C,KAAR,GAAgB,EAAhB;AACD;AACF,KAZD;AAcA;;;AACA,UAAMyvC,aAAa,GAAG,MAAM1C,GAAG,CAACntC,IAAJ,CAAS,cAAT,CAA5B;;;AAGA,UAAM,CAAC+nC,gBAAD,EAAmBC,eAAnB,IAAsC7G,sBAAsB,EAAlE;AAEA,WAAO;AAAA,eACM;AADN;AAAA,eAGQ;AAHR;AAAA,kBAIkBwX;AAJlB;AAAA,eAMQ;AANR;AAAA,eAOQ;AAPR;AAAA,eASU;AATV;AAAA,eAUY;AAVZ;AAAA,eAWe;AAXf;AAAA;AAAA,gBAcY,SAdZ;AAAA,oBAeiBF,OAAO,CAACr4C,KAAR,EAAe8vC,QAAf,IAA2B0H,OAAO,CAACa,OAAO,CAACr4C,KAAT,CAfnD;AAAA,mBAgBgB4nC;AAhBhB;AAAA;AAAA;AAAA;AAAA,gBAsByB;AAtBzB;AAAA;AAAA,iBAuB8B;AAvB9B;AAAA,wBAwBMyQ,OAAO,CAACr4C,KAAR,CAAcsD,IAxBpB;AAAA;AAAA,iBA0B8B;AA1B9B;AAAA,wBA2BM+0C,OAAO,CAACr4C,KAAR,CAAcnB,IA3BpB;AAAA;AAAA,iBA6B8B;AA7B9B;AAAA,wBA8BMy5C,aAAa,CAACt4C,KA9BpB;AAAA;AAAA,iBAgC8B;AAhC9B;AAAA,wBAiCMq4C,OAAO,CAACr4C,KAAR,CAAc4iC,QAjCpB;AAAA;AAAA,iBAmC8B;AAnC9B;AAAA,wBAoCMyV,OAAO,CAACr4C,KAAR,CAAckwC,KAAd,KAAwB3mC,SAAxB,KACE8uC,OAAO,CAACr4C,KAAR,CAAckwC,KAAd,GAAsB,IAAtB,GAA6B,IAD/B,CApCN;AAAA;AAAA;AAAA,eA0CU;AA1CV;AAAA,eA2CW;AA3CX;AAAA,eA6CUmI,OAAO,CAACr4C,KAAR,EAAe6J,EA7CzB;AAAA,iBA8CYwuC,OAAO,CAACr4C,KAAR,EAAekwC,KAAf,KAAyB;AA9CrC;AAAA,cAmDM,MAnDN;AAAA,gBAoDSmI,OAAO,CAACr4C,KAAR,IAAiB,EApD1B;AAqDmC,eArDnC,EAqDW2nC,gBAAgB,CAAC3nC,KArD5B;AAAA,oCAqDW2nC,gBAAgB,CAAC3nC,KArD5B;AAAA,mBAsDYyvC;AAtDZ,gBAAP;AA2DD;;AAhGgC,CAAD,CAAlC;AAmGA,mBAAepwC,KAAK,CAACE,gBAAN,CAAuB64C,UAAvB,EAAmC,aAAnC,CAAf;;ACjKA,MAAMlW,KAAG,GAAG;AACV;;;AAGAsW,EAAAA,OAAO,EAAGxgC,GAAD,IAAkBtV,MAAD;AACxB,WAAOhB,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmBtV,MAAnB,CAAP;AACD,GANS;;AAOV;;;AAGA+1C,EAAAA,OAAO,EAAGzgC,GAAD,IAAkBtV,MAAD;AACxB,WAAOhB,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AAAEtV,MAAAA;AAAF,KAAlB,CAAP;AACD;AAZS,CAAZ;;ACkBA,MAAM8jC,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,sBADqB;AAE3BiS,EAAAA,UAAU,EAAE;AAFe,CAA7B;AAKA,MAAM/R,MAAM,GAAG,CACb;AACEtmC,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CADa,EAMb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CANa,EAWb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAXa,EAgBb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,YAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CAhBa,EAqBb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,aAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CArBa,EA0Bb;AACEU,EAAAA,KAAK,EAAE,MADT;AAEEumC,EAAAA,SAAS,EAAE,aAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CA1Ba,EA+Bb;AACEU,EAAAA,KAAK,EAAE,KADT;AAEEumC,EAAAA,SAAS,EAAE,UAFb;AAGEjnC,EAAAA,GAAG,EAAE;AAHP,CA/Ba,EAoCb;AACEU,EAAAA,KAAK,EAAE,IADT;AAEEumC,EAAAA,SAAS,EAAE,QAFb;AAGEjnC,EAAAA,GAAG,EAAE,QAHP;AAIEV,EAAAA,KAAK,EAAE;AAAE4nC,IAAAA,YAAY,EAAE;AAAhB;AAJT,CApCa,CAAf;AAwDA,MAAMb,IAAI,GAAG,EAAb;AAEA,MAAM2S,UAAU,GAAGh4C,eAAe,CAAC;AACjCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD0B;;AAOjCwB,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,UAAMoD,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG3lC,IAAI,CAACmX;AAA1B,KAAf;AAEA,UAAMusB,OAAO,GAAGnjC,GAAG,EAAnB;AAEA,UAAM4lC,SAAS,GAAGtI,QAAQ,CAAY;AACpCka,MAAAA,UAAU,EAAE,EADwB;AAEpCC,MAAAA,UAAU,EAAE,EAFwB;AAGpCC,MAAAA,WAAW,EAAE,EAHuB;AAIpCC,MAAAA,UAAU,EAAE,EAJwB;AAKpC/L,MAAAA,UAAU,EAAE,EALwB;AAMpCgM,MAAAA,SAAS,EAAE,EANyB;AAOpCC,MAAAA,OAAO,EAAE,EAP2B;AAQpCC,MAAAA,IAAI,EAAE;AAR8B,KAAZ,CAA1B;AAWA,UAAMnvB,KAAK,GAAG2U,QAAQ,CAAC;AACrBya,MAAAA,cAAc,EAAE,EADK;AAErBC,MAAAA,cAAc,EAAE,EAFK;AAGrBC,MAAAA,eAAe,EAAE,EAHI;AAIrBC,MAAAA,cAAc,EAAE,EAJK;;AAAA,KAAD,CAAtB;AAOA,IAAiBl4C,GAAG,CAAC,KAAD;;AAEpB,UAAMo3C,OAAO,GAAG,MAAOzvC,GAAP;AACd,YAAMwwC,IAAI,GAAG,MAAMrX,KAAG,CAACuW,OAAJ,CAAY5W,MAAM,CAAC6W,UAAnB,EAA+B;AAAEjL,QAAAA,MAAM,EAAE1kC;AAAV,OAA/B,CAAnB;AACA,aAAOwwC,IAAI,CAACn2C,IAAZ;AACD,KAHD;;AAKAssC,IAAAA,SAAS,CAAC;AACR3lB,MAAAA,KAAK,CAACovB,cAAN,GAAuB,MAAMX,OAAO,CAAC,CAAD,CAApC;AACD,KAFQ,CAAT;;AAKAn3C,IAAAA,KAAK,CACH,MAAM2lC,SAAS,CAAC4R,UADb,EAEH,MAAO7vC,GAAP;AACE,UAAI,CAACA,GAAL,EAAU;AACRghB,QAAAA,KAAK,CAACqvB,cAAN,GAAuB,EAAvB;AACApS,QAAAA,SAAS,CAAC6R,UAAV,GAAuB,EAAvB;AACA;AACD;;AACD9uB,MAAAA,KAAK,CAACqvB,cAAN,GAAuB,MAAMZ,OAAO,CAACxR,SAAS,CAAC4R,UAAX,CAApC;AACA5R,MAAAA,SAAS,CAAC6R,UAAV,GAAuB,EAAvB;AACD,KAVE,CAAL;;AAaAx3C,IAAAA,KAAK,CACH,MAAM2lC,SAAS,CAAC6R,UADb,EAEH,MAAO9vC,GAAP;AACE,UAAI,CAACA,GAAL,EAAU;AACRghB,QAAAA,KAAK,CAACsvB,eAAN,GAAwB,EAAxB;AACArS,QAAAA,SAAS,CAAC8R,WAAV,GAAwB,EAAxB;AACA;AACD;;AACD/uB,MAAAA,KAAK,CAACsvB,eAAN,GAAwB,MAAMb,OAAO,CAACxR,SAAS,CAAC6R,UAAX,CAArC;AACA7R,MAAAA,SAAS,CAAC8R,WAAV,GAAwB,EAAxB;AACD,KAVE,CAAL;;AAcAz3C,IAAAA,KAAK,CACH,MAAM2lC,SAAS,CAAC8R,WADb,EAEH,MAAO/vC,GAAP;AACE,UAAI,CAACA,GAAL,EAAU;AACRghB,QAAAA,KAAK,CAACuvB,cAAN,GAAuB,EAAvB;AACAtS,QAAAA,SAAS,CAAC+R,UAAV,GAAuB,EAAvB;AACA;AACD;;AACDhvB,MAAAA,KAAK,CAACuvB,cAAN,GAAuB,MAAMd,OAAO,CAACxR,SAAS,CAAC8R,WAAX,CAApC;AACA9R,MAAAA,SAAS,CAAC+R,UAAV,GAAuB,EAAvB;AACD,KAVE,CAAL;;AAcA,UAAM;AAAEvZ,MAAAA,QAAF;AAAYL,MAAAA,SAAZ;AAAuBE,MAAAA,OAAvB;AAAgCH,MAAAA,SAAhC;AAA2CO,MAAAA,gBAA3C;AAA6DL,MAAAA;AAA7D,QACJL,YAAY,CACV,MACEmD,KAAG,CAACsW,OAAJ,CAAY3W,MAAM,CAAC4E,IAAnB,EAAyB,EACvB,GAAGO,SADoB;AAEvBE,MAAAA,OAAO,EAAE1H,QAAQ,CAACx/B,KAAT,GAAiB,CAFH;AAGvBmnC,MAAAA,QAAQ,EAAE;AAHa,KAAzB,CAFQ,EAOV,SAPU,CADd;AAUA9H,IAAAA,OAAO;;AAGP,UAAMma,WAAW,GAAG;AAClBjV,MAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACAtF,MAAAA,OAAO;AACR,KAHD;;AAKA,UAAMsC,OAAO,GAAGvgC,GAAG,CAAC,KAAD,CAAnB;;AACA,UAAM09B,MAAM,GAAG;AACb6C,MAAAA,OAAO,CAAC3hC,KAAR,GAAgB,KAAhB;AACD,KAFD;;AAIA,UAAMy5C,MAAM,GAAG;AACbzS,MAAAA,SAAS,CAACgS,SAAV,GAAsBhS,SAAS,CAACkS,IAAV,GAAiB,CAAjB,GAClBQ,OADkB,CACV,KADU,EAEnBrD,MAFmB,CAEZ,qBAFY,CAAtB;AAGArP,MAAAA,SAAS,CAACiS,OAAV,GAAoBjS,SAAS,CAACkS,IAAV,GAAiB,CAAjB,GAChBS,KADgB,CACV,KADU,EAEjBtD,MAFiB,CAEV,qBAFU,CAApB;AAGAhX,MAAAA,OAAO;AACR,KARD;;AAUA,UAAMhD,IAAI,GAAGj7B,GAAG,CAAC;AACf0+B,MAAAA,QAAQ,EAAE,IADK;AAEf8Y,MAAAA,UAAU,EAAE,EAFG;AAGfC,MAAAA,UAAU,EAAE,IAHG;AAIfE,MAAAA,UAAU,EAAE,EAJG;AAKfD,MAAAA,WAAW,EAAE,IALE;AAMfc,MAAAA,WAAW,EAAE,EANE;AAOfC,MAAAA,UAAU,EAAE;AAPG,KAAD,CAAhB;AAUA,WAAO;AAAA,eACM;AADN;AAAA,aAGItV,OAHJ;AAAA,eAIMyC,SAJN;AAAA,cAKI,OALJ;AAAA,eAMK,YANL;AAAA,kBAOS;AAAEwP,QAAAA,KAAK,EAAE;AAAEtxC,UAAAA,KAAK,EAAE;AAAT;AAAT,OAPT;AAAA,eAQM,KARN;AAAA,gBASM,QATN;AAAA,kBAUSu0C;AAVT;AAAA;AAAA;AAAA,kBAac;AAbd;AAAA;AAAA,oBAcqB,YAdrB;AAAA,qBAcwC;AAdxC;AAAA;AAgBuC,qBAhBvC,EAgBiBzS,SAAS,CAAC4R,UAhB3B;AAAA,0CAgBiB5R,SAAS,CAAC4R,UAhB3B;AAAA;AAAA,uBAkBa;AAlBb;AAAA,8BAoBQ7uB,KAAK,CAACovB,cAAN,IACCpvB,KAAK,CAACovB,cAAN,CAAqBz6C,GAArB,CAA0BC,IAAD;AAAA,yBACCA,IAAI,CAACkL,EADN;AAAA,uBACelL,IAAI,CAACkL;AADpB;AAAA,gCAEpBlL,IAAI,CAACm7C,QAFe;AAAA,gBAAzB,CArBT;AAAA;AAAA;AAAA;AAAA,kBA6Bc;AA7Bd;AAAA;AAAA,oBA8BqB,YA9BrB;AAAA,qBA8BwC;AA9BxC;AAAA;AAgCuC,qBAhCvC,EAgCiB9S,SAAS,CAAC6R,UAhC3B;AAAA,0CAgCiB7R,SAAS,CAAC6R,UAhC3B;AAAA;AAAA,uBAkCa;AAlCb;AAAA,8BAoCQ9uB,KAAK,CAACqvB,cAAN,IACCrvB,KAAK,CAACqvB,cAAN,CAAqB16C,GAArB,CAA0BC,IAAD;AAAA,yBACCA,IAAI,CAACkL,EADN;AAAA,uBACelL,IAAI,CAACkL;AADpB;AAAA,gCAEpBlL,IAAI,CAACm7C,QAFe;AAAA,gBAAzB,CArCT;AAAA;AAAA;AAAA;AAAA,kBA6Cc;AA7Cd;AAAA;AAAA,oBA8CqB,aA9CrB;AAAA,qBA8CyC;AA9CzC;AAAA;AAgDwC,qBAhDxC,EAgDiB9S,SAAS,CAAC8R,WAhD3B;AAAA,0CAgDiB9R,SAAS,CAAC8R,WAhD3B;AAAA;AAAA,uBAkDa;AAlDb;AAAA,8BAoDQ/uB,KAAK,CAACsvB,eAAN,IACCtvB,KAAK,CAACsvB,eAAN,CAAsB36C,GAAtB,CAA2BC,IAAD;AAAA,yBACAA,IAAI,CAACkL,EADL;AAAA,uBACclL,IAAI,CAACkL;AADnB;AAAA,gCAErBlL,IAAI,CAACm7C,QAFgB;AAAA,gBAA1B,CArDT;AAAA;AAAA,uBA2DkB;AAAEC,gBAAAA,MAAM,EAAE;AAAV;AA3DlB;AAAA,sBA4DuB;AA5DvB;AAAA;AA8DyC,uBA9DzC,EA8DmB/S,SAAS,CAAC+R,UA9D7B;AAAA,4CA8DmB/R,SAAS,CAAC+R,UA9D7B;AAAA;AAAA,yBAgEe;AAhEf;AAAA,gCAkEUhvB,KAAK,CAACuvB,cAAN,IACCvvB,KAAK,CAACuvB,cAAN,CAAqB56C,GAArB,CAA0BC,IAAD;AAAA,2BACCA,IAAI,CAACkL,EADN;AAAA,yBACelL,IAAI,CAACkL;AADpB;AAAA,kCAEpBlL,IAAI,CAACm7C,QAFe;AAAA,kBAAzB,CAnEX;AAAA;AAAA;AAAA;AAAA;AAAA,kBA4Ec;AA5Ed;AAAA;AAAA,qBA6EsB;AA7EtB;AAAA;AAAA,uBA+Ec;AAAE50C,gBAAAA,KAAK,EAAE;AAAT,eA/Ed;AAgFiC,qBAhFjC,EAgFiB8hC,SAAS,CAACkS,IAhF3B;AAAA,0CAgFiBlS,SAAS,CAACkS,IAhF3B;AAAA;AAAA;AAAA;AAAA;AAAA,kBAqFc;AArFd;AAAA;AAAA,oBAsFqB,YAtFrB;AAAA,qBAsFwC;AAtFxC;AAAA;AAwFuC,qBAxFvC,EAwFiBlS,SAAS,CAACgG,UAxF3B;AAAA,0CAwFiBhG,SAAS,CAACgG,UAxF3B;AAAA;AAAA,6BA0FmB;AA1FnB;AAAA;AAAA;AAAA,mBA8Fe;AAAE3K,YAAAA,SAAS,EAAE;AAAb,WA9Ff;AAAA,kBA8F6C;AA9F7C;AAAA;AAAA;AAAA;AAAA,wBAiGsB,SAjGtB;AAAA,6BAiG0C;AAjG1C;AAAA;AAAA;AAAA,2BAoG0BmX;AApG1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBA4GWta,SAAS,CAACl/B,KA5GrB;AAAA,iBA6GQ2mC,MA7GR;AAAA,oBA8GW;AACVvH,QAAAA,KAAK,EAAEA,KAAK,CAACp/B,KADH;AAEVq0C,QAAAA,QAAQ,EAAE5U;AAFA,OA9GX;AAAA,iBAkHQN,SAAS,CAACn/B;AAlHlB,OAmHQ;AACPilB,MAAAA,MAAM,EAAE,CAAC;AAAEkc,QAAAA;AAAF,OAAD;AACN;AAAA,qBAEa;AACP9E,YAAAA,IAAI,CAACr8B,KAAL,GAAamhC,MAAb;AACAQ,YAAAA,OAAO,CAAC3hC,KAAR,GAAgB,IAAhB;AACD;AALL;AAUD;AAZM,KAnHR;AAoIwB,eApIxB,EAoIS2hC,OAAO,CAAC3hC,KApIjB;AAAA,oCAoIS2hC,OAAO,CAAC3hC,KApIjB;AAAA,eAqIK,QArIL;AAAA,kBAsIS8+B,MAtIT;AAAA,eAuIK,OAvIL;AAAA,eAwIK,UAxIL;AAAA,gBAyIO;AAzIP;AAAA;AAAA,kBA2Ic;AA3Id;AAAA;AAAA,kBA4IckH,IA5Id;AAAA,mBA4I0B;AA5I1B;AAAA;AAAA,qBA6Ic;AA7Id,wFA8IS3J,IAAI,CAACr8B,KAAL,CAAW65C,UA9IpB;AAAA;AAAA,kBAgJc7T,IAhJd;AAAA,mBAgJ0B;AAhJ1B;AAAA;AAAA,qBAiJc;AAjJd,wFAkJS3J,IAAI,CAACr8B,KAAL,CAAW44C,UAlJpB;AAAA;AAAA,kBAoJc5S,IApJd;AAAA,mBAoJ0B;AApJ1B;AAAA;AAAA,qBAqJc;AArJd,wFAsJS3J,IAAI,CAACr8B,KAAL,CAAW64C,UAtJpB;AAAA;AAAA,kBAwJc7S,IAxJd;AAAA,mBAwJ0B;AAxJ1B;AAAA;AAAA,qBAyJc;AAzJd,wFA0JS3J,IAAI,CAACr8B,KAAL,CAAW+4C,UA1JpB;AAAA;AAAA,kBA4Jc/S,IA5Jd;AAAA,mBA4J0B;AA5J1B;AAAA;AAAA,qBA6Jc;AA7Jd,wFA8JS3J,IAAI,CAACr8B,KAAL,CAAW84C,WA9JpB;AAAA;AAAA,kBAgKc9S,IAhKd;AAAA,mBAgK0B;AAhK1B;AAAA;AAAA,qBAiKc;AAjKd,kFAkKS3J,IAAI,CAACr8B,KAAL,CAAW8/B,QAlKpB;AAAA;AAAA,kBAoKckG,IApKd;AAAA,mBAoK0B;AApK1B;AAAA;AAAA,qBAqKc;AArKd,wFAsKS3J,IAAI,CAACr8B,KAAL,CAAW45C,WAtKpB;AAAA;AAAA;AAAA,QAAP;AA4KD;;AA1SgC,CAAD,CAAlC;AA6SA,mBAAev6C,KAAK,CAACE,gBAAN,CAAuBo5C,UAAvB,EAAmC,aAAnC,CAAf;;AChYA;;;;;;;AASO,MAAMzW,GAAG,GAAG;AACjB;;;AAGA8X,EAAAA,YAAY,EAAGhiC,GAAD,IAAkB5U,IAAD;AAC7B,WAAO1B,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmB5U,IAAnB,CAAP;AACD,GANgB;;AAOjB;;;AAGA62C,EAAAA,kBAAkB,EAAGjiC,GAAD,IAAkBkiC,OAAD;AACnC,WAAOx4C,QAAQ,CAAC5B,GAAT,CAAakY,GAAb,EAAkB;AACvBtV,MAAAA,MAAM,EAAE;AAAEw3C,QAAAA;AAAF;AADe,KAAlB,CAAP;AAGD,GAdgB;;AAejB;;;AAGAC,EAAAA,oBAAoB,EAAGniC,GAAD,IAAkBwsB,IAAD;AACrC,WAAO9iC,QAAQ,CAAC4+B,IAAT,CAActoB,GAAd,EAAmBwsB,IAAnB,CAAP;AACD;AApBgB,CAAZ;;ACmBP,MAAM4V,WAAW,GAAGz5C,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACL8V,IAAAA,WAAW,EAAE;AACXtV,MAAAA,IAAI,EAAEgH,MADK;AAEXs6B,MAAAA,QAAQ,EAAE;AAFC,KADR;AAKL6S,IAAAA,QAAQ,EAAE;AACRn0C,MAAAA,IAAI,EAAEokC,QADE;AAER9C,MAAAA,QAAQ,EAAE;AAFF;AALL,GAD2B;;AAWlC5gC,EAAAA,KAAK,CAAClB,KAAD;AACH;AACA,UAAM26C,WAAW,GAAGx6C,QAAQ,CAAC,MAAMH,KAAK,CAAC8V,WAAN,CAAkB6kC,WAAzB,CAA5B;;AAEA,IAAyBx6C,QAAQ,CAAC,MAAMH,KAAK,CAAC8V,WAAN,CAAkB8kC,gBAAzB;;AAEjC,UAAMp6C,IAAI,GAAGL,QAAQ,CAAC,MAAMw6C,WAAW,CAACr6C,KAAZ,CAAkBE,IAAzB,CAArB;;AAEA,UAAMq6C,QAAQ,GAAG16C,QAAQ,CAAC,MAAMK,IAAI,CAACF,KAAL,KAAe,SAAtB,CAAzB;AAEA;;AACA,UAAMgyC,MAAM,GAAGlQ,MAAM,CAAe,QAAf,CAArB;AAEA;;AACA,UAAM0Y,UAAU,GAAGp5C,GAAG,EAAtB;AACAC,IAAAA,KAAK,CACH,CAAC,MAAM3B,KAAK,CAAC8V,WAAb,EAA0Bw8B,MAA1B,CADG,EAEH;AACE;AACA,YAAMhyC,KAAK,GAAGN,KAAK,CAAC8V,WAAN,CAAkB8kC,gBAAlB,CAAmCt6C,KAAjD;;AAEAw6C,MAAAA,UAAU,CAACx6C,KAAX,GAAmBu6C,QAAQ,CAACv6C,KAAT,GACfA,KAAK,KAAK,OAAV,GACE,KADF,GAEE,IAHa,GAIfA,KAJJ;AAKD,KAXE,EAYH;AAAE69B,MAAAA,IAAI,EAAE,IAAR;AAAct8B,MAAAA,SAAS,EAAE;AAAzB,KAZG,CAAL;;AAeA,UAAMk5C,iBAAiB,GAAIn5C,CAAD;AACxB,UAAIwH,UAAQ,CAACxH,CAAD,CAAZ,EAAiB;AACfk5C,QAAAA,UAAU,CAACx6C,KAAX,GAAoBsB,CAAS,CAAC0V,MAAV,CAAiBhX,KAArC;AACD,OAFD,MAEO;AACLw6C,QAAAA,UAAU,CAACx6C,KAAX,GAAmBsB,CAAnB;AACD;;;AAED5B,MAAAA,KAAK,CAAC20C,QAAN,CAAe30C,KAAK,CAAC8V,WAAN,CAAkB6kC,WAAlB,CAA8B/2C,IAA7C,EAAmDk3C,UAAU,CAACx6C,KAA9D;AACD,KARD;AAUA;;;AACA,QAAI06C,KAAK,GAAQ,IAAjB;;AACA,YAAQx6C,IAAI,CAACF,KAAb;AACE,WAAK,OAAL;AACA,WAAK,KAAL;AACE06C,QAAAA,KAAK,GAAGC,WAAR;AACA;;AACF,WAAK,SAAL;AACED,QAAAA,KAAK,GAAGE,MAAR;AACA;;AACF,WAAK,QAAL;AACEF,QAAAA,KAAK,GAAGG,MAAR;AACA;;AAEF;AACEH,QAAAA,KAAK,GAAGI,KAAR;AACA;AAdJ;;;AAkBA,UAAMC,KAAK,GAAGl7C,QAAQ,CAAC;AACrB,YAAMqD,GAAG,GAAU,EAAnB;;AAEA,UAAIm3C,WAAW,CAACr6C,KAAZ,CAAkBg7C,QAAlB,KAA+B,IAAnC,EAAyC;AACvC93C,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACPrK,UAAAA,IAAI,EAAE,QADC;AAEPoL,UAAAA,GAAG,EAAElL,MAAM,CAACi6C,WAAW,CAACr6C,KAAZ,CAAkBg7C,QAAnB,CAFJ;AAGP1sC,UAAAA,OAAO,SAAS+rC,WAAW,CAACr6C,KAAZ,CAAkBg7C;AAH3B,SAAT;AAKD;;;AAED,UAAIX,WAAW,CAACr6C,KAAZ,CAAkBi7C,QAAlB,KAA+B,IAAnC,EAAyC;AACvC/3C,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACPrK,UAAAA,IAAI,EAAE,QADC;AAEPmL,UAAAA,GAAG,EAAEjL,MAAM,CAACi6C,WAAW,CAACr6C,KAAZ,CAAkBi7C,QAAnB,CAFJ;AAGP3sC,UAAAA,OAAO,SAAS+rC,WAAW,CAACr6C,KAAZ,CAAkBi7C;AAH3B,SAAT;AAKD;;;AAED,UAAIZ,WAAW,CAACr6C,KAAZ,CAAkBk7C,WAAlB,KAAkC,IAAtC,EAA4C;AAC1Ch4C,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACPe,UAAAA,GAAG,EAAElL,MAAM,CAACi6C,WAAW,CAACr6C,KAAZ,CAAkBk7C,WAAnB,CADJ;AAEP5sC,UAAAA,OAAO,SAAS+rC,WAAW,CAACr6C,KAAZ,CAAkBk7C;AAF3B,SAAT;AAID;;;AAED,UAAIb,WAAW,CAACr6C,KAAZ,CAAkBm7C,iBAAtB,EAAyC;AACvCj4C,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACPksC,UAAAA,OAAO,EAAE,IAAI3gC,MAAJ,CAAWukC,WAAW,CAACr6C,KAAZ,CAAkBm7C,iBAA7B,CADF;AAEP7sC,UAAAA,OAAO,eAAe+rC,WAAW,CAACr6C,KAAZ,CAAkBm7C;AAFjC,SAAT;AAID;;;AAED,UAAId,WAAW,CAACr6C,KAAZ,CAAkBwhC,QAAtB,EAAgC;AAC9Bt+B,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACPi3B,UAAAA,QAAQ,EAAE,IADH;AAEPlzB,UAAAA,OAAO,KAAK+rC,WAAW,CAACr6C,KAAZ,CAAkBnB;AAFvB,SAAT;AAID;;AACD,aAAOqE,GAAP;AACD,KAxCqB,CAAtB;;AA2CA,UAAMk4C,UAAU,GAAGv7C,QAAQ,CAAC;AAC1B,YAAMqD,GAAG,GAAQ,EAAjB;;AAGA,UAAIm3C,WAAW,CAACr6C,KAAZ,CAAkBq7C,IAAtB,EAA4B;AAC1Bn4C,QAAAA,GAAG,CAAC,aAAD,CAAH,GAAqBm3C,WAAW,CAACr6C,KAAZ,CAAkBq7C,IAAvC;AACD;;;AAED,UAAI,CAAChB,WAAW,CAACr6C,KAAZ,CAAkBs7C,SAAnB,IAAgC,CAACtJ,MAAM,CAAChyC,KAA5C,EAAmD;AACjDkD,QAAAA,GAAG,CAACq4C,QAAJ,GAAe,IAAf;AACD;AAED;;;AACA,UAAIhB,QAAQ,CAACv6C,KAAb,EAAoB;AAClBkD,QAAAA,GAAG,CAACixC,OAAJ,GAAcqG,UAAU,CAACx6C,KAAzB;AACD,OAFD,MAEO;AACLkD,QAAAA,GAAG,CAAClD,KAAJ,GAAYw6C,UAAU,CAACx6C,KAAvB;AACD;;AAED,aAAOkD,GAAP;AACD,KApB0B,CAA3B;AAsBA,WAAO;AACL;AAEA,MAAeq3C,QAAQ,CAACv6C,KAAT,GACX,CAACw6C,UAAU,CAACx6C,KAAZ,EAAmB,SAAnB,CADW,GAEX,CAACw6C,UAAU,CAACx6C,KAAZ,EAAmB,OAAnB;AACJ;AAAA,gBAEUq6C,WAAW,CAACr6C,KAAZ,CAAkBsD,IAF5B;AAAA,eAGS+2C,WAAW,CAACr6C,KAAZ,CAAkB6J,EAH3B;AAAA,iBAIWwwC,WAAW,CAACr6C,KAAZ,CAAkBnB,IAJ7B;AAAA,iBAKWk8C,KAAK,CAAC/6C;AALjB;AAAA;AAAA,mBAQa;AAAEkF,YAAAA,KAAK,EAAEq1C,QAAQ,CAACv6C,KAAT,GAAiB,EAAjB,GAAsB;AAA/B;AARb,WASUo7C,UAAU,CAACp7C,KATrB;AAAA,sBAUgBy6C;AAVhB;AAAA;AAAA,mBAYwB;AAZxB;AAAA;AAAA;AAAA;AAAA;AAgBD,KAtBD;AAuBD;;AA/JiC,CAAD,CAAnC;;;;;;ACdA,MAAMe,WAAW,GAAG76C,eAAe,CAAC;AAClCjB,EAAAA,KAAK,EAAE;AACLmK,IAAAA,EAAE,EAAE;AACF3J,MAAAA,IAAI,EAAEE,MADJ;AAEFohC,MAAAA,QAAQ,EAAE;AAFR;AADC,GAD2B;;AAOlC5gC,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAM+7C,MAAM,GAAG3Z,MAAM,CAAU,QAAV,CAArB;AAEA,UAAM+J,KAAK,GAAGF,QAAQ,EAAtB;AAEA;;AACA,UAAM+P,YAAY,GAAGt6C,GAAG,CAAC,EAAD,CAAxB;;AACA,UAAMu6C,eAAe,GAAG;AACtB,YAAM;AAAEv4C,QAAAA;AAAF,UAAW,MAAM8+B,GAAG,CAAC+X,kBAAJ,CAAuBwB,MAAM,CAACG,MAA9B,EAAsCl8C,KAAK,CAACmK,EAA5C,CAAvB;AACA6xC,MAAAA,YAAY,CAAC17C,KAAb,GAAqBoD,IAAI,CAACy4C,sBAA1B;AACD,KAHD;;AAIAF,IAAAA,eAAe;AAEf;;AACA,UAAMpX,OAAO,GAAGnjC,GAAG,EAAnB;AACA,UAAMojC,IAAI,GAAGpjC,GAAG,EAAhB;AACA,UAAM06C,cAAc,GAAG16C,GAAG,CAAC,IAAIuF,GAAJ,EAAD,CAA1B;AACAtF,IAAAA,KAAK,CAACq6C,YAAD,EAAgB3yC,GAAD;AAClB+yC,MAAAA,cAAc,CAAC97C,KAAf,GAAuB,IAAI2G,GAAJ,EAAvB;;AAEA69B,MAAAA,IAAI,CAACxkC,KAAL,GAAa+I,GAAG,CAACI,MAAJ,CAAW,CAAC86B,IAAD,EAAYD,IAAZ;AACtBC,QAAAA,IAAI,CAACD,IAAI,CAACqW,WAAL,CAAiB/2C,IAAlB,CAAJ,GAA8B0gC,IAAI,CAACsW,gBAAL,CAAsBt6C,KAApD;AACA87C,QAAAA,cAAc,CAAC97C,KAAf,CAAqBD,GAArB,CAAyBikC,IAAI,CAACqW,WAAL,CAAiB/2C,IAA1C,EAAgD0gC,IAAI,CAACsW,gBAArD;AACA,eAAOrW,IAAP;AACD,OAJY,EAIV,EAJU,CAAb;AAKD,KARI,CAAL;;AAUA,UAAM8X,iBAAiB,GAAG,CAACl9C,IAAD,EAAemB,KAAf;AACxBwkC,MAAAA,IAAI,CAACxkC,KAAL,CAAWnB,IAAX,IAAmBmB,KAAnB;AACD,KAFD;;;AAIA6rC,IAAAA,KAAK,CAACmQ,QAAN,GAAiB;AACf,YAAMzX,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;;AAEA,YAAM3iC,GAAG,GAAU,EAAnB;;AACA,WAAK,MAAMvD,GAAX,IAAkB6kC,IAAI,CAACxkC,KAAvB,EAA8B;AAC5BkD,QAAAA,GAAG,CAACqH,IAAJ,CAAS;AACP5K,UAAAA,GADO;AAEPK,UAAAA,KAAK,EAAEwkC,IAAI,CAACxkC,KAAL,CAAWL,GAAX,CAFA;AAGPs8C,UAAAA,WAAW,EAAEH,cAAc,CAAC97C,KAAf,CAAqBF,GAArB,CAAyBH,GAAzB;AAHN,SAAT;AAKD;;AACD,aAAOuD,GAAP;AACD,KAZD;;;AAeA2oC,IAAAA,KAAK,CAACqQ,OAAN,GAAgB;AACd,YAAMP,eAAe,EAArB;AACD,KAFD;;AAIA,WAAO;AAAA;;AAAA;AAAA,iBACM;AADN;AAAA,eAEUpX,OAFV;AAAA,oBAE6B;AAAEyB,UAAAA,IAAI,EAAE;AAAR,SAF7B;AAAA,iBAEkDxB,IAAI,CAACxkC;AAFvD;AAAA;AAAA,oBAGc;AAHd,6BAIE07C,YAAY,CAAC17C,KAAb,CAAmBtB,GAAnB,CAAuB,CAACC,IAAD,EAAY2a,KAAZ;AAAA,iBACVA,KADU;AAAA,gBACC,CADD;AAAA,gBACQ,CADR;AAAA,gBACe,EADf;AAAA,gBACuB;AADvB;AAAA;AAAA,2BAEM3a,IAFN;AAAA,wBAEsBo9C;AAFtB;AAAA,UAAvB,CAJF;AAAA;AAAA;AAAA;AAAA,KAAP;AAaD;;AAtEiC,CAAD,CAAnC;;ACHA,MAAMI,iBAAiB,GAAGx7C,eAAe,CAAC;AACxCjB,EAAAA,KAAK,EAAE;AACLW,IAAAA,KAAK,EAAE;AACLH,MAAAA,IAAI,EAAEC,MADD;AAELf,MAAAA,OAAO,EAAE;AAFJ,KADF;AAKLg9C,IAAAA,eAAe,EAAE;AACfl8C,MAAAA,IAAI,EAAE0hC,OADS;AAEfxiC,MAAAA,OAAO,EAAE;AAFM;AALZ,GADiC;;AAWxCwB,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAET,IAAAA;AAAF,GAAR;AACH;AACA,UAAMo9C,MAAM,GAAGj7C,GAAG,CAAC1B,KAAK,CAAC08C,eAAP,CAAlB;AAEA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ;AAFR;AAAA,eAGW;AAHX,QAG8B18C,KAAK,CAACW,KAHpC;AAAA,cAIc,MAJd;AAAA,iBAI8B,MAAOg8C,MAAM,CAACr8C,KAAP,GAAe,CAACq8C,MAAM,CAACr8C;AAJ5D;AAAA,sBAKEq8C,MAAM,CAACr8C,KAAP,uNALF;AAAA;AAAA,eAiBK,mBAjBL;AAAA,eAkBM;AAAEoiC,QAAAA,OAAO,EAAEia,MAAM,CAACr8C,KAAP,GAAe,EAAf,GAAoB;AAA/B;AAlBN,QAoBAf,KAAK,CAACG,OAAN,IApBA,IAAP;AAwBD;;AAvCuC,CAAD,CAAzC;;ACHA,MAAMk9C,OAAO,GAAG37C,eAAe,CAAC;AAC9BjB,EAAAA,KAAK,EAAE;AACL68C,IAAAA,KAAK,EAAE;AACLr8C,MAAAA,IAAI,EAAEE,MADD;AAELohC,MAAAA,QAAQ,EAAE;AAFL;AADF,GADuB;;AAO9B5gC,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAGC,MAAM,CAAU,QAAV,CAArB;AAEA;AACA;;AACA,UAAM0a,YAAY,GAAGp7C,GAAG,CAAQ,EAAR,CAAxB;;AAEA,UAAMq7C,WAAW,GAAGr7C,GAAG,CAAQ,EAAR,CAAvB;;AAEAs7C,IAAAA,cAAc,CAAC;AACbF,MAAAA,YAAY,CAACx8C,KAAb,GAAqB,EAArB;AACAy8C,MAAAA,WAAW,CAACz8C,KAAZ,GAAoB,EAApB;AACD,KAHa,CAAd;AAKA;;AACA,UAAMgyC,MAAM,GAAG5wC,GAAG,CAAC,KAAD,CAAlB;AACA2lC,IAAAA,OAAO,CAAC,QAAD,EAAWiL,MAAX,CAAP;AAEA;;AACA,UAAM2K,SAAS,GAAGv7C,GAAG,CAAC,EAAD,CAArB;;AACA,UAAMw7C,oBAAoB,GAAG;AAC3B;AACA,YAAM;AAAEx5C,QAAAA,IAAI,EAAEy5C;AAAR,UAAqB,MAAM3a,GAAG,CAAC8X,YAAJ,CAAiBnY,MAAM,CAAC4E,IAAxB,EAA8B;AAC7DoK,QAAAA,KAAK,EAAE,OADsD;AAE7DC,QAAAA,QAAQ,EAAEpxC,KAAK,CAAC68C;AAF6C,OAA9B,CAAjC;;AAKA,YAAMO,YAAY,GAAwB,EAA1C;AACAD,MAAAA,QAAQ,CAAC/yC,OAAT,CAAkBnL,IAAD;AACfm+C,QAAAA,YAAY,CAACvyC,IAAb,CACE23B,GAAG,CAAC8X,YAAJ,CAAiBnY,MAAM,CAAC4E,IAAxB,EAA8B;AAC5BoK,UAAAA,KAAK,EAAE,MADqB;AAE5BC,UAAAA,QAAQ,EAAEnyC,IAAI,CAACkL;AAFa,SAA9B,CADF;AAMAlL,QAAAA,IAAI,CAACo+C,SAAL,GAAiB,EAAjB;AACD,OARD;AASA,YAAMC,OAAO,GAAG,MAAMj6C,OAAO,CAACurB,GAAR,CAAYwuB,YAAZ,CAAtB;;AAEAE,MAAAA,OAAO,CAAClzC,OAAR,CAAgB,CAAC;AAAE1G,QAAAA;AAAF,OAAD,EAAWkW,KAAX;AACdujC,QAAAA,QAAQ,CAACvjC,KAAD,CAAR,CAAgByjC,SAAhB,GAA4B35C,IAA5B;AACD,OAFD;AAGAu5C,MAAAA,SAAS,CAAC38C,KAAV,GAAkB68C,QAAlB;AACD,KAvBD;;AAwBAD,IAAAA,oBAAoB;AAEpB;;AACA,UAAM1K,UAAU,GAAG;AACjB,YAAM+K,UAAU,GAAG,CAAC,GAAGT,YAAY,CAACx8C,KAAjB,EAAwB,GAAGy8C,WAAW,CAACz8C,KAAvC,CAAnB;;AAGA,YAAMk9C,YAAY,GAAmB,EAArC;AACAD,MAAAA,UAAU,CAACnzC,OAAX,CAAoBnL,IAAD;AACjBu+C,QAAAA,YAAY,CAAC3yC,IAAb,CAAkB5L,IAAI,CAACq9C,QAAL,EAAlB;AACD,OAFD;;AAIA,YAAMmB,QAAQ,GAAG,CAAC,MAAMp6C,OAAO,CAACurB,GAAR,CAAY4uB,YAAZ,CAAP,EAAkC/zC,MAAlC,CACf,CAAC86B,IAAD,EAAOD,IAAP;AACE;AACAC,QAAAA,IAAI,CAAC15B,IAAL,CACE,GAAGy5B,IAAI,CAACtlC,GAAL,CAAUC,IAAD;AACV,iBAAO,EACL,GAAGA,IAAI,CAACs9C,WADH;AAELj8C,YAAAA,KAAK,EAAErB,IAAI,CAACqB;AAFP,WAAP;AAID,SALE,CADL;AAQA,eAAOikC,IAAP;AACD,OAZc,EAaf,EAbe,CAAjB;AAeA,YAAM/B,GAAG,CAACiY,oBAAJ,CAAyBtY,MAAM,CAAC6H,IAAhC,EAAsCyT,QAAtC,CAAN;AACA7uC,MAAAA,OAAO,CAACg3B,OAAR,CAAgB,MAAhB;;AAEA,YAAM8X,cAAc,GAAmB,EAAvC;AACAH,MAAAA,UAAU,CAACnzC,OAAX,CAAoBnL,IAAD,IAAUy+C,cAAc,CAAC7yC,IAAf,CAAoB5L,IAAI,CAACu9C,OAAL,EAApB,CAA7B;AACA,YAAMn5C,OAAO,CAACurB,GAAR,CAAY8uB,cAAZ,CAAN;AACApL,MAAAA,MAAM,CAAChyC,KAAP,GAAe,KAAf;AACD,KA/BD;;AAiCA,WAAO;AAAA,eACM;AADN;AAAA,eAGQ;AAHR;AAAA,sBAKEgyC,MAAM,CAAChyC,KAAP;AAAA,eAGS,QAHT;AAAA,iBAIY;AAAEkF,UAAAA,KAAK,EAAE;AAAT,SAJZ;AAAA,mBAKc,MAAO8sC,MAAM,CAAChyC,KAAP,GAAe;AALpC;AAAA;AAAA;AAAA,eAUS,MAVT;AAAA,iBAWY;AAAEkF,UAAAA,KAAK,EAAE;AAAT,SAXZ;AAAA,gBAYU,SAZV;AAAA,mBAacgtC;AAbd;AAAA;AAAA;AAAA,eAoBO,MApBP;AAAA,iBAqBU;AAAEhtC,UAAAA,KAAK,EAAE;AAAT,SArBV;AAAA,gBAsBQ,SAtBR;AAAA,mBAuBY,MAAO8sC,MAAM,CAAChyC,KAAP,GAAe;AAvBlC;AAAA;AAAA,QALF;AAAA;AAAA,eAsCQ;AAtCR,QAuCA28C,SAAS,CAAC38C,KAAV,CAAgBgB,MAAhB,GACC27C,SAAS,CAAC38C,KAAV,CAAgBtB,GAAhB,CAAoB,CAACC,IAAD,EAAY2a,KAAZ;AAAA,eACP,YADO;AAAA,aACW3a,IAAI,CAACkL;AADhB;AAAA,eAEN;AAFM,QAEclL,IAAI,CAACE,IAFnB;AAAA,aAITF,IAAI,CAACkL,EAJI;AAAA,aAKRwzC,GAAD,IAAeb,YAAY,CAACx8C,KAAb,CAAmBsZ,KAAnB,IAA4B+jC,GALlC;AAAA,YAMV1+C,IAAI,CAACkL;AANK;AAAA,eAUL;AAVK,QAWb,CAAClL,IAAI,CAACo+C,SAAL,IAAkB,EAAnB,EAAuBr+C,GAAvB,CAA2B,CAAC4+C,IAAD,EAAYhkC,KAAZ;AAAA,aACF3a,IAAI,CAACkL,EADH;AAAA,eACclL,IAAI,CAACE;AADnB;AAAA;AAAA,eAGhBw+C,GAAD,IAAeZ,WAAW,CAACz8C,KAAZ,CAAkBsZ,KAAlB,IAA2B+jC,GAHzB;AAAA,cAIlBC,IAAI,CAACzzC;AAJa;AAAA,MAA3B,CAXa,IAApB,CADD,uDAvCA,IAAP;AAoED;;AA3J6B,CAAD,CAA/B;;;;;;ACqBA,MAAM28B,aAAW,GAAY;AAC3BC,EAAAA,IAAI,EAAE,8BADqB;AAE3BmV,EAAAA,MAAM,EAAE,wDAFmB;AAG3BlS,EAAAA,IAAI,EAAE;AAHqB,CAA7B;AAMA,MAAM6T,YAAY,GAAG58C,eAAe,CAAC;AACnCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD4B;;AAOnCwB,EAAAA,KAAK,CAAClB,KAAD;AACH,UAAMmiC,MAAM,GAAG,EAAE,GAAG2E,aAAL;AAAkB,SAAG9mC,KAAK,CAACsY;AAA3B,KAAf;AACA+uB,IAAAA,OAAO,CAAC,QAAD,EAAWlF,MAAX,CAAP;AAEA,UAAM2b,IAAI,GAAGp8C,GAAG,CAAC,EAAD,CAAhB;AAEA;;AACA,UAAMq8C,OAAO,GAAG;AACd,YAAM;AAAEr6C,QAAAA;AAAF,UAAW,MAAM8+B,GAAG,CAAC8X,YAAJ,CAAiBnY,MAAM,CAAC4E,IAAxB,EAA8B;AAAEoK,QAAAA,KAAK,EAAE;AAAT,OAA9B,CAAvB;AACA2M,MAAAA,IAAI,CAACx9C,KAAL,GAAaoD,IAAb;AACD,KAHD;;AAKAq6C,IAAAA,OAAO;AAEP,WAAO;AAAA;;AAAA;AAAA,iBACM;AADN,wEAGAD,IAAI,CAACx9C,KAAL,CAAWtB,GAAX,CAAgBC,IAAD;AAAA,eACGA,IAAI,CAACkL,EADR;AAAA,eACiBlL,IAAI,CAACE;AADtB;AAAA;AAAA,mBAEIF,IAAI,CAACkL;AAFT;AAAA,QAAf,CAHA;AAAA;AAAA;AAAA,KAAP;AAWD;;AAhCkC,CAAD,CAApC;AAmCA,qBAAexK,KAAK,CAACE,gBAAN,CAAuBg+C,YAAvB,EAAqC,eAArC,CAAf;;ACpDA,MAAMG,gBAAgB,GAAG/8C,eAAe,CAAC;AACvCQ,EAAAA,KAAK,EAAE,CAAC,aAAD,CADgC;AAEvCzB,EAAAA,KAAK,EAAE;AACL8kC,IAAAA,IAAI,EAAE;AACJtkC,MAAAA,IAAI,EAAEgH,MADF;AAEJs6B,MAAAA,QAAQ,EAAE;AAFN;AADD,GAFgC;;AAQvC5gC,EAAAA,KAAK,CAAClB,KAAD,EAAQ;AAAEE,IAAAA;AAAF,GAAR;AACH,UAAMisC,KAAK,GAAGF,QAAQ,EAAtB;AACA,UAAMgS,SAAS,GAAGl+C,SAAS,CAACC,KAAD,EAAQ,MAAR,EAAgBE,IAAhB,CAA3B;AAEA,UAAMm7C,KAAK,GAAG;AACZpV,MAAAA,QAAQ,EAAE;AACR,cAAMO,SAAN,CAAgBV,IAAhB,EAA2BxlC,KAA3B;AACE,cAAI,CAACA,KAAL,EAAY,MAAM,IAAIyH,KAAJ,CAAU,QAAV,CAAN;AACZ,cAAI,CAACk2C,SAAS,CAAC39C,KAAV,CAAgB49C,aAArB,EAAoC,OAAO,IAAP;;AACpC,cAAI59C,KAAK,KAAK29C,SAAS,CAAC39C,KAAV,CAAgB49C,aAA9B,EAA6C;AAC3C,kBAAM,IAAIn2C,KAAJ,CAAU,SAAV,CAAN;AACD;;AACD,iBAAO,IAAP;AACD;;AARO,OADE;AAWZm2C,MAAAA,aAAa,EAAE;AACb,cAAM1X,SAAN,CAAgBV,IAAhB,EAA2BxlC,KAA3B;AACE,cAAI,CAACA,KAAL,EAAY,MAAM,IAAIyH,KAAJ,CAAU,OAAV,CAAN;AACZ,cAAI,CAACk2C,SAAS,CAAC39C,KAAV,CAAgB2lC,QAArB,EAA+B,OAAO,IAAP;;AAC/B,cAAI3lC,KAAK,KAAK29C,SAAS,CAAC39C,KAAV,CAAgB2lC,QAA9B,EAAwC;AACtC,kBAAM,IAAIl+B,KAAJ,CAAU,SAAV,CAAN;AACD;;AACD,iBAAO,IAAP;AACD;;AARY;AAXH,KAAd;AAuBA,UAAM88B,OAAO,GAAGnjC,GAAG,EAAnB;;AAEAyqC,IAAAA,KAAK,CAACgS,SAAN,GAAkB;AAChB,YAAMtZ,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACD,KAFD;;AAIAgG,IAAAA,KAAK,CAACiS,MAAN,GAAe;AACbvZ,MAAAA,OAAO,CAACvkC,KAAR,CAAc2kC,WAAd;AACD,KAFD;;AAIA,WAAO;AAAA,aAEEJ,OAFF;AAAA,kBAGO;AAAEiS,QAAAA,KAAK,EAAE;AAAEtxC,UAAAA,KAAK,EAAE;AAAT;AAAT,OAHP;AAAA,eAIIy4C,SAAS,CAAC39C,KAJd;AAAA,eAKI+6C;AALJ;AAAA;AAAA,gBAQI,aARJ;AAAA,iBASM;AAAEvZ,UAAAA,QAAQ,EAAE,IAAZ;AAAkBlzB,UAAAA,OAAO,EAAE;AAA3B,SATN;AAAA,iBAUK;AAVL;AAAA;AAYwD,iBAZxD,EAY2BqvC,SAAS,CAAC39C,KAAV,CAAgB+9C,WAZ3C;AAAA,sCAY2BJ,SAAS,CAAC39C,KAAV,CAAgB+9C,WAZ3C;AAAA;AAAA;AAAA,gBAce,UAdf;AAAA,iBAcgC;AAdhC;AAAA;AAeqD,iBAfrD,EAe2BJ,SAAS,CAAC39C,KAAV,CAAgB2lC,QAf3C;AAAA,sCAe2BgY,SAAS,CAAC39C,KAAV,CAAgB2lC,QAf3C;AAAA;AAAA;AAAA,gBAiBe,eAjBf;AAAA,iBAiBqC;AAjBrC;AAAA;AAmB0C,iBAnB1C,EAmBWgY,SAAS,CAAC39C,KAAV,CAAgB49C,aAnB3B;AAAA,sCAmBWD,SAAS,CAAC39C,KAAV,CAAgB49C,aAnB3B;AAAA;AAAA;AAAA,MAAP;AAwBD;;AArEsC,CAAD,CAAxC;;ACUA,MAAMpX,WAAW,GAAY;AAC3B7F,EAAAA,MAAM,EAAE,yBADmB;AAE3BoF,EAAAA,MAAM,EAAE,6BAFmB;AAG3BiY,EAAAA,UAAU,EAAE;AAHe,CAA7B;AAYA,MAAMC,eAAe,GAAGt9C,eAAe,CAAC;AACtCjB,EAAAA,KAAK,EAAE;AACLsY,IAAAA,GAAG,EAAE;AACH9X,MAAAA,IAAI,EAAEgH,MADH;AAEH9H,MAAAA,OAAO,EAAE,OAAO,EAAP;AAFN;AADA,GAD+B;;AAOtCwB,EAAAA,KAAK,CAACC,IAAD,EAAO49B,OAAP;AACH,UAAMoD,MAAM,GAAG,EAAE,GAAG2E,WAAL;AAAkB,SAAG3lC,IAAI,CAACmX;AAA1B,KAAf;AAEA,UAAMusB,OAAO,GAAGnjC,GAAG,EAAnB;AACA,UAAM88C,eAAe,GAAG98C,GAAG,EAA3B;AAEA,UAAM2oB,KAAK,GAAG2U,QAAQ,CAAC;AACrByf,MAAAA,OAAO,EAAE;AADY,KAAD,CAAtB;AAIA,UAAMnX,SAAS,GAAG5lC,GAAG,CAAM,EAAN,CAArB;AACA,UAAMg9C,QAAQ,GAAGh9C,GAAG,CAAM,EAAN,CAApB;AAEA,UAAMi9C,YAAY,GAAGj9C,GAAG,CAAoB;AAC1Cw8C,MAAAA,aAAa,EAAE,EAD2B;AAE1CG,MAAAA,WAAW,EAAE,EAF6B;AAG1CpY,MAAAA,QAAQ,EAAE;AAHgC,KAApB,CAAxB;AAMA+J,IAAAA,SAAS,CAAC;AACR,YAAM6J,IAAI,GAAG,MAAMrX,KAAG,CAACvB,MAAJ,CAAWkB,MAAM,CAAClB,MAAlB,EAA0B,EAA1B,CAAnB;AACAqG,MAAAA,SAAS,CAAChnC,KAAV,GAAkBu5C,IAAI,CAACn2C,IAAvB;AACAg7C,MAAAA,QAAQ,CAACp+C,KAAT,GAAiBykC,SAAS,CAACuC,SAAS,CAAChnC,KAAX,CAA1B;AACD,KAJQ,CAAT;;AAMA,UAAMonC,YAAY,GAAG;AACnB,YAAM7C,OAAO,CAACvkC,KAAR,CAAc6lC,QAAd,EAAN;AACA,YAAM0T,IAAI,GAAG,MAAMrX,KAAG,CAAC3B,cAAJ,CAAmBsB,MAAM,CAACkE,MAA1B,EAAkC,EACnD,GAAGiB,SAAS,CAAChnC,KADsC;AAEnD+9C,QAAAA,WAAW,EAAE/W,SAAS,CAAChnC,KAAV,CAAgB2lC;AAFsB,OAAlC,CAAnB;AAKA5b,MAAAA,KAAK,CAACo0B,OAAN,GAAgB,KAAhB;AACA7vC,MAAAA,OAAO,CAACg3B,OAAR,CAAgBiU,IAAI,CAACn2C,IAArB;AACD,KATD;AAWA;;;AACA,UAAMu+B,OAAO,GAAGvgC,GAAG,CAAC,KAAD,CAAnB;;AACA,UAAMk9C,kBAAkB,GAAG;AACzB,YAAMJ,eAAe,CAACl+C,KAAhB,CAAsB69C,SAAtB,EAAN;AACA,YAAMtE,IAAI,GAAG,MAAMrX,KAAG,CAACxB,cAAJ,CAAmBmB,MAAM,CAACmc,UAA1B,EAAsC;AACvDD,QAAAA,WAAW,EAAE3c,SAAS,CAACid,YAAY,CAACr+C,KAAb,CAAmB+9C,WAApB,CADiC;AAEvDpY,QAAAA,QAAQ,EAAEvE,SAAS,CAACid,YAAY,CAACr+C,KAAb,CAAmB2lC,QAApB,CAFoC;AAGvD1jC,QAAAA,MAAM,EAAE+kC,SAAS,CAAChnC,KAAV,CAAgBiC;AAH+B,OAAtC,CAAnB;AAKAqM,MAAAA,OAAO,CAAC+tB,IAAR,CAAakd,IAAI,EAAEn2C,IAAnB;AAEAu+B,MAAAA,OAAO,CAAC3hC,KAAR,GAAgB,KAAhB;AACD,KAVD;;AAWAqB,IAAAA,KAAK,CAACsgC,OAAD,EAAW54B,GAAD;AACb,UAAI,CAACA,GAAL,EAAU;AACRm1C,QAAAA,eAAe,CAACl+C,KAAhB,CAAsB89C,MAAtB;AACD;AACF,KAJI,CAAL;;AAOA,UAAMS,iBAAiB,GAAG;AACxBx0B,MAAAA,KAAK,CAACo0B,OAAN,GAAgB,KAAhB;AACAnX,MAAAA,SAAS,CAAChnC,KAAV,GAAkBo+C,QAAQ,CAACp+C,KAA3B;AACAukC,MAAAA,OAAO,CAACvkC,KAAR,CAAcw+C,aAAd;AACD,KAJD;;AAMA,WAAO;AAAA,eACM;AADN;AAAA,eAEQ;AAFR;AAAA,eAGU;AAHV;AAAA;AAAA,gBAMQ,SANR;AAAA,mBAOY;AACPz0B,UAAAA,KAAK,CAACo0B,OAAN,GAAgB,IAAhB;AACD;AATJ;AAAA;AAAA;AAAA,mBAcY;AACPxc,UAAAA,OAAO,CAAC3hC,KAAR,GAAgB,IAAhB;AACD;AAhBJ;AAAA;AAAA;AAAA;AAAA,aAwBIukC,OAxBJ;AAAA,eAyBMyC,SAAS,CAAChnC,KAzBhB;AAAA,mBA0BU;AAAEw2C,QAAAA,KAAK,EAAE;AAAEtxC,UAAAA,KAAK,EAAE;AAAT;AAAT,OA1BV;AAAA,cA2BI,OA3BJ;AAAA,kBA4BSkiC,YA5BT;AAAA,eA6BK;AA7BL;AAAA;AAAA,gBAgCM,UAhCN;AAAA,iBAiCO,KAjCP;AAAA,iBAkCQ,CAAC7F,eAAe,CAAC,KAAD,CAAhB,EAAyBE,UAAU,CAAC,KAAD,EAAQ,EAAR,CAAnC;AAlCR;AAAA,wBAoCE1X,KAAK,CAACo0B,OAAN;AAEuC,iBAFvC,EAEanX,SAAS,CAAChnC,KAAV,CAAgB8/B,QAF7B;AAAA,sCAEakH,SAAS,CAAChnC,KAAV,CAAgB8/B,QAF7B;AAAA,yBAGe;AAHf,8CAMQkH,SAAS,CAAChnC,KAAV,CAAgB8/B,QAAhB,IAA4B,GANpC,EApCF;AAAA;AAAA,gBA+CM,eA/CN;AAAA,iBAgDO,MAhDP;AAAA,iBAiDQ,CAAC;AAAE0B,UAAAA,QAAQ,EAAE;AAAZ,SAAD;AAjDR;AAAA,wBAmDEzX,KAAK,CAACo0B,OAAN;AAAA;AAG4C,iBAH5C,EAGanX,SAAS,CAAChnC,KAAV,CAAgBmmC,aAH7B;AAAA,sCAGaa,SAAS,CAAChnC,KAAV,CAAgBmmC,aAH7B;AAAA,yBAIe;AAJf,8CAOQa,SAAS,CAAChnC,KAAV,CAAgBmmC,aAAhB,IAAiC,GAPzC,EAnDF;AAAA;AAAA,gBA+DM,OA/DN;AAAA,iBAgEO,IAhEP;AAAA,iBAiEQ,CAAC5E,eAAe,CAAC,IAAD,CAAhB,EAAwBE,UAAU,CAAC,IAAD,EAAO,EAAP,CAAlC;AAjER;AAAA,wBAmEE1X,KAAK,CAACo0B,OAAN;AAEoC,iBAFpC,EAEanX,SAAS,CAAChnC,KAAV,CAAgBomC,KAF7B;AAAA,sCAEaY,SAAS,CAAChnC,KAAV,CAAgBomC,KAF7B;AAAA,yBAGe;AAHf,8CAMQY,SAAS,CAAChnC,KAAV,CAAgBomC,KAAhB,IAAyB,GANjC,EAnEF;AAAA;AAAA,gBA8EM,QA9EN;AAAA,iBA+EO,IA/EP;AAAA,iBAgFQ,CAAC3E,UAAU,CAAC,IAAD,EAAO,EAAP,CAAX;AAhFR;AAAA,wBAkFE1X,KAAK,CAACo0B,OAAN;AAEqC,iBAFrC,EAEanX,SAAS,CAAChnC,KAAV,CAAgBqmC,MAF7B;AAAA,sCAEaW,SAAS,CAAChnC,KAAV,CAAgBqmC,MAF7B;AAAA,yBAGe;AAHf,8CAMQW,SAAS,CAAChnC,KAAV,CAAgBqmC,MAAhB,IAA0B,GANlC,EAlFF;AAAA;AAAA,gBA6FM,QA7FN;AAAA,iBA8FO,IA9FP;AAAA,iBA+FQ,CAAC5E,UAAU,CAAC,IAAD,EAAO,EAAP,CAAX;AA/FR;AAAA,wBAiGE1X,KAAK,CAACo0B,OAAN;AAEqC,iBAFrC,EAEanX,SAAS,CAAChnC,KAAV,CAAgBsmC,MAF7B;AAAA,sCAEaU,SAAS,CAAChnC,KAAV,CAAgBsmC,MAF7B;AAAA,yBAGe;AAHf,8CAMQU,SAAS,CAAChnC,KAAV,CAAgBsmC,MAAhB,IAA0B,GANlC,EAjGF;AAAA;AAAA,gBA4GM,MA5GN;AAAA,iBA6GO,IA7GP;AAAA,iBA8GQ,CACL7E,UAAU,CAAC,IAAD,EAAO,EAAP,CADL,EAEL;AAAEvhC,UAAAA,IAAI,EAAE,OAAR;AAAiBoO,UAAAA,OAAO,EAAE;AAA1B,SAFK;AA9GR;AAAA,wBAmHEyb,KAAK,CAACo0B,OAAN;AAEmC,iBAFnC,EAEanX,SAAS,CAAChnC,KAAV,CAAgBumC,IAF7B;AAAA,sCAEaS,SAAS,CAAChnC,KAAV,CAAgBumC,IAF7B;AAAA,yBAGe;AAHf,8CAMQS,SAAS,CAAChnC,KAAV,CAAgBumC,IAAhB,IAAwB,GANhC,EAnHF;AAAA,UA6HAxc,KAAK,CAACo0B,OAAN;AAAA;AAAA,mBAEc;AAFd;AAAA,kBAGoB,SAHpB;AAAA,qBAGuC/W;AAHvC;AAAA;AAAA;AAAA,uBAQiB,QARjB;AAAA,mBASa,eATb;AAAA,qBAUgBmX;AAVhB;AAAA;AAAA;AAAA,QA7HA;AAAA;AAAA,eAiJK,MAjJL;AAAA,eAkJK,OAlJL;AAmJwB,eAnJxB,EAmJS5c,OAAO,CAAC3hC,KAnJjB;AAAA,oCAmJS2hC,OAAO,CAAC3hC,KAnJjB;AAAA,cAoJKs+C;AApJL;AAAA;AAAA,iBAsJU;AAtJV;AAAA,eAyJsBJ,eAzJtB;AAAA,gBAyJ6CG,YAAY,CAACr+C;AAzJ1D;AAAA,QAAP;AA6JD;;AAlOqC,CAAD,CAAvC;AAqOA,wBAAeX,KAAK,CAACE,gBAAN,CAAuB0+C,eAAvB,EAAwC,kBAAxC,CAAf;;AClQA,qBAAe,CACb9f,OADa,EAEb2I,aAFa,EAGboD,aAHa,EAIbkI,aAJa,EAKb0B,aALa,EAMbsB,aANa,EAObgD,YAPa,EAQbO,YARa,EASb4E,cATa,EAUbU,iBAVa,CAAf;;ACLA,MAAMQ,KAAK,GAAG,CAAC,GAAGC,cAAJ,EAAoB,GAAGC,UAAvB,CAAd;AACA,YAAe;AACb7/C,EAAAA,OAAO,CAACC,GAAD;AACL,SAAK,IAAII,CAAT,IAAcs/C,KAAd,EAAqB;AACnB1/C,MAAAA,GAAG,CAACwD,GAAJ,CAAQpD,CAAR;AACD;AACF,GALY;;AAMbkJ,EAAAA;AANa,CAAf;;;;"}
|