diff --git a/env.js b/env.js index 220600d..ec53de0 100644 --- a/env.js +++ b/env.js @@ -12,12 +12,14 @@ const envConfig = { baseURL: 'http://192.168.2.59:8081',//http://192.168.2.56:8081 //baseURL: 'http://1.95.137.212:59015',//http://192.168.2.56:8081 WS_URL: 'ws://192.168.2.59:9002/ws/', + geoserver_url: "http://192.168.2.59:7000/geoserver" }, [ENV.PROD]: { //baseURL: 'https://pvcloudservice.satabot.com', baseURL: 'http://1.95.137.212:59015',//http://192.168.2.56:8081 //baseURL: 'https://serviceri.satabot.com', - WS_URL: 'ws://1.95.137.212:59017/ws/' + WS_URL: 'ws://1.95.137.212:59017/ws/', + geoserver_url: "http://1.95.137.212:59018/geoserver" }, }; diff --git a/index.html b/index.html index 4aaa597..dd332d1 100644 --- a/index.html +++ b/index.html @@ -22,7 +22,11 @@ href="https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/2.11.2/umd/veplayer.production.css" media="print" onload="this.media='all'"> - + + + + + @@ -48,10 +52,7 @@ Promise.resolve() //.then(() => loadScript('/js/jswebrtc.min.js')) //.then(() => loadScript('/js/jswebrtcnew.js')) - .then(() => loadScript('https://unpkg.com/leaflet@1.9.4/dist/leaflet.js')) - .then(() => loadScript('https://cdn.jsdelivr.net/npm/cesium@latest/Build/Cesium/Cesium.js')) - .then(() => loadScript('https://cdn.jsdelivr.net/npm/hls.js@1.5.8/dist/hls.min.js')) - .then(() => loadScript('https://lf-unpkg.volccdn.com/obj/vcloudfe/sdk/@volcengine/veplayer/2.11.2/umd/veplayer.production.js')) + //.then(() => loadScript('https://cdn.jsdelivr.net/npm/cesium@latest/Build/Cesium/Cesium.js')) .then(() => { console.log('✅ 所有地图/视频SDK加载完成'); window.CESIUM_BASE_URL = "https://cdnjs.cloudflare.com/ajax/libs/cesium/1.114.0/"; diff --git a/public/js/hls.js b/public/js/hls.js new file mode 100644 index 0000000..3a0550b --- /dev/null +++ b/public/js/hls.js @@ -0,0 +1,2 @@ +!function t(e) { var r, i; r = this, i = function () { "use strict"; function r(t, e) { var r = Object.keys(t); if (Object.getOwnPropertySymbols) { var i = Object.getOwnPropertySymbols(t); e && (i = i.filter((function (e) { return Object.getOwnPropertyDescriptor(t, e).enumerable }))), r.push.apply(r, i) } return r } function i(t) { for (var e = 1; e < arguments.length; e++) { var i = null != arguments[e] ? arguments[e] : {}; e % 2 ? r(Object(i), !0).forEach((function (e) { var r, a, s; r = t, a = e, s = i[e], (a = n(a)) in r ? Object.defineProperty(r, a, { value: s, enumerable: !0, configurable: !0, writable: !0 }) : r[a] = s })) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(i)) : r(Object(i)).forEach((function (e) { Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(i, e)) })) } return t } function n(t) { var e = function (t, e) { if ("object" != typeof t || !t) return t; var r = t[Symbol.toPrimitive]; if (void 0 !== r) { var i = r.call(t, e || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value.") } return ("string" === e ? String : Number)(t) }(t, "string"); return "symbol" == typeof e ? e : String(e) } function a(t, e) { for (var r = 0; r < e.length; r++) { var i = e[r]; i.enumerable = i.enumerable || !1, i.configurable = !0, "value" in i && (i.writable = !0), Object.defineProperty(t, n(i.key), i) } } function s(t, e, r) { return e && a(t.prototype, e), r && a(t, r), Object.defineProperty(t, "prototype", { writable: !1 }), t } function o() { return o = Object.assign ? Object.assign.bind() : function (t) { for (var e = 1; e < arguments.length; e++) { var r = arguments[e]; for (var i in r) Object.prototype.hasOwnProperty.call(r, i) && (t[i] = r[i]) } return t }, o.apply(this, arguments) } function l(t, e) { t.prototype = Object.create(e.prototype), t.prototype.constructor = t, h(t, e) } function u(t) { return u = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t) }, u(t) } function h(t, e) { return h = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t }, h(t, e) } function d(t, e, r) { return d = function () { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], (function () { }))), !0 } catch (t) { return !1 } }() ? Reflect.construct.bind() : function (t, e, r) { var i = [null]; i.push.apply(i, e); var n = new (Function.bind.apply(t, i)); return r && h(n, r.prototype), n }, d.apply(null, arguments) } function c(t) { var e = "function" == typeof Map ? new Map : void 0; return c = function (t) { if (null === t || !function (t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]") } catch (e) { return "function" == typeof t } }(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== e) { if (e.has(t)) return e.get(t); e.set(t, r) } function r() { return d(t, arguments, u(this).constructor) } return r.prototype = Object.create(t.prototype, { constructor: { value: r, enumerable: !1, writable: !0, configurable: !0 } }), h(r, t) }, c(t) } function f(t, e) { (null == e || e > t.length) && (e = t.length); for (var r = 0, i = new Array(e); r < e; r++)i[r] = t[r]; return i } function g(t, e) { var r = "undefined" != typeof Symbol && t[Symbol.iterator] || t["@@iterator"]; if (r) return (r = r.call(t)).next.bind(r); if (Array.isArray(t) || (r = function (t, e) { if (t) { if ("string" == typeof t) return f(t, e); var r = Object.prototype.toString.call(t).slice(8, -1); return "Object" === r && t.constructor && (r = t.constructor.name), "Map" === r || "Set" === r ? Array.from(t) : "Arguments" === r || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r) ? f(t, e) : void 0 } }(t)) || e && t && "number" == typeof t.length) { r && (t = r); var i = 0; return function () { return i >= t.length ? { done: !0 } : { done: !1, value: t[i++] } } } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") } function v(t) { return t && t.__esModule && Object.prototype.hasOwnProperty.call(t, "default") ? t.default : t } var m = { exports: {} }; !function (t, e) { var r, i, n, a, s; r = /^(?=((?:[a-zA-Z0-9+\-.]+:)?))\1(?=((?:\/\/[^\/?#]*)?))\2(?=((?:(?:[^?#\/]*\/)*[^;?#\/]*)?))\3((?:;[^?#]*)?)(\?[^#]*)?(#[^]*)?$/, i = /^(?=([^\/?#]*))\1([^]*)$/, n = /(?:\/|^)\.(?=\/)/g, a = /(?:\/|^)\.\.\/(?!\.\.\/)[^\/]*(?=\/)/g, s = { buildAbsoluteURL: function (t, e, r) { if (r = r || {}, t = t.trim(), !(e = e.trim())) { if (!r.alwaysNormalize) return t; var n = s.parseURL(t); if (!n) throw new Error("Error trying to parse base URL."); return n.path = s.normalizePath(n.path), s.buildURLFromParts(n) } var a = s.parseURL(e); if (!a) throw new Error("Error trying to parse relative URL."); if (a.scheme) return r.alwaysNormalize ? (a.path = s.normalizePath(a.path), s.buildURLFromParts(a)) : e; var o = s.parseURL(t); if (!o) throw new Error("Error trying to parse base URL."); if (!o.netLoc && o.path && "/" !== o.path[0]) { var l = i.exec(o.path); o.netLoc = l[1], o.path = l[2] } o.netLoc && !o.path && (o.path = "/"); var u = { scheme: o.scheme, netLoc: a.netLoc, path: null, params: a.params, query: a.query, fragment: a.fragment }; if (!a.netLoc && (u.netLoc = o.netLoc, "/" !== a.path[0])) if (a.path) { var h = o.path, d = h.substring(0, h.lastIndexOf("/") + 1) + a.path; u.path = s.normalizePath(d) } else u.path = o.path, a.params || (u.params = o.params, a.query || (u.query = o.query)); return null === u.path && (u.path = r.alwaysNormalize ? s.normalizePath(a.path) : a.path), s.buildURLFromParts(u) }, parseURL: function (t) { var e = r.exec(t); return e ? { scheme: e[1] || "", netLoc: e[2] || "", path: e[3] || "", params: e[4] || "", query: e[5] || "", fragment: e[6] || "" } : null }, normalizePath: function (t) { for (t = t.split("").reverse().join("").replace(n, ""); t.length !== (t = t.replace(a, "")).length;); return t.split("").reverse().join("") }, buildURLFromParts: function (t) { return t.scheme + t.netLoc + t.path + t.params + t.query + t.fragment } }, t.exports = s }(m); var p = m.exports, y = Number.isFinite || function (t) { return "number" == typeof t && isFinite(t) }, E = Number.isSafeInteger || function (t) { return "number" == typeof t && Math.abs(t) <= T }, T = Number.MAX_SAFE_INTEGER || 9007199254740991, S = function (t) { return t.MEDIA_ATTACHING = "hlsMediaAttaching", t.MEDIA_ATTACHED = "hlsMediaAttached", t.MEDIA_DETACHING = "hlsMediaDetaching", t.MEDIA_DETACHED = "hlsMediaDetached", t.BUFFER_RESET = "hlsBufferReset", t.BUFFER_CODECS = "hlsBufferCodecs", t.BUFFER_CREATED = "hlsBufferCreated", t.BUFFER_APPENDING = "hlsBufferAppending", t.BUFFER_APPENDED = "hlsBufferAppended", t.BUFFER_EOS = "hlsBufferEos", t.BUFFER_FLUSHING = "hlsBufferFlushing", t.BUFFER_FLUSHED = "hlsBufferFlushed", t.MANIFEST_LOADING = "hlsManifestLoading", t.MANIFEST_LOADED = "hlsManifestLoaded", t.MANIFEST_PARSED = "hlsManifestParsed", t.LEVEL_SWITCHING = "hlsLevelSwitching", t.LEVEL_SWITCHED = "hlsLevelSwitched", t.LEVEL_LOADING = "hlsLevelLoading", t.LEVEL_LOADED = "hlsLevelLoaded", t.LEVEL_UPDATED = "hlsLevelUpdated", t.LEVEL_PTS_UPDATED = "hlsLevelPtsUpdated", t.LEVELS_UPDATED = "hlsLevelsUpdated", t.AUDIO_TRACKS_UPDATED = "hlsAudioTracksUpdated", t.AUDIO_TRACK_SWITCHING = "hlsAudioTrackSwitching", t.AUDIO_TRACK_SWITCHED = "hlsAudioTrackSwitched", t.AUDIO_TRACK_LOADING = "hlsAudioTrackLoading", t.AUDIO_TRACK_LOADED = "hlsAudioTrackLoaded", t.SUBTITLE_TRACKS_UPDATED = "hlsSubtitleTracksUpdated", t.SUBTITLE_TRACKS_CLEARED = "hlsSubtitleTracksCleared", t.SUBTITLE_TRACK_SWITCH = "hlsSubtitleTrackSwitch", t.SUBTITLE_TRACK_LOADING = "hlsSubtitleTrackLoading", t.SUBTITLE_TRACK_LOADED = "hlsSubtitleTrackLoaded", t.SUBTITLE_FRAG_PROCESSED = "hlsSubtitleFragProcessed", t.CUES_PARSED = "hlsCuesParsed", t.NON_NATIVE_TEXT_TRACKS_FOUND = "hlsNonNativeTextTracksFound", t.INIT_PTS_FOUND = "hlsInitPtsFound", t.FRAG_LOADING = "hlsFragLoading", t.FRAG_LOAD_EMERGENCY_ABORTED = "hlsFragLoadEmergencyAborted", t.FRAG_LOADED = "hlsFragLoaded", t.FRAG_DECRYPTED = "hlsFragDecrypted", t.FRAG_PARSING_INIT_SEGMENT = "hlsFragParsingInitSegment", t.FRAG_PARSING_USERDATA = "hlsFragParsingUserdata", t.FRAG_PARSING_METADATA = "hlsFragParsingMetadata", t.FRAG_PARSED = "hlsFragParsed", t.FRAG_BUFFERED = "hlsFragBuffered", t.FRAG_CHANGED = "hlsFragChanged", t.FPS_DROP = "hlsFpsDrop", t.FPS_DROP_LEVEL_CAPPING = "hlsFpsDropLevelCapping", t.MAX_AUTO_LEVEL_UPDATED = "hlsMaxAutoLevelUpdated", t.ERROR = "hlsError", t.DESTROYING = "hlsDestroying", t.KEY_LOADING = "hlsKeyLoading", t.KEY_LOADED = "hlsKeyLoaded", t.LIVE_BACK_BUFFER_REACHED = "hlsLiveBackBufferReached", t.BACK_BUFFER_REACHED = "hlsBackBufferReached", t.STEERING_MANIFEST_LOADED = "hlsSteeringManifestLoaded", t }({}), L = function (t) { return t.NETWORK_ERROR = "networkError", t.MEDIA_ERROR = "mediaError", t.KEY_SYSTEM_ERROR = "keySystemError", t.MUX_ERROR = "muxError", t.OTHER_ERROR = "otherError", t }({}), A = function (t) { return t.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", t.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", t.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", t.KEY_SYSTEM_NO_CONFIGURED_LICENSE = "keySystemNoConfiguredLicense", t.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", t.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = "keySystemServerCertificateRequestFailed", t.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = "keySystemServerCertificateUpdateFailed", t.KEY_SYSTEM_SESSION_UPDATE_FAILED = "keySystemSessionUpdateFailed", t.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = "keySystemStatusOutputRestricted", t.KEY_SYSTEM_STATUS_INTERNAL_ERROR = "keySystemStatusInternalError", t.MANIFEST_LOAD_ERROR = "manifestLoadError", t.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", t.MANIFEST_PARSING_ERROR = "manifestParsingError", t.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", t.LEVEL_EMPTY_ERROR = "levelEmptyError", t.LEVEL_LOAD_ERROR = "levelLoadError", t.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", t.LEVEL_PARSING_ERROR = "levelParsingError", t.LEVEL_SWITCH_ERROR = "levelSwitchError", t.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", t.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", t.SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", t.SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", t.FRAG_LOAD_ERROR = "fragLoadError", t.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", t.FRAG_DECRYPT_ERROR = "fragDecryptError", t.FRAG_PARSING_ERROR = "fragParsingError", t.FRAG_GAP = "fragGap", t.REMUX_ALLOC_ERROR = "remuxAllocError", t.KEY_LOAD_ERROR = "keyLoadError", t.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", t.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", t.BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError", t.BUFFER_APPEND_ERROR = "bufferAppendError", t.BUFFER_APPENDING_ERROR = "bufferAppendingError", t.BUFFER_STALLED_ERROR = "bufferStalledError", t.BUFFER_FULL_ERROR = "bufferFullError", t.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", t.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", t.INTERNAL_EXCEPTION = "internalException", t.INTERNAL_ABORTED = "aborted", t.UNKNOWN = "unknown", t }({}), R = function () { }, k = { trace: R, debug: R, log: R, warn: R, info: R, error: R }, b = k; function D(t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; r.forEach((function (e) { b[e] = t[e] ? t[e].bind(t) : function (t) { var e = self.console[t]; return e ? e.bind(self.console, "[" + t + "] >") : R }(e) })) } function I(t, e) { if ("object" == typeof console && !0 === t || "object" == typeof t) { D(t, "debug", "log", "info", "warn", "error"); try { b.log('Debug logs enabled for "' + e + '" in hls.js version 1.5.8') } catch (t) { b = k } } else b = k } var w = b, C = /^(\d+)x(\d+)$/, _ = /(.+?)=(".*?"|.*?)(?:,|$)/g, x = function () { function t(e) { "string" == typeof e && (e = t.parseAttrList(e)), o(this, e) } var e = t.prototype; return e.decimalInteger = function (t) { var e = parseInt(this[t], 10); return e > Number.MAX_SAFE_INTEGER ? 1 / 0 : e }, e.hexadecimalInteger = function (t) { if (this[t]) { var e = (this[t] || "0x").slice(2); e = (1 & e.length ? "0" : "") + e; for (var r = new Uint8Array(e.length / 2), i = 0; i < e.length / 2; i++)r[i] = parseInt(e.slice(2 * i, 2 * i + 2), 16); return r } return null }, e.hexadecimalIntegerAsNumber = function (t) { var e = parseInt(this[t], 16); return e > Number.MAX_SAFE_INTEGER ? 1 / 0 : e }, e.decimalFloatingPoint = function (t) { return parseFloat(this[t]) }, e.optionalFloat = function (t, e) { var r = this[t]; return r ? parseFloat(r) : e }, e.enumeratedString = function (t) { return this[t] }, e.bool = function (t) { return "YES" === this[t] }, e.decimalResolution = function (t) { var e = C.exec(this[t]); if (null !== e) return { width: parseInt(e[1], 10), height: parseInt(e[2], 10) } }, t.parseAttrList = function (t) { var e, r = {}; for (_.lastIndex = 0; null !== (e = _.exec(t));) { var i = e[2]; 0 === i.indexOf('"') && i.lastIndexOf('"') === i.length - 1 && (i = i.slice(1, -1)), r[e[1].trim()] = i } return r }, s(t, [{ key: "clientAttrs", get: function () { return Object.keys(this).filter((function (t) { return "X-" === t.substring(0, 2) })) } }]), t }(); function P(t) { return "SCTE35-OUT" === t || "SCTE35-IN" === t } var F = function () { function t(t, e) { if (this.attr = void 0, this._startDate = void 0, this._endDate = void 0, this._badValueForSameId = void 0, e) { var r = e.attr; for (var i in r) if (Object.prototype.hasOwnProperty.call(t, i) && t[i] !== r[i]) { w.warn('DATERANGE tag attribute: "' + i + '" does not match for tags with ID: "' + t.ID + '"'), this._badValueForSameId = i; break } t = o(new x({}), r, t) } if (this.attr = t, this._startDate = new Date(t["START-DATE"]), "END-DATE" in this.attr) { var n = new Date(this.attr["END-DATE"]); y(n.getTime()) && (this._endDate = n) } } return s(t, [{ key: "id", get: function () { return this.attr.ID } }, { key: "class", get: function () { return this.attr.CLASS } }, { key: "startDate", get: function () { return this._startDate } }, { key: "endDate", get: function () { if (this._endDate) return this._endDate; var t = this.duration; return null !== t ? new Date(this._startDate.getTime() + 1e3 * t) : null } }, { key: "duration", get: function () { if ("DURATION" in this.attr) { var t = this.attr.decimalFloatingPoint("DURATION"); if (y(t)) return t } else if (this._endDate) return (this._endDate.getTime() - this._startDate.getTime()) / 1e3; return null } }, { key: "plannedDuration", get: function () { return "PLANNED-DURATION" in this.attr ? this.attr.decimalFloatingPoint("PLANNED-DURATION") : null } }, { key: "endOnNext", get: function () { return this.attr.bool("END-ON-NEXT") } }, { key: "isValid", get: function () { return !!this.id && !this._badValueForSameId && y(this.startDate.getTime()) && (null === this.duration || this.duration >= 0) && (!this.endOnNext || !!this.class) } }]), t }(), M = function () { this.aborted = !1, this.loaded = 0, this.retry = 0, this.total = 0, this.chunkCount = 0, this.bwEstimate = 0, this.loading = { start: 0, first: 0, end: 0 }, this.parsing = { start: 0, end: 0 }, this.buffering = { start: 0, first: 0, end: 0 } }, O = "audio", N = "video", U = "audiovideo", B = function () { function t(t) { var e; this._byteRange = null, this._url = null, this.baseurl = void 0, this.relurl = void 0, this.elementaryStreams = ((e = {})[O] = null, e[N] = null, e[U] = null, e), this.baseurl = t } return t.prototype.setByteRange = function (t, e) { var r, i = t.split("@", 2); r = 1 === i.length ? (null == e ? void 0 : e.byteRangeEndOffset) || 0 : parseInt(i[1]), this._byteRange = [r, parseInt(i[0]) + r] }, s(t, [{ key: "byteRange", get: function () { return this._byteRange ? this._byteRange : [] } }, { key: "byteRangeStartOffset", get: function () { return this.byteRange[0] } }, { key: "byteRangeEndOffset", get: function () { return this.byteRange[1] } }, { key: "url", get: function () { return !this._url && this.baseurl && this.relurl && (this._url = p.buildAbsoluteURL(this.baseurl, this.relurl, { alwaysNormalize: !0 })), this._url || "" }, set: function (t) { this._url = t } }]), t }(), G = function (t) { function e(e, r) { var i; return (i = t.call(this, r) || this)._decryptdata = null, i.rawProgramDateTime = null, i.programDateTime = null, i.tagList = [], i.duration = 0, i.sn = 0, i.levelkeys = void 0, i.type = void 0, i.loader = null, i.keyLoader = null, i.level = -1, i.cc = 0, i.startPTS = void 0, i.endPTS = void 0, i.startDTS = void 0, i.endDTS = void 0, i.start = 0, i.deltaPTS = void 0, i.maxStartPTS = void 0, i.minEndPTS = void 0, i.stats = new M, i.data = void 0, i.bitrateTest = !1, i.title = null, i.initSegment = null, i.endList = void 0, i.gap = void 0, i.urlId = 0, i.type = e, i } l(e, t); var r = e.prototype; return r.setKeyFormat = function (t) { if (this.levelkeys) { var e = this.levelkeys[t]; e && !this._decryptdata && (this._decryptdata = e.getDecryptData(this.sn)) } }, r.abortRequests = function () { var t, e; null == (t = this.loader) || t.abort(), null == (e = this.keyLoader) || e.abort() }, r.setElementaryStreamInfo = function (t, e, r, i, n, a) { void 0 === a && (a = !1); var s = this.elementaryStreams, o = s[t]; o ? (o.startPTS = Math.min(o.startPTS, e), o.endPTS = Math.max(o.endPTS, r), o.startDTS = Math.min(o.startDTS, i), o.endDTS = Math.max(o.endDTS, n)) : s[t] = { startPTS: e, endPTS: r, startDTS: i, endDTS: n, partial: a } }, r.clearElementaryStreamInfo = function () { var t = this.elementaryStreams; t[O] = null, t[N] = null, t[U] = null }, s(e, [{ key: "decryptdata", get: function () { if (!this.levelkeys && !this._decryptdata) return null; if (!this._decryptdata && this.levelkeys && !this.levelkeys.NONE) { var t = this.levelkeys.identity; if (t) this._decryptdata = t.getDecryptData(this.sn); else { var e = Object.keys(this.levelkeys); if (1 === e.length) return this._decryptdata = this.levelkeys[e[0]].getDecryptData(this.sn) } } return this._decryptdata } }, { key: "end", get: function () { return this.start + this.duration } }, { key: "endProgramDateTime", get: function () { if (null === this.programDateTime) return null; if (!y(this.programDateTime)) return null; var t = y(this.duration) ? this.duration : 0; return this.programDateTime + 1e3 * t } }, { key: "encrypted", get: function () { var t; if (null != (t = this._decryptdata) && t.encrypted) return !0; if (this.levelkeys) { var e = Object.keys(this.levelkeys), r = e.length; if (r > 1 || 1 === r && this.levelkeys[e[0]].encrypted) return !0 } return !1 } }]), e }(B), K = function (t) { function e(e, r, i, n, a) { var s; (s = t.call(this, i) || this).fragOffset = 0, s.duration = 0, s.gap = !1, s.independent = !1, s.relurl = void 0, s.fragment = void 0, s.index = void 0, s.stats = new M, s.duration = e.decimalFloatingPoint("DURATION"), s.gap = e.bool("GAP"), s.independent = e.bool("INDEPENDENT"), s.relurl = e.enumeratedString("URI"), s.fragment = r, s.index = n; var o = e.enumeratedString("BYTERANGE"); return o && s.setByteRange(o, a), a && (s.fragOffset = a.fragOffset + a.duration), s } return l(e, t), s(e, [{ key: "start", get: function () { return this.fragment.start + this.fragOffset } }, { key: "end", get: function () { return this.start + this.duration } }, { key: "loaded", get: function () { var t = this.elementaryStreams; return !!(t.audio || t.video || t.audiovideo) } }]), e }(B), H = function () { function t(t) { this.PTSKnown = !1, this.alignedSliding = !1, this.averagetargetduration = void 0, this.endCC = 0, this.endSN = 0, this.fragments = void 0, this.fragmentHint = void 0, this.partList = null, this.dateRanges = void 0, this.live = !0, this.ageHeader = 0, this.advancedDateTime = void 0, this.updated = !0, this.advanced = !0, this.availabilityDelay = void 0, this.misses = 0, this.startCC = 0, this.startSN = 0, this.startTimeOffset = null, this.targetduration = 0, this.totalduration = 0, this.type = null, this.url = void 0, this.m3u8 = "", this.version = null, this.canBlockReload = !1, this.canSkipUntil = 0, this.canSkipDateRanges = !1, this.skippedSegments = 0, this.recentlyRemovedDateranges = void 0, this.partHoldBack = 0, this.holdBack = 0, this.partTarget = 0, this.preloadHint = void 0, this.renditionReports = void 0, this.tuneInGoal = 0, this.deltaUpdateFailed = void 0, this.driftStartTime = 0, this.driftEndTime = 0, this.driftStart = 0, this.driftEnd = 0, this.encryptedFragments = void 0, this.playlistParsingError = null, this.variableList = null, this.hasVariableRefs = !1, this.fragments = [], this.encryptedFragments = [], this.dateRanges = {}, this.url = t } return t.prototype.reloaded = function (t) { if (!t) return this.advanced = !0, void (this.updated = !0); var e = this.lastPartSn - t.lastPartSn, r = this.lastPartIndex - t.lastPartIndex; this.updated = this.endSN !== t.endSN || !!r || !!e || !this.live, this.advanced = this.endSN > t.endSN || e > 0 || 0 === e && r > 0, this.updated || this.advanced ? this.misses = Math.floor(.6 * t.misses) : this.misses = t.misses + 1, this.availabilityDelay = t.availabilityDelay }, s(t, [{ key: "hasProgramDateTime", get: function () { return !!this.fragments.length && y(this.fragments[this.fragments.length - 1].programDateTime) } }, { key: "levelTargetDuration", get: function () { return this.averagetargetduration || this.targetduration || 10 } }, { key: "drift", get: function () { var t = this.driftEndTime - this.driftStartTime; return t > 0 ? 1e3 * (this.driftEnd - this.driftStart) / t : 1 } }, { key: "edge", get: function () { return this.partEnd || this.fragmentEnd } }, { key: "partEnd", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].end : this.fragmentEnd } }, { key: "fragmentEnd", get: function () { var t; return null != (t = this.fragments) && t.length ? this.fragments[this.fragments.length - 1].end : 0 } }, { key: "age", get: function () { return this.advancedDateTime ? Math.max(Date.now() - this.advancedDateTime, 0) / 1e3 : 0 } }, { key: "lastPartIndex", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].index : -1 } }, { key: "lastPartSn", get: function () { var t; return null != (t = this.partList) && t.length ? this.partList[this.partList.length - 1].fragment.sn : this.endSN } }]), t }(); function V(t) { return Uint8Array.from(atob(t), (function (t) { return t.charCodeAt(0) })) } function Y(t) { var e, r, i = t.split(":"), n = null; if ("data" === i[0] && 2 === i.length) { var a = i[1].split(";"), s = a[a.length - 1].split(","); if (2 === s.length) { var o = "base64" === s[0], l = s[1]; o ? (a.splice(-1, 1), n = V(l)) : (e = W(l).subarray(0, 16), (r = new Uint8Array(16)).set(e, 16 - e.length), n = r) } } return n } function W(t) { return Uint8Array.from(unescape(encodeURIComponent(t)), (function (t) { return t.charCodeAt(0) })) } var j = "undefined" != typeof self ? self : void 0, q = { CLEARKEY: "org.w3.clearkey", FAIRPLAY: "com.apple.fps", PLAYREADY: "com.microsoft.playready", WIDEVINE: "com.widevine.alpha" }, X = "org.w3.clearkey", z = "com.apple.streamingkeydelivery", Q = "com.microsoft.playready", J = "urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed"; function $(t) { switch (t) { case z: return q.FAIRPLAY; case Q: return q.PLAYREADY; case J: return q.WIDEVINE; case X: return q.CLEARKEY } } var Z = "edef8ba979d64acea3c827dcd51d21ed"; function tt(t) { switch (t) { case q.FAIRPLAY: return z; case q.PLAYREADY: return Q; case q.WIDEVINE: return J; case q.CLEARKEY: return X } } function et(t) { var e = t.drmSystems, r = t.widevineLicenseUrl, i = e ? [q.FAIRPLAY, q.WIDEVINE, q.PLAYREADY, q.CLEARKEY].filter((function (t) { return !!e[t] })) : []; return !i[q.WIDEVINE] && r && i.push(q.WIDEVINE), i } var rt, it = null != j && null != (rt = j.navigator) && rt.requestMediaKeySystemAccess ? self.navigator.requestMediaKeySystemAccess.bind(self.navigator) : null; function nt(t, e, r) { return Uint8Array.prototype.slice ? t.slice(e, r) : new Uint8Array(Array.prototype.slice.call(t, e, r)) } var at, st = function (t, e) { return e + 10 <= t.length && 73 === t[e] && 68 === t[e + 1] && 51 === t[e + 2] && t[e + 3] < 255 && t[e + 4] < 255 && t[e + 6] < 128 && t[e + 7] < 128 && t[e + 8] < 128 && t[e + 9] < 128 }, ot = function (t, e) { return e + 10 <= t.length && 51 === t[e] && 68 === t[e + 1] && 73 === t[e + 2] && t[e + 3] < 255 && t[e + 4] < 255 && t[e + 6] < 128 && t[e + 7] < 128 && t[e + 8] < 128 && t[e + 9] < 128 }, lt = function (t, e) { for (var r = e, i = 0; st(t, e);)i += 10, i += ut(t, e + 6), ot(t, e + 10) && (i += 10), e += i; if (i > 0) return t.subarray(r, r + i) }, ut = function (t, e) { var r = 0; return r = (127 & t[e]) << 21, r |= (127 & t[e + 1]) << 14, r |= (127 & t[e + 2]) << 7, r |= 127 & t[e + 3] }, ht = function (t, e) { return st(t, e) && ut(t, e + 6) + 10 <= t.length - e }, dt = function (t) { for (var e = gt(t), r = 0; r < e.length; r++) { var i = e[r]; if (ct(i)) return Et(i) } }, ct = function (t) { return t && "PRIV" === t.key && "com.apple.streaming.transportStreamTimestamp" === t.info }, ft = function (t) { var e = String.fromCharCode(t[0], t[1], t[2], t[3]), r = ut(t, 4); return { type: e, size: r, data: t.subarray(10, 10 + r) } }, gt = function (t) { for (var e = 0, r = []; st(t, e);) { for (var i = ut(t, e + 6), n = (e += 10) + i; e + 8 < n;) { var a = ft(t.subarray(e)), s = vt(a); s && r.push(s), e += a.size + 10 } ot(t, e) && (e += 10) } return r }, vt = function (t) { return "PRIV" === t.type ? mt(t) : "W" === t.type[0] ? yt(t) : pt(t) }, mt = function (t) { if (!(t.size < 2)) { var e = Tt(t.data, !0), r = new Uint8Array(t.data.subarray(e.length + 1)); return { key: t.type, info: e, data: r.buffer } } }, pt = function (t) { if (!(t.size < 2)) { if ("TXXX" === t.type) { var e = 1, r = Tt(t.data.subarray(e), !0); e += r.length + 1; var i = Tt(t.data.subarray(e)); return { key: t.type, info: r, data: i } } var n = Tt(t.data.subarray(1)); return { key: t.type, data: n } } }, yt = function (t) { if ("WXXX" === t.type) { if (t.size < 2) return; var e = 1, r = Tt(t.data.subarray(e), !0); e += r.length + 1; var i = Tt(t.data.subarray(e)); return { key: t.type, info: r, data: i } } var n = Tt(t.data); return { key: t.type, data: n } }, Et = function (t) { if (8 === t.data.byteLength) { var e = new Uint8Array(t.data), r = 1 & e[3], i = (e[4] << 23) + (e[5] << 15) + (e[6] << 7) + e[7]; return i /= 45, r && (i += 47721858.84), Math.round(i) } }, Tt = function (t, e) { void 0 === e && (e = !1); var r = St(); if (r) { var i = r.decode(t); if (e) { var n = i.indexOf("\0"); return -1 !== n ? i.substring(0, n) : i } return i.replace(/\0/g, "") } for (var a, s, o, l = t.length, u = "", h = 0; h < l;) { if (0 === (a = t[h++]) && e) return u; if (0 !== a && 3 !== a) switch (a >> 4) { case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: u += String.fromCharCode(a); break; case 12: case 13: s = t[h++], u += String.fromCharCode((31 & a) << 6 | 63 & s); break; case 14: s = t[h++], o = t[h++], u += String.fromCharCode((15 & a) << 12 | (63 & s) << 6 | (63 & o) << 0) } } return u }; function St() { if (!navigator.userAgent.includes("PlayStation 4")) return at || void 0 === self.TextDecoder || (at = new self.TextDecoder("utf-8")), at } var Lt = function (t) { for (var e = "", r = 0; r < t.length; r++) { var i = t[r].toString(16); i.length < 2 && (i = "0" + i), e += i } return e }, At = Math.pow(2, 32) - 1, Rt = [].push, kt = { video: 1, audio: 2, id3: 3, text: 4 }; function bt(t) { return String.fromCharCode.apply(null, t) } function Dt(t, e) { var r = t[e] << 8 | t[e + 1]; return r < 0 ? 65536 + r : r } function It(t, e) { var r = Ct(t, e); return r < 0 ? 4294967296 + r : r } function wt(t, e) { var r = It(t, e); return r *= Math.pow(2, 32), r += It(t, e + 4) } function Ct(t, e) { return t[e] << 24 | t[e + 1] << 16 | t[e + 2] << 8 | t[e + 3] } function _t(t, e, r) { t[e] = r >> 24, t[e + 1] = r >> 16 & 255, t[e + 2] = r >> 8 & 255, t[e + 3] = 255 & r } function xt(t, e) { var r = []; if (!e.length) return r; for (var i = t.byteLength, n = 0; n < i;) { var a = It(t, n), s = a > 1 ? n + a : i; if (bt(t.subarray(n + 4, n + 8)) === e[0]) if (1 === e.length) r.push(t.subarray(n + 8, s)); else { var o = xt(t.subarray(n + 8, s), e.slice(1)); o.length && Rt.apply(r, o) } n = s } return r } function Pt(t) { var e = [], r = t[0], i = 8, n = It(t, i); i += 4; var a = 0, s = 0; 0 === r ? (a = It(t, i), s = It(t, i + 4), i += 8) : (a = wt(t, i), s = wt(t, i + 8), i += 16), i += 2; var o = t.length + s, l = Dt(t, i); i += 2; for (var u = 0; u < l; u++) { var h = i, d = It(t, h); h += 4; var c = 2147483647 & d; if (1 == (2147483648 & d) >>> 31) return w.warn("SIDX has hierarchical references (not supported)"), null; var f = It(t, h); h += 4, e.push({ referenceSize: c, subsegmentDuration: f, info: { duration: f / n, start: o, end: o + c - 1 } }), o += c, i = h += 4 } return { earliestPresentationTime: a, timescale: n, version: r, referencesCount: l, references: e } } function Ft(t) { for (var e = [], r = xt(t, ["moov", "trak"]), n = 0; n < r.length; n++) { var a = r[n], s = xt(a, ["tkhd"])[0]; if (s) { var o = s[0], l = It(s, 0 === o ? 12 : 20), u = xt(a, ["mdia", "mdhd"])[0]; if (u) { var h = It(u, 0 === (o = u[0]) ? 12 : 20), d = xt(a, ["mdia", "hdlr"])[0]; if (d) { var c = bt(d.subarray(8, 12)), f = { soun: O, vide: N }[c]; if (f) { var g = Mt(xt(a, ["mdia", "minf", "stbl", "stsd"])[0]); e[l] = { timescale: h, type: f }, e[f] = i({ timescale: h, id: l }, g) } } } } } return xt(t, ["moov", "mvex", "trex"]).forEach((function (t) { var r = It(t, 4), i = e[r]; i && (i.default = { duration: It(t, 12), flags: It(t, 20) }) })), e } function Mt(t) { var e = t.subarray(8), r = e.subarray(86), i = bt(e.subarray(4, 8)), n = i, a = "enca" === i || "encv" === i; if (a) { var s = xt(e, [i])[0]; xt(s.subarray("enca" === i ? 28 : 78), ["sinf"]).forEach((function (t) { var e = xt(t, ["schm"])[0]; if (e) { var r = bt(e.subarray(4, 8)); if ("cbcs" === r || "cenc" === r) { var i = xt(t, ["frma"])[0]; i && (n = bt(i)) } } })) } switch (n) { case "avc1": case "avc2": case "avc3": case "avc4": var o = xt(r, ["avcC"])[0]; n += "." + Nt(o[1]) + Nt(o[2]) + Nt(o[3]); break; case "mp4a": var l = xt(e, [i])[0], u = xt(l.subarray(28), ["esds"])[0]; if (u && u.length > 12) { var h = 4; if (3 !== u[h++]) break; h = Ot(u, h), h += 2; var d = u[h++]; if (128 & d && (h += 2), 64 & d && (h += u[h++]), 4 !== u[h++]) break; h = Ot(u, h); var c = u[h++]; if (64 !== c) break; if (n += "." + Nt(c), h += 12, 5 !== u[h++]) break; h = Ot(u, h); var f = u[h++], g = (248 & f) >> 3; 31 === g && (g += 1 + ((7 & f) << 3) + ((224 & u[h]) >> 5)), n += "." + g } break; case "hvc1": case "hev1": var v = xt(r, ["hvcC"])[0], m = v[1], p = ["", "A", "B", "C"][m >> 6], y = 31 & m, E = It(v, 2), T = (32 & m) >> 5 ? "H" : "L", S = v[12], L = v.subarray(6, 12); n += "." + p + y, n += "." + E.toString(16).toUpperCase(), n += "." + T + S; for (var A = "", R = L.length; R--;) { var k = L[R]; (k || A) && (A = "." + k.toString(16).toUpperCase() + A) } n += A; break; case "dvh1": case "dvhe": var b = xt(r, ["dvcC"])[0], D = b[2] >> 1 & 127, I = b[2] << 5 & 32 | b[3] >> 3 & 31; n += "." + Ut(D) + "." + Ut(I); break; case "vp09": var w = xt(r, ["vpcC"])[0], C = w[4], _ = w[5], x = w[6] >> 4 & 15; n += "." + Ut(C) + "." + Ut(_) + "." + Ut(x); break; case "av01": var P = xt(r, ["av1C"])[0], F = P[1] >>> 5, M = 31 & P[1], O = P[2] >>> 7 ? "H" : "M", N = (64 & P[2]) >> 6, U = (32 & P[2]) >> 5, B = 2 === F && N ? U ? 12 : 10 : N ? 10 : 8, G = (16 & P[2]) >> 4, K = (8 & P[2]) >> 3, H = (4 & P[2]) >> 2, V = 3 & P[2]; n += "." + F + "." + Ut(M) + O + "." + Ut(B) + "." + G + "." + K + H + V + "." + Ut(1) + "." + Ut(1) + "." + Ut(1) + ".0" }return { codec: n, encrypted: a } } function Ot(t, e) { for (var r = e + 5; 128 & t[e++] && e < r;); return e } function Nt(t) { return ("0" + t.toString(16).toUpperCase()).slice(-2) } function Ut(t) { return (t < 10 ? "0" : "") + t } function Bt(t) { var e = xt(t, ["schm"])[0]; if (e) { var r = bt(e.subarray(4, 8)); if ("cbcs" === r || "cenc" === r) return xt(t, ["schi", "tenc"])[0] } return w.error("[eme] missing 'schm' box"), null } function Gt(t) { var e = It(t, 0), r = 8; 1 & e && (r += 4), 4 & e && (r += 4); for (var i = 0, n = It(t, 4), a = 0; a < n; a++)256 & e && (i += It(t, r), r += 4), 512 & e && (r += 4), 1024 & e && (r += 4), 2048 & e && (r += 4); return i } function Kt(t, e) { var r = new Uint8Array(t.length + e.length); return r.set(t), r.set(e, t.length), r } function Ht(t, e) { var r = [], i = e.samples, n = e.timescale, a = e.id, s = !1; return xt(i, ["moof"]).map((function (o) { var l = o.byteOffset - 8; xt(o, ["traf"]).map((function (o) { var u = xt(o, ["tfdt"]).map((function (t) { var e = t[0], r = It(t, 4); return 1 === e && (r *= Math.pow(2, 32), r += It(t, 8)), r / n }))[0]; return void 0 !== u && (t = u), xt(o, ["tfhd"]).map((function (u) { var h = It(u, 4), d = 16777215 & It(u, 0), c = 0, f = 0 != (16 & d), g = 0, v = 0 != (32 & d), m = 8; h === a && (0 != (1 & d) && (m += 8), 0 != (2 & d) && (m += 4), 0 != (8 & d) && (c = It(u, m), m += 4), f && (g = It(u, m), m += 4), v && (m += 4), "video" === e.type && (s = function (t) { if (!t) return !1; var e = t.indexOf("."), r = e < 0 ? t : t.substring(0, e); return "hvc1" === r || "hev1" === r || "dvh1" === r || "dvhe" === r }(e.codec)), xt(o, ["trun"]).map((function (a) { var o = a[0], u = 16777215 & It(a, 0), h = 0 != (1 & u), d = 0, f = 0 != (4 & u), v = 0 != (256 & u), m = 0, p = 0 != (512 & u), y = 0, E = 0 != (1024 & u), T = 0 != (2048 & u), S = 0, L = It(a, 4), A = 8; h && (d = It(a, A), A += 4), f && (A += 4); for (var R = d + l, k = 0; k < L; k++) { if (v ? (m = It(a, A), A += 4) : m = c, p ? (y = It(a, A), A += 4) : y = g, E && (A += 4), T && (S = 0 === o ? It(a, A) : Ct(a, A), A += 4), e.type === N) for (var b = 0; b < y;) { var D = It(i, R); Vt(s, i[R += 4]) && Yt(i.subarray(R, R + D), s ? 2 : 1, t + S / n, r), R += D, b += D + 4 } t += m / n } }))) })) })) })), r } function Vt(t, e) { if (t) { var r = e >> 1 & 63; return 39 === r || 40 === r } return 6 == (31 & e) } function Yt(t, e, r, i) { var n = Wt(t), a = 0; a += e; for (var s = 0, o = 0, l = 0; a < n.length;) { s = 0; do { if (a >= n.length) break; s += l = n[a++] } while (255 === l); o = 0; do { if (a >= n.length) break; o += l = n[a++] } while (255 === l); var u = n.length - a, h = a; if (o < u) a += o; else if (o > u) { w.error("Malformed SEI payload. " + o + " is too small, only " + u + " bytes left to parse."); break } if (4 === s) { if (181 === n[h++]) { var d = Dt(n, h); if (h += 2, 49 === d) { var c = It(n, h); if (h += 4, 1195456820 === c) { var f = n[h++]; if (3 === f) { var g = n[h++], v = 64 & g, m = v ? 2 + 3 * (31 & g) : 0, p = new Uint8Array(m); if (v) { p[0] = g; for (var y = 1; y < m; y++)p[y] = n[h++] } i.push({ type: f, payloadType: s, pts: r, bytes: p }) } } } } } else if (5 === s && o > 16) { for (var E = [], T = 0; T < 16; T++) { var S = n[h++].toString(16); E.push(1 == S.length ? "0" + S : S), 3 !== T && 5 !== T && 7 !== T && 9 !== T || E.push("-") } for (var L = o - 16, A = new Uint8Array(L), R = 0; R < L; R++)A[R] = n[h++]; i.push({ payloadType: s, pts: r, uuid: E.join(""), userData: Tt(A), userDataBytes: A }) } } } function Wt(t) { for (var e = t.byteLength, r = [], i = 1; i < e - 2;)0 === t[i] && 0 === t[i + 1] && 3 === t[i + 2] ? (r.push(i + 2), i += 2) : i++; if (0 === r.length) return t; var n = e - r.length, a = new Uint8Array(n), s = 0; for (i = 0; i < n; s++, i++)s === r[0] && (s++, r.shift()), a[i] = t[s]; return a } function jt(t, e, r) { if (16 !== t.byteLength) throw new RangeError("Invalid system id"); var i, n, a; if (e) { i = 1, n = new Uint8Array(16 * e.length); for (var s = 0; s < e.length; s++) { var o = e[s]; if (16 !== o.byteLength) throw new RangeError("Invalid key"); n.set(o, 16 * s) } } else i = 0, n = new Uint8Array; i > 0 ? (a = new Uint8Array(4), e.length > 0 && new DataView(a.buffer).setUint32(0, e.length, !1)) : a = new Uint8Array; var l = new Uint8Array(4); return r && r.byteLength > 0 && new DataView(l.buffer).setUint32(0, r.byteLength, !1), function (t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; for (var n = r.length, a = 8, s = n; s--;)a += r[s].byteLength; var o = new Uint8Array(a); for (o[0] = a >> 24 & 255, o[1] = a >> 16 & 255, o[2] = a >> 8 & 255, o[3] = 255 & a, o.set(t, 4), s = 0, a = 8; s < n; s++)o.set(r[s], a), a += r[s].byteLength; return o }([112, 115, 115, 104], new Uint8Array([i, 0, 0, 0]), t, a, n, l, r || new Uint8Array) } var qt = {}, Xt = function () { function t(t, e, r, i, n) { void 0 === i && (i = [1]), void 0 === n && (n = null), this.uri = void 0, this.method = void 0, this.keyFormat = void 0, this.keyFormatVersions = void 0, this.encrypted = void 0, this.isCommonEncryption = void 0, this.iv = null, this.key = null, this.keyId = null, this.pssh = null, this.method = t, this.uri = e, this.keyFormat = r, this.keyFormatVersions = i, this.iv = n, this.encrypted = !!t && "NONE" !== t, this.isCommonEncryption = this.encrypted && "AES-128" !== t } t.clearKeyUriToKeyIdMap = function () { qt = {} }; var e = t.prototype; return e.isSupported = function () { if (this.method) { if ("AES-128" === this.method || "NONE" === this.method) return !0; if ("identity" === this.keyFormat) return "SAMPLE-AES" === this.method; switch (this.keyFormat) { case z: case J: case Q: case X: return -1 !== ["ISO-23001-7", "SAMPLE-AES", "SAMPLE-AES-CENC", "SAMPLE-AES-CTR"].indexOf(this.method) } } return !1 }, e.getDecryptData = function (e) { if (!this.encrypted || !this.uri) return null; if ("AES-128" === this.method && this.uri && !this.iv) { "number" != typeof e && ("AES-128" !== this.method || this.iv || w.warn('missing IV for initialization segment with method="' + this.method + '" - compliance issue'), e = 0); var r = function (t) { for (var e = new Uint8Array(16), r = 12; r < 16; r++)e[r] = t >> 8 * (15 - r) & 255; return e }(e); return new t(this.method, this.uri, "identity", this.keyFormatVersions, r) } var i = Y(this.uri); if (i) switch (this.keyFormat) { case J: this.pssh = i, i.length >= 22 && (this.keyId = i.subarray(i.length - 22, i.length - 6)); break; case Q: var n = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]); this.pssh = jt(n, null, i); var a = new Uint16Array(i.buffer, i.byteOffset, i.byteLength / 2), s = String.fromCharCode.apply(null, Array.from(a)), o = s.substring(s.indexOf("<"), s.length), l = (new DOMParser).parseFromString(o, "text/xml").getElementsByTagName("KID")[0]; if (l) { var u = l.childNodes[0] ? l.childNodes[0].nodeValue : l.getAttribute("VALUE"); if (u) { var h = V(u).subarray(0, 16); !function (t) { var e = function (t, e, r) { var i = t[e]; t[e] = t[r], t[r] = i }; e(t, 0, 3), e(t, 1, 2), e(t, 4, 5), e(t, 6, 7) }(h), this.keyId = h } } break; default: var d = i.subarray(0, 16); if (16 !== d.length) { var c = new Uint8Array(16); c.set(d, 16 - d.length), d = c } this.keyId = d }if (!this.keyId || 16 !== this.keyId.byteLength) { var f = qt[this.uri]; if (!f) { var g = Object.keys(qt).length % Number.MAX_SAFE_INTEGER; f = new Uint8Array(16), new DataView(f.buffer, 12, 4).setUint32(0, g), qt[this.uri] = f } this.keyId = f } return this }, t }(), zt = /\{\$([a-zA-Z0-9-_]+)\}/g; function Qt(t) { return zt.test(t) } function Jt(t, e, r) { if (null !== t.variableList || t.hasVariableRefs) for (var i = r.length; i--;) { var n = r[i], a = e[n]; a && (e[n] = $t(t, a)) } } function $t(t, e) { if (null !== t.variableList || t.hasVariableRefs) { var r = t.variableList; return e.replace(zt, (function (e) { var i = e.substring(2, e.length - 1), n = null == r ? void 0 : r[i]; return void 0 === n ? (t.playlistParsingError || (t.playlistParsingError = new Error('Missing preceding EXT-X-DEFINE tag for Variable Reference: "' + i + '"')), e) : n })) } return e } function Zt(t, e, r) { var i, n, a = t.variableList; if (a || (t.variableList = a = {}), "QUERYPARAM" in e) { i = e.QUERYPARAM; try { var s = new self.URL(r).searchParams; if (!s.has(i)) throw new Error('"' + i + '" does not match any query parameter in URI: "' + r + '"'); n = s.get(i) } catch (e) { t.playlistParsingError || (t.playlistParsingError = new Error("EXT-X-DEFINE QUERYPARAM: " + e.message)) } } else i = e.NAME, n = e.VALUE; i in a ? t.playlistParsingError || (t.playlistParsingError = new Error('EXT-X-DEFINE duplicate Variable Name declarations: "' + i + '"')) : a[i] = n || "" } function te(t, e, r) { var i = e.IMPORT; if (r && i in r) { var n = t.variableList; n || (t.variableList = n = {}), n[i] = r[i] } else t.playlistParsingError || (t.playlistParsingError = new Error('EXT-X-DEFINE IMPORT attribute not found in Multivariant Playlist: "' + i + '"')) } function ee(t) { if (void 0 === t && (t = !0), "undefined" != typeof self) return (t || !self.MediaSource) && self.ManagedMediaSource || self.MediaSource || self.WebKitMediaSource } var re = { audio: { a3ds: 1, "ac-3": .95, "ac-4": 1, alac: .9, alaw: 1, dra1: 1, "dts+": 1, "dts-": 1, dtsc: 1, dtse: 1, dtsh: 1, "ec-3": .9, enca: 1, fLaC: .9, flac: .9, FLAC: .9, g719: 1, g726: 1, m4ae: 1, mha1: 1, mha2: 1, mhm1: 1, mhm2: 1, mlpa: 1, mp4a: 1, "raw ": 1, Opus: 1, opus: 1, samr: 1, sawb: 1, sawp: 1, sevc: 1, sqcp: 1, ssmv: 1, twos: 1, ulaw: 1 }, video: { avc1: 1, avc2: 1, avc3: 1, avc4: 1, avcp: 1, av01: .8, drac: 1, dva1: 1, dvav: 1, dvh1: .7, dvhe: .7, encv: 1, hev1: .75, hvc1: .75, mjp2: 1, mp4v: 1, mvc1: 1, mvc2: 1, mvc3: 1, mvc4: 1, resv: 1, rv60: 1, s263: 1, svc1: 1, svc2: 1, "vc-1": 1, vp08: 1, vp09: .9 }, text: { stpp: 1, wvtt: 1 } }; function ie(t, e, r) { return void 0 === r && (r = !0), !t.split(",").some((function (t) { return !ne(t, e, r) })) } function ne(t, e, r) { var i; void 0 === r && (r = !0); var n = ee(r); return null != (i = null == n ? void 0 : n.isTypeSupported(ae(t, e))) && i } function ae(t, e) { return e + '/mp4;codecs="' + t + '"' } function se(t) { if (t) { var e = t.substring(0, 4); return re.video[e] } return 2 } function oe(t) { return t.split(",").reduce((function (t, e) { var r = re.video[e]; return r ? (2 * r + t) / (t ? 3 : 2) : (re.audio[e] + t) / (t ? 2 : 1) }), 0) } var le = {}, ue = /flac|opus/i; function he(t, e) { return void 0 === e && (e = !0), t.replace(ue, (function (t) { return function (t, e) { if (void 0 === e && (e = !0), le[t]) return le[t]; for (var r = { flac: ["flac", "fLaC", "FLAC"], opus: ["opus", "Opus"] }[t], i = 0; i < r.length; i++)if (ne(r[i], "audio", e)) return le[t] = r[i], r[i]; return t }(t.toLowerCase(), e) })) } function de(t, e) { return t && "mp4a" !== t ? t : e ? e.split(",")[0] : e } var ce = /#EXT-X-STREAM-INF:([^\r\n]*)(?:[\r\n](?:#[^\r\n]*)?)*([^\r\n]+)|#EXT-X-(SESSION-DATA|SESSION-KEY|DEFINE|CONTENT-STEERING|START):([^\r\n]*)[\r\n]+/g, fe = /#EXT-X-MEDIA:(.*)/g, ge = /^#EXT(?:INF|-X-TARGETDURATION):/m, ve = new RegExp([/#EXTINF:\s*(\d*(?:\.\d+)?)(?:,(.*)\s+)?/.source, /(?!#) *(\S[\S ]*)/.source, /#EXT-X-BYTERANGE:*(.+)/.source, /#EXT-X-PROGRAM-DATE-TIME:(.+)/.source, /#.*/.source].join("|"), "g"), me = new RegExp([/#(EXTM3U)/.source, /#EXT-X-(DATERANGE|DEFINE|KEY|MAP|PART|PART-INF|PLAYLIST-TYPE|PRELOAD-HINT|RENDITION-REPORT|SERVER-CONTROL|SKIP|START):(.+)/.source, /#EXT-X-(BITRATE|DISCONTINUITY-SEQUENCE|MEDIA-SEQUENCE|TARGETDURATION|VERSION): *(\d+)/.source, /#EXT-X-(DISCONTINUITY|ENDLIST|GAP|INDEPENDENT-SEGMENTS)/.source, /(#)([^:]*):(.*)/.source, /(#)(.*)(?:.*)\r?\n?/.source].join("|")), pe = function () { function t() { } return t.findGroup = function (t, e) { for (var r = 0; r < t.length; r++) { var i = t[r]; if (i.id === e) return i } }, t.resolve = function (t, e) { return p.buildAbsoluteURL(e, t, { alwaysNormalize: !0 }) }, t.isMediaPlaylist = function (t) { return ge.test(t) }, t.parseMasterPlaylist = function (e, r) { var i, n = { contentSteering: null, levels: [], playlistParsingError: null, sessionData: null, sessionKeys: null, startTimeOffset: null, variableList: null, hasVariableRefs: Qt(e) }, a = []; for (ce.lastIndex = 0; null != (i = ce.exec(e));)if (i[1]) { var s, o = new x(i[1]); Jt(n, o, ["CODECS", "SUPPLEMENTAL-CODECS", "ALLOWED-CPC", "PATHWAY-ID", "STABLE-VARIANT-ID", "AUDIO", "VIDEO", "SUBTITLES", "CLOSED-CAPTIONS", "NAME"]); var l = $t(n, i[2]), u = { attrs: o, bitrate: o.decimalInteger("BANDWIDTH") || o.decimalInteger("AVERAGE-BANDWIDTH"), name: o.NAME, url: t.resolve(l, r) }, h = o.decimalResolution("RESOLUTION"); h && (u.width = h.width, u.height = h.height), Te(o.CODECS, u), null != (s = u.unknownCodecs) && s.length || a.push(u), n.levels.push(u) } else if (i[3]) { var d = i[3], c = i[4]; switch (d) { case "SESSION-DATA": var f = new x(c); Jt(n, f, ["DATA-ID", "LANGUAGE", "VALUE", "URI"]); var g = f["DATA-ID"]; g && (null === n.sessionData && (n.sessionData = {}), n.sessionData[g] = f); break; case "SESSION-KEY": var v = ye(c, r, n); v.encrypted && v.isSupported() ? (null === n.sessionKeys && (n.sessionKeys = []), n.sessionKeys.push(v)) : w.warn('[Keys] Ignoring invalid EXT-X-SESSION-KEY tag: "' + c + '"'); break; case "DEFINE": var m = new x(c); Jt(n, m, ["NAME", "VALUE", "QUERYPARAM"]), Zt(n, m, r); break; case "CONTENT-STEERING": var p = new x(c); Jt(n, p, ["SERVER-URI", "PATHWAY-ID"]), n.contentSteering = { uri: t.resolve(p["SERVER-URI"], r), pathwayId: p["PATHWAY-ID"] || "." }; break; case "START": n.startTimeOffset = Ee(c) } } var y = a.length > 0 && a.length < n.levels.length; return n.levels = y ? a : n.levels, 0 === n.levels.length && (n.playlistParsingError = new Error("no levels found in manifest")), n }, t.parseMasterPlaylistMedia = function (e, r, i) { var n, a = {}, s = i.levels, o = { AUDIO: s.map((function (t) { return { id: t.attrs.AUDIO, audioCodec: t.audioCodec } })), SUBTITLES: s.map((function (t) { return { id: t.attrs.SUBTITLES, textCodec: t.textCodec } })), "CLOSED-CAPTIONS": [] }, l = 0; for (fe.lastIndex = 0; null !== (n = fe.exec(e));) { var u = new x(n[1]), h = u.TYPE; if (h) { var d = o[h], c = a[h] || []; a[h] = c, Jt(i, u, ["URI", "GROUP-ID", "LANGUAGE", "ASSOC-LANGUAGE", "STABLE-RENDITION-ID", "NAME", "INSTREAM-ID", "CHARACTERISTICS", "CHANNELS"]); var f = u.LANGUAGE, g = u["ASSOC-LANGUAGE"], v = u.CHANNELS, m = u.CHARACTERISTICS, p = u["INSTREAM-ID"], y = { attrs: u, bitrate: 0, id: l++, groupId: u["GROUP-ID"] || "", name: u.NAME || f || "", type: h, default: u.bool("DEFAULT"), autoselect: u.bool("AUTOSELECT"), forced: u.bool("FORCED"), lang: f, url: u.URI ? t.resolve(u.URI, r) : "" }; if (g && (y.assocLang = g), v && (y.channels = v), m && (y.characteristics = m), p && (y.instreamId = p), null != d && d.length) { var E = t.findGroup(d, y.groupId) || d[0]; Se(y, E, "audioCodec"), Se(y, E, "textCodec") } c.push(y) } } return a }, t.parseLevelPlaylist = function (t, e, r, i, n, a) { var s, l, u, h = new H(e), d = h.fragments, c = null, f = 0, g = 0, v = 0, m = 0, p = null, E = new G(i, e), T = -1, S = !1, L = null; for (ve.lastIndex = 0, h.m3u8 = t, h.hasVariableRefs = Qt(t); null !== (s = ve.exec(t));) { S && (S = !1, (E = new G(i, e)).start = v, E.sn = f, E.cc = m, E.level = r, c && (E.initSegment = c, E.rawProgramDateTime = c.rawProgramDateTime, c.rawProgramDateTime = null, L && (E.setByteRange(L), L = null))); var A = s[1]; if (A) { E.duration = parseFloat(A); var R = (" " + s[2]).slice(1); E.title = R || null, E.tagList.push(R ? ["INF", A, R] : ["INF", A]) } else if (s[3]) { if (y(E.duration)) { E.start = v, u && Re(E, u, h), E.sn = f, E.level = r, E.cc = m, d.push(E); var k = (" " + s[3]).slice(1); E.relurl = $t(h, k), Le(E, p), p = E, v += E.duration, f++, g = 0, S = !0 } } else if (s[4]) { var b = (" " + s[4]).slice(1); p ? E.setByteRange(b, p) : E.setByteRange(b) } else if (s[5]) E.rawProgramDateTime = (" " + s[5]).slice(1), E.tagList.push(["PROGRAM-DATE-TIME", E.rawProgramDateTime]), -1 === T && (T = d.length); else { if (!(s = s[0].match(me))) { w.warn("No matches on slow regex match for level playlist!"); continue } for (l = 1; l < s.length && void 0 === s[l]; l++); var D = (" " + s[l]).slice(1), I = (" " + s[l + 1]).slice(1), C = s[l + 2] ? (" " + s[l + 2]).slice(1) : ""; switch (D) { case "PLAYLIST-TYPE": h.type = I.toUpperCase(); break; case "MEDIA-SEQUENCE": f = h.startSN = parseInt(I); break; case "SKIP": var _ = new x(I); Jt(h, _, ["RECENTLY-REMOVED-DATERANGES"]); var P = _.decimalInteger("SKIPPED-SEGMENTS"); if (y(P)) { h.skippedSegments = P; for (var M = P; M--;)d.unshift(null); f += P } var O = _.enumeratedString("RECENTLY-REMOVED-DATERANGES"); O && (h.recentlyRemovedDateranges = O.split("\t")); break; case "TARGETDURATION": h.targetduration = Math.max(parseInt(I), 1); break; case "VERSION": h.version = parseInt(I); break; case "INDEPENDENT-SEGMENTS": case "EXTM3U": break; case "ENDLIST": h.live = !1; break; case "#": (I || C) && E.tagList.push(C ? [I, C] : [I]); break; case "DISCONTINUITY": m++, E.tagList.push(["DIS"]); break; case "GAP": E.gap = !0, E.tagList.push([D]); break; case "BITRATE": E.tagList.push([D, I]); break; case "DATERANGE": var N = new x(I); Jt(h, N, ["ID", "CLASS", "START-DATE", "END-DATE", "SCTE35-CMD", "SCTE35-OUT", "SCTE35-IN"]), Jt(h, N, N.clientAttrs); var U = new F(N, h.dateRanges[N.ID]); U.isValid || h.skippedSegments ? h.dateRanges[U.id] = U : w.warn('Ignoring invalid DATERANGE tag: "' + I + '"'), E.tagList.push(["EXT-X-DATERANGE", I]); break; case "DEFINE": var B = new x(I); Jt(h, B, ["NAME", "VALUE", "IMPORT", "QUERYPARAM"]), "IMPORT" in B ? te(h, B, a) : Zt(h, B, e); break; case "DISCONTINUITY-SEQUENCE": m = parseInt(I); break; case "KEY": var V = ye(I, e, h); if (V.isSupported()) { if ("NONE" === V.method) { u = void 0; break } u || (u = {}), u[V.keyFormat] && (u = o({}, u)), u[V.keyFormat] = V } else w.warn('[Keys] Ignoring invalid EXT-X-KEY tag: "' + I + '"'); break; case "START": h.startTimeOffset = Ee(I); break; case "MAP": var Y = new x(I); if (Jt(h, Y, ["BYTERANGE", "URI"]), E.duration) { var W = new G(i, e); Ae(W, Y, r, u), c = W, E.initSegment = c, c.rawProgramDateTime && !E.rawProgramDateTime && (E.rawProgramDateTime = c.rawProgramDateTime) } else { var j = E.byteRangeEndOffset; if (j) { var q = E.byteRangeStartOffset; L = j - q + "@" + q } else L = null; Ae(E, Y, r, u), c = E, S = !0 } break; case "SERVER-CONTROL": var X = new x(I); h.canBlockReload = X.bool("CAN-BLOCK-RELOAD"), h.canSkipUntil = X.optionalFloat("CAN-SKIP-UNTIL", 0), h.canSkipDateRanges = h.canSkipUntil > 0 && X.bool("CAN-SKIP-DATERANGES"), h.partHoldBack = X.optionalFloat("PART-HOLD-BACK", 0), h.holdBack = X.optionalFloat("HOLD-BACK", 0); break; case "PART-INF": var z = new x(I); h.partTarget = z.decimalFloatingPoint("PART-TARGET"); break; case "PART": var Q = h.partList; Q || (Q = h.partList = []); var J = g > 0 ? Q[Q.length - 1] : void 0, $ = g++, Z = new x(I); Jt(h, Z, ["BYTERANGE", "URI"]); var tt = new K(Z, E, e, $, J); Q.push(tt), E.duration += tt.duration; break; case "PRELOAD-HINT": var et = new x(I); Jt(h, et, ["URI"]), h.preloadHint = et; break; case "RENDITION-REPORT": var rt = new x(I); Jt(h, rt, ["URI"]), h.renditionReports = h.renditionReports || [], h.renditionReports.push(rt); break; default: w.warn("line parsed but not handled: " + s) } } } p && !p.relurl ? (d.pop(), v -= p.duration, h.partList && (h.fragmentHint = p)) : h.partList && (Le(E, p), E.cc = m, h.fragmentHint = E, u && Re(E, u, h)); var it = d.length, nt = d[0], at = d[it - 1]; if ((v += h.skippedSegments * h.targetduration) > 0 && it && at) { h.averagetargetduration = v / it; var st = at.sn; h.endSN = "initSegment" !== st ? st : 0, h.live || (at.endList = !0), nt && (h.startCC = nt.cc) } else h.endSN = 0, h.startCC = 0; return h.fragmentHint && (v += h.fragmentHint.duration), h.totalduration = v, h.endCC = m, T > 0 && function (t, e) { for (var r = t[e], i = e; i--;) { var n = t[i]; if (!n) return; n.programDateTime = r.programDateTime - 1e3 * n.duration, r = n } }(d, T), h }, t }(); function ye(t, e, r) { var i, n, a = new x(t); Jt(r, a, ["KEYFORMAT", "KEYFORMATVERSIONS", "URI", "IV", "URI"]); var s = null != (i = a.METHOD) ? i : "", o = a.URI, l = a.hexadecimalInteger("IV"), u = a.KEYFORMATVERSIONS, h = null != (n = a.KEYFORMAT) ? n : "identity"; o && a.IV && !l && w.error("Invalid IV: " + a.IV); var d = o ? pe.resolve(o, e) : "", c = (u || "1").split("/").map(Number).filter(Number.isFinite); return new Xt(s, d, h, c, l) } function Ee(t) { var e = new x(t).decimalFloatingPoint("TIME-OFFSET"); return y(e) ? e : null } function Te(t, e) { var r = (t || "").split(/[ ,]+/).filter((function (t) { return t }));["video", "audio", "text"].forEach((function (t) { var i = r.filter((function (e) { return function (t, e) { var r = re[e]; return !!r && !!r[t.slice(0, 4)] }(e, t) })); i.length && (e[t + "Codec"] = i.join(","), r = r.filter((function (t) { return -1 === i.indexOf(t) }))) })), e.unknownCodecs = r } function Se(t, e, r) { var i = e[r]; i && (t[r] = i) } function Le(t, e) { t.rawProgramDateTime ? t.programDateTime = Date.parse(t.rawProgramDateTime) : null != e && e.programDateTime && (t.programDateTime = e.endProgramDateTime), y(t.programDateTime) || (t.programDateTime = null, t.rawProgramDateTime = null) } function Ae(t, e, r, i) { t.relurl = e.URI, e.BYTERANGE && t.setByteRange(e.BYTERANGE), t.level = r, t.sn = "initSegment", i && (t.levelkeys = i), t.initSegment = null } function Re(t, e, r) { t.levelkeys = e; var i = r.encryptedFragments; i.length && i[i.length - 1].levelkeys === e || !Object.keys(e).some((function (t) { return e[t].isCommonEncryption })) || i.push(t) } var ke = "manifest", be = "level", De = "audioTrack", Ie = "subtitleTrack", we = "main", Ce = "audio", _e = "subtitle"; function xe(t) { switch (t.type) { case De: return Ce; case Ie: return _e; default: return we } } function Pe(t, e) { var r = t.url; return void 0 !== r && 0 !== r.indexOf("data:") || (r = e.url), r } var Fe = function () { function t(t) { this.hls = void 0, this.loaders = Object.create(null), this.variableList = null, this.hls = t, this.registerListeners() } var e = t.prototype; return e.startLoad = function (t) { }, e.stopLoad = function () { this.destroyInternalLoaders() }, e.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.on(S.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this) }, e.unregisterListeners = function () { var t = this.hls; t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this), t.off(S.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this) }, e.createInternalLoader = function (t) { var e = this.hls.config, r = e.pLoader, i = e.loader, n = new (r || i)(e); return this.loaders[t.type] = n, n }, e.getInternalLoader = function (t) { return this.loaders[t.type] }, e.resetInternalLoader = function (t) { this.loaders[t] && delete this.loaders[t] }, e.destroyInternalLoaders = function () { for (var t in this.loaders) { var e = this.loaders[t]; e && e.destroy(), this.resetInternalLoader(t) } }, e.destroy = function () { this.variableList = null, this.unregisterListeners(), this.destroyInternalLoaders() }, e.onManifestLoading = function (t, e) { var r = e.url; this.variableList = null, this.load({ id: null, level: 0, responseType: "text", type: ke, url: r, deliveryDirectives: null }) }, e.onLevelLoading = function (t, e) { var r = e.id, i = e.level, n = e.pathwayId, a = e.url, s = e.deliveryDirectives; this.load({ id: r, level: i, pathwayId: n, responseType: "text", type: be, url: a, deliveryDirectives: s }) }, e.onAudioTrackLoading = function (t, e) { var r = e.id, i = e.groupId, n = e.url, a = e.deliveryDirectives; this.load({ id: r, groupId: i, level: null, responseType: "text", type: De, url: n, deliveryDirectives: a }) }, e.onSubtitleTrackLoading = function (t, e) { var r = e.id, i = e.groupId, n = e.url, a = e.deliveryDirectives; this.load({ id: r, groupId: i, level: null, responseType: "text", type: Ie, url: n, deliveryDirectives: a }) }, e.load = function (t) { var e, r, i, n = this, a = this.hls.config, s = this.getInternalLoader(t); if (s) { var l = s.context; if (l && l.url === t.url && l.level === t.level) return void w.trace("[playlist-loader]: playlist request ongoing"); w.log("[playlist-loader]: aborting previous loader for type: " + t.type), s.abort() } if (r = t.type === ke ? a.manifestLoadPolicy.default : o({}, a.playlistLoadPolicy.default, { timeoutRetry: null, errorRetry: null }), s = this.createInternalLoader(t), y(null == (e = t.deliveryDirectives) ? void 0 : e.part) && (t.type === be && null !== t.level ? i = this.hls.levels[t.level].details : t.type === De && null !== t.id ? i = this.hls.audioTracks[t.id].details : t.type === Ie && null !== t.id && (i = this.hls.subtitleTracks[t.id].details), i)) { var u = i.partTarget, h = i.targetduration; if (u && h) { var d = 1e3 * Math.max(3 * u, .8 * h); r = o({}, r, { maxTimeToFirstByteMs: Math.min(d, r.maxTimeToFirstByteMs), maxLoadTimeMs: Math.min(d, r.maxTimeToFirstByteMs) }) } } var c = r.errorRetry || r.timeoutRetry || {}, f = { loadPolicy: r, timeout: r.maxLoadTimeMs, maxRetry: c.maxNumRetry || 0, retryDelay: c.retryDelayMs || 0, maxRetryDelay: c.maxRetryDelayMs || 0 }, g = { onSuccess: function (t, e, r, i) { var a = n.getInternalLoader(r); n.resetInternalLoader(r.type); var s = t.data; 0 === s.indexOf("#EXTM3U") ? (e.parsing.start = performance.now(), pe.isMediaPlaylist(s) ? n.handleTrackOrLevelPlaylist(t, e, r, i || null, a) : n.handleMasterPlaylist(t, e, r, i)) : n.handleManifestParsingError(t, r, new Error("no EXTM3U delimiter"), i || null, e) }, onError: function (t, e, r, i) { n.handleNetworkError(e, r, !1, t, i) }, onTimeout: function (t, e, r) { n.handleNetworkError(e, r, !0, void 0, t) } }; s.load(t, f, g) }, e.handleMasterPlaylist = function (t, e, r, i) { var n = this.hls, a = t.data, s = Pe(t, r), o = pe.parseMasterPlaylist(a, s); if (o.playlistParsingError) this.handleManifestParsingError(t, r, o.playlistParsingError, i, e); else { var l = o.contentSteering, u = o.levels, h = o.sessionData, d = o.sessionKeys, c = o.startTimeOffset, f = o.variableList; this.variableList = f; var g = pe.parseMasterPlaylistMedia(a, s, o), v = g.AUDIO, m = void 0 === v ? [] : v, p = g.SUBTITLES, y = g["CLOSED-CAPTIONS"]; m.length && (m.some((function (t) { return !t.url })) || !u[0].audioCodec || u[0].attrs.AUDIO || (w.log("[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one"), m.unshift({ type: "main", name: "main", groupId: "main", default: !1, autoselect: !1, forced: !1, id: -1, attrs: new x({}), bitrate: 0, url: "" }))), n.trigger(S.MANIFEST_LOADED, { levels: u, audioTracks: m, subtitles: p, captions: y, contentSteering: l, url: s, stats: e, networkDetails: i, sessionData: h, sessionKeys: d, startTimeOffset: c, variableList: f }) } }, e.handleTrackOrLevelPlaylist = function (t, e, r, i, n) { var a = this.hls, s = r.id, o = r.level, l = r.type, u = Pe(t, r), h = y(o) ? o : y(s) ? s : 0, d = xe(r), c = pe.parseLevelPlaylist(t.data, u, h, d, 0, this.variableList); if (l === ke) { var f = { attrs: new x({}), bitrate: 0, details: c, name: "", url: u }; a.trigger(S.MANIFEST_LOADED, { levels: [f], audioTracks: [], url: u, stats: e, networkDetails: i, sessionData: null, sessionKeys: null, contentSteering: null, startTimeOffset: null, variableList: null }) } e.parsing.end = performance.now(), r.levelDetails = c, this.handlePlaylistLoaded(c, t, e, r, i, n) }, e.handleManifestParsingError = function (t, e, r, i, n) { this.hls.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.MANIFEST_PARSING_ERROR, fatal: e.type === ke, url: t.url, err: r, error: r, reason: r.message, response: t, context: e, networkDetails: i, stats: n }) }, e.handleNetworkError = function (t, e, r, n, a) { void 0 === r && (r = !1); var s = "A network " + (r ? "timeout" : "error" + (n ? " (status " + n.code + ")" : "")) + " occurred while loading " + t.type; t.type === be ? s += ": " + t.level + " id: " + t.id : t.type !== De && t.type !== Ie || (s += " id: " + t.id + ' group-id: "' + t.groupId + '"'); var o = new Error(s); w.warn("[playlist-loader]: " + s); var l = A.UNKNOWN, u = !1, h = this.getInternalLoader(t); switch (t.type) { case ke: l = r ? A.MANIFEST_LOAD_TIMEOUT : A.MANIFEST_LOAD_ERROR, u = !0; break; case be: l = r ? A.LEVEL_LOAD_TIMEOUT : A.LEVEL_LOAD_ERROR, u = !1; break; case De: l = r ? A.AUDIO_TRACK_LOAD_TIMEOUT : A.AUDIO_TRACK_LOAD_ERROR, u = !1; break; case Ie: l = r ? A.SUBTITLE_TRACK_LOAD_TIMEOUT : A.SUBTITLE_LOAD_ERROR, u = !1 }h && this.resetInternalLoader(t.type); var d = { type: L.NETWORK_ERROR, details: l, fatal: u, url: t.url, loader: h, context: t, error: o, networkDetails: e, stats: a }; if (n) { var c = (null == e ? void 0 : e.url) || t.url; d.response = i({ url: c, data: void 0 }, n) } this.hls.trigger(S.ERROR, d) }, e.handlePlaylistLoaded = function (t, e, r, i, n, a) { var s = this.hls, o = i.type, l = i.level, u = i.id, h = i.groupId, d = i.deliveryDirectives, c = Pe(e, i), f = xe(i), g = "number" == typeof i.level && f === we ? l : void 0; if (t.fragments.length) { t.targetduration || (t.playlistParsingError = new Error("Missing Target Duration")); var v = t.playlistParsingError; if (v) s.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.LEVEL_PARSING_ERROR, fatal: !1, url: c, error: v, reason: v.message, response: e, context: i, level: g, parent: f, networkDetails: n, stats: r }); else switch (t.live && a && (a.getCacheAge && (t.ageHeader = a.getCacheAge() || 0), a.getCacheAge && !isNaN(t.ageHeader) || (t.ageHeader = 0)), o) { case ke: case be: s.trigger(S.LEVEL_LOADED, { details: t, level: g || 0, id: u || 0, stats: r, networkDetails: n, deliveryDirectives: d }); break; case De: s.trigger(S.AUDIO_TRACK_LOADED, { details: t, id: u || 0, groupId: h || "", stats: r, networkDetails: n, deliveryDirectives: d }); break; case Ie: s.trigger(S.SUBTITLE_TRACK_LOADED, { details: t, id: u || 0, groupId: h || "", stats: r, networkDetails: n, deliveryDirectives: d }) } } else { var m = new Error("No Segments found in Playlist"); s.trigger(S.ERROR, { type: L.NETWORK_ERROR, details: A.LEVEL_EMPTY_ERROR, fatal: !1, url: c, error: m, reason: m.message, response: e, context: i, level: g, parent: f, networkDetails: n, stats: r }) } }, t }(); function Me(t, e) { var r; try { r = new Event("addtrack") } catch (t) { (r = document.createEvent("Event")).initEvent("addtrack", !1, !1) } r.track = t, e.dispatchEvent(r) } function Oe(t, e) { var r = t.mode; if ("disabled" === r && (t.mode = "hidden"), t.cues && !t.cues.getCueById(e.id)) try { if (t.addCue(e), !t.cues.getCueById(e.id)) throw new Error("addCue is failed for: " + e) } catch (r) { w.debug("[texttrack-utils]: " + r); try { var i = new self.TextTrackCue(e.startTime, e.endTime, e.text); i.id = e.id, t.addCue(i) } catch (t) { w.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: " + t) } } "disabled" === r && (t.mode = r) } function Ne(t) { var e = t.mode; if ("disabled" === e && (t.mode = "hidden"), t.cues) for (var r = t.cues.length; r--;)t.removeCue(t.cues[r]); "disabled" === e && (t.mode = e) } function Ue(t, e, r, i) { var n = t.mode; if ("disabled" === n && (t.mode = "hidden"), t.cues && t.cues.length > 0) for (var a = function (t, e, r) { var i = [], n = function (t, e) { if (e < t[0].startTime) return 0; var r = t.length - 1; if (e > t[r].endTime) return -1; for (var i = 0, n = r; i <= n;) { var a = Math.floor((n + i) / 2); if (e < t[a].startTime) n = a - 1; else { if (!(e > t[a].startTime && i < r)) return a; i = a + 1 } } return t[i].startTime - e < e - t[n].startTime ? i : n }(t, e); if (n > -1) for (var a = n, s = t.length; a < s; a++) { var o = t[a]; if (o.startTime >= e && o.endTime <= r) i.push(o); else if (o.startTime > r) return i } return i }(t.cues, e, r), s = 0; s < a.length; s++)i && !i(a[s]) || t.removeCue(a[s]); "disabled" === n && (t.mode = n) } function Be(t) { for (var e = [], r = 0; r < t.length; r++) { var i = t[r]; "subtitles" !== i.kind && "captions" !== i.kind || !i.label || e.push(t[r]) } return e } var Ge = "org.id3", Ke = "com.apple.quicktime.HLS", He = "https://aomedia.org/emsg/ID3"; function Ve() { if ("undefined" != typeof self) return self.VTTCue || self.TextTrackCue } function Ye(t, e, r, n, a) { var s = new t(e, r, ""); try { s.value = n, a && (s.type = a) } catch (o) { s = new t(e, r, JSON.stringify(a ? i({ type: a }, n) : n)) } return s } var We = function () { var t = Ve(); try { t && new t(0, Number.POSITIVE_INFINITY, "") } catch (t) { return Number.MAX_VALUE } return Number.POSITIVE_INFINITY }(); function je(t, e) { return t.getTime() / 1e3 - e } var qe = function () { function t(t) { this.hls = void 0, this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = t, this._registerListeners() } var e = t.prototype; return e.destroy = function () { this._unregisterListeners(), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}, this.hls = null }, e._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e.onMediaAttached = function (t, e) { this.media = e.media }, e.onMediaDetaching = function () { this.id3Track && (Ne(this.id3Track), this.id3Track = null, this.media = null, this.dateRangeCuesAppended = {}) }, e.onManifestLoading = function () { this.dateRangeCuesAppended = {} }, e.createTrack = function (t) { var e = this.getID3Track(t.textTracks); return e.mode = "hidden", e }, e.getID3Track = function (t) { if (this.media) { for (var e = 0; e < t.length; e++) { var r = t[e]; if ("metadata" === r.kind && "id3" === r.label) return Me(r, this.media), r } return this.media.addTextTrack("metadata", "id3") } }, e.onFragParsingMetadata = function (t, e) { if (this.media) { var r = this.hls.config, i = r.enableEmsgMetadataCues, n = r.enableID3MetadataCues; if (i || n) { var a = e.samples; this.id3Track || (this.id3Track = this.createTrack(this.media)); var s = Ve(); if (s) for (var o = 0; o < a.length; o++) { var l = a[o].type; if ((l !== He || i) && n) { var u = gt(a[o].data); if (u) { var h = a[o].pts, d = h + a[o].duration; d > We && (d = We), d - h <= 0 && (d = h + .25); for (var c = 0; c < u.length; c++) { var f = u[c]; if (!ct(f)) { this.updateId3CueEnds(h, l); var g = Ye(s, h, d, f, l); g && this.id3Track.addCue(g) } } } } } } } }, e.updateId3CueEnds = function (t, e) { var r, i = null == (r = this.id3Track) ? void 0 : r.cues; if (i) for (var n = i.length; n--;) { var a = i[n]; a.type === e && a.startTime < t && a.endTime === We && (a.endTime = t) } }, e.onBufferFlushing = function (t, e) { var r = e.startOffset, i = e.endOffset, n = e.type, a = this.id3Track, s = this.hls; if (s) { var o = s.config, l = o.enableEmsgMetadataCues, u = o.enableID3MetadataCues; a && (l || u) && Ue(a, r, i, "audio" === n ? function (t) { return t.type === Ge && u } : "video" === n ? function (t) { return t.type === He && l } : function (t) { return t.type === Ge && u || t.type === He && l }) } }, e.onLevelUpdated = function (t, e) { var r = this, i = e.details; if (this.media && i.hasProgramDateTime && this.hls.config.enableDateRangeMetadataCues) { var n = this.dateRangeCuesAppended, a = this.id3Track, s = i.dateRanges, o = Object.keys(s); if (a) for (var l = Object.keys(n).filter((function (t) { return !o.includes(t) })), u = function () { var t = l[h]; Object.keys(n[t].cues).forEach((function (e) { a.removeCue(n[t].cues[e]) })), delete n[t] }, h = l.length; h--;)u(); var d = i.fragments[i.fragments.length - 1]; if (0 !== o.length && y(null == d ? void 0 : d.programDateTime)) { this.id3Track || (this.id3Track = this.createTrack(this.media)); for (var c = d.programDateTime / 1e3 - d.start, f = Ve(), g = function () { var t = o[v], e = s[t], i = je(e.startDate, c), a = n[t], l = (null == a ? void 0 : a.cues) || {}, u = (null == a ? void 0 : a.durationKnown) || !1, h = We, d = e.endDate; if (d) h = je(d, c), u = !0; else if (e.endOnNext && !u) { var g = o.reduce((function (t, r) { if (r !== e.id) { var i = s[r]; if (i.class === e.class && i.startDate > e.startDate && (!t || e.startDate < t.startDate)) return i } return t }), null); g && (h = je(g.startDate, c), u = !0) } for (var m, p, y = Object.keys(e.attr), E = 0; E < y.length; E++) { var T = y[E]; if ("ID" !== (p = T) && "CLASS" !== p && "START-DATE" !== p && "DURATION" !== p && "END-DATE" !== p && "END-ON-NEXT" !== p) { var S = l[T]; if (S) u && !a.durationKnown && (S.endTime = h); else if (f) { var L = e.attr[T]; P(T) && (m = L, L = Uint8Array.from(m.replace(/^0x/, "").replace(/([\da-fA-F]{2}) ?/g, "0x$1 ").replace(/ +$/, "").split(" ")).buffer); var A = Ye(f, i, h, { key: T, data: L }, Ke); A && (A.id = t, r.id3Track.addCue(A), l[T] = A) } } } n[t] = { cues: l, dateRange: e, durationKnown: u } }, v = 0; v < o.length; v++)g() } } }, t }(), Xe = function () { function t(t) { var e = this; this.hls = void 0, this.config = void 0, this.media = null, this.levelDetails = null, this.currentTime = 0, this.stallCount = 0, this._latency = null, this.timeupdateHandler = function () { return e.timeupdate() }, this.hls = t, this.config = t.config, this.registerListeners() } var e = t.prototype; return e.destroy = function () { this.unregisterListeners(), this.onMediaDetaching(), this.levelDetails = null, this.hls = this.timeupdateHandler = null }, e.registerListeners = function () { this.hls.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), this.hls.on(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.on(S.LEVEL_UPDATED, this.onLevelUpdated, this), this.hls.on(S.ERROR, this.onError, this) }, e.unregisterListeners = function () { this.hls.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), this.hls.off(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.off(S.LEVEL_UPDATED, this.onLevelUpdated, this), this.hls.off(S.ERROR, this.onError, this) }, e.onMediaAttached = function (t, e) { this.media = e.media, this.media.addEventListener("timeupdate", this.timeupdateHandler) }, e.onMediaDetaching = function () { this.media && (this.media.removeEventListener("timeupdate", this.timeupdateHandler), this.media = null) }, e.onManifestLoading = function () { this.levelDetails = null, this._latency = null, this.stallCount = 0 }, e.onLevelUpdated = function (t, e) { var r = e.details; this.levelDetails = r, r.advanced && this.timeupdate(), !r.live && this.media && this.media.removeEventListener("timeupdate", this.timeupdateHandler) }, e.onError = function (t, e) { var r; e.details === A.BUFFER_STALLED_ERROR && (this.stallCount++, null != (r = this.levelDetails) && r.live && w.warn("[playback-rate-controller]: Stall detected, adjusting target latency")) }, e.timeupdate = function () { var t = this.media, e = this.levelDetails; if (t && e) { this.currentTime = t.currentTime; var r = this.computeLatency(); if (null !== r) { this._latency = r; var i = this.config, n = i.lowLatencyMode, a = i.maxLiveSyncPlaybackRate; if (n && 1 !== a && e.live) { var s = this.targetLatency; if (null !== s) { var o = r - s; if (o < Math.min(this.maxLatency, s + e.targetduration) && o > .05 && this.forwardBufferLength > 1) { var l = Math.min(2, Math.max(1, a)), u = Math.round(2 / (1 + Math.exp(-.75 * o - this.edgeStalled)) * 20) / 20; t.playbackRate = Math.min(l, Math.max(1, u)) } else 1 !== t.playbackRate && 0 !== t.playbackRate && (t.playbackRate = 1) } } } } }, e.estimateLiveEdge = function () { var t = this.levelDetails; return null === t ? null : t.edge + t.age }, e.computeLatency = function () { var t = this.estimateLiveEdge(); return null === t ? null : t - this.currentTime }, s(t, [{ key: "latency", get: function () { return this._latency || 0 } }, { key: "maxLatency", get: function () { var t = this.config, e = this.levelDetails; return void 0 !== t.liveMaxLatencyDuration ? t.liveMaxLatencyDuration : e ? t.liveMaxLatencyDurationCount * e.targetduration : 0 } }, { key: "targetLatency", get: function () { var t = this.levelDetails; if (null === t) return null; var e = t.holdBack, r = t.partHoldBack, i = t.targetduration, n = this.config, a = n.liveSyncDuration, s = n.liveSyncDurationCount, o = n.lowLatencyMode, l = this.hls.userConfig, u = o && r || e; (l.liveSyncDuration || l.liveSyncDurationCount || 0 === u) && (u = void 0 !== a ? a : s * i); var h = i; return u + Math.min(1 * this.stallCount, h) } }, { key: "liveSyncPosition", get: function () { var t = this.estimateLiveEdge(), e = this.targetLatency, r = this.levelDetails; if (null === t || null === e || null === r) return null; var i = r.edge, n = t - e - this.edgeStalled, a = i - r.totalduration, s = i - (this.config.lowLatencyMode && r.partTarget || r.targetduration); return Math.min(Math.max(a, n), s) } }, { key: "drift", get: function () { var t = this.levelDetails; return null === t ? 1 : t.drift } }, { key: "edgeStalled", get: function () { var t = this.levelDetails; if (null === t) return 0; var e = 3 * (this.config.lowLatencyMode && t.partTarget || t.targetduration); return Math.max(t.age - e, 0) } }, { key: "forwardBufferLength", get: function () { var t = this.media, e = this.levelDetails; if (!t || !e) return 0; var r = t.buffered.length; return (r ? t.buffered.end(r - 1) : e.edge) - this.currentTime } }]), t }(), ze = ["NONE", "TYPE-0", "TYPE-1", null], Qe = ["SDR", "PQ", "HLG"], Je = "", $e = "YES", Ze = "v2"; function tr(t) { var e = t.canSkipUntil, r = t.canSkipDateRanges, i = t.age; return e && i < e / 2 ? r ? Ze : $e : Je } var er = function () { function t(t, e, r) { this.msn = void 0, this.part = void 0, this.skip = void 0, this.msn = t, this.part = e, this.skip = r } return t.prototype.addDirectives = function (t) { var e = new self.URL(t); return void 0 !== this.msn && e.searchParams.set("_HLS_msn", this.msn.toString()), void 0 !== this.part && e.searchParams.set("_HLS_part", this.part.toString()), this.skip && e.searchParams.set("_HLS_skip", this.skip), e.href }, t }(), rr = function () { function t(t) { this._attrs = void 0, this.audioCodec = void 0, this.bitrate = void 0, this.codecSet = void 0, this.url = void 0, this.frameRate = void 0, this.height = void 0, this.id = void 0, this.name = void 0, this.videoCodec = void 0, this.width = void 0, this.details = void 0, this.fragmentError = 0, this.loadError = 0, this.loaded = void 0, this.realBitrate = 0, this.supportedPromise = void 0, this.supportedResult = void 0, this._avgBitrate = 0, this._audioGroups = void 0, this._subtitleGroups = void 0, this._urlId = 0, this.url = [t.url], this._attrs = [t.attrs], this.bitrate = t.bitrate, t.details && (this.details = t.details), this.id = t.id || 0, this.name = t.name, this.width = t.width || 0, this.height = t.height || 0, this.frameRate = t.attrs.optionalFloat("FRAME-RATE", 0), this._avgBitrate = t.attrs.decimalInteger("AVERAGE-BANDWIDTH"), this.audioCodec = t.audioCodec, this.videoCodec = t.videoCodec, this.codecSet = [t.videoCodec, t.audioCodec].filter((function (t) { return !!t })).map((function (t) { return t.substring(0, 4) })).join(","), this.addGroupId("audio", t.attrs.AUDIO), this.addGroupId("text", t.attrs.SUBTITLES) } var e = t.prototype; return e.hasAudioGroup = function (t) { return ir(this._audioGroups, t) }, e.hasSubtitleGroup = function (t) { return ir(this._subtitleGroups, t) }, e.addGroupId = function (t, e) { if (e) if ("audio" === t) { var r = this._audioGroups; r || (r = this._audioGroups = []), -1 === r.indexOf(e) && r.push(e) } else if ("text" === t) { var i = this._subtitleGroups; i || (i = this._subtitleGroups = []), -1 === i.indexOf(e) && i.push(e) } }, e.addFallback = function () { }, s(t, [{ key: "maxBitrate", get: function () { return Math.max(this.realBitrate, this.bitrate) } }, { key: "averageBitrate", get: function () { return this._avgBitrate || this.realBitrate || this.bitrate } }, { key: "attrs", get: function () { return this._attrs[0] } }, { key: "codecs", get: function () { return this.attrs.CODECS || "" } }, { key: "pathwayId", get: function () { return this.attrs["PATHWAY-ID"] || "." } }, { key: "videoRange", get: function () { return this.attrs["VIDEO-RANGE"] || "SDR" } }, { key: "score", get: function () { return this.attrs.optionalFloat("SCORE", 0) } }, { key: "uri", get: function () { return this.url[0] || "" } }, { key: "audioGroups", get: function () { return this._audioGroups } }, { key: "subtitleGroups", get: function () { return this._subtitleGroups } }, { key: "urlId", get: function () { return 0 }, set: function (t) { } }, { key: "audioGroupIds", get: function () { return this.audioGroups ? [this.audioGroupId] : void 0 } }, { key: "textGroupIds", get: function () { return this.subtitleGroups ? [this.textGroupId] : void 0 } }, { key: "audioGroupId", get: function () { var t; return null == (t = this.audioGroups) ? void 0 : t[0] } }, { key: "textGroupId", get: function () { var t; return null == (t = this.subtitleGroups) ? void 0 : t[0] } }]), t }(); function ir(t, e) { return !(!e || !t) && -1 !== t.indexOf(e) } function nr(t, e) { var r = e.startPTS; if (y(r)) { var i, n = 0; e.sn > t.sn ? (n = r - t.start, i = t) : (n = t.start - r, i = e), i.duration !== n && (i.duration = n) } else e.sn > t.sn ? t.cc === e.cc && t.minEndPTS ? e.start = t.start + (t.minEndPTS - t.start) : e.start = t.start + t.duration : e.start = Math.max(t.start - e.duration, 0) } function ar(t, e, r, i, n, a) { i - r <= 0 && (w.warn("Fragment should have a positive duration", e), i = r + e.duration, a = n + e.duration); var s = r, o = i, l = e.startPTS, u = e.endPTS; if (y(l)) { var h = Math.abs(l - r); y(e.deltaPTS) ? e.deltaPTS = Math.max(h, e.deltaPTS) : e.deltaPTS = h, s = Math.max(r, l), r = Math.min(r, l), n = Math.min(n, e.startDTS), o = Math.min(i, u), i = Math.max(i, u), a = Math.max(a, e.endDTS) } var d = r - e.start; 0 !== e.start && (e.start = r), e.duration = i - e.start, e.startPTS = r, e.maxStartPTS = s, e.startDTS = n, e.endPTS = i, e.minEndPTS = o, e.endDTS = a; var c, f = e.sn; if (!t || f < t.startSN || f > t.endSN) return 0; var g = f - t.startSN, v = t.fragments; for (v[g] = e, c = g; c > 0; c--)nr(v[c], v[c - 1]); for (c = g; c < v.length - 1; c++)nr(v[c], v[c + 1]); return t.fragmentHint && nr(v[v.length - 1], t.fragmentHint), t.PTSKnown = t.alignedSliding = !0, d } function sr(t, e) { for (var r = null, i = t.fragments, n = i.length - 1; n >= 0; n--) { var a = i[n].initSegment; if (a) { r = a; break } } t.fragmentHint && delete t.fragmentHint.endPTS; var s, l, u, h, d, c = 0; if (function (t, e, r) { for (var i = e.skippedSegments, n = Math.max(t.startSN, e.startSN) - e.startSN, a = (t.fragmentHint ? 1 : 0) + (i ? e.endSN : Math.min(t.endSN, e.endSN)) - e.startSN, s = e.startSN - t.startSN, o = e.fragmentHint ? e.fragments.concat(e.fragmentHint) : e.fragments, l = t.fragmentHint ? t.fragments.concat(t.fragmentHint) : t.fragments, u = n; u <= a; u++) { var h = l[s + u], d = o[u]; i && !d && u < i && (d = e.fragments[u] = h), h && d && r(h, d) } }(t, e, (function (t, i) { t.relurl && (c = t.cc - i.cc), y(t.startPTS) && y(t.endPTS) && (i.start = i.startPTS = t.startPTS, i.startDTS = t.startDTS, i.maxStartPTS = t.maxStartPTS, i.endPTS = t.endPTS, i.endDTS = t.endDTS, i.minEndPTS = t.minEndPTS, i.duration = t.endPTS - t.startPTS, i.duration && (s = i), e.PTSKnown = e.alignedSliding = !0), i.elementaryStreams = t.elementaryStreams, i.loader = t.loader, i.stats = t.stats, t.initSegment && (i.initSegment = t.initSegment, r = t.initSegment) })), r && (e.fragmentHint ? e.fragments.concat(e.fragmentHint) : e.fragments).forEach((function (t) { var e; !t || t.initSegment && t.initSegment.relurl !== (null == (e = r) ? void 0 : e.relurl) || (t.initSegment = r) })), e.skippedSegments) if (e.deltaUpdateFailed = e.fragments.some((function (t) { return !t })), e.deltaUpdateFailed) { w.warn("[level-helper] Previous playlist missing segments skipped in delta playlist"); for (var f = e.skippedSegments; f--;)e.fragments.shift(); e.startSN = e.fragments[0].sn, e.startCC = e.fragments[0].cc } else e.canSkipDateRanges && (e.dateRanges = (l = t.dateRanges, u = e.dateRanges, h = e.recentlyRemovedDateranges, d = o({}, l), h && h.forEach((function (t) { delete d[t] })), Object.keys(u).forEach((function (t) { var e = new F(u[t].attr, d[t]); e.isValid ? d[t] = e : w.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "' + JSON.stringify(u[t].attr) + '"') })), d)); var g = e.fragments; if (c) { w.warn("discontinuity sliding from playlist, take drift into account"); for (var v = 0; v < g.length; v++)g[v].cc += c } e.skippedSegments && (e.startCC = e.fragments[0].cc), function (t, e, r) { if (t && e) for (var i = 0, n = 0, a = t.length; n <= a; n++) { var s = t[n], o = e[n + i]; s && o && s.index === o.index && s.fragment.sn === o.fragment.sn ? r(s, o) : i-- } }(t.partList, e.partList, (function (t, e) { e.elementaryStreams = t.elementaryStreams, e.stats = t.stats })), s ? ar(e, s, s.startPTS, s.endPTS, s.startDTS, s.endDTS) : or(t, e), g.length && (e.totalduration = e.edge - g[0].start), e.driftStartTime = t.driftStartTime, e.driftStart = t.driftStart; var m = e.advancedDateTime; if (e.advanced && m) { var p = e.edge; e.driftStart || (e.driftStartTime = m, e.driftStart = p), e.driftEndTime = m, e.driftEnd = p } else e.driftEndTime = t.driftEndTime, e.driftEnd = t.driftEnd, e.advancedDateTime = t.advancedDateTime } function or(t, e) { var r = e.startSN + e.skippedSegments - t.startSN, i = t.fragments; r < 0 || r >= i.length || lr(e, i[r].start) } function lr(t, e) { if (e) { for (var r = t.fragments, i = t.skippedSegments; i < r.length; i++)r[i].start += e; t.fragmentHint && (t.fragmentHint.start += e) } } function ur(t, e, r) { var i; return null != t && t.details ? hr(null == (i = t.details) ? void 0 : i.partList, e, r) : null } function hr(t, e, r) { if (t) for (var i = t.length; i--;) { var n = t[i]; if (n.index === r && n.fragment.sn === e) return n } return null } function dr(t) { t.forEach((function (t, e) { var r = t.details; null != r && r.fragments && r.fragments.forEach((function (t) { t.level = e })) })) } function cr(t) { switch (t.details) { case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_TIMEOUT: case A.LEVEL_LOAD_TIMEOUT: case A.MANIFEST_LOAD_TIMEOUT: return !0 }return !1 } function fr(t, e) { var r = cr(e); return t.default[(r ? "timeout" : "error") + "Retry"] } function gr(t, e) { var r = "linear" === t.backoff ? 1 : Math.pow(2, e); return Math.min(r * t.retryDelayMs, t.maxRetryDelayMs) } function vr(t) { return i(i({}, t), { errorRetry: null, timeoutRetry: null }) } function mr(t, e, r, i) { if (!t) return !1; var n = null == i ? void 0 : i.code, a = e < t.maxNumRetry && (function (t) { return 0 === t && !1 === navigator.onLine || !!t && (t < 400 || t > 499) }(n) || !!r); return t.shouldRetry ? t.shouldRetry(t, e, r, i, a) : a } var pr = function (t, e) { for (var r = 0, i = t.length - 1, n = null, a = null; r <= i;) { var s = e(a = t[n = (r + i) / 2 | 0]); if (s > 0) r = n + 1; else { if (!(s < 0)) return a; i = n - 1 } } return null }; function yr(t, e, r, i) { void 0 === r && (r = 0), void 0 === i && (i = 0); var n = null; if (t) { n = e[t.sn - e[0].sn + 1] || null; var a = t.endDTS - r; a > 0 && a < 15e-7 && (r += 15e-7) } else 0 === r && 0 === e[0].start && (n = e[0]); if (n && (!t || t.level === n.level) && 0 === Er(r, i, n)) return n; var s = pr(e, Er.bind(null, r, i)); return !s || s === t && n ? n : s } function Er(t, e, r) { if (void 0 === t && (t = 0), void 0 === e && (e = 0), r.start <= t && r.start + r.duration > t) return 0; var i = Math.min(e, r.duration + (r.deltaPTS ? r.deltaPTS : 0)); return r.start + r.duration - i <= t ? 1 : r.start - i > t && r.start ? -1 : 0 } function Tr(t, e, r) { var i = 1e3 * Math.min(e, r.duration + (r.deltaPTS ? r.deltaPTS : 0)); return (r.endProgramDateTime || 0) - i > t } var Sr = 0, Lr = 2, Ar = 3, Rr = 5, kr = 0, br = 1, Dr = 2, Ir = function () { function t(t) { this.hls = void 0, this.playlistError = 0, this.penalizedRenditions = {}, this.log = void 0, this.warn = void 0, this.error = void 0, this.hls = t, this.log = w.log.bind(w, "[info]:"), this.warn = w.warn.bind(w, "[warning]:"), this.error = w.error.bind(w, "[error]:"), this.registerListeners() } var e = t.prototype; return e.registerListeners = function () { var t = this.hls; t.on(S.ERROR, this.onError, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this) }, e.unregisterListeners = function () { var t = this.hls; t && (t.off(S.ERROR, this.onError, this), t.off(S.ERROR, this.onErrorOut, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this)) }, e.destroy = function () { this.unregisterListeners(), this.hls = null, this.penalizedRenditions = {} }, e.startLoad = function (t) { }, e.stopLoad = function () { this.playlistError = 0 }, e.getVariantLevelIndex = function (t) { return (null == t ? void 0 : t.type) === we ? t.level : this.hls.loadLevel }, e.onManifestLoading = function () { this.playlistError = 0, this.penalizedRenditions = {} }, e.onLevelUpdated = function () { this.playlistError = 0 }, e.onError = function (t, e) { var r, i; if (!e.fatal) { var n = this.hls, a = e.context; switch (e.details) { case A.FRAG_LOAD_ERROR: case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_ERROR: case A.KEY_LOAD_TIMEOUT: return void (e.errorAction = this.getFragRetryOrSwitchAction(e)); case A.FRAG_PARSING_ERROR: if (null != (r = e.frag) && r.gap) return void (e.errorAction = { action: Sr, flags: kr }); case A.FRAG_GAP: case A.FRAG_DECRYPT_ERROR: return e.errorAction = this.getFragRetryOrSwitchAction(e), void (e.errorAction.action = Lr); case A.LEVEL_EMPTY_ERROR: case A.LEVEL_PARSING_ERROR: var s, o, l = e.parent === we ? e.level : n.loadLevel; return void (e.details === A.LEVEL_EMPTY_ERROR && null != (s = e.context) && null != (o = s.levelDetails) && o.live ? e.errorAction = this.getPlaylistRetryOrSwitchAction(e, l) : (e.levelRetry = !1, e.errorAction = this.getLevelSwitchAction(e, l))); case A.LEVEL_LOAD_ERROR: case A.LEVEL_LOAD_TIMEOUT: return void ("number" == typeof (null == a ? void 0 : a.level) && (e.errorAction = this.getPlaylistRetryOrSwitchAction(e, a.level))); case A.AUDIO_TRACK_LOAD_ERROR: case A.AUDIO_TRACK_LOAD_TIMEOUT: case A.SUBTITLE_LOAD_ERROR: case A.SUBTITLE_TRACK_LOAD_TIMEOUT: if (a) { var u = n.levels[n.loadLevel]; if (u && (a.type === De && u.hasAudioGroup(a.groupId) || a.type === Ie && u.hasSubtitleGroup(a.groupId))) return e.errorAction = this.getPlaylistRetryOrSwitchAction(e, n.loadLevel), e.errorAction.action = Lr, void (e.errorAction.flags = br) } return; case A.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED: var h = n.levels[n.loadLevel], d = null == h ? void 0 : h.attrs["HDCP-LEVEL"]; return void (d ? e.errorAction = { action: Lr, flags: Dr, hdcpLevel: d } : this.keySystemError(e)); case A.BUFFER_ADD_CODEC_ERROR: case A.REMUX_ALLOC_ERROR: case A.BUFFER_APPEND_ERROR: return void (e.errorAction = this.getLevelSwitchAction(e, null != (i = e.level) ? i : n.loadLevel)); case A.INTERNAL_EXCEPTION: case A.BUFFER_APPENDING_ERROR: case A.BUFFER_FULL_ERROR: case A.LEVEL_SWITCH_ERROR: case A.BUFFER_STALLED_ERROR: case A.BUFFER_SEEK_OVER_HOLE: case A.BUFFER_NUDGE_ON_STALL: return void (e.errorAction = { action: Sr, flags: kr }) }e.type === L.KEY_SYSTEM_ERROR && this.keySystemError(e) } }, e.keySystemError = function (t) { var e = this.getVariantLevelIndex(t.frag); t.levelRetry = !1, t.errorAction = this.getLevelSwitchAction(t, e) }, e.getPlaylistRetryOrSwitchAction = function (t, e) { var r = fr(this.hls.config.playlistLoadPolicy, t), i = this.playlistError++; if (mr(r, i, cr(t), t.response)) return { action: Rr, flags: kr, retryConfig: r, retryCount: i }; var n = this.getLevelSwitchAction(t, e); return r && (n.retryConfig = r, n.retryCount = i), n }, e.getFragRetryOrSwitchAction = function (t) { var e = this.hls, r = this.getVariantLevelIndex(t.frag), i = e.levels[r], n = e.config, a = n.fragLoadPolicy, s = n.keyLoadPolicy, o = fr(t.details.startsWith("key") ? s : a, t), l = e.levels.reduce((function (t, e) { return t + e.fragmentError }), 0); if (i && (t.details !== A.FRAG_GAP && i.fragmentError++, mr(o, l, cr(t), t.response))) return { action: Rr, flags: kr, retryConfig: o, retryCount: l }; var u = this.getLevelSwitchAction(t, r); return o && (u.retryConfig = o, u.retryCount = l), u }, e.getLevelSwitchAction = function (t, e) { var r = this.hls; null == e && (e = r.loadLevel); var i = this.hls.levels[e]; if (i) { var n, a, s = t.details; i.loadError++, s === A.BUFFER_APPEND_ERROR && i.fragmentError++; var o = -1, l = r.levels, u = r.loadLevel, h = r.minAutoLevel, d = r.maxAutoLevel; r.autoLevelEnabled || (r.loadLevel = -1); for (var c, f = null == (n = t.frag) ? void 0 : n.type, g = (f === Ce && s === A.FRAG_PARSING_ERROR || "audio" === t.sourceBufferName && (s === A.BUFFER_ADD_CODEC_ERROR || s === A.BUFFER_APPEND_ERROR)) && l.some((function (t) { var e = t.audioCodec; return i.audioCodec !== e })), v = "video" === t.sourceBufferName && (s === A.BUFFER_ADD_CODEC_ERROR || s === A.BUFFER_APPEND_ERROR) && l.some((function (t) { var e = t.codecSet, r = t.audioCodec; return i.codecSet !== e && i.audioCodec === r })), m = null != (a = t.context) ? a : {}, p = m.type, y = m.groupId, E = function () { var e = (T + u) % l.length; if (e !== u && e >= h && e <= d && 0 === l[e].loadError) { var r, n, a = l[e]; if (s === A.FRAG_GAP && t.frag) { var c = l[e].details; if (c) { var m = yr(t.frag, c.fragments, t.frag.start); if (null != m && m.gap) return 0 } } else { if (p === De && a.hasAudioGroup(y) || p === Ie && a.hasSubtitleGroup(y)) return 0; if (f === Ce && null != (r = i.audioGroups) && r.some((function (t) { return a.hasAudioGroup(t) })) || f === _e && null != (n = i.subtitleGroups) && n.some((function (t) { return a.hasSubtitleGroup(t) })) || g && i.audioCodec === a.audioCodec || !g && i.audioCodec !== a.audioCodec || v && i.codecSet === a.codecSet) return 0 } return o = e, 1 } }, T = l.length; T-- && (0 === (c = E()) || 1 !== c);); if (o > -1 && r.loadLevel !== o) return t.levelRetry = !0, this.playlistError = 0, { action: Lr, flags: kr, nextAutoLevel: o } } return { action: Lr, flags: br } }, e.onErrorOut = function (t, e) { var r; switch (null == (r = e.errorAction) ? void 0 : r.action) { case Sr: break; case Lr: this.sendAlternateToPenaltyBox(e), e.errorAction.resolved || e.details === A.FRAG_GAP ? /MediaSource readyState: ended/.test(e.error.message) && (this.warn('MediaSource ended after "' + e.sourceBufferName + '" sourceBuffer append error. Attempting to recover from media error.'), this.hls.recoverMediaError()) : e.fatal = !0 }e.fatal && this.hls.stopLoad() }, e.sendAlternateToPenaltyBox = function (t) { var e = this.hls, r = t.errorAction; if (r) { var i = r.flags, n = r.hdcpLevel, a = r.nextAutoLevel; switch (i) { case kr: this.switchLevel(t, a); break; case Dr: n && (e.maxHdcpLevel = ze[ze.indexOf(n) - 1], r.resolved = !0), this.warn('Restricting playback to HDCP-LEVEL of "' + e.maxHdcpLevel + '" or lower') }r.resolved || this.switchLevel(t, a) } }, e.switchLevel = function (t, e) { void 0 !== e && t.errorAction && (this.warn("switching to level " + e + " after " + t.details), this.hls.nextAutoLevel = e, t.errorAction.resolved = !0, this.hls.nextLoadLevel = this.hls.nextAutoLevel) }, t }(), wr = function () { function t(t, e) { this.hls = void 0, this.timer = -1, this.requestScheduled = -1, this.canLoad = !1, this.log = void 0, this.warn = void 0, this.log = w.log.bind(w, e + ":"), this.warn = w.warn.bind(w, e + ":"), this.hls = t } var e = t.prototype; return e.destroy = function () { this.clearTimer(), this.hls = this.log = this.warn = null }, e.clearTimer = function () { -1 !== this.timer && (self.clearTimeout(this.timer), this.timer = -1) }, e.startLoad = function () { this.canLoad = !0, this.requestScheduled = -1, this.loadPlaylist() }, e.stopLoad = function () { this.canLoad = !1, this.clearTimer() }, e.switchParams = function (t, e, r) { var i = null == e ? void 0 : e.renditionReports; if (i) { for (var n = -1, a = 0; a < i.length; a++) { var s = i[a], o = void 0; try { o = new self.URL(s.URI, e.url).href } catch (t) { w.warn("Could not construct new URL for Rendition Report: " + t), o = s.URI || "" } if (o === t) { n = a; break } o === t.substring(0, o.length) && (n = a) } if (-1 !== n) { var l = i[n], u = parseInt(l["LAST-MSN"]) || (null == e ? void 0 : e.lastPartSn), h = parseInt(l["LAST-PART"]) || (null == e ? void 0 : e.lastPartIndex); if (this.hls.config.lowLatencyMode) { var d = Math.min(e.age - e.partTarget, e.targetduration); h >= 0 && d > e.partTarget && (h += 1) } var c = r && tr(r); return new er(u, h >= 0 ? h : void 0, c) } } }, e.loadPlaylist = function (t) { -1 === this.requestScheduled && (this.requestScheduled = self.performance.now()) }, e.shouldLoadPlaylist = function (t) { return this.canLoad && !!t && !!t.url && (!t.details || t.details.live) }, e.shouldReloadPlaylist = function (t) { return -1 === this.timer && -1 === this.requestScheduled && this.shouldLoadPlaylist(t) }, e.playlistLoaded = function (t, e, r) { var i = this, n = e.details, a = e.stats, s = self.performance.now(), o = a.loading.first ? Math.max(0, s - a.loading.first) : 0; if (n.advancedDateTime = Date.now() - o, n.live || null != r && r.live) { if (n.reloaded(r), r && this.log("live playlist " + t + " " + (n.advanced ? "REFRESHED " + n.lastPartSn + "-" + n.lastPartIndex : n.updated ? "UPDATED" : "MISSED")), r && n.fragments.length > 0 && sr(r, n), !this.canLoad || !n.live) return; var l, u = void 0, h = void 0; if (n.canBlockReload && n.endSN && n.advanced) { var d = this.hls.config.lowLatencyMode, c = n.lastPartSn, f = n.endSN, g = n.lastPartIndex, v = c === f; -1 !== g ? (u = v ? f + 1 : c, h = v ? d ? 0 : g : g + 1) : u = f + 1; var m = n.age, p = m + n.ageHeader, y = Math.min(p - n.partTarget, 1.5 * n.targetduration); if (y > 0) { if (r && y > r.tuneInGoal) this.warn("CDN Tune-in goal increased from: " + r.tuneInGoal + " to: " + y + " with playlist age: " + n.age), y = 0; else { var E = Math.floor(y / n.targetduration); u += E, void 0 !== h && (h += Math.round(y % n.targetduration / n.partTarget)), this.log("CDN Tune-in age: " + n.ageHeader + "s last advanced " + m.toFixed(2) + "s goal: " + y + " skip sn " + E + " to part " + h) } n.tuneInGoal = y } if (l = this.getDeliveryDirectives(n, e.deliveryDirectives, u, h), d || !v) return void this.loadPlaylist(l) } else (n.canBlockReload || n.canSkipUntil) && (l = this.getDeliveryDirectives(n, e.deliveryDirectives, u, h)); var T = this.hls.mainForwardBufferInfo, S = T ? T.end - T.len : 0, L = function (t, e) { void 0 === e && (e = 1 / 0); var r = 1e3 * t.targetduration; if (t.updated) { var i = t.fragments; if (i.length && 4 * r > e) { var n = 1e3 * i[i.length - 1].duration; n < r && (r = n) } } else r /= 2; return Math.round(r) }(n, 1e3 * (n.edge - S)); n.updated && s > this.requestScheduled + L && (this.requestScheduled = a.loading.start), void 0 !== u && n.canBlockReload ? this.requestScheduled = a.loading.first + L - (1e3 * n.partTarget || 1e3) : -1 === this.requestScheduled || this.requestScheduled + L < s ? this.requestScheduled = s : this.requestScheduled - s <= 0 && (this.requestScheduled += L); var A = this.requestScheduled - s; A = Math.max(0, A), this.log("reload live playlist " + t + " in " + Math.round(A) + " ms"), this.timer = self.setTimeout((function () { return i.loadPlaylist(l) }), A) } else this.clearTimer() }, e.getDeliveryDirectives = function (t, e, r, i) { var n = tr(t); return null != e && e.skip && t.deltaUpdateFailed && (r = e.msn, i = e.part, n = Je), new er(r, i, n) }, e.checkRetry = function (t) { var e = this, r = t.details, i = cr(t), n = t.errorAction, a = n || {}, s = a.action, o = a.retryCount, l = void 0 === o ? 0 : o, u = a.retryConfig, h = !!n && !!u && (s === Rr || !n.resolved && s === Lr); if (h) { var d; if (this.requestScheduled = -1, l >= u.maxNumRetry) return !1; if (i && null != (d = t.context) && d.deliveryDirectives) this.warn("Retrying playlist loading " + (l + 1) + "/" + u.maxNumRetry + ' after "' + r + '" without delivery-directives'), this.loadPlaylist(); else { var c = gr(u, l); this.timer = self.setTimeout((function () { return e.loadPlaylist() }), c), this.warn("Retrying playlist loading " + (l + 1) + "/" + u.maxNumRetry + ' after "' + r + '" in ' + c + "ms") } t.levelRetry = !0, n.resolved = !0 } return h }, t }(), Cr = function () { function t(t, e, r) { void 0 === e && (e = 0), void 0 === r && (r = 0), this.halfLife = void 0, this.alpha_ = void 0, this.estimate_ = void 0, this.totalWeight_ = void 0, this.halfLife = t, this.alpha_ = t ? Math.exp(Math.log(.5) / t) : 0, this.estimate_ = e, this.totalWeight_ = r } var e = t.prototype; return e.sample = function (t, e) { var r = Math.pow(this.alpha_, t); this.estimate_ = e * (1 - r) + r * this.estimate_, this.totalWeight_ += t }, e.getTotalWeight = function () { return this.totalWeight_ }, e.getEstimate = function () { if (this.alpha_) { var t = 1 - Math.pow(this.alpha_, this.totalWeight_); if (t) return this.estimate_ / t } return this.estimate_ }, t }(), _r = function () { function t(t, e, r, i) { void 0 === i && (i = 100), this.defaultEstimate_ = void 0, this.minWeight_ = void 0, this.minDelayMs_ = void 0, this.slow_ = void 0, this.fast_ = void 0, this.defaultTTFB_ = void 0, this.ttfb_ = void 0, this.defaultEstimate_ = r, this.minWeight_ = .001, this.minDelayMs_ = 50, this.slow_ = new Cr(t), this.fast_ = new Cr(e), this.defaultTTFB_ = i, this.ttfb_ = new Cr(t) } var e = t.prototype; return e.update = function (t, e) { var r = this.slow_, i = this.fast_, n = this.ttfb_; r.halfLife !== t && (this.slow_ = new Cr(t, r.getEstimate(), r.getTotalWeight())), i.halfLife !== e && (this.fast_ = new Cr(e, i.getEstimate(), i.getTotalWeight())), n.halfLife !== t && (this.ttfb_ = new Cr(t, n.getEstimate(), n.getTotalWeight())) }, e.sample = function (t, e) { var r = (t = Math.max(t, this.minDelayMs_)) / 1e3, i = 8 * e / r; this.fast_.sample(r, i), this.slow_.sample(r, i) }, e.sampleTTFB = function (t) { var e = t / 1e3, r = Math.sqrt(2) * Math.exp(-Math.pow(e, 2) / 2); this.ttfb_.sample(r, Math.max(t, 5)) }, e.canEstimate = function () { return this.fast_.getTotalWeight() >= this.minWeight_ }, e.getEstimate = function () { return this.canEstimate() ? Math.min(this.fast_.getEstimate(), this.slow_.getEstimate()) : this.defaultEstimate_ }, e.getEstimateTTFB = function () { return this.ttfb_.getTotalWeight() >= this.minWeight_ ? this.ttfb_.getEstimate() : this.defaultTTFB_ }, e.destroy = function () { }, t }(), xr = { supported: !0, configurations: [], decodingInfoResults: [{ supported: !0, powerEfficient: !0, smooth: !0 }] }, Pr = {}; function Fr(t, e, r) { var n = t.videoCodec, a = t.audioCodec; if (!n || !a || !r) return Promise.resolve(xr); var s = { width: t.width, height: t.height, bitrate: Math.ceil(Math.max(.9 * t.bitrate, t.averageBitrate)), framerate: t.frameRate || 30 }, o = t.videoRange; "SDR" !== o && (s.transferFunction = o.toLowerCase()); var l = n.split(",").map((function (t) { return { type: "media-source", video: i(i({}, s), {}, { contentType: ae(t, "video") }) } })); return a && t.audioGroups && t.audioGroups.forEach((function (t) { var r; t && (null == (r = e.groups[t]) || r.tracks.forEach((function (e) { if (e.groupId === t) { var r = e.channels || "", i = parseFloat(r); y(i) && i > 2 && l.push.apply(l, a.split(",").map((function (t) { return { type: "media-source", audio: { contentType: ae(t, "audio"), channels: "" + i } } }))) } }))) })), Promise.all(l.map((function (t) { var e = function (t) { var e = t.audio, r = t.video, i = r || e; if (i) { var n = i.contentType.split('"')[1]; if (r) return "r" + r.height + "x" + r.width + "f" + Math.ceil(r.framerate) + (r.transferFunction || "sd") + "_" + n + "_" + Math.ceil(r.bitrate / 1e5); if (e) return "c" + e.channels + (e.spatialRendering ? "s" : "n") + "_" + n } return "" }(t); return Pr[e] || (Pr[e] = r.decodingInfo(t)) }))).then((function (t) { return { supported: !t.some((function (t) { return !t.supported })), configurations: l, decodingInfoResults: t } })).catch((function (t) { return { supported: !1, configurations: l, decodingInfoResults: [], error: t } })) } function Mr(t, e) { var r = !1, i = []; return t && (r = "SDR" !== t, i = [t]), e && (i = e.allowedVideoRanges || Qe.slice(0), i = (r = void 0 !== e.preferHDR ? e.preferHDR : function () { if ("function" == typeof matchMedia) { var t = matchMedia("(dynamic-range: high)"), e = matchMedia("bad query"); if (t.media !== e.media) return !0 === t.matches } return !1 }()) ? i.filter((function (t) { return "SDR" !== t })) : ["SDR"]), { preferHDR: r, allowedVideoRanges: i } } function Or(t, e) { w.log('[abr] start candidates with "' + t + '" ignored because ' + e) } function Nr(t, e, r) { if ("attrs" in t) { var i = e.indexOf(t); if (-1 !== i) return i } for (var n = 0; n < e.length; n++)if (Ur(t, e[n], r)) return n; return -1 } function Ur(t, e, r) { var i = t.groupId, n = t.name, a = t.lang, s = t.assocLang, o = t.characteristics, l = t.default, u = t.forced; return (void 0 === i || e.groupId === i) && (void 0 === n || e.name === n) && (void 0 === a || e.lang === a) && (void 0 === a || e.assocLang === s) && (void 0 === l || e.default === l) && (void 0 === u || e.forced === u) && (void 0 === o || function (t, e) { void 0 === e && (e = ""); var r = t.split(","), i = e.split(","); return r.length === i.length && !r.some((function (t) { return -1 === i.indexOf(t) })) }(o, e.characteristics)) && (void 0 === r || r(t, e)) } function Br(t, e) { var r = t.audioCodec, i = t.channels; return !(void 0 !== r && (e.audioCodec || "").substring(0, 4) !== r.substring(0, 4) || void 0 !== i && i !== (e.channels || "2")) } function Gr(t, e, r) { for (var i = e; i; i--)if (r(t[i])) return i; for (var n = e + 1; n < t.length; n++)if (r(t[n])) return n; return -1 } var Kr = function () { function t(t) { var e = this; this.hls = void 0, this.lastLevelLoadSec = 0, this.lastLoadedFragLevel = -1, this.firstSelection = -1, this._nextAutoLevel = -1, this.nextAutoLevelKey = "", this.audioTracksByGroup = null, this.codecTiers = null, this.timer = -1, this.fragCurrent = null, this.partCurrent = null, this.bitrateTestDelay = 0, this.bwEstimator = void 0, this._abandonRulesCheck = function () { var t = e.fragCurrent, r = e.partCurrent, i = e.hls, n = i.autoLevelEnabled, a = i.media; if (t && a) { var s = performance.now(), o = r ? r.stats : t.stats, l = r ? r.duration : t.duration, u = s - o.loading.start, h = i.minAutoLevel; if (o.aborted || o.loaded && o.loaded === o.total || t.level <= h) return e.clearTimer(), void (e._nextAutoLevel = -1); if (n && !a.paused && a.playbackRate && a.readyState) { var d = i.mainForwardBufferInfo; if (null !== d) { var c = e.bwEstimator.getEstimateTTFB(), f = Math.abs(a.playbackRate); if (!(u <= Math.max(c, l / (2 * f) * 1e3))) { var g = d.len / f, v = o.loading.first ? o.loading.first - o.loading.start : -1, m = o.loaded && v > -1, p = e.getBwEstimate(), E = i.levels, T = E[t.level], L = o.total || Math.max(o.loaded, Math.round(l * T.averageBitrate / 8)), A = m ? u - v : u; A < 1 && m && (A = Math.min(u, 8 * o.loaded / p)); var R = m ? 1e3 * o.loaded / A : 0, k = R ? (L - o.loaded) / R : 8 * L / p + c / 1e3; if (!(k <= g)) { var b, D = R ? 8 * R : p, I = Number.POSITIVE_INFINITY; for (b = t.level - 1; b > h; b--) { var C = E[b].maxBitrate; if ((I = e.getTimeToLoadFrag(c / 1e3, D, l * C, !E[b].details)) < g) break } if (!(I >= k || I > 10 * l)) { i.nextLoadLevel = i.nextAutoLevel = b, m ? e.bwEstimator.sample(u - Math.min(c, v), o.loaded) : e.bwEstimator.sampleTTFB(u); var _ = E[b].maxBitrate; e.getBwEstimate() * e.hls.config.abrBandWidthUpFactor > _ && e.resetEstimator(_), e.clearTimer(), w.warn("[abr] Fragment " + t.sn + (r ? " part " + r.index : "") + " of level " + t.level + " is loading too slowly;\n Time to underbuffer: " + g.toFixed(3) + " s\n Estimated load time for current fragment: " + k.toFixed(3) + " s\n Estimated load time for down switch fragment: " + I.toFixed(3) + " s\n TTFB estimate: " + (0 | v) + " ms\n Current BW estimate: " + (y(p) ? 0 | p : "Unknown") + " bps\n New BW estimate: " + (0 | e.getBwEstimate()) + " bps\n Switching to level " + b + " @ " + (0 | _) + " bps"), i.trigger(S.FRAG_LOAD_EMERGENCY_ABORTED, { frag: t, part: r, stats: o }) } } } } } } }, this.hls = t, this.bwEstimator = this.initEstimator(), this.registerListeners() } var e = t.prototype; return e.resetEstimator = function (t) { t && (w.log("setting initial bwe to " + t), this.hls.config.abrEwmaDefaultEstimate = t), this.firstSelection = -1, this.bwEstimator = this.initEstimator() }, e.initEstimator = function () { var t = this.hls.config; return new _r(t.abrEwmaSlowVoD, t.abrEwmaFastVoD, t.abrEwmaDefaultEstimate) }, e.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.FRAG_LOADING, this.onFragLoading, this), t.on(S.FRAG_LOADED, this.onFragLoaded, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.on(S.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this), t.on(S.ERROR, this.onError, this) }, e.unregisterListeners = function () { var t = this.hls; t && (t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.FRAG_LOADING, this.onFragLoading, this), t.off(S.FRAG_LOADED, this.onFragLoaded, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.off(S.MAX_AUTO_LEVEL_UPDATED, this.onMaxAutoLevelUpdated, this), t.off(S.ERROR, this.onError, this)) }, e.destroy = function () { this.unregisterListeners(), this.clearTimer(), this.hls = this._abandonRulesCheck = null, this.fragCurrent = this.partCurrent = null }, e.onManifestLoading = function (t, e) { this.lastLoadedFragLevel = -1, this.firstSelection = -1, this.lastLevelLoadSec = 0, this.fragCurrent = this.partCurrent = null, this.onLevelsUpdated(), this.clearTimer() }, e.onLevelsUpdated = function () { this.lastLoadedFragLevel > -1 && this.fragCurrent && (this.lastLoadedFragLevel = this.fragCurrent.level), this._nextAutoLevel = -1, this.onMaxAutoLevelUpdated(), this.codecTiers = null, this.audioTracksByGroup = null }, e.onMaxAutoLevelUpdated = function () { this.firstSelection = -1, this.nextAutoLevelKey = "" }, e.onFragLoading = function (t, e) { var r, i = e.frag; this.ignoreFragment(i) || (i.bitrateTest || (this.fragCurrent = i, this.partCurrent = null != (r = e.part) ? r : null), this.clearTimer(), this.timer = self.setInterval(this._abandonRulesCheck, 100)) }, e.onLevelSwitching = function (t, e) { this.clearTimer() }, e.onError = function (t, e) { if (!e.fatal) switch (e.details) { case A.BUFFER_ADD_CODEC_ERROR: case A.BUFFER_APPEND_ERROR: this.lastLoadedFragLevel = -1, this.firstSelection = -1; break; case A.FRAG_LOAD_TIMEOUT: var r = e.frag, i = this.fragCurrent, n = this.partCurrent; if (r && i && r.sn === i.sn && r.level === i.level) { var a = performance.now(), s = n ? n.stats : r.stats, o = a - s.loading.start, l = s.loading.first ? s.loading.first - s.loading.start : -1; if (s.loaded && l > -1) { var u = this.bwEstimator.getEstimateTTFB(); this.bwEstimator.sample(o - Math.min(u, l), s.loaded) } else this.bwEstimator.sampleTTFB(o) } } }, e.getTimeToLoadFrag = function (t, e, r, i) { return t + r / e + (i ? this.lastLevelLoadSec : 0) }, e.onLevelLoaded = function (t, e) { var r = this.hls.config, i = e.stats.loading, n = i.end - i.start; y(n) && (this.lastLevelLoadSec = n / 1e3), e.details.live ? this.bwEstimator.update(r.abrEwmaSlowLive, r.abrEwmaFastLive) : this.bwEstimator.update(r.abrEwmaSlowVoD, r.abrEwmaFastVoD) }, e.onFragLoaded = function (t, e) { var r = e.frag, i = e.part, n = i ? i.stats : r.stats; if (r.type === we && this.bwEstimator.sampleTTFB(n.loading.first - n.loading.start), !this.ignoreFragment(r)) { if (this.clearTimer(), r.level === this._nextAutoLevel && (this._nextAutoLevel = -1), this.firstSelection = -1, this.hls.config.abrMaxWithRealBitrate) { var a = i ? i.duration : r.duration, s = this.hls.levels[r.level], o = (s.loaded ? s.loaded.bytes : 0) + n.loaded, l = (s.loaded ? s.loaded.duration : 0) + a; s.loaded = { bytes: o, duration: l }, s.realBitrate = Math.round(8 * o / l) } if (r.bitrateTest) { var u = { stats: n, frag: r, part: i, id: r.type }; this.onFragBuffered(S.FRAG_BUFFERED, u), r.bitrateTest = !1 } else this.lastLoadedFragLevel = r.level } }, e.onFragBuffered = function (t, e) { var r = e.frag, i = e.part, n = null != i && i.stats.loaded ? i.stats : r.stats; if (!n.aborted && !this.ignoreFragment(r)) { var a = n.parsing.end - n.loading.start - Math.min(n.loading.first - n.loading.start, this.bwEstimator.getEstimateTTFB()); this.bwEstimator.sample(a, n.loaded), n.bwEstimate = this.getBwEstimate(), r.bitrateTest ? this.bitrateTestDelay = a / 1e3 : this.bitrateTestDelay = 0 } }, e.ignoreFragment = function (t) { return t.type !== we || "initSegment" === t.sn }, e.clearTimer = function () { this.timer > -1 && (self.clearInterval(this.timer), this.timer = -1) }, e.getAutoLevelKey = function () { return this.getBwEstimate() + "_" + this.getStarvationDelay().toFixed(2) }, e.getNextABRAutoLevel = function () { var t = this.fragCurrent, e = this.partCurrent, r = this.hls, i = r.maxAutoLevel, n = r.config, a = r.minAutoLevel, s = e ? e.duration : t ? t.duration : 0, o = this.getBwEstimate(), l = this.getStarvationDelay(), u = n.abrBandWidthFactor, h = n.abrBandWidthUpFactor; if (l) { var d = this.findBestLevel(o, a, i, l, 0, u, h); if (d >= 0) return d } var c = s ? Math.min(s, n.maxStarvationDelay) : n.maxStarvationDelay; if (!l) { var f = this.bitrateTestDelay; f && (c = (s ? Math.min(s, n.maxLoadingDelay) : n.maxLoadingDelay) - f, w.info("[abr] bitrate test took " + Math.round(1e3 * f) + "ms, set first fragment max fetchDuration to " + Math.round(1e3 * c) + " ms"), u = h = 1) } var g = this.findBestLevel(o, a, i, l, c, u, h); if (w.info("[abr] " + (l ? "rebuffering expected" : "buffer is empty") + ", optimal quality level " + g), g > -1) return g; var v = r.levels[a], m = r.levels[r.loadLevel]; return (null == v ? void 0 : v.bitrate) < (null == m ? void 0 : m.bitrate) ? a : r.loadLevel }, e.getStarvationDelay = function () { var t = this.hls, e = t.media; if (!e) return 1 / 0; var r = e && 0 !== e.playbackRate ? Math.abs(e.playbackRate) : 1, i = t.mainForwardBufferInfo; return (i ? i.len : 0) / r }, e.getBwEstimate = function () { return this.bwEstimator.canEstimate() ? this.bwEstimator.getEstimate() : this.hls.config.abrEwmaDefaultEstimate }, e.findBestLevel = function (t, e, r, i, n, a, s) { var o, l = this, u = i + n, h = this.lastLoadedFragLevel, d = -1 === h ? this.hls.firstLevel : h, c = this.fragCurrent, f = this.partCurrent, g = this.hls, v = g.levels, m = g.allAudioTracks, p = g.loadLevel, E = g.config; if (1 === v.length) return 0; var T, S = v[d], L = !(null == S || null == (o = S.details) || !o.live), A = -1 === p || -1 === h, R = "SDR", k = (null == S ? void 0 : S.frameRate) || 0, b = E.audioPreference, D = E.videoPreference, I = this.audioTracksByGroup || (this.audioTracksByGroup = function (t) { return t.reduce((function (t, e) { var r = t.groups[e.groupId]; r || (r = t.groups[e.groupId] = { tracks: [], channels: { 2: 0 }, hasDefault: !1, hasAutoSelect: !1 }), r.tracks.push(e); var i = e.channels || "2"; return r.channels[i] = (r.channels[i] || 0) + 1, r.hasDefault = r.hasDefault || e.default, r.hasAutoSelect = r.hasAutoSelect || e.autoselect, r.hasDefault && (t.hasDefaultAudio = !0), r.hasAutoSelect && (t.hasAutoSelectAudio = !0), t }), { hasDefaultAudio: !1, hasAutoSelectAudio: !1, groups: {} }) }(m)); if (A) { if (-1 !== this.firstSelection) return this.firstSelection; var C = this.codecTiers || (this.codecTiers = function (t, e, r, i) { return t.slice(r, i + 1).reduce((function (t, r) { if (!r.codecSet) return t; var i = r.audioGroups, n = t[r.codecSet]; n || (t[r.codecSet] = n = { minBitrate: 1 / 0, minHeight: 1 / 0, minFramerate: 1 / 0, maxScore: 0, videoRanges: { SDR: 0 }, channels: { 2: 0 }, hasDefaultAudio: !i, fragmentError: 0 }), n.minBitrate = Math.min(n.minBitrate, r.bitrate); var a = Math.min(r.height, r.width); return n.minHeight = Math.min(n.minHeight, a), n.minFramerate = Math.min(n.minFramerate, r.frameRate), n.maxScore = Math.max(n.maxScore, r.score), n.fragmentError += r.fragmentError, n.videoRanges[r.videoRange] = (n.videoRanges[r.videoRange] || 0) + 1, i && i.forEach((function (t) { if (t) { var r = e.groups[t]; r && (n.hasDefaultAudio = n.hasDefaultAudio || e.hasDefaultAudio ? r.hasDefault : r.hasAutoSelect || !e.hasDefaultAudio && !e.hasAutoSelectAudio, Object.keys(r.channels).forEach((function (t) { n.channels[t] = (n.channels[t] || 0) + r.channels[t] }))) } })), t }), {}) }(v, I, e, r)), _ = function (t, e, r, i, n) { for (var a = Object.keys(t), s = null == i ? void 0 : i.channels, o = null == i ? void 0 : i.audioCodec, l = s && 2 === parseInt(s), u = !0, h = !1, d = 1 / 0, c = 1 / 0, f = 1 / 0, g = 0, v = [], m = Mr(e, n), p = m.preferHDR, E = m.allowedVideoRanges, T = function () { var e = t[a[S]]; u = e.channels[2] > 0, d = Math.min(d, e.minHeight), c = Math.min(c, e.minFramerate), f = Math.min(f, e.minBitrate); var r = E.filter((function (t) { return e.videoRanges[t] > 0 })); r.length > 0 && (h = !0, v = r) }, S = a.length; S--;)T(); d = y(d) ? d : 0, c = y(c) ? c : 0; var L = Math.max(1080, d), A = Math.max(30, c); return f = y(f) ? f : r, r = Math.max(f, r), h || (e = void 0, v = []), { codecSet: a.reduce((function (e, i) { var n = t[i]; if (i === e) return e; if (n.minBitrate > r) return Or(i, "min bitrate of " + n.minBitrate + " > current estimate of " + r), e; if (!n.hasDefaultAudio) return Or(i, "no renditions with default or auto-select sound found"), e; if (o && i.indexOf(o.substring(0, 4)) % 5 != 0) return Or(i, 'audio codec preference "' + o + '" not found'), e; if (s && !l) { if (!n.channels[s]) return Or(i, "no renditions with " + s + " channel sound found (channels options: " + Object.keys(n.channels) + ")"), e } else if ((!o || l) && u && 0 === n.channels[2]) return Or(i, "no renditions with stereo sound found"), e; return n.minHeight > L ? (Or(i, "min resolution of " + n.minHeight + " > maximum of " + L), e) : n.minFramerate > A ? (Or(i, "min framerate of " + n.minFramerate + " > maximum of " + A), e) : v.some((function (t) { return n.videoRanges[t] > 0 })) ? n.maxScore < g ? (Or(i, "max score of " + n.maxScore + " < selected max of " + g), e) : e && (oe(i) >= oe(e) || n.fragmentError > t[e].fragmentError) ? e : (g = n.maxScore, i) : (Or(i, "no variants with VIDEO-RANGE of " + JSON.stringify(v) + " found"), e) }), void 0), videoRanges: v, preferHDR: p, minFramerate: c, minBitrate: f } }(C, R, t, b, D), x = _.codecSet, P = _.videoRanges, F = _.minFramerate, M = _.minBitrate, O = _.preferHDR; T = x, R = O ? P[P.length - 1] : P[0], k = F, t = Math.max(t, M), w.log("[abr] picked start tier " + JSON.stringify(_)) } else T = null == S ? void 0 : S.codecSet, R = null == S ? void 0 : S.videoRange; for (var N, U = f ? f.duration : c ? c.duration : 0, B = this.bwEstimator.getEstimateTTFB() / 1e3, G = [], K = function () { var e, o = v[H], c = H > d; if (!o) return 0; if (E.useMediaCapabilities && !o.supportedResult && !o.supportedPromise) { var g = navigator.mediaCapabilities; "function" == typeof (null == g ? void 0 : g.decodingInfo) && function (t, e, r, i, n, a) { var s = t.audioCodec ? t.audioGroups : null, o = null == a ? void 0 : a.audioCodec, l = null == a ? void 0 : a.channels, u = l ? parseInt(l) : o ? 1 / 0 : 2, h = null; if (null != s && s.length) try { h = 1 === s.length && s[0] ? e.groups[s[0]].channels : s.reduce((function (t, r) { if (r) { var i = e.groups[r]; if (!i) throw new Error("Audio track group " + r + " not found"); Object.keys(i.channels).forEach((function (e) { t[e] = (t[e] || 0) + i.channels[e] })) } return t }), { 2: 0 }) } catch (t) { return !0 } return void 0 !== t.videoCodec && (t.width > 1920 && t.height > 1088 || t.height > 1920 && t.width > 1088 || t.frameRate > Math.max(i, 30) || "SDR" !== t.videoRange && t.videoRange !== r || t.bitrate > Math.max(n, 8e6)) || !!h && y(u) && Object.keys(h).some((function (t) { return parseInt(t) > u })) }(o, I, R, k, t, b) ? (o.supportedPromise = Fr(o, I, g), o.supportedPromise.then((function (t) { if (l.hls) { o.supportedResult = t; var e = l.hls.levels, r = e.indexOf(o); t.error ? w.warn('[abr] MediaCapabilities decodingInfo error: "' + t.error + '" for level ' + r + " " + JSON.stringify(t)) : t.supported || (w.warn("[abr] Unsupported MediaCapabilities decodingInfo result for level " + r + " " + JSON.stringify(t)), r > -1 && e.length > 1 && (w.log("[abr] Removing unsupported level " + r), l.hls.removeLevel(r))) } }))) : o.supportedResult = xr } if (T && o.codecSet !== T || R && o.videoRange !== R || c && k > o.frameRate || !c && k > 0 && k < o.frameRate || o.supportedResult && (null == (e = o.supportedResult.decodingInfoResults) || !e[0].smooth)) return G.push(H), 0; var m, D = o.details, C = (f ? null == D ? void 0 : D.partTarget : null == D ? void 0 : D.averagetargetduration) || U; m = c ? s * t : a * t; var _ = U && i >= 2 * U && 0 === n ? v[H].averageBitrate : v[H].maxBitrate, x = l.getTimeToLoadFrag(B, m, _ * C, void 0 === D); if (m >= _ && (H === h || 0 === o.loadError && 0 === o.fragmentError) && (x <= B || !y(x) || L && !l.bitrateTestDelay || x < u)) { var P = l.forcedAutoLevel; return H === p || -1 !== P && P === p || (G.length && w.trace("[abr] Skipped level(s) " + G.join(",") + " of " + r + ' max with CODECS and VIDEO-RANGE:"' + v[G[0]].codecs + '" ' + v[G[0]].videoRange + '; not compatible with "' + S.codecs + '" ' + R), w.info("[abr] switch candidate:" + d + "->" + H + " adjustedbw(" + Math.round(m) + ")-bitrate=" + Math.round(m - _) + " ttfb:" + B.toFixed(1) + " avgDuration:" + C.toFixed(1) + " maxFetchDuration:" + u.toFixed(1) + " fetchDuration:" + x.toFixed(1) + " firstSelection:" + A + " codecSet:" + T + " videoRange:" + R + " hls.loadLevel:" + p)), A && (l.firstSelection = H), { v: H } } }, H = r; H >= e; H--)if (0 !== (N = K()) && N) return N.v; return -1 }, s(t, [{ key: "firstAutoLevel", get: function () { var t = this.hls, e = t.maxAutoLevel, r = t.minAutoLevel, i = this.getBwEstimate(), n = this.hls.config.maxStarvationDelay, a = this.findBestLevel(i, r, e, 0, n, 1, 1); if (a > -1) return a; var s = this.hls.firstLevel, o = Math.min(Math.max(s, r), e); return w.warn("[abr] Could not find best starting auto level. Defaulting to first in playlist " + s + " clamped to " + o), o } }, { key: "forcedAutoLevel", get: function () { return this.nextAutoLevelKey ? -1 : this._nextAutoLevel } }, { key: "nextAutoLevel", get: function () { var t = this.forcedAutoLevel, e = this.bwEstimator.canEstimate(), r = this.lastLoadedFragLevel > -1; if (!(-1 === t || e && r && this.nextAutoLevelKey !== this.getAutoLevelKey())) return t; var i = e && r ? this.getNextABRAutoLevel() : this.firstAutoLevel; if (-1 !== t) { var n = this.hls.levels; if (n.length > Math.max(t, i) && n[t].loadError <= n[i].loadError) return t } return this._nextAutoLevel = i, this.nextAutoLevelKey = this.getAutoLevelKey(), i }, set: function (t) { var e = this.hls, r = e.maxAutoLevel, i = e.minAutoLevel, n = Math.min(Math.max(t, i), r); this._nextAutoLevel !== n && (this.nextAutoLevelKey = "", this._nextAutoLevel = n) } }]), t }(), Hr = function () { function t() { this._boundTick = void 0, this._tickTimer = null, this._tickInterval = null, this._tickCallCount = 0, this._boundTick = this.tick.bind(this) } var e = t.prototype; return e.destroy = function () { this.onHandlerDestroying(), this.onHandlerDestroyed() }, e.onHandlerDestroying = function () { this.clearNextTick(), this.clearInterval() }, e.onHandlerDestroyed = function () { }, e.hasInterval = function () { return !!this._tickInterval }, e.hasNextTick = function () { return !!this._tickTimer }, e.setInterval = function (t) { return !this._tickInterval && (this._tickCallCount = 0, this._tickInterval = self.setInterval(this._boundTick, t), !0) }, e.clearInterval = function () { return !!this._tickInterval && (self.clearInterval(this._tickInterval), this._tickInterval = null, !0) }, e.clearNextTick = function () { return !!this._tickTimer && (self.clearTimeout(this._tickTimer), this._tickTimer = null, !0) }, e.tick = function () { this._tickCallCount++, 1 === this._tickCallCount && (this.doTick(), this._tickCallCount > 1 && this.tickImmediate(), this._tickCallCount = 0) }, e.tickImmediate = function () { this.clearNextTick(), this._tickTimer = self.setTimeout(this._boundTick, 0) }, e.doTick = function () { }, t }(), Vr = "NOT_LOADED", Yr = "APPENDING", Wr = "PARTIAL", jr = "OK", qr = function () { function t(t) { this.activePartLists = Object.create(null), this.endListFragments = Object.create(null), this.fragments = Object.create(null), this.timeRanges = Object.create(null), this.bufferPadding = .2, this.hls = void 0, this.hasGaps = !1, this.hls = t, this._registerListeners() } var e = t.prototype; return e._registerListeners = function () { var t = this.hls; t.on(S.BUFFER_APPENDED, this.onBufferAppended, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this), t.on(S.FRAG_LOADED, this.onFragLoaded, this) }, e._unregisterListeners = function () { var t = this.hls; t.off(S.BUFFER_APPENDED, this.onBufferAppended, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this), t.off(S.FRAG_LOADED, this.onFragLoaded, this) }, e.destroy = function () { this._unregisterListeners(), this.fragments = this.activePartLists = this.endListFragments = this.timeRanges = null }, e.getAppendedFrag = function (t, e) { var r = this.activePartLists[e]; if (r) for (var i = r.length; i--;) { var n = r[i]; if (!n) break; var a = n.end; if (n.start <= t && null !== a && t <= a) return n } return this.getBufferedFrag(t, e) }, e.getBufferedFrag = function (t, e) { for (var r = this.fragments, i = Object.keys(r), n = i.length; n--;) { var a = r[i[n]]; if ((null == a ? void 0 : a.body.type) === e && a.buffered) { var s = a.body; if (s.start <= t && t <= s.end) return s } } return null }, e.detectEvictedFragments = function (t, e, r, i) { var n = this; this.timeRanges && (this.timeRanges[t] = e); var a = (null == i ? void 0 : i.fragment.sn) || -1; Object.keys(this.fragments).forEach((function (i) { var s = n.fragments[i]; if (s && !(a >= s.body.sn)) if (s.buffered || s.loaded) { var o = s.range[t]; o && o.time.some((function (t) { var r = !n.isTimeBuffered(t.startPTS, t.endPTS, e); return r && n.removeFragment(s.body), r })) } else s.body.type === r && n.removeFragment(s.body) })) }, e.detectPartialFragments = function (t) { var e = this, r = this.timeRanges, i = t.frag, n = t.part; if (r && "initSegment" !== i.sn) { var a = zr(i), s = this.fragments[a]; if (!(!s || s.buffered && i.gap)) { var o = !i.relurl; Object.keys(r).forEach((function (t) { var a = i.elementaryStreams[t]; if (a) { var l = r[t], u = o || !0 === a.partial; s.range[t] = e.getBufferedTimes(i, n, u, l) } })), s.loaded = null, Object.keys(s.range).length ? (s.buffered = !0, (s.body.endList = i.endList || s.body.endList) && (this.endListFragments[s.body.type] = s), Xr(s) || this.removeParts(i.sn - 1, i.type)) : this.removeFragment(s.body) } } }, e.removeParts = function (t, e) { var r = this.activePartLists[e]; r && (this.activePartLists[e] = r.filter((function (e) { return e.fragment.sn >= t }))) }, e.fragBuffered = function (t, e) { var r = zr(t), i = this.fragments[r]; !i && e && (i = this.fragments[r] = { body: t, appendedPTS: null, loaded: null, buffered: !1, range: Object.create(null) }, t.gap && (this.hasGaps = !0)), i && (i.loaded = null, i.buffered = !0) }, e.getBufferedTimes = function (t, e, r, i) { for (var n = { time: [], partial: r }, a = t.start, s = t.end, o = t.minEndPTS || s, l = t.maxStartPTS || a, u = 0; u < i.length; u++) { var h = i.start(u) - this.bufferPadding, d = i.end(u) + this.bufferPadding; if (l >= h && o <= d) { n.time.push({ startPTS: Math.max(a, i.start(u)), endPTS: Math.min(s, i.end(u)) }); break } if (a < d && s > h) { var c = Math.max(a, i.start(u)), f = Math.min(s, i.end(u)); f > c && (n.partial = !0, n.time.push({ startPTS: c, endPTS: f })) } else if (s <= h) break } return n }, e.getPartialFragment = function (t) { var e, r, i, n = null, a = 0, s = this.bufferPadding, o = this.fragments; return Object.keys(o).forEach((function (l) { var u = o[l]; u && Xr(u) && (r = u.body.start - s, i = u.body.end + s, t >= r && t <= i && (e = Math.min(t - r, i - t), a <= e && (n = u.body, a = e))) })), n }, e.isEndListAppended = function (t) { var e = this.endListFragments[t]; return void 0 !== e && (e.buffered || Xr(e)) }, e.getState = function (t) { var e = zr(t), r = this.fragments[e]; return r ? r.buffered ? Xr(r) ? Wr : jr : Yr : Vr }, e.isTimeBuffered = function (t, e, r) { for (var i, n, a = 0; a < r.length; a++) { if (i = r.start(a) - this.bufferPadding, n = r.end(a) + this.bufferPadding, t >= i && e <= n) return !0; if (e <= i) return !1 } return !1 }, e.onFragLoaded = function (t, e) { var r = e.frag, i = e.part; if ("initSegment" !== r.sn && !r.bitrateTest) { var n = i ? null : e, a = zr(r); this.fragments[a] = { body: r, appendedPTS: null, loaded: n, buffered: !1, range: Object.create(null) } } }, e.onBufferAppended = function (t, e) { var r = this, i = e.frag, n = e.part, a = e.timeRanges; if ("initSegment" !== i.sn) { var s = i.type; if (n) { var o = this.activePartLists[s]; o || (this.activePartLists[s] = o = []), o.push(n) } this.timeRanges = a, Object.keys(a).forEach((function (t) { var e = a[t]; r.detectEvictedFragments(t, e, s, n) })) } }, e.onFragBuffered = function (t, e) { this.detectPartialFragments(e) }, e.hasFragment = function (t) { var e = zr(t); return !!this.fragments[e] }, e.hasParts = function (t) { var e; return !(null == (e = this.activePartLists[t]) || !e.length) }, e.removeFragmentsInRange = function (t, e, r, i, n) { var a = this; i && !this.hasGaps || Object.keys(this.fragments).forEach((function (s) { var o = a.fragments[s]; if (o) { var l = o.body; l.type !== r || i && !l.gap || l.start < e && l.end > t && (o.buffered || n) && a.removeFragment(l) } })) }, e.removeFragment = function (t) { var e = zr(t); t.stats.loaded = 0, t.clearElementaryStreamInfo(); var r = this.activePartLists[t.type]; if (r) { var i = t.sn; this.activePartLists[t.type] = r.filter((function (t) { return t.fragment.sn !== i })) } delete this.fragments[e], t.endList && delete this.endListFragments[t.type] }, e.removeAllFragments = function () { this.fragments = Object.create(null), this.endListFragments = Object.create(null), this.activePartLists = Object.create(null), this.hasGaps = !1 }, t }(); function Xr(t) { var e, r, i; return t.buffered && (t.body.gap || (null == (e = t.range.video) ? void 0 : e.partial) || (null == (r = t.range.audio) ? void 0 : r.partial) || (null == (i = t.range.audiovideo) ? void 0 : i.partial)) } function zr(t) { return t.type + "_" + t.level + "_" + t.sn } var Qr = { length: 0, start: function () { return 0 }, end: function () { return 0 } }, Jr = function () { function t() { } return t.isBuffered = function (e, r) { try { if (e) for (var i = t.getBuffered(e), n = 0; n < i.length; n++)if (r >= i.start(n) && r <= i.end(n)) return !0 } catch (t) { } return !1 }, t.bufferInfo = function (e, r, i) { try { if (e) { var n, a = t.getBuffered(e), s = []; for (n = 0; n < a.length; n++)s.push({ start: a.start(n), end: a.end(n) }); return this.bufferedInfo(s, r, i) } } catch (t) { } return { len: 0, start: r, end: r, nextStart: void 0 } }, t.bufferedInfo = function (t, e, r) { e = Math.max(0, e), t.sort((function (t, e) { var r = t.start - e.start; return r || e.end - t.end })); var i = []; if (r) for (var n = 0; n < t.length; n++) { var a = i.length; if (a) { var s = i[a - 1].end; t[n].start - s < r ? t[n].end > s && (i[a - 1].end = t[n].end) : i.push(t[n]) } else i.push(t[n]) } else i = t; for (var o, l = 0, u = e, h = e, d = 0; d < i.length; d++) { var c = i[d].start, f = i[d].end; if (e + r >= c && e < f) u = c, l = (h = f) - e; else if (e + r < c) { o = c; break } } return { len: l, start: u || 0, end: h || 0, nextStart: o } }, t.getBuffered = function (t) { try { return t.buffered } catch (t) { return w.log("failed to get media.buffered", t), Qr } }, t }(), $r = function (t, e, r, i, n, a) { void 0 === i && (i = 0), void 0 === n && (n = -1), void 0 === a && (a = !1), this.level = void 0, this.sn = void 0, this.part = void 0, this.id = void 0, this.size = void 0, this.partial = void 0, this.transmuxing = { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, this.buffering = { audio: { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, video: { start: 0, executeStart: 0, executeEnd: 0, end: 0 }, audiovideo: { start: 0, executeStart: 0, executeEnd: 0, end: 0 } }, this.level = t, this.sn = e, this.id = r, this.size = i, this.part = n, this.partial = a }; function Zr(t, e) { for (var r = 0, i = t.length; r < i; r++) { var n; if ((null == (n = t[r]) ? void 0 : n.cc) === e) return t[r] } return null } function ti(t, e) { if (t) { var r = t.start + e; t.start = t.startPTS = r, t.endPTS = r + t.duration } } function ei(t, e) { for (var r = e.fragments, i = 0, n = r.length; i < n; i++)ti(r[i], t); e.fragmentHint && ti(e.fragmentHint, t), e.alignedSliding = !0 } function ri(t, e, r) { e && (function (t, e, r) { if (function (t, e, r) { return !(!e || !(r.endCC > r.startCC || t && t.cc < r.startCC)) }(t, r, e)) { var i = function (t, e) { var r = t.fragments, i = e.fragments; if (i.length && r.length) { var n = Zr(r, i[0].cc); if (n && (!n || n.startPTS)) return n; w.log("No frag in previous level to align on") } else w.log("No fragments to align") }(r, e); i && y(i.start) && (w.log("Adjusting PTS using last level due to CC increase within current level " + e.url), ei(i.start, e)) } }(t, r, e), !r.alignedSliding && e && ii(r, e), r.alignedSliding || !e || r.skippedSegments || or(e, r)) } function ii(t, e) { if (t.hasProgramDateTime && e.hasProgramDateTime) { var r = t.fragments, i = e.fragments; if (r.length && i.length) { var n, a, s = Math.min(e.endCC, t.endCC); e.startCC < s && t.startCC < s && (n = Zr(i, s), a = Zr(r, s)), n && a || (a = Zr(r, (n = i[Math.floor(i.length / 2)]).cc) || r[Math.floor(r.length / 2)]); var o = n.programDateTime, l = a.programDateTime; o && l && ei((l - o) / 1e3 - (a.start - n.start), t) } } } var ni = Math.pow(2, 17), ai = function () { function t(t) { this.config = void 0, this.loader = null, this.partLoadTimeout = -1, this.config = t } var e = t.prototype; return e.destroy = function () { this.loader && (this.loader.destroy(), this.loader = null) }, e.abort = function () { this.loader && this.loader.abort() }, e.load = function (t, e) { var r = this, n = t.url; if (!n) return Promise.reject(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, error: new Error("Fragment does not have a " + (n ? "part list" : "url")), networkDetails: null })); this.abort(); var a = this.config, s = a.fLoader, o = a.loader; return new Promise((function (l, u) { if (r.loader && r.loader.destroy(), t.gap) { if (t.tagList.some((function (t) { return "GAP" === t[0] }))) return void u(oi(t)); t.gap = !1 } var h = r.loader = t.loader = s ? new s(a) : new o(a), d = si(t), c = vr(a.fragLoadPolicy.default), f = { loadPolicy: c, timeout: c.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0, highWaterMark: "initSegment" === t.sn ? 1 / 0 : ni }; t.stats = h.stats, h.load(d, f, { onSuccess: function (e, i, n, a) { r.resetLoader(t, h); var s = e.data; n.resetIV && t.decryptdata && (t.decryptdata.iv = new Uint8Array(s.slice(0, 16)), s = s.slice(16)), l({ frag: t, part: null, payload: s, networkDetails: a }) }, onError: function (e, a, s, o) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, response: i({ url: n, data: void 0 }, e), error: new Error("HTTP Error " + e.code + " " + e.text), networkDetails: s, stats: o })) }, onAbort: function (e, i, n) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.INTERNAL_ABORTED, fatal: !1, frag: t, error: new Error("Aborted"), networkDetails: n, stats: e })) }, onTimeout: function (e, i, n) { r.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_TIMEOUT, fatal: !1, frag: t, error: new Error("Timeout after " + f.timeout + "ms"), networkDetails: n, stats: e })) }, onProgress: function (r, i, n, a) { e && e({ frag: t, part: null, payload: n, networkDetails: a }) } }) })) }, e.loadPart = function (t, e, r) { var n = this; this.abort(); var a = this.config, s = a.fLoader, o = a.loader; return new Promise((function (l, u) { if (n.loader && n.loader.destroy(), t.gap || e.gap) u(oi(t, e)); else { var h = n.loader = t.loader = s ? new s(a) : new o(a), d = si(t, e), c = vr(a.fragLoadPolicy.default), f = { loadPolicy: c, timeout: c.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0, highWaterMark: ni }; e.stats = h.stats, h.load(d, f, { onSuccess: function (i, a, s, o) { n.resetLoader(t, h), n.updateStatsFromPart(t, e); var u = { frag: t, part: e, payload: i.data, networkDetails: o }; r(u), l(u) }, onError: function (r, a, s, o) { n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_ERROR, fatal: !1, frag: t, part: e, response: i({ url: d.url, data: void 0 }, r), error: new Error("HTTP Error " + r.code + " " + r.text), networkDetails: s, stats: o })) }, onAbort: function (r, i, a) { t.stats.aborted = e.stats.aborted, n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.INTERNAL_ABORTED, fatal: !1, frag: t, part: e, error: new Error("Aborted"), networkDetails: a, stats: r })) }, onTimeout: function (r, i, a) { n.resetLoader(t, h), u(new li({ type: L.NETWORK_ERROR, details: A.FRAG_LOAD_TIMEOUT, fatal: !1, frag: t, part: e, error: new Error("Timeout after " + f.timeout + "ms"), networkDetails: a, stats: r })) } }) } })) }, e.updateStatsFromPart = function (t, e) { var r = t.stats, i = e.stats, n = i.total; if (r.loaded += i.loaded, n) { var a = Math.round(t.duration / e.duration), s = Math.min(Math.round(r.loaded / n), a), o = (a - s) * Math.round(r.loaded / s); r.total = r.loaded + o } else r.total = Math.max(r.loaded, r.total); var l = r.loading, u = i.loading; l.start ? l.first += u.first - u.start : (l.start = u.start, l.first = u.first), l.end = u.end }, e.resetLoader = function (t, e) { t.loader = null, this.loader === e && (self.clearTimeout(this.partLoadTimeout), this.loader = null), e.destroy() }, t }(); function si(t, e) { void 0 === e && (e = null); var r = e || t, i = { frag: t, part: e, responseType: "arraybuffer", url: r.url, headers: {}, rangeStart: 0, rangeEnd: 0 }, n = r.byteRangeStartOffset, a = r.byteRangeEndOffset; if (y(n) && y(a)) { var s, o = n, l = a; if ("initSegment" === t.sn && "AES-128" === (null == (s = t.decryptdata) ? void 0 : s.method)) { var u = a - n; u % 16 && (l = a + (16 - u % 16)), 0 !== n && (i.resetIV = !0, o = n - 16) } i.rangeStart = o, i.rangeEnd = l } return i } function oi(t, e) { var r = new Error("GAP " + (t.gap ? "tag" : "attribute") + " found"), i = { type: L.MEDIA_ERROR, details: A.FRAG_GAP, fatal: !1, frag: t, error: r, networkDetails: null }; return e && (i.part = e), (e || t).stats.aborted = !0, new li(i) } var li = function (t) { function e(e) { var r; return (r = t.call(this, e.error.message) || this).data = void 0, r.data = e, r } return l(e, t), e }(c(Error)), ui = function () { function t(t, e) { this.subtle = void 0, this.aesIV = void 0, this.subtle = t, this.aesIV = e } return t.prototype.decrypt = function (t, e) { return this.subtle.decrypt({ name: "AES-CBC", iv: this.aesIV }, e, t) }, t }(), hi = function () { function t(t, e) { this.subtle = void 0, this.key = void 0, this.subtle = t, this.key = e } return t.prototype.expandKey = function () { return this.subtle.importKey("raw", this.key, { name: "AES-CBC" }, !1, ["encrypt", "decrypt"]) }, t }(), di = function () { function t() { this.rcon = [0, 1, 2, 4, 8, 16, 32, 64, 128, 27, 54], this.subMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.invSubMix = [new Uint32Array(256), new Uint32Array(256), new Uint32Array(256), new Uint32Array(256)], this.sBox = new Uint32Array(256), this.invSBox = new Uint32Array(256), this.key = new Uint32Array(0), this.ksRows = 0, this.keySize = 0, this.keySchedule = void 0, this.invKeySchedule = void 0, this.initTable() } var e = t.prototype; return e.uint8ArrayToUint32Array_ = function (t) { for (var e = new DataView(t), r = new Uint32Array(4), i = 0; i < 4; i++)r[i] = e.getUint32(4 * i); return r }, e.initTable = function () { var t = this.sBox, e = this.invSBox, r = this.subMix, i = r[0], n = r[1], a = r[2], s = r[3], o = this.invSubMix, l = o[0], u = o[1], h = o[2], d = o[3], c = new Uint32Array(256), f = 0, g = 0, v = 0; for (v = 0; v < 256; v++)c[v] = v < 128 ? v << 1 : v << 1 ^ 283; for (v = 0; v < 256; v++) { var m = g ^ g << 1 ^ g << 2 ^ g << 3 ^ g << 4; m = m >>> 8 ^ 255 & m ^ 99, t[f] = m, e[m] = f; var p = c[f], y = c[p], E = c[y], T = 257 * c[m] ^ 16843008 * m; i[f] = T << 24 | T >>> 8, n[f] = T << 16 | T >>> 16, a[f] = T << 8 | T >>> 24, s[f] = T, T = 16843009 * E ^ 65537 * y ^ 257 * p ^ 16843008 * f, l[m] = T << 24 | T >>> 8, u[m] = T << 16 | T >>> 16, h[m] = T << 8 | T >>> 24, d[m] = T, f ? (f = p ^ c[c[c[E ^ p]]], g ^= c[c[g]]) : f = g = 1 } }, e.expandKey = function (t) { for (var e = this.uint8ArrayToUint32Array_(t), r = !0, i = 0; i < e.length && r;)r = e[i] === this.key[i], i++; if (!r) { this.key = e; var n = this.keySize = e.length; if (4 !== n && 6 !== n && 8 !== n) throw new Error("Invalid aes key size=" + n); var a, s, o, l, u = this.ksRows = 4 * (n + 6 + 1), h = this.keySchedule = new Uint32Array(u), d = this.invKeySchedule = new Uint32Array(u), c = this.sBox, f = this.rcon, g = this.invSubMix, v = g[0], m = g[1], p = g[2], y = g[3]; for (a = 0; a < u; a++)a < n ? o = h[a] = e[a] : (l = o, a % n == 0 ? (l = c[(l = l << 8 | l >>> 24) >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l], l ^= f[a / n | 0] << 24) : n > 6 && a % n == 4 && (l = c[l >>> 24] << 24 | c[l >>> 16 & 255] << 16 | c[l >>> 8 & 255] << 8 | c[255 & l]), h[a] = o = (h[a - n] ^ l) >>> 0); for (s = 0; s < u; s++)a = u - s, l = 3 & s ? h[a] : h[a - 4], d[s] = s < 4 || a <= 4 ? l : v[c[l >>> 24]] ^ m[c[l >>> 16 & 255]] ^ p[c[l >>> 8 & 255]] ^ y[c[255 & l]], d[s] = d[s] >>> 0 } }, e.networkToHostOrderSwap = function (t) { return t << 24 | (65280 & t) << 8 | (16711680 & t) >> 8 | t >>> 24 }, e.decrypt = function (t, e, r) { for (var i, n, a, s, o, l, u, h, d, c, f, g, v, m, p = this.keySize + 6, y = this.invKeySchedule, E = this.invSBox, T = this.invSubMix, S = T[0], L = T[1], A = T[2], R = T[3], k = this.uint8ArrayToUint32Array_(r), b = k[0], D = k[1], I = k[2], w = k[3], C = new Int32Array(t), _ = new Int32Array(C.length), x = this.networkToHostOrderSwap; e < C.length;) { for (d = x(C[e]), c = x(C[e + 1]), f = x(C[e + 2]), g = x(C[e + 3]), o = d ^ y[0], l = g ^ y[1], u = f ^ y[2], h = c ^ y[3], v = 4, m = 1; m < p; m++)i = S[o >>> 24] ^ L[l >> 16 & 255] ^ A[u >> 8 & 255] ^ R[255 & h] ^ y[v], n = S[l >>> 24] ^ L[u >> 16 & 255] ^ A[h >> 8 & 255] ^ R[255 & o] ^ y[v + 1], a = S[u >>> 24] ^ L[h >> 16 & 255] ^ A[o >> 8 & 255] ^ R[255 & l] ^ y[v + 2], s = S[h >>> 24] ^ L[o >> 16 & 255] ^ A[l >> 8 & 255] ^ R[255 & u] ^ y[v + 3], o = i, l = n, u = a, h = s, v += 4; i = E[o >>> 24] << 24 ^ E[l >> 16 & 255] << 16 ^ E[u >> 8 & 255] << 8 ^ E[255 & h] ^ y[v], n = E[l >>> 24] << 24 ^ E[u >> 16 & 255] << 16 ^ E[h >> 8 & 255] << 8 ^ E[255 & o] ^ y[v + 1], a = E[u >>> 24] << 24 ^ E[h >> 16 & 255] << 16 ^ E[o >> 8 & 255] << 8 ^ E[255 & l] ^ y[v + 2], s = E[h >>> 24] << 24 ^ E[o >> 16 & 255] << 16 ^ E[l >> 8 & 255] << 8 ^ E[255 & u] ^ y[v + 3], _[e] = x(i ^ b), _[e + 1] = x(s ^ D), _[e + 2] = x(a ^ I), _[e + 3] = x(n ^ w), b = d, D = c, I = f, w = g, e += 4 } return _.buffer }, t }(), ci = function () { function t(t, e) { var r = (void 0 === e ? {} : e).removePKCS7Padding, i = void 0 === r || r; if (this.logEnabled = !0, this.removePKCS7Padding = void 0, this.subtle = null, this.softwareDecrypter = null, this.key = null, this.fastAesKey = null, this.remainderData = null, this.currentIV = null, this.currentResult = null, this.useSoftware = void 0, this.useSoftware = t.enableSoftwareAES, this.removePKCS7Padding = i, i) try { var n = self.crypto; n && (this.subtle = n.subtle || n.webkitSubtle) } catch (t) { } null === this.subtle && (this.useSoftware = !0) } var e = t.prototype; return e.destroy = function () { this.subtle = null, this.softwareDecrypter = null, this.key = null, this.fastAesKey = null, this.remainderData = null, this.currentIV = null, this.currentResult = null }, e.isSync = function () { return this.useSoftware }, e.flush = function () { var t = this.currentResult, e = this.remainderData; if (!t || e) return this.reset(), null; var r, i, n, a = new Uint8Array(t); return this.reset(), this.removePKCS7Padding ? (i = (r = a).byteLength, (n = i && new DataView(r.buffer).getUint8(i - 1)) ? nt(r, 0, i - n) : r) : a }, e.reset = function () { this.currentResult = null, this.currentIV = null, this.remainderData = null, this.softwareDecrypter && (this.softwareDecrypter = null) }, e.decrypt = function (t, e, r) { var i = this; return this.useSoftware ? new Promise((function (n, a) { i.softwareDecrypt(new Uint8Array(t), e, r); var s = i.flush(); s ? n(s.buffer) : a(new Error("[softwareDecrypt] Failed to decrypt data")) })) : this.webCryptoDecrypt(new Uint8Array(t), e, r) }, e.softwareDecrypt = function (t, e, r) { var i = this.currentIV, n = this.currentResult, a = this.remainderData; this.logOnce("JS AES decrypt"), a && (t = Kt(a, t), this.remainderData = null); var s = this.getValidChunk(t); if (!s.length) return null; i && (r = i); var o = this.softwareDecrypter; o || (o = this.softwareDecrypter = new di), o.expandKey(e); var l = n; return this.currentResult = o.decrypt(s.buffer, 0, r), this.currentIV = nt(s, -16).buffer, l || null }, e.webCryptoDecrypt = function (t, e, r) { var i = this, n = this.subtle; return this.key === e && this.fastAesKey || (this.key = e, this.fastAesKey = new hi(n, e)), this.fastAesKey.expandKey().then((function (e) { return n ? (i.logOnce("WebCrypto AES decrypt"), new ui(n, new Uint8Array(r)).decrypt(t.buffer, e)) : Promise.reject(new Error("web crypto not initialized")) })).catch((function (n) { return w.warn("[decrypter]: WebCrypto Error, disable WebCrypto API, " + n.name + ": " + n.message), i.onWebCryptoError(t, e, r) })) }, e.onWebCryptoError = function (t, e, r) { this.useSoftware = !0, this.logEnabled = !0, this.softwareDecrypt(t, e, r); var i = this.flush(); if (i) return i.buffer; throw new Error("WebCrypto and softwareDecrypt: failed to decrypt data") }, e.getValidChunk = function (t) { var e = t, r = t.length - t.length % 16; return r !== t.length && (e = nt(t, 0, r), this.remainderData = nt(t, r)), e }, e.logOnce = function (t) { this.logEnabled && (w.log("[decrypter]: " + t), this.logEnabled = !1) }, t }(), fi = function (t) { for (var e = "", r = t.length, i = 0; i < r; i++)e += "[" + t.start(i).toFixed(3) + "-" + t.end(i).toFixed(3) + "]"; return e }, gi = "STOPPED", vi = "IDLE", mi = "KEY_LOADING", pi = "FRAG_LOADING", yi = "FRAG_LOADING_WAITING_RETRY", Ei = "WAITING_TRACK", Ti = "PARSING", Si = "PARSED", Li = "ENDED", Ai = "ERROR", Ri = "WAITING_INIT_PTS", ki = "WAITING_LEVEL", bi = function (t) { function e(e, r, i, n, a) { var s; return (s = t.call(this) || this).hls = void 0, s.fragPrevious = null, s.fragCurrent = null, s.fragmentTracker = void 0, s.transmuxer = null, s._state = gi, s.playlistType = void 0, s.media = null, s.mediaBuffer = null, s.config = void 0, s.bitrateTest = !1, s.lastCurrentTime = 0, s.nextLoadPosition = 0, s.startPosition = 0, s.startTimeOffset = null, s.loadedmetadata = !1, s.retryDate = 0, s.levels = null, s.fragmentLoader = void 0, s.keyLoader = void 0, s.levelLastLoaded = null, s.startFragRequested = !1, s.decrypter = void 0, s.initPTS = [], s.onvseeking = null, s.onvended = null, s.logPrefix = "", s.log = void 0, s.warn = void 0, s.playlistType = a, s.logPrefix = n, s.log = w.log.bind(w, n + ":"), s.warn = w.warn.bind(w, n + ":"), s.hls = e, s.fragmentLoader = new ai(e.config), s.keyLoader = i, s.fragmentTracker = r, s.config = e.config, s.decrypter = new ci(e.config), e.on(S.MANIFEST_LOADED, s.onManifestLoaded, function (t) { if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return t }(s)), s } l(e, t); var r = e.prototype; return r.doTick = function () { this.onTickEnd() }, r.onTickEnd = function () { }, r.startLoad = function (t) { }, r.stopLoad = function () { this.fragmentLoader.abort(), this.keyLoader.abort(this.playlistType); var t = this.fragCurrent; null != t && t.loader && (t.abortRequests(), this.fragmentTracker.removeFragment(t)), this.resetTransmuxer(), this.fragCurrent = null, this.fragPrevious = null, this.clearInterval(), this.clearNextTick(), this.state = gi }, r._streamEnded = function (t, e) { if (e.live || t.nextStart || !t.end || !this.media) return !1; var r = e.partList; if (null != r && r.length) { var i = r[r.length - 1]; return Jr.isBuffered(this.media, i.start + i.duration / 2) } var n = e.fragments[e.fragments.length - 1].type; return this.fragmentTracker.isEndListAppended(n) }, r.getLevelDetails = function () { var t; if (this.levels && null !== this.levelLastLoaded) return null == (t = this.levelLastLoaded) ? void 0 : t.details }, r.onMediaAttached = function (t, e) { var r = this.media = this.mediaBuffer = e.media; this.onvseeking = this.onMediaSeeking.bind(this), this.onvended = this.onMediaEnded.bind(this), r.addEventListener("seeking", this.onvseeking), r.addEventListener("ended", this.onvended); var i = this.config; this.levels && i.autoStartLoad && this.state === gi && this.startLoad(i.startPosition) }, r.onMediaDetaching = function () { var t = this.media; null != t && t.ended && (this.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0), t && this.onvseeking && this.onvended && (t.removeEventListener("seeking", this.onvseeking), t.removeEventListener("ended", this.onvended), this.onvseeking = this.onvended = null), this.keyLoader && this.keyLoader.detach(), this.media = this.mediaBuffer = null, this.loadedmetadata = !1, this.fragmentTracker.removeAllFragments(), this.stopLoad() }, r.onMediaSeeking = function () { var t = this.config, e = this.fragCurrent, r = this.media, i = this.mediaBuffer, n = this.state, a = r ? r.currentTime : 0, s = Jr.bufferInfo(i || r, a, t.maxBufferHole); if (this.log("media seeking to " + (y(a) ? a.toFixed(3) : a) + ", state: " + n), this.state === Li) this.resetLoadingState(); else if (e) { var o = t.maxFragLookUpTolerance, l = e.start - o, u = e.start + e.duration + o; if (!s.len || u < s.start || l > s.end) { var h = a > u; (a < l || h) && (h && e.loader && (this.log("seeking outside of buffer while fragment load in progress, cancel fragment load"), e.abortRequests(), this.resetLoadingState()), this.fragPrevious = null) } } r && (this.fragmentTracker.removeFragmentsInRange(a, 1 / 0, this.playlistType, !0), this.lastCurrentTime = a), this.loadedmetadata || s.len || (this.nextLoadPosition = this.startPosition = a), this.tickImmediate() }, r.onMediaEnded = function () { this.startPosition = this.lastCurrentTime = 0 }, r.onManifestLoaded = function (t, e) { this.startTimeOffset = e.startTimeOffset, this.initPTS = [] }, r.onHandlerDestroying = function () { this.hls.off(S.MANIFEST_LOADED, this.onManifestLoaded, this), this.stopLoad(), t.prototype.onHandlerDestroying.call(this), this.hls = null }, r.onHandlerDestroyed = function () { this.state = gi, this.fragmentLoader && this.fragmentLoader.destroy(), this.keyLoader && this.keyLoader.destroy(), this.decrypter && this.decrypter.destroy(), this.hls = this.log = this.warn = this.decrypter = this.keyLoader = this.fragmentLoader = this.fragmentTracker = null, t.prototype.onHandlerDestroyed.call(this) }, r.loadFragment = function (t, e, r) { this._loadFragForPlayback(t, e, r) }, r._loadFragForPlayback = function (t, e, r) { var i = this; this._doFragLoad(t, e, r, (function (e) { if (i.fragContextChanged(t)) return i.warn("Fragment " + t.sn + (e.part ? " p: " + e.part.index : "") + " of level " + t.level + " was dropped during download."), void i.fragmentTracker.removeFragment(t); t.stats.chunkCount++, i._handleFragmentLoadProgress(e) })).then((function (e) { if (e) { var r = i.state; i.fragContextChanged(t) ? (r === pi || !i.fragCurrent && r === Ti) && (i.fragmentTracker.removeFragment(t), i.state = vi) : ("payload" in e && (i.log("Loaded fragment " + t.sn + " of level " + t.level), i.hls.trigger(S.FRAG_LOADED, e)), i._handleFragmentLoadComplete(e)) } })).catch((function (e) { i.state !== gi && i.state !== Ai && (i.warn(e), i.resetFragmentLoading(t)) })) }, r.clearTrackerIfNeeded = function (t) { var e, r = this.fragmentTracker; if (r.getState(t) === Yr) { var i = t.type, n = this.getFwdBufferInfo(this.mediaBuffer, i), a = Math.max(t.duration, n ? n.len : this.config.maxBufferLength); this.reduceMaxBufferLength(a) && r.removeFragment(t) } else 0 === (null == (e = this.mediaBuffer) ? void 0 : e.buffered.length) ? r.removeAllFragments() : r.hasParts(t.type) && (r.detectPartialFragments({ frag: t, part: null, stats: t.stats, id: t.type }), r.getState(t) === Wr && r.removeFragment(t)) }, r.checkLiveUpdate = function (t) { if (t.updated && !t.live) { var e = t.fragments[t.fragments.length - 1]; this.fragmentTracker.detectPartialFragments({ frag: e, part: null, stats: e.stats, id: e.type }) } t.fragments[0] || (t.deltaUpdateFailed = !0) }, r.flushMainBuffer = function (t, e, r) { if (void 0 === r && (r = null), t - e) { var i = { startOffset: t, endOffset: e, type: r }; this.hls.trigger(S.BUFFER_FLUSHING, i) } }, r._loadInitSegment = function (t, e) { var r = this; this._doFragLoad(t, e).then((function (e) { if (!e || r.fragContextChanged(t) || !r.levels) throw new Error("init load aborted"); return e })).then((function (e) { var i = r.hls, n = e.payload, a = t.decryptdata; if (n && n.byteLength > 0 && null != a && a.key && a.iv && "AES-128" === a.method) { var s = self.performance.now(); return r.decrypter.decrypt(new Uint8Array(n), a.key.buffer, a.iv.buffer).catch((function (e) { throw i.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_DECRYPT_ERROR, fatal: !1, error: e, reason: e.message, frag: t }), e })).then((function (n) { var a = self.performance.now(); return i.trigger(S.FRAG_DECRYPTED, { frag: t, payload: n, stats: { tstart: s, tdecrypt: a } }), e.payload = n, r.completeInitSegmentLoad(e) })) } return r.completeInitSegmentLoad(e) })).catch((function (e) { r.state !== gi && r.state !== Ai && (r.warn(e), r.resetFragmentLoading(t)) })) }, r.completeInitSegmentLoad = function (t) { if (!this.levels) throw new Error("init load aborted, missing levels"); var e = t.frag.stats; this.state = vi, t.frag.data = new Uint8Array(t.payload), e.parsing.start = e.buffering.start = self.performance.now(), e.parsing.end = e.buffering.end = self.performance.now(), this.tick() }, r.fragContextChanged = function (t) { var e = this.fragCurrent; return !t || !e || t.sn !== e.sn || t.level !== e.level }, r.fragBufferedComplete = function (t, e) { var r, i, n, a, s = this.mediaBuffer ? this.mediaBuffer : this.media; if (this.log("Buffered " + t.type + " sn: " + t.sn + (e ? " part: " + e.index : "") + " of " + (this.playlistType === we ? "level" : "track") + " " + t.level + " (frag:[" + (null != (r = t.startPTS) ? r : NaN).toFixed(3) + "-" + (null != (i = t.endPTS) ? i : NaN).toFixed(3) + "] > buffer:" + (s ? fi(Jr.getBuffered(s)) : "(detached)") + ")"), "initSegment" !== t.sn) { var o; if (t.type !== _e) { var l = t.elementaryStreams; if (!Object.keys(l).some((function (t) { return !!l[t] }))) return void (this.state = vi) } var u = null == (o = this.levels) ? void 0 : o[t.level]; null != u && u.fragmentError && (this.log("Resetting level fragment error count of " + u.fragmentError + " on frag buffered"), u.fragmentError = 0) } this.state = vi, s && (!this.loadedmetadata && t.type == we && s.buffered.length && (null == (n = this.fragCurrent) ? void 0 : n.sn) === (null == (a = this.fragPrevious) ? void 0 : a.sn) && (this.loadedmetadata = !0, this.seekToStartPos()), this.tick()) }, r.seekToStartPos = function () { }, r._handleFragmentLoadComplete = function (t) { var e = this.transmuxer; if (e) { var r = t.frag, i = t.part, n = t.partsLoaded, a = !n || 0 === n.length || n.some((function (t) { return !t })), s = new $r(r.level, r.sn, r.stats.chunkCount + 1, 0, i ? i.index : -1, !a); e.flush(s) } }, r._handleFragmentLoadProgress = function (t) { }, r._doFragLoad = function (t, e, r, i) { var n, a = this; void 0 === r && (r = null); var s = null == e ? void 0 : e.details; if (!this.levels || !s) throw new Error("frag load aborted, missing level" + (s ? "" : " detail") + "s"); var o = null; if (!t.encrypted || null != (n = t.decryptdata) && n.key ? !t.encrypted && s.encryptedFragments.length && this.keyLoader.loadClear(t, s.encryptedFragments) : (this.log("Loading key for " + t.sn + " of [" + s.startSN + "-" + s.endSN + "], " + ("[stream-controller]" === this.logPrefix ? "level" : "track") + " " + t.level), this.state = mi, this.fragCurrent = t, o = this.keyLoader.load(t).then((function (t) { if (!a.fragContextChanged(t.frag)) return a.hls.trigger(S.KEY_LOADED, t), a.state === mi && (a.state = vi), t })), this.hls.trigger(S.KEY_LOADING, { frag: t }), null === this.fragCurrent && (o = Promise.reject(new Error("frag load aborted, context changed in KEY_LOADING")))), r = Math.max(t.start, r || 0), this.config.lowLatencyMode && "initSegment" !== t.sn) { var l = s.partList; if (l && i) { r > t.end && s.fragmentHint && (t = s.fragmentHint); var u = this.getNextPart(l, t, r); if (u > -1) { var h, d = l[u]; return this.log("Loading part sn: " + t.sn + " p: " + d.index + " cc: " + t.cc + " of playlist [" + s.startSN + "-" + s.endSN + "] parts [0-" + u + "-" + (l.length - 1) + "] " + ("[stream-controller]" === this.logPrefix ? "level" : "track") + ": " + t.level + ", target: " + parseFloat(r.toFixed(3))), this.nextLoadPosition = d.start + d.duration, this.state = pi, h = o ? o.then((function (r) { return !r || a.fragContextChanged(r.frag) ? null : a.doFragPartsLoad(t, d, e, i) })).catch((function (t) { return a.handleFragLoadError(t) })) : this.doFragPartsLoad(t, d, e, i).catch((function (t) { return a.handleFragLoadError(t) })), this.hls.trigger(S.FRAG_LOADING, { frag: t, part: d, targetBufferTime: r }), null === this.fragCurrent ? Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")) : h } if (!t.url || this.loadedEndOfParts(l, r)) return Promise.resolve(null) } } this.log("Loading fragment " + t.sn + " cc: " + t.cc + " " + (s ? "of [" + s.startSN + "-" + s.endSN + "] " : "") + ("[stream-controller]" === this.logPrefix ? "level" : "track") + ": " + t.level + ", target: " + parseFloat(r.toFixed(3))), y(t.sn) && !this.bitrateTest && (this.nextLoadPosition = t.start + t.duration), this.state = pi; var c, f = this.config.progressive; return c = f && o ? o.then((function (e) { return !e || a.fragContextChanged(null == e ? void 0 : e.frag) ? null : a.fragmentLoader.load(t, i) })).catch((function (t) { return a.handleFragLoadError(t) })) : Promise.all([this.fragmentLoader.load(t, f ? i : void 0), o]).then((function (t) { var e = t[0]; return !f && e && i && i(e), e })).catch((function (t) { return a.handleFragLoadError(t) })), this.hls.trigger(S.FRAG_LOADING, { frag: t, targetBufferTime: r }), null === this.fragCurrent ? Promise.reject(new Error("frag load aborted, context changed in FRAG_LOADING")) : c }, r.doFragPartsLoad = function (t, e, r, i) { var n = this; return new Promise((function (a, s) { var o, l = [], u = null == (o = r.details) ? void 0 : o.partList; !function e(o) { n.fragmentLoader.loadPart(t, o, i).then((function (i) { l[o.index] = i; var s = i.part; n.hls.trigger(S.FRAG_LOADED, i); var h = ur(r, t.sn, o.index + 1) || hr(u, t.sn, o.index + 1); if (!h) return a({ frag: t, part: s, partsLoaded: l }); e(h) })).catch(s) }(e) })) }, r.handleFragLoadError = function (t) { if ("data" in t) { var e = t.data; t.data && e.details === A.INTERNAL_ABORTED ? this.handleFragLoadAborted(e.frag, e.part) : this.hls.trigger(S.ERROR, e) } else this.hls.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.INTERNAL_EXCEPTION, err: t, error: t, fatal: !0 }); return null }, r._handleTransmuxerFlush = function (t) { var e = this.getCurrentContext(t); if (e && this.state === Ti) { var r = e.frag, i = e.part, n = e.level, a = self.performance.now(); r.stats.parsing.end = a, i && (i.stats.parsing.end = a), this.updateLevelTiming(r, i, n, t.partial) } else this.fragCurrent || this.state === gi || this.state === Ai || (this.state = vi) }, r.getCurrentContext = function (t) { var e = this.levels, r = this.fragCurrent, i = t.level, n = t.sn, a = t.part; if (null == e || !e[i]) return this.warn("Levels object was unset while buffering fragment " + n + " of level " + i + ". The current chunk will not be buffered."), null; var s = e[i], o = a > -1 ? ur(s, n, a) : null, l = o ? o.fragment : function (t, e, r) { if (null == t || !t.details) return null; var i = t.details, n = i.fragments[e - i.startSN]; return n || ((n = i.fragmentHint) && n.sn === e ? n : e < i.startSN && r && r.sn === e ? r : null) }(s, n, r); return l ? (r && r !== l && (l.stats = r.stats), { frag: l, part: o, level: s }) : null }, r.bufferFragmentData = function (t, e, r, i, n) { var a; if (t && this.state === Ti) { var s = t.data1, o = t.data2, l = s; if (s && o && (l = Kt(s, o)), null != (a = l) && a.length) { var u = { type: t.type, frag: e, part: r, chunkMeta: i, parent: e.type, data: l }; if (this.hls.trigger(S.BUFFER_APPENDING, u), t.dropped && t.independent && !r) { if (n) return; this.flushBufferGap(e) } } } }, r.flushBufferGap = function (t) { var e = this.media; if (e) if (Jr.isBuffered(e, e.currentTime)) { var r = e.currentTime, i = Jr.bufferInfo(e, r, 0), n = t.duration, a = Math.min(2 * this.config.maxFragLookUpTolerance, .25 * n), s = Math.max(Math.min(t.start - a, i.end - a), r + a); t.start - s > a && this.flushMainBuffer(s, t.start) } else this.flushMainBuffer(0, t.start) }, r.getFwdBufferInfo = function (t, e) { var r = this.getLoadPosition(); return y(r) ? this.getFwdBufferInfoAtPos(t, r, e) : null }, r.getFwdBufferInfoAtPos = function (t, e, r) { var i = this.config.maxBufferHole, n = Jr.bufferInfo(t, e, i); if (0 === n.len && void 0 !== n.nextStart) { var a = this.fragmentTracker.getBufferedFrag(e, r); if (a && n.nextStart < a.end) return Jr.bufferInfo(t, e, Math.max(n.nextStart, i)) } return n }, r.getMaxBufferLength = function (t) { var e, r = this.config; return e = t ? Math.max(8 * r.maxBufferSize / t, r.maxBufferLength) : r.maxBufferLength, Math.min(e, r.maxMaxBufferLength) }, r.reduceMaxBufferLength = function (t) { var e = this.config, r = t || e.maxBufferLength; return e.maxMaxBufferLength >= r && (e.maxMaxBufferLength /= 2, this.warn("Reduce max buffer length to " + e.maxMaxBufferLength + "s"), !0) }, r.getAppendedFrag = function (t, e) { var r = this.fragmentTracker.getAppendedFrag(t, we); return r && "fragment" in r ? r.fragment : r }, r.getNextFragment = function (t, e) { var r = e.fragments, i = r.length; if (!i) return null; var n, a = this.config, s = r[0].start; if (e.live) { var o = a.initialLiveManifestSize; if (i < o) return this.warn("Not enough fragments to start playback (have: " + i + ", need: " + o + ")"), null; (!e.PTSKnown && !this.startFragRequested && -1 === this.startPosition || t < s) && (n = this.getInitialLiveFragment(e, r), this.startPosition = this.nextLoadPosition = n ? this.hls.liveSyncPosition || n.start : t) } else t <= s && (n = r[0]); if (!n) { var l = a.lowLatencyMode ? e.partEnd : e.fragmentEnd; n = this.getFragmentAtPosition(t, l, e) } return this.mapToInitFragWhenRequired(n) }, r.isLoopLoading = function (t, e) { var r = this.fragmentTracker.getState(t); return (r === jr || r === Wr && !!t.gap) && this.nextLoadPosition > e }, r.getNextFragmentLoopLoading = function (t, e, r, i, n) { var a = t.gap, s = this.getNextFragment(this.nextLoadPosition, e); if (null === s) return s; if (t = s, a && t && !t.gap && r.nextStart) { var o = this.getFwdBufferInfoAtPos(this.mediaBuffer ? this.mediaBuffer : this.media, r.nextStart, i); if (null !== o && r.len + o.len >= n) return this.log('buffer full after gaps in "' + i + '" playlist starting at sn: ' + t.sn), null } return t }, r.mapToInitFragWhenRequired = function (t) { return null == t || !t.initSegment || null != t && t.initSegment.data || this.bitrateTest ? t : t.initSegment }, r.getNextPart = function (t, e, r) { for (var i = -1, n = !1, a = !0, s = 0, o = t.length; s < o; s++) { var l = t[s]; if (a = a && !l.independent, i > -1 && r < l.start) break; var u = l.loaded; u ? i = -1 : (n || l.independent || a) && l.fragment === e && (i = s), n = u } return i }, r.loadedEndOfParts = function (t, e) { var r = t[t.length - 1]; return r && e > r.start && r.loaded }, r.getInitialLiveFragment = function (t, e) { var r = this.fragPrevious, i = null; if (r) { if (t.hasProgramDateTime && (this.log("Live playlist, switching playlist, load frag with same PDT: " + r.programDateTime), i = function (t, e, r) { if (null === e || !Array.isArray(t) || !t.length || !y(e)) return null; if (e < (t[0].programDateTime || 0)) return null; if (e >= (t[t.length - 1].endProgramDateTime || 0)) return null; r = r || 0; for (var i = 0; i < t.length; ++i) { var n = t[i]; if (Tr(e, r, n)) return n } return null }(e, r.endProgramDateTime, this.config.maxFragLookUpTolerance)), !i) { var n = r.sn + 1; if (n >= t.startSN && n <= t.endSN) { var a = e[n - t.startSN]; r.cc === a.cc && (i = a, this.log("Live playlist, switching playlist, load frag with next SN: " + i.sn)) } i || (i = function (t, e) { return pr(t, (function (t) { return t.cc < e ? 1 : t.cc > e ? -1 : 0 })) }(e, r.cc), i && this.log("Live playlist, switching playlist, load frag with same CC: " + i.sn)) } } else { var s = this.hls.liveSyncPosition; null !== s && (i = this.getFragmentAtPosition(s, this.bitrateTest ? t.fragmentEnd : t.edge, t)) } return i }, r.getFragmentAtPosition = function (t, e, r) { var i, n = this.config, a = this.fragPrevious, s = r.fragments, o = r.endSN, l = r.fragmentHint, u = n.maxFragLookUpTolerance, h = r.partList, d = !!(n.lowLatencyMode && null != h && h.length && l); if (d && l && !this.bitrateTest && (s = s.concat(l), o = l.sn), i = t < e ? yr(a, s, t, t > e - u ? 0 : u) : s[s.length - 1]) { var c = i.sn - r.startSN, f = this.fragmentTracker.getState(i); if ((f === jr || f === Wr && i.gap) && (a = i), a && i.sn === a.sn && (!d || h[0].fragment.sn > i.sn) && a && i.level === a.level) { var g = s[c + 1]; i = i.sn < o && this.fragmentTracker.getState(g) !== jr ? g : null } } return i }, r.synchronizeToLiveEdge = function (t) { var e = this.config, r = this.media; if (r) { var i = this.hls.liveSyncPosition, n = r.currentTime, a = t.fragments[0].start, s = t.edge, o = n >= a - e.maxFragLookUpTolerance && n <= s; if (null !== i && r.duration > i && (n < i || !o)) { var l = void 0 !== e.liveMaxLatencyDuration ? e.liveMaxLatencyDuration : e.liveMaxLatencyDurationCount * t.targetduration; (!o && r.readyState < 4 || n < s - l) && (this.loadedmetadata || (this.nextLoadPosition = i), r.readyState && (this.warn("Playback: " + n.toFixed(3) + " is located too far from the end of live sliding playlist: " + s + ", reset currentTime to : " + i.toFixed(3)), r.currentTime = i)) } } }, r.alignPlaylists = function (t, e, r) { var i = t.fragments.length; if (!i) return this.warn("No fragments in live playlist"), 0; var n = t.fragments[0].start, a = !e, s = t.alignedSliding && y(n); if (a || !s && !n) { var o = this.fragPrevious; ri(o, r, t); var l = t.fragments[0].start; return this.log("Live playlist sliding: " + l.toFixed(2) + " start-sn: " + (e ? e.startSN : "na") + "->" + t.startSN + " prev-sn: " + (o ? o.sn : "na") + " fragments: " + i), l } return n }, r.waitForCdnTuneIn = function (t) { return t.live && t.canBlockReload && t.partTarget && t.tuneInGoal > Math.max(t.partHoldBack, 3 * t.partTarget) }, r.setStartPosition = function (t, e) { var r = this.startPosition; if (r < e && (r = -1), -1 === r || -1 === this.lastCurrentTime) { var i = null !== this.startTimeOffset, n = i ? this.startTimeOffset : t.startTimeOffset; null !== n && y(n) ? (r = e + n, n < 0 && (r += t.totalduration), r = Math.min(Math.max(e, r), e + t.totalduration), this.log("Start time offset " + n + " found in " + (i ? "multivariant" : "media") + " playlist, adjust startPosition to " + r), this.startPosition = r) : t.live ? r = this.hls.liveSyncPosition || e : this.startPosition = r = 0, this.lastCurrentTime = r } this.nextLoadPosition = r }, r.getLoadPosition = function () { var t = this.media, e = 0; return this.loadedmetadata && t ? e = t.currentTime : this.nextLoadPosition && (e = this.nextLoadPosition), e }, r.handleFragLoadAborted = function (t, e) { this.transmuxer && "initSegment" !== t.sn && t.stats.aborted && (this.warn("Fragment " + t.sn + (e ? " part " + e.index : "") + " of level " + t.level + " was aborted"), this.resetFragmentLoading(t)) }, r.resetFragmentLoading = function (t) { this.fragCurrent && (this.fragContextChanged(t) || this.state === yi) || (this.state = vi) }, r.onFragmentOrKeyLoadError = function (t, e) { if (e.chunkMeta && !e.frag) { var r = this.getCurrentContext(e.chunkMeta); r && (e.frag = r.frag) } var i = e.frag; if (i && i.type === t && this.levels) if (this.fragContextChanged(i)) { var n; this.warn("Frag load error must match current frag to retry " + i.url + " > " + (null == (n = this.fragCurrent) ? void 0 : n.url)) } else { var a = e.details === A.FRAG_GAP; a && this.fragmentTracker.fragBuffered(i, !0); var s = e.errorAction, o = s || {}, l = o.action, u = o.retryCount, h = void 0 === u ? 0 : u, d = o.retryConfig; if (s && l === Rr && d) { this.resetStartWhenNotLoaded(this.levelLastLoaded); var c = gr(d, h); this.warn("Fragment " + i.sn + " of " + t + " " + i.level + " errored with " + e.details + ", retrying loading " + (h + 1) + "/" + d.maxNumRetry + " in " + c + "ms"), s.resolved = !0, this.retryDate = self.performance.now() + c, this.state = yi } else if (d && s) { if (this.resetFragmentErrors(t), !(h < d.maxNumRetry)) return void w.warn(e.details + " reached or exceeded max retry (" + h + ")"); a || l === Ar || (s.resolved = !0) } else (null == s ? void 0 : s.action) === Lr ? this.state = ki : this.state = Ai; this.tickImmediate() } }, r.reduceLengthAndFlushBuffer = function (t) { if (this.state === Ti || this.state === Si) { var e = t.parent, r = this.getFwdBufferInfo(this.mediaBuffer, e), i = r && r.len > .5; i && this.reduceMaxBufferLength(r.len); var n = !i; return n && this.warn("Buffer full error while media.currentTime is not buffered, flush " + e + " buffer"), t.frag && (this.fragmentTracker.removeFragment(t.frag), this.nextLoadPosition = t.frag.start), this.resetLoadingState(), n } return !1 }, r.resetFragmentErrors = function (t) { t === Ce && (this.fragCurrent = null), this.loadedmetadata || (this.startFragRequested = !1), this.state !== gi && (this.state = vi) }, r.afterBufferFlushed = function (t, e, r) { if (t) { var i = Jr.getBuffered(t); this.fragmentTracker.detectEvictedFragments(e, i, r), this.state === Li && this.resetLoadingState() } }, r.resetLoadingState = function () { this.log("Reset loading state"), this.fragCurrent = null, this.fragPrevious = null, this.state = vi }, r.resetStartWhenNotLoaded = function (t) { if (!this.loadedmetadata) { this.startFragRequested = !1; var e = t ? t.details : null; null != e && e.live ? (this.startPosition = -1, this.setStartPosition(e, 0), this.resetLoadingState()) : this.nextLoadPosition = this.startPosition } }, r.resetWhenMissingContext = function (t) { this.warn("The loading context changed while buffering fragment " + t.sn + " of level " + t.level + ". This chunk will not be buffered."), this.removeUnbufferedFrags(), this.resetStartWhenNotLoaded(this.levelLastLoaded), this.resetLoadingState() }, r.removeUnbufferedFrags = function (t) { void 0 === t && (t = 0), this.fragmentTracker.removeFragmentsInRange(t, 1 / 0, this.playlistType, !1, !0) }, r.updateLevelTiming = function (t, e, r, i) { var n, a = this, s = r.details; if (s) { if (!Object.keys(t.elementaryStreams).reduce((function (e, n) { var o = t.elementaryStreams[n]; if (o) { var l = o.endPTS - o.startPTS; if (l <= 0) return a.warn("Could not parse fragment " + t.sn + " " + n + " duration reliably (" + l + ")"), e || !1; var u = i ? 0 : ar(s, t, o.startPTS, o.endPTS, o.startDTS, o.endDTS); return a.hls.trigger(S.LEVEL_PTS_UPDATED, { details: s, level: r, drift: u, type: n, frag: t, start: o.startPTS, end: o.endPTS }), !0 } return e }), !1) && null === (null == (n = this.transmuxer) ? void 0 : n.error)) { var o = new Error("Found no media in fragment " + t.sn + " of level " + t.level + " resetting transmuxer to fallback to playlist timing"); if (0 === r.fragmentError && (r.fragmentError++, t.gap = !0, this.fragmentTracker.removeFragment(t), this.fragmentTracker.fragBuffered(t, !0)), this.warn(o.message), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: o, frag: t, reason: "Found no media in msn " + t.sn + ' of level "' + r.url + '"' }), !this.hls) return; this.resetTransmuxer() } this.state = Si, this.hls.trigger(S.FRAG_PARSED, { frag: t, part: e }) } else this.warn("level.details undefined") }, r.resetTransmuxer = function () { this.transmuxer && (this.transmuxer.destroy(), this.transmuxer = null) }, r.recoverWorkerError = function (t) { "demuxerWorker" === t.event && (this.fragmentTracker.removeAllFragments(), this.resetTransmuxer(), this.resetStartWhenNotLoaded(this.levelLastLoaded), this.resetLoadingState()) }, s(e, [{ key: "state", get: function () { return this._state }, set: function (t) { var e = this._state; e !== t && (this._state = t, this.log(e + "->" + t)) } }]), e }(Hr), Di = function () { function t() { this.chunks = [], this.dataLength = 0 } var e = t.prototype; return e.push = function (t) { this.chunks.push(t), this.dataLength += t.length }, e.flush = function () { var t, e = this.chunks, r = this.dataLength; return e.length ? (t = 1 === e.length ? e[0] : function (t, e) { for (var r = new Uint8Array(e), i = 0, n = 0; n < t.length; n++) { var a = t[n]; r.set(a, i), i += a.length } return r }(e, r), this.reset(), t) : new Uint8Array(0) }, e.reset = function () { this.chunks.length = 0, this.dataLength = 0 }, t }(); function Ii(t, e) { return void 0 === t && (t = ""), void 0 === e && (e = 9e4), { type: t, id: -1, pid: -1, inputTimeScale: e, sequenceNumber: -1, samples: [], dropped: 0 } } var wi = function () { function t() { this._audioTrack = void 0, this._id3Track = void 0, this.frameIndex = 0, this.cachedData = null, this.basePTS = null, this.initPTS = null, this.lastPTS = null } var e = t.prototype; return e.resetInitSegment = function (t, e, r, i) { this._id3Track = { type: "id3", id: 3, pid: -1, inputTimeScale: 9e4, sequenceNumber: 0, samples: [], dropped: 0 } }, e.resetTimeStamp = function (t) { this.initPTS = t, this.resetContiguity() }, e.resetContiguity = function () { this.basePTS = null, this.lastPTS = null, this.frameIndex = 0 }, e.canParse = function (t, e) { return !1 }, e.appendFrame = function (t, e, r) { }, e.demux = function (t, e) { this.cachedData && (t = Kt(this.cachedData, t), this.cachedData = null); var r, i = lt(t, 0), n = i ? i.length : 0, a = this._audioTrack, s = this._id3Track, o = i ? dt(i) : void 0, l = t.length; for ((null === this.basePTS || 0 === this.frameIndex && y(o)) && (this.basePTS = Ci(o, e, this.initPTS), this.lastPTS = this.basePTS), null === this.lastPTS && (this.lastPTS = this.basePTS), i && i.length > 0 && s.samples.push({ pts: this.lastPTS, dts: this.lastPTS, data: i, type: Ge, duration: Number.POSITIVE_INFINITY }); n < l;) { if (this.canParse(t, n)) { var u = this.appendFrame(a, t, n); u ? (this.frameIndex++, this.lastPTS = u.sample.pts, r = n += u.length) : n = l } else ht(t, n) ? (i = lt(t, n), s.samples.push({ pts: this.lastPTS, dts: this.lastPTS, data: i, type: Ge, duration: Number.POSITIVE_INFINITY }), r = n += i.length) : n++; if (n === l && r !== l) { var h = nt(t, r); this.cachedData ? this.cachedData = Kt(this.cachedData, h) : this.cachedData = h } } return { audioTrack: a, videoTrack: Ii(), id3Track: s, textTrack: Ii() } }, e.demuxSampleAes = function (t, e, r) { return Promise.reject(new Error("[" + this + "] This demuxer does not support Sample-AES decryption")) }, e.flush = function (t) { var e = this.cachedData; return e && (this.cachedData = null, this.demux(e, 0)), { audioTrack: this._audioTrack, videoTrack: Ii(), id3Track: this._id3Track, textTrack: Ii() } }, e.destroy = function () { }, t }(), Ci = function (t, e, r) { return y(t) ? 90 * t : 9e4 * e + (r ? 9e4 * r.baseTime / r.timescale : 0) }; function _i(t, e) { return 255 === t[e] && 240 == (246 & t[e + 1]) } function xi(t, e) { return 1 & t[e + 1] ? 7 : 9 } function Pi(t, e) { return (3 & t[e + 3]) << 11 | t[e + 4] << 3 | (224 & t[e + 5]) >>> 5 } function Fi(t, e) { return e + 1 < t.length && _i(t, e) } function Mi(t, e) { if (Fi(t, e)) { var r = xi(t, e); if (e + r >= t.length) return !1; var i = Pi(t, e); if (i <= r) return !1; var n = e + i; return n === t.length || Fi(t, n) } return !1 } function Oi(t, e, r, i, n) { if (!t.samplerate) { var a = function (t, e, r, i) { var n, a, s, o, l = navigator.userAgent.toLowerCase(), u = i, h = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; n = 1 + ((192 & e[r + 2]) >>> 6); var d = (60 & e[r + 2]) >>> 2; if (!(d > h.length - 1)) return s = (1 & e[r + 2]) << 2, s |= (192 & e[r + 3]) >>> 6, w.log("manifest codec:" + i + ", ADTS type:" + n + ", samplingIndex:" + d), /firefox/i.test(l) ? d >= 6 ? (n = 5, o = new Array(4), a = d - 3) : (n = 2, o = new Array(2), a = d) : -1 !== l.indexOf("android") ? (n = 2, o = new Array(2), a = d) : (n = 5, o = new Array(4), i && (-1 !== i.indexOf("mp4a.40.29") || -1 !== i.indexOf("mp4a.40.5")) || !i && d >= 6 ? a = d - 3 : ((i && -1 !== i.indexOf("mp4a.40.2") && (d >= 6 && 1 === s || /vivaldi/i.test(l)) || !i && 1 === s) && (n = 2, o = new Array(2)), a = d)), o[0] = n << 3, o[0] |= (14 & d) >> 1, o[1] |= (1 & d) << 7, o[1] |= s << 3, 5 === n && (o[1] |= (14 & a) >> 1, o[2] = (1 & a) << 7, o[2] |= 8, o[3] = 0), { config: o, samplerate: h[d], channelCount: s, codec: "mp4a.40." + n, manifestCodec: u }; var c = new Error("invalid ADTS sampling index:" + d); t.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !0, error: c, reason: c.message }) }(e, r, i, n); if (!a) return; t.config = a.config, t.samplerate = a.samplerate, t.channelCount = a.channelCount, t.codec = a.codec, t.manifestCodec = a.manifestCodec, w.log("parsed codec:" + t.codec + ", rate:" + a.samplerate + ", channels:" + a.channelCount) } } function Ni(t) { return 9216e4 / t } function Ui(t, e, r, i, n) { var a, s = i + n * Ni(t.samplerate), o = function (t, e) { var r = xi(t, e); if (e + r <= t.length) { var i = Pi(t, e) - r; if (i > 0) return { headerLength: r, frameLength: i } } }(e, r); if (o) { var l = o.frameLength, u = o.headerLength, h = u + l, d = Math.max(0, r + h - e.length); d ? (a = new Uint8Array(h - u)).set(e.subarray(r + u, e.length), 0) : a = e.subarray(r + u, r + h); var c = { unit: a, pts: s }; return d || t.samples.push(c), { sample: c, length: h, missing: d } } var f = e.length - r; return (a = new Uint8Array(f)).set(e.subarray(r, e.length), 0), { sample: { unit: a, pts: s }, length: f, missing: -1 } } var Bi = null, Gi = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], Ki = [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3], Hi = [[0, 72, 144, 12], [0, 0, 0, 0], [0, 72, 144, 12], [0, 144, 144, 12]], Vi = [0, 1, 1, 4]; function Yi(t, e, r, i, n) { if (!(r + 24 > e.length)) { var a = Wi(e, r); if (a && r + a.frameLength <= e.length) { var s = i + n * (9e4 * a.samplesPerFrame / a.sampleRate), o = { unit: e.subarray(r, r + a.frameLength), pts: s, dts: s }; return t.config = [], t.channelCount = a.channelCount, t.samplerate = a.sampleRate, t.samples.push(o), { sample: o, length: a.frameLength, missing: 0 } } } } function Wi(t, e) { var r = t[e + 1] >> 3 & 3, i = t[e + 1] >> 1 & 3, n = t[e + 2] >> 4 & 15, a = t[e + 2] >> 2 & 3; if (1 !== r && 0 !== n && 15 !== n && 3 !== a) { var s = t[e + 2] >> 1 & 1, o = t[e + 3] >> 6, l = 1e3 * Gi[14 * (3 === r ? 3 - i : 3 === i ? 3 : 4) + n - 1], u = Ki[3 * (3 === r ? 0 : 2 === r ? 1 : 2) + a], h = 3 === o ? 1 : 2, d = Hi[r][i], c = Vi[i], f = 8 * d * c, g = Math.floor(d * l / u + s) * c; if (null === Bi) { var v = (navigator.userAgent || "").match(/Chrome\/(\d+)/i); Bi = v ? parseInt(v[1]) : 0 } return !!Bi && Bi <= 87 && 2 === i && l >= 224e3 && 0 === o && (t[e + 3] = 128 | t[e + 3]), { sampleRate: u, channelCount: h, frameLength: g, samplesPerFrame: f } } } function ji(t, e) { return 255 === t[e] && 224 == (224 & t[e + 1]) && 0 != (6 & t[e + 1]) } function qi(t, e) { return e + 1 < t.length && ji(t, e) } function Xi(t, e) { if (e + 1 < t.length && ji(t, e)) { var r = Wi(t, e), i = 4; null != r && r.frameLength && (i = r.frameLength); var n = e + i; return n === t.length || qi(t, n) } return !1 } var zi = function (t) { function e(e, r) { var i; return (i = t.call(this) || this).observer = void 0, i.config = void 0, i.observer = e, i.config = r, i } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/adts", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "aac", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0), r = (null == e ? void 0 : e.length) || 0; if (Xi(t, r)) return !1; for (var i = t.length; r < i; r++)if (Mi(t, r)) return w.log("ADTS sync word found !"), !0; return !1 }, r.canParse = function (t, e) { return function (t, e) { return function (t, e) { return e + 5 < t.length }(t, e) && _i(t, e) && Pi(t, e) <= t.length - e }(t, e) }, r.appendFrame = function (t, e, r) { Oi(t, this.observer, e, r, t.manifestCodec); var i = Ui(t, e, r, this.basePTS, this.frameIndex); if (i && 0 === i.missing) return i }, e }(wi), Qi = /\/emsg[-/]ID3/i, Ji = function () { function t(t, e) { this.remainderData = null, this.timeOffset = 0, this.config = void 0, this.videoTrack = void 0, this.audioTrack = void 0, this.id3Track = void 0, this.txtTrack = void 0, this.config = e } var e = t.prototype; return e.resetTimeStamp = function () { }, e.resetInitSegment = function (t, e, r, i) { var n = this.videoTrack = Ii("video", 1), a = this.audioTrack = Ii("audio", 1), s = this.txtTrack = Ii("text", 1); if (this.id3Track = Ii("id3", 1), this.timeOffset = 0, null != t && t.byteLength) { var o = Ft(t); if (o.video) { var l = o.video, u = l.id, h = l.timescale, d = l.codec; n.id = u, n.timescale = s.timescale = h, n.codec = d } if (o.audio) { var c = o.audio, f = c.id, g = c.timescale, v = c.codec; a.id = f, a.timescale = g, a.codec = v } s.id = kt.text, n.sampleDuration = 0, n.duration = a.duration = i } }, e.resetContiguity = function () { this.remainderData = null }, t.probe = function (t) { return function (t) { for (var e = t.byteLength, r = 0; r < e;) { var i = It(t, r); if (i > 8 && 109 === t[r + 4] && 111 === t[r + 5] && 111 === t[r + 6] && 102 === t[r + 7]) return !0; r = i > 1 ? r + i : e } return !1 }(t) }, e.demux = function (t, e) { this.timeOffset = e; var r = t, i = this.videoTrack, n = this.txtTrack; if (this.config.progressive) { this.remainderData && (r = Kt(this.remainderData, t)); var a = function (t) { var e = { valid: null, remainder: null }, r = xt(t, ["moof"]); if (r.length < 2) return e.remainder = t, e; var i = r[r.length - 1]; return e.valid = nt(t, 0, i.byteOffset - 8), e.remainder = nt(t, i.byteOffset - 8), e }(r); this.remainderData = a.remainder, i.samples = a.valid || new Uint8Array } else i.samples = r; var s = this.extractID3Track(i, e); return n.samples = Ht(e, i), { videoTrack: i, audioTrack: this.audioTrack, id3Track: s, textTrack: this.txtTrack } }, e.flush = function () { var t = this.timeOffset, e = this.videoTrack, r = this.txtTrack; e.samples = this.remainderData || new Uint8Array, this.remainderData = null; var i = this.extractID3Track(e, this.timeOffset); return r.samples = Ht(t, e), { videoTrack: e, audioTrack: Ii(), id3Track: i, textTrack: Ii() } }, e.extractID3Track = function (t, e) { var r = this.id3Track; if (t.samples.length) { var i = xt(t.samples, ["emsg"]); i && i.forEach((function (t) { var i = function (t) { var e = t[0], r = "", i = "", n = 0, a = 0, s = 0, o = 0, l = 0, u = 0; if (0 === e) { for (; "\0" !== bt(t.subarray(u, u + 1));)r += bt(t.subarray(u, u + 1)), u += 1; for (r += bt(t.subarray(u, u + 1)), u += 1; "\0" !== bt(t.subarray(u, u + 1));)i += bt(t.subarray(u, u + 1)), u += 1; i += bt(t.subarray(u, u + 1)), u += 1, n = It(t, 12), a = It(t, 16), o = It(t, 20), l = It(t, 24), u = 28 } else if (1 === e) { n = It(t, u += 4); var h = It(t, u += 4), d = It(t, u += 4); for (u += 4, s = Math.pow(2, 32) * h + d, E(s) || (s = Number.MAX_SAFE_INTEGER, w.warn("Presentation time exceeds safe integer limit and wrapped to max safe integer in parsing emsg box")), o = It(t, u), l = It(t, u += 4), u += 4; "\0" !== bt(t.subarray(u, u + 1));)r += bt(t.subarray(u, u + 1)), u += 1; for (r += bt(t.subarray(u, u + 1)), u += 1; "\0" !== bt(t.subarray(u, u + 1));)i += bt(t.subarray(u, u + 1)), u += 1; i += bt(t.subarray(u, u + 1)), u += 1 } return { schemeIdUri: r, value: i, timeScale: n, presentationTime: s, presentationTimeDelta: a, eventDuration: o, id: l, payload: t.subarray(u, t.byteLength) } }(t); if (Qi.test(i.schemeIdUri)) { var n = y(i.presentationTime) ? i.presentationTime / i.timeScale : e + i.presentationTimeDelta / i.timeScale, a = 4294967295 === i.eventDuration ? Number.POSITIVE_INFINITY : i.eventDuration / i.timeScale; a <= .001 && (a = Number.POSITIVE_INFINITY); var s = i.payload; r.samples.push({ data: s, len: s.byteLength, dts: n, pts: n, type: He, duration: a }) } })) } return r }, e.demuxSampleAes = function (t, e, r) { return Promise.reject(new Error("The MP4 demuxer does not support SAMPLE-AES decryption")) }, e.destroy = function () { }, t }(), $i = function (t, e) { var r = 0, i = 5; e += i; for (var n = new Uint32Array(1), a = new Uint32Array(1), s = new Uint8Array(1); i > 0;) { s[0] = t[e]; var o = Math.min(i, 8), l = 8 - o; a[0] = 4278190080 >>> 24 + l << l, n[0] = (s[0] & a[0]) >> l, r = r ? r << o | n[0] : n[0], e += 1, i -= o } return r }, Zi = function (t) { function e(e) { var r; return (r = t.call(this) || this).observer = void 0, r.observer = e, r } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/ac-3", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "ac3", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, r.canParse = function (t, e) { return e + 64 < t.length }, r.appendFrame = function (t, e, r) { var i = tn(t, e, r, this.basePTS, this.frameIndex); if (-1 !== i) return { sample: t.samples[t.samples.length - 1], length: i, missing: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0); if (!e) return !1; var r = e.length; return 11 === t[r] && 119 === t[r + 1] && void 0 !== dt(e) && $i(t, r) < 16 }, e }(wi); function tn(t, e, r, i, n) { if (r + 8 > e.length) return -1; if (11 !== e[r] || 119 !== e[r + 1]) return -1; var a = e[r + 4] >> 6; if (a >= 3) return -1; var s = [48e3, 44100, 32e3][a], o = 63 & e[r + 4], l = 2 * [64, 69, 96, 64, 70, 96, 80, 87, 120, 80, 88, 120, 96, 104, 144, 96, 105, 144, 112, 121, 168, 112, 122, 168, 128, 139, 192, 128, 140, 192, 160, 174, 240, 160, 175, 240, 192, 208, 288, 192, 209, 288, 224, 243, 336, 224, 244, 336, 256, 278, 384, 256, 279, 384, 320, 348, 480, 320, 349, 480, 384, 417, 576, 384, 418, 576, 448, 487, 672, 448, 488, 672, 512, 557, 768, 512, 558, 768, 640, 696, 960, 640, 697, 960, 768, 835, 1152, 768, 836, 1152, 896, 975, 1344, 896, 976, 1344, 1024, 1114, 1536, 1024, 1115, 1536, 1152, 1253, 1728, 1152, 1254, 1728, 1280, 1393, 1920, 1280, 1394, 1920][3 * o + a]; if (r + l > e.length) return -1; var u = e[r + 6] >> 5, h = 0; 2 === u ? h += 2 : (1 & u && 1 !== u && (h += 2), 4 & u && (h += 2)); var d = (e[r + 6] << 8 | e[r + 7]) >> 12 - h & 1, c = [2, 1, 2, 3, 3, 4, 4, 5][u] + d, f = e[r + 5] >> 3, g = 7 & e[r + 5], v = new Uint8Array([a << 6 | f << 1 | g >> 2, (3 & g) << 6 | u << 3 | d << 2 | o >> 4, o << 4 & 224]), m = i + n * (1536 / s * 9e4), p = e.subarray(r, r + l); return t.config = v, t.channelCount = c, t.samplerate = s, t.samples.push({ unit: p, pts: m }), l } var en = function () { function t() { this.VideoSample = null } var e = t.prototype; return e.createVideoSample = function (t, e, r, i) { return { key: t, frame: !1, pts: e, dts: r, units: [], debug: i, length: 0 } }, e.getLastNalUnit = function (t) { var e, r, i = this.VideoSample; if (i && 0 !== i.units.length || (i = t[t.length - 1]), null != (e = i) && e.units) { var n = i.units; r = n[n.length - 1] } return r }, e.pushAccessUnit = function (t, e) { if (t.units.length && t.frame) { if (void 0 === t.pts) { var r = e.samples, i = r.length; if (!i) return void e.dropped++; var n = r[i - 1]; t.pts = n.pts, t.dts = n.dts } e.samples.push(t) } t.debug.length && w.log(t.pts + "/" + t.dts + ":" + t.debug) }, t }(), rn = function () { function t(t) { this.data = void 0, this.bytesAvailable = void 0, this.word = void 0, this.bitsAvailable = void 0, this.data = t, this.bytesAvailable = t.byteLength, this.word = 0, this.bitsAvailable = 0 } var e = t.prototype; return e.loadWord = function () { var t = this.data, e = this.bytesAvailable, r = t.byteLength - e, i = new Uint8Array(4), n = Math.min(4, e); if (0 === n) throw new Error("no bytes available"); i.set(t.subarray(r, r + n)), this.word = new DataView(i.buffer).getUint32(0), this.bitsAvailable = 8 * n, this.bytesAvailable -= n }, e.skipBits = function (t) { var e; t = Math.min(t, 8 * this.bytesAvailable + this.bitsAvailable), this.bitsAvailable > t ? (this.word <<= t, this.bitsAvailable -= t) : (t -= this.bitsAvailable, t -= (e = t >> 3) << 3, this.bytesAvailable -= e, this.loadWord(), this.word <<= t, this.bitsAvailable -= t) }, e.readBits = function (t) { var e = Math.min(this.bitsAvailable, t), r = this.word >>> 32 - e; if (t > 32 && w.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= e, this.bitsAvailable > 0) this.word <<= e; else { if (!(this.bytesAvailable > 0)) throw new Error("no bits available"); this.loadWord() } return (e = t - e) > 0 && this.bitsAvailable ? r << e | this.readBits(e) : r }, e.skipLZ = function () { var t; for (t = 0; t < this.bitsAvailable; ++t)if (0 != (this.word & 2147483648 >>> t)) return this.word <<= t, this.bitsAvailable -= t, t; return this.loadWord(), t + this.skipLZ() }, e.skipUEG = function () { this.skipBits(1 + this.skipLZ()) }, e.skipEG = function () { this.skipBits(1 + this.skipLZ()) }, e.readUEG = function () { var t = this.skipLZ(); return this.readBits(t + 1) - 1 }, e.readEG = function () { var t = this.readUEG(); return 1 & t ? 1 + t >>> 1 : -1 * (t >>> 1) }, e.readBoolean = function () { return 1 === this.readBits(1) }, e.readUByte = function () { return this.readBits(8) }, e.readUShort = function () { return this.readBits(16) }, e.readUInt = function () { return this.readBits(32) }, e.skipScalingList = function (t) { for (var e = 8, r = 8, i = 0; i < t; i++)0 !== r && (r = (e + this.readEG() + 256) % 256), e = 0 === r ? e : r }, e.readSPS = function () { var t, e, r, i = 0, n = 0, a = 0, s = 0, o = this.readUByte.bind(this), l = this.readBits.bind(this), u = this.readUEG.bind(this), h = this.readBoolean.bind(this), d = this.skipBits.bind(this), c = this.skipEG.bind(this), f = this.skipUEG.bind(this), g = this.skipScalingList.bind(this); o(); var v = o(); if (l(5), d(3), o(), f(), 100 === v || 110 === v || 122 === v || 244 === v || 44 === v || 83 === v || 86 === v || 118 === v || 128 === v) { var m = u(); if (3 === m && d(1), f(), f(), d(1), h()) for (e = 3 !== m ? 8 : 12, r = 0; r < e; r++)h() && g(r < 6 ? 16 : 64) } f(); var p = u(); if (0 === p) u(); else if (1 === p) for (d(1), c(), c(), t = u(), r = 0; r < t; r++)c(); f(), d(1); var y = u(), E = u(), T = l(1); 0 === T && d(1), d(1), h() && (i = u(), n = u(), a = u(), s = u()); var S = [1, 1]; if (h() && h()) switch (o()) { case 1: S = [1, 1]; break; case 2: S = [12, 11]; break; case 3: S = [10, 11]; break; case 4: S = [16, 11]; break; case 5: S = [40, 33]; break; case 6: S = [24, 11]; break; case 7: S = [20, 11]; break; case 8: S = [32, 11]; break; case 9: S = [80, 33]; break; case 10: S = [18, 11]; break; case 11: S = [15, 11]; break; case 12: S = [64, 33]; break; case 13: S = [160, 99]; break; case 14: S = [4, 3]; break; case 15: S = [3, 2]; break; case 16: S = [2, 1]; break; case 255: S = [o() << 8 | o(), o() << 8 | o()] }return { width: Math.ceil(16 * (y + 1) - 2 * i - 2 * n), height: (2 - T) * (E + 1) * 16 - (T ? 2 : 4) * (a + s), pixelRatio: S } }, e.readSliceType = function () { return this.readUByte(), this.readUEG(), this.readUEG() }, t }(), nn = function (t) { function e() { return t.apply(this, arguments) || this } l(e, t); var r = e.prototype; return r.parseAVCPES = function (t, e, r, i, n) { var a, s = this, o = this.parseAVCNALu(t, r.data), l = this.VideoSample, u = !1; r.data = null, l && o.length && !t.audFound && (this.pushAccessUnit(l, t), l = this.VideoSample = this.createVideoSample(!1, r.pts, r.dts, "")), o.forEach((function (i) { var o; switch (i.type) { case 1: var h = !1; a = !0; var d, c = i.data; if (u && c.length > 4) { var f = new rn(c).readSliceType(); 2 !== f && 4 !== f && 7 !== f && 9 !== f || (h = !0) } h && null != (d = l) && d.frame && !l.key && (s.pushAccessUnit(l, t), l = s.VideoSample = null), l || (l = s.VideoSample = s.createVideoSample(!0, r.pts, r.dts, "")), l.frame = !0, l.key = h; break; case 5: a = !0, null != (o = l) && o.frame && !l.key && (s.pushAccessUnit(l, t), l = s.VideoSample = null), l || (l = s.VideoSample = s.createVideoSample(!0, r.pts, r.dts, "")), l.key = !0, l.frame = !0; break; case 6: a = !0, Yt(i.data, 1, r.pts, e.samples); break; case 7: var g, v; a = !0, u = !0; var m = i.data, p = new rn(m).readSPS(); if (!t.sps || t.width !== p.width || t.height !== p.height || (null == (g = t.pixelRatio) ? void 0 : g[0]) !== p.pixelRatio[0] || (null == (v = t.pixelRatio) ? void 0 : v[1]) !== p.pixelRatio[1]) { t.width = p.width, t.height = p.height, t.pixelRatio = p.pixelRatio, t.sps = [m], t.duration = n; for (var y = m.subarray(1, 4), E = "avc1.", T = 0; T < 3; T++) { var S = y[T].toString(16); S.length < 2 && (S = "0" + S), E += S } t.codec = E } break; case 8: a = !0, t.pps = [i.data]; break; case 9: a = !0, t.audFound = !0, l && s.pushAccessUnit(l, t), l = s.VideoSample = s.createVideoSample(!1, r.pts, r.dts, ""); break; case 12: a = !0; break; default: a = !1, l && (l.debug += "unknown NAL " + i.type + " ") }l && a && l.units.push(i) })), i && l && (this.pushAccessUnit(l, t), this.VideoSample = null) }, r.parseAVCNALu = function (t, e) { var r, i, n = e.byteLength, a = t.naluState || 0, s = a, o = [], l = 0, u = -1, h = 0; for (-1 === a && (u = 0, h = 31 & e[0], a = 0, l = 1); l < n;)if (r = e[l++], a) if (1 !== a) if (r) if (1 === r) { if (i = l - a - 1, u >= 0) { var d = { data: e.subarray(u, i), type: h }; o.push(d) } else { var c = this.getLastNalUnit(t.samples); c && (s && l <= 4 - s && c.state && (c.data = c.data.subarray(0, c.data.byteLength - s)), i > 0 && (c.data = Kt(c.data, e.subarray(0, i)), c.state = 0)) } l < n ? (u = l, h = 31 & e[l], a = 0) : a = -1 } else a = 0; else a = 3; else a = r ? 0 : 2; else a = r ? 0 : 1; if (u >= 0 && a >= 0) { var f = { data: e.subarray(u, n), type: h, state: a }; o.push(f) } if (0 === o.length) { var g = this.getLastNalUnit(t.samples); g && (g.data = Kt(g.data, e)) } return t.naluState = a, o }, e }(en), an = function () { function t(t, e, r) { this.keyData = void 0, this.decrypter = void 0, this.keyData = r, this.decrypter = new ci(e, { removePKCS7Padding: !1 }) } var e = t.prototype; return e.decryptBuffer = function (t) { return this.decrypter.decrypt(t, this.keyData.key.buffer, this.keyData.iv.buffer) }, e.decryptAacSample = function (t, e, r) { var i = this, n = t[e].unit; if (!(n.length <= 16)) { var a = n.subarray(16, n.length - n.length % 16), s = a.buffer.slice(a.byteOffset, a.byteOffset + a.length); this.decryptBuffer(s).then((function (a) { var s = new Uint8Array(a); n.set(s, 16), i.decrypter.isSync() || i.decryptAacSamples(t, e + 1, r) })) } }, e.decryptAacSamples = function (t, e, r) { for (; ; e++) { if (e >= t.length) return void r(); if (!(t[e].unit.length < 32 || (this.decryptAacSample(t, e, r), this.decrypter.isSync()))) return } }, e.getAvcEncryptedData = function (t) { for (var e = 16 * Math.floor((t.length - 48) / 160) + 16, r = new Int8Array(e), i = 0, n = 32; n < t.length - 16; n += 160, i += 16)r.set(t.subarray(n, n + 16), i); return r }, e.getAvcDecryptedUnit = function (t, e) { for (var r = new Uint8Array(e), i = 0, n = 32; n < t.length - 16; n += 160, i += 16)t.set(r.subarray(i, i + 16), n); return t }, e.decryptAvcSample = function (t, e, r, i, n) { var a = this, s = Wt(n.data), o = this.getAvcEncryptedData(s); this.decryptBuffer(o.buffer).then((function (o) { n.data = a.getAvcDecryptedUnit(s, o), a.decrypter.isSync() || a.decryptAvcSamples(t, e, r + 1, i) })) }, e.decryptAvcSamples = function (t, e, r, i) { if (t instanceof Uint8Array) throw new Error("Cannot decrypt samples of type Uint8Array"); for (; ; e++, r = 0) { if (e >= t.length) return void i(); for (var n = t[e].units; !(r >= n.length); r++) { var a = n[r]; if (!(a.data.length <= 48 || 1 !== a.type && 5 !== a.type || (this.decryptAvcSample(t, e, r, i, a), this.decrypter.isSync()))) return } } }, t }(), sn = 188, on = function () { function t(t, e, r) { this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.sampleAes = null, this.pmtParsed = !1, this.audioCodec = void 0, this.videoCodec = void 0, this._duration = 0, this._pmtId = -1, this._videoTrack = void 0, this._audioTrack = void 0, this._id3Track = void 0, this._txtTrack = void 0, this.aacOverFlow = null, this.remainderData = null, this.videoParser = void 0, this.observer = t, this.config = e, this.typeSupported = r, this.videoParser = new nn } t.probe = function (e) { var r = t.syncOffset(e); return r > 0 && w.warn("MPEG2-TS detected but first sync word found @ offset " + r), -1 !== r }, t.syncOffset = function (t) { for (var e = t.length, r = Math.min(940, e - sn) + 1, i = 0; i < r;) { for (var n = !1, a = -1, s = 0, o = i; o < e; o += sn) { if (71 !== t[o] || e - o !== sn && 71 !== t[o + sn]) { if (s) return -1; break } if (s++, -1 === a && 0 !== (a = o) && (r = Math.min(a + 18612, t.length - sn) + 1), n || (n = 0 === ln(t, o)), n && s > 1 && (0 === a && s > 2 || o + sn > r)) return a } i++ } return -1 }, t.createTrack = function (t, e) { return { container: "video" === t || "audio" === t ? "video/mp2t" : void 0, type: t, id: kt[t], pid: -1, inputTimeScale: 9e4, sequenceNumber: 0, samples: [], dropped: 0, duration: "audio" === t ? e : void 0 } }; var e = t.prototype; return e.resetInitSegment = function (e, r, i, n) { this.pmtParsed = !1, this._pmtId = -1, this._videoTrack = t.createTrack("video"), this._audioTrack = t.createTrack("audio", n), this._id3Track = t.createTrack("id3"), this._txtTrack = t.createTrack("text"), this._audioTrack.segmentCodec = "aac", this.aacOverFlow = null, this.remainderData = null, this.audioCodec = r, this.videoCodec = i, this._duration = n }, e.resetTimeStamp = function () { }, e.resetContiguity = function () { var t = this._audioTrack, e = this._videoTrack, r = this._id3Track; t && (t.pesData = null), e && (e.pesData = null), r && (r.pesData = null), this.aacOverFlow = null, this.remainderData = null }, e.demux = function (e, r, i, n) { var a; void 0 === i && (i = !1), void 0 === n && (n = !1), i || (this.sampleAes = null); var s = this._videoTrack, o = this._audioTrack, l = this._id3Track, u = this._txtTrack, h = s.pid, d = s.pesData, c = o.pid, f = l.pid, g = o.pesData, v = l.pesData, m = null, p = this.pmtParsed, y = this._pmtId, E = e.length; if (this.remainderData && (E = (e = Kt(this.remainderData, e)).length, this.remainderData = null), E < sn && !n) return this.remainderData = e, { audioTrack: o, videoTrack: s, id3Track: l, textTrack: u }; var T = Math.max(0, t.syncOffset(e)); (E -= (E - T) % sn) < e.byteLength && !n && (this.remainderData = new Uint8Array(e.buffer, E, e.buffer.byteLength - E)); for (var R = 0, k = T; k < E; k += sn)if (71 === e[k]) { var b = !!(64 & e[k + 1]), D = ln(e, k), I = void 0; if ((48 & e[k + 3]) >> 4 > 1) { if ((I = k + 5 + e[k + 4]) === k + sn) continue } else I = k + 4; switch (D) { case h: b && (d && (a = cn(d)) && this.videoParser.parseAVCPES(s, u, a, !1, this._duration), d = { data: [], size: 0 }), d && (d.data.push(e.subarray(I, k + sn)), d.size += k + sn - I); break; case c: if (b) { if (g && (a = cn(g))) switch (o.segmentCodec) { case "aac": this.parseAACPES(o, a); break; case "mp3": this.parseMPEGPES(o, a); break; case "ac3": this.parseAC3PES(o, a) }g = { data: [], size: 0 } } g && (g.data.push(e.subarray(I, k + sn)), g.size += k + sn - I); break; case f: b && (v && (a = cn(v)) && this.parseID3PES(l, a), v = { data: [], size: 0 }), v && (v.data.push(e.subarray(I, k + sn)), v.size += k + sn - I); break; case 0: b && (I += e[I] + 1), y = this._pmtId = un(e, I); break; case y: b && (I += e[I] + 1); var C = hn(e, I, this.typeSupported, i); (h = C.videoPid) > 0 && (s.pid = h, s.segmentCodec = C.segmentVideoCodec), (c = C.audioPid) > 0 && (o.pid = c, o.segmentCodec = C.segmentAudioCodec), (f = C.id3Pid) > 0 && (l.pid = f), null === m || p || (w.warn("MPEG-TS PMT found at " + k + " after unknown PID '" + m + "'. Backtracking to sync byte @" + T + " to parse all TS packets."), m = null, k = T - 188), p = this.pmtParsed = !0; break; case 17: case 8191: break; default: m = D } } else R++; if (R > 0) { var _ = new Error("Found " + R + " TS packet/s that do not start with 0x47"); this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: _, reason: _.message }) } s.pesData = d, o.pesData = g, l.pesData = v; var x = { audioTrack: o, videoTrack: s, id3Track: l, textTrack: u }; return n && this.extractRemainingSamples(x), x }, e.flush = function () { var t, e = this.remainderData; return this.remainderData = null, t = e ? this.demux(e, -1, !1, !0) : { videoTrack: this._videoTrack, audioTrack: this._audioTrack, id3Track: this._id3Track, textTrack: this._txtTrack }, this.extractRemainingSamples(t), this.sampleAes ? this.decrypt(t, this.sampleAes) : t }, e.extractRemainingSamples = function (t) { var e, r = t.audioTrack, i = t.videoTrack, n = t.id3Track, a = t.textTrack, s = i.pesData, o = r.pesData, l = n.pesData; if (s && (e = cn(s)) ? (this.videoParser.parseAVCPES(i, a, e, !0, this._duration), i.pesData = null) : i.pesData = s, o && (e = cn(o))) { switch (r.segmentCodec) { case "aac": this.parseAACPES(r, e); break; case "mp3": this.parseMPEGPES(r, e); break; case "ac3": this.parseAC3PES(r, e) }r.pesData = null } else null != o && o.size && w.log("last AAC PES packet truncated,might overlap between fragments"), r.pesData = o; l && (e = cn(l)) ? (this.parseID3PES(n, e), n.pesData = null) : n.pesData = l }, e.demuxSampleAes = function (t, e, r) { var i = this.demux(t, r, !0, !this.config.progressive), n = this.sampleAes = new an(this.observer, this.config, e); return this.decrypt(i, n) }, e.decrypt = function (t, e) { return new Promise((function (r) { var i = t.audioTrack, n = t.videoTrack; i.samples && "aac" === i.segmentCodec ? e.decryptAacSamples(i.samples, 0, (function () { n.samples ? e.decryptAvcSamples(n.samples, 0, 0, (function () { r(t) })) : r(t) })) : n.samples && e.decryptAvcSamples(n.samples, 0, 0, (function () { r(t) })) })) }, e.destroy = function () { this._duration = 0 }, e.parseAACPES = function (t, e) { var r, i, n, a = 0, s = this.aacOverFlow, o = e.data; if (s) { this.aacOverFlow = null; var l = s.missing, u = s.sample.unit.byteLength; if (-1 === l) o = Kt(s.sample.unit, o); else { var h = u - l; s.sample.unit.set(o.subarray(0, l), h), t.samples.push(s.sample), a = s.missing } } for (r = a, i = o.length; r < i - 1 && !Fi(o, r); r++); if (r !== a) { var d, c = r < i - 1; d = c ? "AAC PES did not start with ADTS header,offset:" + r : "No ADTS header found in AAC PES"; var f = new Error(d); if (w.warn("parsing error: " + d), this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, levelRetry: c, error: f, reason: d }), !c) return } if (Oi(t, this.observer, o, r, this.audioCodec), void 0 !== e.pts) n = e.pts; else { if (!s) return void w.warn("[tsdemuxer]: AAC PES unknown PTS"); var g = Ni(t.samplerate); n = s.sample.pts + g } for (var v, m = 0; r < i;) { if (r += (v = Ui(t, o, r, n, m)).length, v.missing) { this.aacOverFlow = v; break } for (m++; r < i - 1 && !Fi(o, r); r++); } }, e.parseMPEGPES = function (t, e) { var r = e.data, i = r.length, n = 0, a = 0, s = e.pts; if (void 0 !== s) for (; a < i;)if (qi(r, a)) { var o = Yi(t, r, a, s, n); if (!o) break; a += o.length, n++ } else a++; else w.warn("[tsdemuxer]: MPEG PES unknown PTS") }, e.parseAC3PES = function (t, e) { var r = e.data, i = e.pts; if (void 0 !== i) for (var n, a = r.length, s = 0, o = 0; o < a && (n = tn(t, r, o, i, s++)) > 0;)o += n; else w.warn("[tsdemuxer]: AC3 PES unknown PTS") }, e.parseID3PES = function (t, e) { if (void 0 !== e.pts) { var r = o({}, e, { type: this._videoTrack ? He : Ge, duration: Number.POSITIVE_INFINITY }); t.samples.push(r) } else w.warn("[tsdemuxer]: ID3 PES unknown PTS") }, t }(); function ln(t, e) { return ((31 & t[e + 1]) << 8) + t[e + 2] } function un(t, e) { return (31 & t[e + 10]) << 8 | t[e + 11] } function hn(t, e, r, i) { var n = { audioPid: -1, videoPid: -1, id3Pid: -1, segmentVideoCodec: "avc", segmentAudioCodec: "aac" }, a = e + 3 + ((15 & t[e + 1]) << 8 | t[e + 2]) - 4; for (e += 12 + ((15 & t[e + 10]) << 8 | t[e + 11]); e < a;) { var s = ln(t, e), o = (15 & t[e + 3]) << 8 | t[e + 4]; switch (t[e]) { case 207: if (!i) { dn("ADTS AAC"); break } case 15: -1 === n.audioPid && (n.audioPid = s); break; case 21: -1 === n.id3Pid && (n.id3Pid = s); break; case 219: if (!i) { dn("H.264"); break } case 27: -1 === n.videoPid && (n.videoPid = s, n.segmentVideoCodec = "avc"); break; case 3: case 4: r.mpeg || r.mp3 ? -1 === n.audioPid && (n.audioPid = s, n.segmentAudioCodec = "mp3") : w.log("MPEG audio found, not supported in this browser"); break; case 193: if (!i) { dn("AC-3"); break } case 129: r.ac3 ? -1 === n.audioPid && (n.audioPid = s, n.segmentAudioCodec = "ac3") : w.log("AC-3 audio found, not supported in this browser"); break; case 6: if (-1 === n.audioPid && o > 0) for (var l = e + 5, u = o; u > 2;) { 106 === t[l] && (!0 !== r.ac3 ? w.log("AC-3 audio found, not supported in this browser for now") : (n.audioPid = s, n.segmentAudioCodec = "ac3")); var h = t[l + 1] + 2; l += h, u -= h } break; case 194: case 135: w.warn("Unsupported EC-3 in M2TS found"); break; case 36: w.warn("Unsupported HEVC in M2TS found") }e += o + 5 } return n } function dn(t) { w.log(t + " with AES-128-CBC encryption found in unencrypted stream") } function cn(t) { var e, r, i, n, a, s = 0, o = t.data; if (!t || 0 === t.size) return null; for (; o[0].length < 19 && o.length > 1;)o[0] = Kt(o[0], o[1]), o.splice(1, 1); if (1 === ((e = o[0])[0] << 16) + (e[1] << 8) + e[2]) { if ((r = (e[4] << 8) + e[5]) && r > t.size - 6) return null; var l = e[7]; 192 & l && (n = 536870912 * (14 & e[9]) + 4194304 * (255 & e[10]) + 16384 * (254 & e[11]) + 128 * (255 & e[12]) + (254 & e[13]) / 2, 64 & l ? n - (a = 536870912 * (14 & e[14]) + 4194304 * (255 & e[15]) + 16384 * (254 & e[16]) + 128 * (255 & e[17]) + (254 & e[18]) / 2) > 54e5 && (w.warn(Math.round((n - a) / 9e4) + "s delta between PTS and DTS, align them"), n = a) : a = n); var u = (i = e[8]) + 9; if (t.size <= u) return null; t.size -= u; for (var h = new Uint8Array(t.size), d = 0, c = o.length; d < c; d++) { var f = (e = o[d]).byteLength; if (u) { if (u > f) { u -= f; continue } e = e.subarray(u), f -= u, u = 0 } h.set(e, s), s += f } return r && (r -= i + 3), { data: h, pts: n, dts: a, len: r } } return null } var fn = function (t) { function e() { return t.apply(this, arguments) || this } l(e, t); var r = e.prototype; return r.resetInitSegment = function (e, r, i, n) { t.prototype.resetInitSegment.call(this, e, r, i, n), this._audioTrack = { container: "audio/mpeg", type: "audio", id: 2, pid: -1, sequenceNumber: 0, segmentCodec: "mp3", samples: [], manifestCodec: r, duration: n, inputTimeScale: 9e4, dropped: 0 } }, e.probe = function (t) { if (!t) return !1; var e = lt(t, 0), r = (null == e ? void 0 : e.length) || 0; if (e && 11 === t[r] && 119 === t[r + 1] && void 0 !== dt(e) && $i(t, r) <= 16) return !1; for (var i = t.length; r < i; r++)if (Xi(t, r)) return w.log("MPEG Audio sync word found !"), !0; return !1 }, r.canParse = function (t, e) { return function (t, e) { return ji(t, e) && 4 <= t.length - e }(t, e) }, r.appendFrame = function (t, e, r) { if (null !== this.basePTS) return Yi(t, e, r, this.basePTS, this.frameIndex) }, e }(wi), gn = function () { function t() { } return t.getSilentFrame = function (t, e) { if ("mp4a.40.2" === t) { if (1 === e) return new Uint8Array([0, 200, 0, 128, 35, 128]); if (2 === e) return new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]); if (3 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]); if (4 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]); if (5 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]); if (6 === e) return new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]) } else { if (1 === e) return new Uint8Array([1, 64, 34, 128, 163, 78, 230, 128, 186, 8, 0, 0, 0, 28, 6, 241, 193, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (2 === e) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]); if (3 === e) return new Uint8Array([1, 64, 34, 128, 163, 94, 230, 128, 186, 8, 0, 0, 0, 0, 149, 0, 6, 241, 161, 10, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 94]) } }, t }(), vn = Math.pow(2, 32) - 1, mn = function () { function t() { } return t.init = function () { var e; for (e in t.types = { avc1: [], avcC: [], btrt: [], dinf: [], dref: [], esds: [], ftyp: [], hdlr: [], mdat: [], mdhd: [], mdia: [], mfhd: [], minf: [], moof: [], moov: [], mp4a: [], ".mp3": [], dac3: [], "ac-3": [], mvex: [], mvhd: [], pasp: [], sdtp: [], stbl: [], stco: [], stsc: [], stsd: [], stsz: [], stts: [], tfdt: [], tfhd: [], traf: [], trak: [], trun: [], trex: [], tkhd: [], vmhd: [], smhd: [] }, t.types) t.types.hasOwnProperty(e) && (t.types[e] = [e.charCodeAt(0), e.charCodeAt(1), e.charCodeAt(2), e.charCodeAt(3)]); var r = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), i = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]); t.HDLR_TYPES = { video: r, audio: i }; var n = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), a = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]); t.STTS = t.STSC = t.STCO = a, t.STSZ = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), t.VMHD = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]), t.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), t.STSD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]); var s = new Uint8Array([105, 115, 111, 109]), o = new Uint8Array([97, 118, 99, 49]), l = new Uint8Array([0, 0, 0, 1]); t.FTYP = t.box(t.types.ftyp, s, l, s, o), t.DINF = t.box(t.types.dinf, t.box(t.types.dref, n)) }, t.box = function (t) { for (var e = 8, r = arguments.length, i = new Array(r > 1 ? r - 1 : 0), n = 1; n < r; n++)i[n - 1] = arguments[n]; for (var a = i.length, s = a; a--;)e += i[a].byteLength; var o = new Uint8Array(e); for (o[0] = e >> 24 & 255, o[1] = e >> 16 & 255, o[2] = e >> 8 & 255, o[3] = 255 & e, o.set(t, 4), a = 0, e = 8; a < s; a++)o.set(i[a], e), e += i[a].byteLength; return o }, t.hdlr = function (e) { return t.box(t.types.hdlr, t.HDLR_TYPES[e]) }, t.mdat = function (e) { return t.box(t.types.mdat, e) }, t.mdhd = function (e, r) { r *= e; var i = Math.floor(r / (vn + 1)), n = Math.floor(r % (vn + 1)); return t.box(t.types.mdhd, new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, i >> 24, i >> 16 & 255, i >> 8 & 255, 255 & i, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n, 85, 196, 0, 0])) }, t.mdia = function (e) { return t.box(t.types.mdia, t.mdhd(e.timescale, e.duration), t.hdlr(e.type), t.minf(e)) }, t.mfhd = function (e) { return t.box(t.types.mfhd, new Uint8Array([0, 0, 0, 0, e >> 24, e >> 16 & 255, e >> 8 & 255, 255 & e])) }, t.minf = function (e) { return "audio" === e.type ? t.box(t.types.minf, t.box(t.types.smhd, t.SMHD), t.DINF, t.stbl(e)) : t.box(t.types.minf, t.box(t.types.vmhd, t.VMHD), t.DINF, t.stbl(e)) }, t.moof = function (e, r, i) { return t.box(t.types.moof, t.mfhd(e), t.traf(i, r)) }, t.moov = function (e) { for (var r = e.length, i = []; r--;)i[r] = t.trak(e[r]); return t.box.apply(null, [t.types.moov, t.mvhd(e[0].timescale, e[0].duration)].concat(i).concat(t.mvex(e))) }, t.mvex = function (e) { for (var r = e.length, i = []; r--;)i[r] = t.trex(e[r]); return t.box.apply(null, [t.types.mvex].concat(i)) }, t.mvhd = function (e, r) { r *= e; var i = Math.floor(r / (vn + 1)), n = Math.floor(r % (vn + 1)), a = new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e, i >> 24, i >> 16 & 255, i >> 8 & 255, 255 & i, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255]); return t.box(t.types.mvhd, a) }, t.sdtp = function (e) { var r, i, n = e.samples || [], a = new Uint8Array(4 + n.length); for (r = 0; r < n.length; r++)i = n[r].flags, a[r + 4] = i.dependsOn << 4 | i.isDependedOn << 2 | i.hasRedundancy; return t.box(t.types.sdtp, a) }, t.stbl = function (e) { return t.box(t.types.stbl, t.stsd(e), t.box(t.types.stts, t.STTS), t.box(t.types.stsc, t.STSC), t.box(t.types.stsz, t.STSZ), t.box(t.types.stco, t.STCO)) }, t.avc1 = function (e) { var r, i, n, a = [], s = []; for (r = 0; r < e.sps.length; r++)n = (i = e.sps[r]).byteLength, a.push(n >>> 8 & 255), a.push(255 & n), a = a.concat(Array.prototype.slice.call(i)); for (r = 0; r < e.pps.length; r++)n = (i = e.pps[r]).byteLength, s.push(n >>> 8 & 255), s.push(255 & n), s = s.concat(Array.prototype.slice.call(i)); var o = t.box(t.types.avcC, new Uint8Array([1, a[3], a[4], a[5], 255, 224 | e.sps.length].concat(a).concat([e.pps.length]).concat(s))), l = e.width, u = e.height, h = e.pixelRatio[0], d = e.pixelRatio[1]; return t.box(t.types.avc1, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, l >> 8 & 255, 255 & l, u >> 8 & 255, 255 & u, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 18, 100, 97, 105, 108, 121, 109, 111, 116, 105, 111, 110, 47, 104, 108, 115, 46, 106, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), o, t.box(t.types.btrt, new Uint8Array([0, 28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192])), t.box(t.types.pasp, new Uint8Array([h >> 24, h >> 16 & 255, h >> 8 & 255, 255 & h, d >> 24, d >> 16 & 255, d >> 8 & 255, 255 & d]))) }, t.esds = function (t) { var e = t.config.length; return new Uint8Array([0, 0, 0, 0, 3, 23 + e, 0, 1, 0, 4, 15 + e, 64, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5].concat([e]).concat(t.config).concat([6, 1, 2])) }, t.audioStsd = function (t) { var e = t.samplerate; return new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, t.channelCount, 0, 16, 0, 0, 0, 0, e >> 8 & 255, 255 & e, 0, 0]) }, t.mp4a = function (e) { return t.box(t.types.mp4a, t.audioStsd(e), t.box(t.types.esds, t.esds(e))) }, t.mp3 = function (e) { return t.box(t.types[".mp3"], t.audioStsd(e)) }, t.ac3 = function (e) { return t.box(t.types["ac-3"], t.audioStsd(e), t.box(t.types.dac3, e.config)) }, t.stsd = function (e) { return "audio" === e.type ? "mp3" === e.segmentCodec && "mp3" === e.codec ? t.box(t.types.stsd, t.STSD, t.mp3(e)) : "ac3" === e.segmentCodec ? t.box(t.types.stsd, t.STSD, t.ac3(e)) : t.box(t.types.stsd, t.STSD, t.mp4a(e)) : t.box(t.types.stsd, t.STSD, t.avc1(e)) }, t.tkhd = function (e) { var r = e.id, i = e.duration * e.timescale, n = e.width, a = e.height, s = Math.floor(i / (vn + 1)), o = Math.floor(i % (vn + 1)); return t.box(t.types.tkhd, new Uint8Array([1, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 3, r >> 24 & 255, r >> 16 & 255, r >> 8 & 255, 255 & r, 0, 0, 0, 0, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 & s, o >> 24, o >> 16 & 255, o >> 8 & 255, 255 & o, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, n >> 8 & 255, 255 & n, 0, 0, a >> 8 & 255, 255 & a, 0, 0])) }, t.traf = function (e, r) { var i = t.sdtp(e), n = e.id, a = Math.floor(r / (vn + 1)), s = Math.floor(r % (vn + 1)); return t.box(t.types.traf, t.box(t.types.tfhd, new Uint8Array([0, 0, 0, 0, n >> 24, n >> 16 & 255, n >> 8 & 255, 255 & n])), t.box(t.types.tfdt, new Uint8Array([1, 0, 0, 0, a >> 24, a >> 16 & 255, a >> 8 & 255, 255 & a, s >> 24, s >> 16 & 255, s >> 8 & 255, 255 & s])), t.trun(e, i.length + 16 + 20 + 8 + 16 + 8 + 8), i) }, t.trak = function (e) { return e.duration = e.duration || 4294967295, t.box(t.types.trak, t.tkhd(e), t.mdia(e)) }, t.trex = function (e) { var r = e.id; return t.box(t.types.trex, new Uint8Array([0, 0, 0, 0, r >> 24, r >> 16 & 255, r >> 8 & 255, 255 & r, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1])) }, t.trun = function (e, r) { var i, n, a, s, o, l, u = e.samples || [], h = u.length, d = 12 + 16 * h, c = new Uint8Array(d); for (r += 8 + d, c.set(["video" === e.type ? 1 : 0, 0, 15, 1, h >>> 24 & 255, h >>> 16 & 255, h >>> 8 & 255, 255 & h, r >>> 24 & 255, r >>> 16 & 255, r >>> 8 & 255, 255 & r], 0), i = 0; i < h; i++)a = (n = u[i]).duration, s = n.size, o = n.flags, l = n.cts, c.set([a >>> 24 & 255, a >>> 16 & 255, a >>> 8 & 255, 255 & a, s >>> 24 & 255, s >>> 16 & 255, s >>> 8 & 255, 255 & s, o.isLeading << 2 | o.dependsOn, o.isDependedOn << 6 | o.hasRedundancy << 4 | o.paddingValue << 1 | o.isNonSync, 61440 & o.degradPrio, 15 & o.degradPrio, l >>> 24 & 255, l >>> 16 & 255, l >>> 8 & 255, 255 & l], 12 + 16 * i); return t.box(t.types.trun, c) }, t.initSegment = function (e) { t.types || t.init(); var r = t.moov(e); return Kt(t.FTYP, r) }, t }(); mn.types = void 0, mn.HDLR_TYPES = void 0, mn.STTS = void 0, mn.STSC = void 0, mn.STCO = void 0, mn.STSZ = void 0, mn.VMHD = void 0, mn.SMHD = void 0, mn.STSD = void 0, mn.FTYP = void 0, mn.DINF = void 0; var pn = 9e4; function yn(t, e, r, i) { void 0 === r && (r = 1), void 0 === i && (i = !1); var n = t * e * r; return i ? Math.round(n) : n } function En(t, e) { return void 0 === e && (e = !1), yn(t, 1e3, 1 / pn, e) } var Tn = null, Sn = null, Ln = function () { function t(t, e, r, i) { if (this.observer = void 0, this.config = void 0, this.typeSupported = void 0, this.ISGenerated = !1, this._initPTS = null, this._initDTS = null, this.nextAvcDts = null, this.nextAudioPts = null, this.videoSampleDuration = null, this.isAudioContiguous = !1, this.isVideoContiguous = !1, this.videoTrackConfig = void 0, this.observer = t, this.config = e, this.typeSupported = r, this.ISGenerated = !1, null === Tn) { var n = (navigator.userAgent || "").match(/Chrome\/(\d+)/i); Tn = n ? parseInt(n[1]) : 0 } if (null === Sn) { var a = navigator.userAgent.match(/Safari\/(\d+)/i); Sn = a ? parseInt(a[1]) : 0 } } var e = t.prototype; return e.destroy = function () { this.config = this.videoTrackConfig = this._initPTS = this._initDTS = null }, e.resetTimeStamp = function (t) { w.log("[mp4-remuxer]: initPTS & initDTS reset"), this._initPTS = this._initDTS = t }, e.resetNextTimestamp = function () { w.log("[mp4-remuxer]: reset next timestamp"), this.isVideoContiguous = !1, this.isAudioContiguous = !1 }, e.resetInitSegment = function () { w.log("[mp4-remuxer]: ISGenerated flag reset"), this.ISGenerated = !1, this.videoTrackConfig = void 0 }, e.getVideoStartPts = function (t) { var e = !1, r = t.reduce((function (t, r) { var i = r.pts - t; return i < -4294967296 ? (e = !0, An(t, r.pts)) : i > 0 ? t : r.pts }), t[0].pts); return e && w.debug("PTS rollover detected"), r }, e.remux = function (t, e, r, i, n, a, s, o) { var l, u, h, d, c, f, g = n, v = n, m = t.pid > -1, p = e.pid > -1, y = e.samples.length, E = t.samples.length > 0, T = s && y > 0 || y > 1; if ((!m || E) && (!p || T) || this.ISGenerated || s) { if (this.ISGenerated) { var S, L, A, R, k = this.videoTrackConfig; !k || e.width === k.width && e.height === k.height && (null == (S = e.pixelRatio) ? void 0 : S[0]) === (null == (L = k.pixelRatio) ? void 0 : L[0]) && (null == (A = e.pixelRatio) ? void 0 : A[1]) === (null == (R = k.pixelRatio) ? void 0 : R[1]) || this.resetInitSegment() } else h = this.generateIS(t, e, n, a); var b, D = this.isVideoContiguous, I = -1; if (T && (I = function (t) { for (var e = 0; e < t.length; e++)if (t[e].key) return e; return -1 }(e.samples), !D && this.config.forceKeyFrameOnDiscontinuity)) if (f = !0, I > 0) { w.warn("[mp4-remuxer]: Dropped " + I + " out of " + y + " video samples due to a missing keyframe"); var C = this.getVideoStartPts(e.samples); e.samples = e.samples.slice(I), e.dropped += I, b = v += (e.samples[0].pts - C) / e.inputTimeScale } else -1 === I && (w.warn("[mp4-remuxer]: No keyframe found out of " + y + " video samples"), f = !1); if (this.ISGenerated) { if (E && T) { var _ = this.getVideoStartPts(e.samples), x = (An(t.samples[0].pts, _) - _) / e.inputTimeScale; g += Math.max(0, x), v += Math.max(0, -x) } if (E) { if (t.samplerate || (w.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"), h = this.generateIS(t, e, n, a)), u = this.remuxAudio(t, g, this.isAudioContiguous, a, p || T || o === Ce ? v : void 0), T) { var P = u ? u.endPTS - u.startPTS : 0; e.inputTimeScale || (w.warn("[mp4-remuxer]: regenerate InitSegment as video detected"), h = this.generateIS(t, e, n, a)), l = this.remuxVideo(e, v, D, P) } } else T && (l = this.remuxVideo(e, v, D, 0)); l && (l.firstKeyFrame = I, l.independent = -1 !== I, l.firstKeyFramePTS = b) } } return this.ISGenerated && this._initPTS && this._initDTS && (r.samples.length && (c = Rn(r, n, this._initPTS, this._initDTS)), i.samples.length && (d = kn(i, n, this._initPTS))), { audio: u, video: l, initSegment: h, independent: f, text: d, id3: c } }, e.generateIS = function (t, e, r, i) { var n, a, s, o = t.samples, l = e.samples, u = this.typeSupported, h = {}, d = this._initPTS, c = !d || i, f = "audio/mp4"; if (c && (n = a = 1 / 0), t.config && o.length) { switch (t.timescale = t.samplerate, t.segmentCodec) { case "mp3": u.mpeg ? (f = "audio/mpeg", t.codec = "") : u.mp3 && (t.codec = "mp3"); break; case "ac3": t.codec = "ac-3" }h.audio = { id: "audio", container: f, codec: t.codec, initSegment: "mp3" === t.segmentCodec && u.mpeg ? new Uint8Array(0) : mn.initSegment([t]), metadata: { channelCount: t.channelCount } }, c && (s = t.inputTimeScale, d && s === d.timescale ? c = !1 : n = a = o[0].pts - Math.round(s * r)) } if (e.sps && e.pps && l.length) { if (e.timescale = e.inputTimeScale, h.video = { id: "main", container: "video/mp4", codec: e.codec, initSegment: mn.initSegment([e]), metadata: { width: e.width, height: e.height } }, c) if (s = e.inputTimeScale, d && s === d.timescale) c = !1; else { var g = this.getVideoStartPts(l), v = Math.round(s * r); a = Math.min(a, An(l[0].dts, g) - v), n = Math.min(n, g - v) } this.videoTrackConfig = { width: e.width, height: e.height, pixelRatio: e.pixelRatio } } if (Object.keys(h).length) return this.ISGenerated = !0, c ? (this._initPTS = { baseTime: n, timescale: s }, this._initDTS = { baseTime: a, timescale: s }) : n = s = void 0, { tracks: h, initPTS: n, timescale: s } }, e.remuxVideo = function (t, e, r, i) { var n, a, s = t.inputTimeScale, l = t.samples, u = [], h = l.length, d = this._initPTS, c = this.nextAvcDts, f = 8, g = this.videoSampleDuration, v = Number.POSITIVE_INFINITY, m = Number.NEGATIVE_INFINITY, p = !1; if (!r || null === c) { var y = e * s, E = l[0].pts - An(l[0].dts, l[0].pts); Tn && null !== c && Math.abs(y - E - c) < 15e3 ? r = !0 : c = y - E } for (var T = d.baseTime * s / d.timescale, R = 0; R < h; R++) { var k = l[R]; k.pts = An(k.pts - T, c), k.dts = An(k.dts - T, c), k.dts < l[R > 0 ? R - 1 : R].dts && (p = !0) } p && l.sort((function (t, e) { var r = t.dts - e.dts, i = t.pts - e.pts; return r || i })), n = l[0].dts; var b = (a = l[l.length - 1].dts) - n, D = b ? Math.round(b / (h - 1)) : g || t.inputTimeScale / 30; if (r) { var I = n - c, C = I > D, _ = I < -1; if ((C || _) && (C ? w.warn("AVC: " + En(I, !0) + " ms (" + I + "dts) hole between fragments detected at " + e.toFixed(3)) : w.warn("AVC: " + En(-I, !0) + " ms (" + I + "dts) overlapping between fragments detected at " + e.toFixed(3)), !_ || c >= l[0].pts || Tn)) { n = c; var x = l[0].pts - I; if (C) l[0].dts = n, l[0].pts = x; else for (var P = 0; P < l.length && !(l[P].dts > x); P++)l[P].dts -= I, l[P].pts -= I; w.log("Video: Initial PTS/DTS adjusted: " + En(x, !0) + "/" + En(n, !0) + ", delta: " + En(I, !0) + " ms") } } for (var F = 0, M = 0, O = n = Math.max(0, n), N = 0; N < h; N++) { for (var U = l[N], B = U.units, G = B.length, K = 0, H = 0; H < G; H++)K += B[H].data.length; M += K, F += G, U.length = K, U.dts < O ? (U.dts = O, O += D / 4 | 0 || 1) : O = U.dts, v = Math.min(U.pts, v), m = Math.max(U.pts, m) } a = l[h - 1].dts; var V, Y = M + 4 * F + 8; try { V = new Uint8Array(Y) } catch (t) { return void this.observer.emit(S.ERROR, S.ERROR, { type: L.MUX_ERROR, details: A.REMUX_ALLOC_ERROR, fatal: !1, error: t, bytes: Y, reason: "fail allocating video mdat " + Y }) } var W = new DataView(V.buffer); W.setUint32(0, Y), V.set(mn.types.mdat, 4); for (var j = !1, q = Number.POSITIVE_INFINITY, X = Number.POSITIVE_INFINITY, z = Number.NEGATIVE_INFINITY, Q = Number.NEGATIVE_INFINITY, J = 0; J < h; J++) { for (var $ = l[J], Z = $.units, tt = 0, et = 0, rt = Z.length; et < rt; et++) { var it = Z[et], nt = it.data, at = it.data.byteLength; W.setUint32(f, at), f += 4, V.set(nt, f), f += at, tt += 4 + at } var st = void 0; if (J < h - 1) g = l[J + 1].dts - $.dts, st = l[J + 1].pts - $.pts; else { var ot = this.config, lt = J > 0 ? $.dts - l[J - 1].dts : D; if (st = J > 0 ? $.pts - l[J - 1].pts : D, ot.stretchShortVideoTrack && null !== this.nextAudioPts) { var ut = Math.floor(ot.maxBufferHole * s), ht = (i ? v + i * s : this.nextAudioPts) - $.pts; ht > ut ? ((g = ht - lt) < 0 ? g = lt : j = !0, w.log("[mp4-remuxer]: It is approximately " + ht / 90 + " ms to the next segment; using duration " + g / 90 + " ms for the last video frame.")) : g = lt } else g = lt } var dt = Math.round($.pts - $.dts); q = Math.min(q, g), z = Math.max(z, g), X = Math.min(X, st), Q = Math.max(Q, st), u.push(new Dn($.key, g, tt, dt)) } if (u.length) if (Tn) { if (Tn < 70) { var ct = u[0].flags; ct.dependsOn = 2, ct.isNonSync = 0 } } else if (Sn && Q - X < z - q && D / z < .025 && 0 === u[0].cts) { w.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration."); for (var ft = n, gt = 0, vt = u.length; gt < vt; gt++) { var mt = ft + u[gt].duration, pt = ft + u[gt].cts; if (gt < vt - 1) { var yt = mt + u[gt + 1].cts; u[gt].duration = yt - pt } else u[gt].duration = gt ? u[gt - 1].duration : D; u[gt].cts = 0, ft = mt } } g = j || !g ? D : g, this.nextAvcDts = c = a + g, this.videoSampleDuration = g, this.isVideoContiguous = !0; var Et = { data1: mn.moof(t.sequenceNumber++, n, o({}, t, { samples: u })), data2: V, startPTS: v / s, endPTS: (m + g) / s, startDTS: n / s, endDTS: c / s, type: "video", hasAudio: !1, hasVideo: !0, nb: u.length, dropped: t.dropped }; return t.samples = [], t.dropped = 0, Et }, e.getSamplesPerFrame = function (t) { switch (t.segmentCodec) { case "mp3": return 1152; case "ac3": return 1536; default: return 1024 } }, e.remuxAudio = function (t, e, r, i, n) { var a = t.inputTimeScale, s = a / (t.samplerate ? t.samplerate : a), l = this.getSamplesPerFrame(t), u = l * s, h = this._initPTS, d = "mp3" === t.segmentCodec && this.typeSupported.mpeg, c = [], f = void 0 !== n, g = t.samples, v = d ? 0 : 8, m = this.nextAudioPts || -1, p = e * a, y = h.baseTime * a / h.timescale; if (this.isAudioContiguous = r = r || g.length && m > 0 && (i && Math.abs(p - m) < 9e3 || Math.abs(An(g[0].pts - y, p) - m) < 20 * u), g.forEach((function (t) { t.pts = An(t.pts - y, p) })), !r || m < 0) { if (g = g.filter((function (t) { return t.pts >= 0 })), !g.length) return; m = 0 === n ? 0 : i && !f ? Math.max(0, p) : g[0].pts } if ("aac" === t.segmentCodec) for (var E = this.config.maxAudioFramesDrift, T = 0, R = m; T < g.length; T++) { var k = g[T], b = k.pts, D = b - R, I = Math.abs(1e3 * D / a); if (D <= -E * u && f) 0 === T && (w.warn("Audio frame @ " + (b / a).toFixed(3) + "s overlaps nextAudioPts by " + Math.round(1e3 * D / a) + " ms."), this.nextAudioPts = m = R = b); else if (D >= E * u && I < 1e4 && f) { var C = Math.round(D / u); (R = b - C * u) < 0 && (C--, R += u), 0 === T && (this.nextAudioPts = m = R), w.warn("[mp4-remuxer]: Injecting " + C + " audio frame @ " + (R / a).toFixed(3) + "s due to " + Math.round(1e3 * D / a) + " ms gap."); for (var _ = 0; _ < C; _++) { var x = Math.max(R, 0), P = gn.getSilentFrame(t.manifestCodec || t.codec, t.channelCount); P || (w.log("[mp4-remuxer]: Unable to get silent frame for given audio codec; duplicating last frame instead."), P = k.unit.subarray()), g.splice(T, 0, { unit: P, pts: x }), R += u, T++ } } k.pts = R, R += u } for (var F, M = null, O = null, N = 0, U = g.length; U--;)N += g[U].unit.byteLength; for (var B = 0, G = g.length; B < G; B++) { var K = g[B], H = K.unit, V = K.pts; if (null !== O) c[B - 1].duration = Math.round((V - O) / s); else { if (r && "aac" === t.segmentCodec && (V = m), M = V, !(N > 0)) return; N += v; try { F = new Uint8Array(N) } catch (t) { return void this.observer.emit(S.ERROR, S.ERROR, { type: L.MUX_ERROR, details: A.REMUX_ALLOC_ERROR, fatal: !1, error: t, bytes: N, reason: "fail allocating audio mdat " + N }) } d || (new DataView(F.buffer).setUint32(0, N), F.set(mn.types.mdat, 4)) } F.set(H, v); var Y = H.byteLength; v += Y, c.push(new Dn(!0, l, Y, 0)), O = V } var W = c.length; if (W) { var j = c[c.length - 1]; this.nextAudioPts = m = O + s * j.duration; var q = d ? new Uint8Array(0) : mn.moof(t.sequenceNumber++, M / s, o({}, t, { samples: c })); t.samples = []; var X = M / a, z = m / a, Q = { data1: q, data2: F, startPTS: X, endPTS: z, startDTS: X, endDTS: z, type: "audio", hasAudio: !0, hasVideo: !1, nb: W }; return this.isAudioContiguous = !0, Q } }, e.remuxEmptyAudio = function (t, e, r, i) { var n = t.inputTimeScale, a = n / (t.samplerate ? t.samplerate : n), s = this.nextAudioPts, o = this._initDTS, l = 9e4 * o.baseTime / o.timescale, u = (null !== s ? s : i.startDTS * n) + l, h = i.endDTS * n + l, d = 1024 * a, c = Math.ceil((h - u) / d), f = gn.getSilentFrame(t.manifestCodec || t.codec, t.channelCount); if (w.warn("[mp4-remuxer]: remux empty Audio"), f) { for (var g = [], v = 0; v < c; v++) { var m = u + v * d; g.push({ unit: f, pts: m, dts: m }) } return t.samples = g, this.remuxAudio(t, e, r, !1) } w.trace("[mp4-remuxer]: Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec") }, t }(); function An(t, e) { var r; if (null === e) return t; for (r = e < t ? -8589934592 : 8589934592; Math.abs(t - e) > 4294967296;)t += r; return t } function Rn(t, e, r, i) { var n = t.samples.length; if (n) { for (var a = t.inputTimeScale, s = 0; s < n; s++) { var o = t.samples[s]; o.pts = An(o.pts - r.baseTime * a / r.timescale, e * a) / a, o.dts = An(o.dts - i.baseTime * a / i.timescale, e * a) / a } var l = t.samples; return t.samples = [], { samples: l } } } function kn(t, e, r) { var i = t.samples.length; if (i) { for (var n = t.inputTimeScale, a = 0; a < i; a++) { var s = t.samples[a]; s.pts = An(s.pts - r.baseTime * n / r.timescale, e * n) / n } t.samples.sort((function (t, e) { return t.pts - e.pts })); var o = t.samples; return t.samples = [], { samples: o } } } var bn, Dn = function (t, e, r, i) { this.size = void 0, this.duration = void 0, this.cts = void 0, this.flags = void 0, this.duration = e, this.size = r, this.cts = i, this.flags = { isLeading: 0, isDependedOn: 0, hasRedundancy: 0, degradPrio: 0, dependsOn: t ? 2 : 1, isNonSync: t ? 0 : 1 } }, In = function () { function t() { this.emitInitSegment = !1, this.audioCodec = void 0, this.videoCodec = void 0, this.initData = void 0, this.initPTS = null, this.initTracks = void 0, this.lastEndTime = null } var e = t.prototype; return e.destroy = function () { }, e.resetTimeStamp = function (t) { this.initPTS = t, this.lastEndTime = null }, e.resetNextTimestamp = function () { this.lastEndTime = null }, e.resetInitSegment = function (t, e, r, i) { this.audioCodec = e, this.videoCodec = r, this.generateInitSegment(function (t, e) { if (!t || !e) return t; var r = e.keyId; return r && e.isCommonEncryption && xt(t, ["moov", "trak"]).forEach((function (t) { var e = xt(t, ["mdia", "minf", "stbl", "stsd"])[0].subarray(8), i = xt(e, ["enca"]), n = i.length > 0; n || (i = xt(e, ["encv"])), i.forEach((function (t) { xt(n ? t.subarray(28) : t.subarray(78), ["sinf"]).forEach((function (t) { var e = Bt(t); if (e) { var i = e.subarray(8, 24); i.some((function (t) { return 0 !== t })) || (w.log("[eme] Patching keyId in 'enc" + (n ? "a" : "v") + ">sinf>>tenc' box: " + Lt(i) + " -> " + Lt(r)), e.set(r, 8)) } })) })) })), t }(t, i)), this.emitInitSegment = !0 }, e.generateInitSegment = function (t) { var e = this.audioCodec, r = this.videoCodec; if (null == t || !t.byteLength) return this.initTracks = void 0, void (this.initData = void 0); var i = this.initData = Ft(t); i.audio && (e = wn(i.audio, O)), i.video && (r = wn(i.video, N)); var n = {}; i.audio && i.video ? n.audiovideo = { container: "video/mp4", codec: e + "," + r, initSegment: t, id: "main" } : i.audio ? n.audio = { container: "audio/mp4", codec: e, initSegment: t, id: "audio" } : i.video ? n.video = { container: "video/mp4", codec: r, initSegment: t, id: "main" } : w.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."), this.initTracks = n }, e.remux = function (t, e, r, i, n, a) { var s, o, l = this.initPTS, u = this.lastEndTime, h = { audio: void 0, video: void 0, text: i, id3: r, initSegment: void 0 }; y(u) || (u = this.lastEndTime = n || 0); var d = e.samples; if (null == d || !d.length) return h; var c = { initPTS: void 0, timescale: 1 }, f = this.initData; if (null != (s = f) && s.length || (this.generateInitSegment(d), f = this.initData), null == (o = f) || !o.length) return w.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."), h; this.emitInitSegment && (c.tracks = this.initTracks, this.emitInitSegment = !1); var g = function (t, e) { for (var r = 0, i = 0, n = 0, a = xt(t, ["moof", "traf"]), s = 0; s < a.length; s++) { var o = a[s], l = xt(o, ["tfhd"])[0], u = e[It(l, 4)]; if (u) { var h = u.default, d = It(l, 0) | (null == h ? void 0 : h.flags), c = null == h ? void 0 : h.duration; 8 & d && (c = It(l, 2 & d ? 12 : 8)); for (var f = u.timescale || 9e4, g = xt(o, ["trun"]), v = 0; v < g.length; v++)!(r = Gt(g[v])) && c && (r = c * It(g[v], 4)), u.type === N ? i += r / f : u.type === O && (n += r / f) } } if (0 === i && 0 === n) { for (var m = 1 / 0, p = 0, E = 0, T = xt(t, ["sidx"]), S = 0; S < T.length; S++) { var L = Pt(T[S]); if (null != L && L.references) { m = Math.min(m, L.earliestPresentationTime / L.timescale); var A = L.references.reduce((function (t, e) { return t + e.info.duration || 0 }), 0); E = (p = Math.max(p, A + L.earliestPresentationTime / L.timescale)) - m } } if (E && y(E)) return E } return i || n }(d, f), v = function (t, e) { return xt(e, ["moof", "traf"]).reduce((function (e, r) { var i = xt(r, ["tfdt"])[0], n = i[0], a = xt(r, ["tfhd"]).reduce((function (e, r) { var a = It(r, 4), s = t[a]; if (s) { var o = It(i, 4); if (1 === n) { if (o === At) return w.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time"), e; o *= At + 1, o += It(i, 8) } var l = o / (s.timescale || 9e4); if (y(l) && (null === e || l < e)) return l } return e }), null); return null !== a && y(a) && (null === e || a < e) ? a : e }), null) }(f, d), m = null === v ? n : v; (function (t, e, r, i) { if (null === t) return !0; var n = Math.max(i, 1), a = e - t.baseTime / t.timescale; return Math.abs(a - r) > n }(l, m, n, g) || c.timescale !== l.timescale && a) && (c.initPTS = m - n, l && 1 === l.timescale && w.warn("Adjusting initPTS by " + (c.initPTS - l.baseTime)), this.initPTS = l = { baseTime: c.initPTS, timescale: 1 }); var p = t ? m - l.baseTime / l.timescale : u, E = p + g; !function (t, e, r) { xt(e, ["moof", "traf"]).forEach((function (e) { xt(e, ["tfhd"]).forEach((function (i) { var n = It(i, 4), a = t[n]; if (a) { var s = a.timescale || 9e4; xt(e, ["tfdt"]).forEach((function (t) { var e = t[0], i = r * s; if (i) { var n = It(t, 4); if (0 === e) n -= i, _t(t, 4, n = Math.max(n, 0)); else { n *= Math.pow(2, 32), n += It(t, 8), n -= i, n = Math.max(n, 0); var a = Math.floor(n / (At + 1)), o = Math.floor(n % (At + 1)); _t(t, 4, a), _t(t, 8, o) } } })) } })) })) }(f, d, l.baseTime / l.timescale), g > 0 ? this.lastEndTime = E : (w.warn("Duration parsed from mp4 should be greater than zero"), this.resetNextTimestamp()); var T = !!f.audio, S = !!f.video, L = ""; T && (L += "audio"), S && (L += "video"); var A = { data1: d, startPTS: p, startDTS: p, endPTS: E, endDTS: E, type: L, hasAudio: T, hasVideo: S, nb: 1, dropped: 0 }; return h.audio = "audio" === A.type ? A : void 0, h.video = "audio" !== A.type ? A : void 0, h.initSegment = c, h.id3 = Rn(r, n, l, l), i.samples.length && (h.text = kn(i, n, l)), h }, t }(); function wn(t, e) { var r = null == t ? void 0 : t.codec; if (r && r.length > 4) return r; if (e === O) { if ("ec-3" === r || "ac-3" === r || "alac" === r) return r; if ("fLaC" === r || "Opus" === r) return he(r, !1); var i = "mp4a.40.5"; return w.info('Parsed audio codec "' + r + '" or audio object type not handled. Using "' + i + '"'), i } return w.warn('Unhandled video codec "' + r + '"'), "hvc1" === r || "hev1" === r ? "hvc1.1.6.L120.90" : "av01" === r ? "av01.0.04M.08" : "avc1.42e01e" } try { bn = self.performance.now.bind(self.performance) } catch (t) { w.debug("Unable to use Performance API on this environment"), bn = null == j ? void 0 : j.Date.now } var Cn = [{ demux: Ji, remux: In }, { demux: on, remux: Ln }, { demux: zi, remux: Ln }, { demux: fn, remux: Ln }]; Cn.splice(2, 0, { demux: Zi, remux: Ln }); var _n = function () { function t(t, e, r, i, n) { this.async = !1, this.observer = void 0, this.typeSupported = void 0, this.config = void 0, this.vendor = void 0, this.id = void 0, this.demuxer = void 0, this.remuxer = void 0, this.decrypter = void 0, this.probe = void 0, this.decryptionPromise = null, this.transmuxConfig = void 0, this.currentTransmuxState = void 0, this.observer = t, this.typeSupported = e, this.config = r, this.vendor = i, this.id = n } var e = t.prototype; return e.configure = function (t) { this.transmuxConfig = t, this.decrypter && this.decrypter.reset() }, e.push = function (t, e, r, i) { var n = this, a = r.transmuxing; a.executeStart = bn(); var s = new Uint8Array(t), o = this.currentTransmuxState, l = this.transmuxConfig; i && (this.currentTransmuxState = i); var u = i || o, h = u.contiguous, d = u.discontinuity, c = u.trackSwitch, f = u.accurateTimeOffset, g = u.timeOffset, v = u.initSegmentChange, m = l.audioCodec, p = l.videoCodec, y = l.defaultInitPts, E = l.duration, T = l.initSegmentData, R = function (t, e) { var r = null; return t.byteLength > 0 && null != (null == e ? void 0 : e.key) && null !== e.iv && null != e.method && (r = e), r }(s, e); if (R && "AES-128" === R.method) { var k = this.getDecrypter(); if (!k.isSync()) return this.decryptionPromise = k.webCryptoDecrypt(s, R.key.buffer, R.iv.buffer).then((function (t) { var e = n.push(t, null, r); return n.decryptionPromise = null, e })), this.decryptionPromise; var b = k.softwareDecrypt(s, R.key.buffer, R.iv.buffer); if (r.part > -1 && (b = k.flush()), !b) return a.executeEnd = bn(), xn(r); s = new Uint8Array(b) } var D = this.needsProbing(d, c); if (D) { var I = this.configureTransmuxer(s); if (I) return w.warn("[transmuxer] " + I.message), this.observer.emit(S.ERROR, S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, fatal: !1, error: I, reason: I.message }), a.executeEnd = bn(), xn(r) } (d || c || v || D) && this.resetInitSegment(T, m, p, E, e), (d || v || D) && this.resetInitialTimestamp(y), h || this.resetContiguity(); var C = this.transmux(s, R, g, f, r), _ = this.currentTransmuxState; return _.contiguous = !0, _.discontinuity = !1, _.trackSwitch = !1, a.executeEnd = bn(), C }, e.flush = function (t) { var e = this, r = t.transmuxing; r.executeStart = bn(); var i = this.decrypter, n = this.currentTransmuxState, a = this.decryptionPromise; if (a) return a.then((function () { return e.flush(t) })); var s = [], o = n.timeOffset; if (i) { var l = i.flush(); l && s.push(this.push(l, null, t)) } var u = this.demuxer, h = this.remuxer; if (!u || !h) return r.executeEnd = bn(), [xn(t)]; var d = u.flush(o); return Pn(d) ? d.then((function (r) { return e.flushRemux(s, r, t), s })) : (this.flushRemux(s, d, t), s) }, e.flushRemux = function (t, e, r) { var i = e.audioTrack, n = e.videoTrack, a = e.id3Track, s = e.textTrack, o = this.currentTransmuxState, l = o.accurateTimeOffset, u = o.timeOffset; w.log("[transmuxer.ts]: Flushed fragment " + r.sn + (r.part > -1 ? " p: " + r.part : "") + " of level " + r.level); var h = this.remuxer.remux(i, n, a, s, u, l, !0, this.id); t.push({ remuxResult: h, chunkMeta: r }), r.transmuxing.executeEnd = bn() }, e.resetInitialTimestamp = function (t) { var e = this.demuxer, r = this.remuxer; e && r && (e.resetTimeStamp(t), r.resetTimeStamp(t)) }, e.resetContiguity = function () { var t = this.demuxer, e = this.remuxer; t && e && (t.resetContiguity(), e.resetNextTimestamp()) }, e.resetInitSegment = function (t, e, r, i, n) { var a = this.demuxer, s = this.remuxer; a && s && (a.resetInitSegment(t, e, r, i), s.resetInitSegment(t, e, r, n)) }, e.destroy = function () { this.demuxer && (this.demuxer.destroy(), this.demuxer = void 0), this.remuxer && (this.remuxer.destroy(), this.remuxer = void 0) }, e.transmux = function (t, e, r, i, n) { return e && "SAMPLE-AES" === e.method ? this.transmuxSampleAes(t, e, r, i, n) : this.transmuxUnencrypted(t, r, i, n) }, e.transmuxUnencrypted = function (t, e, r, i) { var n = this.demuxer.demux(t, e, !1, !this.config.progressive), a = n.audioTrack, s = n.videoTrack, o = n.id3Track, l = n.textTrack; return { remuxResult: this.remuxer.remux(a, s, o, l, e, r, !1, this.id), chunkMeta: i } }, e.transmuxSampleAes = function (t, e, r, i, n) { var a = this; return this.demuxer.demuxSampleAes(t, e, r).then((function (t) { return { remuxResult: a.remuxer.remux(t.audioTrack, t.videoTrack, t.id3Track, t.textTrack, r, i, !1, a.id), chunkMeta: n } })) }, e.configureTransmuxer = function (t) { for (var e, r = this.config, i = this.observer, n = this.typeSupported, a = this.vendor, s = 0, o = Cn.length; s < o; s++) { var l; if (null != (l = Cn[s].demux) && l.probe(t)) { e = Cn[s]; break } } if (!e) return new Error("Failed to find demuxer by probing fragment data"); var u = this.demuxer, h = this.remuxer, d = e.remux, c = e.demux; h && h instanceof d || (this.remuxer = new d(i, r, n, a)), u && u instanceof c || (this.demuxer = new c(i, r, n), this.probe = c.probe) }, e.needsProbing = function (t, e) { return !this.demuxer || !this.remuxer || t || e }, e.getDecrypter = function () { var t = this.decrypter; return t || (t = this.decrypter = new ci(this.config)), t }, t }(), xn = function (t) { return { remuxResult: {}, chunkMeta: t } }; function Pn(t) { return "then" in t && t.then instanceof Function } var Fn = function (t, e, r, i, n) { this.audioCodec = void 0, this.videoCodec = void 0, this.initSegmentData = void 0, this.duration = void 0, this.defaultInitPts = void 0, this.audioCodec = t, this.videoCodec = e, this.initSegmentData = r, this.duration = i, this.defaultInitPts = n || null }, Mn = function (t, e, r, i, n, a) { this.discontinuity = void 0, this.contiguous = void 0, this.accurateTimeOffset = void 0, this.trackSwitch = void 0, this.timeOffset = void 0, this.initSegmentChange = void 0, this.discontinuity = t, this.contiguous = e, this.accurateTimeOffset = r, this.trackSwitch = i, this.timeOffset = n, this.initSegmentChange = a }, On = { exports: {} }; !function (t) { var e = Object.prototype.hasOwnProperty, r = "~"; function i() { } function n(t, e, r) { this.fn = t, this.context = e, this.once = r || !1 } function a(t, e, i, a, s) { if ("function" != typeof i) throw new TypeError("The listener must be a function"); var o = new n(i, a || t, s), l = r ? r + e : e; return t._events[l] ? t._events[l].fn ? t._events[l] = [t._events[l], o] : t._events[l].push(o) : (t._events[l] = o, t._eventsCount++), t } function s(t, e) { 0 == --t._eventsCount ? t._events = new i : delete t._events[e] } function o() { this._events = new i, this._eventsCount = 0 } Object.create && (i.prototype = Object.create(null), (new i).__proto__ || (r = !1)), o.prototype.eventNames = function () { var t, i, n = []; if (0 === this._eventsCount) return n; for (i in t = this._events) e.call(t, i) && n.push(r ? i.slice(1) : i); return Object.getOwnPropertySymbols ? n.concat(Object.getOwnPropertySymbols(t)) : n }, o.prototype.listeners = function (t) { var e = r ? r + t : t, i = this._events[e]; if (!i) return []; if (i.fn) return [i.fn]; for (var n = 0, a = i.length, s = new Array(a); n < a; n++)s[n] = i[n].fn; return s }, o.prototype.listenerCount = function (t) { var e = r ? r + t : t, i = this._events[e]; return i ? i.fn ? 1 : i.length : 0 }, o.prototype.emit = function (t, e, i, n, a, s) { var o = r ? r + t : t; if (!this._events[o]) return !1; var l, u, h = this._events[o], d = arguments.length; if (h.fn) { switch (h.once && this.removeListener(t, h.fn, void 0, !0), d) { case 1: return h.fn.call(h.context), !0; case 2: return h.fn.call(h.context, e), !0; case 3: return h.fn.call(h.context, e, i), !0; case 4: return h.fn.call(h.context, e, i, n), !0; case 5: return h.fn.call(h.context, e, i, n, a), !0; case 6: return h.fn.call(h.context, e, i, n, a, s), !0 }for (u = 1, l = new Array(d - 1); u < d; u++)l[u - 1] = arguments[u]; h.fn.apply(h.context, l) } else { var c, f = h.length; for (u = 0; u < f; u++)switch (h[u].once && this.removeListener(t, h[u].fn, void 0, !0), d) { case 1: h[u].fn.call(h[u].context); break; case 2: h[u].fn.call(h[u].context, e); break; case 3: h[u].fn.call(h[u].context, e, i); break; case 4: h[u].fn.call(h[u].context, e, i, n); break; default: if (!l) for (c = 1, l = new Array(d - 1); c < d; c++)l[c - 1] = arguments[c]; h[u].fn.apply(h[u].context, l) } } return !0 }, o.prototype.on = function (t, e, r) { return a(this, t, e, r, !1) }, o.prototype.once = function (t, e, r) { return a(this, t, e, r, !0) }, o.prototype.removeListener = function (t, e, i, n) { var a = r ? r + t : t; if (!this._events[a]) return this; if (!e) return s(this, a), this; var o = this._events[a]; if (o.fn) o.fn !== e || n && !o.once || i && o.context !== i || s(this, a); else { for (var l = 0, u = [], h = o.length; l < h; l++)(o[l].fn !== e || n && !o[l].once || i && o[l].context !== i) && u.push(o[l]); u.length ? this._events[a] = 1 === u.length ? u[0] : u : s(this, a) } return this }, o.prototype.removeAllListeners = function (t) { var e; return t ? (e = r ? r + t : t, this._events[e] && s(this, e)) : (this._events = new i, this._eventsCount = 0), this }, o.prototype.off = o.prototype.removeListener, o.prototype.addListener = o.prototype.on, o.prefixed = r, o.EventEmitter = o, t.exports = o }(On); var Nn = v(On.exports); function Un(t, e) { if (!((r = e.remuxResult).audio || r.video || r.text || r.id3 || r.initSegment)) return !1; var r, i = [], n = e.remuxResult, a = n.audio, s = n.video; return a && Bn(i, a), s && Bn(i, s), t.postMessage({ event: "transmuxComplete", data: e }, i), !0 } function Bn(t, e) { e.data1 && t.push(e.data1.buffer), e.data2 && t.push(e.data2.buffer) } function Gn(t, e, r) { e.reduce((function (e, r) { return Un(t, r) || e }), !1) || t.postMessage({ event: "transmuxComplete", data: e[0] }), t.postMessage({ event: "flush", data: r }) } void 0 !== e && e && function (t) { var e = new Nn, r = function (e, r) { t.postMessage({ event: e, data: r }) }; e.on(S.FRAG_DECRYPTED, r), e.on(S.ERROR, r); var i = function () { var t = function (t) { var e = function (e) { r("workerLog", { logType: t, message: e }) }; w[t] = e }; for (var e in w) t(e) }; t.addEventListener("message", (function (n) { var a = n.data; switch (a.cmd) { case "init": var s = JSON.parse(a.config); t.transmuxer = new _n(e, a.typeSupported, s, a.vendor, a.id), I(s.debug, a.id), i(), r("init", null); break; case "configure": t.transmuxer.configure(a.config); break; case "demux": var o = t.transmuxer.push(a.data, a.decryptdata, a.chunkMeta, a.state); Pn(o) ? (t.transmuxer.async = !0, o.then((function (e) { Un(t, e) })).catch((function (t) { r(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: a.chunkMeta, fatal: !1, error: t, err: t, reason: "transmuxer-worker push error" }) }))) : (t.transmuxer.async = !1, Un(t, o)); break; case "flush": var l = a.chunkMeta, u = t.transmuxer.flush(l); Pn(u) || t.transmuxer.async ? (Pn(u) || (u = Promise.resolve(u)), u.then((function (e) { Gn(t, e, l) })).catch((function (t) { r(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: a.chunkMeta, fatal: !1, error: t, err: t, reason: "transmuxer-worker flush error" }) }))) : Gn(t, u, l) } })) }(self); var Kn = function () { function e(e, r, i, n) { var a = this; this.error = null, this.hls = void 0, this.id = void 0, this.observer = void 0, this.frag = null, this.part = null, this.useWorker = void 0, this.workerContext = null, this.onwmsg = void 0, this.transmuxer = null, this.onTransmuxComplete = void 0, this.onFlush = void 0; var s = e.config; this.hls = e, this.id = r, this.useWorker = !!s.enableWorker, this.onTransmuxComplete = i, this.onFlush = n; var o = function (t, e) { (e = e || {}).frag = a.frag, e.id = a.id, t === S.ERROR && (a.error = e.error), a.hls.trigger(t, e) }; this.observer = new Nn, this.observer.on(S.FRAG_DECRYPTED, o), this.observer.on(S.ERROR, o); var l, u, h, d, c = ee(s.preferManagedMediaSource) || { isTypeSupported: function () { return !1 } }, f = { mpeg: c.isTypeSupported("audio/mpeg"), mp3: c.isTypeSupported('audio/mp4; codecs="mp3"'), ac3: c.isTypeSupported('audio/mp4; codecs="ac-3"') }, g = navigator.vendor; if (!this.useWorker || "undefined" == typeof Worker || (s.workerPath, 0)) this.transmuxer = new _n(this.observer, f, s, g, r); else try { s.workerPath ? (w.log("loading Web Worker " + s.workerPath + ' for "' + r + '"'), this.workerContext = (h = s.workerPath, d = new self.URL(h, self.location.href).href, { worker: new self.Worker(d), scriptURL: d })) : (w.log('injecting Web Worker for "' + r + '"'), this.workerContext = (l = new self.Blob(["var exports={};var module={exports:exports};function define(f){f()};define.amd=true;(" + t.toString() + ")(true);"], { type: "text/javascript" }), u = self.URL.createObjectURL(l), { worker: new self.Worker(u), objectURL: u })), this.onwmsg = function (t) { return a.onWorkerMessage(t) }; var v = this.workerContext.worker; v.addEventListener("message", this.onwmsg), v.onerror = function (t) { var e = new Error(t.message + " (" + t.filename + ":" + t.lineno + ")"); s.enableWorker = !1, w.warn('Error in "' + r + '" Web Worker, fallback to inline'), a.hls.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.INTERNAL_EXCEPTION, fatal: !1, event: "demuxerWorker", error: e }) }, v.postMessage({ cmd: "init", typeSupported: f, vendor: g, id: r, config: JSON.stringify(s) }) } catch (t) { w.warn('Error setting up "' + r + '" Web Worker, fallback to inline', t), this.resetWorker(), this.error = null, this.transmuxer = new _n(this.observer, f, s, g, r) } } var r = e.prototype; return r.resetWorker = function () { if (this.workerContext) { var t = this.workerContext, e = t.worker, r = t.objectURL; r && self.URL.revokeObjectURL(r), e.removeEventListener("message", this.onwmsg), e.onerror = null, e.terminate(), this.workerContext = null } }, r.destroy = function () { if (this.workerContext) this.resetWorker(), this.onwmsg = void 0; else { var t = this.transmuxer; t && (t.destroy(), this.transmuxer = null) } var e = this.observer; e && e.removeAllListeners(), this.frag = null, this.observer = null, this.hls = null }, r.push = function (t, e, r, i, n, a, s, o, l, u) { var h, d, c = this; l.transmuxing.start = self.performance.now(); var f = this.transmuxer, g = a ? a.start : n.start, v = n.decryptdata, m = this.frag, p = !(m && n.cc === m.cc), y = !(m && l.level === m.level), E = m ? l.sn - m.sn : -1, T = this.part ? l.part - this.part.index : -1, S = 0 === E && l.id > 1 && l.id === (null == m ? void 0 : m.stats.chunkCount), L = !y && (1 === E || 0 === E && (1 === T || S && T <= 0)), A = self.performance.now(); (y || E || 0 === n.stats.parsing.start) && (n.stats.parsing.start = A), !a || !T && L || (a.stats.parsing.start = A); var R = !(m && (null == (h = n.initSegment) ? void 0 : h.url) === (null == (d = m.initSegment) ? void 0 : d.url)), k = new Mn(p, L, o, y, g, R); if (!L || p || R) { w.log("[transmuxer-interface, " + n.type + "]: Starting new transmux session for sn: " + l.sn + " p: " + l.part + " level: " + l.level + " id: " + l.id + "\n discontinuity: " + p + "\n trackSwitch: " + y + "\n contiguous: " + L + "\n accurateTimeOffset: " + o + "\n timeOffset: " + g + "\n initSegmentChange: " + R); var b = new Fn(r, i, e, s, u); this.configureTransmuxer(b) } if (this.frag = n, this.part = a, this.workerContext) this.workerContext.worker.postMessage({ cmd: "demux", data: t, decryptdata: v, chunkMeta: l, state: k }, t instanceof ArrayBuffer ? [t] : []); else if (f) { var D = f.push(t, v, l, k); Pn(D) ? (f.async = !0, D.then((function (t) { c.handleTransmuxComplete(t) })).catch((function (t) { c.transmuxerError(t, l, "transmuxer-interface push error") }))) : (f.async = !1, this.handleTransmuxComplete(D)) } }, r.flush = function (t) { var e = this; t.transmuxing.start = self.performance.now(); var r = this.transmuxer; if (this.workerContext) this.workerContext.worker.postMessage({ cmd: "flush", chunkMeta: t }); else if (r) { var i = r.flush(t); Pn(i) || r.async ? (Pn(i) || (i = Promise.resolve(i)), i.then((function (r) { e.handleFlushResult(r, t) })).catch((function (r) { e.transmuxerError(r, t, "transmuxer-interface flush error") }))) : this.handleFlushResult(i, t) } }, r.transmuxerError = function (t, e, r) { this.hls && (this.error = t, this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_PARSING_ERROR, chunkMeta: e, fatal: !1, error: t, err: t, reason: r })) }, r.handleFlushResult = function (t, e) { var r = this; t.forEach((function (t) { r.handleTransmuxComplete(t) })), this.onFlush(e) }, r.onWorkerMessage = function (t) { var e = t.data, r = this.hls; switch (e.event) { case "init": var i, n = null == (i = this.workerContext) ? void 0 : i.objectURL; n && self.URL.revokeObjectURL(n); break; case "transmuxComplete": this.handleTransmuxComplete(e.data); break; case "flush": this.onFlush(e.data); break; case "workerLog": w[e.data.logType] && w[e.data.logType](e.data.message); break; default: e.data = e.data || {}, e.data.frag = this.frag, e.data.id = this.id, r.trigger(e.event, e.data) } }, r.configureTransmuxer = function (t) { var e = this.transmuxer; this.workerContext ? this.workerContext.worker.postMessage({ cmd: "configure", config: t }) : e && e.configure(t) }, r.handleTransmuxComplete = function (t) { t.chunkMeta.transmuxing.end = self.performance.now(), this.onTransmuxComplete(t) }, e }(); function Hn(t, e) { if (t.length !== e.length) return !1; for (var r = 0; r < t.length; r++)if (!Vn(t[r].attrs, e[r].attrs)) return !1; return !0 } function Vn(t, e, r) { var i = t["STABLE-RENDITION-ID"]; return i && !r ? i === e["STABLE-RENDITION-ID"] : !(r || ["LANGUAGE", "NAME", "CHARACTERISTICS", "AUTOSELECT", "DEFAULT", "FORCED", "ASSOC-LANGUAGE"]).some((function (r) { return t[r] !== e[r] })) } function Yn(t, e) { return e.label.toLowerCase() === t.name.toLowerCase() && (!e.language || e.language.toLowerCase() === (t.lang || "").toLowerCase()) } var Wn = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e, r, i, "[audio-stream-controller]", Ce) || this).videoBuffer = null, n.videoTrackCC = -1, n.waitingVideoCC = -1, n.bufferedTrack = null, n.switchingTrack = null, n.trackId = -1, n.waitingData = null, n.mainDetails = null, n.flushing = !1, n.bufferFlushed = !1, n.cachedTrackLoadedData = null, n._registerListeners(), n } l(e, t); var r = e.prototype; return r.onHandlerDestroying = function () { this._unregisterListeners(), t.prototype.onHandlerDestroying.call(this), this.mainDetails = null, this.bufferedTrack = null, this.switchingTrack = null }, r._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), t.on(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.on(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.on(S.ERROR, this.onError, this), t.on(S.BUFFER_RESET, this.onBufferReset, this), t.on(S.BUFFER_CREATED, this.onBufferCreated, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.on(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.AUDIO_TRACKS_UPDATED, this.onAudioTracksUpdated, this), t.off(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.off(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.off(S.ERROR, this.onError, this), t.off(S.BUFFER_RESET, this.onBufferReset, this), t.off(S.BUFFER_CREATED, this.onBufferCreated, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.off(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r.onInitPtsFound = function (t, e) { var r = e.frag, i = e.id, n = e.initPTS, a = e.timescale; if ("main" === i) { var s = r.cc; this.initPTS[r.cc] = { baseTime: n, timescale: a }, this.log("InitPTS for cc: " + s + " found from main: " + n), this.videoTrackCC = s, this.state === Ri && this.tick() } }, r.startLoad = function (t) { if (!this.levels) return this.startPosition = t, void (this.state = gi); var e = this.lastCurrentTime; this.stopLoad(), this.setInterval(100), e > 0 && -1 === t ? (this.log("Override startPosition with lastCurrentTime @" + e.toFixed(3)), t = e, this.state = vi) : (this.loadedmetadata = !1, this.state = Ei), this.nextLoadPosition = this.startPosition = this.lastCurrentTime = t, this.tick() }, r.doTick = function () { switch (this.state) { case vi: this.doTickIdle(); break; case Ei: var e, r = this.levels, i = this.trackId, n = null == r || null == (e = r[i]) ? void 0 : e.details; if (n) { if (this.waitForCdnTuneIn(n)) break; this.state = Ri } break; case yi: var a, s = performance.now(), o = this.retryDate; if (!o || s >= o || null != (a = this.media) && a.seeking) { var l = this.levels, u = this.trackId; this.log("RetryDate reached, switch back to IDLE state"), this.resetStartWhenNotLoaded((null == l ? void 0 : l[u]) || null), this.state = vi } break; case Ri: var h = this.waitingData; if (h) { var d = h.frag, c = h.part, f = h.cache, g = h.complete; if (void 0 !== this.initPTS[d.cc]) { this.waitingData = null, this.waitingVideoCC = -1, this.state = pi; var v = { frag: d, part: c, payload: f.flush(), networkDetails: null }; this._handleFragmentLoadProgress(v), g && t.prototype._handleFragmentLoadComplete.call(this, v) } else if (this.videoTrackCC !== this.waitingVideoCC) this.log("Waiting fragment cc (" + d.cc + ") cancelled because video is at cc " + this.videoTrackCC), this.clearWaitingFragment(); else { var m = this.getLoadPosition(), p = Jr.bufferInfo(this.mediaBuffer, m, this.config.maxBufferHole); Er(p.end, this.config.maxFragLookUpTolerance, d) < 0 && (this.log("Waiting fragment cc (" + d.cc + ") @ " + d.start + " cancelled because another fragment at " + p.end + " is needed"), this.clearWaitingFragment()) } } else this.state = vi }this.onTickEnd() }, r.clearWaitingFragment = function () { var t = this.waitingData; t && (this.fragmentTracker.removeFragment(t.frag), this.waitingData = null, this.waitingVideoCC = -1, this.state = vi) }, r.resetLoadingState = function () { this.clearWaitingFragment(), t.prototype.resetLoadingState.call(this) }, r.onTickEnd = function () { var t = this.media; null != t && t.readyState && (this.lastCurrentTime = t.currentTime) }, r.doTickIdle = function () { var t = this.hls, e = this.levels, r = this.media, i = this.trackId, n = t.config; if ((r || !this.startFragRequested && n.startFragPrefetch) && null != e && e[i]) { var a = e[i], s = a.details; if (!s || s.live && this.levelLastLoaded !== a || this.waitForCdnTuneIn(s)) this.state = Ei; else { var o = this.mediaBuffer ? this.mediaBuffer : this.media; this.bufferFlushed && o && (this.bufferFlushed = !1, this.afterBufferFlushed(o, O, Ce)); var l = this.getFwdBufferInfo(o, Ce); if (null !== l) { var u = this.bufferedTrack, h = this.switchingTrack; if (!h && this._streamEnded(l, s)) return t.trigger(S.BUFFER_EOS, { type: "audio" }), void (this.state = Li); var d = this.getFwdBufferInfo(this.videoBuffer ? this.videoBuffer : this.media, we), c = l.len, f = this.getMaxBufferLength(null == d ? void 0 : d.len), g = s.fragments, v = g[0].start, m = this.flushing ? this.getLoadPosition() : l.end; if (h && r) { var p = this.getLoadPosition(); u && !Vn(h.attrs, u.attrs) && (m = p), s.PTSKnown && p < v && (l.end > v || l.nextStart) && (this.log("Alt audio track ahead of main track, seek to start of alt audio track"), r.currentTime = v + .05) } if (!(c >= f && !h && m < g[g.length - 1].start)) { var y = this.getNextFragment(m, s), E = !1; if (y && this.isLoopLoading(y, m) && (E = !!y.gap, y = this.getNextFragmentLoopLoading(y, s, l, we, f)), y) { var T = d && y.start > d.end + s.targetduration; if (T || (null == d || !d.len) && l.len) { var L = this.getAppendedFrag(y.start, we); if (null === L) return; if (E || (E = !!L.gap || !!T && 0 === d.len), T && !E || E && l.nextStart && l.nextStart < L.end) return } this.loadFragment(y, a, m) } else this.bufferFlushed = !0 } } } } }, r.getMaxBufferLength = function (e) { var r = t.prototype.getMaxBufferLength.call(this); return e ? Math.min(Math.max(r, e), this.config.maxMaxBufferLength) : r }, r.onMediaDetaching = function () { this.videoBuffer = null, this.bufferFlushed = this.flushing = !1, t.prototype.onMediaDetaching.call(this) }, r.onAudioTracksUpdated = function (t, e) { var r = e.audioTracks; this.resetTransmuxer(), this.levels = r.map((function (t) { return new rr(t) })) }, r.onAudioTrackSwitching = function (t, e) { var r = !!e.url; this.trackId = e.id; var i = this.fragCurrent; i && (i.abortRequests(), this.removeUnbufferedFrags(i.start)), this.resetLoadingState(), r ? this.setInterval(100) : this.resetTransmuxer(), r ? (this.switchingTrack = e, this.state = vi, this.flushAudioIfNeeded(e)) : (this.switchingTrack = null, this.bufferedTrack = e, this.state = gi), this.tick() }, r.onManifestLoading = function () { this.fragmentTracker.removeAllFragments(), this.startPosition = this.lastCurrentTime = 0, this.bufferFlushed = this.flushing = !1, this.levels = this.mainDetails = this.waitingData = this.bufferedTrack = this.cachedTrackLoadedData = this.switchingTrack = null, this.startFragRequested = !1, this.trackId = this.videoTrackCC = this.waitingVideoCC = -1 }, r.onLevelLoaded = function (t, e) { this.mainDetails = e.details, null !== this.cachedTrackLoadedData && (this.hls.trigger(S.AUDIO_TRACK_LOADED, this.cachedTrackLoadedData), this.cachedTrackLoadedData = null) }, r.onAudioTrackLoaded = function (t, e) { var r; if (null != this.mainDetails) { var i = this.levels, n = e.details, a = e.id; if (i) { this.log("Audio track " + a + " loaded [" + n.startSN + "," + n.endSN + "]" + (n.lastPartSn ? "[part-" + n.lastPartSn + "-" + n.lastPartIndex + "]" : "") + ",duration:" + n.totalduration); var s = i[a], o = 0; if (n.live || null != (r = s.details) && r.live) { this.checkLiveUpdate(n); var l, u = this.mainDetails; if (n.deltaUpdateFailed || !u) return; !s.details && n.hasProgramDateTime && u.hasProgramDateTime ? (ii(n, u), o = n.fragments[0].start) : o = this.alignPlaylists(n, s.details, null == (l = this.levelLastLoaded) ? void 0 : l.details) } s.details = n, this.levelLastLoaded = s, this.startFragRequested || !this.mainDetails && n.live || this.setStartPosition(this.mainDetails || n, o), this.state !== Ei || this.waitForCdnTuneIn(n) || (this.state = vi), this.tick() } else this.warn("Audio tracks were reset while loading level " + a) } else this.cachedTrackLoadedData = e }, r._handleFragmentLoadProgress = function (t) { var e, r = t.frag, i = t.part, n = t.payload, a = this.config, s = this.trackId, o = this.levels; if (o) { var l = o[s]; if (l) { var u = l.details; if (!u) return this.warn("Audio track details undefined on fragment load progress"), void this.removeUnbufferedFrags(r.start); var h = a.defaultAudioCodec || l.audioCodec || "mp4a.40.2", d = this.transmuxer; d || (d = this.transmuxer = new Kn(this.hls, Ce, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this))); var c = this.initPTS[r.cc], f = null == (e = r.initSegment) ? void 0 : e.data; if (void 0 !== c) { var g = i ? i.index : -1, v = -1 !== g, m = new $r(r.level, r.sn, r.stats.chunkCount, n.byteLength, g, v); d.push(n, f, h, "", r, i, u.totalduration, !1, m, c) } else this.log("Unknown video PTS for cc " + r.cc + ", waiting for video PTS before demuxing audio frag " + r.sn + " of [" + u.startSN + " ," + u.endSN + "],track " + s), (this.waitingData = this.waitingData || { frag: r, part: i, cache: new Di, complete: !1 }).cache.push(new Uint8Array(n)), this.waitingVideoCC = this.videoTrackCC, this.state = Ri } else this.warn("Audio track is undefined on fragment load progress") } else this.warn("Audio tracks were reset while fragment load was in progress. Fragment " + r.sn + " of level " + r.level + " will not be buffered") }, r._handleFragmentLoadComplete = function (e) { this.waitingData ? this.waitingData.complete = !0 : t.prototype._handleFragmentLoadComplete.call(this, e) }, r.onBufferReset = function () { this.mediaBuffer = this.videoBuffer = null, this.loadedmetadata = !1 }, r.onBufferCreated = function (t, e) { var r = e.tracks.audio; r && (this.mediaBuffer = r.buffer || null), e.tracks.video && (this.videoBuffer = e.tracks.video.buffer || null) }, r.onFragBuffered = function (t, e) { var r = e.frag, n = e.part; if (r.type === Ce) if (this.fragContextChanged(r)) this.warn("Fragment " + r.sn + (n ? " p: " + n.index : "") + " of level " + r.level + " finished buffering, but was aborted. state: " + this.state + ", audioSwitch: " + (this.switchingTrack ? this.switchingTrack.name : "false")); else { if ("initSegment" !== r.sn) { this.fragPrevious = r; var a = this.switchingTrack; a && (this.bufferedTrack = a, this.switchingTrack = null, this.hls.trigger(S.AUDIO_TRACK_SWITCHED, i({}, a))) } this.fragBufferedComplete(r, n) } else if (!this.loadedmetadata && r.type === we) { var s = this.videoBuffer || this.media; s && Jr.getBuffered(s).length && (this.loadedmetadata = !0) } }, r.onError = function (e, r) { var i; if (r.fatal) this.state = Ai; else switch (r.details) { case A.FRAG_GAP: case A.FRAG_PARSING_ERROR: case A.FRAG_DECRYPT_ERROR: case A.FRAG_LOAD_ERROR: case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_ERROR: case A.KEY_LOAD_TIMEOUT: this.onFragmentOrKeyLoadError(Ce, r); break; case A.AUDIO_TRACK_LOAD_ERROR: case A.AUDIO_TRACK_LOAD_TIMEOUT: case A.LEVEL_PARSING_ERROR: r.levelRetry || this.state !== Ei || (null == (i = r.context) ? void 0 : i.type) !== De || (this.state = vi); break; case A.BUFFER_APPEND_ERROR: case A.BUFFER_FULL_ERROR: if (!r.parent || "audio" !== r.parent) return; if (r.details === A.BUFFER_APPEND_ERROR) return void this.resetLoadingState(); this.reduceLengthAndFlushBuffer(r) && (this.bufferedTrack = null, t.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio")); break; case A.INTERNAL_EXCEPTION: this.recoverWorkerError(r) } }, r.onBufferFlushing = function (t, e) { e.type !== N && (this.flushing = !0) }, r.onBufferFlushed = function (t, e) { var r = e.type; if (r !== N) { this.flushing = !1, this.bufferFlushed = !0, this.state === Li && (this.state = vi); var i = this.mediaBuffer || this.media; i && (this.afterBufferFlushed(i, r, Ce), this.tick()) } }, r._handleTransmuxComplete = function (t) { var e, r = "audio", i = this.hls, n = t.remuxResult, a = t.chunkMeta, s = this.getCurrentContext(a); if (s) { var l = s.frag, u = s.part, h = s.level, d = h.details, c = n.audio, f = n.text, g = n.id3, v = n.initSegment; if (!this.fragContextChanged(l) && d) { if (this.state = Ti, this.switchingTrack && c && this.completeAudioSwitch(this.switchingTrack), null != v && v.tracks) { var m = l.initSegment || l; this._bufferInitSegment(h, v.tracks, m, a), i.trigger(S.FRAG_PARSING_INIT_SEGMENT, { frag: m, id: r, tracks: v.tracks }) } if (c) { var p = c.startPTS, y = c.endPTS, E = c.startDTS, T = c.endDTS; u && (u.elementaryStreams[O] = { startPTS: p, endPTS: y, startDTS: E, endDTS: T }), l.setElementaryStreamInfo(O, p, y, E, T), this.bufferFragmentData(c, l, u, a) } if (null != g && null != (e = g.samples) && e.length) { var L = o({ id: r, frag: l, details: d }, g); i.trigger(S.FRAG_PARSING_METADATA, L) } if (f) { var A = o({ id: r, frag: l, details: d }, f); i.trigger(S.FRAG_PARSING_USERDATA, A) } } else this.fragmentTracker.removeFragment(l) } else this.resetWhenMissingContext(a) }, r._bufferInitSegment = function (t, e, r, i) { if (this.state === Ti) { e.video && delete e.video; var n = e.audio; if (n) { n.id = "audio"; var a = t.audioCodec; this.log("Init audio buffer, container:" + n.container + ", codecs[level/parsed]=[" + a + "/" + n.codec + "]"), a && 1 === a.split(",").length && (n.levelCodec = a), this.hls.trigger(S.BUFFER_CODECS, e); var s = n.initSegment; if (null != s && s.byteLength) { var o = { type: "audio", frag: r, part: null, chunkMeta: i, parent: r.type, data: s }; this.hls.trigger(S.BUFFER_APPENDING, o) } this.tickImmediate() } } }, r.loadFragment = function (e, r, i) { var n, a = this.fragmentTracker.getState(e); if (this.fragCurrent = e, this.switchingTrack || a === Vr || a === Wr) if ("initSegment" === e.sn) this._loadInitSegment(e, r); else if (null != (n = r.details) && n.live && !this.initPTS[e.cc]) { this.log("Waiting for video PTS in continuity counter " + e.cc + " of live stream before loading audio fragment " + e.sn + " of level " + this.trackId), this.state = Ri; var s = this.mainDetails; s && s.fragments[0].start !== r.details.fragments[0].start && ii(r.details, s) } else this.startFragRequested = !0, t.prototype.loadFragment.call(this, e, r, i); else this.clearTrackerIfNeeded(e) }, r.flushAudioIfNeeded = function (e) { var r = this.media, i = this.bufferedTrack, n = null == i ? void 0 : i.attrs, a = e.attrs; r && n && (n.CHANNELS !== a.CHANNELS || i.name !== e.name || i.lang !== e.lang) && (this.log("Switching audio track : flushing all audio"), t.prototype.flushMainBuffer.call(this, 0, Number.POSITIVE_INFINITY, "audio"), this.bufferedTrack = null) }, r.completeAudioSwitch = function (t) { var e = this.hls; this.flushAudioIfNeeded(t), this.bufferedTrack = t, this.switchingTrack = null, e.trigger(S.AUDIO_TRACK_SWITCHED, i({}, t)) }, e }(bi), jn = function (t) { function e(e) { var r; return (r = t.call(this, e, "[audio-track-controller]") || this).tracks = [], r.groupIds = null, r.tracksInGroup = [], r.trackId = -1, r.currentTrack = null, r.selectDefaultTrack = !0, r.registerListeners(), r } l(e, t); var r = e.prototype; return r.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.on(S.ERROR, this.onError, this) }, r.unregisterListeners = function () { var t = this.hls; t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.AUDIO_TRACK_LOADED, this.onAudioTrackLoaded, this), t.off(S.ERROR, this.onError, this) }, r.destroy = function () { this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, this.currentTrack = null, t.prototype.destroy.call(this) }, r.onManifestLoading = function () { this.tracks = [], this.tracksInGroup = [], this.groupIds = null, this.currentTrack = null, this.trackId = -1, this.selectDefaultTrack = !0 }, r.onManifestParsed = function (t, e) { this.tracks = e.audioTracks || [] }, r.onAudioTrackLoaded = function (t, e) { var r = e.id, i = e.groupId, n = e.details, a = this.tracksInGroup[r]; if (a && a.groupId === i) { var s = a.details; a.details = e.details, this.log("Audio track " + r + ' "' + a.name + '" lang:' + a.lang + " group:" + i + " loaded [" + n.startSN + "-" + n.endSN + "]"), r === this.trackId && this.playlistLoaded(r, e, s) } else this.warn("Audio track with id:" + r + " and group:" + i + " not found in active group " + (null == a ? void 0 : a.groupId)) }, r.onLevelLoading = function (t, e) { this.switchLevel(e.level) }, r.onLevelSwitching = function (t, e) { this.switchLevel(e.level) }, r.switchLevel = function (t) { var e = this.hls.levels[t]; if (e) { var r = e.audioGroups || null, i = this.groupIds, n = this.currentTrack; if (!r || (null == i ? void 0 : i.length) !== (null == r ? void 0 : r.length) || null != r && r.some((function (t) { return -1 === (null == i ? void 0 : i.indexOf(t)) }))) { this.groupIds = r, this.trackId = -1, this.currentTrack = null; var a = this.tracks.filter((function (t) { return !r || -1 !== r.indexOf(t.groupId) })); if (a.length) this.selectDefaultTrack && !a.some((function (t) { return t.default })) && (this.selectDefaultTrack = !1), a.forEach((function (t, e) { t.id = e })); else if (!n && !this.tracksInGroup.length) return; this.tracksInGroup = a; var s = this.hls.config.audioPreference; if (!n && s) { var o = Nr(s, a, Br); if (o > -1) n = a[o]; else { var l = Nr(s, this.tracks); n = this.tracks[l] } } var u = this.findTrackId(n); -1 === u && n && (u = this.findTrackId(null)); var h = { audioTracks: a }; this.log("Updating audio tracks, " + a.length + " track(s) found in group(s): " + (null == r ? void 0 : r.join(","))), this.hls.trigger(S.AUDIO_TRACKS_UPDATED, h); var d = this.trackId; if (-1 !== u && -1 === d) this.setAudioTrack(u); else if (a.length && -1 === d) { var c, f = new Error("No audio track selected for current audio group-ID(s): " + (null == (c = this.groupIds) ? void 0 : c.join(",")) + " track count: " + a.length); this.warn(f.message), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.AUDIO_TRACK_LOAD_ERROR, fatal: !0, error: f }) } } else this.shouldReloadPlaylist(n) && this.setAudioTrack(this.trackId) } }, r.onError = function (t, e) { !e.fatal && e.context && (e.context.type !== De || e.context.id !== this.trackId || this.groupIds && -1 === this.groupIds.indexOf(e.context.groupId) || (this.requestScheduled = -1, this.checkRetry(e))) }, r.setAudioOption = function (t) { var e = this.hls; if (e.config.audioPreference = t, t) { var r = this.allAudioTracks; if (this.selectDefaultTrack = !1, r.length) { var i = this.currentTrack; if (i && Ur(t, i, Br)) return i; var n = Nr(t, this.tracksInGroup, Br); if (n > -1) { var a = this.tracksInGroup[n]; return this.setAudioTrack(n), a } if (i) { var s = e.loadLevel; -1 === s && (s = e.firstAutoLevel); var o = function (t, e, r, i, n) { var a = e[i], s = e.reduce((function (t, e, r) { var i = e.uri; return (t[i] || (t[i] = [])).push(r), t }), {})[a.uri]; s.length > 1 && (i = Math.max.apply(Math, s)); var o = a.videoRange, l = a.frameRate, u = a.codecSet.substring(0, 4), h = Gr(e, i, (function (e) { if (e.videoRange !== o || e.frameRate !== l || e.codecSet.substring(0, 4) !== u) return !1; var i = e.audioGroups, a = r.filter((function (t) { return !i || -1 !== i.indexOf(t.groupId) })); return Nr(t, a, n) > -1 })); return h > -1 ? h : Gr(e, i, (function (e) { var i = e.audioGroups, a = r.filter((function (t) { return !i || -1 !== i.indexOf(t.groupId) })); return Nr(t, a, n) > -1 })) }(t, e.levels, r, s, Br); if (-1 === o) return null; e.nextLoadLevel = o } if (t.channels || t.audioCodec) { var l = Nr(t, r); if (l > -1) return r[l] } } } return null }, r.setAudioTrack = function (t) { var e = this.tracksInGroup; if (t < 0 || t >= e.length) this.warn("Invalid audio track id: " + t); else { this.clearTimer(), this.selectDefaultTrack = !1; var r = this.currentTrack, n = e[t], a = n.details && !n.details.live; if (!(t === this.trackId && n === r && a || (this.log("Switching to audio-track " + t + ' "' + n.name + '" lang:' + n.lang + " group:" + n.groupId + " channels:" + n.channels), this.trackId = t, this.currentTrack = n, this.hls.trigger(S.AUDIO_TRACK_SWITCHING, i({}, n)), a))) { var s = this.switchParams(n.url, null == r ? void 0 : r.details, n.details); this.loadPlaylist(s) } } }, r.findTrackId = function (t) { for (var e = this.tracksInGroup, r = 0; r < e.length; r++) { var i = e[r]; if ((!this.selectDefaultTrack || i.default) && (!t || Ur(t, i, Br))) return r } if (t) { for (var n = t.name, a = t.lang, s = t.assocLang, o = t.characteristics, l = t.audioCodec, u = t.channels, h = 0; h < e.length; h++)if (Ur({ name: n, lang: a, assocLang: s, characteristics: o, audioCodec: l, channels: u }, e[h], Br)) return h; for (var d = 0; d < e.length; d++) { var c = e[d]; if (Vn(t.attrs, c.attrs, ["LANGUAGE", "ASSOC-LANGUAGE", "CHARACTERISTICS"])) return d } for (var f = 0; f < e.length; f++) { var g = e[f]; if (Vn(t.attrs, g.attrs, ["LANGUAGE"])) return f } } return -1 }, r.loadPlaylist = function (e) { var r = this.currentTrack; if (this.shouldLoadPlaylist(r) && r) { t.prototype.loadPlaylist.call(this); var i = r.id, n = r.groupId, a = r.url; if (e) try { a = e.addDirectives(a) } catch (t) { this.warn("Could not construct new URL with HLS Delivery Directives: " + t) } this.log("loading audio-track playlist " + i + ' "' + r.name + '" lang:' + r.lang + " group:" + n), this.clearTimer(), this.hls.trigger(S.AUDIO_TRACK_LOADING, { url: a, id: i, groupId: n, deliveryDirectives: e || null }) } }, s(e, [{ key: "allAudioTracks", get: function () { return this.tracks } }, { key: "audioTracks", get: function () { return this.tracksInGroup } }, { key: "audioTrack", get: function () { return this.trackId }, set: function (t) { this.selectDefaultTrack = !1, this.setAudioTrack(t) } }]), e }(wr), qn = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e, r, i, "[subtitle-stream-controller]", _e) || this).currentTrackId = -1, n.tracksBuffered = [], n.mainDetails = null, n._registerListeners(), n } l(e, t); var r = e.prototype; return r.onHandlerDestroying = function () { this._unregisterListeners(), t.prototype.onHandlerDestroying.call(this), this.mainDetails = null }, r._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.ERROR, this.onError, this), t.on(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.on(S.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), t.on(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.on(S.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.ERROR, this.onError, this), t.off(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.off(S.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this), t.off(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.off(S.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r.startLoad = function (t) { this.stopLoad(), this.state = vi, this.setInterval(500), this.nextLoadPosition = this.startPosition = this.lastCurrentTime = t, this.tick() }, r.onManifestLoading = function () { this.mainDetails = null, this.fragmentTracker.removeAllFragments() }, r.onMediaDetaching = function () { this.tracksBuffered = [], t.prototype.onMediaDetaching.call(this) }, r.onLevelLoaded = function (t, e) { this.mainDetails = e.details }, r.onSubtitleFragProcessed = function (t, e) { var r = e.frag, i = e.success; if (this.fragPrevious = r, this.state = vi, i) { var n = this.tracksBuffered[this.currentTrackId]; if (n) { for (var a, s = r.start, o = 0; o < n.length; o++)if (s >= n[o].start && s <= n[o].end) { a = n[o]; break } var l = r.start + r.duration; a ? a.end = l : (a = { start: s, end: l }, n.push(a)), this.fragmentTracker.fragBuffered(r), this.fragBufferedComplete(r, null) } } }, r.onBufferFlushing = function (t, e) { var r = e.startOffset, i = e.endOffset; if (0 === r && i !== Number.POSITIVE_INFINITY) { var n = i - 1; if (n <= 0) return; e.endOffsetSubtitles = Math.max(0, n), this.tracksBuffered.forEach((function (t) { for (var e = 0; e < t.length;)if (t[e].end <= n) t.shift(); else { if (!(t[e].start < n)) break; t[e].start = n, e++ } })), this.fragmentTracker.removeFragmentsInRange(r, n, _e) } }, r.onFragBuffered = function (t, e) { var r; this.loadedmetadata || e.frag.type !== we || null != (r = this.media) && r.buffered.length && (this.loadedmetadata = !0) }, r.onError = function (t, e) { var r = e.frag; (null == r ? void 0 : r.type) === _e && (this.fragCurrent && this.fragCurrent.abortRequests(), this.state !== gi && (this.state = vi)) }, r.onSubtitleTracksUpdated = function (t, e) { var r = this, i = e.subtitleTracks; this.levels && Hn(this.levels, i) ? this.levels = i.map((function (t) { return new rr(t) })) : (this.tracksBuffered = [], this.levels = i.map((function (t) { var e = new rr(t); return r.tracksBuffered[e.id] = [], e })), this.fragmentTracker.removeFragmentsInRange(0, Number.POSITIVE_INFINITY, _e), this.fragPrevious = null, this.mediaBuffer = null) }, r.onSubtitleTrackSwitch = function (t, e) { var r; if (this.currentTrackId = e.id, null != (r = this.levels) && r.length && -1 !== this.currentTrackId) { var i = this.levels[this.currentTrackId]; null != i && i.details ? this.mediaBuffer = this.mediaBufferTimeRanges : this.mediaBuffer = null, i && this.setInterval(500) } else this.clearInterval() }, r.onSubtitleTrackLoaded = function (t, e) { var r, i = this.currentTrackId, n = this.levels, a = e.details, s = e.id; if (n) { var o = n[i]; if (!(s >= n.length || s !== i) && o) { this.log("Subtitle track " + s + " loaded [" + a.startSN + "," + a.endSN + "]" + (a.lastPartSn ? "[part-" + a.lastPartSn + "-" + a.lastPartIndex + "]" : "") + ",duration:" + a.totalduration), this.mediaBuffer = this.mediaBufferTimeRanges; var l = 0; if (a.live || null != (r = o.details) && r.live) { var u = this.mainDetails; if (a.deltaUpdateFailed || !u) return; var h, d = u.fragments[0]; o.details ? 0 === (l = this.alignPlaylists(a, o.details, null == (h = this.levelLastLoaded) ? void 0 : h.details)) && d && lr(a, l = d.start) : a.hasProgramDateTime && u.hasProgramDateTime ? (ii(a, u), l = a.fragments[0].start) : d && lr(a, l = d.start) } o.details = a, this.levelLastLoaded = o, this.startFragRequested || !this.mainDetails && a.live || this.setStartPosition(this.mainDetails || a, l), this.tick(), a.live && !this.fragCurrent && this.media && this.state === vi && (yr(null, a.fragments, this.media.currentTime, 0) || (this.warn("Subtitle playlist not aligned with playback"), o.details = void 0)) } } else this.warn("Subtitle tracks were reset while loading level " + s) }, r._handleFragmentLoadComplete = function (t) { var e = this, r = t.frag, i = t.payload, n = r.decryptdata, a = this.hls; if (!this.fragContextChanged(r) && i && i.byteLength > 0 && null != n && n.key && n.iv && "AES-128" === n.method) { var s = performance.now(); this.decrypter.decrypt(new Uint8Array(i), n.key.buffer, n.iv.buffer).catch((function (t) { throw a.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.FRAG_DECRYPT_ERROR, fatal: !1, error: t, reason: t.message, frag: r }), t })).then((function (t) { var e = performance.now(); a.trigger(S.FRAG_DECRYPTED, { frag: r, payload: t, stats: { tstart: s, tdecrypt: e } }) })).catch((function (t) { e.warn(t.name + ": " + t.message), e.state = vi })) } }, r.doTick = function () { if (this.media) { if (this.state === vi) { var t = this.currentTrackId, e = this.levels, r = null == e ? void 0 : e[t]; if (!r || !e.length || !r.details) return; var i = this.config, n = this.getLoadPosition(), a = Jr.bufferedInfo(this.tracksBuffered[this.currentTrackId] || [], n, i.maxBufferHole), s = a.end, o = a.len, l = this.getFwdBufferInfo(this.media, we), u = r.details; if (o > this.getMaxBufferLength(null == l ? void 0 : l.len) + u.levelTargetDuration) return; var h = u.fragments, d = h.length, c = u.edge, f = null, g = this.fragPrevious; if (s < c) { var v = i.maxFragLookUpTolerance, m = s > c - v ? 0 : v; !(f = yr(g, h, Math.max(h[0].start, s), m)) && g && g.start < h[0].start && (f = h[0]) } else f = h[d - 1]; if (!f) return; if ("initSegment" !== (f = this.mapToInitFragWhenRequired(f)).sn) { var p = h[f.sn - u.startSN - 1]; p && p.cc === f.cc && this.fragmentTracker.getState(p) === Vr && (f = p) } this.fragmentTracker.getState(f) === Vr && this.loadFragment(f, r, s) } } else this.state = vi }, r.getMaxBufferLength = function (e) { var r = t.prototype.getMaxBufferLength.call(this); return e ? Math.max(r, e) : r }, r.loadFragment = function (e, r, i) { this.fragCurrent = e, "initSegment" === e.sn ? this._loadInitSegment(e, r) : (this.startFragRequested = !0, t.prototype.loadFragment.call(this, e, r, i)) }, s(e, [{ key: "mediaBufferTimeRanges", get: function () { return new Xn(this.tracksBuffered[this.currentTrackId] || []) } }]), e }(bi), Xn = function (t) { this.buffered = void 0; var e = function (e, r, i) { if ((r >>>= 0) > i - 1) throw new DOMException("Failed to execute '" + e + "' on 'TimeRanges': The index provided (" + r + ") is greater than the maximum bound (" + i + ")"); return t[r][e] }; this.buffered = { get length() { return t.length }, end: function (r) { return e("end", r, t.length) }, start: function (r) { return e("start", r, t.length) } } }, zn = function (t) { function e(e) { var r; return (r = t.call(this, e, "[subtitle-track-controller]") || this).media = null, r.tracks = [], r.groupIds = null, r.tracksInGroup = [], r.trackId = -1, r.currentTrack = null, r.selectDefaultTrack = !0, r.queuedDefaultTrack = -1, r.asyncPollTrackChange = function () { return r.pollTrackChange(0) }, r.useTextTrackPolling = !1, r.subtitlePollingInterval = -1, r._subtitleDisplay = !0, r.onTextTracksChanged = function () { if (r.useTextTrackPolling || self.clearInterval(r.subtitlePollingInterval), r.media && r.hls.config.renderTextTracksNatively) { for (var t = null, e = Be(r.media.textTracks), i = 0; i < e.length; i++)if ("hidden" === e[i].mode) t = e[i]; else if ("showing" === e[i].mode) { t = e[i]; break } var n = r.findTrackForTextTrack(t); r.subtitleTrack !== n && r.setSubtitleTrack(n) } }, r.registerListeners(), r } l(e, t); var r = e.prototype; return r.destroy = function () { this.unregisterListeners(), this.tracks.length = 0, this.tracksInGroup.length = 0, this.currentTrack = null, this.onTextTracksChanged = this.asyncPollTrackChange = null, t.prototype.destroy.call(this) }, r.registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.on(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.on(S.ERROR, this.onError, this) }, r.unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVEL_LOADING, this.onLevelLoading, this), t.off(S.LEVEL_SWITCHING, this.onLevelSwitching, this), t.off(S.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this), t.off(S.ERROR, this.onError, this) }, r.onMediaAttached = function (t, e) { this.media = e.media, this.media && (this.queuedDefaultTrack > -1 && (this.subtitleTrack = this.queuedDefaultTrack, this.queuedDefaultTrack = -1), this.useTextTrackPolling = !(this.media.textTracks && "onchange" in this.media.textTracks), this.useTextTrackPolling ? this.pollTrackChange(500) : this.media.textTracks.addEventListener("change", this.asyncPollTrackChange)) }, r.pollTrackChange = function (t) { self.clearInterval(this.subtitlePollingInterval), this.subtitlePollingInterval = self.setInterval(this.onTextTracksChanged, t) }, r.onMediaDetaching = function () { this.media && (self.clearInterval(this.subtitlePollingInterval), this.useTextTrackPolling || this.media.textTracks.removeEventListener("change", this.asyncPollTrackChange), this.trackId > -1 && (this.queuedDefaultTrack = this.trackId), Be(this.media.textTracks).forEach((function (t) { Ne(t) })), this.subtitleTrack = -1, this.media = null) }, r.onManifestLoading = function () { this.tracks = [], this.groupIds = null, this.tracksInGroup = [], this.trackId = -1, this.currentTrack = null, this.selectDefaultTrack = !0 }, r.onManifestParsed = function (t, e) { this.tracks = e.subtitleTracks }, r.onSubtitleTrackLoaded = function (t, e) { var r = e.id, i = e.groupId, n = e.details, a = this.tracksInGroup[r]; if (a && a.groupId === i) { var s = a.details; a.details = e.details, this.log("Subtitle track " + r + ' "' + a.name + '" lang:' + a.lang + " group:" + i + " loaded [" + n.startSN + "-" + n.endSN + "]"), r === this.trackId && this.playlistLoaded(r, e, s) } else this.warn("Subtitle track with id:" + r + " and group:" + i + " not found in active group " + (null == a ? void 0 : a.groupId)) }, r.onLevelLoading = function (t, e) { this.switchLevel(e.level) }, r.onLevelSwitching = function (t, e) { this.switchLevel(e.level) }, r.switchLevel = function (t) { var e = this.hls.levels[t]; if (e) { var r = e.subtitleGroups || null, i = this.groupIds, n = this.currentTrack; if (!r || (null == i ? void 0 : i.length) !== (null == r ? void 0 : r.length) || null != r && r.some((function (t) { return -1 === (null == i ? void 0 : i.indexOf(t)) }))) { this.groupIds = r, this.trackId = -1, this.currentTrack = null; var a = this.tracks.filter((function (t) { return !r || -1 !== r.indexOf(t.groupId) })); if (a.length) this.selectDefaultTrack && !a.some((function (t) { return t.default })) && (this.selectDefaultTrack = !1), a.forEach((function (t, e) { t.id = e })); else if (!n && !this.tracksInGroup.length) return; this.tracksInGroup = a; var s = this.hls.config.subtitlePreference; if (!n && s) { this.selectDefaultTrack = !1; var o = Nr(s, a); if (o > -1) n = a[o]; else { var l = Nr(s, this.tracks); n = this.tracks[l] } } var u = this.findTrackId(n); -1 === u && n && (u = this.findTrackId(null)); var h = { subtitleTracks: a }; this.log("Updating subtitle tracks, " + a.length + ' track(s) found in "' + (null == r ? void 0 : r.join(",")) + '" group-id'), this.hls.trigger(S.SUBTITLE_TRACKS_UPDATED, h), -1 !== u && -1 === this.trackId && this.setSubtitleTrack(u) } else this.shouldReloadPlaylist(n) && this.setSubtitleTrack(this.trackId) } }, r.findTrackId = function (t) { for (var e = this.tracksInGroup, r = this.selectDefaultTrack, i = 0; i < e.length; i++) { var n = e[i]; if ((!r || n.default) && (r || t) && (!t || Ur(n, t))) return i } if (t) { for (var a = 0; a < e.length; a++) { var s = e[a]; if (Vn(t.attrs, s.attrs, ["LANGUAGE", "ASSOC-LANGUAGE", "CHARACTERISTICS"])) return a } for (var o = 0; o < e.length; o++) { var l = e[o]; if (Vn(t.attrs, l.attrs, ["LANGUAGE"])) return o } } return -1 }, r.findTrackForTextTrack = function (t) { if (t) for (var e = this.tracksInGroup, r = 0; r < e.length; r++)if (Yn(e[r], t)) return r; return -1 }, r.onError = function (t, e) { !e.fatal && e.context && (e.context.type !== Ie || e.context.id !== this.trackId || this.groupIds && -1 === this.groupIds.indexOf(e.context.groupId) || this.checkRetry(e)) }, r.setSubtitleOption = function (t) { if (this.hls.config.subtitlePreference = t, t) { var e = this.allSubtitleTracks; if (this.selectDefaultTrack = !1, e.length) { var r = this.currentTrack; if (r && Ur(t, r)) return r; var i = Nr(t, this.tracksInGroup); if (i > -1) { var n = this.tracksInGroup[i]; return this.setSubtitleTrack(i), n } if (r) return null; var a = Nr(t, e); if (a > -1) return e[a] } } return null }, r.loadPlaylist = function (e) { t.prototype.loadPlaylist.call(this); var r = this.currentTrack; if (this.shouldLoadPlaylist(r) && r) { var i = r.id, n = r.groupId, a = r.url; if (e) try { a = e.addDirectives(a) } catch (t) { this.warn("Could not construct new URL with HLS Delivery Directives: " + t) } this.log("Loading subtitle playlist for id " + i), this.hls.trigger(S.SUBTITLE_TRACK_LOADING, { url: a, id: i, groupId: n, deliveryDirectives: e || null }) } }, r.toggleTrackModes = function () { var t = this.media; if (t) { var e, r = Be(t.textTracks), i = this.currentTrack; if (i && ((e = r.filter((function (t) { return Yn(i, t) }))[0]) || this.warn('Unable to find subtitle TextTrack with name "' + i.name + '" and language "' + i.lang + '"')), [].slice.call(r).forEach((function (t) { "disabled" !== t.mode && t !== e && (t.mode = "disabled") })), e) { var n = this.subtitleDisplay ? "showing" : "hidden"; e.mode !== n && (e.mode = n) } } }, r.setSubtitleTrack = function (t) { var e = this.tracksInGroup; if (this.media) if (t < -1 || t >= e.length || !y(t)) this.warn("Invalid subtitle track id: " + t); else { this.clearTimer(), this.selectDefaultTrack = !1; var r = this.currentTrack, i = e[t] || null; if (this.trackId = t, this.currentTrack = i, this.toggleTrackModes(), i) { var n = !!i.details && !i.details.live; if (t !== this.trackId || i !== r || !n) { this.log("Switching to subtitle-track " + t + (i ? ' "' + i.name + '" lang:' + i.lang + " group:" + i.groupId : "")); var a = i.id, s = i.groupId, o = void 0 === s ? "" : s, l = i.name, u = i.type, h = i.url; this.hls.trigger(S.SUBTITLE_TRACK_SWITCH, { id: a, groupId: o, name: l, type: u, url: h }); var d = this.switchParams(i.url, null == r ? void 0 : r.details, i.details); this.loadPlaylist(d) } } else this.hls.trigger(S.SUBTITLE_TRACK_SWITCH, { id: t }) } else this.queuedDefaultTrack = t }, s(e, [{ key: "subtitleDisplay", get: function () { return this._subtitleDisplay }, set: function (t) { this._subtitleDisplay = t, this.trackId > -1 && this.toggleTrackModes() } }, { key: "allSubtitleTracks", get: function () { return this.tracks } }, { key: "subtitleTracks", get: function () { return this.tracksInGroup } }, { key: "subtitleTrack", get: function () { return this.trackId }, set: function (t) { this.selectDefaultTrack = !1, this.setSubtitleTrack(t) } }]), e }(wr), Qn = function () { function t(t) { this.buffers = void 0, this.queues = { video: [], audio: [], audiovideo: [] }, this.buffers = t } var e = t.prototype; return e.append = function (t, e, r) { var i = this.queues[e]; i.push(t), 1 !== i.length || r || this.executeNext(e) }, e.insertAbort = function (t, e) { this.queues[e].unshift(t), this.executeNext(e) }, e.appendBlocker = function (t) { var e, r = new Promise((function (t) { e = t })), i = { execute: e, onStart: function () { }, onComplete: function () { }, onError: function () { } }; return this.append(i, t), r }, e.executeNext = function (t) { var e = this.queues[t]; if (e.length) { var r = e[0]; try { r.execute() } catch (e) { w.warn('[buffer-operation-queue]: Exception executing "' + t + '" SourceBuffer operation: ' + e), r.onError(e); var i = this.buffers[t]; null != i && i.updating || this.shiftAndExecuteNext(t) } } }, e.shiftAndExecuteNext = function (t) { this.queues[t].shift(), this.executeNext(t) }, e.current = function (t) { return this.queues[t][0] }, t }(), Jn = /(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/, $n = function () { function t(t) { var e = this; this.details = null, this._objectUrl = null, this.operationQueue = void 0, this.listeners = void 0, this.hls = void 0, this.bufferCodecEventsExpected = 0, this._bufferCodecEventsTotal = 0, this.media = null, this.mediaSource = null, this.lastMpegAudioChunk = null, this.appendSource = void 0, this.appendErrors = { audio: 0, video: 0, audiovideo: 0 }, this.tracks = {}, this.pendingTracks = {}, this.sourceBuffer = void 0, this.log = void 0, this.warn = void 0, this.error = void 0, this._onEndStreaming = function (t) { e.hls && e.hls.pauseBuffering() }, this._onStartStreaming = function (t) { e.hls && e.hls.resumeBuffering() }, this._onMediaSourceOpen = function () { var t = e.media, r = e.mediaSource; e.log("Media source opened"), t && (t.removeEventListener("emptied", e._onMediaEmptied), e.updateMediaElementDuration(), e.hls.trigger(S.MEDIA_ATTACHED, { media: t, mediaSource: r })), r && r.removeEventListener("sourceopen", e._onMediaSourceOpen), e.checkPendingTracks() }, this._onMediaSourceClose = function () { e.log("Media source closed") }, this._onMediaSourceEnded = function () { e.log("Media source ended") }, this._onMediaEmptied = function () { var t = e.mediaSrc, r = e._objectUrl; t !== r && w.error("Media element src was set while attaching MediaSource (" + r + " > " + t + ")") }, this.hls = t; var r, i = "[buffer-controller]"; this.appendSource = (r = ee(t.config.preferManagedMediaSource), "undefined" != typeof self && r === self.ManagedMediaSource), this.log = w.log.bind(w, i), this.warn = w.warn.bind(w, i), this.error = w.error.bind(w, i), this._initSourceBuffer(), this.registerListeners() } var e = t.prototype; return e.hasSourceTypes = function () { return this.getSourceBufferTypes().length > 0 || Object.keys(this.pendingTracks).length > 0 }, e.destroy = function () { this.unregisterListeners(), this.details = null, this.lastMpegAudioChunk = null, this.hls = null }, e.registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.BUFFER_RESET, this.onBufferReset, this), t.on(S.BUFFER_APPENDING, this.onBufferAppending, this), t.on(S.BUFFER_CODECS, this.onBufferCodecs, this), t.on(S.BUFFER_EOS, this.onBufferEos, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.on(S.LEVEL_UPDATED, this.onLevelUpdated, this), t.on(S.FRAG_PARSED, this.onFragParsed, this), t.on(S.FRAG_CHANGED, this.onFragChanged, this) }, e.unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.BUFFER_RESET, this.onBufferReset, this), t.off(S.BUFFER_APPENDING, this.onBufferAppending, this), t.off(S.BUFFER_CODECS, this.onBufferCodecs, this), t.off(S.BUFFER_EOS, this.onBufferEos, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), t.off(S.LEVEL_UPDATED, this.onLevelUpdated, this), t.off(S.FRAG_PARSED, this.onFragParsed, this), t.off(S.FRAG_CHANGED, this.onFragChanged, this) }, e._initSourceBuffer = function () { this.sourceBuffer = {}, this.operationQueue = new Qn(this.sourceBuffer), this.listeners = { audio: [], video: [], audiovideo: [] }, this.appendErrors = { audio: 0, video: 0, audiovideo: 0 }, this.lastMpegAudioChunk = null }, e.onManifestLoading = function () { this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = 0, this.details = null }, e.onManifestParsed = function (t, e) { var r = 2; (e.audio && !e.video || !e.altAudio) && (r = 1), this.bufferCodecEventsExpected = this._bufferCodecEventsTotal = r, this.log(this.bufferCodecEventsExpected + " bufferCodec event(s) expected") }, e.onMediaAttaching = function (t, e) { var r = this.media = e.media, i = ee(this.appendSource); if (r && i) { var n, a = this.mediaSource = new i; this.log("created media source: " + (null == (n = a.constructor) ? void 0 : n.name)), a.addEventListener("sourceopen", this._onMediaSourceOpen), a.addEventListener("sourceended", this._onMediaSourceEnded), a.addEventListener("sourceclose", this._onMediaSourceClose), this.appendSource && (a.addEventListener("startstreaming", this._onStartStreaming), a.addEventListener("endstreaming", this._onEndStreaming)); var s = this._objectUrl = self.URL.createObjectURL(a); if (this.appendSource) try { r.removeAttribute("src"); var o = self.ManagedMediaSource; r.disableRemotePlayback = r.disableRemotePlayback || o && a instanceof o, Zn(r), function (t, e) { var r = self.document.createElement("source"); r.type = "video/mp4", r.src = e, t.appendChild(r) }(r, s), r.load() } catch (t) { r.src = s } else r.src = s; r.addEventListener("emptied", this._onMediaEmptied) } }, e.onMediaDetaching = function () { var t = this.media, e = this.mediaSource, r = this._objectUrl; if (e) { if (this.log("media source detaching"), "open" === e.readyState) try { e.endOfStream() } catch (t) { this.warn("onMediaDetaching: " + t.message + " while calling endOfStream") } this.onBufferReset(), e.removeEventListener("sourceopen", this._onMediaSourceOpen), e.removeEventListener("sourceended", this._onMediaSourceEnded), e.removeEventListener("sourceclose", this._onMediaSourceClose), this.appendSource && (e.removeEventListener("startstreaming", this._onStartStreaming), e.removeEventListener("endstreaming", this._onEndStreaming)), t && (t.removeEventListener("emptied", this._onMediaEmptied), r && self.URL.revokeObjectURL(r), this.mediaSrc === r ? (t.removeAttribute("src"), this.appendSource && Zn(t), t.load()) : this.warn("media|source.src was changed by a third party - skip cleanup")), this.mediaSource = null, this.media = null, this._objectUrl = null, this.bufferCodecEventsExpected = this._bufferCodecEventsTotal, this.pendingTracks = {}, this.tracks = {} } this.hls.trigger(S.MEDIA_DETACHED, void 0) }, e.onBufferReset = function () { var t = this; this.getSourceBufferTypes().forEach((function (e) { t.resetBuffer(e) })), this._initSourceBuffer() }, e.resetBuffer = function (t) { var e = this.sourceBuffer[t]; try { var r; e && (this.removeBufferListeners(t), this.sourceBuffer[t] = void 0, null != (r = this.mediaSource) && r.sourceBuffers.length && this.mediaSource.removeSourceBuffer(e)) } catch (e) { this.warn("onBufferReset " + t, e) } }, e.onBufferCodecs = function (t, e) { var r = this, i = this.getSourceBufferTypes().length, n = Object.keys(e); if (n.forEach((function (t) { if (i) { var n = r.tracks[t]; if (n && "function" == typeof n.buffer.changeType) { var a, s = e[t], o = s.id, l = s.codec, u = s.levelCodec, h = s.container, d = s.metadata, c = de(n.codec, n.levelCodec), f = null == c ? void 0 : c.replace(Jn, "$1"), g = de(l, u), v = null == (a = g) ? void 0 : a.replace(Jn, "$1"); if (g && f !== v) { "audio" === t.slice(0, 5) && (g = he(g, r.appendSource)); var m = h + ";codecs=" + g; r.appendChangeType(t, m), r.log("switching codec " + c + " to " + g), r.tracks[t] = { buffer: n.buffer, codec: l, container: h, levelCodec: u, metadata: d, id: o } } } } else r.pendingTracks[t] = e[t] })), !i) { var a = Math.max(this.bufferCodecEventsExpected - 1, 0); this.bufferCodecEventsExpected !== a && (this.log(a + " bufferCodec event(s) expected " + n.join(",")), this.bufferCodecEventsExpected = a), this.mediaSource && "open" === this.mediaSource.readyState && this.checkPendingTracks() } }, e.appendChangeType = function (t, e) { var r = this, i = this.operationQueue, n = { execute: function () { var n = r.sourceBuffer[t]; n && (r.log("changing " + t + " sourceBuffer type to " + e), n.changeType(e)), i.shiftAndExecuteNext(t) }, onStart: function () { }, onComplete: function () { }, onError: function (e) { r.warn("Failed to change " + t + " SourceBuffer type", e) } }; i.append(n, t, !!this.pendingTracks[t]) }, e.onBufferAppending = function (t, e) { var r = this, i = this.hls, n = this.operationQueue, a = this.tracks, s = e.data, o = e.type, l = e.frag, u = e.part, h = e.chunkMeta, d = h.buffering[o], c = self.performance.now(); d.start = c; var f = l.stats.buffering, g = u ? u.stats.buffering : null; 0 === f.start && (f.start = c), g && 0 === g.start && (g.start = c); var v = a.audio, m = !1; "audio" === o && "audio/mpeg" === (null == v ? void 0 : v.container) && (m = !this.lastMpegAudioChunk || 1 === h.id || this.lastMpegAudioChunk.sn !== h.sn, this.lastMpegAudioChunk = h); var p = l.start, y = { execute: function () { if (d.executeStart = self.performance.now(), m) { var t = r.sourceBuffer[o]; if (t) { var e = p - t.timestampOffset; Math.abs(e) >= .1 && (r.log("Updating audio SourceBuffer timestampOffset to " + p + " (delta: " + e + ") sn: " + l.sn + ")"), t.timestampOffset = p) } } r.appendExecutor(s, o) }, onStart: function () { }, onComplete: function () { var t = self.performance.now(); d.executeEnd = d.end = t, 0 === f.first && (f.first = t), g && 0 === g.first && (g.first = t); var e = r.sourceBuffer, i = {}; for (var n in e) i[n] = Jr.getBuffered(e[n]); r.appendErrors[o] = 0, "audio" === o || "video" === o ? r.appendErrors.audiovideo = 0 : (r.appendErrors.audio = 0, r.appendErrors.video = 0), r.hls.trigger(S.BUFFER_APPENDED, { type: o, frag: l, part: u, chunkMeta: h, parent: l.type, timeRanges: i }) }, onError: function (t) { var e = { type: L.MEDIA_ERROR, parent: l.type, details: A.BUFFER_APPEND_ERROR, sourceBufferName: o, frag: l, part: u, chunkMeta: h, error: t, err: t, fatal: !1 }; if (t.code === DOMException.QUOTA_EXCEEDED_ERR) e.details = A.BUFFER_FULL_ERROR; else { var n = ++r.appendErrors[o]; e.details = A.BUFFER_APPEND_ERROR, r.warn("Failed " + n + "/" + i.config.appendErrorMaxRetry + ' times to append segment in "' + o + '" sourceBuffer'), n >= i.config.appendErrorMaxRetry && (e.fatal = !0) } i.trigger(S.ERROR, e) } }; n.append(y, o, !!this.pendingTracks[o]) }, e.onBufferFlushing = function (t, e) { var r = this, i = this.operationQueue, n = function (t) { return { execute: r.removeExecutor.bind(r, t, e.startOffset, e.endOffset), onStart: function () { }, onComplete: function () { r.hls.trigger(S.BUFFER_FLUSHED, { type: t }) }, onError: function (e) { r.warn("Failed to remove from " + t + " SourceBuffer", e) } } }; e.type ? i.append(n(e.type), e.type) : this.getSourceBufferTypes().forEach((function (t) { i.append(n(t), t) })) }, e.onFragParsed = function (t, e) { var r = this, i = e.frag, n = e.part, a = [], s = n ? n.elementaryStreams : i.elementaryStreams; s[U] ? a.push("audiovideo") : (s[O] && a.push("audio"), s[N] && a.push("video")), 0 === a.length && this.warn("Fragments must have at least one ElementaryStreamType set. type: " + i.type + " level: " + i.level + " sn: " + i.sn), this.blockBuffers((function () { var t = self.performance.now(); i.stats.buffering.end = t, n && (n.stats.buffering.end = t); var e = n ? n.stats : i.stats; r.hls.trigger(S.FRAG_BUFFERED, { frag: i, part: n, stats: e, id: i.type }) }), a) }, e.onFragChanged = function (t, e) { this.trimBuffers() }, e.onBufferEos = function (t, e) { var r = this; this.getSourceBufferTypes().reduce((function (t, i) { var n = r.sourceBuffer[i]; return !n || e.type && e.type !== i || (n.ending = !0, n.ended || (n.ended = !0, r.log(i + " sourceBuffer now EOS"))), t && !(n && !n.ended) }), !0) && (this.log("Queueing mediaSource.endOfStream()"), this.blockBuffers((function () { r.getSourceBufferTypes().forEach((function (t) { var e = r.sourceBuffer[t]; e && (e.ending = !1) })); var t = r.mediaSource; t && "open" === t.readyState ? (r.log("Calling mediaSource.endOfStream()"), t.endOfStream()) : t && r.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: " + t.readyState) }))) }, e.onLevelUpdated = function (t, e) { var r = e.details; r.fragments.length && (this.details = r, this.getSourceBufferTypes().length ? this.blockBuffers(this.updateMediaElementDuration.bind(this)) : this.updateMediaElementDuration()) }, e.trimBuffers = function () { var t = this.hls, e = this.details, r = this.media; if (r && null !== e && this.getSourceBufferTypes().length) { var i = t.config, n = r.currentTime, a = e.levelTargetDuration, s = e.live && null !== i.liveBackBufferLength ? i.liveBackBufferLength : i.backBufferLength; if (y(s) && s > 0) { var o = Math.max(s, a), l = Math.floor(n / a) * a - o; this.flushBackBuffer(n, a, l) } if (y(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) { var u = Math.max(i.maxBufferLength, i.frontBufferFlushThreshold), h = Math.max(u, a), d = Math.floor(n / a) * a + h; this.flushFrontBuffer(n, a, d) } } }, e.flushBackBuffer = function (t, e, r) { var i = this, n = this.details, a = this.sourceBuffer; this.getSourceBufferTypes().forEach((function (s) { var o = a[s]; if (o) { var l = Jr.getBuffered(o); if (l.length > 0 && r > l.start(0)) { if (i.hls.trigger(S.BACK_BUFFER_REACHED, { bufferEnd: r }), null != n && n.live) i.hls.trigger(S.LIVE_BACK_BUFFER_REACHED, { bufferEnd: r }); else if (o.ended && l.end(l.length - 1) - t < 2 * e) return void i.log("Cannot flush " + s + " back buffer while SourceBuffer is in ended state"); i.hls.trigger(S.BUFFER_FLUSHING, { startOffset: 0, endOffset: r, type: s }) } } })) }, e.flushFrontBuffer = function (t, e, r) { var i = this, n = this.sourceBuffer; this.getSourceBufferTypes().forEach((function (a) { var s = n[a]; if (s) { var o = Jr.getBuffered(s), l = o.length; if (l < 2) return; var u = o.start(l - 1), h = o.end(l - 1); if (r > u || t >= u && t <= h) return; if (s.ended && t - h < 2 * e) return void i.log("Cannot flush " + a + " front buffer while SourceBuffer is in ended state"); i.hls.trigger(S.BUFFER_FLUSHING, { startOffset: u, endOffset: 1 / 0, type: a }) } })) }, e.updateMediaElementDuration = function () { if (this.details && this.media && this.mediaSource && "open" === this.mediaSource.readyState) { var t = this.details, e = this.hls, r = this.media, i = this.mediaSource, n = t.fragments[0].start + t.totalduration, a = r.duration, s = y(i.duration) ? i.duration : 0; t.live && e.config.liveDurationInfinity ? (i.duration = 1 / 0, this.updateSeekableRange(t)) : (n > s && n > a || !y(a)) && (this.log("Updating Media Source duration to " + n.toFixed(3)), i.duration = n) } }, e.updateSeekableRange = function (t) { var e = this.mediaSource, r = t.fragments; if (r.length && t.live && null != e && e.setLiveSeekableRange) { var i = Math.max(0, r[0].start), n = Math.max(i, i + t.totalduration); this.log("Media Source duration is set to " + e.duration + ". Setting seekable range to " + i + "-" + n + "."), e.setLiveSeekableRange(i, n) } }, e.checkPendingTracks = function () { var t = this.bufferCodecEventsExpected, e = this.operationQueue, r = this.pendingTracks, i = Object.keys(r).length; if (i && (!t || 2 === i || "audiovideo" in r)) { this.createSourceBuffers(r), this.pendingTracks = {}; var n = this.getSourceBufferTypes(); if (n.length) this.hls.trigger(S.BUFFER_CREATED, { tracks: this.tracks }), n.forEach((function (t) { e.executeNext(t) })); else { var a = new Error("could not create source buffer for media codec(s)"); this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_INCOMPATIBLE_CODECS_ERROR, fatal: !0, error: a, reason: a.message }) } } }, e.createSourceBuffers = function (t) { var e = this, r = this.sourceBuffer, i = this.mediaSource; if (!i) throw Error("createSourceBuffers called when mediaSource was null"); var n = function (n) { if (!r[n]) { var a, s = t[n]; if (!s) throw Error("source buffer exists for track " + n + ", however track does not"); var o = -1 === (null == (a = s.levelCodec) ? void 0 : a.indexOf(",")) ? s.levelCodec : s.codec; o && "audio" === n.slice(0, 5) && (o = he(o, e.appendSource)); var l = s.container + ";codecs=" + o; e.log("creating sourceBuffer(" + l + ")"); try { var u = r[n] = i.addSourceBuffer(l), h = n; e.addBufferListener(h, "updatestart", e._onSBUpdateStart), e.addBufferListener(h, "updateend", e._onSBUpdateEnd), e.addBufferListener(h, "error", e._onSBUpdateError), e.appendSource && e.addBufferListener(h, "bufferedchange", (function (t, r) { var i = r.removedRanges; null != i && i.length && e.hls.trigger(S.BUFFER_FLUSHED, { type: n }) })), e.tracks[n] = { buffer: u, codec: o, container: s.container, levelCodec: s.levelCodec, metadata: s.metadata, id: s.id } } catch (t) { e.error("error while trying to add sourceBuffer: " + t.message), e.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_ADD_CODEC_ERROR, fatal: !1, error: t, sourceBufferName: n, mimeType: l }) } } }; for (var a in t) n(a) }, e._onSBUpdateStart = function (t) { this.operationQueue.current(t).onStart() }, e._onSBUpdateEnd = function (t) { var e; if ("closed" !== (null == (e = this.mediaSource) ? void 0 : e.readyState)) { var r = this.operationQueue; r.current(t).onComplete(), r.shiftAndExecuteNext(t) } else this.resetBuffer(t) }, e._onSBUpdateError = function (t, e) { var r, i = new Error(t + " SourceBuffer error. MediaSource readyState: " + (null == (r = this.mediaSource) ? void 0 : r.readyState)); this.error("" + i, e), this.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_APPENDING_ERROR, sourceBufferName: t, error: i, fatal: !1 }); var n = this.operationQueue.current(t); n && n.onError(i) }, e.removeExecutor = function (t, e, r) { var i = this.media, n = this.mediaSource, a = this.operationQueue, s = this.sourceBuffer[t]; if (!i || !n || !s) return this.warn("Attempting to remove from the " + t + " SourceBuffer, but it does not exist"), void a.shiftAndExecuteNext(t); var o = y(i.duration) ? i.duration : 1 / 0, l = y(n.duration) ? n.duration : 1 / 0, u = Math.max(0, e), h = Math.min(r, o, l); h > u && (!s.ending || s.ended) ? (s.ended = !1, this.log("Removing [" + u + "," + h + "] from the " + t + " SourceBuffer"), s.remove(u, h)) : a.shiftAndExecuteNext(t) }, e.appendExecutor = function (t, e) { var r = this.sourceBuffer[e]; if (r) r.ended = !1, r.appendBuffer(t); else if (!this.pendingTracks[e]) throw new Error("Attempting to append to the " + e + " SourceBuffer, but it does not exist") }, e.blockBuffers = function (t, e) { var r = this; if (void 0 === e && (e = this.getSourceBufferTypes()), !e.length) return this.log("Blocking operation requested, but no SourceBuffers exist"), void Promise.resolve().then(t); var i = this.operationQueue, n = e.map((function (t) { return i.appendBlocker(t) })); Promise.all(n).then((function () { t(), e.forEach((function (t) { var e = r.sourceBuffer[t]; null != e && e.updating || i.shiftAndExecuteNext(t) })) })) }, e.getSourceBufferTypes = function () { return Object.keys(this.sourceBuffer) }, e.addBufferListener = function (t, e, r) { var i = this.sourceBuffer[t]; if (i) { var n = r.bind(this, t); this.listeners[t].push({ event: e, listener: n }), i.addEventListener(e, n) } }, e.removeBufferListeners = function (t) { var e = this.sourceBuffer[t]; e && this.listeners[t].forEach((function (t) { e.removeEventListener(t.event, t.listener) })) }, s(t, [{ key: "mediaSrc", get: function () { var t, e = (null == (t = this.media) ? void 0 : t.firstChild) || this.media; return null == e ? void 0 : e.src } }]), t }(); function Zn(t) { var e = t.querySelectorAll("source");[].slice.call(e).forEach((function (e) { t.removeChild(e) })) } var ta = { 42: 225, 92: 233, 94: 237, 95: 243, 96: 250, 123: 231, 124: 247, 125: 209, 126: 241, 127: 9608, 128: 174, 129: 176, 130: 189, 131: 191, 132: 8482, 133: 162, 134: 163, 135: 9834, 136: 224, 137: 32, 138: 232, 139: 226, 140: 234, 141: 238, 142: 244, 143: 251, 144: 193, 145: 201, 146: 211, 147: 218, 148: 220, 149: 252, 150: 8216, 151: 161, 152: 42, 153: 8217, 154: 9473, 155: 169, 156: 8480, 157: 8226, 158: 8220, 159: 8221, 160: 192, 161: 194, 162: 199, 163: 200, 164: 202, 165: 203, 166: 235, 167: 206, 168: 207, 169: 239, 170: 212, 171: 217, 172: 249, 173: 219, 174: 171, 175: 187, 176: 195, 177: 227, 178: 205, 179: 204, 180: 236, 181: 210, 182: 242, 183: 213, 184: 245, 185: 123, 186: 125, 187: 92, 188: 94, 189: 95, 190: 124, 191: 8764, 192: 196, 193: 228, 194: 214, 195: 246, 196: 223, 197: 165, 198: 164, 199: 9475, 200: 197, 201: 229, 202: 216, 203: 248, 204: 9487, 205: 9491, 206: 9495, 207: 9499 }, ea = function (t) { var e = t; return ta.hasOwnProperty(t) && (e = ta[t]), String.fromCharCode(e) }, ra = 15, ia = 100, na = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 }, aa = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 }, sa = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 }, oa = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 }, la = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"], ua = function () { function t() { this.time = null, this.verboseLevel = 0 } return t.prototype.log = function (t, e) { if (this.verboseLevel >= t) { var r = "function" == typeof e ? e() : e; w.log(this.time + " [" + t + "] " + r) } }, t }(), ha = function (t) { for (var e = [], r = 0; r < t.length; r++)e.push(t[r].toString(16)); return e }, da = function () { function t() { this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1 } var e = t.prototype; return e.reset = function () { this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1 }, e.setStyles = function (t) { for (var e = ["foreground", "underline", "italics", "background", "flash"], r = 0; r < e.length; r++) { var i = e[r]; t.hasOwnProperty(i) && (this[i] = t[i]) } }, e.isDefault = function () { return "white" === this.foreground && !this.underline && !this.italics && "black" === this.background && !this.flash }, e.equals = function (t) { return this.foreground === t.foreground && this.underline === t.underline && this.italics === t.italics && this.background === t.background && this.flash === t.flash }, e.copy = function (t) { this.foreground = t.foreground, this.underline = t.underline, this.italics = t.italics, this.background = t.background, this.flash = t.flash }, e.toString = function () { return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash }, t }(), ca = function () { function t() { this.uchar = " ", this.penState = new da } var e = t.prototype; return e.reset = function () { this.uchar = " ", this.penState.reset() }, e.setChar = function (t, e) { this.uchar = t, this.penState.copy(e) }, e.setPenState = function (t) { this.penState.copy(t) }, e.equals = function (t) { return this.uchar === t.uchar && this.penState.equals(t.penState) }, e.copy = function (t) { this.uchar = t.uchar, this.penState.copy(t.penState) }, e.isEmpty = function () { return " " === this.uchar && this.penState.isDefault() }, t }(), fa = function () { function t(t) { this.chars = [], this.pos = 0, this.currPenState = new da, this.cueStartTime = null, this.logger = void 0; for (var e = 0; e < ia; e++)this.chars.push(new ca); this.logger = t } var e = t.prototype; return e.equals = function (t) { for (var e = 0; e < ia; e++)if (!this.chars[e].equals(t.chars[e])) return !1; return !0 }, e.copy = function (t) { for (var e = 0; e < ia; e++)this.chars[e].copy(t.chars[e]) }, e.isEmpty = function () { for (var t = !0, e = 0; e < ia; e++)if (!this.chars[e].isEmpty()) { t = !1; break } return t }, e.setCursor = function (t) { this.pos !== t && (this.pos = t), this.pos < 0 ? (this.logger.log(3, "Negative cursor position " + this.pos), this.pos = 0) : this.pos > ia && (this.logger.log(3, "Too large cursor position " + this.pos), this.pos = ia) }, e.moveCursor = function (t) { var e = this.pos + t; if (t > 1) for (var r = this.pos + 1; r < e + 1; r++)this.chars[r].setPenState(this.currPenState); this.setCursor(e) }, e.backSpace = function () { this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState) }, e.insertChar = function (t) { var e = this; t >= 144 && this.backSpace(); var r = ea(t); this.pos >= ia ? this.logger.log(0, (function () { return "Cannot insert " + t.toString(16) + " (" + r + ") at position " + e.pos + ". Skipping it!" })) : (this.chars[this.pos].setChar(r, this.currPenState), this.moveCursor(1)) }, e.clearFromPos = function (t) { var e; for (e = t; e < ia; e++)this.chars[e].reset() }, e.clear = function () { this.clearFromPos(0), this.pos = 0, this.currPenState.reset() }, e.clearToEndOfRow = function () { this.clearFromPos(this.pos) }, e.getTextString = function () { for (var t = [], e = !0, r = 0; r < ia; r++) { var i = this.chars[r].uchar; " " !== i && (e = !1), t.push(i) } return e ? "" : t.join("") }, e.setPenStyles = function (t) { this.currPenState.setStyles(t), this.chars[this.pos].setPenState(this.currPenState) }, t }(), ga = function () { function t(t) { this.rows = [], this.currRow = 14, this.nrRollUpRows = null, this.lastOutputScreen = null, this.logger = void 0; for (var e = 0; e < ra; e++)this.rows.push(new fa(t)); this.logger = t } var e = t.prototype; return e.reset = function () { for (var t = 0; t < ra; t++)this.rows[t].clear(); this.currRow = 14 }, e.equals = function (t) { for (var e = !0, r = 0; r < ra; r++)if (!this.rows[r].equals(t.rows[r])) { e = !1; break } return e }, e.copy = function (t) { for (var e = 0; e < ra; e++)this.rows[e].copy(t.rows[e]) }, e.isEmpty = function () { for (var t = !0, e = 0; e < ra; e++)if (!this.rows[e].isEmpty()) { t = !1; break } return t }, e.backSpace = function () { this.rows[this.currRow].backSpace() }, e.clearToEndOfRow = function () { this.rows[this.currRow].clearToEndOfRow() }, e.insertChar = function (t) { this.rows[this.currRow].insertChar(t) }, e.setPen = function (t) { this.rows[this.currRow].setPenStyles(t) }, e.moveCursor = function (t) { this.rows[this.currRow].moveCursor(t) }, e.setCursor = function (t) { this.logger.log(2, "setCursor: " + t), this.rows[this.currRow].setCursor(t) }, e.setPAC = function (t) { this.logger.log(2, (function () { return "pacData = " + JSON.stringify(t) })); var e = t.row - 1; if (this.nrRollUpRows && e < this.nrRollUpRows - 1 && (e = this.nrRollUpRows - 1), this.nrRollUpRows && this.currRow !== e) { for (var r = 0; r < ra; r++)this.rows[r].clear(); var i = this.currRow + 1 - this.nrRollUpRows, n = this.lastOutputScreen; if (n) { var a = n.rows[i].cueStartTime, s = this.logger.time; if (null !== a && null !== s && a < s) for (var o = 0; o < this.nrRollUpRows; o++)this.rows[e - this.nrRollUpRows + o + 1].copy(n.rows[i + o]) } } this.currRow = e; var l = this.rows[this.currRow]; if (null !== t.indent) { var u = t.indent, h = Math.max(u - 1, 0); l.setCursor(t.indent), t.color = l.chars[h].penState.foreground } var d = { foreground: t.color, underline: t.underline, italics: t.italics, background: "black", flash: !1 }; this.setPen(d) }, e.setBkgData = function (t) { this.logger.log(2, (function () { return "bkgData = " + JSON.stringify(t) })), this.backSpace(), this.setPen(t), this.insertChar(32) }, e.setRollUpRows = function (t) { this.nrRollUpRows = t }, e.rollUp = function () { var t = this; if (null !== this.nrRollUpRows) { this.logger.log(1, (function () { return t.getDisplayText() })); var e = this.currRow + 1 - this.nrRollUpRows, r = this.rows.splice(e, 1)[0]; r.clear(), this.rows.splice(this.currRow, 0, r), this.logger.log(2, "Rolling up") } else this.logger.log(3, "roll_up but nrRollUpRows not set yet") }, e.getDisplayText = function (t) { t = t || !1; for (var e = [], r = "", i = -1, n = 0; n < ra; n++) { var a = this.rows[n].getTextString(); a && (i = n + 1, t ? e.push("Row " + i + ": '" + a + "'") : e.push(a.trim())) } return e.length > 0 && (r = t ? "[" + e.join(" | ") + "]" : e.join("\n")), r }, e.getTextAndFormat = function () { return this.rows }, t }(), va = function () { function t(t, e, r) { this.chNr = void 0, this.outputFilter = void 0, this.mode = void 0, this.verbose = void 0, this.displayedMemory = void 0, this.nonDisplayedMemory = void 0, this.lastOutputScreen = void 0, this.currRollUpRow = void 0, this.writeScreen = void 0, this.cueStartTime = void 0, this.logger = void 0, this.chNr = t, this.outputFilter = e, this.mode = null, this.verbose = 0, this.displayedMemory = new ga(r), this.nonDisplayedMemory = new ga(r), this.lastOutputScreen = new ga(r), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.logger = r } var e = t.prototype; return e.reset = function () { this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), this.outputFilter.reset(), this.currRollUpRow = this.displayedMemory.rows[14], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null }, e.getHandler = function () { return this.outputFilter }, e.setHandler = function (t) { this.outputFilter = t }, e.setPAC = function (t) { this.writeScreen.setPAC(t) }, e.setBkgData = function (t) { this.writeScreen.setBkgData(t) }, e.setMode = function (t) { t !== this.mode && (this.mode = t, this.logger.log(2, (function () { return "MODE=" + t })), "MODE_POP-ON" === this.mode ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), "MODE_ROLL-UP" !== this.mode && (this.displayedMemory.nrRollUpRows = null, this.nonDisplayedMemory.nrRollUpRows = null), this.mode = t) }, e.insertChars = function (t) { for (var e = this, r = 0; r < t.length; r++)this.writeScreen.insertChar(t[r]); var i = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP"; this.logger.log(2, (function () { return i + ": " + e.writeScreen.getDisplayText(!0) })), "MODE_PAINT-ON" !== this.mode && "MODE_ROLL-UP" !== this.mode || (this.logger.log(1, (function () { return "DISPLAYED: " + e.displayedMemory.getDisplayText(!0) })), this.outputDataUpdate()) }, e.ccRCL = function () { this.logger.log(2, "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON") }, e.ccBS = function () { this.logger.log(2, "BS - BackSpace"), "MODE_TEXT" !== this.mode && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate()) }, e.ccAOF = function () { }, e.ccAON = function () { }, e.ccDER = function () { this.logger.log(2, "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate() }, e.ccRU = function (t) { this.logger.log(2, "RU(" + t + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(t) }, e.ccFON = function () { this.logger.log(2, "FON - Flash On"), this.writeScreen.setPen({ flash: !0 }) }, e.ccRDC = function () { this.logger.log(2, "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON") }, e.ccTR = function () { this.logger.log(2, "TR"), this.setMode("MODE_TEXT") }, e.ccRTD = function () { this.logger.log(2, "RTD"), this.setMode("MODE_TEXT") }, e.ccEDM = function () { this.logger.log(2, "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate(!0) }, e.ccCR = function () { this.logger.log(2, "CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate(!0) }, e.ccENM = function () { this.logger.log(2, "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset() }, e.ccEOC = function () { var t = this; if (this.logger.log(2, "EOC - End Of Caption"), "MODE_POP-ON" === this.mode) { var e = this.displayedMemory; this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = e, this.writeScreen = this.nonDisplayedMemory, this.logger.log(1, (function () { return "DISP: " + t.displayedMemory.getDisplayText() })) } this.outputDataUpdate(!0) }, e.ccTO = function (t) { this.logger.log(2, "TO(" + t + ") - Tab Offset"), this.writeScreen.moveCursor(t) }, e.ccMIDROW = function (t) { var e = { flash: !1 }; if (e.underline = t % 2 == 1, e.italics = t >= 46, e.italics) e.foreground = "white"; else { var r = Math.floor(t / 2) - 16; e.foreground = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"][r] } this.logger.log(2, "MIDROW: " + JSON.stringify(e)), this.writeScreen.setPen(e) }, e.outputDataUpdate = function (t) { void 0 === t && (t = !1); var e = this.logger.time; null !== e && this.outputFilter && (null !== this.cueStartTime || this.displayedMemory.isEmpty() ? this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue(this.cueStartTime, e, this.lastOutputScreen), t && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(), this.cueStartTime = this.displayedMemory.isEmpty() ? null : e) : this.cueStartTime = e, this.lastOutputScreen.copy(this.displayedMemory)) }, e.cueSplitAtTime = function (t) { this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, t, this.displayedMemory), this.cueStartTime = t)) }, t }(), ma = function () { function t(t, e, r) { this.channels = void 0, this.currentChannel = 0, this.cmdHistory = { a: null, b: null }, this.logger = void 0; var i = this.logger = new ua; this.channels = [null, new va(t, e, i), new va(t + 1, r, i)] } var e = t.prototype; return e.getHandler = function (t) { return this.channels[t].getHandler() }, e.setHandler = function (t, e) { this.channels[t].setHandler(e) }, e.addData = function (t, e) { var r, i, n, a = !1; this.logger.time = t; for (var s = 0; s < e.length; s += 2)if (i = 127 & e[s], n = 127 & e[s + 1], 0 !== i || 0 !== n) { if (this.logger.log(3, "[" + ha([e[s], e[s + 1]]) + "] -> (" + ha([i, n]) + ")"), (r = this.parseCmd(i, n)) || (r = this.parseMidrow(i, n)), r || (r = this.parsePAC(i, n)), r || (r = this.parseBackgroundAttributes(i, n)), !r && (a = this.parseChars(i, n))) { var o = this.currentChannel; o && o > 0 ? this.channels[o].insertChars(a) : this.logger.log(2, "No channel found yet. TEXT-MODE?") } r || a || this.logger.log(2, "Couldn't parse cleaned data " + ha([i, n]) + " orig: " + ha([e[s], e[s + 1]])) } }, e.parseCmd = function (t, e) { var r = this.cmdHistory; if (!((20 === t || 28 === t || 21 === t || 29 === t) && e >= 32 && e <= 47 || (23 === t || 31 === t) && e >= 33 && e <= 35)) return !1; if (ya(t, e, r)) return pa(null, null, r), this.logger.log(3, "Repeated command (" + ha([t, e]) + ") is dropped"), !0; var i = 20 === t || 21 === t || 23 === t ? 1 : 2, n = this.channels[i]; return 20 === t || 21 === t || 28 === t || 29 === t ? 32 === e ? n.ccRCL() : 33 === e ? n.ccBS() : 34 === e ? n.ccAOF() : 35 === e ? n.ccAON() : 36 === e ? n.ccDER() : 37 === e ? n.ccRU(2) : 38 === e ? n.ccRU(3) : 39 === e ? n.ccRU(4) : 40 === e ? n.ccFON() : 41 === e ? n.ccRDC() : 42 === e ? n.ccTR() : 43 === e ? n.ccRTD() : 44 === e ? n.ccEDM() : 45 === e ? n.ccCR() : 46 === e ? n.ccENM() : 47 === e && n.ccEOC() : n.ccTO(e - 32), pa(t, e, r), this.currentChannel = i, !0 }, e.parseMidrow = function (t, e) { var r = 0; if ((17 === t || 25 === t) && e >= 32 && e <= 47) { if ((r = 17 === t ? 1 : 2) !== this.currentChannel) return this.logger.log(0, "Mismatch channel in midrow parsing"), !1; var i = this.channels[r]; return !!i && (i.ccMIDROW(e), this.logger.log(3, "MIDROW (" + ha([t, e]) + ")"), !0) } return !1 }, e.parsePAC = function (t, e) { var r, i = this.cmdHistory; if (!((t >= 17 && t <= 23 || t >= 25 && t <= 31) && e >= 64 && e <= 127 || (16 === t || 24 === t) && e >= 64 && e <= 95)) return !1; if (ya(t, e, i)) return pa(null, null, i), !0; var n = t <= 23 ? 1 : 2; r = e >= 64 && e <= 95 ? 1 === n ? na[t] : sa[t] : 1 === n ? aa[t] : oa[t]; var a = this.channels[n]; return !!a && (a.setPAC(this.interpretPAC(r, e)), pa(t, e, i), this.currentChannel = n, !0) }, e.interpretPAC = function (t, e) { var r, i = { color: null, italics: !1, indent: null, underline: !1, row: t }; return r = e > 95 ? e - 96 : e - 64, i.underline = 1 == (1 & r), r <= 13 ? i.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(r / 2)] : r <= 15 ? (i.italics = !0, i.color = "white") : i.indent = 4 * Math.floor((r - 16) / 2), i }, e.parseChars = function (t, e) { var r, i, n = null, a = null; if (t >= 25 ? (r = 2, a = t - 8) : (r = 1, a = t), a >= 17 && a <= 19 ? (i = 17 === a ? e + 80 : 18 === a ? e + 112 : e + 144, this.logger.log(2, "Special char '" + ea(i) + "' in channel " + r), n = [i]) : t >= 32 && t <= 127 && (n = 0 === e ? [t] : [t, e]), n) { var s = ha(n); this.logger.log(3, "Char codes = " + s.join(",")), pa(t, e, this.cmdHistory) } return n }, e.parseBackgroundAttributes = function (t, e) { var r; if (!((16 === t || 24 === t) && e >= 32 && e <= 47 || (23 === t || 31 === t) && e >= 45 && e <= 47)) return !1; var i = {}; 16 === t || 24 === t ? (r = Math.floor((e - 32) / 2), i.background = la[r], e % 2 == 1 && (i.background = i.background + "_semi")) : 45 === e ? i.background = "transparent" : (i.foreground = "black", 47 === e && (i.underline = !0)); var n = t <= 23 ? 1 : 2; return this.channels[n].setBkgData(i), pa(t, e, this.cmdHistory), !0 }, e.reset = function () { for (var t = 0; t < Object.keys(this.channels).length; t++) { var e = this.channels[t]; e && e.reset() } this.cmdHistory = { a: null, b: null } }, e.cueSplitAtTime = function (t) { for (var e = 0; e < this.channels.length; e++) { var r = this.channels[e]; r && r.cueSplitAtTime(t) } }, t }(); function pa(t, e, r) { r.a = t, r.b = e } function ya(t, e, r) { return r.a === t && r.b === e } var Ea = function () { function t(t, e) { this.timelineController = void 0, this.cueRanges = [], this.trackName = void 0, this.startTime = null, this.endTime = null, this.screen = null, this.timelineController = t, this.trackName = e } var e = t.prototype; return e.dispatchCue = function () { null !== this.startTime && (this.timelineController.addCues(this.trackName, this.startTime, this.endTime, this.screen, this.cueRanges), this.startTime = null) }, e.newCue = function (t, e, r) { (null === this.startTime || this.startTime > t) && (this.startTime = t), this.endTime = e, this.screen = r, this.timelineController.createCaptionsTrack(this.trackName) }, e.reset = function () { this.cueRanges = [], this.startTime = null }, t }(), Ta = function () { if (null != j && j.VTTCue) return self.VTTCue; var t = ["", "lr", "rl"], e = ["start", "middle", "end", "left", "right"]; function r(t, e) { if ("string" != typeof e) return !1; if (!Array.isArray(t)) return !1; var r = e.toLowerCase(); return !!~t.indexOf(r) && r } function i(t) { return r(e, t) } function n(t) { for (var e = arguments.length, r = new Array(e > 1 ? e - 1 : 0), i = 1; i < e; i++)r[i - 1] = arguments[i]; for (var n = 1; n < arguments.length; n++) { var a = arguments[n]; for (var s in a) t[s] = a[s] } return t } function a(e, a, s) { var o = this, l = { enumerable: !0 }; o.hasBeenReset = !1; var u = "", h = !1, d = e, c = a, f = s, g = null, v = "", m = !0, p = "auto", y = "start", E = 50, T = "middle", S = 50, L = "middle"; Object.defineProperty(o, "id", n({}, l, { get: function () { return u }, set: function (t) { u = "" + t } })), Object.defineProperty(o, "pauseOnExit", n({}, l, { get: function () { return h }, set: function (t) { h = !!t } })), Object.defineProperty(o, "startTime", n({}, l, { get: function () { return d }, set: function (t) { if ("number" != typeof t) throw new TypeError("Start time must be set to a number."); d = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "endTime", n({}, l, { get: function () { return c }, set: function (t) { if ("number" != typeof t) throw new TypeError("End time must be set to a number."); c = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "text", n({}, l, { get: function () { return f }, set: function (t) { f = "" + t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "region", n({}, l, { get: function () { return g }, set: function (t) { g = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "vertical", n({}, l, { get: function () { return v }, set: function (e) { var i = function (e) { return r(t, e) }(e); if (!1 === i) throw new SyntaxError("An invalid or illegal string was specified."); v = i, this.hasBeenReset = !0 } })), Object.defineProperty(o, "snapToLines", n({}, l, { get: function () { return m }, set: function (t) { m = !!t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "line", n({}, l, { get: function () { return p }, set: function (t) { if ("number" != typeof t && "auto" !== t) throw new SyntaxError("An invalid number or illegal string was specified."); p = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "lineAlign", n({}, l, { get: function () { return y }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); y = e, this.hasBeenReset = !0 } })), Object.defineProperty(o, "position", n({}, l, { get: function () { return E }, set: function (t) { if (t < 0 || t > 100) throw new Error("Position must be between 0 and 100."); E = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "positionAlign", n({}, l, { get: function () { return T }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); T = e, this.hasBeenReset = !0 } })), Object.defineProperty(o, "size", n({}, l, { get: function () { return S }, set: function (t) { if (t < 0 || t > 100) throw new Error("Size must be between 0 and 100."); S = t, this.hasBeenReset = !0 } })), Object.defineProperty(o, "align", n({}, l, { get: function () { return L }, set: function (t) { var e = i(t); if (!e) throw new SyntaxError("An invalid or illegal string was specified."); L = e, this.hasBeenReset = !0 } })), o.displayState = void 0 } return a.prototype.getCueAsHTML = function () { return self.WebVTT.convertCueToDOMTree(self, this.text) }, a }(), Sa = function () { function t() { } return t.prototype.decode = function (t, e) { if (!t) return ""; if ("string" != typeof t) throw new Error("Error - expected string data."); return decodeURIComponent(encodeURIComponent(t)) }, t }(); function La(t) { function e(t, e, r, i) { return 3600 * (0 | t) + 60 * (0 | e) + (0 | r) + parseFloat(i || 0) } var r = t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/); return r ? parseFloat(r[2]) > 59 ? e(r[2], r[3], 0, r[4]) : e(r[1], r[2], r[3], r[4]) : null } var Aa = function () { function t() { this.values = Object.create(null) } var e = t.prototype; return e.set = function (t, e) { this.get(t) || "" === e || (this.values[t] = e) }, e.get = function (t, e, r) { return r ? this.has(t) ? this.values[t] : e[r] : this.has(t) ? this.values[t] : e }, e.has = function (t) { return t in this.values }, e.alt = function (t, e, r) { for (var i = 0; i < r.length; ++i)if (e === r[i]) { this.set(t, e); break } }, e.integer = function (t, e) { /^-?\d+$/.test(e) && this.set(t, parseInt(e, 10)) }, e.percent = function (t, e) { if (/^([\d]{1,3})(\.[\d]*)?%$/.test(e)) { var r = parseFloat(e); if (r >= 0 && r <= 100) return this.set(t, r), !0 } return !1 }, t }(); function Ra(t, e, r, i) { var n = i ? t.split(i) : [t]; for (var a in n) if ("string" == typeof n[a]) { var s = n[a].split(r); 2 === s.length && e(s[0], s[1]) } } var ka = new Ta(0, 0, ""), ba = "middle" === ka.align ? "middle" : "center"; function Da(t, e, r) { var i = t; function n() { var e = La(t); if (null === e) throw new Error("Malformed timestamp: " + i); return t = t.replace(/^[^\sa-zA-Z-]+/, ""), e } function a() { t = t.replace(/^\s+/, "") } if (a(), e.startTime = n(), a(), "--\x3e" !== t.slice(0, 3)) throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): " + i); t = t.slice(3), a(), e.endTime = n(), a(), function (t, e) { var i = new Aa; Ra(t, (function (t, e) { var n; switch (t) { case "region": for (var a = r.length - 1; a >= 0; a--)if (r[a].id === e) { i.set(t, r[a].region); break } break; case "vertical": i.alt(t, e, ["rl", "lr"]); break; case "line": n = e.split(","), i.integer(t, n[0]), i.percent(t, n[0]) && i.set("snapToLines", !1), i.alt(t, n[0], ["auto"]), 2 === n.length && i.alt("lineAlign", n[1], ["start", ba, "end"]); break; case "position": n = e.split(","), i.percent(t, n[0]), 2 === n.length && i.alt("positionAlign", n[1], ["start", ba, "end", "line-left", "line-right", "auto"]); break; case "size": i.percent(t, e); break; case "align": i.alt(t, e, ["start", ba, "end", "left", "right"]) } }), /:/, /\s/), e.region = i.get("region", null), e.vertical = i.get("vertical", ""); var n = i.get("line", "auto"); "auto" === n && -1 === ka.line && (n = -1), e.line = n, e.lineAlign = i.get("lineAlign", "start"), e.snapToLines = i.get("snapToLines", !0), e.size = i.get("size", 100), e.align = i.get("align", ba); var a = i.get("position", "auto"); "auto" === a && 50 === ka.position && (a = "start" === e.align || "left" === e.align ? 0 : "end" === e.align || "right" === e.align ? 100 : 50), e.position = a }(t, e) } function Ia(t) { return t.replace(//gi, "\n") } var wa = function () { function t() { this.state = "INITIAL", this.buffer = "", this.decoder = new Sa, this.regionList = [], this.cue = null, this.oncue = void 0, this.onparsingerror = void 0, this.onflush = void 0 } var e = t.prototype; return e.parse = function (t) { var e = this; function r() { var t = e.buffer, r = 0; for (t = Ia(t); r < t.length && "\r" !== t[r] && "\n" !== t[r];)++r; var i = t.slice(0, r); return "\r" === t[r] && ++r, "\n" === t[r] && ++r, e.buffer = t.slice(r), i } t && (e.buffer += e.decoder.decode(t, { stream: !0 })); try { var i = ""; if ("INITIAL" === e.state) { if (!/\r\n|\n/.test(e.buffer)) return this; var n = (i = r()).match(/^()?WEBVTT([ \t].*)?$/); if (null == n || !n[0]) throw new Error("Malformed WebVTT signature."); e.state = "HEADER" } for (var a = !1; e.buffer;) { if (!/\r\n|\n/.test(e.buffer)) return this; switch (a ? a = !1 : i = r(), e.state) { case "HEADER": /:/.test(i) ? Ra(i, (function (t, e) { }), /:/) : i || (e.state = "ID"); continue; case "NOTE": i || (e.state = "ID"); continue; case "ID": if (/^NOTE($|[ \t])/.test(i)) { e.state = "NOTE"; break } if (!i) continue; if (e.cue = new Ta(0, 0, ""), e.state = "CUE", -1 === i.indexOf("--\x3e")) { e.cue.id = i; continue } case "CUE": if (!e.cue) { e.state = "BADCUE"; continue } try { Da(i, e.cue, e.regionList) } catch (t) { e.cue = null, e.state = "BADCUE"; continue } e.state = "CUETEXT"; continue; case "CUETEXT": var s = -1 !== i.indexOf("--\x3e"); if (!i || s && (a = !0)) { e.oncue && e.cue && e.oncue(e.cue), e.cue = null, e.state = "ID"; continue } if (null === e.cue) continue; e.cue.text && (e.cue.text += "\n"), e.cue.text += i; continue; case "BADCUE": i || (e.state = "ID") } } } catch (t) { "CUETEXT" === e.state && e.cue && e.oncue && e.oncue(e.cue), e.cue = null, e.state = "INITIAL" === e.state ? "BADWEBVTT" : "BADCUE" } return this }, e.flush = function () { var t = this; try { if ((t.cue || "HEADER" === t.state) && (t.buffer += "\n\n", t.parse()), "INITIAL" === t.state || "BADWEBVTT" === t.state) throw new Error("Malformed WebVTT signature.") } catch (e) { t.onparsingerror && t.onparsingerror(e) } return t.onflush && t.onflush(), this }, t }(), Ca = /\r\n|\n\r|\n|\r/g, _a = function (t, e, r) { return void 0 === r && (r = 0), t.slice(r, r + e.length) === e }, xa = function (t) { for (var e = 5381, r = t.length; r;)e = 33 * e ^ t.charCodeAt(--r); return (e >>> 0).toString() }; function Pa(t, e, r) { return xa(t.toString()) + xa(e.toString()) + xa(r) } function Fa(t, e, r, i, n, a, s) { var o, l, u, h = new wa, d = Tt(new Uint8Array(t)).trim().replace(Ca, "\n").split("\n"), c = [], f = e ? (o = e.baseTime, void 0 === (l = e.timescale) && (l = 1), yn(o, pn, 1 / l)) : 0, g = "00:00.000", v = 0, m = 0, p = !0; h.oncue = function (t) { var a = r[i], s = r.ccOffset, o = (v - f) / 9e4; if (null != a && a.new && (void 0 !== m ? s = r.ccOffset = a.start : function (t, e, r) { var i = t[e], n = t[i.prevCC]; if (!n || !n.new && i.new) return t.ccOffset = t.presentationOffset = i.start, void (i.new = !1); for (; null != (a = n) && a.new;) { var a; t.ccOffset += i.start - n.start, i.new = !1, n = t[(i = n).prevCC] } t.presentationOffset = r }(r, i, o)), o) { if (!e) return void (u = new Error("Missing initPTS for VTT MPEGTS")); s = o - r.presentationOffset } var l = t.endTime - t.startTime, h = An(9e4 * (t.startTime + s - m), 9e4 * n) / 9e4; t.startTime = Math.max(h, 0), t.endTime = Math.max(h + l, 0); var d = t.text.trim(); t.text = decodeURIComponent(encodeURIComponent(d)), t.id || (t.id = Pa(t.startTime, t.endTime, d)), t.endTime > 0 && c.push(t) }, h.onparsingerror = function (t) { u = t }, h.onflush = function () { u ? s(u) : a(c) }, d.forEach((function (t) { if (p) { if (_a(t, "X-TIMESTAMP-MAP=")) { p = !1, t.slice(16).split(",").forEach((function (t) { _a(t, "LOCAL:") ? g = t.slice(6) : _a(t, "MPEGTS:") && (v = parseInt(t.slice(7))) })); try { m = function (t) { var e = parseInt(t.slice(-3)), r = parseInt(t.slice(-6, -4)), i = parseInt(t.slice(-9, -7)), n = t.length > 9 ? parseInt(t.substring(0, t.indexOf(":"))) : 0; if (!(y(e) && y(r) && y(i) && y(n))) throw Error("Malformed X-TIMESTAMP-MAP: Local:" + t); return e += 1e3 * r, (e += 6e4 * i) + 36e5 * n }(g) / 1e3 } catch (t) { u = t } return } "" === t && (p = !1) } h.parse(t + "\n") })), h.flush() } var Ma = "stpp.ttml.im1t", Oa = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/, Na = /^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/, Ua = { left: "start", center: "center", right: "end", start: "start", end: "end" }; function Ba(t, e, r, i) { var n = xt(new Uint8Array(t), ["mdat"]); if (0 !== n.length) { var a, s, l, u, h = n.map((function (t) { return Tt(t) })), d = (a = e.baseTime, s = 1, void 0 === (l = e.timescale) && (l = 1), void 0 === u && (u = !1), yn(a, s, 1 / l, u)); try { h.forEach((function (t) { return r(function (t, e) { var r = (new DOMParser).parseFromString(t, "text/xml"), i = r.getElementsByTagName("tt")[0]; if (!i) throw new Error("Invalid ttml"); var n = { frameRate: 30, subFrameRate: 1, frameRateMultiplier: 0, tickRate: 0 }, a = Object.keys(n).reduce((function (t, e) { return t[e] = i.getAttribute("ttp:" + e) || n[e], t }), {}), s = "preserve" !== i.getAttribute("xml:space"), l = Ka(Ga(i, "styling", "style")), u = Ka(Ga(i, "layout", "region")), h = Ga(i, "body", "[begin]"); return [].map.call(h, (function (t) { var r = Ha(t, s); if (!r || !t.hasAttribute("begin")) return null; var i = Wa(t.getAttribute("begin"), a), n = Wa(t.getAttribute("dur"), a), h = Wa(t.getAttribute("end"), a); if (null === i) throw Ya(t); if (null === h) { if (null === n) throw Ya(t); h = i + n } var d = new Ta(i - e, h - e, r); d.id = Pa(d.startTime, d.endTime, d.text); var c = function (t, e, r) { var i = "http://www.w3.org/ns/ttml#styling", n = null, a = ["displayAlign", "textAlign", "color", "backgroundColor", "fontSize", "fontFamily"], s = null != t && t.hasAttribute("style") ? t.getAttribute("style") : null; return s && r.hasOwnProperty(s) && (n = r[s]), a.reduce((function (r, a) { var s = Va(e, i, a) || Va(t, i, a) || Va(n, i, a); return s && (r[a] = s), r }), {}) }(u[t.getAttribute("region")], l[t.getAttribute("style")], l), f = c.textAlign; if (f) { var g = Ua[f]; g && (d.lineAlign = g), d.align = f } return o(d, c), d })).filter((function (t) { return null !== t })) }(t, d)) })) } catch (t) { i(t) } } else i(new Error("Could not parse IMSC1 mdat")) } function Ga(t, e, r) { var i = t.getElementsByTagName(e)[0]; return i ? [].slice.call(i.querySelectorAll(r)) : [] } function Ka(t) { return t.reduce((function (t, e) { var r = e.getAttribute("xml:id"); return r && (t[r] = e), t }), {}) } function Ha(t, e) { return [].slice.call(t.childNodes).reduce((function (t, r, i) { var n; return "br" === r.nodeName && i ? t + "\n" : null != (n = r.childNodes) && n.length ? Ha(r, e) : e ? t + r.textContent.trim().replace(/\s+/g, " ") : t + r.textContent }), "") } function Va(t, e, r) { return t && t.hasAttributeNS(e, r) ? t.getAttributeNS(e, r) : null } function Ya(t) { return new Error("Could not parse ttml timestamp " + t) } function Wa(t, e) { if (!t) return null; var r = La(t); return null === r && (Oa.test(t) ? r = function (t, e) { var r = Oa.exec(t), i = (0 | r[4]) + (0 | r[5]) / e.subFrameRate; return 3600 * (0 | r[1]) + 60 * (0 | r[2]) + (0 | r[3]) + i / e.frameRate }(t, e) : Na.test(t) && (r = function (t, e) { var r = Na.exec(t), i = Number(r[1]); switch (r[2]) { case "h": return 3600 * i; case "m": return 60 * i; case "ms": return 1e3 * i; case "f": return i / e.frameRate; case "t": return i / e.tickRate }return i }(t, e))), r } var ja = function () { function t(t) { this.hls = void 0, this.media = null, this.config = void 0, this.enabled = !0, this.Cues = void 0, this.textTracks = [], this.tracks = [], this.initPTS = [], this.unparsedVttFrags = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.cea608Parser1 = void 0, this.cea608Parser2 = void 0, this.lastCc = -1, this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = { ccOffset: 0, presentationOffset: 0, 0: { start: 0, prevCC: -1, new: !0 } }, this.captionsProperties = void 0, this.hls = t, this.config = t.config, this.Cues = t.config.cueHandler, this.captionsProperties = { textTrack1: { label: this.config.captionsTextTrack1Label, languageCode: this.config.captionsTextTrack1LanguageCode }, textTrack2: { label: this.config.captionsTextTrack2Label, languageCode: this.config.captionsTextTrack2LanguageCode }, textTrack3: { label: this.config.captionsTextTrack3Label, languageCode: this.config.captionsTextTrack3LanguageCode }, textTrack4: { label: this.config.captionsTextTrack4Label, languageCode: this.config.captionsTextTrack4LanguageCode } }, t.on(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.on(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.on(S.FRAG_LOADING, this.onFragLoading, this), t.on(S.FRAG_LOADED, this.onFragLoaded, this), t.on(S.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this), t.on(S.FRAG_DECRYPTED, this.onFragDecrypted, this), t.on(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.on(S.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this), t.on(S.BUFFER_FLUSHING, this.onBufferFlushing, this) } var e = t.prototype; return e.destroy = function () { var t = this.hls; t.off(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.off(S.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this), t.off(S.FRAG_LOADING, this.onFragLoading, this), t.off(S.FRAG_LOADED, this.onFragLoaded, this), t.off(S.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this), t.off(S.FRAG_DECRYPTED, this.onFragDecrypted, this), t.off(S.INIT_PTS_FOUND, this.onInitPtsFound, this), t.off(S.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this), t.off(S.BUFFER_FLUSHING, this.onBufferFlushing, this), this.hls = this.config = null, this.cea608Parser1 = this.cea608Parser2 = void 0 }, e.initCea608Parsers = function () { if (this.config.enableCEA708Captions && (!this.cea608Parser1 || !this.cea608Parser2)) { var t = new Ea(this, "textTrack1"), e = new Ea(this, "textTrack2"), r = new Ea(this, "textTrack3"), i = new Ea(this, "textTrack4"); this.cea608Parser1 = new ma(1, t, e), this.cea608Parser2 = new ma(3, r, i) } }, e.addCues = function (t, e, r, i, n) { for (var a, s, o, l, u = !1, h = n.length; h--;) { var d = n[h], c = (a = d[0], s = d[1], o = e, l = r, Math.min(s, l) - Math.max(a, o)); if (c >= 0 && (d[0] = Math.min(d[0], e), d[1] = Math.max(d[1], r), u = !0, c / (r - e) > .5)) return } if (u || n.push([e, r]), this.config.renderTextTracksNatively) { var f = this.captionsTracks[t]; this.Cues.newCue(f, e, r, i) } else { var g = this.Cues.newCue(null, e, r, i); this.hls.trigger(S.CUES_PARSED, { type: "captions", cues: g, track: t }) } }, e.onInitPtsFound = function (t, e) { var r = this, i = e.frag, n = e.id, a = e.initPTS, s = e.timescale, o = this.unparsedVttFrags; "main" === n && (this.initPTS[i.cc] = { baseTime: a, timescale: s }), o.length && (this.unparsedVttFrags = [], o.forEach((function (t) { r.onFragLoaded(S.FRAG_LOADED, t) }))) }, e.getExistingTrack = function (t, e) { var r = this.media; if (r) for (var i = 0; i < r.textTracks.length; i++) { var n = r.textTracks[i]; if (Xa(n, { name: t, lang: e, attrs: {} })) return n } return null }, e.createCaptionsTrack = function (t) { this.config.renderTextTracksNatively ? this.createNativeTrack(t) : this.createNonNativeTrack(t) }, e.createNativeTrack = function (t) { if (!this.captionsTracks[t]) { var e = this.captionsProperties, r = this.captionsTracks, i = this.media, n = e[t], a = n.label, s = n.languageCode, o = this.getExistingTrack(a, s); if (o) r[t] = o, Ne(r[t]), Me(r[t], i); else { var l = this.createTextTrack("captions", a, s); l && (l[t] = !0, r[t] = l) } } }, e.createNonNativeTrack = function (t) { if (!this.nonNativeCaptionsTracks[t]) { var e = this.captionsProperties[t]; if (e) { var r = { _id: t, label: e.label, kind: "captions", default: !!e.media && !!e.media.default, closedCaptions: e.media }; this.nonNativeCaptionsTracks[t] = r, this.hls.trigger(S.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: [r] }) } } }, e.createTextTrack = function (t, e, r) { var i = this.media; if (i) return i.addTextTrack(t, e, r) }, e.onMediaAttaching = function (t, e) { this.media = e.media, this._cleanTracks() }, e.onMediaDetaching = function () { var t = this.captionsTracks; Object.keys(t).forEach((function (e) { Ne(t[e]), delete t[e] })), this.nonNativeCaptionsTracks = {} }, e.onManifestLoading = function () { this.lastCc = -1, this.lastSn = -1, this.lastPartIndex = -1, this.prevCC = -1, this.vttCCs = { ccOffset: 0, presentationOffset: 0, 0: { start: 0, prevCC: -1, new: !0 } }, this._cleanTracks(), this.tracks = [], this.captionsTracks = {}, this.nonNativeCaptionsTracks = {}, this.textTracks = [], this.unparsedVttFrags = [], this.initPTS = [], this.cea608Parser1 && this.cea608Parser2 && (this.cea608Parser1.reset(), this.cea608Parser2.reset()) }, e._cleanTracks = function () { var t = this.media; if (t) { var e = t.textTracks; if (e) for (var r = 0; r < e.length; r++)Ne(e[r]) } }, e.onSubtitleTracksUpdated = function (t, e) { var r = this, i = e.subtitleTracks || [], n = i.some((function (t) { return t.textCodec === Ma })); if (this.config.enableWebVTT || n && this.config.enableIMSC1) { if (Hn(this.tracks, i)) return void (this.tracks = i); if (this.textTracks = [], this.tracks = i, this.config.renderTextTracksNatively) { var a = this.media, s = a ? Be(a.textTracks) : null; if (this.tracks.forEach((function (t, e) { var i; if (s) { for (var n = null, a = 0; a < s.length; a++)if (s[a] && Xa(s[a], t)) { n = s[a], s[a] = null; break } n && (i = n) } if (i) Ne(i); else { var o = qa(t); (i = r.createTextTrack(o, t.name, t.lang)) && (i.mode = "disabled") } i && r.textTracks.push(i) })), null != s && s.length) { var o = s.filter((function (t) { return null !== t })).map((function (t) { return t.label })); o.length && w.warn("Media element contains unused subtitle tracks: " + o.join(", ") + ". Replace media element for each source to clear TextTracks and captions menu.") } } else if (this.tracks.length) { var l = this.tracks.map((function (t) { return { label: t.name, kind: t.type.toLowerCase(), default: t.default, subtitleTrack: t } })); this.hls.trigger(S.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: l }) } } }, e.onManifestLoaded = function (t, e) { var r = this; this.config.enableCEA708Captions && e.captions && e.captions.forEach((function (t) { var e = /(?:CC|SERVICE)([1-4])/.exec(t.instreamId); if (e) { var i = "textTrack" + e[1], n = r.captionsProperties[i]; n && (n.label = t.name, t.lang && (n.languageCode = t.lang), n.media = t) } })) }, e.closedCaptionsForLevel = function (t) { var e = this.hls.levels[t.level]; return null == e ? void 0 : e.attrs["CLOSED-CAPTIONS"] }, e.onFragLoading = function (t, e) { this.initCea608Parsers(); var r = this.cea608Parser1, i = this.cea608Parser2, n = this.lastCc, a = this.lastSn, s = this.lastPartIndex; if (this.enabled && r && i && e.frag.type === we) { var o, l, u = e.frag, h = u.cc, d = u.sn, c = null != (o = null == e || null == (l = e.part) ? void 0 : l.index) ? o : -1; d === a + 1 || d === a && c === s + 1 || h === n || (r.reset(), i.reset()), this.lastCc = h, this.lastSn = d, this.lastPartIndex = c } }, e.onFragLoaded = function (t, e) { var r = e.frag, i = e.payload; if (r.type === _e) if (i.byteLength) { var n = r.decryptdata, a = "stats" in e; if (null == n || !n.encrypted || a) { var s = this.tracks[r.level], o = this.vttCCs; o[r.cc] || (o[r.cc] = { start: r.start, prevCC: this.prevCC, new: !0 }, this.prevCC = r.cc), s && s.textCodec === Ma ? this._parseIMSC1(r, i) : this._parseVTTs(e) } } else this.hls.trigger(S.SUBTITLE_FRAG_PROCESSED, { success: !1, frag: r, error: new Error("Empty subtitle payload") }) }, e._parseIMSC1 = function (t, e) { var r = this, i = this.hls; Ba(e, this.initPTS[t.cc], (function (e) { r._appendCues(e, t.level), i.trigger(S.SUBTITLE_FRAG_PROCESSED, { success: !0, frag: t }) }), (function (e) { w.log("Failed to parse IMSC1: " + e), i.trigger(S.SUBTITLE_FRAG_PROCESSED, { success: !1, frag: t, error: e }) })) }, e._parseVTTs = function (t) { var e, r = this, i = t.frag, n = t.payload, a = this.initPTS, s = this.unparsedVttFrags, o = a.length - 1; if (a[i.cc] || -1 !== o) { var l = this.hls; Fa(null != (e = i.initSegment) && e.data ? Kt(i.initSegment.data, new Uint8Array(n)) : n, this.initPTS[i.cc], this.vttCCs, i.cc, i.start, (function (t) { r._appendCues(t, i.level), l.trigger(S.SUBTITLE_FRAG_PROCESSED, { success: !0, frag: i }) }), (function (e) { var a = "Missing initPTS for VTT MPEGTS" === e.message; a ? s.push(t) : r._fallbackToIMSC1(i, n), w.log("Failed to parse VTT cue: " + e), a && o > i.cc || l.trigger(S.SUBTITLE_FRAG_PROCESSED, { success: !1, frag: i, error: e }) })) } else s.push(t) }, e._fallbackToIMSC1 = function (t, e) { var r = this, i = this.tracks[t.level]; i.textCodec || Ba(e, this.initPTS[t.cc], (function () { i.textCodec = Ma, r._parseIMSC1(t, e) }), (function () { i.textCodec = "wvtt" })) }, e._appendCues = function (t, e) { var r = this.hls; if (this.config.renderTextTracksNatively) { var i = this.textTracks[e]; if (!i || "disabled" === i.mode) return; t.forEach((function (t) { return Oe(i, t) })) } else { var n = this.tracks[e]; if (!n) return; var a = n.default ? "default" : "subtitles" + e; r.trigger(S.CUES_PARSED, { type: "subtitles", cues: t, track: a }) } }, e.onFragDecrypted = function (t, e) { e.frag.type === _e && this.onFragLoaded(S.FRAG_LOADED, e) }, e.onSubtitleTracksCleared = function () { this.tracks = [], this.captionsTracks = {} }, e.onFragParsingUserdata = function (t, e) { this.initCea608Parsers(); var r = this.cea608Parser1, i = this.cea608Parser2; if (this.enabled && r && i) { var n = e.frag, a = e.samples; if (n.type !== we || "NONE" !== this.closedCaptionsForLevel(n)) for (var s = 0; s < a.length; s++) { var o = a[s].bytes; if (o) { var l = this.extractCea608Data(o); r.addData(a[s].pts, l[0]), i.addData(a[s].pts, l[1]) } } } }, e.onBufferFlushing = function (t, e) { var r = e.startOffset, i = e.endOffset, n = e.endOffsetSubtitles, a = e.type, s = this.media; if (s && !(s.currentTime < i)) { if (!a || "video" === a) { var o = this.captionsTracks; Object.keys(o).forEach((function (t) { return Ue(o[t], r, i) })) } if (this.config.renderTextTracksNatively && 0 === r && void 0 !== n) { var l = this.textTracks; Object.keys(l).forEach((function (t) { return Ue(l[t], r, n) })) } } }, e.extractCea608Data = function (t) { for (var e = [[], []], r = 31 & t[0], i = 2, n = 0; n < r; n++) { var a = t[i++], s = 127 & t[i++], o = 127 & t[i++]; if ((0 !== s || 0 !== o) && 0 != (4 & a)) { var l = 3 & a; 0 !== l && 1 !== l || (e[l].push(s), e[l].push(o)) } } return e }, t }(); function qa(t) { return t.characteristics && /transcribes-spoken-dialog/gi.test(t.characteristics) && /describes-music-and-sound/gi.test(t.characteristics) ? "captions" : "subtitles" } function Xa(t, e) { return !!t && t.kind === qa(e) && Yn(e, t) } var za = function () { function t(t) { this.hls = void 0, this.autoLevelCapping = void 0, this.firstLevel = void 0, this.media = void 0, this.restrictedLevels = void 0, this.timer = void 0, this.clientRect = void 0, this.streamController = void 0, this.hls = t, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.firstLevel = -1, this.media = null, this.restrictedLevels = [], this.timer = void 0, this.clientRect = null, this.registerListeners() } var e = t.prototype; return e.setStreamController = function (t) { this.streamController = t }, e.destroy = function () { this.hls && this.unregisterListener(), this.timer && this.stopCapping(), this.media = null, this.clientRect = null, this.hls = this.streamController = null }, e.registerListeners = function () { var t = this.hls; t.on(S.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this), t.on(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.on(S.BUFFER_CODECS, this.onBufferCodecs, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this) }, e.unregisterListener = function () { var t = this.hls; t.off(S.FPS_DROP_LEVEL_CAPPING, this.onFpsDropLevelCapping, this), t.off(S.MEDIA_ATTACHING, this.onMediaAttaching, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.off(S.BUFFER_CODECS, this.onBufferCodecs, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this) }, e.onFpsDropLevelCapping = function (t, e) { var r = this.hls.levels[e.droppedLevel]; this.isLevelAllowed(r) && this.restrictedLevels.push({ bitrate: r.bitrate, height: r.height, width: r.width }) }, e.onMediaAttaching = function (t, e) { this.media = e.media instanceof HTMLVideoElement ? e.media : null, this.clientRect = null, this.timer && this.hls.levels.length && this.detectPlayerSize() }, e.onManifestParsed = function (t, e) { var r = this.hls; this.restrictedLevels = [], this.firstLevel = e.firstLevel, r.config.capLevelToPlayerSize && e.video && this.startCapping() }, e.onLevelsUpdated = function (t, e) { this.timer && y(this.autoLevelCapping) && this.detectPlayerSize() }, e.onBufferCodecs = function (t, e) { this.hls.config.capLevelToPlayerSize && e.video && this.startCapping() }, e.onMediaDetaching = function () { this.stopCapping() }, e.detectPlayerSize = function () { if (this.media) { if (this.mediaHeight <= 0 || this.mediaWidth <= 0) return void (this.clientRect = null); var t = this.hls.levels; if (t.length) { var e = this.hls, r = this.getMaxLevel(t.length - 1); r !== this.autoLevelCapping && w.log("Setting autoLevelCapping to " + r + ": " + t[r].height + "p@" + t[r].bitrate + " for media " + this.mediaWidth + "x" + this.mediaHeight), e.autoLevelCapping = r, e.autoLevelCapping > this.autoLevelCapping && this.streamController && this.streamController.nextLevelSwitch(), this.autoLevelCapping = e.autoLevelCapping } } }, e.getMaxLevel = function (e) { var r = this, i = this.hls.levels; if (!i.length) return -1; var n = i.filter((function (t, i) { return r.isLevelAllowed(t) && i <= e })); return this.clientRect = null, t.getMaxLevelByMediaSize(n, this.mediaWidth, this.mediaHeight) }, e.startCapping = function () { this.timer || (this.autoLevelCapping = Number.POSITIVE_INFINITY, self.clearInterval(this.timer), this.timer = self.setInterval(this.detectPlayerSize.bind(this), 1e3), this.detectPlayerSize()) }, e.stopCapping = function () { this.restrictedLevels = [], this.firstLevel = -1, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.timer && (self.clearInterval(this.timer), this.timer = void 0) }, e.getDimensions = function () { if (this.clientRect) return this.clientRect; var t = this.media, e = { width: 0, height: 0 }; if (t) { var r = t.getBoundingClientRect(); e.width = r.width, e.height = r.height, e.width || e.height || (e.width = r.right - r.left || t.width || 0, e.height = r.bottom - r.top || t.height || 0) } return this.clientRect = e, e }, e.isLevelAllowed = function (t) { return !this.restrictedLevels.some((function (e) { return t.bitrate === e.bitrate && t.width === e.width && t.height === e.height })) }, t.getMaxLevelByMediaSize = function (t, e, r) { if (null == t || !t.length) return -1; for (var i, n, a = t.length - 1, s = Math.max(e, r), o = 0; o < t.length; o += 1) { var l = t[o]; if ((l.width >= s || l.height >= s) && (i = l, !(n = t[o + 1]) || i.width !== n.width || i.height !== n.height)) { a = o; break } } return a }, s(t, [{ key: "mediaWidth", get: function () { return this.getDimensions().width * this.contentScaleFactor } }, { key: "mediaHeight", get: function () { return this.getDimensions().height * this.contentScaleFactor } }, { key: "contentScaleFactor", get: function () { var t = 1; if (!this.hls.config.ignoreDevicePixelRatio) try { t = self.devicePixelRatio } catch (t) { } return t } }]), t }(), Qa = function () { function t(t) { this.hls = void 0, this.isVideoPlaybackQualityAvailable = !1, this.timer = void 0, this.media = null, this.lastTime = void 0, this.lastDroppedFrames = 0, this.lastDecodedFrames = 0, this.streamController = void 0, this.hls = t, this.registerListeners() } var e = t.prototype; return e.setStreamController = function (t) { this.streamController = t }, e.registerListeners = function () { this.hls.on(S.MEDIA_ATTACHING, this.onMediaAttaching, this) }, e.unregisterListeners = function () { this.hls.off(S.MEDIA_ATTACHING, this.onMediaAttaching, this) }, e.destroy = function () { this.timer && clearInterval(this.timer), this.unregisterListeners(), this.isVideoPlaybackQualityAvailable = !1, this.media = null }, e.onMediaAttaching = function (t, e) { var r = this.hls.config; if (r.capLevelOnFPSDrop) { var i = e.media instanceof self.HTMLVideoElement ? e.media : null; this.media = i, i && "function" == typeof i.getVideoPlaybackQuality && (this.isVideoPlaybackQualityAvailable = !0), self.clearInterval(this.timer), this.timer = self.setInterval(this.checkFPSInterval.bind(this), r.fpsDroppedMonitoringPeriod) } }, e.checkFPS = function (t, e, r) { var i = performance.now(); if (e) { if (this.lastTime) { var n = i - this.lastTime, a = r - this.lastDroppedFrames, s = e - this.lastDecodedFrames, o = 1e3 * a / n, l = this.hls; if (l.trigger(S.FPS_DROP, { currentDropped: a, currentDecoded: s, totalDroppedFrames: r }), o > 0 && a > l.config.fpsDroppedMonitoringThreshold * s) { var u = l.currentLevel; w.warn("drop FPS ratio greater than max allowed value for currentLevel: " + u), u > 0 && (-1 === l.autoLevelCapping || l.autoLevelCapping >= u) && (u -= 1, l.trigger(S.FPS_DROP_LEVEL_CAPPING, { level: u, droppedLevel: l.currentLevel }), l.autoLevelCapping = u, this.streamController.nextLevelSwitch()) } } this.lastTime = i, this.lastDroppedFrames = r, this.lastDecodedFrames = e } }, e.checkFPSInterval = function () { var t = this.media; if (t) if (this.isVideoPlaybackQualityAvailable) { var e = t.getVideoPlaybackQuality(); this.checkFPS(t, e.totalVideoFrames, e.droppedVideoFrames) } else this.checkFPS(t, t.webkitDecodedFrameCount, t.webkitDroppedFrameCount) }, t }(), Ja = "[eme]", $a = function () { function t(e) { this.hls = void 0, this.config = void 0, this.media = null, this.keyFormatPromise = null, this.keySystemAccessPromises = {}, this._requestLicenseFailureCount = 0, this.mediaKeySessions = [], this.keyIdToKeySessionPromise = {}, this.setMediaKeysQueue = t.CDMCleanupPromise ? [t.CDMCleanupPromise] : [], this.onMediaEncrypted = this._onMediaEncrypted.bind(this), this.onWaitingForKey = this._onWaitingForKey.bind(this), this.debug = w.debug.bind(w, Ja), this.log = w.log.bind(w, Ja), this.warn = w.warn.bind(w, Ja), this.error = w.error.bind(w, Ja), this.hls = e, this.config = e.config, this.registerListeners() } var e = t.prototype; return e.destroy = function () { this.unregisterListeners(), this.onMediaDetached(); var t = this.config; t.requestMediaKeySystemAccessFunc = null, t.licenseXhrSetup = t.licenseResponseCallback = void 0, t.drmSystems = t.drmSystemOptions = {}, this.hls = this.onMediaEncrypted = this.onWaitingForKey = this.keyIdToKeySessionPromise = null, this.config = null }, e.registerListeners = function () { this.hls.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.on(S.MEDIA_DETACHED, this.onMediaDetached, this), this.hls.on(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.on(S.MANIFEST_LOADED, this.onManifestLoaded, this) }, e.unregisterListeners = function () { this.hls.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), this.hls.off(S.MEDIA_DETACHED, this.onMediaDetached, this), this.hls.off(S.MANIFEST_LOADING, this.onManifestLoading, this), this.hls.off(S.MANIFEST_LOADED, this.onManifestLoaded, this) }, e.getLicenseServerUrl = function (t) { var e = this.config, r = e.drmSystems, i = e.widevineLicenseUrl, n = r[t]; if (n) return n.licenseUrl; if (t === q.WIDEVINE && i) return i; throw new Error('no license server URL configured for key-system "' + t + '"') }, e.getServerCertificateUrl = function (t) { var e = this.config.drmSystems[t]; if (e) return e.serverCertificateUrl; this.log('No Server Certificate in config.drmSystems["' + t + '"]') }, e.attemptKeySystemAccess = function (t) { var e = this, r = this.hls.levels, i = function (t, e, r) { return !!t && r.indexOf(t) === e }, n = r.map((function (t) { return t.audioCodec })).filter(i), a = r.map((function (t) { return t.videoCodec })).filter(i); return n.length + a.length === 0 && a.push("avc1.42e01e"), new Promise((function (r, i) { !function t(s) { var o = s.shift(); e.getMediaKeysPromise(o, n, a).then((function (t) { return r({ keySystem: o, mediaKeys: t }) })).catch((function (e) { s.length ? t(s) : i(e instanceof is ? e : new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_NO_ACCESS, error: e, fatal: !0 }, e.message)) })) }(t) })) }, e.requestMediaKeySystemAccess = function (t, e) { var r = this.config.requestMediaKeySystemAccessFunc; if ("function" != typeof r) { var i = "Configured requestMediaKeySystemAccess is not a function " + r; return null === it && "http:" === self.location.protocol && (i = "navigator.requestMediaKeySystemAccess is not available over insecure protocol " + location.protocol), Promise.reject(new Error(i)) } return r(t, e) }, e.getMediaKeysPromise = function (t, e, r) { var i = this, n = function (t, e, r, i) { var n; switch (t) { case q.FAIRPLAY: n = ["cenc", "sinf"]; break; case q.WIDEVINE: case q.PLAYREADY: n = ["cenc"]; break; case q.CLEARKEY: n = ["cenc", "keyids"]; break; default: throw new Error("Unknown key-system: " + t) }return function (t, e, r, i) { return [{ initDataTypes: t, persistentState: i.persistentState || "optional", distinctiveIdentifier: i.distinctiveIdentifier || "optional", sessionTypes: i.sessionTypes || [i.sessionType || "temporary"], audioCapabilities: e.map((function (t) { return { contentType: 'audio/mp4; codecs="' + t + '"', robustness: i.audioRobustness || "", encryptionScheme: i.audioEncryptionScheme || null } })), videoCapabilities: r.map((function (t) { return { contentType: 'video/mp4; codecs="' + t + '"', robustness: i.videoRobustness || "", encryptionScheme: i.videoEncryptionScheme || null } })) }] }(n, e, r, i) }(t, e, r, this.config.drmSystemOptions), a = this.keySystemAccessPromises[t], s = null == a ? void 0 : a.keySystemAccess; if (!s) { this.log('Requesting encrypted media "' + t + '" key-system access with config: ' + JSON.stringify(n)), s = this.requestMediaKeySystemAccess(t, n); var o = this.keySystemAccessPromises[t] = { keySystemAccess: s }; return s.catch((function (e) { i.log('Failed to obtain access to key-system "' + t + '": ' + e) })), s.then((function (e) { i.log('Access for key-system "' + e.keySystem + '" obtained'); var r = i.fetchServerCertificate(t); return i.log('Create media-keys for "' + t + '"'), o.mediaKeys = e.createMediaKeys().then((function (e) { return i.log('Media-keys created for "' + t + '"'), r.then((function (r) { return r ? i.setMediaKeysServerCertificate(e, t, r) : e })) })), o.mediaKeys.catch((function (e) { i.error('Failed to create media-keys for "' + t + '"}: ' + e) })), o.mediaKeys })) } return s.then((function () { return a.mediaKeys })) }, e.createMediaKeySessionContext = function (t) { var e = t.decryptdata, r = t.keySystem, i = t.mediaKeys; this.log('Creating key-system session "' + r + '" keyId: ' + Lt(e.keyId || [])); var n = i.createSession(), a = { decryptdata: e, keySystem: r, mediaKeys: i, mediaKeysSession: n, keyStatus: "status-pending" }; return this.mediaKeySessions.push(a), a }, e.renewKeySession = function (t) { var e = t.decryptdata; if (e.pssh) { var r = this.createMediaKeySessionContext(t), i = this.getKeyIdString(e); this.keyIdToKeySessionPromise[i] = this.generateRequestWithPreferredKeySession(r, "cenc", e.pssh, "expired") } else this.warn("Could not renew expired session. Missing pssh initData."); this.removeSession(t) }, e.getKeyIdString = function (t) { if (!t) throw new Error("Could not read keyId of undefined decryptdata"); if (null === t.keyId) throw new Error("keyId is null"); return Lt(t.keyId) }, e.updateKeySession = function (t, e) { var r, i = t.mediaKeysSession; return this.log('Updating key-session "' + i.sessionId + '" for keyID ' + Lt((null == (r = t.decryptdata) ? void 0 : r.keyId) || []) + "\n } (data length: " + (e ? e.byteLength : e) + ")"), i.update(e) }, e.selectKeySystemFormat = function (t) { var e = Object.keys(t.levelkeys || {}); return this.keyFormatPromise || (this.log("Selecting key-system from fragment (sn: " + t.sn + " " + t.type + ": " + t.level + ") key formats " + e.join(", ")), this.keyFormatPromise = this.getKeyFormatPromise(e)), this.keyFormatPromise }, e.getKeyFormatPromise = function (t) { var e = this; return new Promise((function (r, i) { var n = et(e.config), a = t.map($).filter((function (t) { return !!t && -1 !== n.indexOf(t) })); return e.getKeySystemSelectionPromise(a).then((function (t) { var e = t.keySystem, n = tt(e); n ? r(n) : i(new Error('Unable to find format for key-system "' + e + '"')) })).catch(i) })) }, e.loadKey = function (t) { var e = this, r = t.keyInfo.decryptdata, i = this.getKeyIdString(r), n = "(keyId: " + i + ' format: "' + r.keyFormat + '" method: ' + r.method + " uri: " + r.uri + ")"; this.log("Starting session for key " + n); var a = this.keyIdToKeySessionPromise[i]; return a || (a = this.keyIdToKeySessionPromise[i] = this.getKeySystemForKeyPromise(r).then((function (i) { var a = i.keySystem, s = i.mediaKeys; return e.throwIfDestroyed(), e.log("Handle encrypted media sn: " + t.frag.sn + " " + t.frag.type + ": " + t.frag.level + " using key " + n), e.attemptSetMediaKeys(a, s).then((function () { e.throwIfDestroyed(); var t = e.createMediaKeySessionContext({ keySystem: a, mediaKeys: s, decryptdata: r }); return e.generateRequestWithPreferredKeySession(t, "cenc", r.pssh, "playlist-key") })) }))).catch((function (t) { return e.handleError(t) })), a }, e.throwIfDestroyed = function (t) { if (!this.hls) throw new Error("invalid state") }, e.handleError = function (t) { this.hls && (this.error(t.message), t instanceof is ? this.hls.trigger(S.ERROR, t.data) : this.hls.trigger(S.ERROR, { type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_NO_KEYS, error: t, fatal: !0 })) }, e.getKeySystemForKeyPromise = function (t) { var e = this.getKeyIdString(t), r = this.keyIdToKeySessionPromise[e]; if (!r) { var i = $(t.keyFormat), n = i ? [i] : et(this.config); return this.attemptKeySystemAccess(n) } return r }, e.getKeySystemSelectionPromise = function (t) { if (t.length || (t = et(this.config)), 0 === t.length) throw new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_NO_CONFIGURED_LICENSE, fatal: !0 }, "Missing key-system license configuration options " + JSON.stringify({ drmSystems: this.config.drmSystems })); return this.attemptKeySystemAccess(t) }, e._onMediaEncrypted = function (t) { var e = this, r = t.initDataType, i = t.initData; if (this.debug('"' + t.type + '" event: init data type: "' + r + '"'), null !== i) { var n, a; if ("sinf" === r && this.config.drmSystems[q.FAIRPLAY]) { var s = bt(new Uint8Array(i)); try { var o = V(JSON.parse(s).sinf), l = Bt(new Uint8Array(o)); if (!l) return; n = l.subarray(8, 24), a = q.FAIRPLAY } catch (t) { return void this.warn('Failed to parse sinf "encrypted" event message initData') } } else { var u = function (t) { if (!(t instanceof ArrayBuffer) || t.byteLength < 32) return null; var e = { version: 0, systemId: "", kids: null, data: null }, r = new DataView(t), i = r.getUint32(0); if (t.byteLength !== i && i > 44) return null; if (1886614376 !== r.getUint32(4)) return null; if (e.version = r.getUint32(8) >>> 24, e.version > 1) return null; e.systemId = Lt(new Uint8Array(t, 12, 16)); var n = r.getUint32(28); if (0 === e.version) { if (i - 32 < n) return null; e.data = new Uint8Array(t, 32, n) } else if (1 === e.version) { e.kids = []; for (var a = 0; a < n; a++)e.kids.push(new Uint8Array(t, 32 + 16 * a, 16)) } return e }(i); if (null === u) return; 0 === u.version && u.systemId === Z && u.data && (n = u.data.subarray(8, 24)), a = function (t) { if (t === Z) return q.WIDEVINE }(u.systemId) } if (a && n) { for (var h, d = Lt(n), c = this.keyIdToKeySessionPromise, f = this.mediaKeySessions, g = c[d], v = function () { var t = f[m], a = t.decryptdata; if (a.pssh || !a.keyId) return 0; var s = Lt(a.keyId); return d === s || -1 !== a.uri.replace(/-/g, "").indexOf(d) ? (g = c[s], delete c[s], a.pssh = new Uint8Array(i), a.keyId = n, g = c[d] = g.then((function () { return e.generateRequestWithPreferredKeySession(t, r, i, "encrypted-event-key-match") })), 1) : void 0 }, m = 0; m < f.length && (0 === (h = v()) || 1 !== h); m++); g || (g = c[d] = this.getKeySystemSelectionPromise([a]).then((function (t) { var a, s = t.keySystem, o = t.mediaKeys; e.throwIfDestroyed(); var l = new Xt("ISO-23001-7", d, null != (a = tt(s)) ? a : ""); return l.pssh = new Uint8Array(i), l.keyId = n, e.attemptSetMediaKeys(s, o).then((function () { e.throwIfDestroyed(); var t = e.createMediaKeySessionContext({ decryptdata: l, keySystem: s, mediaKeys: o }); return e.generateRequestWithPreferredKeySession(t, r, i, "encrypted-event-no-match") })) }))), g.catch((function (t) { return e.handleError(t) })) } } }, e._onWaitingForKey = function (t) { this.log('"' + t.type + '" event') }, e.attemptSetMediaKeys = function (t, e) { var r = this, i = this.setMediaKeysQueue.slice(); this.log('Setting media-keys for "' + t + '"'); var n = Promise.all(i).then((function () { if (!r.media) throw new Error("Attempted to set mediaKeys without media element attached"); return r.media.setMediaKeys(e) })); return this.setMediaKeysQueue.push(n), n.then((function () { r.log('Media-keys set for "' + t + '"'), i.push(n), r.setMediaKeysQueue = r.setMediaKeysQueue.filter((function (t) { return -1 === i.indexOf(t) })) })) }, e.generateRequestWithPreferredKeySession = function (t, e, r, i) { var n, a, s = this, o = null == (n = this.config.drmSystems) || null == (a = n[t.keySystem]) ? void 0 : a.generateRequest; if (o) try { var l = o.call(this.hls, e, r, t); if (!l) throw new Error("Invalid response from configured generateRequest filter"); e = l.initDataType, r = t.decryptdata.pssh = l.initData ? new Uint8Array(l.initData) : null } catch (t) { var u; if (this.warn(t.message), null != (u = this.hls) && u.config.debug) throw t } if (null === r) return this.log('Skipping key-session request for "' + i + '" (no initData)'), Promise.resolve(t); var h = this.getKeyIdString(t.decryptdata); this.log('Generating key-session request for "' + i + '": ' + h + " (init data type: " + e + " length: " + (r ? r.byteLength : null) + ")"); var d = new Nn, c = t._onmessage = function (e) { var r = t.mediaKeysSession; if (r) { var i = e.messageType, n = e.message; s.log('"' + i + '" message event for session "' + r.sessionId + '" message size: ' + n.byteLength), "license-request" === i || "license-renewal" === i ? s.renewLicense(t, n).catch((function (t) { s.handleError(t), d.emit("error", t) })) : "license-release" === i ? t.keySystem === q.FAIRPLAY && (s.updateKeySession(t, W("acknowledged")), s.removeSession(t)) : s.warn('unhandled media key message type "' + i + '"') } else d.emit("error", new Error("invalid state")) }, f = t._onkeystatuseschange = function (e) { if (t.mediaKeysSession) { s.onKeyStatusChange(t); var r = t.keyStatus; d.emit("keyStatus", r), "expired" === r && (s.warn(t.keySystem + " expired for key " + h), s.renewKeySession(t)) } else d.emit("error", new Error("invalid state")) }; t.mediaKeysSession.addEventListener("message", c), t.mediaKeysSession.addEventListener("keystatuseschange", f); var g = new Promise((function (t, e) { d.on("error", e), d.on("keyStatus", (function (r) { r.startsWith("usable") ? t() : "output-restricted" === r ? e(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED, fatal: !1 }, "HDCP level output restricted")) : "internal-error" === r ? e(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_STATUS_INTERNAL_ERROR, fatal: !0 }, 'key status changed to "' + r + '"')) : "expired" === r ? e(new Error("key expired while generating request")) : s.warn('unhandled key status change "' + r + '"') })) })); return t.mediaKeysSession.generateRequest(e, r).then((function () { var e; s.log('Request generated for key-session "' + (null == (e = t.mediaKeysSession) ? void 0 : e.sessionId) + '" keyId: ' + h) })).catch((function (t) { throw new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_NO_SESSION, error: t, fatal: !1 }, "Error generating key-session request: " + t) })).then((function () { return g })).catch((function (e) { throw d.removeAllListeners(), s.removeSession(t), e })).then((function () { return d.removeAllListeners(), t })) }, e.onKeyStatusChange = function (t) { var e = this; t.mediaKeysSession.keyStatuses.forEach((function (r, i) { e.log('key status change "' + r + '" for keyStatuses keyId: ' + Lt("buffer" in i ? new Uint8Array(i.buffer, i.byteOffset, i.byteLength) : new Uint8Array(i)) + " session keyId: " + Lt(new Uint8Array(t.decryptdata.keyId || [])) + " uri: " + t.decryptdata.uri), t.keyStatus = r })) }, e.fetchServerCertificate = function (t) { var e = this.config, r = new (0, e.loader)(e), n = this.getServerCertificateUrl(t); return n ? (this.log('Fetching server certificate for "' + t + '"'), new Promise((function (a, s) { var o = { responseType: "arraybuffer", url: n }, l = e.certLoadPolicy.default, u = { loadPolicy: l, timeout: l.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0 }, h = { onSuccess: function (t, e, r, i) { a(t.data) }, onError: function (e, r, a, l) { s(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED, fatal: !0, networkDetails: a, response: i({ url: o.url, data: void 0 }, e) }, '"' + t + '" certificate request failed (' + n + "). Status: " + e.code + " (" + e.text + ")")) }, onTimeout: function (e, r, i) { s(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED, fatal: !0, networkDetails: i, response: { url: o.url, data: void 0 } }, '"' + t + '" certificate request timed out (' + n + ")")) }, onAbort: function (t, e, r) { s(new Error("aborted")) } }; r.load(o, u, h) }))) : Promise.resolve() }, e.setMediaKeysServerCertificate = function (t, e, r) { var i = this; return new Promise((function (n, a) { t.setServerCertificate(r).then((function (a) { i.log("setServerCertificate " + (a ? "success" : "not supported by CDM") + " (" + (null == r ? void 0 : r.byteLength) + ') on "' + e + '"'), n(t) })).catch((function (t) { a(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED, error: t, fatal: !0 }, t.message)) })) })) }, e.renewLicense = function (t, e) { var r = this; return this.requestLicense(t, new Uint8Array(e)).then((function (e) { return r.updateKeySession(t, new Uint8Array(e)).catch((function (t) { throw new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_SESSION_UPDATE_FAILED, error: t, fatal: !0 }, t.message) })) })) }, e.unpackPlayReadyKeyMessage = function (t, e) { var r = String.fromCharCode.apply(null, new Uint16Array(e.buffer)); if (!r.includes("PlayReadyKeyMessage")) return t.setRequestHeader("Content-Type", "text/xml; charset=utf-8"), e; var i = (new DOMParser).parseFromString(r, "application/xml"), n = i.querySelectorAll("HttpHeader"); if (n.length > 0) for (var a, s = 0, o = n.length; s < o; s++) { var l, u, h = null == (l = (a = n[s]).querySelector("name")) ? void 0 : l.textContent, d = null == (u = a.querySelector("value")) ? void 0 : u.textContent; h && d && t.setRequestHeader(h, d) } var c = i.querySelector("Challenge"), f = null == c ? void 0 : c.textContent; if (!f) throw new Error("Cannot find in key message"); return W(atob(f)) }, e.setupLicenseXHR = function (t, e, r, i) { var n = this, a = this.config.licenseXhrSetup; return a ? Promise.resolve().then((function () { if (!r.decryptdata) throw new Error("Key removed"); return a.call(n.hls, t, e, r, i) })).catch((function (s) { if (!r.decryptdata) throw s; return t.open("POST", e, !0), a.call(n.hls, t, e, r, i) })).then((function (r) { return t.readyState || t.open("POST", e, !0), { xhr: t, licenseChallenge: r || i } })) : (t.open("POST", e, !0), Promise.resolve({ xhr: t, licenseChallenge: i })) }, e.requestLicense = function (t, e) { var r = this, i = this.config.keyLoadPolicy.default; return new Promise((function (n, a) { var s = r.getLicenseServerUrl(t.keySystem); r.log("Sending license request to URL: " + s); var o = new XMLHttpRequest; o.responseType = "arraybuffer", o.onreadystatechange = function () { if (!r.hls || !t.mediaKeysSession) return a(new Error("invalid state")); if (4 === o.readyState) if (200 === o.status) { r._requestLicenseFailureCount = 0; var l = o.response; r.log("License received " + (l instanceof ArrayBuffer ? l.byteLength : l)); var u = r.config.licenseResponseCallback; if (u) try { l = u.call(r.hls, o, s, t) } catch (t) { r.error(t) } n(l) } else { var h = i.errorRetry, d = h ? h.maxNumRetry : 0; if (r._requestLicenseFailureCount++, r._requestLicenseFailureCount > d || o.status >= 400 && o.status < 500) a(new is({ type: L.KEY_SYSTEM_ERROR, details: A.KEY_SYSTEM_LICENSE_REQUEST_FAILED, fatal: !0, networkDetails: o, response: { url: s, data: void 0, code: o.status, text: o.statusText } }, "License Request XHR failed (" + s + "). Status: " + o.status + " (" + o.statusText + ")")); else { var c = d - r._requestLicenseFailureCount + 1; r.warn("Retrying license request, " + c + " attempts left"), r.requestLicense(t, e).then(n, a) } } }, t.licenseXhr && t.licenseXhr.readyState !== XMLHttpRequest.DONE && t.licenseXhr.abort(), t.licenseXhr = o, r.setupLicenseXHR(o, s, t, e).then((function (e) { var i = e.xhr, n = e.licenseChallenge; t.keySystem == q.PLAYREADY && (n = r.unpackPlayReadyKeyMessage(i, n)), i.send(n) })) })) }, e.onMediaAttached = function (t, e) { if (this.config.emeEnabled) { var r = e.media; this.media = r, r.addEventListener("encrypted", this.onMediaEncrypted), r.addEventListener("waitingforkey", this.onWaitingForKey) } }, e.onMediaDetached = function () { var e = this, r = this.media, i = this.mediaKeySessions; r && (r.removeEventListener("encrypted", this.onMediaEncrypted), r.removeEventListener("waitingforkey", this.onWaitingForKey), this.media = null), this._requestLicenseFailureCount = 0, this.setMediaKeysQueue = [], this.mediaKeySessions = [], this.keyIdToKeySessionPromise = {}, Xt.clearKeyUriToKeyIdMap(); var n = i.length; t.CDMCleanupPromise = Promise.all(i.map((function (t) { return e.removeSession(t) })).concat(null == r ? void 0 : r.setMediaKeys(null).catch((function (t) { e.log("Could not clear media keys: " + t) })))).then((function () { n && (e.log("finished closing key sessions and clearing media keys"), i.length = 0) })).catch((function (t) { e.log("Could not close sessions and clear media keys: " + t) })) }, e.onManifestLoading = function () { this.keyFormatPromise = null }, e.onManifestLoaded = function (t, e) { var r = e.sessionKeys; if (r && this.config.emeEnabled && !this.keyFormatPromise) { var i = r.reduce((function (t, e) { return -1 === t.indexOf(e.keyFormat) && t.push(e.keyFormat), t }), []); this.log("Selecting key-system from session-keys " + i.join(", ")), this.keyFormatPromise = this.getKeyFormatPromise(i) } }, e.removeSession = function (t) { var e = this, r = t.mediaKeysSession, i = t.licenseXhr; if (r) { this.log("Remove licenses and keys and close session " + r.sessionId), t._onmessage && (r.removeEventListener("message", t._onmessage), t._onmessage = void 0), t._onkeystatuseschange && (r.removeEventListener("keystatuseschange", t._onkeystatuseschange), t._onkeystatuseschange = void 0), i && i.readyState !== XMLHttpRequest.DONE && i.abort(), t.mediaKeysSession = t.decryptdata = t.licenseXhr = void 0; var n = this.mediaKeySessions.indexOf(t); return n > -1 && this.mediaKeySessions.splice(n, 1), r.remove().catch((function (t) { e.log("Could not remove session: " + t) })).then((function () { return r.close() })).catch((function (t) { e.log("Could not close session: " + t) })) } }, t }(); $a.CDMCleanupPromise = void 0; var Za, ts, es, rs, is = function (t) { function e(e, r) { var i; return (i = t.call(this, r) || this).data = void 0, e.error || (e.error = new Error(r)), i.data = e, e.err = e.error, i } return l(e, t), e }(c(Error)); !function (t) { t.MANIFEST = "m", t.AUDIO = "a", t.VIDEO = "v", t.MUXED = "av", t.INIT = "i", t.CAPTION = "c", t.TIMED_TEXT = "tt", t.KEY = "k", t.OTHER = "o" }(Za || (Za = {})), function (t) { t.DASH = "d", t.HLS = "h", t.SMOOTH = "s", t.OTHER = "o" }(ts || (ts = {})), function (t) { t.OBJECT = "CMCD-Object", t.REQUEST = "CMCD-Request", t.SESSION = "CMCD-Session", t.STATUS = "CMCD-Status" }(es || (es = {})); var ns = ((rs = {})[es.OBJECT] = ["br", "d", "ot", "tb"], rs[es.REQUEST] = ["bl", "dl", "mtp", "nor", "nrr", "su"], rs[es.SESSION] = ["cid", "pr", "sf", "sid", "st", "v"], rs[es.STATUS] = ["bs", "rtp"], rs), as = function t(e, r) { this.value = void 0, this.params = void 0, Array.isArray(e) && (e = e.map((function (e) { return e instanceof t ? e : new t(e) }))), this.value = e, this.params = r }, ss = function (t) { this.description = void 0, this.description = t }, os = "Dict"; function ls(t, e, r, i) { return new Error("failed to " + t + ' "' + (n = e, (Array.isArray(n) ? JSON.stringify(n) : n instanceof Map ? "Map{}" : n instanceof Set ? "Set{}" : "object" == typeof n ? JSON.stringify(n) : String(n)) + '" as ') + r, { cause: i }); var n } var us = "Bare Item", hs = "Boolean", ds = "Byte Sequence", cs = "Decimal", fs = "Integer", gs = /[\x00-\x1f\x7f]+/, vs = "Token", ms = "Key"; function ps(t, e, r) { return ls("serialize", t, e, r) } function ys(t) { if (!1 === ArrayBuffer.isView(t)) throw ps(t, ds); return ":" + (e = t, btoa(String.fromCharCode.apply(String, e)) + ":"); var e } function Es(t) { if (function (t) { return t < -999999999999999 || 999999999999999 < t }(t)) throw ps(t, fs); return t.toString() } function Ts(t, e) { if (t < 0) return -Ts(-t, e); var r = Math.pow(10, e); if (Math.abs(t * r % 1 - .5) < Number.EPSILON) { var i = Math.floor(t * r); return (i % 2 == 0 ? i : i + 1) / r } return Math.round(t * r) / r } function Ss(t) { var e = Ts(t, 3); if (Math.floor(Math.abs(e)).toString().length > 12) throw ps(t, cs); var r = e.toString(); return r.includes(".") ? r : r + ".0" } var Ls = "String"; function As(t) { var e, r = (e = t).description || e.toString().slice(7, -1); if (!1 === /^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(r)) throw ps(r, vs); return r } function Rs(t) { switch (typeof t) { case "number": if (!y(t)) throw ps(t, us); return Number.isInteger(t) ? Es(t) : Ss(t); case "string": return function (t) { if (gs.test(t)) throw ps(t, Ls); return '"' + t.replace(/\\/g, "\\\\").replace(/"/g, '\\"') + '"' }(t); case "symbol": return As(t); case "boolean": return function (t) { if ("boolean" != typeof t) throw ps(t, hs); return t ? "?1" : "?0" }(t); case "object": if (t instanceof Date) return function (t) { return "@" + Es(t.getTime() / 1e3) }(t); if (t instanceof Uint8Array) return ys(t); if (t instanceof ss) return As(t); default: throw ps(t, us) } } function ks(t) { if (!1 === /^[a-z*][a-z0-9\-_.*]*$/.test(t)) throw ps(t, ms); return t } function bs(t) { return null == t ? "" : Object.entries(t).map((function (t) { var e = t[0], r = t[1]; return !0 === r ? ";" + ks(e) : ";" + ks(e) + "=" + Rs(r) })).join("") } function Ds(t) { return t instanceof as ? "" + Rs(t.value) + bs(t.params) : Rs(t) } function Is(t, e) { var r; if (void 0 === e && (e = { whitespace: !0 }), "object" != typeof t) throw ps(t, os); var i = t instanceof Map ? t.entries() : Object.entries(t), n = null != (r = e) && r.whitespace ? " " : ""; return Array.from(i).map((function (t) { var e = t[0], r = t[1]; r instanceof as == 0 && (r = new as(r)); var i, n = ks(e); return !0 === r.value ? n += bs(r.params) : (n += "=", Array.isArray(r.value) ? n += "(" + (i = r).value.map(Ds).join(" ") + ")" + bs(i.params) : n += Ds(r)), n })).join("," + n) } var ws = function (t) { return "ot" === t || "sf" === t || "st" === t }, Cs = function (t) { return "number" == typeof t ? y(t) : null != t && "" !== t && !1 !== t }, _s = function (t) { return Math.round(t) }, xs = function (t) { return 100 * _s(t / 100) }, Ps = { br: _s, d: _s, bl: xs, dl: xs, mtp: xs, nor: function (t, e) { return null != e && e.baseUrl && (t = function (t, e) { var r = new URL(t), i = new URL(e); if (r.origin !== i.origin) return t; for (var n = r.pathname.split("/").slice(1), a = i.pathname.split("/").slice(1, -1); n[0] === a[0];)n.shift(), a.shift(); for (; a.length;)a.shift(), n.unshift(".."); return n.join("/") }(t, e.baseUrl)), encodeURIComponent(t) }, rtp: xs, tb: _s }; function Fs(t, e) { return void 0 === e && (e = {}), t ? function (t, e) { return Is(t, e) }(function (t, e) { var r = {}; if (null == t || "object" != typeof t) return r; var i = Object.keys(t).sort(), n = o({}, Ps, null == e ? void 0 : e.formatters), a = null == e ? void 0 : e.filter; return i.forEach((function (i) { if (null == a || !a(i)) { var s = t[i], o = n[i]; o && (s = o(s, e)), "v" === i && 1 === s || "pr" == i && 1 === s || Cs(s) && (ws(i) && "string" == typeof s && (s = new ss(s)), r[i] = s) } })), r }(t, e), o({ whitespace: !1 }, e)) : "" } function Ms(t, e, r) { return o(t, function (t, e) { var r; if (void 0 === e && (e = {}), !t) return {}; var i = Object.entries(t), n = Object.entries(ns).concat(Object.entries((null == (r = e) ? void 0 : r.customHeaderMap) || {})), a = i.reduce((function (t, e) { var r, i = e[0], a = e[1], s = (null == (r = n.find((function (t) { return t[1].includes(i) }))) ? void 0 : r[0]) || es.REQUEST; return null != t[s] || (t[s] = {}), t[s][i] = a, t }), {}); return Object.entries(a).reduce((function (t, r) { var i = r[0], n = r[1]; return t[i] = Fs(n, e), t }), {}) }(e, r)) } var Os = "CMCD", Ns = /CMCD=[^&#]+/; function Us(t, e, r) { var i = function (t, e) { if (void 0 === e && (e = {}), !t) return ""; var r = Fs(t, e); return Os + "=" + encodeURIComponent(r) }(e, r); if (!i) return t; if (Ns.test(t)) return t.replace(Ns, i); var n = t.includes("?") ? "&" : "?"; return "" + t + n + i } var Bs = function () { function t(t) { var e = this; this.hls = void 0, this.config = void 0, this.media = void 0, this.sid = void 0, this.cid = void 0, this.useHeaders = !1, this.includeKeys = void 0, this.initialized = !1, this.starved = !1, this.buffering = !0, this.audioBuffer = void 0, this.videoBuffer = void 0, this.onWaiting = function () { e.initialized && (e.starved = !0), e.buffering = !0 }, this.onPlaying = function () { e.initialized || (e.initialized = !0), e.buffering = !1 }, this.applyPlaylistData = function (t) { try { e.apply(t, { ot: Za.MANIFEST, su: !e.initialized }) } catch (t) { w.warn("Could not generate manifest CMCD data.", t) } }, this.applyFragmentData = function (t) { try { var r = t.frag, i = e.hls.levels[r.level], n = e.getObjectType(r), a = { d: 1e3 * r.duration, ot: n }; n !== Za.VIDEO && n !== Za.AUDIO && n != Za.MUXED || (a.br = i.bitrate / 1e3, a.tb = e.getTopBandwidth(n) / 1e3, a.bl = e.getBufferLength(n)), e.apply(t, a) } catch (t) { w.warn("Could not generate segment CMCD data.", t) } }, this.hls = t; var r = this.config = t.config, i = r.cmcd; null != i && (r.pLoader = this.createPlaylistLoader(), r.fLoader = this.createFragmentLoader(), this.sid = i.sessionId || function () { try { return crypto.randomUUID() } catch (i) { try { var t = URL.createObjectURL(new Blob), e = t.toString(); return URL.revokeObjectURL(t), e.slice(e.lastIndexOf("/") + 1) } catch (t) { var r = (new Date).getTime(); return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function (t) { var e = (r + 16 * Math.random()) % 16 | 0; return r = Math.floor(r / 16), ("x" == t ? e : 3 & e | 8).toString(16) })) } } }(), this.cid = i.contentId, this.useHeaders = !0 === i.useHeaders, this.includeKeys = i.includeKeys, this.registerListeners()) } var e = t.prototype; return e.registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHED, this.onMediaDetached, this), t.on(S.BUFFER_CREATED, this.onBufferCreated, this) }, e.unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHED, this.onMediaDetached, this), t.off(S.BUFFER_CREATED, this.onBufferCreated, this) }, e.destroy = function () { this.unregisterListeners(), this.onMediaDetached(), this.hls = this.config = this.audioBuffer = this.videoBuffer = null, this.onWaiting = this.onPlaying = null }, e.onMediaAttached = function (t, e) { this.media = e.media, this.media.addEventListener("waiting", this.onWaiting), this.media.addEventListener("playing", this.onPlaying) }, e.onMediaDetached = function () { this.media && (this.media.removeEventListener("waiting", this.onWaiting), this.media.removeEventListener("playing", this.onPlaying), this.media = null) }, e.onBufferCreated = function (t, e) { var r, i; this.audioBuffer = null == (r = e.tracks.audio) ? void 0 : r.buffer, this.videoBuffer = null == (i = e.tracks.video) ? void 0 : i.buffer }, e.createData = function () { var t; return { v: 1, sf: ts.HLS, sid: this.sid, cid: this.cid, pr: null == (t = this.media) ? void 0 : t.playbackRate, mtp: this.hls.bandwidthEstimate / 1e3 } }, e.apply = function (t, e) { void 0 === e && (e = {}), o(e, this.createData()); var r = e.ot === Za.INIT || e.ot === Za.VIDEO || e.ot === Za.MUXED; this.starved && r && (e.bs = !0, e.su = !0, this.starved = !1), null == e.su && (e.su = this.buffering); var i = this.includeKeys; i && (e = Object.keys(e).reduce((function (t, r) { return i.includes(r) && (t[r] = e[r]), t }), {})), this.useHeaders ? (t.headers || (t.headers = {}), Ms(t.headers, e)) : t.url = Us(t.url, e) }, e.getObjectType = function (t) { var e = t.type; return "subtitle" === e ? Za.TIMED_TEXT : "initSegment" === t.sn ? Za.INIT : "audio" === e ? Za.AUDIO : "main" === e ? this.hls.audioTracks.length ? Za.VIDEO : Za.MUXED : void 0 }, e.getTopBandwidth = function (t) { var e, r = 0, i = this.hls; if (t === Za.AUDIO) e = i.audioTracks; else { var n = i.maxAutoLevel, a = n > -1 ? n + 1 : i.levels.length; e = i.levels.slice(0, a) } for (var s, o = g(e); !(s = o()).done;) { var l = s.value; l.bitrate > r && (r = l.bitrate) } return r > 0 ? r : NaN }, e.getBufferLength = function (t) { var e = this.hls.media, r = t === Za.AUDIO ? this.audioBuffer : this.videoBuffer; return r && e ? 1e3 * Jr.bufferInfo(r, e.currentTime, this.config.maxBufferHole).len : NaN }, e.createPlaylistLoader = function () { var t = this.config.pLoader, e = this.applyPlaylistData, r = t || this.config.loader; return function () { function t(t) { this.loader = void 0, this.loader = new r(t) } var i = t.prototype; return i.destroy = function () { this.loader.destroy() }, i.abort = function () { this.loader.abort() }, i.load = function (t, r, i) { e(t), this.loader.load(t, r, i) }, s(t, [{ key: "stats", get: function () { return this.loader.stats } }, { key: "context", get: function () { return this.loader.context } }]), t }() }, e.createFragmentLoader = function () { var t = this.config.fLoader, e = this.applyFragmentData, r = t || this.config.loader; return function () { function t(t) { this.loader = void 0, this.loader = new r(t) } var i = t.prototype; return i.destroy = function () { this.loader.destroy() }, i.abort = function () { this.loader.abort() }, i.load = function (t, r, i) { e(t), this.loader.load(t, r, i) }, s(t, [{ key: "stats", get: function () { return this.loader.stats } }, { key: "context", get: function () { return this.loader.context } }]), t }() }, t }(), Gs = function () { function t(t) { this.hls = void 0, this.log = void 0, this.loader = null, this.uri = null, this.pathwayId = ".", this.pathwayPriority = null, this.timeToLoad = 300, this.reloadTimer = -1, this.updated = 0, this.started = !1, this.enabled = !0, this.levels = null, this.audioTracks = null, this.subtitleTracks = null, this.penalizedPathways = {}, this.hls = t, this.log = w.log.bind(w, "[content-steering]:"), this.registerListeners() } var e = t.prototype; return e.registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.ERROR, this.onError, this) }, e.unregisterListeners = function () { var t = this.hls; t && (t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.ERROR, this.onError, this)) }, e.startLoad = function () { if (this.started = !0, this.clearTimeout(), this.enabled && this.uri) { if (this.updated) { var t = 1e3 * this.timeToLoad - (performance.now() - this.updated); if (t > 0) return void this.scheduleRefresh(this.uri, t) } this.loadSteeringManifest(this.uri) } }, e.stopLoad = function () { this.started = !1, this.loader && (this.loader.destroy(), this.loader = null), this.clearTimeout() }, e.clearTimeout = function () { -1 !== this.reloadTimer && (self.clearTimeout(this.reloadTimer), this.reloadTimer = -1) }, e.destroy = function () { this.unregisterListeners(), this.stopLoad(), this.hls = null, this.levels = this.audioTracks = this.subtitleTracks = null }, e.removeLevel = function (t) { var e = this.levels; e && (this.levels = e.filter((function (e) { return e !== t }))) }, e.onManifestLoading = function () { this.stopLoad(), this.enabled = !0, this.timeToLoad = 300, this.updated = 0, this.uri = null, this.pathwayId = ".", this.levels = this.audioTracks = this.subtitleTracks = null }, e.onManifestLoaded = function (t, e) { var r = e.contentSteering; null !== r && (this.pathwayId = r.pathwayId, this.uri = r.uri, this.started && this.startLoad()) }, e.onManifestParsed = function (t, e) { this.audioTracks = e.audioTracks, this.subtitleTracks = e.subtitleTracks }, e.onError = function (t, e) { var r = e.errorAction; if ((null == r ? void 0 : r.action) === Lr && r.flags === br) { var i = this.levels, n = this.pathwayPriority, a = this.pathwayId; if (e.context) { var s = e.context, o = s.groupId, l = s.pathwayId, u = s.type; o && i ? a = this.getPathwayForGroupId(o, u, a) : l && (a = l) } a in this.penalizedPathways || (this.penalizedPathways[a] = performance.now()), !n && i && (n = i.reduce((function (t, e) { return -1 === t.indexOf(e.pathwayId) && t.push(e.pathwayId), t }), [])), n && n.length > 1 && (this.updatePathwayPriority(n), r.resolved = this.pathwayId !== a), r.resolved || w.warn("Could not resolve " + e.details + ' ("' + e.error.message + '") with content-steering for Pathway: ' + a + " levels: " + (i ? i.length : i) + " priorities: " + JSON.stringify(n) + " penalized: " + JSON.stringify(this.penalizedPathways)) } }, e.filterParsedLevels = function (t) { this.levels = t; var e = this.getLevelsForPathway(this.pathwayId); if (0 === e.length) { var r = t[0].pathwayId; this.log("No levels found in Pathway " + this.pathwayId + '. Setting initial Pathway to "' + r + '"'), e = this.getLevelsForPathway(r), this.pathwayId = r } return e.length !== t.length ? (this.log("Found " + e.length + "/" + t.length + ' levels in Pathway "' + this.pathwayId + '"'), e) : t }, e.getLevelsForPathway = function (t) { return null === this.levels ? [] : this.levels.filter((function (e) { return t === e.pathwayId })) }, e.updatePathwayPriority = function (t) { var e; this.pathwayPriority = t; var r = this.penalizedPathways, i = performance.now(); Object.keys(r).forEach((function (t) { i - r[t] > 3e5 && delete r[t] })); for (var n = 0; n < t.length; n++) { var a = t[n]; if (!(a in r)) { if (a === this.pathwayId) return; var s = this.hls.nextLoadLevel, o = this.hls.levels[s]; if ((e = this.getLevelsForPathway(a)).length > 0) { this.log('Setting Pathway to "' + a + '"'), this.pathwayId = a, dr(e), this.hls.trigger(S.LEVELS_UPDATED, { levels: e }); var l = this.hls.levels[s]; o && l && this.levels && (l.attrs["STABLE-VARIANT-ID"] !== o.attrs["STABLE-VARIANT-ID"] && l.bitrate !== o.bitrate && this.log("Unstable Pathways change from bitrate " + o.bitrate + " to " + l.bitrate), this.hls.nextLoadLevel = s); break } } } }, e.getPathwayForGroupId = function (t, e, r) { for (var i = this.getLevelsForPathway(r).concat(this.levels || []), n = 0; n < i.length; n++)if (e === De && i[n].hasAudioGroup(t) || e === Ie && i[n].hasSubtitleGroup(t)) return i[n].pathwayId; return r }, e.clonePathways = function (t) { var e = this, r = this.levels; if (r) { var i = {}, n = {}; t.forEach((function (t) { var a = t.ID, s = t["BASE-ID"], o = t["URI-REPLACEMENT"]; if (!r.some((function (t) { return t.pathwayId === a }))) { var l = e.getLevelsForPathway(s).map((function (t) { var e = new x(t.attrs); e["PATHWAY-ID"] = a; var r = e.AUDIO && e.AUDIO + "_clone_" + a, s = e.SUBTITLES && e.SUBTITLES + "_clone_" + a; r && (i[e.AUDIO] = r, e.AUDIO = r), s && (n[e.SUBTITLES] = s, e.SUBTITLES = s); var l = Hs(t.uri, e["STABLE-VARIANT-ID"], "PER-VARIANT-URIS", o), u = new rr({ attrs: e, audioCodec: t.audioCodec, bitrate: t.bitrate, height: t.height, name: t.name, url: l, videoCodec: t.videoCodec, width: t.width }); if (t.audioGroups) for (var h = 1; h < t.audioGroups.length; h++)u.addGroupId("audio", t.audioGroups[h] + "_clone_" + a); if (t.subtitleGroups) for (var d = 1; d < t.subtitleGroups.length; d++)u.addGroupId("text", t.subtitleGroups[d] + "_clone_" + a); return u })); r.push.apply(r, l), Ks(e.audioTracks, i, o, a), Ks(e.subtitleTracks, n, o, a) } })) } }, e.loadSteeringManifest = function (t) { var e, r = this, i = this.hls.config, n = i.loader; this.loader && this.loader.destroy(), this.loader = new n(i); try { e = new self.URL(t) } catch (e) { return this.enabled = !1, void this.log("Failed to parse Steering Manifest URI: " + t) } if ("data:" !== e.protocol) { var a = 0 | (this.hls.bandwidthEstimate || i.abrEwmaDefaultEstimate); e.searchParams.set("_HLS_pathway", this.pathwayId), e.searchParams.set("_HLS_throughput", "" + a) } var s = { responseType: "json", url: e.href }, o = i.steeringManifestLoadPolicy.default, l = o.errorRetry || o.timeoutRetry || {}, u = { loadPolicy: o, timeout: o.maxLoadTimeMs, maxRetry: l.maxNumRetry || 0, retryDelay: l.retryDelayMs || 0, maxRetryDelay: l.maxRetryDelayMs || 0 }, h = { onSuccess: function (t, i, n, a) { r.log('Loaded steering manifest: "' + e + '"'); var s = t.data; if (1 === s.VERSION) { r.updated = performance.now(), r.timeToLoad = s.TTL; var o = s["RELOAD-URI"], l = s["PATHWAY-CLONES"], u = s["PATHWAY-PRIORITY"]; if (o) try { r.uri = new self.URL(o, e).href } catch (t) { return r.enabled = !1, void r.log("Failed to parse Steering Manifest RELOAD-URI: " + o) } r.scheduleRefresh(r.uri || n.url), l && r.clonePathways(l); var h = { steeringManifest: s, url: e.toString() }; r.hls.trigger(S.STEERING_MANIFEST_LOADED, h), u && r.updatePathwayPriority(u) } else r.log("Steering VERSION " + s.VERSION + " not supported!") }, onError: function (t, e, i, n) { if (r.log("Error loading steering manifest: " + t.code + " " + t.text + " (" + e.url + ")"), r.stopLoad(), 410 === t.code) return r.enabled = !1, void r.log("Steering manifest " + e.url + " no longer available"); var a = 1e3 * r.timeToLoad; if (429 !== t.code) r.scheduleRefresh(r.uri || e.url, a); else { var s = r.loader; if ("function" == typeof (null == s ? void 0 : s.getResponseHeader)) { var o = s.getResponseHeader("Retry-After"); o && (a = 1e3 * parseFloat(o)) } r.log("Steering manifest " + e.url + " rate limited") } }, onTimeout: function (t, e, i) { r.log("Timeout loading steering manifest (" + e.url + ")"), r.scheduleRefresh(r.uri || e.url) } }; this.log("Requesting steering manifest: " + e), this.loader.load(s, u, h) }, e.scheduleRefresh = function (t, e) { var r = this; void 0 === e && (e = 1e3 * this.timeToLoad), this.clearTimeout(), this.reloadTimer = self.setTimeout((function () { var e, i = null == (e = r.hls) ? void 0 : e.media; !i || i.ended ? r.scheduleRefresh(t, 1e3 * r.timeToLoad) : r.loadSteeringManifest(t) }), e) }, t }(); function Ks(t, e, r, i) { t && Object.keys(e).forEach((function (n) { var a = t.filter((function (t) { return t.groupId === n })).map((function (t) { var a = o({}, t); return a.details = void 0, a.attrs = new x(a.attrs), a.url = a.attrs.URI = Hs(t.url, t.attrs["STABLE-RENDITION-ID"], "PER-RENDITION-URIS", r), a.groupId = a.attrs["GROUP-ID"] = e[n], a.attrs["PATHWAY-ID"] = i, a })); t.push.apply(t, a) })) } function Hs(t, e, r, i) { var n, a = i.HOST, s = i.PARAMS, o = i[r]; e && (n = null == o ? void 0 : o[e]) && (t = n); var l = new self.URL(t); return a && !n && (l.host = a), s && Object.keys(s).sort().forEach((function (t) { t && l.searchParams.set(t, s[t]) })), l.href } var Vs = /^age:\s*[\d.]+\s*$/im, Ys = function () { function t(t) { this.xhrSetup = void 0, this.requestTimeout = void 0, this.retryTimeout = void 0, this.retryDelay = void 0, this.config = null, this.callbacks = null, this.context = null, this.loader = null, this.stats = void 0, this.xhrSetup = t && t.xhrSetup || null, this.stats = new M, this.retryDelay = 0 } var e = t.prototype; return e.destroy = function () { this.callbacks = null, this.abortInternal(), this.loader = null, this.config = null, this.context = null, this.xhrSetup = null, this.stats = null }, e.abortInternal = function () { var t = this.loader; self.clearTimeout(this.requestTimeout), self.clearTimeout(this.retryTimeout), t && (t.onreadystatechange = null, t.onprogress = null, 4 !== t.readyState && (this.stats.aborted = !0, t.abort())) }, e.abort = function () { var t; this.abortInternal(), null != (t = this.callbacks) && t.onAbort && this.callbacks.onAbort(this.stats, this.context, this.loader) }, e.load = function (t, e, r) { if (this.stats.loading.start) throw new Error("Loader can only be used once."); this.stats.loading.start = self.performance.now(), this.context = t, this.config = e, this.callbacks = r, this.loadInternal() }, e.loadInternal = function () { var t = this, e = this.config, r = this.context; if (e && r) { var i = this.loader = new self.XMLHttpRequest, n = this.stats; n.loading.first = 0, n.loaded = 0, n.aborted = !1; var a = this.xhrSetup; a ? Promise.resolve().then((function () { if (!t.stats.aborted) return a(i, r.url) })).catch((function (t) { return i.open("GET", r.url, !0), a(i, r.url) })).then((function () { t.stats.aborted || t.openAndSendXhr(i, r, e) })).catch((function (e) { t.callbacks.onError({ code: i.status, text: e.message }, r, i, n) })) : this.openAndSendXhr(i, r, e) } }, e.openAndSendXhr = function (t, e, r) { t.readyState || t.open("GET", e.url, !0); var i = e.headers, n = r.loadPolicy, a = n.maxTimeToFirstByteMs, s = n.maxLoadTimeMs; if (i) for (var o in i) t.setRequestHeader(o, i[o]); e.rangeEnd && t.setRequestHeader("Range", "bytes=" + e.rangeStart + "-" + (e.rangeEnd - 1)), t.onreadystatechange = this.readystatechange.bind(this), t.onprogress = this.loadprogress.bind(this), t.responseType = e.responseType, self.clearTimeout(this.requestTimeout), r.timeout = a && y(a) ? a : s, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), r.timeout), t.send() }, e.readystatechange = function () { var t = this.context, e = this.loader, r = this.stats; if (t && e) { var i = e.readyState, n = this.config; if (!r.aborted && i >= 2 && (0 === r.loading.first && (r.loading.first = Math.max(self.performance.now(), r.loading.start), n.timeout !== n.loadPolicy.maxLoadTimeMs && (self.clearTimeout(this.requestTimeout), n.timeout = n.loadPolicy.maxLoadTimeMs, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), n.loadPolicy.maxLoadTimeMs - (r.loading.first - r.loading.start)))), 4 === i)) { self.clearTimeout(this.requestTimeout), e.onreadystatechange = null, e.onprogress = null; var a = e.status, s = "text" !== e.responseType; if (a >= 200 && a < 300 && (s && e.response || null !== e.responseText)) { r.loading.end = Math.max(self.performance.now(), r.loading.first); var o = s ? e.response : e.responseText, l = "arraybuffer" === e.responseType ? o.byteLength : o.length; if (r.loaded = r.total = l, r.bwEstimate = 8e3 * r.total / (r.loading.end - r.loading.first), !this.callbacks) return; var u = this.callbacks.onProgress; if (u && u(r, t, o, e), !this.callbacks) return; var h = { url: e.responseURL, data: o, code: a }; this.callbacks.onSuccess(h, r, t, e) } else { var d = n.loadPolicy.errorRetry; mr(d, r.retry, !1, { url: t.url, data: void 0, code: a }) ? this.retry(d) : (w.error(a + " while loading " + t.url), this.callbacks.onError({ code: a, text: e.statusText }, t, e, r)) } } } }, e.loadtimeout = function () { var t, e = null == (t = this.config) ? void 0 : t.loadPolicy.timeoutRetry; if (mr(e, this.stats.retry, !0)) this.retry(e); else { var r; w.warn("timeout while loading " + (null == (r = this.context) ? void 0 : r.url)); var i = this.callbacks; i && (this.abortInternal(), i.onTimeout(this.stats, this.context, this.loader)) } }, e.retry = function (t) { var e = this.context, r = this.stats; this.retryDelay = gr(t, r.retry), r.retry++, w.warn((status ? "HTTP Status " + status : "Timeout") + " while loading " + (null == e ? void 0 : e.url) + ", retrying " + r.retry + "/" + t.maxNumRetry + " in " + this.retryDelay + "ms"), this.abortInternal(), this.loader = null, self.clearTimeout(this.retryTimeout), this.retryTimeout = self.setTimeout(this.loadInternal.bind(this), this.retryDelay) }, e.loadprogress = function (t) { var e = this.stats; e.loaded = t.loaded, t.lengthComputable && (e.total = t.total) }, e.getCacheAge = function () { var t = null; if (this.loader && Vs.test(this.loader.getAllResponseHeaders())) { var e = this.loader.getResponseHeader("age"); t = e ? parseFloat(e) : null } return t }, e.getResponseHeader = function (t) { return this.loader && new RegExp("^" + t + ":\\s*[\\d.]+\\s*$", "im").test(this.loader.getAllResponseHeaders()) ? this.loader.getResponseHeader(t) : null }, t }(), Ws = /(\d+)-(\d+)\/(\d+)/, js = function () { function t(t) { this.fetchSetup = void 0, this.requestTimeout = void 0, this.request = null, this.response = null, this.controller = void 0, this.context = null, this.config = null, this.callbacks = null, this.stats = void 0, this.loader = null, this.fetchSetup = t.fetchSetup || qs, this.controller = new self.AbortController, this.stats = new M } var e = t.prototype; return e.destroy = function () { this.loader = this.callbacks = this.context = this.config = this.request = null, this.abortInternal(), this.response = null, this.fetchSetup = this.controller = this.stats = null }, e.abortInternal = function () { this.controller && !this.stats.loading.end && (this.stats.aborted = !0, this.controller.abort()) }, e.abort = function () { var t; this.abortInternal(), null != (t = this.callbacks) && t.onAbort && this.callbacks.onAbort(this.stats, this.context, this.response) }, e.load = function (t, e, r) { var i = this, n = this.stats; if (n.loading.start) throw new Error("Loader can only be used once."); n.loading.start = self.performance.now(); var a = function (t, e) { var r = { method: "GET", mode: "cors", credentials: "same-origin", signal: e, headers: new self.Headers(o({}, t.headers)) }; return t.rangeEnd && r.headers.set("Range", "bytes=" + t.rangeStart + "-" + String(t.rangeEnd - 1)), r }(t, this.controller.signal), s = r.onProgress, l = "arraybuffer" === t.responseType, u = l ? "byteLength" : "length", h = e.loadPolicy, d = h.maxTimeToFirstByteMs, c = h.maxLoadTimeMs; this.context = t, this.config = e, this.callbacks = r, this.request = this.fetchSetup(t, a), self.clearTimeout(this.requestTimeout), e.timeout = d && y(d) ? d : c, this.requestTimeout = self.setTimeout((function () { i.abortInternal(), r.onTimeout(n, t, i.response) }), e.timeout), self.fetch(this.request).then((function (a) { i.response = i.loader = a; var o = Math.max(self.performance.now(), n.loading.start); if (self.clearTimeout(i.requestTimeout), e.timeout = c, i.requestTimeout = self.setTimeout((function () { i.abortInternal(), r.onTimeout(n, t, i.response) }), c - (o - n.loading.start)), !a.ok) { var u = a.status, h = a.statusText; throw new zs(h || "fetch, bad network response", u, a) } return n.loading.first = o, n.total = function (t) { var e = t.get("Content-Range"); if (e) { var r = function (t) { var e = Ws.exec(t); if (e) return parseInt(e[2]) - parseInt(e[1]) + 1 }(e); if (y(r)) return r } var i = t.get("Content-Length"); if (i) return parseInt(i) }(a.headers) || n.total, s && y(e.highWaterMark) ? i.loadProgressively(a, n, t, e.highWaterMark, s) : l ? a.arrayBuffer() : "json" === t.responseType ? a.json() : a.text() })).then((function (a) { var o = i.response; if (!o) throw new Error("loader destroyed"); self.clearTimeout(i.requestTimeout), n.loading.end = Math.max(self.performance.now(), n.loading.first); var l = a[u]; l && (n.loaded = n.total = l); var h = { url: o.url, data: a, code: o.status }; s && !y(e.highWaterMark) && s(n, t, a, o), r.onSuccess(h, n, t, o) })).catch((function (e) { if (self.clearTimeout(i.requestTimeout), !n.aborted) { var a = e && e.code || 0, s = e ? e.message : null; r.onError({ code: a, text: s }, t, e ? e.details : null, n) } })) }, e.getCacheAge = function () { var t = null; if (this.response) { var e = this.response.headers.get("age"); t = e ? parseFloat(e) : null } return t }, e.getResponseHeader = function (t) { return this.response ? this.response.headers.get(t) : null }, e.loadProgressively = function (t, e, r, i, n) { void 0 === i && (i = 0); var a = new Di, s = t.body.getReader(); return function o() { return s.read().then((function (s) { if (s.done) return a.dataLength && n(e, r, a.flush(), t), Promise.resolve(new ArrayBuffer(0)); var l = s.value, u = l.length; return e.loaded += u, u < i || a.dataLength ? (a.push(l), a.dataLength >= i && n(e, r, a.flush(), t)) : n(e, r, l, t), o() })).catch((function () { return Promise.reject() })) }() }, t }(); function qs(t, e) { return new self.Request(t.url, e) } var Xs, zs = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e) || this).code = void 0, n.details = void 0, n.code = r, n.details = i, n } return l(e, t), e }(c(Error)), Qs = /\s/, Js = i(i({ autoStartLoad: !0, startPosition: -1, defaultAudioCodec: void 0, debug: !1, capLevelOnFPSDrop: !1, capLevelToPlayerSize: !1, ignoreDevicePixelRatio: !1, preferManagedMediaSource: !0, initialLiveManifestSize: 1, maxBufferLength: 30, backBufferLength: 1 / 0, frontBufferFlushThreshold: 1 / 0, maxBufferSize: 6e7, maxBufferHole: .1, highBufferWatchdogPeriod: 2, nudgeOffset: .1, nudgeMaxRetry: 3, maxFragLookUpTolerance: .25, liveSyncDurationCount: 3, liveMaxLatencyDurationCount: 1 / 0, liveSyncDuration: void 0, liveMaxLatencyDuration: void 0, maxLiveSyncPlaybackRate: 1, liveDurationInfinity: !1, liveBackBufferLength: null, maxMaxBufferLength: 600, enableWorker: !0, workerPath: null, enableSoftwareAES: !0, startLevel: void 0, startFragPrefetch: !1, fpsDroppedMonitoringPeriod: 5e3, fpsDroppedMonitoringThreshold: .2, appendErrorMaxRetry: 3, loader: Ys, fLoader: void 0, pLoader: void 0, xhrSetup: void 0, licenseXhrSetup: void 0, licenseResponseCallback: void 0, abrController: Kr, bufferController: $n, capLevelController: za, errorController: Ir, fpsController: Qa, stretchShortVideoTrack: !1, maxAudioFramesDrift: 1, forceKeyFrameOnDiscontinuity: !0, abrEwmaFastLive: 3, abrEwmaSlowLive: 9, abrEwmaFastVoD: 3, abrEwmaSlowVoD: 9, abrEwmaDefaultEstimate: 5e5, abrEwmaDefaultEstimateMax: 5e6, abrBandWidthFactor: .95, abrBandWidthUpFactor: .7, abrMaxWithRealBitrate: !1, maxStarvationDelay: 4, maxLoadingDelay: 4, minAutoBitrate: 0, emeEnabled: !1, widevineLicenseUrl: void 0, drmSystems: {}, drmSystemOptions: {}, requestMediaKeySystemAccessFunc: it, testBandwidth: !0, progressive: !1, lowLatencyMode: !0, cmcd: void 0, enableDateRangeMetadataCues: !0, enableEmsgMetadataCues: !0, enableID3MetadataCues: !0, useMediaCapabilities: !0, certLoadPolicy: { default: { maxTimeToFirstByteMs: 8e3, maxLoadTimeMs: 2e4, timeoutRetry: null, errorRetry: null } }, keyLoadPolicy: { default: { maxTimeToFirstByteMs: 8e3, maxLoadTimeMs: 2e4, timeoutRetry: { maxNumRetry: 1, retryDelayMs: 1e3, maxRetryDelayMs: 2e4, backoff: "linear" }, errorRetry: { maxNumRetry: 8, retryDelayMs: 1e3, maxRetryDelayMs: 2e4, backoff: "linear" } } }, manifestLoadPolicy: { default: { maxTimeToFirstByteMs: 1 / 0, maxLoadTimeMs: 2e4, timeoutRetry: { maxNumRetry: 2, retryDelayMs: 0, maxRetryDelayMs: 0 }, errorRetry: { maxNumRetry: 1, retryDelayMs: 1e3, maxRetryDelayMs: 8e3 } } }, playlistLoadPolicy: { default: { maxTimeToFirstByteMs: 1e4, maxLoadTimeMs: 2e4, timeoutRetry: { maxNumRetry: 2, retryDelayMs: 0, maxRetryDelayMs: 0 }, errorRetry: { maxNumRetry: 2, retryDelayMs: 1e3, maxRetryDelayMs: 8e3 } } }, fragLoadPolicy: { default: { maxTimeToFirstByteMs: 1e4, maxLoadTimeMs: 12e4, timeoutRetry: { maxNumRetry: 4, retryDelayMs: 0, maxRetryDelayMs: 0 }, errorRetry: { maxNumRetry: 6, retryDelayMs: 1e3, maxRetryDelayMs: 8e3 } } }, steeringManifestLoadPolicy: { default: { maxTimeToFirstByteMs: 1e4, maxLoadTimeMs: 2e4, timeoutRetry: { maxNumRetry: 2, retryDelayMs: 0, maxRetryDelayMs: 0 }, errorRetry: { maxNumRetry: 1, retryDelayMs: 1e3, maxRetryDelayMs: 8e3 } } }, manifestLoadingTimeOut: 1e4, manifestLoadingMaxRetry: 1, manifestLoadingRetryDelay: 1e3, manifestLoadingMaxRetryTimeout: 64e3, levelLoadingTimeOut: 1e4, levelLoadingMaxRetry: 4, levelLoadingRetryDelay: 1e3, levelLoadingMaxRetryTimeout: 64e3, fragLoadingTimeOut: 2e4, fragLoadingMaxRetry: 6, fragLoadingRetryDelay: 1e3, fragLoadingMaxRetryTimeout: 64e3 }, { cueHandler: { newCue: function (t, e, r, i) { for (var n, a, s, o, l, u = [], h = self.VTTCue || self.TextTrackCue, d = 0; d < i.rows.length; d++)if (s = !0, o = 0, l = "", !(n = i.rows[d]).isEmpty()) { for (var c, f = 0; f < n.chars.length; f++)Qs.test(n.chars[f].uchar) && s ? o++ : (l += n.chars[f].uchar, s = !1); n.cueStartTime = e, e === r && (r += 1e-4), o >= 16 ? o-- : o++; var g = Ia(l.trim()), v = Pa(e, r, g); null != t && null != (c = t.cues) && c.getCueById(v) || ((a = new h(e, r, g)).id = v, a.line = d + 1, a.align = "left", a.position = 10 + Math.min(80, 10 * Math.floor(8 * o / 32)), u.push(a)) } return t && u.length && (u.sort((function (t, e) { return "auto" === t.line || "auto" === e.line ? 0 : t.line > 8 && e.line > 8 ? e.line - t.line : t.line - e.line })), u.forEach((function (e) { return Oe(t, e) }))), u } }, enableWebVTT: !0, enableIMSC1: !0, enableCEA708Captions: !0, captionsTextTrack1Label: "English", captionsTextTrack1LanguageCode: "en", captionsTextTrack2Label: "Spanish", captionsTextTrack2LanguageCode: "es", captionsTextTrack3Label: "Unknown CC", captionsTextTrack3LanguageCode: "", captionsTextTrack4Label: "Unknown CC", captionsTextTrack4LanguageCode: "", renderTextTracksNatively: !0 }), {}, { subtitleStreamController: qn, subtitleTrackController: zn, timelineController: ja, audioStreamController: Wn, audioTrackController: jn, emeController: $a, cmcdController: Bs, contentSteeringController: Gs }); function $s(t) { return t && "object" == typeof t ? Array.isArray(t) ? t.map($s) : Object.keys(t).reduce((function (e, r) { return e[r] = $s(t[r]), e }), {}) : t } function Zs(t) { var e = t.loader; e !== js && e !== Ys ? (w.log("[config]: Custom loader detected, cannot enable progressive streaming"), t.progressive = !1) : function () { if (self.fetch && self.AbortController && self.ReadableStream && self.Request) try { return new self.ReadableStream({}), !0 } catch (t) { } return !1 }() && (t.loader = js, t.progressive = !0, t.enableSoftwareAES = !0, w.log("[config]: Progressive streaming enabled, using FetchLoader")) } var to = function (t) { function e(e, r) { var i; return (i = t.call(this, e, "[level-controller]") || this)._levels = [], i._firstLevel = -1, i._maxAutoLevel = -1, i._startLevel = void 0, i.currentLevel = null, i.currentLevelIndex = -1, i.manualLevelIndex = -1, i.steering = void 0, i.onParsedComplete = void 0, i.steering = r, i._registerListeners(), i } l(e, t); var r = e.prototype; return r._registerListeners = function () { var t = this.hls; t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this), t.on(S.ERROR, this.onError, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_LOADED, this.onManifestLoaded, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this), t.off(S.ERROR, this.onError, this) }, r.destroy = function () { this._unregisterListeners(), this.steering = null, this.resetLevels(), t.prototype.destroy.call(this) }, r.stopLoad = function () { this._levels.forEach((function (t) { t.loadError = 0, t.fragmentError = 0 })), t.prototype.stopLoad.call(this) }, r.resetLevels = function () { this._startLevel = void 0, this.manualLevelIndex = -1, this.currentLevelIndex = -1, this.currentLevel = null, this._levels = [], this._maxAutoLevel = -1 }, r.onManifestLoading = function (t, e) { this.resetLevels() }, r.onManifestLoaded = function (t, e) { var r = this.hls.config.preferManagedMediaSource, i = [], n = {}, a = {}, s = !1, o = !1, l = !1; e.levels.forEach((function (t) { var e, u, h = t.attrs, d = t.audioCodec, c = t.videoCodec; -1 !== (null == (e = d) ? void 0 : e.indexOf("mp4a.40.34")) && (Xs || (Xs = /chrome|firefox/i.test(navigator.userAgent)), Xs && (t.audioCodec = d = void 0)), d && (t.audioCodec = d = he(d, r)), 0 === (null == (u = c) ? void 0 : u.indexOf("avc1")) && (c = t.videoCodec = function (t) { var e = t.split("."); if (e.length > 2) { var r = e.shift() + "."; return (r += parseInt(e.shift()).toString(16)) + ("000" + parseInt(e.shift()).toString(16)).slice(-4) } return t }(c)); var f = t.width, g = t.height, v = t.unknownCodecs; if (s || (s = !(!f || !g)), o || (o = !!c), l || (l = !!d), !(null != v && v.length || d && !ie(d, "audio", r) || c && !ie(c, "video", r))) { var m = h.CODECS, p = h["FRAME-RATE"], y = h["HDCP-LEVEL"], E = h["PATHWAY-ID"], T = h.RESOLUTION, S = h["VIDEO-RANGE"], L = (E || ".") + "-" + t.bitrate + "-" + T + "-" + p + "-" + m + "-" + S + "-" + y; if (n[L]) if (n[L].uri === t.url || t.attrs["PATHWAY-ID"]) n[L].addGroupId("audio", h.AUDIO), n[L].addGroupId("text", h.SUBTITLES); else { var A = a[L] += 1; t.attrs["PATHWAY-ID"] = new Array(A + 1).join("."); var R = new rr(t); n[L] = R, i.push(R) } else { var k = new rr(t); n[L] = k, a[L] = 1, i.push(k) } } })), this.filterAndSortMediaOptions(i, e, s, o, l) }, r.filterAndSortMediaOptions = function (t, e, r, i, n) { var a = this, s = [], o = [], l = t; if ((r || i) && n && (l = l.filter((function (t) { var e, r = t.videoCodec, i = t.videoRange, n = t.width, a = t.height; return (!!r || !(!n || !a)) && !!(e = i) && Qe.indexOf(e) > -1 }))), 0 !== l.length) { if (e.audioTracks) { var u = this.hls.config.preferManagedMediaSource; eo(s = e.audioTracks.filter((function (t) { return !t.audioCodec || ie(t.audioCodec, "audio", u) }))) } e.subtitles && eo(o = e.subtitles); var h = l.slice(0); l.sort((function (t, e) { if (t.attrs["HDCP-LEVEL"] !== e.attrs["HDCP-LEVEL"]) return (t.attrs["HDCP-LEVEL"] || "") > (e.attrs["HDCP-LEVEL"] || "") ? 1 : -1; if (r && t.height !== e.height) return t.height - e.height; if (t.frameRate !== e.frameRate) return t.frameRate - e.frameRate; if (t.videoRange !== e.videoRange) return Qe.indexOf(t.videoRange) - Qe.indexOf(e.videoRange); if (t.videoCodec !== e.videoCodec) { var i = se(t.videoCodec), n = se(e.videoCodec); if (i !== n) return n - i } if (t.uri === e.uri && t.codecSet !== e.codecSet) { var a = oe(t.codecSet), s = oe(e.codecSet); if (a !== s) return s - a } return t.averageBitrate !== e.averageBitrate ? t.averageBitrate - e.averageBitrate : 0 })); var d = h[0]; if (this.steering && (l = this.steering.filterParsedLevels(l)).length !== h.length) for (var c = 0; c < h.length; c++)if (h[c].pathwayId === l[0].pathwayId) { d = h[c]; break } this._levels = l; for (var f = 0; f < l.length; f++)if (l[f] === d) { var g; this._firstLevel = f; var v = d.bitrate, m = this.hls.bandwidthEstimate; if (this.log("manifest loaded, " + l.length + " level(s) found, first bitrate: " + v), void 0 === (null == (g = this.hls.userConfig) ? void 0 : g.abrEwmaDefaultEstimate)) { var p = Math.min(v, this.hls.config.abrEwmaDefaultEstimateMax); p > m && m === Js.abrEwmaDefaultEstimate && (this.hls.bandwidthEstimate = p) } break } var y = n && !i, E = { levels: l, audioTracks: s, subtitleTracks: o, sessionData: e.sessionData, sessionKeys: e.sessionKeys, firstLevel: this._firstLevel, stats: e.stats, audio: n, video: i, altAudio: !y && s.some((function (t) { return !!t.url })) }; this.hls.trigger(S.MANIFEST_PARSED, E), (this.hls.config.autoStartLoad || this.hls.forceStartLoad) && this.hls.startLoad(this.hls.config.startPosition) } else Promise.resolve().then((function () { if (a.hls) { e.levels.length && a.warn("One or more CODECS in variant not supported: " + JSON.stringify(e.levels[0].attrs)); var t = new Error("no level with compatible codecs found in manifest"); a.hls.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.MANIFEST_INCOMPATIBLE_CODECS_ERROR, fatal: !0, url: e.url, error: t, reason: t.message }) } })) }, r.onError = function (t, e) { !e.fatal && e.context && e.context.type === be && e.context.level === this.level && this.checkRetry(e) }, r.onFragBuffered = function (t, e) { var r = e.frag; if (void 0 !== r && r.type === we) { var i = r.elementaryStreams; if (!Object.keys(i).some((function (t) { return !!i[t] }))) return; var n = this._levels[r.level]; null != n && n.loadError && (this.log("Resetting level error count of " + n.loadError + " on frag buffered"), n.loadError = 0) } }, r.onLevelLoaded = function (t, e) { var r, i, n = e.level, a = e.details, s = this._levels[n]; if (!s) return this.warn("Invalid level index " + n), void (null != (i = e.deliveryDirectives) && i.skip && (a.deltaUpdateFailed = !0)); n === this.currentLevelIndex ? (0 === s.fragmentError && (s.loadError = 0), this.playlistLoaded(n, e, s.details)) : null != (r = e.deliveryDirectives) && r.skip && (a.deltaUpdateFailed = !0) }, r.loadPlaylist = function (e) { t.prototype.loadPlaylist.call(this); var r = this.currentLevelIndex, i = this.currentLevel; if (i && this.shouldLoadPlaylist(i)) { var n = i.uri; if (e) try { n = e.addDirectives(n) } catch (t) { this.warn("Could not construct new URL with HLS Delivery Directives: " + t) } var a = i.attrs["PATHWAY-ID"]; this.log("Loading level index " + r + (void 0 !== (null == e ? void 0 : e.msn) ? " at sn " + e.msn + " part " + e.part : "") + " with" + (a ? " Pathway " + a : "") + " " + n), this.clearTimer(), this.hls.trigger(S.LEVEL_LOADING, { url: n, level: r, pathwayId: i.attrs["PATHWAY-ID"], id: 0, deliveryDirectives: e || null }) } }, r.removeLevel = function (t) { var e, r = this, i = this._levels.filter((function (e, i) { return i !== t || (r.steering && r.steering.removeLevel(e), e === r.currentLevel && (r.currentLevel = null, r.currentLevelIndex = -1, e.details && e.details.fragments.forEach((function (t) { return t.level = -1 }))), !1) })); dr(i), this._levels = i, this.currentLevelIndex > -1 && null != (e = this.currentLevel) && e.details && (this.currentLevelIndex = this.currentLevel.details.fragments[0].level), this.hls.trigger(S.LEVELS_UPDATED, { levels: i }) }, r.onLevelsUpdated = function (t, e) { var r = e.levels; this._levels = r }, r.checkMaxAutoUpdated = function () { var t = this.hls, e = t.autoLevelCapping, r = t.maxAutoLevel, i = t.maxHdcpLevel; this._maxAutoLevel !== r && (this._maxAutoLevel = r, this.hls.trigger(S.MAX_AUTO_LEVEL_UPDATED, { autoLevelCapping: e, levels: this.levels, maxAutoLevel: r, minAutoLevel: this.hls.minAutoLevel, maxHdcpLevel: i })) }, s(e, [{ key: "levels", get: function () { return 0 === this._levels.length ? null : this._levels } }, { key: "level", get: function () { return this.currentLevelIndex }, set: function (t) { var e = this._levels; if (0 !== e.length) { if (t < 0 || t >= e.length) { var r = new Error("invalid level idx"), i = t < 0; if (this.hls.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.LEVEL_SWITCH_ERROR, level: t, fatal: i, error: r, reason: r.message }), i) return; t = Math.min(t, e.length - 1) } var n = this.currentLevelIndex, a = this.currentLevel, s = a ? a.attrs["PATHWAY-ID"] : void 0, o = e[t], l = o.attrs["PATHWAY-ID"]; if (this.currentLevelIndex = t, this.currentLevel = o, n !== t || !o.details || !a || s !== l) { this.log("Switching to level " + t + " (" + (o.height ? o.height + "p " : "") + (o.videoRange ? o.videoRange + " " : "") + (o.codecSet ? o.codecSet + " " : "") + "@" + o.bitrate + ")" + (l ? " with Pathway " + l : "") + " from level " + n + (s ? " with Pathway " + s : "")); var u = { level: t, attrs: o.attrs, details: o.details, bitrate: o.bitrate, averageBitrate: o.averageBitrate, maxBitrate: o.maxBitrate, realBitrate: o.realBitrate, width: o.width, height: o.height, codecSet: o.codecSet, audioCodec: o.audioCodec, videoCodec: o.videoCodec, audioGroups: o.audioGroups, subtitleGroups: o.subtitleGroups, loaded: o.loaded, loadError: o.loadError, fragmentError: o.fragmentError, name: o.name, id: o.id, uri: o.uri, url: o.url, urlId: 0, audioGroupIds: o.audioGroupIds, textGroupIds: o.textGroupIds }; this.hls.trigger(S.LEVEL_SWITCHING, u); var h = o.details; if (!h || h.live) { var d = this.switchParams(o.uri, null == a ? void 0 : a.details, h); this.loadPlaylist(d) } } } } }, { key: "manualLevel", get: function () { return this.manualLevelIndex }, set: function (t) { this.manualLevelIndex = t, void 0 === this._startLevel && (this._startLevel = t), -1 !== t && (this.level = t) } }, { key: "firstLevel", get: function () { return this._firstLevel }, set: function (t) { this._firstLevel = t } }, { key: "startLevel", get: function () { if (void 0 === this._startLevel) { var t = this.hls.config.startLevel; return void 0 !== t ? t : this.hls.firstAutoLevel } return this._startLevel }, set: function (t) { this._startLevel = t } }, { key: "nextLoadLevel", get: function () { return -1 !== this.manualLevelIndex ? this.manualLevelIndex : this.hls.nextAutoLevel }, set: function (t) { this.level = t, -1 === this.manualLevelIndex && (this.hls.nextAutoLevel = t) } }]), e }(wr); function eo(t) { var e = {}; t.forEach((function (t) { var r = t.groupId || ""; t.id = e[r] = e[r] || 0, e[r]++ })) } var ro = function () { function t(t) { this.config = void 0, this.keyUriToKeyInfo = {}, this.emeController = null, this.config = t } var e = t.prototype; return e.abort = function (t) { for (var e in this.keyUriToKeyInfo) { var r = this.keyUriToKeyInfo[e].loader; if (r) { var i; if (t && t !== (null == (i = r.context) ? void 0 : i.frag.type)) return; r.abort() } } }, e.detach = function () { for (var t in this.keyUriToKeyInfo) { var e = this.keyUriToKeyInfo[t]; (e.mediaKeySessionContext || e.decryptdata.isCommonEncryption) && delete this.keyUriToKeyInfo[t] } }, e.destroy = function () { for (var t in this.detach(), this.keyUriToKeyInfo) { var e = this.keyUriToKeyInfo[t].loader; e && e.destroy() } this.keyUriToKeyInfo = {} }, e.createKeyLoadError = function (t, e, r, i, n) { return void 0 === e && (e = A.KEY_LOAD_ERROR), new li({ type: L.NETWORK_ERROR, details: e, fatal: !1, frag: t, response: n, error: r, networkDetails: i }) }, e.loadClear = function (t, e) { var r = this; if (this.emeController && this.config.emeEnabled) for (var i = t.sn, n = t.cc, a = function () { var t = e[s]; if (n <= t.cc && ("initSegment" === i || "initSegment" === t.sn || i < t.sn)) return r.emeController.selectKeySystemFormat(t).then((function (e) { t.setKeyFormat(e) })), 1 }, s = 0; s < e.length && !a(); s++); }, e.load = function (t) { var e = this; return !t.decryptdata && t.encrypted && this.emeController ? this.emeController.selectKeySystemFormat(t).then((function (r) { return e.loadInternal(t, r) })) : this.loadInternal(t) }, e.loadInternal = function (t, e) { var r, i; e && t.setKeyFormat(e); var n = t.decryptdata; if (!n) { var a = new Error(e ? "Expected frag.decryptdata to be defined after setting format " + e : "Missing decryption data on fragment in onKeyLoading"); return Promise.reject(this.createKeyLoadError(t, A.KEY_LOAD_ERROR, a)) } var s = n.uri; if (!s) return Promise.reject(this.createKeyLoadError(t, A.KEY_LOAD_ERROR, new Error('Invalid key URI: "' + s + '"'))); var o, l = this.keyUriToKeyInfo[s]; if (null != (r = l) && r.decryptdata.key) return n.key = l.decryptdata.key, Promise.resolve({ frag: t, keyInfo: l }); if (null != (i = l) && i.keyLoadPromise) switch (null == (o = l.mediaKeySessionContext) ? void 0 : o.keyStatus) { case void 0: case "status-pending": case "usable": case "usable-in-future": return l.keyLoadPromise.then((function (e) { return n.key = e.keyInfo.decryptdata.key, { frag: t, keyInfo: l } })) }switch (l = this.keyUriToKeyInfo[s] = { decryptdata: n, keyLoadPromise: null, loader: null, mediaKeySessionContext: null }, n.method) { case "ISO-23001-7": case "SAMPLE-AES": case "SAMPLE-AES-CENC": case "SAMPLE-AES-CTR": return "identity" === n.keyFormat ? this.loadKeyHTTP(l, t) : this.loadKeyEME(l, t); case "AES-128": return this.loadKeyHTTP(l, t); default: return Promise.reject(this.createKeyLoadError(t, A.KEY_LOAD_ERROR, new Error('Key supplied with unsupported METHOD: "' + n.method + '"'))) } }, e.loadKeyEME = function (t, e) { var r = { frag: e, keyInfo: t }; if (this.emeController && this.config.emeEnabled) { var i = this.emeController.loadKey(r); if (i) return (t.keyLoadPromise = i.then((function (e) { return t.mediaKeySessionContext = e, r }))).catch((function (e) { throw t.keyLoadPromise = null, e })) } return Promise.resolve(r) }, e.loadKeyHTTP = function (t, e) { var r = this, n = this.config, a = new (0, n.loader)(n); return e.keyLoader = t.loader = a, t.keyLoadPromise = new Promise((function (s, o) { var l = { keyInfo: t, frag: e, responseType: "arraybuffer", url: t.decryptdata.uri }, u = n.keyLoadPolicy.default, h = { loadPolicy: u, timeout: u.maxLoadTimeMs, maxRetry: 0, retryDelay: 0, maxRetryDelay: 0 }, d = { onSuccess: function (t, e, i, n) { var a = i.frag, l = i.keyInfo, u = i.url; if (!a.decryptdata || l !== r.keyUriToKeyInfo[u]) return o(r.createKeyLoadError(a, A.KEY_LOAD_ERROR, new Error("after key load, decryptdata unset or changed"), n)); l.decryptdata.key = a.decryptdata.key = new Uint8Array(t.data), a.keyLoader = null, l.loader = null, s({ frag: a, keyInfo: l }) }, onError: function (t, n, a, s) { r.resetLoader(n), o(r.createKeyLoadError(e, A.KEY_LOAD_ERROR, new Error("HTTP Error " + t.code + " loading key " + t.text), a, i({ url: l.url, data: void 0 }, t))) }, onTimeout: function (t, i, n) { r.resetLoader(i), o(r.createKeyLoadError(e, A.KEY_LOAD_TIMEOUT, new Error("key loading timed out"), n)) }, onAbort: function (t, i, n) { r.resetLoader(i), o(r.createKeyLoadError(e, A.INTERNAL_ABORTED, new Error("key loading aborted"), n)) } }; a.load(l, h, d) })) }, e.resetLoader = function (t) { var e = t.frag, r = t.keyInfo, i = t.url, n = r.loader; e.keyLoader === n && (e.keyLoader = null, r.loader = null), delete this.keyUriToKeyInfo[i], n && n.destroy() }, t }(); function io() { return self.SourceBuffer || self.WebKitSourceBuffer } function no() { if (!ee()) return !1; var t = io(); return !t || t.prototype && "function" == typeof t.prototype.appendBuffer && "function" == typeof t.prototype.remove } var ao = function () { function t(t, e, r, i) { this.config = void 0, this.media = null, this.fragmentTracker = void 0, this.hls = void 0, this.nudgeRetry = 0, this.stallReported = !1, this.stalled = null, this.moved = !1, this.seeking = !1, this.config = t, this.media = e, this.fragmentTracker = r, this.hls = i } var e = t.prototype; return e.destroy = function () { this.media = null, this.hls = this.fragmentTracker = null }, e.poll = function (t, e) { var r = this.config, i = this.media, n = this.stalled; if (null !== i) { var a = i.currentTime, s = i.seeking, o = this.seeking && !s, l = !this.seeking && s; if (this.seeking = s, a === t) if (l || o) this.stalled = null; else if (i.paused && !s || i.ended || 0 === i.playbackRate || !Jr.getBuffered(i).length) this.nudgeRetry = 0; else { var u = Jr.bufferInfo(i, a, 0), h = u.nextStart || 0; if (s) { var d = u.len > 2, c = !h || e && e.start <= a || h - a > 2 && !this.fragmentTracker.getPartialFragment(a); if (d || c) return; this.moved = !1 } if (!this.moved && null !== this.stalled) { var f; if (!(u.len > 0 || h)) return; var g = Math.max(h, u.start || 0) - a, v = this.hls.levels ? this.hls.levels[this.hls.currentLevel] : null, m = (null == v || null == (f = v.details) ? void 0 : f.live) ? 2 * v.details.targetduration : 2, p = this.fragmentTracker.getPartialFragment(a); if (g > 0 && (g <= m || p)) return void (i.paused || this._trySkipBufferHole(p)) } var y = self.performance.now(); if (null !== n) { var E = y - n; if (s || !(E >= 250) || (this._reportStall(u), this.media)) { var T = Jr.bufferInfo(i, a, r.maxBufferHole); this._tryFixBufferStall(T, E) } } else this.stalled = y } else if (this.moved = !0, s || (this.nudgeRetry = 0), null !== n) { if (this.stallReported) { var S = self.performance.now() - n; w.warn("playback not stuck anymore @" + a + ", after " + Math.round(S) + "ms"), this.stallReported = !1 } this.stalled = null } } }, e._tryFixBufferStall = function (t, e) { var r = this.config, i = this.fragmentTracker, n = this.media; if (null !== n) { var a = n.currentTime, s = i.getPartialFragment(a); if (s && (this._trySkipBufferHole(s) || !this.media)) return; (t.len > r.maxBufferHole || t.nextStart && t.nextStart - a < r.maxBufferHole) && e > 1e3 * r.highBufferWatchdogPeriod && (w.warn("Trying to nudge playhead over buffer-hole"), this.stalled = null, this._tryNudgeBuffer()) } }, e._reportStall = function (t) { var e = this.hls, r = this.media; if (!this.stallReported && r) { this.stallReported = !0; var i = new Error("Playback stalling at @" + r.currentTime + " due to low buffer (" + JSON.stringify(t) + ")"); w.warn(i.message), e.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_STALLED_ERROR, fatal: !1, error: i, buffer: t.len }) } }, e._trySkipBufferHole = function (t) { var e = this.config, r = this.hls, i = this.media; if (null === i) return 0; var n = i.currentTime, a = Jr.bufferInfo(i, n, 0), s = n < a.start ? a.start : a.nextStart; if (s) { var o = a.len <= e.maxBufferHole, l = a.len > 0 && a.len < 1 && i.readyState < 3, u = s - n; if (u > 0 && (o || l)) { if (u > e.maxBufferHole) { var h = this.fragmentTracker, d = !1; if (0 === n) { var c = h.getAppendedFrag(0, we); c && s < c.end && (d = !0) } if (!d) { var f = t || h.getAppendedFrag(n, we); if (f) { for (var g = !1, v = f.end; v < s;) { var m = h.getPartialFragment(v); if (!m) { g = !0; break } v += m.duration } if (g) return 0 } } } var p = Math.max(s + .05, n + .1); if (w.warn("skipping hole, adjusting currentTime from " + n + " to " + p), this.moved = !0, this.stalled = null, i.currentTime = p, t && !t.gap) { var y = new Error("fragment loaded with buffer holes, seeking from " + n + " to " + p); r.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_SEEK_OVER_HOLE, fatal: !1, error: y, reason: y.message, frag: t }) } return p } } return 0 }, e._tryNudgeBuffer = function () { var t = this.config, e = this.hls, r = this.media, i = this.nudgeRetry; if (null !== r) { var n = r.currentTime; if (this.nudgeRetry++, i < t.nudgeMaxRetry) { var a = n + (i + 1) * t.nudgeOffset, s = new Error("Nudging 'currentTime' from " + n + " to " + a); w.warn(s.message), r.currentTime = a, e.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_NUDGE_ON_STALL, error: s, fatal: !1 }) } else { var o = new Error("Playhead still not moving while enough data buffered @" + n + " after " + t.nudgeMaxRetry + " nudges"); w.error(o.message), e.trigger(S.ERROR, { type: L.MEDIA_ERROR, details: A.BUFFER_STALLED_ERROR, error: o, fatal: !0 }) } } }, t }(), so = function (t) { function e(e, r, i) { var n; return (n = t.call(this, e, r, i, "[stream-controller]", we) || this).audioCodecSwap = !1, n.gapController = null, n.level = -1, n._forceStartLoad = !1, n.altAudio = !1, n.audioOnly = !1, n.fragPlaying = null, n.onvplaying = null, n.onvseeked = null, n.fragLastKbps = 0, n.couldBacktrack = !1, n.backtrackFragment = null, n.audioCodecSwitch = !1, n.videoBuffer = null, n._registerListeners(), n } l(e, t); var r = e.prototype; return r._registerListeners = function () { var t = this.hls; t.on(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.on(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.on(S.MANIFEST_LOADING, this.onManifestLoading, this), t.on(S.MANIFEST_PARSED, this.onManifestParsed, this), t.on(S.LEVEL_LOADING, this.onLevelLoading, this), t.on(S.LEVEL_LOADED, this.onLevelLoaded, this), t.on(S.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this), t.on(S.ERROR, this.onError, this), t.on(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.on(S.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), t.on(S.BUFFER_CREATED, this.onBufferCreated, this), t.on(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.on(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.on(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r._unregisterListeners = function () { var t = this.hls; t.off(S.MEDIA_ATTACHED, this.onMediaAttached, this), t.off(S.MEDIA_DETACHING, this.onMediaDetaching, this), t.off(S.MANIFEST_LOADING, this.onManifestLoading, this), t.off(S.MANIFEST_PARSED, this.onManifestParsed, this), t.off(S.LEVEL_LOADED, this.onLevelLoaded, this), t.off(S.FRAG_LOAD_EMERGENCY_ABORTED, this.onFragLoadEmergencyAborted, this), t.off(S.ERROR, this.onError, this), t.off(S.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this), t.off(S.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this), t.off(S.BUFFER_CREATED, this.onBufferCreated, this), t.off(S.BUFFER_FLUSHED, this.onBufferFlushed, this), t.off(S.LEVELS_UPDATED, this.onLevelsUpdated, this), t.off(S.FRAG_BUFFERED, this.onFragBuffered, this) }, r.onHandlerDestroying = function () { this._unregisterListeners(), t.prototype.onHandlerDestroying.call(this) }, r.startLoad = function (t) { if (this.levels) { var e = this.lastCurrentTime, r = this.hls; if (this.stopLoad(), this.setInterval(100), this.level = -1, !this.startFragRequested) { var i = r.startLevel; -1 === i && (r.config.testBandwidth && this.levels.length > 1 ? (i = 0, this.bitrateTest = !0) : i = r.firstAutoLevel), r.nextLoadLevel = i, this.level = r.loadLevel, this.loadedmetadata = !1 } e > 0 && -1 === t && (this.log("Override startPosition with lastCurrentTime @" + e.toFixed(3)), t = e), this.state = vi, this.nextLoadPosition = this.startPosition = this.lastCurrentTime = t, this.tick() } else this._forceStartLoad = !0, this.state = gi }, r.stopLoad = function () { this._forceStartLoad = !1, t.prototype.stopLoad.call(this) }, r.doTick = function () { switch (this.state) { case ki: var t = this.levels, e = this.level, r = null == t ? void 0 : t[e], i = null == r ? void 0 : r.details; if (i && (!i.live || this.levelLastLoaded === r)) { if (this.waitForCdnTuneIn(i)) break; this.state = vi; break } if (this.hls.nextLoadLevel !== this.level) { this.state = vi; break } break; case yi: var n, a = self.performance.now(), s = this.retryDate; if (!s || a >= s || null != (n = this.media) && n.seeking) { var o = this.levels, l = this.level, u = null == o ? void 0 : o[l]; this.resetStartWhenNotLoaded(u || null), this.state = vi } }this.state === vi && this.doTickIdle(), this.onTickEnd() }, r.onTickEnd = function () { t.prototype.onTickEnd.call(this), this.checkBuffer(), this.checkFragmentChanged() }, r.doTickIdle = function () { var t = this.hls, e = this.levelLastLoaded, r = this.levels, i = this.media; if (null !== e && (i || !this.startFragRequested && t.config.startFragPrefetch) && (!this.altAudio || !this.audioOnly)) { var n = t.nextLoadLevel; if (null != r && r[n]) { var a = r[n], s = this.getMainFwdBufferInfo(); if (null !== s) { var o = this.getLevelDetails(); if (o && this._streamEnded(s, o)) { var l = {}; return this.altAudio && (l.type = "video"), this.hls.trigger(S.BUFFER_EOS, l), void (this.state = Li) } t.loadLevel !== n && -1 === t.manualLevel && this.log("Adapting to level " + n + " from level " + this.level), this.level = t.nextLoadLevel = n; var u = a.details; if (!u || this.state === ki || u.live && this.levelLastLoaded !== a) return this.level = n, void (this.state = ki); var h = s.len, d = this.getMaxBufferLength(a.maxBitrate); if (!(h >= d)) { this.backtrackFragment && this.backtrackFragment.start > s.end && (this.backtrackFragment = null); var c = this.backtrackFragment ? this.backtrackFragment.start : s.end, f = this.getNextFragment(c, u); if (this.couldBacktrack && !this.fragPrevious && f && "initSegment" !== f.sn && this.fragmentTracker.getState(f) !== jr) { var g, v = (null != (g = this.backtrackFragment) ? g : f).sn - u.startSN, m = u.fragments[v - 1]; m && f.cc === m.cc && (f = m, this.fragmentTracker.removeFragment(m)) } else this.backtrackFragment && s.len && (this.backtrackFragment = null); if (f && this.isLoopLoading(f, c)) { if (!f.gap) { var p = this.audioOnly && !this.altAudio ? O : N, y = (p === N ? this.videoBuffer : this.mediaBuffer) || this.media; y && this.afterBufferFlushed(y, p, we) } f = this.getNextFragmentLoopLoading(f, u, s, we, d) } f && (!f.initSegment || f.initSegment.data || this.bitrateTest || (f = f.initSegment), this.loadFragment(f, a, c)) } } } } }, r.loadFragment = function (e, r, i) { var n = this.fragmentTracker.getState(e); this.fragCurrent = e, n === Vr || n === Wr ? "initSegment" === e.sn ? this._loadInitSegment(e, r) : this.bitrateTest ? (this.log("Fragment " + e.sn + " of level " + e.level + " is being downloaded to test bitrate and will not be buffered"), this._loadBitrateTestFrag(e, r)) : (this.startFragRequested = !0, t.prototype.loadFragment.call(this, e, r, i)) : this.clearTrackerIfNeeded(e) }, r.getBufferedFrag = function (t) { return this.fragmentTracker.getBufferedFrag(t, we) }, r.followingBufferedFrag = function (t) { return t ? this.getBufferedFrag(t.end + .5) : null }, r.immediateLevelSwitch = function () { this.abortCurrentFrag(), this.flushMainBuffer(0, Number.POSITIVE_INFINITY) }, r.nextLevelSwitch = function () { var t = this.levels, e = this.media; if (null != e && e.readyState) { var r, i = this.getAppendedFrag(e.currentTime); i && i.start > 1 && this.flushMainBuffer(0, i.start - 1); var n = this.getLevelDetails(); if (null != n && n.live) { var a = this.getMainFwdBufferInfo(); if (!a || a.len < 2 * n.targetduration) return } if (!e.paused && t) { var s = t[this.hls.nextLoadLevel], o = this.fragLastKbps; r = o && this.fragCurrent ? this.fragCurrent.duration * s.maxBitrate / (1e3 * o) + 1 : 0 } else r = 0; var l = this.getBufferedFrag(e.currentTime + r); if (l) { var u = this.followingBufferedFrag(l); if (u) { this.abortCurrentFrag(); var h = u.maxStartPTS ? u.maxStartPTS : u.start, d = u.duration, c = Math.max(l.end, h + Math.min(Math.max(d - this.config.maxFragLookUpTolerance, d * (this.couldBacktrack ? .5 : .125)), d * (this.couldBacktrack ? .75 : .25))); this.flushMainBuffer(c, Number.POSITIVE_INFINITY) } } } }, r.abortCurrentFrag = function () { var t = this.fragCurrent; switch (this.fragCurrent = null, this.backtrackFragment = null, t && (t.abortRequests(), this.fragmentTracker.removeFragment(t)), this.state) { case mi: case pi: case yi: case Ti: case Si: this.state = vi }this.nextLoadPosition = this.getLoadPosition() }, r.flushMainBuffer = function (e, r) { t.prototype.flushMainBuffer.call(this, e, r, this.altAudio ? "video" : null) }, r.onMediaAttached = function (e, r) { t.prototype.onMediaAttached.call(this, e, r); var i = r.media; this.onvplaying = this.onMediaPlaying.bind(this), this.onvseeked = this.onMediaSeeked.bind(this), i.addEventListener("playing", this.onvplaying), i.addEventListener("seeked", this.onvseeked), this.gapController = new ao(this.config, i, this.fragmentTracker, this.hls) }, r.onMediaDetaching = function () { var e = this.media; e && this.onvplaying && this.onvseeked && (e.removeEventListener("playing", this.onvplaying), e.removeEventListener("seeked", this.onvseeked), this.onvplaying = this.onvseeked = null, this.videoBuffer = null), this.fragPlaying = null, this.gapController && (this.gapController.destroy(), this.gapController = null), t.prototype.onMediaDetaching.call(this) }, r.onMediaPlaying = function () { this.tick() }, r.onMediaSeeked = function () { var t = this.media, e = t ? t.currentTime : null; y(e) && this.log("Media seeked to " + e.toFixed(3)); var r = this.getMainFwdBufferInfo(); null !== r && 0 !== r.len ? this.tick() : this.warn('Main forward buffer length on "seeked" event ' + (r ? r.len : "empty") + ")") }, r.onManifestLoading = function () { this.log("Trigger BUFFER_RESET"), this.hls.trigger(S.BUFFER_RESET, void 0), this.fragmentTracker.removeAllFragments(), this.couldBacktrack = !1, this.startPosition = this.lastCurrentTime = this.fragLastKbps = 0, this.levels = this.fragPlaying = this.backtrackFragment = this.levelLastLoaded = null, this.altAudio = this.audioOnly = this.startFragRequested = !1 }, r.onManifestParsed = function (t, e) { var r, i, n = !1, a = !1; e.levels.forEach((function (t) { var e = t.audioCodec; e && (n = n || -1 !== e.indexOf("mp4a.40.2"), a = a || -1 !== e.indexOf("mp4a.40.5")) })), this.audioCodecSwitch = n && a && !("function" == typeof (null == (i = io()) || null == (r = i.prototype) ? void 0 : r.changeType)), this.audioCodecSwitch && this.log("Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"), this.levels = e.levels, this.startFragRequested = !1 }, r.onLevelLoading = function (t, e) { var r = this.levels; if (r && this.state === vi) { var i = r[e.level]; (!i.details || i.details.live && this.levelLastLoaded !== i || this.waitForCdnTuneIn(i.details)) && (this.state = ki) } }, r.onLevelLoaded = function (t, e) { var r, i = this.levels, n = e.level, a = e.details, s = a.totalduration; if (i) { this.log("Level " + n + " loaded [" + a.startSN + "," + a.endSN + "]" + (a.lastPartSn ? "[part-" + a.lastPartSn + "-" + a.lastPartIndex + "]" : "") + ", cc [" + a.startCC + ", " + a.endCC + "] duration:" + s); var o = i[n], l = this.fragCurrent; !l || this.state !== pi && this.state !== yi || l.level !== e.level && l.loader && this.abortCurrentFrag(); var u = 0; if (a.live || null != (r = o.details) && r.live) { var h; if (this.checkLiveUpdate(a), a.deltaUpdateFailed) return; u = this.alignPlaylists(a, o.details, null == (h = this.levelLastLoaded) ? void 0 : h.details) } if (o.details = a, this.levelLastLoaded = o, this.hls.trigger(S.LEVEL_UPDATED, { details: a, level: n }), this.state === ki) { if (this.waitForCdnTuneIn(a)) return; this.state = vi } this.startFragRequested ? a.live && this.synchronizeToLiveEdge(a) : this.setStartPosition(a, u), this.tick() } else this.warn("Levels were reset while loading level " + n) }, r._handleFragmentLoadProgress = function (t) { var e, r = t.frag, i = t.part, n = t.payload, a = this.levels; if (a) { var s = a[r.level], o = s.details; if (!o) return this.warn("Dropping fragment " + r.sn + " of level " + r.level + " after level details were reset"), void this.fragmentTracker.removeFragment(r); var l = s.videoCodec, u = o.PTSKnown || !o.live, h = null == (e = r.initSegment) ? void 0 : e.data, d = this._getAudioCodec(s), c = this.transmuxer = this.transmuxer || new Kn(this.hls, we, this._handleTransmuxComplete.bind(this), this._handleTransmuxerFlush.bind(this)), f = i ? i.index : -1, g = -1 !== f, v = new $r(r.level, r.sn, r.stats.chunkCount, n.byteLength, f, g), m = this.initPTS[r.cc]; c.push(n, h, d, l, r, i, o.totalduration, u, v, m) } else this.warn("Levels were reset while fragment load was in progress. Fragment " + r.sn + " of level " + r.level + " will not be buffered") }, r.onAudioTrackSwitching = function (t, e) { var r = this.altAudio; if (!e.url) { if (this.mediaBuffer !== this.media) { this.log("Switching on main audio, use media.buffered to schedule main fragment loading"), this.mediaBuffer = this.media; var i = this.fragCurrent; i && (this.log("Switching to main audio track, cancel main fragment load"), i.abortRequests(), this.fragmentTracker.removeFragment(i)), this.resetTransmuxer(), this.resetLoadingState() } else this.audioOnly && this.resetTransmuxer(); var n = this.hls; r && (n.trigger(S.BUFFER_FLUSHING, { startOffset: 0, endOffset: Number.POSITIVE_INFINITY, type: null }), this.fragmentTracker.removeAllFragments()), n.trigger(S.AUDIO_TRACK_SWITCHED, e) } }, r.onAudioTrackSwitched = function (t, e) { var r = e.id, i = !!this.hls.audioTracks[r].url; if (i) { var n = this.videoBuffer; n && this.mediaBuffer !== n && (this.log("Switching on alternate audio, use video.buffered to schedule main fragment loading"), this.mediaBuffer = n) } this.altAudio = i, this.tick() }, r.onBufferCreated = function (t, e) { var r, i, n = e.tracks, a = !1; for (var s in n) { var o = n[s]; if ("main" === o.id) { if (i = s, r = o, "video" === s) { var l = n[s]; l && (this.videoBuffer = l.buffer) } } else a = !0 } a && r ? (this.log("Alternate track found, use " + i + ".buffered to schedule main fragment loading"), this.mediaBuffer = r.buffer) : this.mediaBuffer = this.media }, r.onFragBuffered = function (t, e) { var r = e.frag, i = e.part; if (!r || r.type === we) { if (this.fragContextChanged(r)) return this.warn("Fragment " + r.sn + (i ? " p: " + i.index : "") + " of level " + r.level + " finished buffering, but was aborted. state: " + this.state), void (this.state === Si && (this.state = vi)); var n = i ? i.stats : r.stats; this.fragLastKbps = Math.round(8 * n.total / (n.buffering.end - n.loading.first)), "initSegment" !== r.sn && (this.fragPrevious = r), this.fragBufferedComplete(r, i) } }, r.onError = function (t, e) { var r; if (e.fatal) this.state = Ai; else switch (e.details) { case A.FRAG_GAP: case A.FRAG_PARSING_ERROR: case A.FRAG_DECRYPT_ERROR: case A.FRAG_LOAD_ERROR: case A.FRAG_LOAD_TIMEOUT: case A.KEY_LOAD_ERROR: case A.KEY_LOAD_TIMEOUT: this.onFragmentOrKeyLoadError(we, e); break; case A.LEVEL_LOAD_ERROR: case A.LEVEL_LOAD_TIMEOUT: case A.LEVEL_PARSING_ERROR: e.levelRetry || this.state !== ki || (null == (r = e.context) ? void 0 : r.type) !== be || (this.state = vi); break; case A.BUFFER_APPEND_ERROR: case A.BUFFER_FULL_ERROR: if (!e.parent || "main" !== e.parent) return; if (e.details === A.BUFFER_APPEND_ERROR) return void this.resetLoadingState(); this.reduceLengthAndFlushBuffer(e) && this.flushMainBuffer(0, Number.POSITIVE_INFINITY); break; case A.INTERNAL_EXCEPTION: this.recoverWorkerError(e) } }, r.checkBuffer = function () { var t = this.media, e = this.gapController; if (t && e && t.readyState) { if (this.loadedmetadata || !Jr.getBuffered(t).length) { var r = this.state !== vi ? this.fragCurrent : null; e.poll(this.lastCurrentTime, r) } this.lastCurrentTime = t.currentTime } }, r.onFragLoadEmergencyAborted = function () { this.state = vi, this.loadedmetadata || (this.startFragRequested = !1, this.nextLoadPosition = this.startPosition), this.tickImmediate() }, r.onBufferFlushed = function (t, e) { var r = e.type; if (r !== O || this.audioOnly && !this.altAudio) { var i = (r === N ? this.videoBuffer : this.mediaBuffer) || this.media; this.afterBufferFlushed(i, r, we), this.tick() } }, r.onLevelsUpdated = function (t, e) { this.level > -1 && this.fragCurrent && (this.level = this.fragCurrent.level), this.levels = e.levels }, r.swapAudioCodec = function () { this.audioCodecSwap = !this.audioCodecSwap }, r.seekToStartPos = function () { var t = this.media; if (t) { var e = t.currentTime, r = this.startPosition; if (r >= 0 && e < r) { if (t.seeking) return void this.log("could not seek to " + r + ", already seeking at " + e); var i = Jr.getBuffered(t), n = (i.length ? i.start(0) : 0) - r; n > 0 && (n < this.config.maxBufferHole || n < this.config.maxFragLookUpTolerance) && (this.log("adjusting start position by " + n + " to match buffer start"), r += n, this.startPosition = r), this.log("seek to target start position " + r + " from current time " + e), t.currentTime = r } } }, r._getAudioCodec = function (t) { var e = this.config.defaultAudioCodec || t.audioCodec; return this.audioCodecSwap && e && (this.log("Swapping audio codec"), e = -1 !== e.indexOf("mp4a.40.5") ? "mp4a.40.2" : "mp4a.40.5"), e }, r._loadBitrateTestFrag = function (t, e) { var r = this; t.bitrateTest = !0, this._doFragLoad(t, e).then((function (i) { var n = r.hls; if (i && !r.fragContextChanged(t)) { e.fragmentError = 0, r.state = vi, r.startFragRequested = !1, r.bitrateTest = !1; var a = t.stats; a.parsing.start = a.parsing.end = a.buffering.start = a.buffering.end = self.performance.now(), n.trigger(S.FRAG_LOADED, i), t.bitrateTest = !1 } })) }, r._handleTransmuxComplete = function (t) { var e, r = "main", i = this.hls, n = t.remuxResult, a = t.chunkMeta, s = this.getCurrentContext(a); if (s) { var o = s.frag, l = s.part, u = s.level, h = n.video, d = n.text, c = n.id3, f = n.initSegment, g = u.details, v = this.altAudio ? void 0 : n.audio; if (this.fragContextChanged(o)) this.fragmentTracker.removeFragment(o); else { if (this.state = Ti, f) { if (null != f && f.tracks) { var m = o.initSegment || o; this._bufferInitSegment(u, f.tracks, m, a), i.trigger(S.FRAG_PARSING_INIT_SEGMENT, { frag: m, id: r, tracks: f.tracks }) } var p = f.initPTS, E = f.timescale; y(p) && (this.initPTS[o.cc] = { baseTime: p, timescale: E }, i.trigger(S.INIT_PTS_FOUND, { frag: o, id: r, initPTS: p, timescale: E })) } if (h && g && "initSegment" !== o.sn) { var T = g.fragments[o.sn - 1 - g.startSN], L = o.sn === g.startSN, A = !T || o.cc > T.cc; if (!1 !== n.independent) { var R = h.startPTS, k = h.endPTS, b = h.startDTS, D = h.endDTS; if (l) l.elementaryStreams[h.type] = { startPTS: R, endPTS: k, startDTS: b, endDTS: D }; else if (h.firstKeyFrame && h.independent && 1 === a.id && !A && (this.couldBacktrack = !0), h.dropped && h.independent) { var I = this.getMainFwdBufferInfo(), w = (I ? I.end : this.getLoadPosition()) + this.config.maxBufferHole, C = h.firstKeyFramePTS ? h.firstKeyFramePTS : R; if (!L && w < C - this.config.maxBufferHole && !A) return void this.backtrack(o); A && (o.gap = !0), o.setElementaryStreamInfo(h.type, o.start, k, o.start, D, !0) } else L && R > 2 && (o.gap = !0); o.setElementaryStreamInfo(h.type, R, k, b, D), this.backtrackFragment && (this.backtrackFragment = o), this.bufferFragmentData(h, o, l, a, L || A) } else { if (!L && !A) return void this.backtrack(o); o.gap = !0 } } if (v) { var _ = v.startPTS, x = v.endPTS, P = v.startDTS, F = v.endDTS; l && (l.elementaryStreams[O] = { startPTS: _, endPTS: x, startDTS: P, endDTS: F }), o.setElementaryStreamInfo(O, _, x, P, F), this.bufferFragmentData(v, o, l, a) } if (g && null != c && null != (e = c.samples) && e.length) { var M = { id: r, frag: o, details: g, samples: c.samples }; i.trigger(S.FRAG_PARSING_METADATA, M) } if (g && d) { var N = { id: r, frag: o, details: g, samples: d.samples }; i.trigger(S.FRAG_PARSING_USERDATA, N) } } } else this.resetWhenMissingContext(a) }, r._bufferInitSegment = function (t, e, r, i) { var n = this; if (this.state === Ti) { this.audioOnly = !!e.audio && !e.video, this.altAudio && !this.audioOnly && delete e.audio; var a = e.audio, s = e.video, o = e.audiovideo; if (a) { var l = t.audioCodec, u = navigator.userAgent.toLowerCase(); this.audioCodecSwitch && (l && (l = -1 !== l.indexOf("mp4a.40.5") ? "mp4a.40.2" : "mp4a.40.5"), 1 !== a.metadata.channelCount && -1 === u.indexOf("firefox") && (l = "mp4a.40.5")), l && -1 !== l.indexOf("mp4a.40.5") && -1 !== u.indexOf("android") && "audio/mpeg" !== a.container && (l = "mp4a.40.2", this.log("Android: force audio codec to " + l)), t.audioCodec && t.audioCodec !== l && this.log('Swapping manifest audio codec "' + t.audioCodec + '" for "' + l + '"'), a.levelCodec = l, a.id = "main", this.log("Init audio buffer, container:" + a.container + ", codecs[selected/level/parsed]=[" + (l || "") + "/" + (t.audioCodec || "") + "/" + a.codec + "]") } s && (s.levelCodec = t.videoCodec, s.id = "main", this.log("Init video buffer, container:" + s.container + ", codecs[level/parsed]=[" + (t.videoCodec || "") + "/" + s.codec + "]")), o && this.log("Init audiovideo buffer, container:" + o.container + ", codecs[level/parsed]=[" + t.codecs + "/" + o.codec + "]"), this.hls.trigger(S.BUFFER_CODECS, e), Object.keys(e).forEach((function (t) { var a = e[t].initSegment; null != a && a.byteLength && n.hls.trigger(S.BUFFER_APPENDING, { type: t, data: a, frag: r, part: null, chunkMeta: i, parent: r.type }) })), this.tickImmediate() } }, r.getMainFwdBufferInfo = function () { return this.getFwdBufferInfo(this.mediaBuffer ? this.mediaBuffer : this.media, we) }, r.backtrack = function (t) { this.couldBacktrack = !0, this.backtrackFragment = t, this.resetTransmuxer(), this.flushBufferGap(t), this.fragmentTracker.removeFragment(t), this.fragPrevious = null, this.nextLoadPosition = t.start, this.state = vi }, r.checkFragmentChanged = function () { var t = this.media, e = null; if (t && t.readyState > 1 && !1 === t.seeking) { var r = t.currentTime; if (Jr.isBuffered(t, r) ? e = this.getAppendedFrag(r) : Jr.isBuffered(t, r + .1) && (e = this.getAppendedFrag(r + .1)), e) { this.backtrackFragment = null; var i = this.fragPlaying, n = e.level; i && e.sn === i.sn && i.level === n || (this.fragPlaying = e, this.hls.trigger(S.FRAG_CHANGED, { frag: e }), i && i.level === n || this.hls.trigger(S.LEVEL_SWITCHED, { level: n })) } } }, s(e, [{ key: "nextLevel", get: function () { var t = this.nextBufferedFrag; return t ? t.level : -1 } }, { key: "currentFrag", get: function () { var t = this.media; return t ? this.fragPlaying || this.getAppendedFrag(t.currentTime) : null } }, { key: "currentProgramDateTime", get: function () { var t = this.media; if (t) { var e = t.currentTime, r = this.currentFrag; if (r && y(e) && y(r.programDateTime)) { var i = r.programDateTime + 1e3 * (e - r.start); return new Date(i) } } return null } }, { key: "currentLevel", get: function () { var t = this.currentFrag; return t ? t.level : -1 } }, { key: "nextBufferedFrag", get: function () { var t = this.currentFrag; return t ? this.followingBufferedFrag(t) : null } }, { key: "forceStartLoad", get: function () { return this._forceStartLoad } }]), e }(bi), oo = function () { function t(e) { void 0 === e && (e = {}), this.config = void 0, this.userConfig = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this.started = !1, this._emitter = new Nn, this._autoLevelCapping = -1, this._maxHdcpLevel = null, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this.url = null, this.triggeringException = void 0, I(e.debug || !1, "Hls instance"); var r = this.config = function (t, e) { if ((e.liveSyncDurationCount || e.liveMaxLatencyDurationCount) && (e.liveSyncDuration || e.liveMaxLatencyDuration)) throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration"); if (void 0 !== e.liveMaxLatencyDurationCount && (void 0 === e.liveSyncDurationCount || e.liveMaxLatencyDurationCount <= e.liveSyncDurationCount)) throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"'); if (void 0 !== e.liveMaxLatencyDuration && (void 0 === e.liveSyncDuration || e.liveMaxLatencyDuration <= e.liveSyncDuration)) throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"'); var r = $s(t), n = ["TimeOut", "MaxRetry", "RetryDelay", "MaxRetryTimeout"]; return ["manifest", "level", "frag"].forEach((function (t) { var i = ("level" === t ? "playlist" : t) + "LoadPolicy", a = void 0 === e[i], s = []; n.forEach((function (n) { var o = t + "Loading" + n, l = e[o]; if (void 0 !== l && a) { s.push(o); var u = r[i].default; switch (e[i] = { default: u }, n) { case "TimeOut": u.maxLoadTimeMs = l, u.maxTimeToFirstByteMs = l; break; case "MaxRetry": u.errorRetry.maxNumRetry = l, u.timeoutRetry.maxNumRetry = l; break; case "RetryDelay": u.errorRetry.retryDelayMs = l, u.timeoutRetry.retryDelayMs = l; break; case "MaxRetryTimeout": u.errorRetry.maxRetryDelayMs = l, u.timeoutRetry.maxRetryDelayMs = l } } })), s.length && w.warn('hls.js config: "' + s.join('", "') + '" setting(s) are deprecated, use "' + i + '": ' + JSON.stringify(e[i])) })), i(i({}, r), e) }(t.DefaultConfig, e); this.userConfig = e, r.progressive && Zs(r); var n = r.abrController, a = r.bufferController, s = r.capLevelController, o = r.errorController, l = r.fpsController, u = new o(this), h = this.abrController = new n(this), d = this.bufferController = new a(this), c = this.capLevelController = new s(this), f = new l(this), g = new Fe(this), v = new qe(this), m = r.contentSteeringController, p = m ? new m(this) : null, y = this.levelController = new to(this, p), E = new qr(this), T = new ro(this.config), L = this.streamController = new so(this, E, T); c.setStreamController(L), f.setStreamController(L); var A = [g, y, L]; p && A.splice(1, 0, p), this.networkControllers = A; var R = [h, d, c, f, v, E]; this.audioTrackController = this.createController(r.audioTrackController, A); var k = r.audioStreamController; k && A.push(new k(this, E, T)), this.subtitleTrackController = this.createController(r.subtitleTrackController, A); var b = r.subtitleStreamController; b && A.push(new b(this, E, T)), this.createController(r.timelineController, R), T.emeController = this.emeController = this.createController(r.emeController, R), this.cmcdController = this.createController(r.cmcdController, R), this.latencyController = this.createController(Xe, R), this.coreComponents = R, A.push(u); var D = u.onErrorOut; "function" == typeof D && this.on(S.ERROR, D, u) } t.isMSESupported = function () { return no() }, t.isSupported = function () { return function () { if (!no()) return !1; var t = ee(); return "function" == typeof (null == t ? void 0 : t.isTypeSupported) && (["avc1.42E01E,mp4a.40.2", "av01.0.01M.08", "vp09.00.50.08"].some((function (e) { return t.isTypeSupported(ae(e, "video")) })) || ["mp4a.40.2", "fLaC"].some((function (e) { return t.isTypeSupported(ae(e, "audio")) }))) }() }, t.getMediaSource = function () { return ee() }; var e = t.prototype; return e.createController = function (t, e) { if (t) { var r = new t(this); return e && e.push(r), r } return null }, e.on = function (t, e, r) { void 0 === r && (r = this), this._emitter.on(t, e, r) }, e.once = function (t, e, r) { void 0 === r && (r = this), this._emitter.once(t, e, r) }, e.removeAllListeners = function (t) { this._emitter.removeAllListeners(t) }, e.off = function (t, e, r, i) { void 0 === r && (r = this), this._emitter.off(t, e, r, i) }, e.listeners = function (t) { return this._emitter.listeners(t) }, e.emit = function (t, e, r) { return this._emitter.emit(t, e, r) }, e.trigger = function (t, e) { if (this.config.debug) return this.emit(t, t, e); try { return this.emit(t, t, e) } catch (e) { if (w.error("An internal error happened while handling event " + t + '. Error message: "' + e.message + '". Here is a stacktrace:', e), !this.triggeringException) { this.triggeringException = !0; var r = t === S.ERROR; this.trigger(S.ERROR, { type: L.OTHER_ERROR, details: A.INTERNAL_EXCEPTION, fatal: r, event: t, error: e }), this.triggeringException = !1 } } return !1 }, e.listenerCount = function (t) { return this._emitter.listenerCount(t) }, e.destroy = function () { w.log("destroy"), this.trigger(S.DESTROYING, void 0), this.detachMedia(), this.removeAllListeners(), this._autoLevelCapping = -1, this.url = null, this.networkControllers.forEach((function (t) { return t.destroy() })), this.networkControllers.length = 0, this.coreComponents.forEach((function (t) { return t.destroy() })), this.coreComponents.length = 0; var t = this.config; t.xhrSetup = t.fetchSetup = void 0, this.userConfig = null }, e.attachMedia = function (t) { w.log("attachMedia"), this._media = t, this.trigger(S.MEDIA_ATTACHING, { media: t }) }, e.detachMedia = function () { w.log("detachMedia"), this.trigger(S.MEDIA_DETACHING, void 0), this._media = null }, e.loadSource = function (t) { this.stopLoad(); var e = this.media, r = this.url, i = this.url = p.buildAbsoluteURL(self.location.href, t, { alwaysNormalize: !0 }); this._autoLevelCapping = -1, this._maxHdcpLevel = null, w.log("loadSource:" + i), e && r && (r !== i || this.bufferController.hasSourceTypes()) && (this.detachMedia(), this.attachMedia(e)), this.trigger(S.MANIFEST_LOADING, { url: t }) }, e.startLoad = function (t) { void 0 === t && (t = -1), w.log("startLoad(" + t + ")"), this.started = !0, this.networkControllers.forEach((function (e) { e.startLoad(t) })) }, e.stopLoad = function () { w.log("stopLoad"), this.started = !1, this.networkControllers.forEach((function (t) { t.stopLoad() })) }, e.resumeBuffering = function () { this.started && this.networkControllers.forEach((function (t) { "fragmentLoader" in t && t.startLoad(-1) })) }, e.pauseBuffering = function () { this.networkControllers.forEach((function (t) { "fragmentLoader" in t && t.stopLoad() })) }, e.swapAudioCodec = function () { w.log("swapAudioCodec"), this.streamController.swapAudioCodec() }, e.recoverMediaError = function () { w.log("recoverMediaError"); var t = this._media; this.detachMedia(), t && this.attachMedia(t) }, e.removeLevel = function (t) { this.levelController.removeLevel(t) }, e.setAudioOption = function (t) { var e; return null == (e = this.audioTrackController) ? void 0 : e.setAudioOption(t) }, e.setSubtitleOption = function (t) { var e; return null == (e = this.subtitleTrackController) || e.setSubtitleOption(t), null }, s(t, [{ key: "levels", get: function () { var t = this.levelController.levels; return t || [] } }, { key: "currentLevel", get: function () { return this.streamController.currentLevel }, set: function (t) { w.log("set currentLevel:" + t), this.levelController.manualLevel = t, this.streamController.immediateLevelSwitch() } }, { key: "nextLevel", get: function () { return this.streamController.nextLevel }, set: function (t) { w.log("set nextLevel:" + t), this.levelController.manualLevel = t, this.streamController.nextLevelSwitch() } }, { key: "loadLevel", get: function () { return this.levelController.level }, set: function (t) { w.log("set loadLevel:" + t), this.levelController.manualLevel = t } }, { key: "nextLoadLevel", get: function () { return this.levelController.nextLoadLevel }, set: function (t) { this.levelController.nextLoadLevel = t } }, { key: "firstLevel", get: function () { return Math.max(this.levelController.firstLevel, this.minAutoLevel) }, set: function (t) { w.log("set firstLevel:" + t), this.levelController.firstLevel = t } }, { key: "startLevel", get: function () { var t = this.levelController.startLevel; return -1 === t && this.abrController.forcedAutoLevel > -1 ? this.abrController.forcedAutoLevel : t }, set: function (t) { w.log("set startLevel:" + t), -1 !== t && (t = Math.max(t, this.minAutoLevel)), this.levelController.startLevel = t } }, { key: "capLevelToPlayerSize", get: function () { return this.config.capLevelToPlayerSize }, set: function (t) { var e = !!t; e !== this.config.capLevelToPlayerSize && (e ? this.capLevelController.startCapping() : (this.capLevelController.stopCapping(), this.autoLevelCapping = -1, this.streamController.nextLevelSwitch()), this.config.capLevelToPlayerSize = e) } }, { key: "autoLevelCapping", get: function () { return this._autoLevelCapping }, set: function (t) { this._autoLevelCapping !== t && (w.log("set autoLevelCapping:" + t), this._autoLevelCapping = t, this.levelController.checkMaxAutoUpdated()) } }, { key: "bandwidthEstimate", get: function () { var t = this.abrController.bwEstimator; return t ? t.getEstimate() : NaN }, set: function (t) { this.abrController.resetEstimator(t) } }, { key: "ttfbEstimate", get: function () { var t = this.abrController.bwEstimator; return t ? t.getEstimateTTFB() : NaN } }, { key: "maxHdcpLevel", get: function () { return this._maxHdcpLevel }, set: function (t) { (function (t) { return ze.indexOf(t) > -1 })(t) && this._maxHdcpLevel !== t && (this._maxHdcpLevel = t, this.levelController.checkMaxAutoUpdated()) } }, { key: "autoLevelEnabled", get: function () { return -1 === this.levelController.manualLevel } }, { key: "manualLevel", get: function () { return this.levelController.manualLevel } }, { key: "minAutoLevel", get: function () { var t = this.levels, e = this.config.minAutoBitrate; if (!t) return 0; for (var r = t.length, i = 0; i < r; i++)if (t[i].maxBitrate >= e) return i; return 0 } }, { key: "maxAutoLevel", get: function () { var t, e = this.levels, r = this.autoLevelCapping, i = this.maxHdcpLevel; if (t = -1 === r && null != e && e.length ? e.length - 1 : r, i) for (var n = t; n--;) { var a = e[n].attrs["HDCP-LEVEL"]; if (a && a <= i) return n } return t } }, { key: "firstAutoLevel", get: function () { return this.abrController.firstAutoLevel } }, { key: "nextAutoLevel", get: function () { return this.abrController.nextAutoLevel }, set: function (t) { this.abrController.nextAutoLevel = t } }, { key: "playingDate", get: function () { return this.streamController.currentProgramDateTime } }, { key: "mainForwardBufferInfo", get: function () { return this.streamController.getMainFwdBufferInfo() } }, { key: "allAudioTracks", get: function () { var t = this.audioTrackController; return t ? t.allAudioTracks : [] } }, { key: "audioTracks", get: function () { var t = this.audioTrackController; return t ? t.audioTracks : [] } }, { key: "audioTrack", get: function () { var t = this.audioTrackController; return t ? t.audioTrack : -1 }, set: function (t) { var e = this.audioTrackController; e && (e.audioTrack = t) } }, { key: "allSubtitleTracks", get: function () { var t = this.subtitleTrackController; return t ? t.allSubtitleTracks : [] } }, { key: "subtitleTracks", get: function () { var t = this.subtitleTrackController; return t ? t.subtitleTracks : [] } }, { key: "subtitleTrack", get: function () { var t = this.subtitleTrackController; return t ? t.subtitleTrack : -1 }, set: function (t) { var e = this.subtitleTrackController; e && (e.subtitleTrack = t) } }, { key: "media", get: function () { return this._media } }, { key: "subtitleDisplay", get: function () { var t = this.subtitleTrackController; return !!t && t.subtitleDisplay }, set: function (t) { var e = this.subtitleTrackController; e && (e.subtitleDisplay = t) } }, { key: "lowLatencyMode", get: function () { return this.config.lowLatencyMode }, set: function (t) { this.config.lowLatencyMode = t } }, { key: "liveSyncPosition", get: function () { return this.latencyController.liveSyncPosition } }, { key: "latency", get: function () { return this.latencyController.latency } }, { key: "maxLatency", get: function () { return this.latencyController.maxLatency } }, { key: "targetLatency", get: function () { return this.latencyController.targetLatency } }, { key: "drift", get: function () { return this.latencyController.drift } }, { key: "forceStartLoad", get: function () { return this.streamController.forceStartLoad } }], [{ key: "version", get: function () { return "1.5.8" } }, { key: "Events", get: function () { return S } }, { key: "ErrorTypes", get: function () { return L } }, { key: "ErrorDetails", get: function () { return A } }, { key: "DefaultConfig", get: function () { return t.defaultConfig ? t.defaultConfig : Js }, set: function (e) { t.defaultConfig = e } }]), t }(); return oo.defaultConfig = void 0, oo }, "object" == typeof exports && "undefined" != typeof module ? module.exports = i() : "function" == typeof define && define.amd ? define(i) : (r = "undefined" != typeof globalThis ? globalThis : r || self).Hls = i() }(!1); +//# sourceMappingURL=hls.min.js.map diff --git a/public/js/jswebrtc.min.js b/public/js/jswebrtc.min.js index 16ea988..32b4a92 100644 --- a/public/js/jswebrtc.min.js +++ b/public/js/jswebrtc.min.js @@ -1,2 +1 @@ -var JSWebrtc = { Player: null, VideoElement: null, CreateVideoElements: function () { var elements = document.querySelectorAll(".jswebrtc"); for (var i = 0; i < elements.length; i++){ new JSWebrtc.VideoElement(elements[i]) } }, FillQuery: function (query_string, obj) { obj.user_query = {}; if (query_string.length == 0) return; if (query_string.indexOf("?") >= 0) query_string = query_string.split("?")[1]; var queries = query_string.split("&"); for (var i = 0; i < queries.length; i++){ var query = queries[i].split("="); obj[query[0]] = query[1]; obj.user_query[query[0]] = query[1] } if (obj.domain) obj.vhost = obj.domain }, ParseUrl: function (rtmp_url) { var a = document.createElement("a"); a.href = rtmp_url.replace("rtmp://", "http://").replace("webrtc://", "http://").replace("rtc://", "http://"); var vhost = a.hostname; var app = a.pathname.substr(1, a.pathname.lastIndexOf("/") - 1); var stream = a.pathname.substr(a.pathname.lastIndexOf("/") + 1); app = app.replace("...vhost...", "?vhost="); if (app.indexOf("?") >= 0) { var params = app.substr(app.indexOf("?")); app = app.substr(0, app.indexOf("?")); if (params.indexOf("vhost=") > 0) { vhost = params.substr(params.indexOf("vhost=") + "vhost=".length); if (vhost.indexOf("&") > 0) { vhost = vhost.substr(0, vhost.indexOf("&")) } } } if (a.hostname == vhost) { var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; if (re.test(a.hostname)) vhost = "__defaultVhost__" } var schema = "rtmp"; if (rtmp_url.indexOf("://") > 0) schema = rtmp_url.substr(0, rtmp_url.indexOf("://")); var port = a.port; if (!port) { if (schema === "http") { port = 80 } else if (schema === "https") { port = 443 } else if (schema === "rtmp") { port = 1935 } else if (schema === "webrtc" || schema === "rtc") { port = 1985 } } var ret = { url: rtmp_url, schema: schema, server: a.hostname, port: port, vhost: vhost, app: app, stream: stream }; JSWebrtc.FillQuery(a.search, ret); return ret }, HttpPost: function (url, data) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest; xhr.onreadystatechange = function () { if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) { var respone = JSON.parse(xhr.responseText); xhr.onreadystatechange = new Function; xhr = null; resolve(respone) } }; xhr.open("POST", url, true); xhr.timeout = 5e3; xhr.responseType = "text"; xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(data) }) } }; if (document.readyState === "complete") { JSWebrtc.CreateVideoElements() } else { document.addEventListener("DOMContentLoaded", JSWebrtc.CreateVideoElements) } JSWebrtc.VideoElement = function () { "use strict"; var VideoElement = function (element) { var url = element.dataset.url; if (!url) { throw "VideoElement has no `data-url` attribute" } var addStyles = function (element, styles) { for (var name in styles) { element.style[name] = styles[name] } }; this.container = element; addStyles(this.container, { display: "inline-block", position: "relative", minWidth: "80px", minHeight: "80px" }); this.video = document.createElement("video"); this.video.width = 960; this.video.height = 540; addStyles(this.video, { display: "block", width: "100%" }); this.container.appendChild(this.video); this.playButton = document.createElement("div"); this.playButton.innerHTML = VideoElement.PLAY_BUTTON; addStyles(this.playButton, { zIndex: 2, position: "absolute", top: "0", bottom: "0", left: "0", right: "0", maxWidth: "75px", maxHeight: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }); this.container.appendChild(this.playButton); var options = { video: this.video }; for (var option in element.dataset) { try { options[option] = JSON.parse(element.dataset[option]) } catch (err) { options[option] = element.dataset[option] } } this.player = new JSWebrtc.Player(url, options); element.playerInstance = this.player; if (options.poster && !options.autoplay) { options.decodeFirstFrame = false; this.poster = new Image; this.poster.src = options.poster; this.poster.addEventListener("load", this.posterLoaded); addStyles(this.poster, { display: "block", zIndex: 1, position: "absolute", top: 0, left: 0, bottom: 0, right: 0 }); this.container.appendChild(this.poster) } if (!this.player.options.streaming) { this.container.addEventListener("click", this.onClick.bind(this)) } if (options.autoplay) { this.playButton.style.display = "none" } if (this.player.audioOut && !this.player.audioOut.unlocked) { var unlockAudioElement = this.container; if (options.autoplay) { this.unmuteButton = document.createElement("div"); this.unmuteButton.innerHTML = VideoElement.UNMUTE_BUTTON; addStyles(this.unmuteButton, { zIndex: 2, position: "absolute", bottom: "10px", right: "20px", width: "75px", height: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }); this.container.appendChild(this.unmuteButton); unlockAudioElement = this.unmuteButton } this.unlockAudioBound = this.onUnlockAudio.bind(this, unlockAudioElement); unlockAudioElement.addEventListener("touchstart", this.unlockAudioBound, false); unlockAudioElement.addEventListener("click", this.unlockAudioBound, true) } }; VideoElement.prototype.onUnlockAudio = function (element, ev) { if (this.unmuteButton) { ev.preventDefault(); ev.stopPropagation() } this.player.audioOut.unlock(function () { if (this.unmuteButton) { this.unmuteButton.style.display = "none" } element.removeEventListener("touchstart", this.unlockAudioBound); element.removeEventListener("click", this.unlockAudioBound) }.bind(this)) }; VideoElement.prototype.onClick = function (ev) { if (this.player.isPlaying) { this.player.pause(); this.playButton.style.display = "block" } else { this.player.play(); this.playButton.style.display = "none"; if (this.poster) { this.poster.style.display = "none" } } }; VideoElement.PLAY_BUTTON = '' + '' + '' + ""; VideoElement.UNMUTE_BUTTON = '' + '' + '' + '' + '' + "" + ""; return VideoElement }(); JSWebrtc.Player = function () { "use strict"; var Player = function (url, options) { this.options = options || {}; if (!url.match(/^webrtc?:\/\//)) { throw "JSWebrtc just work with webrtc" } if (!this.options.video) { throw "VideoElement is null" } this.urlParams = JSWebrtc.ParseUrl(url); this.pc = null; this.autoplay = !!options.autoplay || false; this.paused = true; if (this.autoplay) this.options.video.muted = true; this.startLoading() }; Player.prototype.startLoading = function () { var _self = this; if (_self.pc) { _self.pc.close() } _self.pc = new RTCPeerConnection(null); _self.pc.ontrack = function (event) { _self.options.video["srcObject"] = event.streams[0] }; _self.pc.addTransceiver("audio", { direction: "recvonly" }); _self.pc.addTransceiver("video", { direction: "recvonly" }); _self.pc.createOffer().then(function (offer) { return _self.pc.setLocalDescription(offer).then(function () { return offer }) }).then(function (offer) { return new Promise(function (resolve, reject) { var port = _self.urlParams.port || 1985; var api = _self.urlParams.user_query.play || "/rtc/v1/play/"; if (api.lastIndexOf("/") != api.length - 1) { api += "/" } var url = "https://" + _self.urlParams.server + api; for (var key in _self.urlParams.user_query) { if (key != "api" && key != "play") { url += "&" + key + "=" + _self.urlParams.user_query[key] } } var data = { api: url, streamurl: _self.urlParams.url, clientip: null, sdp: offer.sdp }; console.log("offer: " + JSON.stringify(data)); JSWebrtc.HttpPost(url, JSON.stringify(data)).then(function (res) { console.log("answer: " + JSON.stringify(res)); resolve(res.sdp) }, function (rej) { reject(rej) }) }) }).then(function (answer) { return _self.pc.setRemoteDescription(new RTCSessionDescription({ type: "answer", sdp: answer })) }).catch(function (reason) { throw reason }); if (this.autoplay) { this.play() } }; Player.prototype.play = function (ev) { if (this.animationId) { return } this.animationId = requestAnimationFrame(this.update.bind(this)); this.paused = false }; Player.prototype.pause = function (ev) { if (this.paused) { return } cancelAnimationFrame(this.animationId); this.animationId = null; this.isPlaying = false; this.paused = true; this.options.video.pause(); if (this.options.onPause) { this.options.onPause(this) } }; Player.prototype.stop = function (ev) { this.pause() }; Player.prototype.destroy = function () { this.pause(); this.pc && this.pc.close() && this.pc.destroy(); this.audioOut && this.audioOut.destroy() }; Player.prototype.update = function () { this.animationId = requestAnimationFrame(this.update.bind(this)); if (this.options.video.readyState < 4) { return } if (!this.isPlaying) { this.isPlaying = true; this.options.video.play(); if (this.options.onPlay) { this.options.onPlay(this) } } }; return Player }(); - +var JSWebrtc = { Player: null, VideoElement: null, CreateVideoElements: function () { var elements = document.querySelectorAll(".jswebrtc"); for (var i = 0; i < elements.length; i++) { new JSWebrtc.VideoElement(elements[i]) } }, FillQuery: function (query_string, obj) { obj.user_query = {}; if (query_string.length == 0) return; if (query_string.indexOf("?") >= 0) query_string = query_string.split("?")[1]; var queries = query_string.split("&"); for (var i = 0; i < queries.length; i++) { var query = queries[i].split("="); obj[query[0]] = query[1]; obj.user_query[query[0]] = query[1] } if (obj.domain) obj.vhost = obj.domain }, ParseUrl: function (rtmp_url) { var a = document.createElement("a"); a.href = rtmp_url.replace("rtmp://", "http://").replace("webrtc://", "http://").replace("rtc://", "http://"); var vhost = a.hostname; var app = a.pathname.substr(1, a.pathname.lastIndexOf("/") - 1); var stream = a.pathname.substr(a.pathname.lastIndexOf("/") + 1); app = app.replace("...vhost...", "?vhost="); if (app.indexOf("?") >= 0) { var params = app.substr(app.indexOf("?")); app = app.substr(0, app.indexOf("?")); if (params.indexOf("vhost=") > 0) { vhost = params.substr(params.indexOf("vhost=") + "vhost=".length); if (vhost.indexOf("&") > 0) { vhost = vhost.substr(0, vhost.indexOf("&")) } } } if (a.hostname == vhost) { var re = /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; if (re.test(a.hostname)) vhost = "__defaultVhost__" } var schema = "rtmp"; if (rtmp_url.indexOf("://") > 0) schema = rtmp_url.substr(0, rtmp_url.indexOf("://")); var port = a.port; if (!port) { if (schema === "http") { port = 80 } else if (schema === "https") { port = 443 } else if (schema === "rtmp") { port = 1935 } else if (schema === "webrtc" || schema === "rtc") { port = 1985 } } var ret = { url: rtmp_url, schema: schema, server: a.hostname, port: port, vhost: vhost, app: app, stream: stream }; JSWebrtc.FillQuery(a.search, ret); return ret }, HttpPost: function (url, data) { return new Promise(function (resolve, reject) { var xhr = new XMLHttpRequest; xhr.onreadystatechange = function () { if (xhr.readyState === 4 && (xhr.status >= 200 && xhr.status < 300)) { var respone = JSON.parse(xhr.responseText); xhr.onreadystatechange = new Function; xhr = null; resolve(respone) } }; xhr.open("POST", url, true); xhr.timeout = 5e3; xhr.responseType = "text"; xhr.setRequestHeader("Content-Type", "application/json"); xhr.send(data) }) } }; if (document.readyState === "complete") { JSWebrtc.CreateVideoElements() } else { document.addEventListener("DOMContentLoaded", JSWebrtc.CreateVideoElements) } JSWebrtc.VideoElement = function () { "use strict"; var VideoElement = function (element) { var url = element.dataset.url; if (!url) { throw "VideoElement has no `data-url` attribute" } var addStyles = function (element, styles) { for (var name in styles) { element.style[name] = styles[name] } }; this.container = element; addStyles(this.container, { display: "inline-block", position: "relative", minWidth: "80px", minHeight: "80px" }); this.video = document.createElement("video"); this.video.width = 960; this.video.height = 540; addStyles(this.video, { display: "block", width: "100%" }); this.container.appendChild(this.video); this.playButton = document.createElement("div"); this.playButton.innerHTML = VideoElement.PLAY_BUTTON; addStyles(this.playButton, { zIndex: 2, position: "absolute", top: "0", bottom: "0", left: "0", right: "0", maxWidth: "75px", maxHeight: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }); this.container.appendChild(this.playButton); var options = { video: this.video }; for (var option in element.dataset) { try { options[option] = JSON.parse(element.dataset[option]) } catch (err) { options[option] = element.dataset[option] } } this.player = new JSWebrtc.Player(url, options); element.playerInstance = this.player; if (options.poster && !options.autoplay) { options.decodeFirstFrame = false; this.poster = new Image; this.poster.src = options.poster; this.poster.addEventListener("load", this.posterLoaded); addStyles(this.poster, { display: "block", zIndex: 1, position: "absolute", top: 0, left: 0, bottom: 0, right: 0 }); this.container.appendChild(this.poster) } if (!this.player.options.streaming) { this.container.addEventListener("click", this.onClick.bind(this)) } if (options.autoplay) { this.playButton.style.display = "none" } if (this.player.audioOut && !this.player.audioOut.unlocked) { var unlockAudioElement = this.container; if (options.autoplay) { this.unmuteButton = document.createElement("div"); this.unmuteButton.innerHTML = VideoElement.UNMUTE_BUTTON; addStyles(this.unmuteButton, { zIndex: 2, position: "absolute", bottom: "10px", right: "20px", width: "75px", height: "75px", margin: "auto", opacity: "0.7", cursor: "pointer" }); this.container.appendChild(this.unmuteButton); unlockAudioElement = this.unmuteButton } this.unlockAudioBound = this.onUnlockAudio.bind(this, unlockAudioElement); unlockAudioElement.addEventListener("touchstart", this.unlockAudioBound, false); unlockAudioElement.addEventListener("click", this.unlockAudioBound, true) } }; VideoElement.prototype.onUnlockAudio = function (element, ev) { if (this.unmuteButton) { ev.preventDefault(); ev.stopPropagation() } this.player.audioOut.unlock(function () { if (this.unmuteButton) { this.unmuteButton.style.display = "none" } element.removeEventListener("touchstart", this.unlockAudioBound); element.removeEventListener("click", this.unlockAudioBound) }.bind(this)) }; VideoElement.prototype.onClick = function (ev) { if (this.player.isPlaying) { this.player.pause(); this.playButton.style.display = "block" } else { this.player.play(); this.playButton.style.display = "none"; if (this.poster) { this.poster.style.display = "none" } } }; VideoElement.PLAY_BUTTON = '' + '' + '' + ""; VideoElement.UNMUTE_BUTTON = '' + '' + '' + '' + '' + "" + ""; return VideoElement }(); JSWebrtc.Player = function () { "use strict"; var Player = function (url, options) { this.options = options || {}; if (!url.match(/^webrtc?:\/\//)) { throw "JSWebrtc just work with webrtc" } if (!this.options.video) { throw "VideoElement is null" } this.urlParams = JSWebrtc.ParseUrl(url); this.pc = null; this.autoplay = !!options.autoplay || false; this.paused = true; if (this.autoplay) this.options.video.muted = true; this.startLoading() }; Player.prototype.startLoading = function () { var _self = this; if (_self.pc) { _self.pc.close() } _self.pc = new RTCPeerConnection(null); _self.pc.ontrack = function (event) { _self.options.video["srcObject"] = event.streams[0] }; _self.pc.addTransceiver("audio", { direction: "recvonly" }); _self.pc.addTransceiver("video", { direction: "recvonly" }); _self.pc.createOffer().then(function (offer) { return _self.pc.setLocalDescription(offer).then(function () { return offer }) }).then(function (offer) { return new Promise(function (resolve, reject) { var port = _self.urlParams.port || 1985; var api = _self.urlParams.user_query.play || "/rtc/v1/play/"; if (api.lastIndexOf("/") != api.length - 1) { api += "/" } var url = "http://" + _self.urlParams.server + ":" + port + api; for (var key in _self.urlParams.user_query) { if (key != "api" && key != "play") { url += "&" + key + "=" + _self.urlParams.user_query[key] } } var data = { api: url, streamurl: _self.urlParams.url, clientip: null, sdp: offer.sdp }; console.log("offer: " + JSON.stringify(data)); JSWebrtc.HttpPost(url, JSON.stringify(data)).then(function (res) { console.log("answer: " + JSON.stringify(res)); resolve(res.sdp) }, function (rej) { reject(rej) }) }) }).then(function (answer) { return _self.pc.setRemoteDescription(new RTCSessionDescription({ type: "answer", sdp: answer })) }).catch(function (reason) { throw reason }); if (this.autoplay) { this.play() } }; Player.prototype.play = function (ev) { if (this.animationId) { return } this.animationId = requestAnimationFrame(this.update.bind(this)); this.paused = false }; Player.prototype.pause = function (ev) { if (this.paused) { return } cancelAnimationFrame(this.animationId); this.animationId = null; this.isPlaying = false; this.paused = true; this.options.video.pause(); if (this.options.onPause) { this.options.onPause(this) } }; Player.prototype.stop = function (ev) { this.pause() }; Player.prototype.destroy = function () { this.pause(); this.pc && this.pc.close() && this.pc.destroy(); this.audioOut && this.audioOut.destroy() }; Player.prototype.update = function () { this.animationId = requestAnimationFrame(this.update.bind(this)); if (this.options.video.readyState < 4) { return } if (!this.isPlaying) { this.isPlaying = true; this.options.video.play(); if (this.options.onPlay) { this.options.onPlay(this) } } }; return Player }(); diff --git a/public/js/leaflet.js b/public/js/leaflet.js new file mode 100644 index 0000000..4361007 --- /dev/null +++ b/public/js/leaflet.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.9.4, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2023 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function (t, e) { "object" == typeof exports && "undefined" != typeof module ? e(exports) : "function" == typeof define && define.amd ? define(["exports"], e) : e((t = "undefined" != typeof globalThis ? globalThis : t || self).leaflet = {}) }(this, function (t) { "use strict"; function l(t) { for (var e, i, n = 1, o = arguments.length; n < o; n++)for (e in i = arguments[n]) t[e] = i[e]; return t } var R = Object.create || function (t) { return N.prototype = t, new N }; function N() { } function a(t, e) { var i, n = Array.prototype.slice; return t.bind ? t.bind.apply(t, n.call(arguments, 1)) : (i = n.call(arguments, 2), function () { return t.apply(e, i.length ? i.concat(n.call(arguments)) : arguments) }) } var D = 0; function h(t) { return "_leaflet_id" in t || (t._leaflet_id = ++D), t._leaflet_id } function j(t, e, i) { var n, o, s = function () { n = !1, o && (r.apply(i, o), o = !1) }, r = function () { n ? o = arguments : (t.apply(i, arguments), setTimeout(s, e), n = !0) }; return r } function H(t, e, i) { var n = e[1], e = e[0], o = n - e; return t === n && i ? t : ((t - e) % o + o) % o + e } function u() { return !1 } function i(t, e) { return !1 === e ? t : (e = Math.pow(10, void 0 === e ? 6 : e), Math.round(t * e) / e) } function W(t) { return t.trim ? t.trim() : t.replace(/^\s+|\s+$/g, "") } function F(t) { return W(t).split(/\s+/) } function c(t, e) { for (var i in Object.prototype.hasOwnProperty.call(t, "options") || (t.options = t.options ? R(t.options) : {}), e) t.options[i] = e[i]; return t.options } function U(t, e, i) { var n, o = []; for (n in t) o.push(encodeURIComponent(i ? n.toUpperCase() : n) + "=" + encodeURIComponent(t[n])); return (e && -1 !== e.indexOf("?") ? "&" : "?") + o.join("&") } var V = /\{ *([\w_ -]+) *\}/g; function q(t, i) { return t.replace(V, function (t, e) { e = i[e]; if (void 0 === e) throw new Error("No value provided for variable " + t); return e = "function" == typeof e ? e(i) : e }) } var d = Array.isArray || function (t) { return "[object Array]" === Object.prototype.toString.call(t) }; function G(t, e) { for (var i = 0; i < t.length; i++)if (t[i] === e) return i; return -1 } var K = "data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="; function Y(t) { return window["webkit" + t] || window["moz" + t] || window["ms" + t] } var X = 0; function J(t) { var e = +new Date, i = Math.max(0, 16 - (e - X)); return X = e + i, window.setTimeout(t, i) } var $ = window.requestAnimationFrame || Y("RequestAnimationFrame") || J, Q = window.cancelAnimationFrame || Y("CancelAnimationFrame") || Y("CancelRequestAnimationFrame") || function (t) { window.clearTimeout(t) }; function x(t, e, i) { if (!i || $ !== J) return $.call(window, a(t, e)); t.call(e) } function r(t) { t && Q.call(window, t) } var tt = { __proto__: null, extend: l, create: R, bind: a, get lastId() { return D }, stamp: h, throttle: j, wrapNum: H, falseFn: u, formatNum: i, trim: W, splitWords: F, setOptions: c, getParamString: U, template: q, isArray: d, indexOf: G, emptyImageUrl: K, requestFn: $, cancelFn: Q, requestAnimFrame: x, cancelAnimFrame: r }; function et() { } et.extend = function (t) { function e() { c(this), this.initialize && this.initialize.apply(this, arguments), this.callInitHooks() } var i, n = e.__super__ = this.prototype, o = R(n); for (i in (o.constructor = e).prototype = o, this) Object.prototype.hasOwnProperty.call(this, i) && "prototype" !== i && "__super__" !== i && (e[i] = this[i]); if (t.statics && l(e, t.statics), t.includes) { var s = t.includes; if ("undefined" != typeof L && L && L.Mixin) { s = d(s) ? s : [s]; for (var r = 0; r < s.length; r++)s[r] === L.Mixin.Events && console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.", (new Error).stack) } l.apply(null, [o].concat(t.includes)) } return l(o, t), delete o.statics, delete o.includes, o.options && (o.options = n.options ? R(n.options) : {}, l(o.options, t.options)), o._initHooks = [], o.callInitHooks = function () { if (!this._initHooksCalled) { n.callInitHooks && n.callInitHooks.call(this), this._initHooksCalled = !0; for (var t = 0, e = o._initHooks.length; t < e; t++)o._initHooks[t].call(this) } }, e }, et.include = function (t) { var e = this.prototype.options; return l(this.prototype, t), t.options && (this.prototype.options = e, this.mergeOptions(t.options)), this }, et.mergeOptions = function (t) { return l(this.prototype.options, t), this }, et.addInitHook = function (t) { var e = Array.prototype.slice.call(arguments, 1), i = "function" == typeof t ? t : function () { this[t].apply(this, e) }; return this.prototype._initHooks = this.prototype._initHooks || [], this.prototype._initHooks.push(i), this }; var e = { on: function (t, e, i) { if ("object" == typeof t) for (var n in t) this._on(n, t[n], e); else for (var o = 0, s = (t = F(t)).length; o < s; o++)this._on(t[o], e, i); return this }, off: function (t, e, i) { if (arguments.length) if ("object" == typeof t) for (var n in t) this._off(n, t[n], e); else { t = F(t); for (var o = 1 === arguments.length, s = 0, r = t.length; s < r; s++)o ? this._off(t[s]) : this._off(t[s], e, i) } else delete this._events; return this }, _on: function (t, e, i, n) { "function" != typeof e ? console.warn("wrong listener type: " + typeof e) : !1 === this._listens(t, e, i) && (e = { fn: e, ctx: i = i === this ? void 0 : i }, n && (e.once = !0), this._events = this._events || {}, this._events[t] = this._events[t] || [], this._events[t].push(e)) }, _off: function (t, e, i) { var n, o, s; if (this._events && (n = this._events[t])) if (1 === arguments.length) { if (this._firingCount) for (o = 0, s = n.length; o < s; o++)n[o].fn = u; delete this._events[t] } else "function" != typeof e ? console.warn("wrong listener type: " + typeof e) : !1 !== (e = this._listens(t, e, i)) && (i = n[e], this._firingCount && (i.fn = u, this._events[t] = n = n.slice()), n.splice(e, 1)) }, fire: function (t, e, i) { if (this.listens(t, i)) { var n = l({}, e, { type: t, target: this, sourceTarget: e && e.sourceTarget || this }); if (this._events) { var o = this._events[t]; if (o) { this._firingCount = this._firingCount + 1 || 1; for (var s = 0, r = o.length; s < r; s++) { var a = o[s], h = a.fn; a.once && this.off(t, h, a.ctx), h.call(a.ctx || this, n) } this._firingCount-- } } i && this._propagateEvent(n) } return this }, listens: function (t, e, i, n) { "string" != typeof t && console.warn('"string" type argument expected'); var o = e, s = ("function" != typeof e && (n = !!e, i = o = void 0), this._events && this._events[t]); if (s && s.length && !1 !== this._listens(t, o, i)) return !0; if (n) for (var r in this._eventParents) if (this._eventParents[r].listens(t, e, i, n)) return !0; return !1 }, _listens: function (t, e, i) { if (this._events) { var n = this._events[t] || []; if (!e) return !!n.length; i === this && (i = void 0); for (var o = 0, s = n.length; o < s; o++)if (n[o].fn === e && n[o].ctx === i) return o } return !1 }, once: function (t, e, i) { if ("object" == typeof t) for (var n in t) this._on(n, t[n], e, !0); else for (var o = 0, s = (t = F(t)).length; o < s; o++)this._on(t[o], e, i, !0); return this }, addEventParent: function (t) { return this._eventParents = this._eventParents || {}, this._eventParents[h(t)] = t, this }, removeEventParent: function (t) { return this._eventParents && delete this._eventParents[h(t)], this }, _propagateEvent: function (t) { for (var e in this._eventParents) this._eventParents[e].fire(t.type, l({ layer: t.target, propagatedFrom: t.target }, t), !0) } }, it = (e.addEventListener = e.on, e.removeEventListener = e.clearAllEventListeners = e.off, e.addOneTimeEventListener = e.once, e.fireEvent = e.fire, e.hasEventListeners = e.listens, et.extend(e)); function p(t, e, i) { this.x = i ? Math.round(t) : t, this.y = i ? Math.round(e) : e } var nt = Math.trunc || function (t) { return 0 < t ? Math.floor(t) : Math.ceil(t) }; function m(t, e, i) { return t instanceof p ? t : d(t) ? new p(t[0], t[1]) : null == t ? t : "object" == typeof t && "x" in t && "y" in t ? new p(t.x, t.y) : new p(t, e, i) } function f(t, e) { if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++)this.extend(i[n]) } function _(t, e) { return !t || t instanceof f ? t : new f(t, e) } function s(t, e) { if (t) for (var i = e ? [t, e] : t, n = 0, o = i.length; n < o; n++)this.extend(i[n]) } function g(t, e) { return t instanceof s ? t : new s(t, e) } function v(t, e, i) { if (isNaN(t) || isNaN(e)) throw new Error("Invalid LatLng object: (" + t + ", " + e + ")"); this.lat = +t, this.lng = +e, void 0 !== i && (this.alt = +i) } function w(t, e, i) { return t instanceof v ? t : d(t) && "object" != typeof t[0] ? 3 === t.length ? new v(t[0], t[1], t[2]) : 2 === t.length ? new v(t[0], t[1]) : null : null == t ? t : "object" == typeof t && "lat" in t ? new v(t.lat, "lng" in t ? t.lng : t.lon, t.alt) : void 0 === e ? null : new v(t, e, i) } p.prototype = { clone: function () { return new p(this.x, this.y) }, add: function (t) { return this.clone()._add(m(t)) }, _add: function (t) { return this.x += t.x, this.y += t.y, this }, subtract: function (t) { return this.clone()._subtract(m(t)) }, _subtract: function (t) { return this.x -= t.x, this.y -= t.y, this }, divideBy: function (t) { return this.clone()._divideBy(t) }, _divideBy: function (t) { return this.x /= t, this.y /= t, this }, multiplyBy: function (t) { return this.clone()._multiplyBy(t) }, _multiplyBy: function (t) { return this.x *= t, this.y *= t, this }, scaleBy: function (t) { return new p(this.x * t.x, this.y * t.y) }, unscaleBy: function (t) { return new p(this.x / t.x, this.y / t.y) }, round: function () { return this.clone()._round() }, _round: function () { return this.x = Math.round(this.x), this.y = Math.round(this.y), this }, floor: function () { return this.clone()._floor() }, _floor: function () { return this.x = Math.floor(this.x), this.y = Math.floor(this.y), this }, ceil: function () { return this.clone()._ceil() }, _ceil: function () { return this.x = Math.ceil(this.x), this.y = Math.ceil(this.y), this }, trunc: function () { return this.clone()._trunc() }, _trunc: function () { return this.x = nt(this.x), this.y = nt(this.y), this }, distanceTo: function (t) { var e = (t = m(t)).x - this.x, t = t.y - this.y; return Math.sqrt(e * e + t * t) }, equals: function (t) { return (t = m(t)).x === this.x && t.y === this.y }, contains: function (t) { return t = m(t), Math.abs(t.x) <= Math.abs(this.x) && Math.abs(t.y) <= Math.abs(this.y) }, toString: function () { return "Point(" + i(this.x) + ", " + i(this.y) + ")" } }, f.prototype = { extend: function (t) { var e, i; if (t) { if (t instanceof p || "number" == typeof t[0] || "x" in t) e = i = m(t); else if (e = (t = _(t)).min, i = t.max, !e || !i) return this; this.min || this.max ? (this.min.x = Math.min(e.x, this.min.x), this.max.x = Math.max(i.x, this.max.x), this.min.y = Math.min(e.y, this.min.y), this.max.y = Math.max(i.y, this.max.y)) : (this.min = e.clone(), this.max = i.clone()) } return this }, getCenter: function (t) { return m((this.min.x + this.max.x) / 2, (this.min.y + this.max.y) / 2, t) }, getBottomLeft: function () { return m(this.min.x, this.max.y) }, getTopRight: function () { return m(this.max.x, this.min.y) }, getTopLeft: function () { return this.min }, getBottomRight: function () { return this.max }, getSize: function () { return this.max.subtract(this.min) }, contains: function (t) { var e, i; return (t = ("number" == typeof t[0] || t instanceof p ? m : _)(t)) instanceof f ? (e = t.min, i = t.max) : e = i = t, e.x >= this.min.x && i.x <= this.max.x && e.y >= this.min.y && i.y <= this.max.y }, intersects: function (t) { t = _(t); var e = this.min, i = this.max, n = t.min, t = t.max, o = t.x >= e.x && n.x <= i.x, t = t.y >= e.y && n.y <= i.y; return o && t }, overlaps: function (t) { t = _(t); var e = this.min, i = this.max, n = t.min, t = t.max, o = t.x > e.x && n.x < i.x, t = t.y > e.y && n.y < i.y; return o && t }, isValid: function () { return !(!this.min || !this.max) }, pad: function (t) { var e = this.min, i = this.max, n = Math.abs(e.x - i.x) * t, t = Math.abs(e.y - i.y) * t; return _(m(e.x - n, e.y - t), m(i.x + n, i.y + t)) }, equals: function (t) { return !!t && (t = _(t), this.min.equals(t.getTopLeft()) && this.max.equals(t.getBottomRight())) } }, s.prototype = { extend: function (t) { var e, i, n = this._southWest, o = this._northEast; if (t instanceof v) i = e = t; else { if (!(t instanceof s)) return t ? this.extend(w(t) || g(t)) : this; if (e = t._southWest, i = t._northEast, !e || !i) return this } return n || o ? (n.lat = Math.min(e.lat, n.lat), n.lng = Math.min(e.lng, n.lng), o.lat = Math.max(i.lat, o.lat), o.lng = Math.max(i.lng, o.lng)) : (this._southWest = new v(e.lat, e.lng), this._northEast = new v(i.lat, i.lng)), this }, pad: function (t) { var e = this._southWest, i = this._northEast, n = Math.abs(e.lat - i.lat) * t, t = Math.abs(e.lng - i.lng) * t; return new s(new v(e.lat - n, e.lng - t), new v(i.lat + n, i.lng + t)) }, getCenter: function () { return new v((this._southWest.lat + this._northEast.lat) / 2, (this._southWest.lng + this._northEast.lng) / 2) }, getSouthWest: function () { return this._southWest }, getNorthEast: function () { return this._northEast }, getNorthWest: function () { return new v(this.getNorth(), this.getWest()) }, getSouthEast: function () { return new v(this.getSouth(), this.getEast()) }, getWest: function () { return this._southWest.lng }, getSouth: function () { return this._southWest.lat }, getEast: function () { return this._northEast.lng }, getNorth: function () { return this._northEast.lat }, contains: function (t) { t = ("number" == typeof t[0] || t instanceof v || "lat" in t ? w : g)(t); var e, i, n = this._southWest, o = this._northEast; return t instanceof s ? (e = t.getSouthWest(), i = t.getNorthEast()) : e = i = t, e.lat >= n.lat && i.lat <= o.lat && e.lng >= n.lng && i.lng <= o.lng }, intersects: function (t) { t = g(t); var e = this._southWest, i = this._northEast, n = t.getSouthWest(), t = t.getNorthEast(), o = t.lat >= e.lat && n.lat <= i.lat, t = t.lng >= e.lng && n.lng <= i.lng; return o && t }, overlaps: function (t) { t = g(t); var e = this._southWest, i = this._northEast, n = t.getSouthWest(), t = t.getNorthEast(), o = t.lat > e.lat && n.lat < i.lat, t = t.lng > e.lng && n.lng < i.lng; return o && t }, toBBoxString: function () { return [this.getWest(), this.getSouth(), this.getEast(), this.getNorth()].join(",") }, equals: function (t, e) { return !!t && (t = g(t), this._southWest.equals(t.getSouthWest(), e) && this._northEast.equals(t.getNorthEast(), e)) }, isValid: function () { return !(!this._southWest || !this._northEast) } }; var ot = { latLngToPoint: function (t, e) { t = this.projection.project(t), e = this.scale(e); return this.transformation._transform(t, e) }, pointToLatLng: function (t, e) { e = this.scale(e), t = this.transformation.untransform(t, e); return this.projection.unproject(t) }, project: function (t) { return this.projection.project(t) }, unproject: function (t) { return this.projection.unproject(t) }, scale: function (t) { return 256 * Math.pow(2, t) }, zoom: function (t) { return Math.log(t / 256) / Math.LN2 }, getProjectedBounds: function (t) { var e; return this.infinite ? null : (e = this.projection.bounds, t = this.scale(t), new f(this.transformation.transform(e.min, t), this.transformation.transform(e.max, t))) }, infinite: !(v.prototype = { equals: function (t, e) { return !!t && (t = w(t), Math.max(Math.abs(this.lat - t.lat), Math.abs(this.lng - t.lng)) <= (void 0 === e ? 1e-9 : e)) }, toString: function (t) { return "LatLng(" + i(this.lat, t) + ", " + i(this.lng, t) + ")" }, distanceTo: function (t) { return st.distance(this, w(t)) }, wrap: function () { return st.wrapLatLng(this) }, toBounds: function (t) { var t = 180 * t / 40075017, e = t / Math.cos(Math.PI / 180 * this.lat); return g([this.lat - t, this.lng - e], [this.lat + t, this.lng + e]) }, clone: function () { return new v(this.lat, this.lng, this.alt) } }), wrapLatLng: function (t) { var e = this.wrapLng ? H(t.lng, this.wrapLng, !0) : t.lng; return new v(this.wrapLat ? H(t.lat, this.wrapLat, !0) : t.lat, e, t.alt) }, wrapLatLngBounds: function (t) { var e = t.getCenter(), i = this.wrapLatLng(e), n = e.lat - i.lat, e = e.lng - i.lng; return 0 == n && 0 == e ? t : (i = t.getSouthWest(), t = t.getNorthEast(), new s(new v(i.lat - n, i.lng - e), new v(t.lat - n, t.lng - e))) } }, st = l({}, ot, { wrapLng: [-180, 180], R: 6371e3, distance: function (t, e) { var i = Math.PI / 180, n = t.lat * i, o = e.lat * i, s = Math.sin((e.lat - t.lat) * i / 2), e = Math.sin((e.lng - t.lng) * i / 2), t = s * s + Math.cos(n) * Math.cos(o) * e * e, i = 2 * Math.atan2(Math.sqrt(t), Math.sqrt(1 - t)); return this.R * i } }), rt = 6378137, rt = { R: rt, MAX_LATITUDE: 85.0511287798, project: function (t) { var e = Math.PI / 180, i = this.MAX_LATITUDE, i = Math.max(Math.min(i, t.lat), -i), i = Math.sin(i * e); return new p(this.R * t.lng * e, this.R * Math.log((1 + i) / (1 - i)) / 2) }, unproject: function (t) { var e = 180 / Math.PI; return new v((2 * Math.atan(Math.exp(t.y / this.R)) - Math.PI / 2) * e, t.x * e / this.R) }, bounds: new f([-(rt = rt * Math.PI), -rt], [rt, rt]) }; function at(t, e, i, n) { d(t) ? (this._a = t[0], this._b = t[1], this._c = t[2], this._d = t[3]) : (this._a = t, this._b = e, this._c = i, this._d = n) } function ht(t, e, i, n) { return new at(t, e, i, n) } at.prototype = { transform: function (t, e) { return this._transform(t.clone(), e) }, _transform: function (t, e) { return t.x = (e = e || 1) * (this._a * t.x + this._b), t.y = e * (this._c * t.y + this._d), t }, untransform: function (t, e) { return new p((t.x / (e = e || 1) - this._b) / this._a, (t.y / e - this._d) / this._c) } }; var lt = l({}, st, { code: "EPSG:3857", projection: rt, transformation: ht(lt = .5 / (Math.PI * rt.R), .5, -lt, .5) }), ut = l({}, lt, { code: "EPSG:900913" }); function ct(t) { return document.createElementNS("http://www.w3.org/2000/svg", t) } function dt(t, e) { for (var i, n, o, s, r = "", a = 0, h = t.length; a < h; a++) { for (i = 0, n = (o = t[a]).length; i < n; i++)r += (i ? "L" : "M") + (s = o[i]).x + " " + s.y; r += e ? b.svg ? "z" : "x" : "" } return r || "M0 0" } var _t = document.documentElement.style, pt = "ActiveXObject" in window, mt = pt && !document.addEventListener, n = "msLaunchUri" in navigator && !("documentMode" in document), ft = y("webkit"), gt = y("android"), vt = y("android 2") || y("android 3"), yt = parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1], 10), yt = gt && y("Google") && yt < 537 && !("AudioNode" in window), xt = !!window.opera, wt = !n && y("chrome"), bt = y("gecko") && !ft && !xt && !pt, Pt = !wt && y("safari"), Lt = y("phantom"), o = "OTransition" in _t, Tt = 0 === navigator.platform.indexOf("Win"), Mt = pt && "transition" in _t, zt = "WebKitCSSMatrix" in window && "m11" in new window.WebKitCSSMatrix && !vt, _t = "MozPerspective" in _t, Ct = !window.L_DISABLE_3D && (Mt || zt || _t) && !o && !Lt, Zt = "undefined" != typeof orientation || y("mobile"), St = Zt && ft, Et = Zt && zt, kt = !window.PointerEvent && window.MSPointerEvent, Ot = !(!window.PointerEvent && !kt), At = "ontouchstart" in window || !!window.TouchEvent, Bt = !window.L_NO_TOUCH && (At || Ot), It = Zt && xt, Rt = Zt && bt, Nt = 1 < (window.devicePixelRatio || window.screen.deviceXDPI / window.screen.logicalXDPI), Dt = function () { var t = !1; try { var e = Object.defineProperty({}, "passive", { get: function () { t = !0 } }); window.addEventListener("testPassiveEventSupport", u, e), window.removeEventListener("testPassiveEventSupport", u, e) } catch (t) { } return t }(), jt = !!document.createElement("canvas").getContext, Ht = !(!document.createElementNS || !ct("svg").createSVGRect), Wt = !!Ht && ((Wt = document.createElement("div")).innerHTML = "", "http://www.w3.org/2000/svg" === (Wt.firstChild && Wt.firstChild.namespaceURI)); function y(t) { return 0 <= navigator.userAgent.toLowerCase().indexOf(t) } var b = { ie: pt, ielt9: mt, edge: n, webkit: ft, android: gt, android23: vt, androidStock: yt, opera: xt, chrome: wt, gecko: bt, safari: Pt, phantom: Lt, opera12: o, win: Tt, ie3d: Mt, webkit3d: zt, gecko3d: _t, any3d: Ct, mobile: Zt, mobileWebkit: St, mobileWebkit3d: Et, msPointer: kt, pointer: Ot, touch: Bt, touchNative: At, mobileOpera: It, mobileGecko: Rt, retina: Nt, passiveEvents: Dt, canvas: jt, svg: Ht, vml: !Ht && function () { try { var t = document.createElement("div"), e = (t.innerHTML = '', t.firstChild); return e.style.behavior = "url(#default#VML)", e && "object" == typeof e.adj } catch (t) { return !1 } }(), inlineSvg: Wt, mac: 0 === navigator.platform.indexOf("Mac"), linux: 0 === navigator.platform.indexOf("Linux") }, Ft = b.msPointer ? "MSPointerDown" : "pointerdown", Ut = b.msPointer ? "MSPointerMove" : "pointermove", Vt = b.msPointer ? "MSPointerUp" : "pointerup", qt = b.msPointer ? "MSPointerCancel" : "pointercancel", Gt = { touchstart: Ft, touchmove: Ut, touchend: Vt, touchcancel: qt }, Kt = { touchstart: function (t, e) { e.MSPOINTER_TYPE_TOUCH && e.pointerType === e.MSPOINTER_TYPE_TOUCH && O(e); ee(t, e) }, touchmove: ee, touchend: ee, touchcancel: ee }, Yt = {}, Xt = !1; function Jt(t, e, i) { return "touchstart" !== e || Xt || (document.addEventListener(Ft, $t, !0), document.addEventListener(Ut, Qt, !0), document.addEventListener(Vt, te, !0), document.addEventListener(qt, te, !0), Xt = !0), Kt[e] ? (i = Kt[e].bind(this, i), t.addEventListener(Gt[e], i, !1), i) : (console.warn("wrong event specified:", e), u) } function $t(t) { Yt[t.pointerId] = t } function Qt(t) { Yt[t.pointerId] && (Yt[t.pointerId] = t) } function te(t) { delete Yt[t.pointerId] } function ee(t, e) { if (e.pointerType !== (e.MSPOINTER_TYPE_MOUSE || "mouse")) { for (var i in e.touches = [], Yt) e.touches.push(Yt[i]); e.changedTouches = [e], t(e) } } var ie = 200; function ne(t, i) { t.addEventListener("dblclick", i); var n, o = 0; function e(t) { var e; 1 !== t.detail ? n = t.detail : "mouse" === t.pointerType || t.sourceCapabilities && !t.sourceCapabilities.firesTouchEvents || ((e = Ne(t)).some(function (t) { return t instanceof HTMLLabelElement && t.attributes.for }) && !e.some(function (t) { return t instanceof HTMLInputElement || t instanceof HTMLSelectElement }) || ((e = Date.now()) - o <= ie ? 2 === ++n && i(function (t) { var e, i, n = {}; for (i in t) e = t[i], n[i] = e && e.bind ? e.bind(t) : e; return (t = n).type = "dblclick", n.detail = 2, n.isTrusted = !1, n._simulated = !0, n }(t)) : n = 1, o = e)) } return t.addEventListener("click", e), { dblclick: i, simDblclick: e } } var oe, se, re, ae, he, le, ue = we(["transform", "webkitTransform", "OTransform", "MozTransform", "msTransform"]), ce = we(["webkitTransition", "transition", "OTransition", "MozTransition", "msTransition"]), de = "webkitTransition" === ce || "OTransition" === ce ? ce + "End" : "transitionend"; function _e(t) { return "string" == typeof t ? document.getElementById(t) : t } function pe(t, e) { var i = t.style[e] || t.currentStyle && t.currentStyle[e]; return "auto" === (i = i && "auto" !== i || !document.defaultView ? i : (t = document.defaultView.getComputedStyle(t, null)) ? t[e] : null) ? null : i } function P(t, e, i) { t = document.createElement(t); return t.className = e || "", i && i.appendChild(t), t } function T(t) { var e = t.parentNode; e && e.removeChild(t) } function me(t) { for (; t.firstChild;)t.removeChild(t.firstChild) } function fe(t) { var e = t.parentNode; e && e.lastChild !== t && e.appendChild(t) } function ge(t) { var e = t.parentNode; e && e.firstChild !== t && e.insertBefore(t, e.firstChild) } function ve(t, e) { return void 0 !== t.classList ? t.classList.contains(e) : 0 < (t = xe(t)).length && new RegExp("(^|\\s)" + e + "(\\s|$)").test(t) } function M(t, e) { var i; if (void 0 !== t.classList) for (var n = F(e), o = 0, s = n.length; o < s; o++)t.classList.add(n[o]); else ve(t, e) || ye(t, ((i = xe(t)) ? i + " " : "") + e) } function z(t, e) { void 0 !== t.classList ? t.classList.remove(e) : ye(t, W((" " + xe(t) + " ").replace(" " + e + " ", " "))) } function ye(t, e) { void 0 === t.className.baseVal ? t.className = e : t.className.baseVal = e } function xe(t) { return void 0 === (t = t.correspondingElement ? t.correspondingElement : t).className.baseVal ? t.className : t.className.baseVal } function C(t, e) { if ("opacity" in t.style) t.style.opacity = e; else if ("filter" in t.style) { var i = !1, n = "DXImageTransform.Microsoft.Alpha"; try { i = t.filters.item(n) } catch (t) { if (1 === e) return } e = Math.round(100 * e), i ? (i.Enabled = 100 !== e, i.Opacity = e) : t.style.filter += " progid:" + n + "(opacity=" + e + ")" } } function we(t) { for (var e = document.documentElement.style, i = 0; i < t.length; i++)if (t[i] in e) return t[i]; return !1 } function be(t, e, i) { e = e || new p(0, 0); t.style[ue] = (b.ie3d ? "translate(" + e.x + "px," + e.y + "px)" : "translate3d(" + e.x + "px," + e.y + "px,0)") + (i ? " scale(" + i + ")" : "") } function Z(t, e) { t._leaflet_pos = e, b.any3d ? be(t, e) : (t.style.left = e.x + "px", t.style.top = e.y + "px") } function Pe(t) { return t._leaflet_pos || new p(0, 0) } function Le() { S(window, "dragstart", O) } function Te() { k(window, "dragstart", O) } function Me(t) { for (; -1 === t.tabIndex;)t = t.parentNode; t.style && (ze(), le = (he = t).style.outlineStyle, t.style.outlineStyle = "none", S(window, "keydown", ze)) } function ze() { he && (he.style.outlineStyle = le, le = he = void 0, k(window, "keydown", ze)) } function Ce(t) { for (; !((t = t.parentNode).offsetWidth && t.offsetHeight || t === document.body);); return t } function Ze(t) { var e = t.getBoundingClientRect(); return { x: e.width / t.offsetWidth || 1, y: e.height / t.offsetHeight || 1, boundingClientRect: e } } ae = "onselectstart" in document ? (re = function () { S(window, "selectstart", O) }, function () { k(window, "selectstart", O) }) : (se = we(["userSelect", "WebkitUserSelect", "OUserSelect", "MozUserSelect", "msUserSelect"]), re = function () { var t; se && (t = document.documentElement.style, oe = t[se], t[se] = "none") }, function () { se && (document.documentElement.style[se] = oe, oe = void 0) }); pt = { __proto__: null, TRANSFORM: ue, TRANSITION: ce, TRANSITION_END: de, get: _e, getStyle: pe, create: P, remove: T, empty: me, toFront: fe, toBack: ge, hasClass: ve, addClass: M, removeClass: z, setClass: ye, getClass: xe, setOpacity: C, testProp: we, setTransform: be, setPosition: Z, getPosition: Pe, get disableTextSelection() { return re }, get enableTextSelection() { return ae }, disableImageDrag: Le, enableImageDrag: Te, preventOutline: Me, restoreOutline: ze, getSizedParentNode: Ce, getScale: Ze }; function S(t, e, i, n) { if (e && "object" == typeof e) for (var o in e) ke(t, o, e[o], i); else for (var s = 0, r = (e = F(e)).length; s < r; s++)ke(t, e[s], i, n); return this } var E = "_leaflet_events"; function k(t, e, i, n) { if (1 === arguments.length) Se(t), delete t[E]; else if (e && "object" == typeof e) for (var o in e) Oe(t, o, e[o], i); else if (e = F(e), 2 === arguments.length) Se(t, function (t) { return -1 !== G(e, t) }); else for (var s = 0, r = e.length; s < r; s++)Oe(t, e[s], i, n); return this } function Se(t, e) { for (var i in t[E]) { var n = i.split(/\d/)[0]; e && !e(n) || Oe(t, n, null, null, i) } } var Ee = { mouseenter: "mouseover", mouseleave: "mouseout", wheel: !("onwheel" in window) && "mousewheel" }; function ke(e, t, i, n) { var o, s, r = t + h(i) + (n ? "_" + h(n) : ""); e[E] && e[E][r] || (s = o = function (t) { return i.call(n || e, t || window.event) }, !b.touchNative && b.pointer && 0 === t.indexOf("touch") ? o = Jt(e, t, o) : b.touch && "dblclick" === t ? o = ne(e, o) : "addEventListener" in e ? "touchstart" === t || "touchmove" === t || "wheel" === t || "mousewheel" === t ? e.addEventListener(Ee[t] || t, o, !!b.passiveEvents && { passive: !1 }) : "mouseenter" === t || "mouseleave" === t ? e.addEventListener(Ee[t], o = function (t) { t = t || window.event, We(e, t) && s(t) }, !1) : e.addEventListener(t, s, !1) : e.attachEvent("on" + t, o), e[E] = e[E] || {}, e[E][r] = o) } function Oe(t, e, i, n, o) { o = o || e + h(i) + (n ? "_" + h(n) : ""); var s, r, i = t[E] && t[E][o]; i && (!b.touchNative && b.pointer && 0 === e.indexOf("touch") ? (n = t, r = i, Gt[s = e] ? n.removeEventListener(Gt[s], r, !1) : console.warn("wrong event specified:", s)) : b.touch && "dblclick" === e ? (n = i, (r = t).removeEventListener("dblclick", n.dblclick), r.removeEventListener("click", n.simDblclick)) : "removeEventListener" in t ? t.removeEventListener(Ee[e] || e, i, !1) : t.detachEvent("on" + e, i), t[E][o] = null) } function Ae(t) { return t.stopPropagation ? t.stopPropagation() : t.originalEvent ? t.originalEvent._stopped = !0 : t.cancelBubble = !0, this } function Be(t) { return ke(t, "wheel", Ae), this } function Ie(t) { return S(t, "mousedown touchstart dblclick contextmenu", Ae), t._leaflet_disable_click = !0, this } function O(t) { return t.preventDefault ? t.preventDefault() : t.returnValue = !1, this } function Re(t) { return O(t), Ae(t), this } function Ne(t) { if (t.composedPath) return t.composedPath(); for (var e = [], i = t.target; i;)e.push(i), i = i.parentNode; return e } function De(t, e) { var i, n; return e ? (n = (i = Ze(e)).boundingClientRect, new p((t.clientX - n.left) / i.x - e.clientLeft, (t.clientY - n.top) / i.y - e.clientTop)) : new p(t.clientX, t.clientY) } var je = b.linux && b.chrome ? window.devicePixelRatio : b.mac ? 3 * window.devicePixelRatio : 0 < window.devicePixelRatio ? 2 * window.devicePixelRatio : 1; function He(t) { return b.edge ? t.wheelDeltaY / 2 : t.deltaY && 0 === t.deltaMode ? -t.deltaY / je : t.deltaY && 1 === t.deltaMode ? 20 * -t.deltaY : t.deltaY && 2 === t.deltaMode ? 60 * -t.deltaY : t.deltaX || t.deltaZ ? 0 : t.wheelDelta ? (t.wheelDeltaY || t.wheelDelta) / 2 : t.detail && Math.abs(t.detail) < 32765 ? 20 * -t.detail : t.detail ? t.detail / -32765 * 60 : 0 } function We(t, e) { var i = e.relatedTarget; if (!i) return !0; try { for (; i && i !== t;)i = i.parentNode } catch (t) { return !1 } return i !== t } var mt = { __proto__: null, on: S, off: k, stopPropagation: Ae, disableScrollPropagation: Be, disableClickPropagation: Ie, preventDefault: O, stop: Re, getPropagationPath: Ne, getMousePosition: De, getWheelDelta: He, isExternalTarget: We, addListener: S, removeListener: k }, Fe = it.extend({ run: function (t, e, i, n) { this.stop(), this._el = t, this._inProgress = !0, this._duration = i || .25, this._easeOutPower = 1 / Math.max(n || .5, .2), this._startPos = Pe(t), this._offset = e.subtract(this._startPos), this._startTime = +new Date, this.fire("start"), this._animate() }, stop: function () { this._inProgress && (this._step(!0), this._complete()) }, _animate: function () { this._animId = x(this._animate, this), this._step() }, _step: function (t) { var e = +new Date - this._startTime, i = 1e3 * this._duration; e < i ? this._runFrame(this._easeOut(e / i), t) : (this._runFrame(1), this._complete()) }, _runFrame: function (t, e) { t = this._startPos.add(this._offset.multiplyBy(t)); e && t._round(), Z(this._el, t), this.fire("step") }, _complete: function () { r(this._animId), this._inProgress = !1, this.fire("end") }, _easeOut: function (t) { return 1 - Math.pow(1 - t, this._easeOutPower) } }), A = it.extend({ options: { crs: lt, center: void 0, zoom: void 0, minZoom: void 0, maxZoom: void 0, layers: [], maxBounds: void 0, renderer: void 0, zoomAnimation: !0, zoomAnimationThreshold: 4, fadeAnimation: !0, markerZoomAnimation: !0, transform3DLimit: 8388608, zoomSnap: 1, zoomDelta: 1, trackResize: !0 }, initialize: function (t, e) { e = c(this, e), this._handlers = [], this._layers = {}, this._zoomBoundLayers = {}, this._sizeChanged = !0, this._initContainer(t), this._initLayout(), this._onResize = a(this._onResize, this), this._initEvents(), e.maxBounds && this.setMaxBounds(e.maxBounds), void 0 !== e.zoom && (this._zoom = this._limitZoom(e.zoom)), e.center && void 0 !== e.zoom && this.setView(w(e.center), e.zoom, { reset: !0 }), this.callInitHooks(), this._zoomAnimated = ce && b.any3d && !b.mobileOpera && this.options.zoomAnimation, this._zoomAnimated && (this._createAnimProxy(), S(this._proxy, de, this._catchTransitionEnd, this)), this._addLayers(this.options.layers) }, setView: function (t, e, i) { if ((e = void 0 === e ? this._zoom : this._limitZoom(e), t = this._limitCenter(w(t), e, this.options.maxBounds), i = i || {}, this._stop(), this._loaded && !i.reset && !0 !== i) && (void 0 !== i.animate && (i.zoom = l({ animate: i.animate }, i.zoom), i.pan = l({ animate: i.animate, duration: i.duration }, i.pan)), this._zoom !== e ? this._tryAnimatedZoom && this._tryAnimatedZoom(t, e, i.zoom) : this._tryAnimatedPan(t, i.pan))) return clearTimeout(this._sizeTimer), this; return this._resetView(t, e, i.pan && i.pan.noMoveStart), this }, setZoom: function (t, e) { return this._loaded ? this.setView(this.getCenter(), t, { zoom: e }) : (this._zoom = t, this) }, zoomIn: function (t, e) { return t = t || (b.any3d ? this.options.zoomDelta : 1), this.setZoom(this._zoom + t, e) }, zoomOut: function (t, e) { return t = t || (b.any3d ? this.options.zoomDelta : 1), this.setZoom(this._zoom - t, e) }, setZoomAround: function (t, e, i) { var n = this.getZoomScale(e), o = this.getSize().divideBy(2), t = (t instanceof p ? t : this.latLngToContainerPoint(t)).subtract(o).multiplyBy(1 - 1 / n), n = this.containerPointToLatLng(o.add(t)); return this.setView(n, e, { zoom: i }) }, _getBoundsCenterZoom: function (t, e) { e = e || {}, t = t.getBounds ? t.getBounds() : g(t); var i = m(e.paddingTopLeft || e.padding || [0, 0]), n = m(e.paddingBottomRight || e.padding || [0, 0]), o = this.getBoundsZoom(t, !1, i.add(n)); return (o = "number" == typeof e.maxZoom ? Math.min(e.maxZoom, o) : o) === 1 / 0 ? { center: t.getCenter(), zoom: o } : (e = n.subtract(i).divideBy(2), n = this.project(t.getSouthWest(), o), i = this.project(t.getNorthEast(), o), { center: this.unproject(n.add(i).divideBy(2).add(e), o), zoom: o }) }, fitBounds: function (t, e) { if ((t = g(t)).isValid()) return t = this._getBoundsCenterZoom(t, e), this.setView(t.center, t.zoom, e); throw new Error("Bounds are not valid.") }, fitWorld: function (t) { return this.fitBounds([[-90, -180], [90, 180]], t) }, panTo: function (t, e) { return this.setView(t, this._zoom, { pan: e }) }, panBy: function (t, e) { var i; return e = e || {}, (t = m(t).round()).x || t.y ? (!0 === e.animate || this.getSize().contains(t) ? (this._panAnim || (this._panAnim = new Fe, this._panAnim.on({ step: this._onPanTransitionStep, end: this._onPanTransitionEnd }, this)), e.noMoveStart || this.fire("movestart"), !1 !== e.animate ? (M(this._mapPane, "leaflet-pan-anim"), i = this._getMapPanePos().subtract(t).round(), this._panAnim.run(this._mapPane, i, e.duration || .25, e.easeLinearity)) : (this._rawPanBy(t), this.fire("move").fire("moveend"))) : this._resetView(this.unproject(this.project(this.getCenter()).add(t)), this.getZoom()), this) : this.fire("moveend") }, flyTo: function (n, o, t) { if (!1 === (t = t || {}).animate || !b.any3d) return this.setView(n, o, t); this._stop(); var s = this.project(this.getCenter()), r = this.project(n), e = this.getSize(), a = this._zoom, h = (n = w(n), o = void 0 === o ? a : o, Math.max(e.x, e.y)), i = h * this.getZoomScale(a, o), l = r.distanceTo(s) || 1, u = 1.42, c = u * u; function d(t) { t = (i * i - h * h + (t ? -1 : 1) * c * c * l * l) / (2 * (t ? i : h) * c * l), t = Math.sqrt(t * t + 1) - t; return t < 1e-9 ? -18 : Math.log(t) } function _(t) { return (Math.exp(t) - Math.exp(-t)) / 2 } function p(t) { return (Math.exp(t) + Math.exp(-t)) / 2 } var m = d(0); function f(t) { return h * (p(m) * (_(t = m + u * t) / p(t)) - _(m)) / c } var g = Date.now(), v = (d(1) - m) / u, y = t.duration ? 1e3 * t.duration : 1e3 * v * .8; return this._moveStart(!0, t.noMoveStart), function t() { var e = (Date.now() - g) / y, i = (1 - Math.pow(1 - e, 1.5)) * v; e <= 1 ? (this._flyToFrame = x(t, this), this._move(this.unproject(s.add(r.subtract(s).multiplyBy(f(i) / l)), a), this.getScaleZoom(h / (e = i, h * (p(m) / p(m + u * e))), a), { flyTo: !0 })) : this._move(n, o)._moveEnd(!0) }.call(this), this }, flyToBounds: function (t, e) { t = this._getBoundsCenterZoom(t, e); return this.flyTo(t.center, t.zoom, e) }, setMaxBounds: function (t) { return t = g(t), this.listens("moveend", this._panInsideMaxBounds) && this.off("moveend", this._panInsideMaxBounds), t.isValid() ? (this.options.maxBounds = t, this._loaded && this._panInsideMaxBounds(), this.on("moveend", this._panInsideMaxBounds)) : (this.options.maxBounds = null, this) }, setMinZoom: function (t) { var e = this.options.minZoom; return this.options.minZoom = t, this._loaded && e !== t && (this.fire("zoomlevelschange"), this.getZoom() < this.options.minZoom) ? this.setZoom(t) : this }, setMaxZoom: function (t) { var e = this.options.maxZoom; return this.options.maxZoom = t, this._loaded && e !== t && (this.fire("zoomlevelschange"), this.getZoom() > this.options.maxZoom) ? this.setZoom(t) : this }, panInsideBounds: function (t, e) { this._enforcingBounds = !0; var i = this.getCenter(), t = this._limitCenter(i, this._zoom, g(t)); return i.equals(t) || this.panTo(t, e), this._enforcingBounds = !1, this }, panInside: function (t, e) { var i = m((e = e || {}).paddingTopLeft || e.padding || [0, 0]), n = m(e.paddingBottomRight || e.padding || [0, 0]), o = this.project(this.getCenter()), t = this.project(t), s = this.getPixelBounds(), i = _([s.min.add(i), s.max.subtract(n)]), s = i.getSize(); return i.contains(t) || (this._enforcingBounds = !0, n = t.subtract(i.getCenter()), i = i.extend(t).getSize().subtract(s), o.x += n.x < 0 ? -i.x : i.x, o.y += n.y < 0 ? -i.y : i.y, this.panTo(this.unproject(o), e), this._enforcingBounds = !1), this }, invalidateSize: function (t) { if (!this._loaded) return this; t = l({ animate: !1, pan: !0 }, !0 === t ? { animate: !0 } : t); var e = this.getSize(), i = (this._sizeChanged = !0, this._lastCenter = null, this.getSize()), n = e.divideBy(2).round(), o = i.divideBy(2).round(), n = n.subtract(o); return n.x || n.y ? (t.animate && t.pan ? this.panBy(n) : (t.pan && this._rawPanBy(n), this.fire("move"), t.debounceMoveend ? (clearTimeout(this._sizeTimer), this._sizeTimer = setTimeout(a(this.fire, this, "moveend"), 200)) : this.fire("moveend")), this.fire("resize", { oldSize: e, newSize: i })) : this }, stop: function () { return this.setZoom(this._limitZoom(this._zoom)), this.options.zoomSnap || this.fire("viewreset"), this._stop() }, locate: function (t) { var e, i; return t = this._locateOptions = l({ timeout: 1e4, watch: !1 }, t), "geolocation" in navigator ? (e = a(this._handleGeolocationResponse, this), i = a(this._handleGeolocationError, this), t.watch ? this._locationWatchId = navigator.geolocation.watchPosition(e, i, t) : navigator.geolocation.getCurrentPosition(e, i, t)) : this._handleGeolocationError({ code: 0, message: "Geolocation not supported." }), this }, stopLocate: function () { return navigator.geolocation && navigator.geolocation.clearWatch && navigator.geolocation.clearWatch(this._locationWatchId), this._locateOptions && (this._locateOptions.setView = !1), this }, _handleGeolocationError: function (t) { var e; this._container._leaflet_id && (e = t.code, t = t.message || (1 === e ? "permission denied" : 2 === e ? "position unavailable" : "timeout"), this._locateOptions.setView && !this._loaded && this.fitWorld(), this.fire("locationerror", { code: e, message: "Geolocation error: " + t + "." })) }, _handleGeolocationResponse: function (t) { if (this._container._leaflet_id) { var e, i, n = new v(t.coords.latitude, t.coords.longitude), o = n.toBounds(2 * t.coords.accuracy), s = this._locateOptions, r = (s.setView && (e = this.getBoundsZoom(o), this.setView(n, s.maxZoom ? Math.min(e, s.maxZoom) : e)), { latlng: n, bounds: o, timestamp: t.timestamp }); for (i in t.coords) "number" == typeof t.coords[i] && (r[i] = t.coords[i]); this.fire("locationfound", r) } }, addHandler: function (t, e) { return e && (e = this[t] = new e(this), this._handlers.push(e), this.options[t] && e.enable()), this }, remove: function () { if (this._initEvents(!0), this.options.maxBounds && this.off("moveend", this._panInsideMaxBounds), this._containerId !== this._container._leaflet_id) throw new Error("Map container is being reused by another instance"); try { delete this._container._leaflet_id, delete this._containerId } catch (t) { this._container._leaflet_id = void 0, this._containerId = void 0 } for (var t in void 0 !== this._locationWatchId && this.stopLocate(), this._stop(), T(this._mapPane), this._clearControlPos && this._clearControlPos(), this._resizeRequest && (r(this._resizeRequest), this._resizeRequest = null), this._clearHandlers(), this._loaded && this.fire("unload"), this._layers) this._layers[t].remove(); for (t in this._panes) T(this._panes[t]); return this._layers = [], this._panes = [], delete this._mapPane, delete this._renderer, this }, createPane: function (t, e) { e = P("div", "leaflet-pane" + (t ? " leaflet-" + t.replace("Pane", "") + "-pane" : ""), e || this._mapPane); return t && (this._panes[t] = e), e }, getCenter: function () { return this._checkIfLoaded(), this._lastCenter && !this._moved() ? this._lastCenter.clone() : this.layerPointToLatLng(this._getCenterLayerPoint()) }, getZoom: function () { return this._zoom }, getBounds: function () { var t = this.getPixelBounds(); return new s(this.unproject(t.getBottomLeft()), this.unproject(t.getTopRight())) }, getMinZoom: function () { return void 0 === this.options.minZoom ? this._layersMinZoom || 0 : this.options.minZoom }, getMaxZoom: function () { return void 0 === this.options.maxZoom ? void 0 === this._layersMaxZoom ? 1 / 0 : this._layersMaxZoom : this.options.maxZoom }, getBoundsZoom: function (t, e, i) { t = g(t), i = m(i || [0, 0]); var n = this.getZoom() || 0, o = this.getMinZoom(), s = this.getMaxZoom(), r = t.getNorthWest(), t = t.getSouthEast(), i = this.getSize().subtract(i), t = _(this.project(t, n), this.project(r, n)).getSize(), r = b.any3d ? this.options.zoomSnap : 1, a = i.x / t.x, i = i.y / t.y, t = e ? Math.max(a, i) : Math.min(a, i), n = this.getScaleZoom(t, n); return r && (n = Math.round(n / (r / 100)) * (r / 100), n = e ? Math.ceil(n / r) * r : Math.floor(n / r) * r), Math.max(o, Math.min(s, n)) }, getSize: function () { return this._size && !this._sizeChanged || (this._size = new p(this._container.clientWidth || 0, this._container.clientHeight || 0), this._sizeChanged = !1), this._size.clone() }, getPixelBounds: function (t, e) { t = this._getTopLeftPoint(t, e); return new f(t, t.add(this.getSize())) }, getPixelOrigin: function () { return this._checkIfLoaded(), this._pixelOrigin }, getPixelWorldBounds: function (t) { return this.options.crs.getProjectedBounds(void 0 === t ? this.getZoom() : t) }, getPane: function (t) { return "string" == typeof t ? this._panes[t] : t }, getPanes: function () { return this._panes }, getContainer: function () { return this._container }, getZoomScale: function (t, e) { var i = this.options.crs; return e = void 0 === e ? this._zoom : e, i.scale(t) / i.scale(e) }, getScaleZoom: function (t, e) { var i = this.options.crs, t = (e = void 0 === e ? this._zoom : e, i.zoom(t * i.scale(e))); return isNaN(t) ? 1 / 0 : t }, project: function (t, e) { return e = void 0 === e ? this._zoom : e, this.options.crs.latLngToPoint(w(t), e) }, unproject: function (t, e) { return e = void 0 === e ? this._zoom : e, this.options.crs.pointToLatLng(m(t), e) }, layerPointToLatLng: function (t) { t = m(t).add(this.getPixelOrigin()); return this.unproject(t) }, latLngToLayerPoint: function (t) { return this.project(w(t))._round()._subtract(this.getPixelOrigin()) }, wrapLatLng: function (t) { return this.options.crs.wrapLatLng(w(t)) }, wrapLatLngBounds: function (t) { return this.options.crs.wrapLatLngBounds(g(t)) }, distance: function (t, e) { return this.options.crs.distance(w(t), w(e)) }, containerPointToLayerPoint: function (t) { return m(t).subtract(this._getMapPanePos()) }, layerPointToContainerPoint: function (t) { return m(t).add(this._getMapPanePos()) }, containerPointToLatLng: function (t) { t = this.containerPointToLayerPoint(m(t)); return this.layerPointToLatLng(t) }, latLngToContainerPoint: function (t) { return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t))) }, mouseEventToContainerPoint: function (t) { return De(t, this._container) }, mouseEventToLayerPoint: function (t) { return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t)) }, mouseEventToLatLng: function (t) { return this.layerPointToLatLng(this.mouseEventToLayerPoint(t)) }, _initContainer: function (t) { t = this._container = _e(t); if (!t) throw new Error("Map container not found."); if (t._leaflet_id) throw new Error("Map container is already initialized."); S(t, "scroll", this._onScroll, this), this._containerId = h(t) }, _initLayout: function () { var t = this._container, e = (this._fadeAnimated = this.options.fadeAnimation && b.any3d, M(t, "leaflet-container" + (b.touch ? " leaflet-touch" : "") + (b.retina ? " leaflet-retina" : "") + (b.ielt9 ? " leaflet-oldie" : "") + (b.safari ? " leaflet-safari" : "") + (this._fadeAnimated ? " leaflet-fade-anim" : "")), pe(t, "position")); "absolute" !== e && "relative" !== e && "fixed" !== e && "sticky" !== e && (t.style.position = "relative"), this._initPanes(), this._initControlPos && this._initControlPos() }, _initPanes: function () { var t = this._panes = {}; this._paneRenderers = {}, this._mapPane = this.createPane("mapPane", this._container), Z(this._mapPane, new p(0, 0)), this.createPane("tilePane"), this.createPane("overlayPane"), this.createPane("shadowPane"), this.createPane("markerPane"), this.createPane("tooltipPane"), this.createPane("popupPane"), this.options.markerZoomAnimation || (M(t.markerPane, "leaflet-zoom-hide"), M(t.shadowPane, "leaflet-zoom-hide")) }, _resetView: function (t, e, i) { Z(this._mapPane, new p(0, 0)); var n = !this._loaded, o = (this._loaded = !0, e = this._limitZoom(e), this.fire("viewprereset"), this._zoom !== e); this._moveStart(o, i)._move(t, e)._moveEnd(o), this.fire("viewreset"), n && this.fire("load") }, _moveStart: function (t, e) { return t && this.fire("zoomstart"), e || this.fire("movestart"), this }, _move: function (t, e, i, n) { void 0 === e && (e = this._zoom); var o = this._zoom !== e; return this._zoom = e, this._lastCenter = t, this._pixelOrigin = this._getNewPixelOrigin(t), n ? i && i.pinch && this.fire("zoom", i) : ((o || i && i.pinch) && this.fire("zoom", i), this.fire("move", i)), this }, _moveEnd: function (t) { return t && this.fire("zoomend"), this.fire("moveend") }, _stop: function () { return r(this._flyToFrame), this._panAnim && this._panAnim.stop(), this }, _rawPanBy: function (t) { Z(this._mapPane, this._getMapPanePos().subtract(t)) }, _getZoomSpan: function () { return this.getMaxZoom() - this.getMinZoom() }, _panInsideMaxBounds: function () { this._enforcingBounds || this.panInsideBounds(this.options.maxBounds) }, _checkIfLoaded: function () { if (!this._loaded) throw new Error("Set map center and zoom first.") }, _initEvents: function (t) { this._targets = {}; var e = t ? k : S; e((this._targets[h(this._container)] = this)._container, "click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup", this._handleDOMEvent, this), this.options.trackResize && e(window, "resize", this._onResize, this), b.any3d && this.options.transform3DLimit && (t ? this.off : this.on).call(this, "moveend", this._onMoveEnd) }, _onResize: function () { r(this._resizeRequest), this._resizeRequest = x(function () { this.invalidateSize({ debounceMoveend: !0 }) }, this) }, _onScroll: function () { this._container.scrollTop = 0, this._container.scrollLeft = 0 }, _onMoveEnd: function () { var t = this._getMapPanePos(); Math.max(Math.abs(t.x), Math.abs(t.y)) >= this.options.transform3DLimit && this._resetView(this.getCenter(), this.getZoom()) }, _findEventTargets: function (t, e) { for (var i, n = [], o = "mouseout" === e || "mouseover" === e, s = t.target || t.srcElement, r = !1; s;) { if ((i = this._targets[h(s)]) && ("click" === e || "preclick" === e) && this._draggableMoved(i)) { r = !0; break } if (i && i.listens(e, !0)) { if (o && !We(s, t)) break; if (n.push(i), o) break } if (s === this._container) break; s = s.parentNode } return n = n.length || r || o || !this.listens(e, !0) ? n : [this] }, _isClickDisabled: function (t) { for (; t && t !== this._container;) { if (t._leaflet_disable_click) return !0; t = t.parentNode } }, _handleDOMEvent: function (t) { var e, i = t.target || t.srcElement; !this._loaded || i._leaflet_disable_events || "click" === t.type && this._isClickDisabled(i) || ("mousedown" === (e = t.type) && Me(i), this._fireDOMEvent(t, e)) }, _mouseEvents: ["click", "dblclick", "mouseover", "mouseout", "contextmenu"], _fireDOMEvent: function (t, e, i) { "click" === t.type && ((a = l({}, t)).type = "preclick", this._fireDOMEvent(a, a.type, i)); var n = this._findEventTargets(t, e); if (i) { for (var o = [], s = 0; s < i.length; s++)i[s].listens(e, !0) && o.push(i[s]); n = o.concat(n) } if (n.length) { "contextmenu" === e && O(t); var r, a = n[0], h = { originalEvent: t }; for ("keypress" !== t.type && "keydown" !== t.type && "keyup" !== t.type && (r = a.getLatLng && (!a._radius || a._radius <= 10), h.containerPoint = r ? this.latLngToContainerPoint(a.getLatLng()) : this.mouseEventToContainerPoint(t), h.layerPoint = this.containerPointToLayerPoint(h.containerPoint), h.latlng = r ? a.getLatLng() : this.layerPointToLatLng(h.layerPoint)), s = 0; s < n.length; s++)if (n[s].fire(e, h, !0), h.originalEvent._stopped || !1 === n[s].options.bubblingMouseEvents && -1 !== G(this._mouseEvents, e)) return } }, _draggableMoved: function (t) { return (t = t.dragging && t.dragging.enabled() ? t : this).dragging && t.dragging.moved() || this.boxZoom && this.boxZoom.moved() }, _clearHandlers: function () { for (var t = 0, e = this._handlers.length; t < e; t++)this._handlers[t].disable() }, whenReady: function (t, e) { return this._loaded ? t.call(e || this, { target: this }) : this.on("load", t, e), this }, _getMapPanePos: function () { return Pe(this._mapPane) || new p(0, 0) }, _moved: function () { var t = this._getMapPanePos(); return t && !t.equals([0, 0]) }, _getTopLeftPoint: function (t, e) { return (t && void 0 !== e ? this._getNewPixelOrigin(t, e) : this.getPixelOrigin()).subtract(this._getMapPanePos()) }, _getNewPixelOrigin: function (t, e) { var i = this.getSize()._divideBy(2); return this.project(t, e)._subtract(i)._add(this._getMapPanePos())._round() }, _latLngToNewLayerPoint: function (t, e, i) { i = this._getNewPixelOrigin(i, e); return this.project(t, e)._subtract(i) }, _latLngBoundsToNewLayerBounds: function (t, e, i) { i = this._getNewPixelOrigin(i, e); return _([this.project(t.getSouthWest(), e)._subtract(i), this.project(t.getNorthWest(), e)._subtract(i), this.project(t.getSouthEast(), e)._subtract(i), this.project(t.getNorthEast(), e)._subtract(i)]) }, _getCenterLayerPoint: function () { return this.containerPointToLayerPoint(this.getSize()._divideBy(2)) }, _getCenterOffset: function (t) { return this.latLngToLayerPoint(t).subtract(this._getCenterLayerPoint()) }, _limitCenter: function (t, e, i) { var n, o; return !i || (n = this.project(t, e), o = this.getSize().divideBy(2), o = new f(n.subtract(o), n.add(o)), o = this._getBoundsOffset(o, i, e), Math.abs(o.x) <= 1 && Math.abs(o.y) <= 1) ? t : this.unproject(n.add(o), e) }, _limitOffset: function (t, e) { var i; return e ? (i = new f((i = this.getPixelBounds()).min.add(t), i.max.add(t)), t.add(this._getBoundsOffset(i, e))) : t }, _getBoundsOffset: function (t, e, i) { e = _(this.project(e.getNorthEast(), i), this.project(e.getSouthWest(), i)), i = e.min.subtract(t.min), e = e.max.subtract(t.max); return new p(this._rebound(i.x, -e.x), this._rebound(i.y, -e.y)) }, _rebound: function (t, e) { return 0 < t + e ? Math.round(t - e) / 2 : Math.max(0, Math.ceil(t)) - Math.max(0, Math.floor(e)) }, _limitZoom: function (t) { var e = this.getMinZoom(), i = this.getMaxZoom(), n = b.any3d ? this.options.zoomSnap : 1; return n && (t = Math.round(t / n) * n), Math.max(e, Math.min(i, t)) }, _onPanTransitionStep: function () { this.fire("move") }, _onPanTransitionEnd: function () { z(this._mapPane, "leaflet-pan-anim"), this.fire("moveend") }, _tryAnimatedPan: function (t, e) { t = this._getCenterOffset(t)._trunc(); return !(!0 !== (e && e.animate) && !this.getSize().contains(t)) && (this.panBy(t, e), !0) }, _createAnimProxy: function () { var t = this._proxy = P("div", "leaflet-proxy leaflet-zoom-animated"); this._panes.mapPane.appendChild(t), this.on("zoomanim", function (t) { var e = ue, i = this._proxy.style[e]; be(this._proxy, this.project(t.center, t.zoom), this.getZoomScale(t.zoom, 1)), i === this._proxy.style[e] && this._animatingZoom && this._onZoomTransitionEnd() }, this), this.on("load moveend", this._animMoveEnd, this), this._on("unload", this._destroyAnimProxy, this) }, _destroyAnimProxy: function () { T(this._proxy), this.off("load moveend", this._animMoveEnd, this), delete this._proxy }, _animMoveEnd: function () { var t = this.getCenter(), e = this.getZoom(); be(this._proxy, this.project(t, e), this.getZoomScale(e, 1)) }, _catchTransitionEnd: function (t) { this._animatingZoom && 0 <= t.propertyName.indexOf("transform") && this._onZoomTransitionEnd() }, _nothingToAnimate: function () { return !this._container.getElementsByClassName("leaflet-zoom-animated").length }, _tryAnimatedZoom: function (t, e, i) { if (!this._animatingZoom) { if (i = i || {}, !this._zoomAnimated || !1 === i.animate || this._nothingToAnimate() || Math.abs(e - this._zoom) > this.options.zoomAnimationThreshold) return !1; var n = this.getZoomScale(e), n = this._getCenterOffset(t)._divideBy(1 - 1 / n); if (!0 !== i.animate && !this.getSize().contains(n)) return !1; x(function () { this._moveStart(!0, i.noMoveStart || !1)._animateZoom(t, e, !0) }, this) } return !0 }, _animateZoom: function (t, e, i, n) { this._mapPane && (i && (this._animatingZoom = !0, this._animateToCenter = t, this._animateToZoom = e, M(this._mapPane, "leaflet-zoom-anim")), this.fire("zoomanim", { center: t, zoom: e, noUpdate: n }), this._tempFireZoomEvent || (this._tempFireZoomEvent = this._zoom !== this._animateToZoom), this._move(this._animateToCenter, this._animateToZoom, void 0, !0), setTimeout(a(this._onZoomTransitionEnd, this), 250)) }, _onZoomTransitionEnd: function () { this._animatingZoom && (this._mapPane && z(this._mapPane, "leaflet-zoom-anim"), this._animatingZoom = !1, this._move(this._animateToCenter, this._animateToZoom, void 0, !0), this._tempFireZoomEvent && this.fire("zoom"), delete this._tempFireZoomEvent, this.fire("move"), this._moveEnd(!0)) } }); function Ue(t) { return new B(t) } var B = et.extend({ options: { position: "topright" }, initialize: function (t) { c(this, t) }, getPosition: function () { return this.options.position }, setPosition: function (t) { var e = this._map; return e && e.removeControl(this), this.options.position = t, e && e.addControl(this), this }, getContainer: function () { return this._container }, addTo: function (t) { this.remove(), this._map = t; var e = this._container = this.onAdd(t), i = this.getPosition(), t = t._controlCorners[i]; return M(e, "leaflet-control"), -1 !== i.indexOf("bottom") ? t.insertBefore(e, t.firstChild) : t.appendChild(e), this._map.on("unload", this.remove, this), this }, remove: function () { return this._map && (T(this._container), this.onRemove && this.onRemove(this._map), this._map.off("unload", this.remove, this), this._map = null), this }, _refocusOnMap: function (t) { this._map && t && 0 < t.screenX && 0 < t.screenY && this._map.getContainer().focus() } }), Ve = (A.include({ addControl: function (t) { return t.addTo(this), this }, removeControl: function (t) { return t.remove(), this }, _initControlPos: function () { var i = this._controlCorners = {}, n = "leaflet-", o = this._controlContainer = P("div", n + "control-container", this._container); function t(t, e) { i[t + e] = P("div", n + t + " " + n + e, o) } t("top", "left"), t("top", "right"), t("bottom", "left"), t("bottom", "right") }, _clearControlPos: function () { for (var t in this._controlCorners) T(this._controlCorners[t]); T(this._controlContainer), delete this._controlCorners, delete this._controlContainer } }), B.extend({ options: { collapsed: !0, position: "topright", autoZIndex: !0, hideSingleBase: !1, sortLayers: !1, sortFunction: function (t, e, i, n) { return i < n ? -1 : n < i ? 1 : 0 } }, initialize: function (t, e, i) { for (var n in c(this, i), this._layerControlInputs = [], this._layers = [], this._lastZIndex = 0, this._handlingClick = !1, this._preventClick = !1, t) this._addLayer(t[n], n); for (n in e) this._addLayer(e[n], n, !0) }, onAdd: function (t) { this._initLayout(), this._update(), (this._map = t).on("zoomend", this._checkDisabledLayers, this); for (var e = 0; e < this._layers.length; e++)this._layers[e].layer.on("add remove", this._onLayerChange, this); return this._container }, addTo: function (t) { return B.prototype.addTo.call(this, t), this._expandIfNotCollapsed() }, onRemove: function () { this._map.off("zoomend", this._checkDisabledLayers, this); for (var t = 0; t < this._layers.length; t++)this._layers[t].layer.off("add remove", this._onLayerChange, this) }, addBaseLayer: function (t, e) { return this._addLayer(t, e), this._map ? this._update() : this }, addOverlay: function (t, e) { return this._addLayer(t, e, !0), this._map ? this._update() : this }, removeLayer: function (t) { t.off("add remove", this._onLayerChange, this); t = this._getLayer(h(t)); return t && this._layers.splice(this._layers.indexOf(t), 1), this._map ? this._update() : this }, expand: function () { M(this._container, "leaflet-control-layers-expanded"), this._section.style.height = null; var t = this._map.getSize().y - (this._container.offsetTop + 50); return t < this._section.clientHeight ? (M(this._section, "leaflet-control-layers-scrollbar"), this._section.style.height = t + "px") : z(this._section, "leaflet-control-layers-scrollbar"), this._checkDisabledLayers(), this }, collapse: function () { return z(this._container, "leaflet-control-layers-expanded"), this }, _initLayout: function () { var t = "leaflet-control-layers", e = this._container = P("div", t), i = this.options.collapsed, n = (e.setAttribute("aria-haspopup", !0), Ie(e), Be(e), this._section = P("section", t + "-list")), o = (i && (this._map.on("click", this.collapse, this), S(e, { mouseenter: this._expandSafely, mouseleave: this.collapse }, this)), this._layersLink = P("a", t + "-toggle", e)); o.href = "#", o.title = "Layers", o.setAttribute("role", "button"), S(o, { keydown: function (t) { 13 === t.keyCode && this._expandSafely() }, click: function (t) { O(t), this._expandSafely() } }, this), i || this.expand(), this._baseLayersList = P("div", t + "-base", n), this._separator = P("div", t + "-separator", n), this._overlaysList = P("div", t + "-overlays", n), e.appendChild(n) }, _getLayer: function (t) { for (var e = 0; e < this._layers.length; e++)if (this._layers[e] && h(this._layers[e].layer) === t) return this._layers[e] }, _addLayer: function (t, e, i) { this._map && t.on("add remove", this._onLayerChange, this), this._layers.push({ layer: t, name: e, overlay: i }), this.options.sortLayers && this._layers.sort(a(function (t, e) { return this.options.sortFunction(t.layer, e.layer, t.name, e.name) }, this)), this.options.autoZIndex && t.setZIndex && (this._lastZIndex++, t.setZIndex(this._lastZIndex)), this._expandIfNotCollapsed() }, _update: function () { if (this._container) { me(this._baseLayersList), me(this._overlaysList), this._layerControlInputs = []; for (var t, e, i, n = 0, o = 0; o < this._layers.length; o++)i = this._layers[o], this._addItem(i), e = e || i.overlay, t = t || !i.overlay, n += i.overlay ? 0 : 1; this.options.hideSingleBase && (this._baseLayersList.style.display = (t = t && 1 < n) ? "" : "none"), this._separator.style.display = e && t ? "" : "none" } return this }, _onLayerChange: function (t) { this._handlingClick || this._update(); var e = this._getLayer(h(t.target)), t = e.overlay ? "add" === t.type ? "overlayadd" : "overlayremove" : "add" === t.type ? "baselayerchange" : null; t && this._map.fire(t, e) }, _createRadioElement: function (t, e) { t = '", e = document.createElement("div"); return e.innerHTML = t, e.firstChild }, _addItem: function (t) { var e, i = document.createElement("label"), n = this._map.hasLayer(t.layer), n = (t.overlay ? ((e = document.createElement("input")).type = "checkbox", e.className = "leaflet-control-layers-selector", e.defaultChecked = n) : e = this._createRadioElement("leaflet-base-layers_" + h(this), n), this._layerControlInputs.push(e), e.layerId = h(t.layer), S(e, "click", this._onInputClick, this), document.createElement("span")), o = (n.innerHTML = " " + t.name, document.createElement("span")); return i.appendChild(o), o.appendChild(e), o.appendChild(n), (t.overlay ? this._overlaysList : this._baseLayersList).appendChild(i), this._checkDisabledLayers(), i }, _onInputClick: function () { if (!this._preventClick) { var t, e, i = this._layerControlInputs, n = [], o = []; this._handlingClick = !0; for (var s = i.length - 1; 0 <= s; s--)t = i[s], e = this._getLayer(t.layerId).layer, t.checked ? n.push(e) : t.checked || o.push(e); for (s = 0; s < o.length; s++)this._map.hasLayer(o[s]) && this._map.removeLayer(o[s]); for (s = 0; s < n.length; s++)this._map.hasLayer(n[s]) || this._map.addLayer(n[s]); this._handlingClick = !1, this._refocusOnMap() } }, _checkDisabledLayers: function () { for (var t, e, i = this._layerControlInputs, n = this._map.getZoom(), o = i.length - 1; 0 <= o; o--)t = i[o], e = this._getLayer(t.layerId).layer, t.disabled = void 0 !== e.options.minZoom && n < e.options.minZoom || void 0 !== e.options.maxZoom && n > e.options.maxZoom }, _expandIfNotCollapsed: function () { return this._map && !this.options.collapsed && this.expand(), this }, _expandSafely: function () { var t = this._section, e = (this._preventClick = !0, S(t, "click", O), this.expand(), this); setTimeout(function () { k(t, "click", O), e._preventClick = !1 }) } })), qe = B.extend({ options: { position: "topleft", zoomInText: '', zoomInTitle: "Zoom in", zoomOutText: '', zoomOutTitle: "Zoom out" }, onAdd: function (t) { var e = "leaflet-control-zoom", i = P("div", e + " leaflet-bar"), n = this.options; return this._zoomInButton = this._createButton(n.zoomInText, n.zoomInTitle, e + "-in", i, this._zoomIn), this._zoomOutButton = this._createButton(n.zoomOutText, n.zoomOutTitle, e + "-out", i, this._zoomOut), this._updateDisabled(), t.on("zoomend zoomlevelschange", this._updateDisabled, this), i }, onRemove: function (t) { t.off("zoomend zoomlevelschange", this._updateDisabled, this) }, disable: function () { return this._disabled = !0, this._updateDisabled(), this }, enable: function () { return this._disabled = !1, this._updateDisabled(), this }, _zoomIn: function (t) { !this._disabled && this._map._zoom < this._map.getMaxZoom() && this._map.zoomIn(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)) }, _zoomOut: function (t) { !this._disabled && this._map._zoom > this._map.getMinZoom() && this._map.zoomOut(this._map.options.zoomDelta * (t.shiftKey ? 3 : 1)) }, _createButton: function (t, e, i, n, o) { i = P("a", i, n); return i.innerHTML = t, i.href = "#", i.title = e, i.setAttribute("role", "button"), i.setAttribute("aria-label", e), Ie(i), S(i, "click", Re), S(i, "click", o, this), S(i, "click", this._refocusOnMap, this), i }, _updateDisabled: function () { var t = this._map, e = "leaflet-disabled"; z(this._zoomInButton, e), z(this._zoomOutButton, e), this._zoomInButton.setAttribute("aria-disabled", "false"), this._zoomOutButton.setAttribute("aria-disabled", "false"), !this._disabled && t._zoom !== t.getMinZoom() || (M(this._zoomOutButton, e), this._zoomOutButton.setAttribute("aria-disabled", "true")), !this._disabled && t._zoom !== t.getMaxZoom() || (M(this._zoomInButton, e), this._zoomInButton.setAttribute("aria-disabled", "true")) } }), Ge = (A.mergeOptions({ zoomControl: !0 }), A.addInitHook(function () { this.options.zoomControl && (this.zoomControl = new qe, this.addControl(this.zoomControl)) }), B.extend({ options: { position: "bottomleft", maxWidth: 100, metric: !0, imperial: !0 }, onAdd: function (t) { var e = "leaflet-control-scale", i = P("div", e), n = this.options; return this._addScales(n, e + "-line", i), t.on(n.updateWhenIdle ? "moveend" : "move", this._update, this), t.whenReady(this._update, this), i }, onRemove: function (t) { t.off(this.options.updateWhenIdle ? "moveend" : "move", this._update, this) }, _addScales: function (t, e, i) { t.metric && (this._mScale = P("div", e, i)), t.imperial && (this._iScale = P("div", e, i)) }, _update: function () { var t = this._map, e = t.getSize().y / 2, t = t.distance(t.containerPointToLatLng([0, e]), t.containerPointToLatLng([this.options.maxWidth, e])); this._updateScales(t) }, _updateScales: function (t) { this.options.metric && t && this._updateMetric(t), this.options.imperial && t && this._updateImperial(t) }, _updateMetric: function (t) { var e = this._getRoundNum(t); this._updateScale(this._mScale, e < 1e3 ? e + " m" : e / 1e3 + " km", e / t) }, _updateImperial: function (t) { var e, i, t = 3.2808399 * t; 5280 < t ? (i = this._getRoundNum(e = t / 5280), this._updateScale(this._iScale, i + " mi", i / e)) : (i = this._getRoundNum(t), this._updateScale(this._iScale, i + " ft", i / t)) }, _updateScale: function (t, e, i) { t.style.width = Math.round(this.options.maxWidth * i) + "px", t.innerHTML = e }, _getRoundNum: function (t) { var e = Math.pow(10, (Math.floor(t) + "").length - 1), t = t / e; return e * (t = 10 <= t ? 10 : 5 <= t ? 5 : 3 <= t ? 3 : 2 <= t ? 2 : 1) } })), Ke = B.extend({ options: { position: "bottomright", prefix: '' + (b.inlineSvg ? ' ' : "") + "Leaflet" }, initialize: function (t) { c(this, t), this._attributions = {} }, onAdd: function (t) { for (var e in (t.attributionControl = this)._container = P("div", "leaflet-control-attribution"), Ie(this._container), t._layers) t._layers[e].getAttribution && this.addAttribution(t._layers[e].getAttribution()); return this._update(), t.on("layeradd", this._addAttribution, this), this._container }, onRemove: function (t) { t.off("layeradd", this._addAttribution, this) }, _addAttribution: function (t) { t.layer.getAttribution && (this.addAttribution(t.layer.getAttribution()), t.layer.once("remove", function () { this.removeAttribution(t.layer.getAttribution()) }, this)) }, setPrefix: function (t) { return this.options.prefix = t, this._update(), this }, addAttribution: function (t) { return t && (this._attributions[t] || (this._attributions[t] = 0), this._attributions[t]++, this._update()), this }, removeAttribution: function (t) { return t && this._attributions[t] && (this._attributions[t]--, this._update()), this }, _update: function () { if (this._map) { var t, e = []; for (t in this._attributions) this._attributions[t] && e.push(t); var i = []; this.options.prefix && i.push(this.options.prefix), e.length && i.push(e.join(", ")), this._container.innerHTML = i.join(' ') } } }), n = (A.mergeOptions({ attributionControl: !0 }), A.addInitHook(function () { this.options.attributionControl && (new Ke).addTo(this) }), B.Layers = Ve, B.Zoom = qe, B.Scale = Ge, B.Attribution = Ke, Ue.layers = function (t, e, i) { return new Ve(t, e, i) }, Ue.zoom = function (t) { return new qe(t) }, Ue.scale = function (t) { return new Ge(t) }, Ue.attribution = function (t) { return new Ke(t) }, et.extend({ initialize: function (t) { this._map = t }, enable: function () { return this._enabled || (this._enabled = !0, this.addHooks()), this }, disable: function () { return this._enabled && (this._enabled = !1, this.removeHooks()), this }, enabled: function () { return !!this._enabled } })), ft = (n.addTo = function (t, e) { return t.addHandler(e, this), this }, { Events: e }), Ye = b.touch ? "touchstart mousedown" : "mousedown", Xe = it.extend({ options: { clickTolerance: 3 }, initialize: function (t, e, i, n) { c(this, n), this._element = t, this._dragStartTarget = e || t, this._preventOutline = i }, enable: function () { this._enabled || (S(this._dragStartTarget, Ye, this._onDown, this), this._enabled = !0) }, disable: function () { this._enabled && (Xe._dragging === this && this.finishDrag(!0), k(this._dragStartTarget, Ye, this._onDown, this), this._enabled = !1, this._moved = !1) }, _onDown: function (t) { var e, i; this._enabled && (this._moved = !1, ve(this._element, "leaflet-zoom-anim") || (t.touches && 1 !== t.touches.length ? Xe._dragging === this && this.finishDrag() : Xe._dragging || t.shiftKey || 1 !== t.which && 1 !== t.button && !t.touches || ((Xe._dragging = this)._preventOutline && Me(this._element), Le(), re(), this._moving || (this.fire("down"), i = t.touches ? t.touches[0] : t, e = Ce(this._element), this._startPoint = new p(i.clientX, i.clientY), this._startPos = Pe(this._element), this._parentScale = Ze(e), i = "mousedown" === t.type, S(document, i ? "mousemove" : "touchmove", this._onMove, this), S(document, i ? "mouseup" : "touchend touchcancel", this._onUp, this))))) }, _onMove: function (t) { var e; this._enabled && (t.touches && 1 < t.touches.length ? this._moved = !0 : !(e = new p((e = t.touches && 1 === t.touches.length ? t.touches[0] : t).clientX, e.clientY)._subtract(this._startPoint)).x && !e.y || Math.abs(e.x) + Math.abs(e.y) < this.options.clickTolerance || (e.x /= this._parentScale.x, e.y /= this._parentScale.y, O(t), this._moved || (this.fire("dragstart"), this._moved = !0, M(document.body, "leaflet-dragging"), this._lastTarget = t.target || t.srcElement, window.SVGElementInstance && this._lastTarget instanceof window.SVGElementInstance && (this._lastTarget = this._lastTarget.correspondingUseElement), M(this._lastTarget, "leaflet-drag-target")), this._newPos = this._startPos.add(e), this._moving = !0, this._lastEvent = t, this._updatePosition())) }, _updatePosition: function () { var t = { originalEvent: this._lastEvent }; this.fire("predrag", t), Z(this._element, this._newPos), this.fire("drag", t) }, _onUp: function () { this._enabled && this.finishDrag() }, finishDrag: function (t) { z(document.body, "leaflet-dragging"), this._lastTarget && (z(this._lastTarget, "leaflet-drag-target"), this._lastTarget = null), k(document, "mousemove touchmove", this._onMove, this), k(document, "mouseup touchend touchcancel", this._onUp, this), Te(), ae(); var e = this._moved && this._moving; this._moving = !1, Xe._dragging = !1, e && this.fire("dragend", { noInertia: t, distance: this._newPos.distanceTo(this._startPos) }) } }); function Je(t, e, i) { for (var n, o, s, r, a, h, l, u = [1, 4, 2, 8], c = 0, d = t.length; c < d; c++)t[c]._code = si(t[c], e); for (s = 0; s < 4; s++) { for (h = u[s], n = [], c = 0, o = (d = t.length) - 1; c < d; o = c++)r = t[c], a = t[o], r._code & h ? a._code & h || ((l = oi(a, r, h, e, i))._code = si(l, e), n.push(l)) : (a._code & h && ((l = oi(a, r, h, e, i))._code = si(l, e), n.push(l)), n.push(r)); t = n } return t } function $e(t, e) { var i, n, o, s, r, a, h; if (!t || 0 === t.length) throw new Error("latlngs not passed"); I(t) || (console.warn("latlngs are not flat! Only the first ring will be used"), t = t[0]); for (var l = w([0, 0]), u = g(t), c = (u.getNorthWest().distanceTo(u.getSouthWest()) * u.getNorthEast().distanceTo(u.getNorthWest()) < 1700 && (l = Qe(t)), t.length), d = [], _ = 0; _ < c; _++) { var p = w(t[_]); d.push(e.project(w([p.lat - l.lat, p.lng - l.lng]))) } for (_ = r = a = h = 0, i = c - 1; _ < c; i = _++)n = d[_], o = d[i], s = n.y * o.x - o.y * n.x, a += (n.x + o.x) * s, h += (n.y + o.y) * s, r += 3 * s; u = 0 === r ? d[0] : [a / r, h / r], u = e.unproject(m(u)); return w([u.lat + l.lat, u.lng + l.lng]) } function Qe(t) { for (var e = 0, i = 0, n = 0, o = 0; o < t.length; o++) { var s = w(t[o]); e += s.lat, i += s.lng, n++ } return w([e / n, i / n]) } var ti, gt = { __proto__: null, clipPolygon: Je, polygonCenter: $e, centroid: Qe }; function ei(t, e) { if (e && t.length) { var i = t = function (t, e) { for (var i = [t[0]], n = 1, o = 0, s = t.length; n < s; n++)(function (t, e) { var i = e.x - t.x, e = e.y - t.y; return i * i + e * e })(t[n], t[o]) > e && (i.push(t[n]), o = n); o < s - 1 && i.push(t[s - 1]); return i }(t, e = e * e), n = i.length, o = new (typeof Uint8Array != void 0 + "" ? Uint8Array : Array)(n); o[0] = o[n - 1] = 1, function t(e, i, n, o, s) { var r, a, h, l = 0; for (a = o + 1; a <= s - 1; a++)h = ri(e[a], e[o], e[s], !0), l < h && (r = a, l = h); n < l && (i[r] = 1, t(e, i, n, o, r), t(e, i, n, r, s)) }(i, o, e, 0, n - 1); var s, r = []; for (s = 0; s < n; s++)o[s] && r.push(i[s]); return r } return t.slice() } function ii(t, e, i) { return Math.sqrt(ri(t, e, i, !0)) } function ni(t, e, i, n, o) { var s, r, a, h = n ? ti : si(t, i), l = si(e, i); for (ti = l; ;) { if (!(h | l)) return [t, e]; if (h & l) return !1; a = si(r = oi(t, e, s = h || l, i, o), i), s === h ? (t = r, h = a) : (e = r, l = a) } } function oi(t, e, i, n, o) { var s, r, a = e.x - t.x, e = e.y - t.y, h = n.min, n = n.max; return 8 & i ? (s = t.x + a * (n.y - t.y) / e, r = n.y) : 4 & i ? (s = t.x + a * (h.y - t.y) / e, r = h.y) : 2 & i ? (s = n.x, r = t.y + e * (n.x - t.x) / a) : 1 & i && (s = h.x, r = t.y + e * (h.x - t.x) / a), new p(s, r, o) } function si(t, e) { var i = 0; return t.x < e.min.x ? i |= 1 : t.x > e.max.x && (i |= 2), t.y < e.min.y ? i |= 4 : t.y > e.max.y && (i |= 8), i } function ri(t, e, i, n) { var o = e.x, e = e.y, s = i.x - o, r = i.y - e, a = s * s + r * r; return 0 < a && (1 < (a = ((t.x - o) * s + (t.y - e) * r) / a) ? (o = i.x, e = i.y) : 0 < a && (o += s * a, e += r * a)), s = t.x - o, r = t.y - e, n ? s * s + r * r : new p(o, e) } function I(t) { return !d(t[0]) || "object" != typeof t[0][0] && void 0 !== t[0][0] } function ai(t) { return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."), I(t) } function hi(t, e) { var i, n, o, s, r, a; if (!t || 0 === t.length) throw new Error("latlngs not passed"); I(t) || (console.warn("latlngs are not flat! Only the first ring will be used"), t = t[0]); for (var h = w([0, 0]), l = g(t), u = (l.getNorthWest().distanceTo(l.getSouthWest()) * l.getNorthEast().distanceTo(l.getNorthWest()) < 1700 && (h = Qe(t)), t.length), c = [], d = 0; d < u; d++) { var _ = w(t[d]); c.push(e.project(w([_.lat - h.lat, _.lng - h.lng]))) } for (i = d = 0; d < u - 1; d++)i += c[d].distanceTo(c[d + 1]) / 2; if (0 === i) a = c[0]; else for (n = d = 0; d < u - 1; d++)if (o = c[d], s = c[d + 1], i < (n += r = o.distanceTo(s))) { a = [s.x - (r = (n - i) / r) * (s.x - o.x), s.y - r * (s.y - o.y)]; break } l = e.unproject(m(a)); return w([l.lat + h.lat, l.lng + h.lng]) } var vt = { __proto__: null, simplify: ei, pointToSegmentDistance: ii, closestPointOnSegment: function (t, e, i) { return ri(t, e, i) }, clipSegment: ni, _getEdgeIntersection: oi, _getBitCode: si, _sqClosestPointOnSegment: ri, isFlat: I, _flat: ai, polylineCenter: hi }, yt = { project: function (t) { return new p(t.lng, t.lat) }, unproject: function (t) { return new v(t.y, t.x) }, bounds: new f([-180, -90], [180, 90]) }, xt = { R: 6378137, R_MINOR: 6356752.314245179, bounds: new f([-20037508.34279, -15496570.73972], [20037508.34279, 18764656.23138]), project: function (t) { var e = Math.PI / 180, i = this.R, n = t.lat * e, o = this.R_MINOR / i, o = Math.sqrt(1 - o * o), s = o * Math.sin(n), s = Math.tan(Math.PI / 4 - n / 2) / Math.pow((1 - s) / (1 + s), o / 2), n = -i * Math.log(Math.max(s, 1e-10)); return new p(t.lng * e * i, n) }, unproject: function (t) { for (var e, i = 180 / Math.PI, n = this.R, o = this.R_MINOR / n, s = Math.sqrt(1 - o * o), r = Math.exp(-t.y / n), a = Math.PI / 2 - 2 * Math.atan(r), h = 0, l = .1; h < 15 && 1e-7 < Math.abs(l); h++)e = s * Math.sin(a), e = Math.pow((1 - e) / (1 + e), s / 2), a += l = Math.PI / 2 - 2 * Math.atan(r * e) - a; return new v(a * i, t.x * i / n) } }, wt = { __proto__: null, LonLat: yt, Mercator: xt, SphericalMercator: rt }, Pt = l({}, st, { code: "EPSG:3395", projection: xt, transformation: ht(bt = .5 / (Math.PI * xt.R), .5, -bt, .5) }), li = l({}, st, { code: "EPSG:4326", projection: yt, transformation: ht(1 / 180, 1, -1 / 180, .5) }), Lt = l({}, ot, { projection: yt, transformation: ht(1, 0, -1, 0), scale: function (t) { return Math.pow(2, t) }, zoom: function (t) { return Math.log(t) / Math.LN2 }, distance: function (t, e) { var i = e.lng - t.lng, e = e.lat - t.lat; return Math.sqrt(i * i + e * e) }, infinite: !0 }), o = (ot.Earth = st, ot.EPSG3395 = Pt, ot.EPSG3857 = lt, ot.EPSG900913 = ut, ot.EPSG4326 = li, ot.Simple = Lt, it.extend({ options: { pane: "overlayPane", attribution: null, bubblingMouseEvents: !0 }, addTo: function (t) { return t.addLayer(this), this }, remove: function () { return this.removeFrom(this._map || this._mapToAdd) }, removeFrom: function (t) { return t && t.removeLayer(this), this }, getPane: function (t) { return this._map.getPane(t ? this.options[t] || t : this.options.pane) }, addInteractiveTarget: function (t) { return this._map._targets[h(t)] = this }, removeInteractiveTarget: function (t) { return delete this._map._targets[h(t)], this }, getAttribution: function () { return this.options.attribution }, _layerAdd: function (t) { var e, i = t.target; i.hasLayer(this) && (this._map = i, this._zoomAnimated = i._zoomAnimated, this.getEvents && (e = this.getEvents(), i.on(e, this), this.once("remove", function () { i.off(e, this) }, this)), this.onAdd(i), this.fire("add"), i.fire("layeradd", { layer: this })) } })), ui = (A.include({ addLayer: function (t) { var e; if (t._layerAdd) return e = h(t), this._layers[e] || ((this._layers[e] = t)._mapToAdd = this, t.beforeAdd && t.beforeAdd(this), this.whenReady(t._layerAdd, t)), this; throw new Error("The provided object is not a Layer.") }, removeLayer: function (t) { var e = h(t); return this._layers[e] && (this._loaded && t.onRemove(this), delete this._layers[e], this._loaded && (this.fire("layerremove", { layer: t }), t.fire("remove")), t._map = t._mapToAdd = null), this }, hasLayer: function (t) { return h(t) in this._layers }, eachLayer: function (t, e) { for (var i in this._layers) t.call(e, this._layers[i]); return this }, _addLayers: function (t) { for (var e = 0, i = (t = t ? d(t) ? t : [t] : []).length; e < i; e++)this.addLayer(t[e]) }, _addZoomLimit: function (t) { isNaN(t.options.maxZoom) && isNaN(t.options.minZoom) || (this._zoomBoundLayers[h(t)] = t, this._updateZoomLevels()) }, _removeZoomLimit: function (t) { t = h(t); this._zoomBoundLayers[t] && (delete this._zoomBoundLayers[t], this._updateZoomLevels()) }, _updateZoomLevels: function () { var t, e = 1 / 0, i = -1 / 0, n = this._getZoomSpan(); for (t in this._zoomBoundLayers) var o = this._zoomBoundLayers[t].options, e = void 0 === o.minZoom ? e : Math.min(e, o.minZoom), i = void 0 === o.maxZoom ? i : Math.max(i, o.maxZoom); this._layersMaxZoom = i === -1 / 0 ? void 0 : i, this._layersMinZoom = e === 1 / 0 ? void 0 : e, n !== this._getZoomSpan() && this.fire("zoomlevelschange"), void 0 === this.options.maxZoom && this._layersMaxZoom && this.getZoom() > this._layersMaxZoom && this.setZoom(this._layersMaxZoom), void 0 === this.options.minZoom && this._layersMinZoom && this.getZoom() < this._layersMinZoom && this.setZoom(this._layersMinZoom) } }), o.extend({ initialize: function (t, e) { var i, n; if (c(this, e), this._layers = {}, t) for (i = 0, n = t.length; i < n; i++)this.addLayer(t[i]) }, addLayer: function (t) { var e = this.getLayerId(t); return this._layers[e] = t, this._map && this._map.addLayer(t), this }, removeLayer: function (t) { t = t in this._layers ? t : this.getLayerId(t); return this._map && this._layers[t] && this._map.removeLayer(this._layers[t]), delete this._layers[t], this }, hasLayer: function (t) { return ("number" == typeof t ? t : this.getLayerId(t)) in this._layers }, clearLayers: function () { return this.eachLayer(this.removeLayer, this) }, invoke: function (t) { var e, i, n = Array.prototype.slice.call(arguments, 1); for (e in this._layers) (i = this._layers[e])[t] && i[t].apply(i, n); return this }, onAdd: function (t) { this.eachLayer(t.addLayer, t) }, onRemove: function (t) { this.eachLayer(t.removeLayer, t) }, eachLayer: function (t, e) { for (var i in this._layers) t.call(e, this._layers[i]); return this }, getLayer: function (t) { return this._layers[t] }, getLayers: function () { var t = []; return this.eachLayer(t.push, t), t }, setZIndex: function (t) { return this.invoke("setZIndex", t) }, getLayerId: h })), ci = ui.extend({ addLayer: function (t) { return this.hasLayer(t) ? this : (t.addEventParent(this), ui.prototype.addLayer.call(this, t), this.fire("layeradd", { layer: t })) }, removeLayer: function (t) { return this.hasLayer(t) ? ((t = t in this._layers ? this._layers[t] : t).removeEventParent(this), ui.prototype.removeLayer.call(this, t), this.fire("layerremove", { layer: t })) : this }, setStyle: function (t) { return this.invoke("setStyle", t) }, bringToFront: function () { return this.invoke("bringToFront") }, bringToBack: function () { return this.invoke("bringToBack") }, getBounds: function () { var t, e = new s; for (t in this._layers) { var i = this._layers[t]; e.extend(i.getBounds ? i.getBounds() : i.getLatLng()) } return e } }), di = et.extend({ options: { popupAnchor: [0, 0], tooltipAnchor: [0, 0], crossOrigin: !1 }, initialize: function (t) { c(this, t) }, createIcon: function (t) { return this._createIcon("icon", t) }, createShadow: function (t) { return this._createIcon("shadow", t) }, _createIcon: function (t, e) { var i = this._getIconUrl(t); if (i) return i = this._createImg(i, e && "IMG" === e.tagName ? e : null), this._setIconStyles(i, t), !this.options.crossOrigin && "" !== this.options.crossOrigin || (i.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin), i; if ("icon" === t) throw new Error("iconUrl not set in Icon options (see the docs)."); return null }, _setIconStyles: function (t, e) { var i = this.options, n = i[e + "Size"], n = m(n = "number" == typeof n ? [n, n] : n), o = m("shadow" === e && i.shadowAnchor || i.iconAnchor || n && n.divideBy(2, !0)); t.className = "leaflet-marker-" + e + " " + (i.className || ""), o && (t.style.marginLeft = -o.x + "px", t.style.marginTop = -o.y + "px"), n && (t.style.width = n.x + "px", t.style.height = n.y + "px") }, _createImg: function (t, e) { return (e = e || document.createElement("img")).src = t, e }, _getIconUrl: function (t) { return b.retina && this.options[t + "RetinaUrl"] || this.options[t + "Url"] } }); var _i = di.extend({ options: { iconUrl: "marker-icon.png", iconRetinaUrl: "marker-icon-2x.png", shadowUrl: "marker-shadow.png", iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], tooltipAnchor: [16, -28], shadowSize: [41, 41] }, _getIconUrl: function (t) { return "string" != typeof _i.imagePath && (_i.imagePath = this._detectIconPath()), (this.options.imagePath || _i.imagePath) + di.prototype._getIconUrl.call(this, t) }, _stripUrl: function (t) { function e(t, e, i) { return (e = e.exec(t)) && e[i] } return (t = e(t, /^url\((['"])?(.+)\1\)$/, 2)) && e(t, /^(.*)marker-icon\.png$/, 1) }, _detectIconPath: function () { var t = P("div", "leaflet-default-icon-path", document.body), e = pe(t, "background-image") || pe(t, "backgroundImage"); return document.body.removeChild(t), (e = this._stripUrl(e)) ? e : (t = document.querySelector('link[href$="leaflet.css"]')) ? t.href.substring(0, t.href.length - "leaflet.css".length - 1) : "" } }), pi = n.extend({ initialize: function (t) { this._marker = t }, addHooks: function () { var t = this._marker._icon; this._draggable || (this._draggable = new Xe(t, t, !0)), this._draggable.on({ dragstart: this._onDragStart, predrag: this._onPreDrag, drag: this._onDrag, dragend: this._onDragEnd }, this).enable(), M(t, "leaflet-marker-draggable") }, removeHooks: function () { this._draggable.off({ dragstart: this._onDragStart, predrag: this._onPreDrag, drag: this._onDrag, dragend: this._onDragEnd }, this).disable(), this._marker._icon && z(this._marker._icon, "leaflet-marker-draggable") }, moved: function () { return this._draggable && this._draggable._moved }, _adjustPan: function (t) { var e = this._marker, i = e._map, n = this._marker.options.autoPanSpeed, o = this._marker.options.autoPanPadding, s = Pe(e._icon), r = i.getPixelBounds(), a = i.getPixelOrigin(), a = _(r.min._subtract(a).add(o), r.max._subtract(a).subtract(o)); a.contains(s) || (o = m((Math.max(a.max.x, s.x) - a.max.x) / (r.max.x - a.max.x) - (Math.min(a.min.x, s.x) - a.min.x) / (r.min.x - a.min.x), (Math.max(a.max.y, s.y) - a.max.y) / (r.max.y - a.max.y) - (Math.min(a.min.y, s.y) - a.min.y) / (r.min.y - a.min.y)).multiplyBy(n), i.panBy(o, { animate: !1 }), this._draggable._newPos._add(o), this._draggable._startPos._add(o), Z(e._icon, this._draggable._newPos), this._onDrag(t), this._panRequest = x(this._adjustPan.bind(this, t))) }, _onDragStart: function () { this._oldLatLng = this._marker.getLatLng(), this._marker.closePopup && this._marker.closePopup(), this._marker.fire("movestart").fire("dragstart") }, _onPreDrag: function (t) { this._marker.options.autoPan && (r(this._panRequest), this._panRequest = x(this._adjustPan.bind(this, t))) }, _onDrag: function (t) { var e = this._marker, i = e._shadow, n = Pe(e._icon), o = e._map.layerPointToLatLng(n); i && Z(i, n), e._latlng = o, t.latlng = o, t.oldLatLng = this._oldLatLng, e.fire("move", t).fire("drag", t) }, _onDragEnd: function (t) { r(this._panRequest), delete this._oldLatLng, this._marker.fire("moveend").fire("dragend", t) } }), mi = o.extend({ options: { icon: new _i, interactive: !0, keyboard: !0, title: "", alt: "Marker", zIndexOffset: 0, opacity: 1, riseOnHover: !1, riseOffset: 250, pane: "markerPane", shadowPane: "shadowPane", bubblingMouseEvents: !1, autoPanOnFocus: !0, draggable: !1, autoPan: !1, autoPanPadding: [50, 50], autoPanSpeed: 10 }, initialize: function (t, e) { c(this, e), this._latlng = w(t) }, onAdd: function (t) { this._zoomAnimated = this._zoomAnimated && t.options.markerZoomAnimation, this._zoomAnimated && t.on("zoomanim", this._animateZoom, this), this._initIcon(), this.update() }, onRemove: function (t) { this.dragging && this.dragging.enabled() && (this.options.draggable = !0, this.dragging.removeHooks()), delete this.dragging, this._zoomAnimated && t.off("zoomanim", this._animateZoom, this), this._removeIcon(), this._removeShadow() }, getEvents: function () { return { zoom: this.update, viewreset: this.update } }, getLatLng: function () { return this._latlng }, setLatLng: function (t) { var e = this._latlng; return this._latlng = w(t), this.update(), this.fire("move", { oldLatLng: e, latlng: this._latlng }) }, setZIndexOffset: function (t) { return this.options.zIndexOffset = t, this.update() }, getIcon: function () { return this.options.icon }, setIcon: function (t) { return this.options.icon = t, this._map && (this._initIcon(), this.update()), this._popup && this.bindPopup(this._popup, this._popup.options), this }, getElement: function () { return this._icon }, update: function () { var t; return this._icon && this._map && (t = this._map.latLngToLayerPoint(this._latlng).round(), this._setPos(t)), this }, _initIcon: function () { var t = this.options, e = "leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"), i = t.icon.createIcon(this._icon), n = !1, i = (i !== this._icon && (this._icon && this._removeIcon(), n = !0, t.title && (i.title = t.title), "IMG" === i.tagName && (i.alt = t.alt || "")), M(i, e), t.keyboard && (i.tabIndex = "0", i.setAttribute("role", "button")), this._icon = i, t.riseOnHover && this.on({ mouseover: this._bringToFront, mouseout: this._resetZIndex }), this.options.autoPanOnFocus && S(i, "focus", this._panOnFocus, this), t.icon.createShadow(this._shadow)), o = !1; i !== this._shadow && (this._removeShadow(), o = !0), i && (M(i, e), i.alt = ""), this._shadow = i, t.opacity < 1 && this._updateOpacity(), n && this.getPane().appendChild(this._icon), this._initInteraction(), i && o && this.getPane(t.shadowPane).appendChild(this._shadow) }, _removeIcon: function () { this.options.riseOnHover && this.off({ mouseover: this._bringToFront, mouseout: this._resetZIndex }), this.options.autoPanOnFocus && k(this._icon, "focus", this._panOnFocus, this), T(this._icon), this.removeInteractiveTarget(this._icon), this._icon = null }, _removeShadow: function () { this._shadow && T(this._shadow), this._shadow = null }, _setPos: function (t) { this._icon && Z(this._icon, t), this._shadow && Z(this._shadow, t), this._zIndex = t.y + this.options.zIndexOffset, this._resetZIndex() }, _updateZIndex: function (t) { this._icon && (this._icon.style.zIndex = this._zIndex + t) }, _animateZoom: function (t) { t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center).round(); this._setPos(t) }, _initInteraction: function () { var t; this.options.interactive && (M(this._icon, "leaflet-interactive"), this.addInteractiveTarget(this._icon), pi && (t = this.options.draggable, this.dragging && (t = this.dragging.enabled(), this.dragging.disable()), this.dragging = new pi(this), t && this.dragging.enable())) }, setOpacity: function (t) { return this.options.opacity = t, this._map && this._updateOpacity(), this }, _updateOpacity: function () { var t = this.options.opacity; this._icon && C(this._icon, t), this._shadow && C(this._shadow, t) }, _bringToFront: function () { this._updateZIndex(this.options.riseOffset) }, _resetZIndex: function () { this._updateZIndex(0) }, _panOnFocus: function () { var t, e, i = this._map; i && (t = (e = this.options.icon.options).iconSize ? m(e.iconSize) : m(0, 0), e = e.iconAnchor ? m(e.iconAnchor) : m(0, 0), i.panInside(this._latlng, { paddingTopLeft: e, paddingBottomRight: t.subtract(e) })) }, _getPopupAnchor: function () { return this.options.icon.options.popupAnchor }, _getTooltipAnchor: function () { return this.options.icon.options.tooltipAnchor } }); var fi = o.extend({ options: { stroke: !0, color: "#3388ff", weight: 3, opacity: 1, lineCap: "round", lineJoin: "round", dashArray: null, dashOffset: null, fill: !1, fillColor: null, fillOpacity: .2, fillRule: "evenodd", interactive: !0, bubblingMouseEvents: !0 }, beforeAdd: function (t) { this._renderer = t.getRenderer(this) }, onAdd: function () { this._renderer._initPath(this), this._reset(), this._renderer._addPath(this) }, onRemove: function () { this._renderer._removePath(this) }, redraw: function () { return this._map && this._renderer._updatePath(this), this }, setStyle: function (t) { return c(this, t), this._renderer && (this._renderer._updateStyle(this), this.options.stroke && t && Object.prototype.hasOwnProperty.call(t, "weight") && this._updateBounds()), this }, bringToFront: function () { return this._renderer && this._renderer._bringToFront(this), this }, bringToBack: function () { return this._renderer && this._renderer._bringToBack(this), this }, getElement: function () { return this._path }, _reset: function () { this._project(), this._update() }, _clickTolerance: function () { return (this.options.stroke ? this.options.weight / 2 : 0) + (this._renderer.options.tolerance || 0) } }), gi = fi.extend({ options: { fill: !0, radius: 10 }, initialize: function (t, e) { c(this, e), this._latlng = w(t), this._radius = this.options.radius }, setLatLng: function (t) { var e = this._latlng; return this._latlng = w(t), this.redraw(), this.fire("move", { oldLatLng: e, latlng: this._latlng }) }, getLatLng: function () { return this._latlng }, setRadius: function (t) { return this.options.radius = this._radius = t, this.redraw() }, getRadius: function () { return this._radius }, setStyle: function (t) { var e = t && t.radius || this._radius; return fi.prototype.setStyle.call(this, t), this.setRadius(e), this }, _project: function () { this._point = this._map.latLngToLayerPoint(this._latlng), this._updateBounds() }, _updateBounds: function () { var t = this._radius, e = this._radiusY || t, i = this._clickTolerance(), t = [t + i, e + i]; this._pxBounds = new f(this._point.subtract(t), this._point.add(t)) }, _update: function () { this._map && this._updatePath() }, _updatePath: function () { this._renderer._updateCircle(this) }, _empty: function () { return this._radius && !this._renderer._bounds.intersects(this._pxBounds) }, _containsPoint: function (t) { return t.distanceTo(this._point) <= this._radius + this._clickTolerance() } }); var vi = gi.extend({ initialize: function (t, e, i) { if (c(this, e = "number" == typeof e ? l({}, i, { radius: e }) : e), this._latlng = w(t), isNaN(this.options.radius)) throw new Error("Circle radius cannot be NaN"); this._mRadius = this.options.radius }, setRadius: function (t) { return this._mRadius = t, this.redraw() }, getRadius: function () { return this._mRadius }, getBounds: function () { var t = [this._radius, this._radiusY || this._radius]; return new s(this._map.layerPointToLatLng(this._point.subtract(t)), this._map.layerPointToLatLng(this._point.add(t))) }, setStyle: fi.prototype.setStyle, _project: function () { var t, e, i, n, o, s = this._latlng.lng, r = this._latlng.lat, a = this._map, h = a.options.crs; h.distance === st.distance ? (n = Math.PI / 180, o = this._mRadius / st.R / n, t = a.project([r + o, s]), e = a.project([r - o, s]), e = t.add(e).divideBy(2), i = a.unproject(e).lat, n = Math.acos((Math.cos(o * n) - Math.sin(r * n) * Math.sin(i * n)) / (Math.cos(r * n) * Math.cos(i * n))) / n, !isNaN(n) && 0 !== n || (n = o / Math.cos(Math.PI / 180 * r)), this._point = e.subtract(a.getPixelOrigin()), this._radius = isNaN(n) ? 0 : e.x - a.project([i, s - n]).x, this._radiusY = e.y - t.y) : (o = h.unproject(h.project(this._latlng).subtract([this._mRadius, 0])), this._point = a.latLngToLayerPoint(this._latlng), this._radius = this._point.x - a.latLngToLayerPoint(o).x), this._updateBounds() } }); var yi = fi.extend({ options: { smoothFactor: 1, noClip: !1 }, initialize: function (t, e) { c(this, e), this._setLatLngs(t) }, getLatLngs: function () { return this._latlngs }, setLatLngs: function (t) { return this._setLatLngs(t), this.redraw() }, isEmpty: function () { return !this._latlngs.length }, closestLayerPoint: function (t) { for (var e = 1 / 0, i = null, n = ri, o = 0, s = this._parts.length; o < s; o++)for (var r = this._parts[o], a = 1, h = r.length; a < h; a++) { var l, u, c = n(t, l = r[a - 1], u = r[a], !0); c < e && (e = c, i = n(t, l, u)) } return i && (i.distance = Math.sqrt(e)), i }, getCenter: function () { if (this._map) return hi(this._defaultShape(), this._map.options.crs); throw new Error("Must add layer to map before using getCenter()") }, getBounds: function () { return this._bounds }, addLatLng: function (t, e) { return e = e || this._defaultShape(), t = w(t), e.push(t), this._bounds.extend(t), this.redraw() }, _setLatLngs: function (t) { this._bounds = new s, this._latlngs = this._convertLatLngs(t) }, _defaultShape: function () { return I(this._latlngs) ? this._latlngs : this._latlngs[0] }, _convertLatLngs: function (t) { for (var e = [], i = I(t), n = 0, o = t.length; n < o; n++)i ? (e[n] = w(t[n]), this._bounds.extend(e[n])) : e[n] = this._convertLatLngs(t[n]); return e }, _project: function () { var t = new f; this._rings = [], this._projectLatlngs(this._latlngs, this._rings, t), this._bounds.isValid() && t.isValid() && (this._rawPxBounds = t, this._updateBounds()) }, _updateBounds: function () { var t = this._clickTolerance(), t = new p(t, t); this._rawPxBounds && (this._pxBounds = new f([this._rawPxBounds.min.subtract(t), this._rawPxBounds.max.add(t)])) }, _projectLatlngs: function (t, e, i) { var n, o, s = t[0] instanceof v, r = t.length; if (s) { for (o = [], n = 0; n < r; n++)o[n] = this._map.latLngToLayerPoint(t[n]), i.extend(o[n]); e.push(o) } else for (n = 0; n < r; n++)this._projectLatlngs(t[n], e, i) }, _clipPoints: function () { var t = this._renderer._bounds; if (this._parts = [], this._pxBounds && this._pxBounds.intersects(t)) if (this.options.noClip) this._parts = this._rings; else for (var e, i, n, o, s = this._parts, r = 0, a = 0, h = this._rings.length; r < h; r++)for (e = 0, i = (o = this._rings[r]).length; e < i - 1; e++)(n = ni(o[e], o[e + 1], t, e, !0)) && (s[a] = s[a] || [], s[a].push(n[0]), n[1] === o[e + 1] && e !== i - 2 || (s[a].push(n[1]), a++)) }, _simplifyPoints: function () { for (var t = this._parts, e = this.options.smoothFactor, i = 0, n = t.length; i < n; i++)t[i] = ei(t[i], e) }, _update: function () { this._map && (this._clipPoints(), this._simplifyPoints(), this._updatePath()) }, _updatePath: function () { this._renderer._updatePoly(this) }, _containsPoint: function (t, e) { var i, n, o, s, r, a, h = this._clickTolerance(); if (this._pxBounds && this._pxBounds.contains(t)) for (i = 0, s = this._parts.length; i < s; i++)for (n = 0, o = (r = (a = this._parts[i]).length) - 1; n < r; o = n++)if ((e || 0 !== n) && ii(t, a[o], a[n]) <= h) return !0; return !1 } }); yi._flat = ai; var xi = yi.extend({ options: { fill: !0 }, isEmpty: function () { return !this._latlngs.length || !this._latlngs[0].length }, getCenter: function () { if (this._map) return $e(this._defaultShape(), this._map.options.crs); throw new Error("Must add layer to map before using getCenter()") }, _convertLatLngs: function (t) { var t = yi.prototype._convertLatLngs.call(this, t), e = t.length; return 2 <= e && t[0] instanceof v && t[0].equals(t[e - 1]) && t.pop(), t }, _setLatLngs: function (t) { yi.prototype._setLatLngs.call(this, t), I(this._latlngs) && (this._latlngs = [this._latlngs]) }, _defaultShape: function () { return (I(this._latlngs[0]) ? this._latlngs : this._latlngs[0])[0] }, _clipPoints: function () { var t = this._renderer._bounds, e = this.options.weight, e = new p(e, e), t = new f(t.min.subtract(e), t.max.add(e)); if (this._parts = [], this._pxBounds && this._pxBounds.intersects(t)) if (this.options.noClip) this._parts = this._rings; else for (var i, n = 0, o = this._rings.length; n < o; n++)(i = Je(this._rings[n], t, !0)).length && this._parts.push(i) }, _updatePath: function () { this._renderer._updatePoly(this, !0) }, _containsPoint: function (t) { var e, i, n, o, s, r, a, h, l = !1; if (!this._pxBounds || !this._pxBounds.contains(t)) return !1; for (o = 0, a = this._parts.length; o < a; o++)for (s = 0, r = (h = (e = this._parts[o]).length) - 1; s < h; r = s++)i = e[s], n = e[r], i.y > t.y != n.y > t.y && t.x < (n.x - i.x) * (t.y - i.y) / (n.y - i.y) + i.x && (l = !l); return l || yi.prototype._containsPoint.call(this, t, !0) } }); var wi = ci.extend({ initialize: function (t, e) { c(this, e), this._layers = {}, t && this.addData(t) }, addData: function (t) { var e, i, n, o = d(t) ? t : t.features; if (o) { for (e = 0, i = o.length; e < i; e++)((n = o[e]).geometries || n.geometry || n.features || n.coordinates) && this.addData(n); return this } var s, r = this.options; return (!r.filter || r.filter(t)) && (s = bi(t, r)) ? (s.feature = Zi(t), s.defaultOptions = s.options, this.resetStyle(s), r.onEachFeature && r.onEachFeature(t, s), this.addLayer(s)) : this }, resetStyle: function (t) { return void 0 === t ? this.eachLayer(this.resetStyle, this) : (t.options = l({}, t.defaultOptions), this._setLayerStyle(t, this.options.style), this) }, setStyle: function (e) { return this.eachLayer(function (t) { this._setLayerStyle(t, e) }, this) }, _setLayerStyle: function (t, e) { t.setStyle && ("function" == typeof e && (e = e(t.feature)), t.setStyle(e)) } }); function bi(t, e) { var i, n, o, s, r = "Feature" === t.type ? t.geometry : t, a = r ? r.coordinates : null, h = [], l = e && e.pointToLayer, u = e && e.coordsToLatLng || Li; if (!a && !r) return null; switch (r.type) { case "Point": return Pi(l, t, i = u(a), e); case "MultiPoint": for (o = 0, s = a.length; o < s; o++)i = u(a[o]), h.push(Pi(l, t, i, e)); return new ci(h); case "LineString": case "MultiLineString": return n = Ti(a, "LineString" === r.type ? 0 : 1, u), new yi(n, e); case "Polygon": case "MultiPolygon": return n = Ti(a, "Polygon" === r.type ? 1 : 2, u), new xi(n, e); case "GeometryCollection": for (o = 0, s = r.geometries.length; o < s; o++) { var c = bi({ geometry: r.geometries[o], type: "Feature", properties: t.properties }, e); c && h.push(c) } return new ci(h); case "FeatureCollection": for (o = 0, s = r.features.length; o < s; o++) { var d = bi(r.features[o], e); d && h.push(d) } return new ci(h); default: throw new Error("Invalid GeoJSON object.") } } function Pi(t, e, i, n) { return t ? t(e, i) : new mi(i, n && n.markersInheritOptions && n) } function Li(t) { return new v(t[1], t[0], t[2]) } function Ti(t, e, i) { for (var n, o = [], s = 0, r = t.length; s < r; s++)n = e ? Ti(t[s], e - 1, i) : (i || Li)(t[s]), o.push(n); return o } function Mi(t, e) { return void 0 !== (t = w(t)).alt ? [i(t.lng, e), i(t.lat, e), i(t.alt, e)] : [i(t.lng, e), i(t.lat, e)] } function zi(t, e, i, n) { for (var o = [], s = 0, r = t.length; s < r; s++)o.push(e ? zi(t[s], I(t[s]) ? 0 : e - 1, i, n) : Mi(t[s], n)); return !e && i && 0 < o.length && o.push(o[0].slice()), o } function Ci(t, e) { return t.feature ? l({}, t.feature, { geometry: e }) : Zi(e) } function Zi(t) { return "Feature" === t.type || "FeatureCollection" === t.type ? t : { type: "Feature", properties: {}, geometry: t } } Tt = { toGeoJSON: function (t) { return Ci(this, { type: "Point", coordinates: Mi(this.getLatLng(), t) }) } }; function Si(t, e) { return new wi(t, e) } mi.include(Tt), vi.include(Tt), gi.include(Tt), yi.include({ toGeoJSON: function (t) { var e = !I(this._latlngs); return Ci(this, { type: (e ? "Multi" : "") + "LineString", coordinates: zi(this._latlngs, e ? 1 : 0, !1, t) }) } }), xi.include({ toGeoJSON: function (t) { var e = !I(this._latlngs), i = e && !I(this._latlngs[0]), t = zi(this._latlngs, i ? 2 : e ? 1 : 0, !0, t); return Ci(this, { type: (i ? "Multi" : "") + "Polygon", coordinates: t = e ? t : [t] }) } }), ui.include({ toMultiPoint: function (e) { var i = []; return this.eachLayer(function (t) { i.push(t.toGeoJSON(e).geometry.coordinates) }), Ci(this, { type: "MultiPoint", coordinates: i }) }, toGeoJSON: function (e) { var i, n, t = this.feature && this.feature.geometry && this.feature.geometry.type; return "MultiPoint" === t ? this.toMultiPoint(e) : (i = "GeometryCollection" === t, n = [], this.eachLayer(function (t) { t.toGeoJSON && (t = t.toGeoJSON(e), i ? n.push(t.geometry) : "FeatureCollection" === (t = Zi(t)).type ? n.push.apply(n, t.features) : n.push(t)) }), i ? Ci(this, { geometries: n, type: "GeometryCollection" }) : { type: "FeatureCollection", features: n }) } }); var Mt = Si, Ei = o.extend({ options: { opacity: 1, alt: "", interactive: !1, crossOrigin: !1, errorOverlayUrl: "", zIndex: 1, className: "" }, initialize: function (t, e, i) { this._url = t, this._bounds = g(e), c(this, i) }, onAdd: function () { this._image || (this._initImage(), this.options.opacity < 1 && this._updateOpacity()), this.options.interactive && (M(this._image, "leaflet-interactive"), this.addInteractiveTarget(this._image)), this.getPane().appendChild(this._image), this._reset() }, onRemove: function () { T(this._image), this.options.interactive && this.removeInteractiveTarget(this._image) }, setOpacity: function (t) { return this.options.opacity = t, this._image && this._updateOpacity(), this }, setStyle: function (t) { return t.opacity && this.setOpacity(t.opacity), this }, bringToFront: function () { return this._map && fe(this._image), this }, bringToBack: function () { return this._map && ge(this._image), this }, setUrl: function (t) { return this._url = t, this._image && (this._image.src = t), this }, setBounds: function (t) { return this._bounds = g(t), this._map && this._reset(), this }, getEvents: function () { var t = { zoom: this._reset, viewreset: this._reset }; return this._zoomAnimated && (t.zoomanim = this._animateZoom), t }, setZIndex: function (t) { return this.options.zIndex = t, this._updateZIndex(), this }, getBounds: function () { return this._bounds }, getElement: function () { return this._image }, _initImage: function () { var t = "IMG" === this._url.tagName, e = this._image = t ? this._url : P("img"); M(e, "leaflet-image-layer"), this._zoomAnimated && M(e, "leaflet-zoom-animated"), this.options.className && M(e, this.options.className), e.onselectstart = u, e.onmousemove = u, e.onload = a(this.fire, this, "load"), e.onerror = a(this._overlayOnError, this, "error"), !this.options.crossOrigin && "" !== this.options.crossOrigin || (e.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin), this.options.zIndex && this._updateZIndex(), t ? this._url = e.src : (e.src = this._url, e.alt = this.options.alt) }, _animateZoom: function (t) { var e = this._map.getZoomScale(t.zoom), t = this._map._latLngBoundsToNewLayerBounds(this._bounds, t.zoom, t.center).min; be(this._image, t, e) }, _reset: function () { var t = this._image, e = new f(this._map.latLngToLayerPoint(this._bounds.getNorthWest()), this._map.latLngToLayerPoint(this._bounds.getSouthEast())), i = e.getSize(); Z(t, e.min), t.style.width = i.x + "px", t.style.height = i.y + "px" }, _updateOpacity: function () { C(this._image, this.options.opacity) }, _updateZIndex: function () { this._image && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._image.style.zIndex = this.options.zIndex) }, _overlayOnError: function () { this.fire("error"); var t = this.options.errorOverlayUrl; t && this._url !== t && (this._url = t, this._image.src = t) }, getCenter: function () { return this._bounds.getCenter() } }), ki = Ei.extend({ options: { autoplay: !0, loop: !0, keepAspectRatio: !0, muted: !1, playsInline: !0 }, _initImage: function () { var t = "VIDEO" === this._url.tagName, e = this._image = t ? this._url : P("video"); if (M(e, "leaflet-image-layer"), this._zoomAnimated && M(e, "leaflet-zoom-animated"), this.options.className && M(e, this.options.className), e.onselectstart = u, e.onmousemove = u, e.onloadeddata = a(this.fire, this, "load"), t) { for (var i = e.getElementsByTagName("source"), n = [], o = 0; o < i.length; o++)n.push(i[o].src); this._url = 0 < i.length ? n : [e.src] } else { d(this._url) || (this._url = [this._url]), !this.options.keepAspectRatio && Object.prototype.hasOwnProperty.call(e.style, "objectFit") && (e.style.objectFit = "fill"), e.autoplay = !!this.options.autoplay, e.loop = !!this.options.loop, e.muted = !!this.options.muted, e.playsInline = !!this.options.playsInline; for (var s = 0; s < this._url.length; s++) { var r = P("source"); r.src = this._url[s], e.appendChild(r) } } } }); var Oi = Ei.extend({ _initImage: function () { var t = this._image = this._url; M(t, "leaflet-image-layer"), this._zoomAnimated && M(t, "leaflet-zoom-animated"), this.options.className && M(t, this.options.className), t.onselectstart = u, t.onmousemove = u } }); var Ai = o.extend({ options: { interactive: !1, offset: [0, 0], className: "", pane: void 0, content: "" }, initialize: function (t, e) { t && (t instanceof v || d(t)) ? (this._latlng = w(t), c(this, e)) : (c(this, t), this._source = e), this.options.content && (this._content = this.options.content) }, openOn: function (t) { return (t = arguments.length ? t : this._source._map).hasLayer(this) || t.addLayer(this), this }, close: function () { return this._map && this._map.removeLayer(this), this }, toggle: function (t) { return this._map ? this.close() : (arguments.length ? this._source = t : t = this._source, this._prepareOpen(), this.openOn(t._map)), this }, onAdd: function (t) { this._zoomAnimated = t._zoomAnimated, this._container || this._initLayout(), t._fadeAnimated && C(this._container, 0), clearTimeout(this._removeTimeout), this.getPane().appendChild(this._container), this.update(), t._fadeAnimated && C(this._container, 1), this.bringToFront(), this.options.interactive && (M(this._container, "leaflet-interactive"), this.addInteractiveTarget(this._container)) }, onRemove: function (t) { t._fadeAnimated ? (C(this._container, 0), this._removeTimeout = setTimeout(a(T, void 0, this._container), 200)) : T(this._container), this.options.interactive && (z(this._container, "leaflet-interactive"), this.removeInteractiveTarget(this._container)) }, getLatLng: function () { return this._latlng }, setLatLng: function (t) { return this._latlng = w(t), this._map && (this._updatePosition(), this._adjustPan()), this }, getContent: function () { return this._content }, setContent: function (t) { return this._content = t, this.update(), this }, getElement: function () { return this._container }, update: function () { this._map && (this._container.style.visibility = "hidden", this._updateContent(), this._updateLayout(), this._updatePosition(), this._container.style.visibility = "", this._adjustPan()) }, getEvents: function () { var t = { zoom: this._updatePosition, viewreset: this._updatePosition }; return this._zoomAnimated && (t.zoomanim = this._animateZoom), t }, isOpen: function () { return !!this._map && this._map.hasLayer(this) }, bringToFront: function () { return this._map && fe(this._container), this }, bringToBack: function () { return this._map && ge(this._container), this }, _prepareOpen: function (t) { if (!(i = this._source)._map) return !1; if (i instanceof ci) { var e, i = null, n = this._source._layers; for (e in n) if (n[e]._map) { i = n[e]; break } if (!i) return !1; this._source = i } if (!t) if (i.getCenter) t = i.getCenter(); else if (i.getLatLng) t = i.getLatLng(); else { if (!i.getBounds) throw new Error("Unable to get source layer LatLng."); t = i.getBounds().getCenter() } return this.setLatLng(t), this._map && this.update(), !0 }, _updateContent: function () { if (this._content) { var t = this._contentNode, e = "function" == typeof this._content ? this._content(this._source || this) : this._content; if ("string" == typeof e) t.innerHTML = e; else { for (; t.hasChildNodes();)t.removeChild(t.firstChild); t.appendChild(e) } this.fire("contentupdate") } }, _updatePosition: function () { var t, e, i; this._map && (e = this._map.latLngToLayerPoint(this._latlng), t = m(this.options.offset), i = this._getAnchor(), this._zoomAnimated ? Z(this._container, e.add(i)) : t = t.add(e).add(i), e = this._containerBottom = -t.y, i = this._containerLeft = -Math.round(this._containerWidth / 2) + t.x, this._container.style.bottom = e + "px", this._container.style.left = i + "px") }, _getAnchor: function () { return [0, 0] } }), Bi = (A.include({ _initOverlay: function (t, e, i, n) { var o = e; return o instanceof t || (o = new t(n).setContent(e)), i && o.setLatLng(i), o } }), o.include({ _initOverlay: function (t, e, i, n) { var o = i; return o instanceof t ? (c(o, n), o._source = this) : (o = e && !n ? e : new t(n, this)).setContent(i), o } }), Ai.extend({ options: { pane: "popupPane", offset: [0, 7], maxWidth: 300, minWidth: 50, maxHeight: null, autoPan: !0, autoPanPaddingTopLeft: null, autoPanPaddingBottomRight: null, autoPanPadding: [5, 5], keepInView: !1, closeButton: !0, autoClose: !0, closeOnEscapeKey: !0, className: "" }, openOn: function (t) { return !(t = arguments.length ? t : this._source._map).hasLayer(this) && t._popup && t._popup.options.autoClose && t.removeLayer(t._popup), t._popup = this, Ai.prototype.openOn.call(this, t) }, onAdd: function (t) { Ai.prototype.onAdd.call(this, t), t.fire("popupopen", { popup: this }), this._source && (this._source.fire("popupopen", { popup: this }, !0), this._source instanceof fi || this._source.on("preclick", Ae)) }, onRemove: function (t) { Ai.prototype.onRemove.call(this, t), t.fire("popupclose", { popup: this }), this._source && (this._source.fire("popupclose", { popup: this }, !0), this._source instanceof fi || this._source.off("preclick", Ae)) }, getEvents: function () { var t = Ai.prototype.getEvents.call(this); return (void 0 !== this.options.closeOnClick ? this.options.closeOnClick : this._map.options.closePopupOnClick) && (t.preclick = this.close), this.options.keepInView && (t.moveend = this._adjustPan), t }, _initLayout: function () { var t = "leaflet-popup", e = this._container = P("div", t + " " + (this.options.className || "") + " leaflet-zoom-animated"), i = this._wrapper = P("div", t + "-content-wrapper", e); this._contentNode = P("div", t + "-content", i), Ie(e), Be(this._contentNode), S(e, "contextmenu", Ae), this._tipContainer = P("div", t + "-tip-container", e), this._tip = P("div", t + "-tip", this._tipContainer), this.options.closeButton && ((i = this._closeButton = P("a", t + "-close-button", e)).setAttribute("role", "button"), i.setAttribute("aria-label", "Close popup"), i.href = "#close", i.innerHTML = '', S(i, "click", function (t) { O(t), this.close() }, this)) }, _updateLayout: function () { var t = this._contentNode, e = t.style, i = (e.width = "", e.whiteSpace = "nowrap", t.offsetWidth), i = Math.min(i, this.options.maxWidth), i = (i = Math.max(i, this.options.minWidth), e.width = i + 1 + "px", e.whiteSpace = "", e.height = "", t.offsetHeight), n = this.options.maxHeight, o = "leaflet-popup-scrolled"; (n && n < i ? (e.height = n + "px", M) : z)(t, o), this._containerWidth = this._container.offsetWidth }, _animateZoom: function (t) { var t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center), e = this._getAnchor(); Z(this._container, t.add(e)) }, _adjustPan: function () { var t, e, i, n, o, s, r, a; this.options.autoPan && (this._map._panAnim && this._map._panAnim.stop(), this._autopanning ? this._autopanning = !1 : (t = this._map, e = parseInt(pe(this._container, "marginBottom"), 10) || 0, e = this._container.offsetHeight + e, a = this._containerWidth, (i = new p(this._containerLeft, -e - this._containerBottom))._add(Pe(this._container)), i = t.layerPointToContainerPoint(i), o = m(this.options.autoPanPadding), n = m(this.options.autoPanPaddingTopLeft || o), o = m(this.options.autoPanPaddingBottomRight || o), s = t.getSize(), r = 0, i.x + a + o.x > s.x && (r = i.x + a - s.x + o.x), i.x - r - n.x < (a = 0) && (r = i.x - n.x), i.y + e + o.y > s.y && (a = i.y + e - s.y + o.y), i.y - a - n.y < 0 && (a = i.y - n.y), (r || a) && (this.options.keepInView && (this._autopanning = !0), t.fire("autopanstart").panBy([r, a])))) }, _getAnchor: function () { return m(this._source && this._source._getPopupAnchor ? this._source._getPopupAnchor() : [0, 0]) } })), Ii = (A.mergeOptions({ closePopupOnClick: !0 }), A.include({ openPopup: function (t, e, i) { return this._initOverlay(Bi, t, e, i).openOn(this), this }, closePopup: function (t) { return (t = arguments.length ? t : this._popup) && t.close(), this } }), o.include({ bindPopup: function (t, e) { return this._popup = this._initOverlay(Bi, this._popup, t, e), this._popupHandlersAdded || (this.on({ click: this._openPopup, keypress: this._onKeyPress, remove: this.closePopup, move: this._movePopup }), this._popupHandlersAdded = !0), this }, unbindPopup: function () { return this._popup && (this.off({ click: this._openPopup, keypress: this._onKeyPress, remove: this.closePopup, move: this._movePopup }), this._popupHandlersAdded = !1, this._popup = null), this }, openPopup: function (t) { return this._popup && (this instanceof ci || (this._popup._source = this), this._popup._prepareOpen(t || this._latlng) && this._popup.openOn(this._map)), this }, closePopup: function () { return this._popup && this._popup.close(), this }, togglePopup: function () { return this._popup && this._popup.toggle(this), this }, isPopupOpen: function () { return !!this._popup && this._popup.isOpen() }, setPopupContent: function (t) { return this._popup && this._popup.setContent(t), this }, getPopup: function () { return this._popup }, _openPopup: function (t) { var e; this._popup && this._map && (Re(t), e = t.layer || t.target, this._popup._source !== e || e instanceof fi ? (this._popup._source = e, this.openPopup(t.latlng)) : this._map.hasLayer(this._popup) ? this.closePopup() : this.openPopup(t.latlng)) }, _movePopup: function (t) { this._popup.setLatLng(t.latlng) }, _onKeyPress: function (t) { 13 === t.originalEvent.keyCode && this._openPopup(t) } }), Ai.extend({ options: { pane: "tooltipPane", offset: [0, 0], direction: "auto", permanent: !1, sticky: !1, opacity: .9 }, onAdd: function (t) { Ai.prototype.onAdd.call(this, t), this.setOpacity(this.options.opacity), t.fire("tooltipopen", { tooltip: this }), this._source && (this.addEventParent(this._source), this._source.fire("tooltipopen", { tooltip: this }, !0)) }, onRemove: function (t) { Ai.prototype.onRemove.call(this, t), t.fire("tooltipclose", { tooltip: this }), this._source && (this.removeEventParent(this._source), this._source.fire("tooltipclose", { tooltip: this }, !0)) }, getEvents: function () { var t = Ai.prototype.getEvents.call(this); return this.options.permanent || (t.preclick = this.close), t }, _initLayout: function () { var t = "leaflet-tooltip " + (this.options.className || "") + " leaflet-zoom-" + (this._zoomAnimated ? "animated" : "hide"); this._contentNode = this._container = P("div", t), this._container.setAttribute("role", "tooltip"), this._container.setAttribute("id", "leaflet-tooltip-" + h(this)) }, _updateLayout: function () { }, _adjustPan: function () { }, _setPosition: function (t) { var e, i = this._map, n = this._container, o = i.latLngToContainerPoint(i.getCenter()), i = i.layerPointToContainerPoint(t), s = this.options.direction, r = n.offsetWidth, a = n.offsetHeight, h = m(this.options.offset), l = this._getAnchor(), i = "top" === s ? (e = r / 2, a) : "bottom" === s ? (e = r / 2, 0) : (e = "center" === s ? r / 2 : "right" === s ? 0 : "left" === s ? r : i.x < o.x ? (s = "right", 0) : (s = "left", r + 2 * (h.x + l.x)), a / 2); t = t.subtract(m(e, i, !0)).add(h).add(l), z(n, "leaflet-tooltip-right"), z(n, "leaflet-tooltip-left"), z(n, "leaflet-tooltip-top"), z(n, "leaflet-tooltip-bottom"), M(n, "leaflet-tooltip-" + s), Z(n, t) }, _updatePosition: function () { var t = this._map.latLngToLayerPoint(this._latlng); this._setPosition(t) }, setOpacity: function (t) { this.options.opacity = t, this._container && C(this._container, t) }, _animateZoom: function (t) { t = this._map._latLngToNewLayerPoint(this._latlng, t.zoom, t.center); this._setPosition(t) }, _getAnchor: function () { return m(this._source && this._source._getTooltipAnchor && !this.options.sticky ? this._source._getTooltipAnchor() : [0, 0]) } })), Ri = (A.include({ openTooltip: function (t, e, i) { return this._initOverlay(Ii, t, e, i).openOn(this), this }, closeTooltip: function (t) { return t.close(), this } }), o.include({ bindTooltip: function (t, e) { return this._tooltip && this.isTooltipOpen() && this.unbindTooltip(), this._tooltip = this._initOverlay(Ii, this._tooltip, t, e), this._initTooltipInteractions(), this._tooltip.options.permanent && this._map && this._map.hasLayer(this) && this.openTooltip(), this }, unbindTooltip: function () { return this._tooltip && (this._initTooltipInteractions(!0), this.closeTooltip(), this._tooltip = null), this }, _initTooltipInteractions: function (t) { var e, i; !t && this._tooltipHandlersAdded || (e = t ? "off" : "on", i = { remove: this.closeTooltip, move: this._moveTooltip }, this._tooltip.options.permanent ? i.add = this._openTooltip : (i.mouseover = this._openTooltip, i.mouseout = this.closeTooltip, i.click = this._openTooltip, this._map ? this._addFocusListeners() : i.add = this._addFocusListeners), this._tooltip.options.sticky && (i.mousemove = this._moveTooltip), this[e](i), this._tooltipHandlersAdded = !t) }, openTooltip: function (t) { return this._tooltip && (this instanceof ci || (this._tooltip._source = this), this._tooltip._prepareOpen(t) && (this._tooltip.openOn(this._map), this.getElement ? this._setAriaDescribedByOnLayer(this) : this.eachLayer && this.eachLayer(this._setAriaDescribedByOnLayer, this))), this }, closeTooltip: function () { if (this._tooltip) return this._tooltip.close() }, toggleTooltip: function () { return this._tooltip && this._tooltip.toggle(this), this }, isTooltipOpen: function () { return this._tooltip.isOpen() }, setTooltipContent: function (t) { return this._tooltip && this._tooltip.setContent(t), this }, getTooltip: function () { return this._tooltip }, _addFocusListeners: function () { this.getElement ? this._addFocusListenersOnLayer(this) : this.eachLayer && this.eachLayer(this._addFocusListenersOnLayer, this) }, _addFocusListenersOnLayer: function (t) { var e = "function" == typeof t.getElement && t.getElement(); e && (S(e, "focus", function () { this._tooltip._source = t, this.openTooltip() }, this), S(e, "blur", this.closeTooltip, this)) }, _setAriaDescribedByOnLayer: function (t) { t = "function" == typeof t.getElement && t.getElement(); t && t.setAttribute("aria-describedby", this._tooltip._container.id) }, _openTooltip: function (t) { var e; this._tooltip && this._map && (this._map.dragging && this._map.dragging.moving() && !this._openOnceFlag ? (this._openOnceFlag = !0, (e = this)._map.once("moveend", function () { e._openOnceFlag = !1, e._openTooltip(t) })) : (this._tooltip._source = t.layer || t.target, this.openTooltip(this._tooltip.options.sticky ? t.latlng : void 0))) }, _moveTooltip: function (t) { var e = t.latlng; this._tooltip.options.sticky && t.originalEvent && (t = this._map.mouseEventToContainerPoint(t.originalEvent), t = this._map.containerPointToLayerPoint(t), e = this._map.layerPointToLatLng(t)), this._tooltip.setLatLng(e) } }), di.extend({ options: { iconSize: [12, 12], html: !1, bgPos: null, className: "leaflet-div-icon" }, createIcon: function (t) { var t = t && "DIV" === t.tagName ? t : document.createElement("div"), e = this.options; return e.html instanceof Element ? (me(t), t.appendChild(e.html)) : t.innerHTML = !1 !== e.html ? e.html : "", e.bgPos && (e = m(e.bgPos), t.style.backgroundPosition = -e.x + "px " + -e.y + "px"), this._setIconStyles(t, "icon"), t }, createShadow: function () { return null } })); di.Default = _i; var Ni = o.extend({ options: { tileSize: 256, opacity: 1, updateWhenIdle: b.mobile, updateWhenZooming: !0, updateInterval: 200, zIndex: 1, bounds: null, minZoom: 0, maxZoom: void 0, maxNativeZoom: void 0, minNativeZoom: void 0, noWrap: !1, pane: "tilePane", className: "", keepBuffer: 2 }, initialize: function (t) { c(this, t) }, onAdd: function () { this._initContainer(), this._levels = {}, this._tiles = {}, this._resetView() }, beforeAdd: function (t) { t._addZoomLimit(this) }, onRemove: function (t) { this._removeAllTiles(), T(this._container), t._removeZoomLimit(this), this._container = null, this._tileZoom = void 0 }, bringToFront: function () { return this._map && (fe(this._container), this._setAutoZIndex(Math.max)), this }, bringToBack: function () { return this._map && (ge(this._container), this._setAutoZIndex(Math.min)), this }, getContainer: function () { return this._container }, setOpacity: function (t) { return this.options.opacity = t, this._updateOpacity(), this }, setZIndex: function (t) { return this.options.zIndex = t, this._updateZIndex(), this }, isLoading: function () { return this._loading }, redraw: function () { var t; return this._map && (this._removeAllTiles(), (t = this._clampZoom(this._map.getZoom())) !== this._tileZoom && (this._tileZoom = t, this._updateLevels()), this._update()), this }, getEvents: function () { var t = { viewprereset: this._invalidateAll, viewreset: this._resetView, zoom: this._resetView, moveend: this._onMoveEnd }; return this.options.updateWhenIdle || (this._onMove || (this._onMove = j(this._onMoveEnd, this.options.updateInterval, this)), t.move = this._onMove), this._zoomAnimated && (t.zoomanim = this._animateZoom), t }, createTile: function () { return document.createElement("div") }, getTileSize: function () { var t = this.options.tileSize; return t instanceof p ? t : new p(t, t) }, _updateZIndex: function () { this._container && void 0 !== this.options.zIndex && null !== this.options.zIndex && (this._container.style.zIndex = this.options.zIndex) }, _setAutoZIndex: function (t) { for (var e, i = this.getPane().children, n = -t(-1 / 0, 1 / 0), o = 0, s = i.length; o < s; o++)e = i[o].style.zIndex, i[o] !== this._container && e && (n = t(n, +e)); isFinite(n) && (this.options.zIndex = n + t(-1, 1), this._updateZIndex()) }, _updateOpacity: function () { if (this._map && !b.ielt9) { C(this._container, this.options.opacity); var t, e = +new Date, i = !1, n = !1; for (t in this._tiles) { var o, s = this._tiles[t]; s.current && s.loaded && (o = Math.min(1, (e - s.loaded) / 200), C(s.el, o), o < 1 ? i = !0 : (s.active ? n = !0 : this._onOpaqueTile(s), s.active = !0)) } n && !this._noPrune && this._pruneTiles(), i && (r(this._fadeFrame), this._fadeFrame = x(this._updateOpacity, this)) } }, _onOpaqueTile: u, _initContainer: function () { this._container || (this._container = P("div", "leaflet-layer " + (this.options.className || "")), this._updateZIndex(), this.options.opacity < 1 && this._updateOpacity(), this.getPane().appendChild(this._container)) }, _updateLevels: function () { var t = this._tileZoom, e = this.options.maxZoom; if (void 0 !== t) { for (var i in this._levels) i = Number(i), this._levels[i].el.children.length || i === t ? (this._levels[i].el.style.zIndex = e - Math.abs(t - i), this._onUpdateLevel(i)) : (T(this._levels[i].el), this._removeTilesAtZoom(i), this._onRemoveLevel(i), delete this._levels[i]); var n = this._levels[t], o = this._map; return n || ((n = this._levels[t] = {}).el = P("div", "leaflet-tile-container leaflet-zoom-animated", this._container), n.el.style.zIndex = e, n.origin = o.project(o.unproject(o.getPixelOrigin()), t).round(), n.zoom = t, this._setZoomTransform(n, o.getCenter(), o.getZoom()), u(n.el.offsetWidth), this._onCreateLevel(n)), this._level = n } }, _onUpdateLevel: u, _onRemoveLevel: u, _onCreateLevel: u, _pruneTiles: function () { if (this._map) { var t, e, i, n = this._map.getZoom(); if (n > this.options.maxZoom || n < this.options.minZoom) this._removeAllTiles(); else { for (t in this._tiles) (i = this._tiles[t]).retain = i.current; for (t in this._tiles) (i = this._tiles[t]).current && !i.active && (e = i.coords, this._retainParent(e.x, e.y, e.z, e.z - 5) || this._retainChildren(e.x, e.y, e.z, e.z + 2)); for (t in this._tiles) this._tiles[t].retain || this._removeTile(t) } } }, _removeTilesAtZoom: function (t) { for (var e in this._tiles) this._tiles[e].coords.z === t && this._removeTile(e) }, _removeAllTiles: function () { for (var t in this._tiles) this._removeTile(t) }, _invalidateAll: function () { for (var t in this._levels) T(this._levels[t].el), this._onRemoveLevel(Number(t)), delete this._levels[t]; this._removeAllTiles(), this._tileZoom = void 0 }, _retainParent: function (t, e, i, n) { var t = Math.floor(t / 2), e = Math.floor(e / 2), i = i - 1, o = new p(+t, +e), o = (o.z = i, this._tileCoordsToKey(o)), o = this._tiles[o]; return o && o.active ? o.retain = !0 : (o && o.loaded && (o.retain = !0), n < i && this._retainParent(t, e, i, n)) }, _retainChildren: function (t, e, i, n) { for (var o = 2 * t; o < 2 * t + 2; o++)for (var s = 2 * e; s < 2 * e + 2; s++) { var r = new p(o, s), r = (r.z = i + 1, this._tileCoordsToKey(r)), r = this._tiles[r]; r && r.active ? r.retain = !0 : (r && r.loaded && (r.retain = !0), i + 1 < n && this._retainChildren(o, s, i + 1, n)) } }, _resetView: function (t) { t = t && (t.pinch || t.flyTo); this._setView(this._map.getCenter(), this._map.getZoom(), t, t) }, _animateZoom: function (t) { this._setView(t.center, t.zoom, !0, t.noUpdate) }, _clampZoom: function (t) { var e = this.options; return void 0 !== e.minNativeZoom && t < e.minNativeZoom ? e.minNativeZoom : void 0 !== e.maxNativeZoom && e.maxNativeZoom < t ? e.maxNativeZoom : t }, _setView: function (t, e, i, n) { var o = Math.round(e), o = void 0 !== this.options.maxZoom && o > this.options.maxZoom || void 0 !== this.options.minZoom && o < this.options.minZoom ? void 0 : this._clampZoom(o), s = this.options.updateWhenZooming && o !== this._tileZoom; n && !s || (this._tileZoom = o, this._abortLoading && this._abortLoading(), this._updateLevels(), this._resetGrid(), void 0 !== o && this._update(t), i || this._pruneTiles(), this._noPrune = !!i), this._setZoomTransforms(t, e) }, _setZoomTransforms: function (t, e) { for (var i in this._levels) this._setZoomTransform(this._levels[i], t, e) }, _setZoomTransform: function (t, e, i) { var n = this._map.getZoomScale(i, t.zoom), e = t.origin.multiplyBy(n).subtract(this._map._getNewPixelOrigin(e, i)).round(); b.any3d ? be(t.el, e, n) : Z(t.el, e) }, _resetGrid: function () { var t = this._map, e = t.options.crs, i = this._tileSize = this.getTileSize(), n = this._tileZoom, o = this._map.getPixelWorldBounds(this._tileZoom); o && (this._globalTileRange = this._pxBoundsToTileRange(o)), this._wrapX = e.wrapLng && !this.options.noWrap && [Math.floor(t.project([0, e.wrapLng[0]], n).x / i.x), Math.ceil(t.project([0, e.wrapLng[1]], n).x / i.y)], this._wrapY = e.wrapLat && !this.options.noWrap && [Math.floor(t.project([e.wrapLat[0], 0], n).y / i.x), Math.ceil(t.project([e.wrapLat[1], 0], n).y / i.y)] }, _onMoveEnd: function () { this._map && !this._map._animatingZoom && this._update() }, _getTiledPixelBounds: function (t) { var e = this._map, i = e._animatingZoom ? Math.max(e._animateToZoom, e.getZoom()) : e.getZoom(), i = e.getZoomScale(i, this._tileZoom), t = e.project(t, this._tileZoom).floor(), e = e.getSize().divideBy(2 * i); return new f(t.subtract(e), t.add(e)) }, _update: function (t) { var e = this._map; if (e) { var i = this._clampZoom(e.getZoom()); if (void 0 === t && (t = e.getCenter()), void 0 !== this._tileZoom) { var n, e = this._getTiledPixelBounds(t), o = this._pxBoundsToTileRange(e), s = o.getCenter(), r = [], e = this.options.keepBuffer, a = new f(o.getBottomLeft().subtract([e, -e]), o.getTopRight().add([e, -e])); if (!(isFinite(o.min.x) && isFinite(o.min.y) && isFinite(o.max.x) && isFinite(o.max.y))) throw new Error("Attempted to load an infinite number of tiles"); for (n in this._tiles) { var h = this._tiles[n].coords; h.z === this._tileZoom && a.contains(new p(h.x, h.y)) || (this._tiles[n].current = !1) } if (1 < Math.abs(i - this._tileZoom)) this._setView(t, i); else { for (var l = o.min.y; l <= o.max.y; l++)for (var u = o.min.x; u <= o.max.x; u++) { var c, d = new p(u, l); d.z = this._tileZoom, this._isValidTile(d) && ((c = this._tiles[this._tileCoordsToKey(d)]) ? c.current = !0 : r.push(d)) } if (r.sort(function (t, e) { return t.distanceTo(s) - e.distanceTo(s) }), 0 !== r.length) { this._loading || (this._loading = !0, this.fire("loading")); for (var _ = document.createDocumentFragment(), u = 0; u < r.length; u++)this._addTile(r[u], _); this._level.el.appendChild(_) } } } } }, _isValidTile: function (t) { var e = this._map.options.crs; if (!e.infinite) { var i = this._globalTileRange; if (!e.wrapLng && (t.x < i.min.x || t.x > i.max.x) || !e.wrapLat && (t.y < i.min.y || t.y > i.max.y)) return !1 } return !this.options.bounds || (e = this._tileCoordsToBounds(t), g(this.options.bounds).overlaps(e)) }, _keyToBounds: function (t) { return this._tileCoordsToBounds(this._keyToTileCoords(t)) }, _tileCoordsToNwSe: function (t) { var e = this._map, i = this.getTileSize(), n = t.scaleBy(i), i = n.add(i); return [e.unproject(n, t.z), e.unproject(i, t.z)] }, _tileCoordsToBounds: function (t) { t = this._tileCoordsToNwSe(t), t = new s(t[0], t[1]); return t = this.options.noWrap ? t : this._map.wrapLatLngBounds(t) }, _tileCoordsToKey: function (t) { return t.x + ":" + t.y + ":" + t.z }, _keyToTileCoords: function (t) { var t = t.split(":"), e = new p(+t[0], +t[1]); return e.z = +t[2], e }, _removeTile: function (t) { var e = this._tiles[t]; e && (T(e.el), delete this._tiles[t], this.fire("tileunload", { tile: e.el, coords: this._keyToTileCoords(t) })) }, _initTile: function (t) { M(t, "leaflet-tile"); var e = this.getTileSize(); t.style.width = e.x + "px", t.style.height = e.y + "px", t.onselectstart = u, t.onmousemove = u, b.ielt9 && this.options.opacity < 1 && C(t, this.options.opacity) }, _addTile: function (t, e) { var i = this._getTilePos(t), n = this._tileCoordsToKey(t), o = this.createTile(this._wrapCoords(t), a(this._tileReady, this, t)); this._initTile(o), this.createTile.length < 2 && x(a(this._tileReady, this, t, null, o)), Z(o, i), this._tiles[n] = { el: o, coords: t, current: !0 }, e.appendChild(o), this.fire("tileloadstart", { tile: o, coords: t }) }, _tileReady: function (t, e, i) { e && this.fire("tileerror", { error: e, tile: i, coords: t }); var n = this._tileCoordsToKey(t); (i = this._tiles[n]) && (i.loaded = +new Date, this._map._fadeAnimated ? (C(i.el, 0), r(this._fadeFrame), this._fadeFrame = x(this._updateOpacity, this)) : (i.active = !0, this._pruneTiles()), e || (M(i.el, "leaflet-tile-loaded"), this.fire("tileload", { tile: i.el, coords: t })), this._noTilesToLoad() && (this._loading = !1, this.fire("load"), b.ielt9 || !this._map._fadeAnimated ? x(this._pruneTiles, this) : setTimeout(a(this._pruneTiles, this), 250))) }, _getTilePos: function (t) { return t.scaleBy(this.getTileSize()).subtract(this._level.origin) }, _wrapCoords: function (t) { var e = new p(this._wrapX ? H(t.x, this._wrapX) : t.x, this._wrapY ? H(t.y, this._wrapY) : t.y); return e.z = t.z, e }, _pxBoundsToTileRange: function (t) { var e = this.getTileSize(); return new f(t.min.unscaleBy(e).floor(), t.max.unscaleBy(e).ceil().subtract([1, 1])) }, _noTilesToLoad: function () { for (var t in this._tiles) if (!this._tiles[t].loaded) return !1; return !0 } }); var Di = Ni.extend({ options: { minZoom: 0, maxZoom: 18, subdomains: "abc", errorTileUrl: "", zoomOffset: 0, tms: !1, zoomReverse: !1, detectRetina: !1, crossOrigin: !1, referrerPolicy: !1 }, initialize: function (t, e) { this._url = t, (e = c(this, e)).detectRetina && b.retina && 0 < e.maxZoom ? (e.tileSize = Math.floor(e.tileSize / 2), e.zoomReverse ? (e.zoomOffset--, e.minZoom = Math.min(e.maxZoom, e.minZoom + 1)) : (e.zoomOffset++, e.maxZoom = Math.max(e.minZoom, e.maxZoom - 1)), e.minZoom = Math.max(0, e.minZoom)) : e.zoomReverse ? e.minZoom = Math.min(e.maxZoom, e.minZoom) : e.maxZoom = Math.max(e.minZoom, e.maxZoom), "string" == typeof e.subdomains && (e.subdomains = e.subdomains.split("")), this.on("tileunload", this._onTileRemove) }, setUrl: function (t, e) { return this._url === t && void 0 === e && (e = !0), this._url = t, e || this.redraw(), this }, createTile: function (t, e) { var i = document.createElement("img"); return S(i, "load", a(this._tileOnLoad, this, e, i)), S(i, "error", a(this._tileOnError, this, e, i)), !this.options.crossOrigin && "" !== this.options.crossOrigin || (i.crossOrigin = !0 === this.options.crossOrigin ? "" : this.options.crossOrigin), "string" == typeof this.options.referrerPolicy && (i.referrerPolicy = this.options.referrerPolicy), i.alt = "", i.src = this.getTileUrl(t), i }, getTileUrl: function (t) { var e = { r: b.retina ? "@2x" : "", s: this._getSubdomain(t), x: t.x, y: t.y, z: this._getZoomForUrl() }; return this._map && !this._map.options.crs.infinite && (t = this._globalTileRange.max.y - t.y, this.options.tms && (e.y = t), e["-y"] = t), q(this._url, l(e, this.options)) }, _tileOnLoad: function (t, e) { b.ielt9 ? setTimeout(a(t, this, null, e), 0) : t(null, e) }, _tileOnError: function (t, e, i) { var n = this.options.errorTileUrl; n && e.getAttribute("src") !== n && (e.src = n), t(i, e) }, _onTileRemove: function (t) { t.tile.onload = null }, _getZoomForUrl: function () { var t = this._tileZoom, e = this.options.maxZoom; return (t = this.options.zoomReverse ? e - t : t) + this.options.zoomOffset }, _getSubdomain: function (t) { t = Math.abs(t.x + t.y) % this.options.subdomains.length; return this.options.subdomains[t] }, _abortLoading: function () { var t, e, i; for (t in this._tiles) this._tiles[t].coords.z !== this._tileZoom && ((i = this._tiles[t].el).onload = u, i.onerror = u, i.complete || (i.src = K, e = this._tiles[t].coords, T(i), delete this._tiles[t], this.fire("tileabort", { tile: i, coords: e }))) }, _removeTile: function (t) { var e = this._tiles[t]; if (e) return e.el.setAttribute("src", K), Ni.prototype._removeTile.call(this, t) }, _tileReady: function (t, e, i) { if (this._map && (!i || i.getAttribute("src") !== K)) return Ni.prototype._tileReady.call(this, t, e, i) } }); function ji(t, e) { return new Di(t, e) } var Hi = Di.extend({ defaultWmsParams: { service: "WMS", request: "GetMap", layers: "", styles: "", format: "image/jpeg", transparent: !1, version: "1.1.1" }, options: { crs: null, uppercase: !1 }, initialize: function (t, e) { this._url = t; var i, n = l({}, this.defaultWmsParams); for (i in e) i in this.options || (n[i] = e[i]); var t = (e = c(this, e)).detectRetina && b.retina ? 2 : 1, o = this.getTileSize(); n.width = o.x * t, n.height = o.y * t, this.wmsParams = n }, onAdd: function (t) { this._crs = this.options.crs || t.options.crs, this._wmsVersion = parseFloat(this.wmsParams.version); var e = 1.3 <= this._wmsVersion ? "crs" : "srs"; this.wmsParams[e] = this._crs.code, Di.prototype.onAdd.call(this, t) }, getTileUrl: function (t) { var e = this._tileCoordsToNwSe(t), i = this._crs, i = _(i.project(e[0]), i.project(e[1])), e = i.min, i = i.max, e = (1.3 <= this._wmsVersion && this._crs === li ? [e.y, e.x, i.y, i.x] : [e.x, e.y, i.x, i.y]).join(","), i = Di.prototype.getTileUrl.call(this, t); return i + U(this.wmsParams, i, this.options.uppercase) + (this.options.uppercase ? "&BBOX=" : "&bbox=") + e }, setParams: function (t, e) { return l(this.wmsParams, t), e || this.redraw(), this } }); Di.WMS = Hi, ji.wms = function (t, e) { return new Hi(t, e) }; var Wi = o.extend({ options: { padding: .1 }, initialize: function (t) { c(this, t), h(this), this._layers = this._layers || {} }, onAdd: function () { this._container || (this._initContainer(), M(this._container, "leaflet-zoom-animated")), this.getPane().appendChild(this._container), this._update(), this.on("update", this._updatePaths, this) }, onRemove: function () { this.off("update", this._updatePaths, this), this._destroyContainer() }, getEvents: function () { var t = { viewreset: this._reset, zoom: this._onZoom, moveend: this._update, zoomend: this._onZoomEnd }; return this._zoomAnimated && (t.zoomanim = this._onAnimZoom), t }, _onAnimZoom: function (t) { this._updateTransform(t.center, t.zoom) }, _onZoom: function () { this._updateTransform(this._map.getCenter(), this._map.getZoom()) }, _updateTransform: function (t, e) { var i = this._map.getZoomScale(e, this._zoom), n = this._map.getSize().multiplyBy(.5 + this.options.padding), o = this._map.project(this._center, e), n = n.multiplyBy(-i).add(o).subtract(this._map._getNewPixelOrigin(t, e)); b.any3d ? be(this._container, n, i) : Z(this._container, n) }, _reset: function () { for (var t in this._update(), this._updateTransform(this._center, this._zoom), this._layers) this._layers[t]._reset() }, _onZoomEnd: function () { for (var t in this._layers) this._layers[t]._project() }, _updatePaths: function () { for (var t in this._layers) this._layers[t]._update() }, _update: function () { var t = this.options.padding, e = this._map.getSize(), i = this._map.containerPointToLayerPoint(e.multiplyBy(-t)).round(); this._bounds = new f(i, i.add(e.multiplyBy(1 + 2 * t)).round()), this._center = this._map.getCenter(), this._zoom = this._map.getZoom() } }), Fi = Wi.extend({ options: { tolerance: 0 }, getEvents: function () { var t = Wi.prototype.getEvents.call(this); return t.viewprereset = this._onViewPreReset, t }, _onViewPreReset: function () { this._postponeUpdatePaths = !0 }, onAdd: function () { Wi.prototype.onAdd.call(this), this._draw() }, _initContainer: function () { var t = this._container = document.createElement("canvas"); S(t, "mousemove", this._onMouseMove, this), S(t, "click dblclick mousedown mouseup contextmenu", this._onClick, this), S(t, "mouseout", this._handleMouseOut, this), t._leaflet_disable_events = !0, this._ctx = t.getContext("2d") }, _destroyContainer: function () { r(this._redrawRequest), delete this._ctx, T(this._container), k(this._container), delete this._container }, _updatePaths: function () { if (!this._postponeUpdatePaths) { for (var t in this._redrawBounds = null, this._layers) this._layers[t]._update(); this._redraw() } }, _update: function () { var t, e, i, n; this._map._animatingZoom && this._bounds || (Wi.prototype._update.call(this), t = this._bounds, e = this._container, i = t.getSize(), n = b.retina ? 2 : 1, Z(e, t.min), e.width = n * i.x, e.height = n * i.y, e.style.width = i.x + "px", e.style.height = i.y + "px", b.retina && this._ctx.scale(2, 2), this._ctx.translate(-t.min.x, -t.min.y), this.fire("update")) }, _reset: function () { Wi.prototype._reset.call(this), this._postponeUpdatePaths && (this._postponeUpdatePaths = !1, this._updatePaths()) }, _initPath: function (t) { this._updateDashArray(t); t = (this._layers[h(t)] = t)._order = { layer: t, prev: this._drawLast, next: null }; this._drawLast && (this._drawLast.next = t), this._drawLast = t, this._drawFirst = this._drawFirst || this._drawLast }, _addPath: function (t) { this._requestRedraw(t) }, _removePath: function (t) { var e = t._order, i = e.next, e = e.prev; i ? i.prev = e : this._drawLast = e, e ? e.next = i : this._drawFirst = i, delete t._order, delete this._layers[h(t)], this._requestRedraw(t) }, _updatePath: function (t) { this._extendRedrawBounds(t), t._project(), t._update(), this._requestRedraw(t) }, _updateStyle: function (t) { this._updateDashArray(t), this._requestRedraw(t) }, _updateDashArray: function (t) { if ("string" == typeof t.options.dashArray) { for (var e, i = t.options.dashArray.split(/[, ]+/), n = [], o = 0; o < i.length; o++) { if (e = Number(i[o]), isNaN(e)) return; n.push(e) } t.options._dashArray = n } else t.options._dashArray = t.options.dashArray }, _requestRedraw: function (t) { this._map && (this._extendRedrawBounds(t), this._redrawRequest = this._redrawRequest || x(this._redraw, this)) }, _extendRedrawBounds: function (t) { var e; t._pxBounds && (e = (t.options.weight || 0) + 1, this._redrawBounds = this._redrawBounds || new f, this._redrawBounds.extend(t._pxBounds.min.subtract([e, e])), this._redrawBounds.extend(t._pxBounds.max.add([e, e]))) }, _redraw: function () { this._redrawRequest = null, this._redrawBounds && (this._redrawBounds.min._floor(), this._redrawBounds.max._ceil()), this._clear(), this._draw(), this._redrawBounds = null }, _clear: function () { var t, e = this._redrawBounds; e ? (t = e.getSize(), this._ctx.clearRect(e.min.x, e.min.y, t.x, t.y)) : (this._ctx.save(), this._ctx.setTransform(1, 0, 0, 1, 0, 0), this._ctx.clearRect(0, 0, this._container.width, this._container.height), this._ctx.restore()) }, _draw: function () { var t, e, i = this._redrawBounds; this._ctx.save(), i && (e = i.getSize(), this._ctx.beginPath(), this._ctx.rect(i.min.x, i.min.y, e.x, e.y), this._ctx.clip()), this._drawing = !0; for (var n = this._drawFirst; n; n = n.next)t = n.layer, (!i || t._pxBounds && t._pxBounds.intersects(i)) && t._updatePath(); this._drawing = !1, this._ctx.restore() }, _updatePoly: function (t, e) { if (this._drawing) { var i, n, o, s, r = t._parts, a = r.length, h = this._ctx; if (a) { for (h.beginPath(), i = 0; i < a; i++) { for (n = 0, o = r[i].length; n < o; n++)s = r[i][n], h[n ? "lineTo" : "moveTo"](s.x, s.y); e && h.closePath() } this._fillStroke(h, t) } } }, _updateCircle: function (t) { var e, i, n, o; this._drawing && !t._empty() && (e = t._point, i = this._ctx, n = Math.max(Math.round(t._radius), 1), 1 != (o = (Math.max(Math.round(t._radiusY), 1) || n) / n) && (i.save(), i.scale(1, o)), i.beginPath(), i.arc(e.x, e.y / o, n, 0, 2 * Math.PI, !1), 1 != o && i.restore(), this._fillStroke(i, t)) }, _fillStroke: function (t, e) { var i = e.options; i.fill && (t.globalAlpha = i.fillOpacity, t.fillStyle = i.fillColor || i.color, t.fill(i.fillRule || "evenodd")), i.stroke && 0 !== i.weight && (t.setLineDash && t.setLineDash(e.options && e.options._dashArray || []), t.globalAlpha = i.opacity, t.lineWidth = i.weight, t.strokeStyle = i.color, t.lineCap = i.lineCap, t.lineJoin = i.lineJoin, t.stroke()) }, _onClick: function (t) { for (var e, i, n = this._map.mouseEventToLayerPoint(t), o = this._drawFirst; o; o = o.next)(e = o.layer).options.interactive && e._containsPoint(n) && (("click" === t.type || "preclick" === t.type) && this._map._draggableMoved(e) || (i = e)); this._fireEvent(!!i && [i], t) }, _onMouseMove: function (t) { var e; !this._map || this._map.dragging.moving() || this._map._animatingZoom || (e = this._map.mouseEventToLayerPoint(t), this._handleMouseHover(t, e)) }, _handleMouseOut: function (t) { var e = this._hoveredLayer; e && (z(this._container, "leaflet-interactive"), this._fireEvent([e], t, "mouseout"), this._hoveredLayer = null, this._mouseHoverThrottled = !1) }, _handleMouseHover: function (t, e) { if (!this._mouseHoverThrottled) { for (var i, n, o = this._drawFirst; o; o = o.next)(i = o.layer).options.interactive && i._containsPoint(e) && (n = i); n !== this._hoveredLayer && (this._handleMouseOut(t), n && (M(this._container, "leaflet-interactive"), this._fireEvent([n], t, "mouseover"), this._hoveredLayer = n)), this._fireEvent(!!this._hoveredLayer && [this._hoveredLayer], t), this._mouseHoverThrottled = !0, setTimeout(a(function () { this._mouseHoverThrottled = !1 }, this), 32) } }, _fireEvent: function (t, e, i) { this._map._fireDOMEvent(e, i || e.type, t) }, _bringToFront: function (t) { var e, i, n = t._order; n && (e = n.next, i = n.prev, e && ((e.prev = i) ? i.next = e : e && (this._drawFirst = e), n.prev = this._drawLast, (this._drawLast.next = n).next = null, this._drawLast = n, this._requestRedraw(t))) }, _bringToBack: function (t) { var e, i, n = t._order; n && (e = n.next, (i = n.prev) && ((i.next = e) ? e.prev = i : i && (this._drawLast = i), n.prev = null, n.next = this._drawFirst, this._drawFirst.prev = n, this._drawFirst = n, this._requestRedraw(t))) } }); function Ui(t) { return b.canvas ? new Fi(t) : null } var Vi = function () { try { return document.namespaces.add("lvml", "urn:schemas-microsoft-com:vml"), function (t) { return document.createElement("') } } catch (t) { } return function (t) { return document.createElement("<" + t + ' xmlns="urn:schemas-microsoft.com:vml" class="lvml">') } }(), zt = { _initContainer: function () { this._container = P("div", "leaflet-vml-container") }, _update: function () { this._map._animatingZoom || (Wi.prototype._update.call(this), this.fire("update")) }, _initPath: function (t) { var e = t._container = Vi("shape"); M(e, "leaflet-vml-shape " + (this.options.className || "")), e.coordsize = "1 1", t._path = Vi("path"), e.appendChild(t._path), this._updateStyle(t), this._layers[h(t)] = t }, _addPath: function (t) { var e = t._container; this._container.appendChild(e), t.options.interactive && t.addInteractiveTarget(e) }, _removePath: function (t) { var e = t._container; T(e), t.removeInteractiveTarget(e), delete this._layers[h(t)] }, _updateStyle: function (t) { var e = t._stroke, i = t._fill, n = t.options, o = t._container; o.stroked = !!n.stroke, o.filled = !!n.fill, n.stroke ? (e = e || (t._stroke = Vi("stroke")), o.appendChild(e), e.weight = n.weight + "px", e.color = n.color, e.opacity = n.opacity, n.dashArray ? e.dashStyle = d(n.dashArray) ? n.dashArray.join(" ") : n.dashArray.replace(/( *, *)/g, " ") : e.dashStyle = "", e.endcap = n.lineCap.replace("butt", "flat"), e.joinstyle = n.lineJoin) : e && (o.removeChild(e), t._stroke = null), n.fill ? (i = i || (t._fill = Vi("fill")), o.appendChild(i), i.color = n.fillColor || n.color, i.opacity = n.fillOpacity) : i && (o.removeChild(i), t._fill = null) }, _updateCircle: function (t) { var e = t._point.round(), i = Math.round(t._radius), n = Math.round(t._radiusY || i); this._setPath(t, t._empty() ? "M0 0" : "AL " + e.x + "," + e.y + " " + i + "," + n + " 0,23592600") }, _setPath: function (t, e) { t._path.v = e }, _bringToFront: function (t) { fe(t._container) }, _bringToBack: function (t) { ge(t._container) } }, qi = b.vml ? Vi : ct, Gi = Wi.extend({ _initContainer: function () { this._container = qi("svg"), this._container.setAttribute("pointer-events", "none"), this._rootGroup = qi("g"), this._container.appendChild(this._rootGroup) }, _destroyContainer: function () { T(this._container), k(this._container), delete this._container, delete this._rootGroup, delete this._svgSize }, _update: function () { var t, e, i; this._map._animatingZoom && this._bounds || (Wi.prototype._update.call(this), e = (t = this._bounds).getSize(), i = this._container, this._svgSize && this._svgSize.equals(e) || (this._svgSize = e, i.setAttribute("width", e.x), i.setAttribute("height", e.y)), Z(i, t.min), i.setAttribute("viewBox", [t.min.x, t.min.y, e.x, e.y].join(" ")), this.fire("update")) }, _initPath: function (t) { var e = t._path = qi("path"); t.options.className && M(e, t.options.className), t.options.interactive && M(e, "leaflet-interactive"), this._updateStyle(t), this._layers[h(t)] = t }, _addPath: function (t) { this._rootGroup || this._initContainer(), this._rootGroup.appendChild(t._path), t.addInteractiveTarget(t._path) }, _removePath: function (t) { T(t._path), t.removeInteractiveTarget(t._path), delete this._layers[h(t)] }, _updatePath: function (t) { t._project(), t._update() }, _updateStyle: function (t) { var e = t._path, t = t.options; e && (t.stroke ? (e.setAttribute("stroke", t.color), e.setAttribute("stroke-opacity", t.opacity), e.setAttribute("stroke-width", t.weight), e.setAttribute("stroke-linecap", t.lineCap), e.setAttribute("stroke-linejoin", t.lineJoin), t.dashArray ? e.setAttribute("stroke-dasharray", t.dashArray) : e.removeAttribute("stroke-dasharray"), t.dashOffset ? e.setAttribute("stroke-dashoffset", t.dashOffset) : e.removeAttribute("stroke-dashoffset")) : e.setAttribute("stroke", "none"), t.fill ? (e.setAttribute("fill", t.fillColor || t.color), e.setAttribute("fill-opacity", t.fillOpacity), e.setAttribute("fill-rule", t.fillRule || "evenodd")) : e.setAttribute("fill", "none")) }, _updatePoly: function (t, e) { this._setPath(t, dt(t._parts, e)) }, _updateCircle: function (t) { var e = t._point, i = Math.max(Math.round(t._radius), 1), n = "a" + i + "," + (Math.max(Math.round(t._radiusY), 1) || i) + " 0 1,0 ", e = t._empty() ? "M0 0" : "M" + (e.x - i) + "," + e.y + n + 2 * i + ",0 " + n + 2 * -i + ",0 "; this._setPath(t, e) }, _setPath: function (t, e) { t._path.setAttribute("d", e) }, _bringToFront: function (t) { fe(t._path) }, _bringToBack: function (t) { ge(t._path) } }); function Ki(t) { return b.svg || b.vml ? new Gi(t) : null } b.vml && Gi.include(zt), A.include({ getRenderer: function (t) { t = (t = t.options.renderer || this._getPaneRenderer(t.options.pane) || this.options.renderer || this._renderer) || (this._renderer = this._createRenderer()); return this.hasLayer(t) || this.addLayer(t), t }, _getPaneRenderer: function (t) { var e; return "overlayPane" !== t && void 0 !== t && (void 0 === (e = this._paneRenderers[t]) && (e = this._createRenderer({ pane: t }), this._paneRenderers[t] = e), e) }, _createRenderer: function (t) { return this.options.preferCanvas && Ui(t) || Ki(t) } }); var Yi = xi.extend({ initialize: function (t, e) { xi.prototype.initialize.call(this, this._boundsToLatLngs(t), e) }, setBounds: function (t) { return this.setLatLngs(this._boundsToLatLngs(t)) }, _boundsToLatLngs: function (t) { return [(t = g(t)).getSouthWest(), t.getNorthWest(), t.getNorthEast(), t.getSouthEast()] } }); Gi.create = qi, Gi.pointsToPath = dt, wi.geometryToLayer = bi, wi.coordsToLatLng = Li, wi.coordsToLatLngs = Ti, wi.latLngToCoords = Mi, wi.latLngsToCoords = zi, wi.getFeature = Ci, wi.asFeature = Zi, A.mergeOptions({ boxZoom: !0 }); var _t = n.extend({ initialize: function (t) { this._map = t, this._container = t._container, this._pane = t._panes.overlayPane, this._resetStateTimeout = 0, t.on("unload", this._destroy, this) }, addHooks: function () { S(this._container, "mousedown", this._onMouseDown, this) }, removeHooks: function () { k(this._container, "mousedown", this._onMouseDown, this) }, moved: function () { return this._moved }, _destroy: function () { T(this._pane), delete this._pane }, _resetState: function () { this._resetStateTimeout = 0, this._moved = !1 }, _clearDeferredResetState: function () { 0 !== this._resetStateTimeout && (clearTimeout(this._resetStateTimeout), this._resetStateTimeout = 0) }, _onMouseDown: function (t) { if (!t.shiftKey || 1 !== t.which && 1 !== t.button) return !1; this._clearDeferredResetState(), this._resetState(), re(), Le(), this._startPoint = this._map.mouseEventToContainerPoint(t), S(document, { contextmenu: Re, mousemove: this._onMouseMove, mouseup: this._onMouseUp, keydown: this._onKeyDown }, this) }, _onMouseMove: function (t) { this._moved || (this._moved = !0, this._box = P("div", "leaflet-zoom-box", this._container), M(this._container, "leaflet-crosshair"), this._map.fire("boxzoomstart")), this._point = this._map.mouseEventToContainerPoint(t); var t = new f(this._point, this._startPoint), e = t.getSize(); Z(this._box, t.min), this._box.style.width = e.x + "px", this._box.style.height = e.y + "px" }, _finish: function () { this._moved && (T(this._box), z(this._container, "leaflet-crosshair")), ae(), Te(), k(document, { contextmenu: Re, mousemove: this._onMouseMove, mouseup: this._onMouseUp, keydown: this._onKeyDown }, this) }, _onMouseUp: function (t) { 1 !== t.which && 1 !== t.button || (this._finish(), this._moved && (this._clearDeferredResetState(), this._resetStateTimeout = setTimeout(a(this._resetState, this), 0), t = new s(this._map.containerPointToLatLng(this._startPoint), this._map.containerPointToLatLng(this._point)), this._map.fitBounds(t).fire("boxzoomend", { boxZoomBounds: t }))) }, _onKeyDown: function (t) { 27 === t.keyCode && (this._finish(), this._clearDeferredResetState(), this._resetState()) } }), Ct = (A.addInitHook("addHandler", "boxZoom", _t), A.mergeOptions({ doubleClickZoom: !0 }), n.extend({ addHooks: function () { this._map.on("dblclick", this._onDoubleClick, this) }, removeHooks: function () { this._map.off("dblclick", this._onDoubleClick, this) }, _onDoubleClick: function (t) { var e = this._map, i = e.getZoom(), n = e.options.zoomDelta, i = t.originalEvent.shiftKey ? i - n : i + n; "center" === e.options.doubleClickZoom ? e.setZoom(i) : e.setZoomAround(t.containerPoint, i) } })), Zt = (A.addInitHook("addHandler", "doubleClickZoom", Ct), A.mergeOptions({ dragging: !0, inertia: !0, inertiaDeceleration: 3400, inertiaMaxSpeed: 1 / 0, easeLinearity: .2, worldCopyJump: !1, maxBoundsViscosity: 0 }), n.extend({ addHooks: function () { var t; this._draggable || (t = this._map, this._draggable = new Xe(t._mapPane, t._container), this._draggable.on({ dragstart: this._onDragStart, drag: this._onDrag, dragend: this._onDragEnd }, this), this._draggable.on("predrag", this._onPreDragLimit, this), t.options.worldCopyJump && (this._draggable.on("predrag", this._onPreDragWrap, this), t.on("zoomend", this._onZoomEnd, this), t.whenReady(this._onZoomEnd, this))), M(this._map._container, "leaflet-grab leaflet-touch-drag"), this._draggable.enable(), this._positions = [], this._times = [] }, removeHooks: function () { z(this._map._container, "leaflet-grab"), z(this._map._container, "leaflet-touch-drag"), this._draggable.disable() }, moved: function () { return this._draggable && this._draggable._moved }, moving: function () { return this._draggable && this._draggable._moving }, _onDragStart: function () { var t, e = this._map; e._stop(), this._map.options.maxBounds && this._map.options.maxBoundsViscosity ? (t = g(this._map.options.maxBounds), this._offsetLimit = _(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1), this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())), this._viscosity = Math.min(1, Math.max(0, this._map.options.maxBoundsViscosity))) : this._offsetLimit = null, e.fire("movestart").fire("dragstart"), e.options.inertia && (this._positions = [], this._times = []) }, _onDrag: function (t) { var e, i; this._map.options.inertia && (e = this._lastTime = +new Date, i = this._lastPos = this._draggable._absPos || this._draggable._newPos, this._positions.push(i), this._times.push(e), this._prunePositions(e)), this._map.fire("move", t).fire("drag", t) }, _prunePositions: function (t) { for (; 1 < this._positions.length && 50 < t - this._times[0];)this._positions.shift(), this._times.shift() }, _onZoomEnd: function () { var t = this._map.getSize().divideBy(2), e = this._map.latLngToLayerPoint([0, 0]); this._initialWorldOffset = e.subtract(t).x, this._worldWidth = this._map.getPixelWorldBounds().getSize().x }, _viscousLimit: function (t, e) { return t - (t - e) * this._viscosity }, _onPreDragLimit: function () { var t, e; this._viscosity && this._offsetLimit && (t = this._draggable._newPos.subtract(this._draggable._startPos), e = this._offsetLimit, t.x < e.min.x && (t.x = this._viscousLimit(t.x, e.min.x)), t.y < e.min.y && (t.y = this._viscousLimit(t.y, e.min.y)), t.x > e.max.x && (t.x = this._viscousLimit(t.x, e.max.x)), t.y > e.max.y && (t.y = this._viscousLimit(t.y, e.max.y)), this._draggable._newPos = this._draggable._startPos.add(t)) }, _onPreDragWrap: function () { var t = this._worldWidth, e = Math.round(t / 2), i = this._initialWorldOffset, n = this._draggable._newPos.x, o = (n - e + i) % t + e - i, n = (n + e + i) % t - e - i, t = Math.abs(o + i) < Math.abs(n + i) ? o : n; this._draggable._absPos = this._draggable._newPos.clone(), this._draggable._newPos.x = t }, _onDragEnd: function (t) { var e, i, n, o, s = this._map, r = s.options, a = !r.inertia || t.noInertia || this._times.length < 2; s.fire("dragend", t), !a && (this._prunePositions(+new Date), t = this._lastPos.subtract(this._positions[0]), a = (this._lastTime - this._times[0]) / 1e3, e = r.easeLinearity, a = (t = t.multiplyBy(e / a)).distanceTo([0, 0]), i = Math.min(r.inertiaMaxSpeed, a), t = t.multiplyBy(i / a), n = i / (r.inertiaDeceleration * e), (o = t.multiplyBy(-n / 2).round()).x || o.y) ? (o = s._limitOffset(o, s.options.maxBounds), x(function () { s.panBy(o, { duration: n, easeLinearity: e, noMoveStart: !0, animate: !0 }) })) : s.fire("moveend") } })), St = (A.addInitHook("addHandler", "dragging", Zt), A.mergeOptions({ keyboard: !0, keyboardPanDelta: 80 }), n.extend({ keyCodes: { left: [37], right: [39], down: [40], up: [38], zoomIn: [187, 107, 61, 171], zoomOut: [189, 109, 54, 173] }, initialize: function (t) { this._map = t, this._setPanDelta(t.options.keyboardPanDelta), this._setZoomDelta(t.options.zoomDelta) }, addHooks: function () { var t = this._map._container; t.tabIndex <= 0 && (t.tabIndex = "0"), S(t, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this), this._map.on({ focus: this._addHooks, blur: this._removeHooks }, this) }, removeHooks: function () { this._removeHooks(), k(this._map._container, { focus: this._onFocus, blur: this._onBlur, mousedown: this._onMouseDown }, this), this._map.off({ focus: this._addHooks, blur: this._removeHooks }, this) }, _onMouseDown: function () { var t, e, i; this._focused || (i = document.body, t = document.documentElement, e = i.scrollTop || t.scrollTop, i = i.scrollLeft || t.scrollLeft, this._map._container.focus(), window.scrollTo(i, e)) }, _onFocus: function () { this._focused = !0, this._map.fire("focus") }, _onBlur: function () { this._focused = !1, this._map.fire("blur") }, _setPanDelta: function (t) { for (var e = this._panKeys = {}, i = this.keyCodes, n = 0, o = i.left.length; n < o; n++)e[i.left[n]] = [-1 * t, 0]; for (n = 0, o = i.right.length; n < o; n++)e[i.right[n]] = [t, 0]; for (n = 0, o = i.down.length; n < o; n++)e[i.down[n]] = [0, t]; for (n = 0, o = i.up.length; n < o; n++)e[i.up[n]] = [0, -1 * t] }, _setZoomDelta: function (t) { for (var e = this._zoomKeys = {}, i = this.keyCodes, n = 0, o = i.zoomIn.length; n < o; n++)e[i.zoomIn[n]] = t; for (n = 0, o = i.zoomOut.length; n < o; n++)e[i.zoomOut[n]] = -t }, _addHooks: function () { S(document, "keydown", this._onKeyDown, this) }, _removeHooks: function () { k(document, "keydown", this._onKeyDown, this) }, _onKeyDown: function (t) { if (!(t.altKey || t.ctrlKey || t.metaKey)) { var e, i, n = t.keyCode, o = this._map; if (n in this._panKeys) o._panAnim && o._panAnim._inProgress || (i = this._panKeys[n], t.shiftKey && (i = m(i).multiplyBy(3)), o.options.maxBounds && (i = o._limitOffset(m(i), o.options.maxBounds)), o.options.worldCopyJump ? (e = o.wrapLatLng(o.unproject(o.project(o.getCenter()).add(i))), o.panTo(e)) : o.panBy(i)); else if (n in this._zoomKeys) o.setZoom(o.getZoom() + (t.shiftKey ? 3 : 1) * this._zoomKeys[n]); else { if (27 !== n || !o._popup || !o._popup.options.closeOnEscapeKey) return; o.closePopup() } Re(t) } } })), Et = (A.addInitHook("addHandler", "keyboard", St), A.mergeOptions({ scrollWheelZoom: !0, wheelDebounceTime: 40, wheelPxPerZoomLevel: 60 }), n.extend({ addHooks: function () { S(this._map._container, "wheel", this._onWheelScroll, this), this._delta = 0 }, removeHooks: function () { k(this._map._container, "wheel", this._onWheelScroll, this) }, _onWheelScroll: function (t) { var e = He(t), i = this._map.options.wheelDebounceTime, e = (this._delta += e, this._lastMousePos = this._map.mouseEventToContainerPoint(t), this._startTime || (this._startTime = +new Date), Math.max(i - (+new Date - this._startTime), 0)); clearTimeout(this._timer), this._timer = setTimeout(a(this._performZoom, this), e), Re(t) }, _performZoom: function () { var t = this._map, e = t.getZoom(), i = this._map.options.zoomSnap || 0, n = (t._stop(), this._delta / (4 * this._map.options.wheelPxPerZoomLevel)), n = 4 * Math.log(2 / (1 + Math.exp(-Math.abs(n)))) / Math.LN2, i = i ? Math.ceil(n / i) * i : n, n = t._limitZoom(e + (0 < this._delta ? i : -i)) - e; this._delta = 0, this._startTime = null, n && ("center" === t.options.scrollWheelZoom ? t.setZoom(e + n) : t.setZoomAround(this._lastMousePos, e + n)) } })), kt = (A.addInitHook("addHandler", "scrollWheelZoom", Et), A.mergeOptions({ tapHold: b.touchNative && b.safari && b.mobile, tapTolerance: 15 }), n.extend({ addHooks: function () { S(this._map._container, "touchstart", this._onDown, this) }, removeHooks: function () { k(this._map._container, "touchstart", this._onDown, this) }, _onDown: function (t) { var e; clearTimeout(this._holdTimeout), 1 === t.touches.length && (e = t.touches[0], this._startPos = this._newPos = new p(e.clientX, e.clientY), this._holdTimeout = setTimeout(a(function () { this._cancel(), this._isTapValid() && (S(document, "touchend", O), S(document, "touchend touchcancel", this._cancelClickPrevent), this._simulateEvent("contextmenu", e)) }, this), 600), S(document, "touchend touchcancel contextmenu", this._cancel, this), S(document, "touchmove", this._onMove, this)) }, _cancelClickPrevent: function t() { k(document, "touchend", O), k(document, "touchend touchcancel", t) }, _cancel: function () { clearTimeout(this._holdTimeout), k(document, "touchend touchcancel contextmenu", this._cancel, this), k(document, "touchmove", this._onMove, this) }, _onMove: function (t) { t = t.touches[0]; this._newPos = new p(t.clientX, t.clientY) }, _isTapValid: function () { return this._newPos.distanceTo(this._startPos) <= this._map.options.tapTolerance }, _simulateEvent: function (t, e) { t = new MouseEvent(t, { bubbles: !0, cancelable: !0, view: window, screenX: e.screenX, screenY: e.screenY, clientX: e.clientX, clientY: e.clientY }); t._simulated = !0, e.target.dispatchEvent(t) } })), Ot = (A.addInitHook("addHandler", "tapHold", kt), A.mergeOptions({ touchZoom: b.touch, bounceAtZoomLimits: !0 }), n.extend({ addHooks: function () { M(this._map._container, "leaflet-touch-zoom"), S(this._map._container, "touchstart", this._onTouchStart, this) }, removeHooks: function () { z(this._map._container, "leaflet-touch-zoom"), k(this._map._container, "touchstart", this._onTouchStart, this) }, _onTouchStart: function (t) { var e, i, n = this._map; !t.touches || 2 !== t.touches.length || n._animatingZoom || this._zooming || (e = n.mouseEventToContainerPoint(t.touches[0]), i = n.mouseEventToContainerPoint(t.touches[1]), this._centerPoint = n.getSize()._divideBy(2), this._startLatLng = n.containerPointToLatLng(this._centerPoint), "center" !== n.options.touchZoom && (this._pinchStartLatLng = n.containerPointToLatLng(e.add(i)._divideBy(2))), this._startDist = e.distanceTo(i), this._startZoom = n.getZoom(), this._moved = !1, this._zooming = !0, n._stop(), S(document, "touchmove", this._onTouchMove, this), S(document, "touchend touchcancel", this._onTouchEnd, this), O(t)) }, _onTouchMove: function (t) { if (t.touches && 2 === t.touches.length && this._zooming) { var e = this._map, i = e.mouseEventToContainerPoint(t.touches[0]), n = e.mouseEventToContainerPoint(t.touches[1]), o = i.distanceTo(n) / this._startDist; if (this._zoom = e.getScaleZoom(o, this._startZoom), !e.options.bounceAtZoomLimits && (this._zoom < e.getMinZoom() && o < 1 || this._zoom > e.getMaxZoom() && 1 < o) && (this._zoom = e._limitZoom(this._zoom)), "center" === e.options.touchZoom) { if (this._center = this._startLatLng, 1 == o) return } else { i = i._add(n)._divideBy(2)._subtract(this._centerPoint); if (1 == o && 0 === i.x && 0 === i.y) return; this._center = e.unproject(e.project(this._pinchStartLatLng, this._zoom).subtract(i), this._zoom) } this._moved || (e._moveStart(!0, !1), this._moved = !0), r(this._animRequest); n = a(e._move, e, this._center, this._zoom, { pinch: !0, round: !1 }, void 0); this._animRequest = x(n, this, !0), O(t) } }, _onTouchEnd: function () { this._moved && this._zooming ? (this._zooming = !1, r(this._animRequest), k(document, "touchmove", this._onTouchMove, this), k(document, "touchend touchcancel", this._onTouchEnd, this), this._map.options.zoomAnimation ? this._map._animateZoom(this._center, this._map._limitZoom(this._zoom), !0, this._map.options.zoomSnap) : this._map._resetView(this._center, this._map._limitZoom(this._zoom))) : this._zooming = !1 } })), Xi = (A.addInitHook("addHandler", "touchZoom", Ot), A.BoxZoom = _t, A.DoubleClickZoom = Ct, A.Drag = Zt, A.Keyboard = St, A.ScrollWheelZoom = Et, A.TapHold = kt, A.TouchZoom = Ot, t.Bounds = f, t.Browser = b, t.CRS = ot, t.Canvas = Fi, t.Circle = vi, t.CircleMarker = gi, t.Class = et, t.Control = B, t.DivIcon = Ri, t.DivOverlay = Ai, t.DomEvent = mt, t.DomUtil = pt, t.Draggable = Xe, t.Evented = it, t.FeatureGroup = ci, t.GeoJSON = wi, t.GridLayer = Ni, t.Handler = n, t.Icon = di, t.ImageOverlay = Ei, t.LatLng = v, t.LatLngBounds = s, t.Layer = o, t.LayerGroup = ui, t.LineUtil = vt, t.Map = A, t.Marker = mi, t.Mixin = ft, t.Path = fi, t.Point = p, t.PolyUtil = gt, t.Polygon = xi, t.Polyline = yi, t.Popup = Bi, t.PosAnimation = Fe, t.Projection = wt, t.Rectangle = Yi, t.Renderer = Wi, t.SVG = Gi, t.SVGOverlay = Oi, t.TileLayer = Di, t.Tooltip = Ii, t.Transformation = at, t.Util = tt, t.VideoOverlay = ki, t.bind = a, t.bounds = _, t.canvas = Ui, t.circle = function (t, e, i) { return new vi(t, e, i) }, t.circleMarker = function (t, e) { return new gi(t, e) }, t.control = Ue, t.divIcon = function (t) { return new Ri(t) }, t.extend = l, t.featureGroup = function (t, e) { return new ci(t, e) }, t.geoJSON = Si, t.geoJson = Mt, t.gridLayer = function (t) { return new Ni(t) }, t.icon = function (t) { return new di(t) }, t.imageOverlay = function (t, e, i) { return new Ei(t, e, i) }, t.latLng = w, t.latLngBounds = g, t.layerGroup = function (t, e) { return new ui(t, e) }, t.map = function (t, e) { return new A(t, e) }, t.marker = function (t, e) { return new mi(t, e) }, t.point = m, t.polygon = function (t, e) { return new xi(t, e) }, t.polyline = function (t, e) { return new yi(t, e) }, t.popup = function (t, e) { return new Bi(t, e) }, t.rectangle = function (t, e) { return new Yi(t, e) }, t.setOptions = c, t.stamp = h, t.svg = Ki, t.svgOverlay = function (t, e, i) { return new Oi(t, e, i) }, t.tileLayer = ji, t.tooltip = function (t, e) { return new Ii(t, e) }, t.transformation = ht, t.version = "1.9.4", t.videoOverlay = function (t, e, i) { return new ki(t, e, i) }, window.L); t.noConflict = function () { return window.L = Xi, this }, window.L = t }); +//# sourceMappingURL=leaflet.js.map diff --git a/public/js/veplayer.js b/public/js/veplayer.js new file mode 100644 index 0000000..a448bc1 --- /dev/null +++ b/public/js/veplayer.js @@ -0,0 +1 @@ +!function(e,A){"object"==typeof exports&&"undefined"!=typeof module?A(exports):"function"==typeof define&&define.amd?define(["exports"],A):A((e="undefined"!=typeof globalThis?globalThis:e||self).VePlayer={})}(this,(function(e){"use strict";var A=function(e){return e.H265="h265",e.H264="h264",e}(A||{}),t=function(e){return e.SoftFirst="soft-first",e.H264First="h264-first",e}(t||{}),n=function(e){return e.Software="software",e.Hardware="hardware",e}(n||{}),r="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var o=function(e){return e&&e.Math==Math&&e},a=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof r&&r)||function(){return this}()||r||Function("return this")(),s=function(e){try{return!!e()}catch(A){return!0}},g=!s((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),c=g,l=Function.prototype,u=l.apply,I=l.call,h="object"==typeof Reflect&&Reflect.apply||(c?I.bind(u):function(){return I.apply(u,arguments)}),C=g,d=Function.prototype,E=d.call,f=C&&d.bind.bind(E,E),B=C?f:function(e){return function(){return E.apply(e,arguments)}},Q=B,p=Q({}.toString),v=Q("".slice),y=function(e){return v(p(e),8,-1)},m=y,D=B,w=function(e){if("Function"===m(e))return D(e)},R="object"==typeof document&&document.all,k={all:R,IS_HTMLDDA:void 0===R&&void 0!==R},S=k.all,M=k.IS_HTMLDDA?function(e){return"function"==typeof e||e===S}:function(e){return"function"==typeof e},G={},_=!s((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]})),b=g,T=Function.prototype.call,F=b?T.bind(T):function(){return T.apply(T,arguments)},N={},L={}.propertyIsEnumerable,U=Object.getOwnPropertyDescriptor,K=U&&!L.call({1:2},1);N.f=K?function(e){var A=U(this,e);return!!A&&A.enumerable}:L;var x,Y,P=function(e,A){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:A}},H=s,J=y,O=Object,z=B("".split),j=H((function(){return!O("z").propertyIsEnumerable(0)}))?function(e){return"String"==J(e)?z(e,""):O(e)}:O,X=function(e){return null==e},q=X,V=TypeError,W=function(e){if(q(e))throw V("Can't call method on "+e);return e},Z=j,$=W,ee=function(e){return Z($(e))},Ae=M,te=k.all,ne=k.IS_HTMLDDA?function(e){return"object"==typeof e?null!==e:Ae(e)||e===te}:function(e){return"object"==typeof e?null!==e:Ae(e)},re={},ie=re,oe=a,ae=M,se=function(e){return ae(e)?e:void 0},ge=function(e,A){return arguments.length<2?se(ie[e])||se(oe[e]):ie[e]&&ie[e][A]||oe[e]&&oe[e][A]},ce=B({}.isPrototypeOf),le="undefined"!=typeof navigator&&String(navigator.userAgent)||"",ue=a,Ie=le,he=ue.process,Ce=ue.Deno,de=he&&he.versions||Ce&&Ce.version,Ee=de&&de.v8;Ee&&(Y=(x=Ee.split("."))[0]>0&&x[0]<4?1:+(x[0]+x[1])),!Y&&Ie&&(!(x=Ie.match(/Edge\/(\d+)/))||x[1]>=74)&&(x=Ie.match(/Chrome\/(\d+)/))&&(Y=+x[1]);var fe=Y,Be=fe,Qe=s,pe=a.String,ve=!!Object.getOwnPropertySymbols&&!Qe((function(){var e=Symbol();return!pe(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&Be&&Be<41})),ye=ve&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,me=ge,De=M,we=ce,Re=Object,ke=ye?function(e){return"symbol"==typeof e}:function(e){var A=me("Symbol");return De(A)&&we(A.prototype,Re(e))},Se=String,Me=function(e){try{return Se(e)}catch(A){return"Object"}},Ge=M,_e=Me,be=TypeError,Te=function(e){if(Ge(e))return e;throw be(_e(e)+" is not a function")},Fe=Te,Ne=X,Le=function(e,A){var t=e[A];return Ne(t)?void 0:Fe(t)},Ue=F,Ke=M,xe=ne,Ye=TypeError,Pe={exports:{}},He=a,Je=Object.defineProperty,Oe=function(e,A){try{Je(He,e,{value:A,configurable:!0,writable:!0})}catch(t){He[e]=A}return A},ze="__core-js_shared__",je=a[ze]||Oe(ze,{}),Xe=je;(Pe.exports=function(e,A){return Xe[e]||(Xe[e]=void 0!==A?A:{})})("versions",[]).push({version:"3.30.2",mode:"pure",copyright:"漏 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.30.2/LICENSE",source:"https://github.com/zloirock/core-js"});var qe=Pe.exports,Ve=W,We=Object,Ze=function(e){return We(Ve(e))},$e=Ze,eA=B({}.hasOwnProperty),AA=Object.hasOwn||function(e,A){return eA($e(e),A)},tA=B,nA=0,rA=Math.random(),iA=tA(1..toString),oA=function(e){return"Symbol("+(void 0===e?"":e)+")_"+iA(++nA+rA,36)},aA=qe,sA=AA,gA=oA,cA=ve,lA=ye,uA=a.Symbol,IA=aA("wks"),hA=lA?uA.for||uA:uA&&uA.withoutSetter||gA,CA=function(e){return sA(IA,e)||(IA[e]=cA&&sA(uA,e)?uA[e]:hA("Symbol."+e)),IA[e]},dA=F,EA=ne,fA=ke,BA=Le,QA=function(e,A){var t,n;if("string"===A&&Ke(t=e.toString)&&!xe(n=Ue(t,e)))return n;if(Ke(t=e.valueOf)&&!xe(n=Ue(t,e)))return n;if("string"!==A&&Ke(t=e.toString)&&!xe(n=Ue(t,e)))return n;throw Ye("Can't convert object to primitive value")},pA=TypeError,vA=CA("toPrimitive"),yA=function(e,A){if(!EA(e)||fA(e))return e;var t,n=BA(e,vA);if(n){if(void 0===A&&(A="default"),t=dA(n,e,A),!EA(t)||fA(t))return t;throw pA("Can't convert object to primitive value")}return void 0===A&&(A="number"),QA(e,A)},mA=ke,DA=function(e){var A=yA(e,"string");return mA(A)?A:A+""},wA=ne,RA=a.document,kA=wA(RA)&&wA(RA.createElement),SA=function(e){return kA?RA.createElement(e):{}},MA=SA,GA=!_&&!s((function(){return 7!=Object.defineProperty(MA("div"),"a",{get:function(){return 7}}).a})),_A=_,bA=F,TA=N,FA=P,NA=ee,LA=DA,UA=AA,KA=GA,xA=Object.getOwnPropertyDescriptor;G.f=_A?xA:function(e,A){if(e=NA(e),A=LA(A),KA)try{return xA(e,A)}catch(t){}if(UA(e,A))return FA(!bA(TA.f,e,A),e[A])};var YA=s,PA=M,HA=/#|\.prototype\./,JA=function(e,A){var t=zA[OA(e)];return t==XA||t!=jA&&(PA(A)?YA(A):!!A)},OA=JA.normalize=function(e){return String(e).replace(HA,".").toLowerCase()},zA=JA.data={},jA=JA.NATIVE="N",XA=JA.POLYFILL="P",qA=JA,VA=Te,WA=g,ZA=w(w.bind),$A=function(e,A){return VA(e),void 0===A?e:WA?ZA(e,A):function(){return e.apply(A,arguments)}},et={},At=_&&s((function(){return 42!=Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype})),tt=ne,nt=String,rt=TypeError,it=function(e){if(tt(e))return e;throw rt(nt(e)+" is not an object")},ot=_,at=GA,st=At,gt=it,ct=DA,lt=TypeError,ut=Object.defineProperty,It=Object.getOwnPropertyDescriptor,ht="enumerable",Ct="configurable",dt="writable";et.f=ot?st?function(e,A,t){if(gt(e),A=ct(A),gt(t),"function"==typeof e&&"prototype"===A&&"value"in t&&dt in t&&!t[dt]){var n=It(e,A);n&&n[dt]&&(e[A]=t.value,t={configurable:Ct in t?t[Ct]:n[Ct],enumerable:ht in t?t[ht]:n[ht],writable:!1})}return ut(e,A,t)}:ut:function(e,A,t){if(gt(e),A=ct(A),gt(t),at)try{return ut(e,A,t)}catch(n){}if("get"in t||"set"in t)throw lt("Accessors not supported");return"value"in t&&(e[A]=t.value),e};var Et=et,ft=P,Bt=_?function(e,A,t){return Et.f(e,A,ft(1,t))}:function(e,A,t){return e[A]=t,e},Qt=a,pt=h,vt=w,yt=M,mt=G.f,Dt=qA,wt=re,Rt=$A,kt=Bt,St=AA,Mt=function(e){var A=function(t,n,r){if(this instanceof A){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return pt(e,this,arguments)};return A.prototype=e.prototype,A},Gt=function(e,A){var t,n,r,i,o,a,s,g,c,l=e.target,u=e.global,I=e.stat,h=e.proto,C=u?Qt:I?Qt[l]:(Qt[l]||{}).prototype,d=u?wt:wt[l]||kt(wt,l,{})[l],E=d.prototype;for(i in A)n=!(t=Dt(u?i:l+(I?".":"#")+i,e.forced))&&C&&St(C,i),a=d[i],n&&(s=e.dontCallGetSet?(c=mt(C,i))&&c.value:C[i]),o=n&&s?s:A[i],n&&typeof a==typeof o||(g=e.bind&&n?Rt(o,Qt):e.wrap&&n?Mt(o):h&&yt(o)?vt(o):o,(e.sham||o&&o.sham||a&&a.sham)&&kt(g,"sham",!0),kt(d,i,g),h&&(St(wt,r=l+"Prototype")||kt(wt,r,{}),kt(wt[r],i,o),e.real&&E&&(t||!E[i])&&kt(E,i,o)))},_t=y,bt=Array.isArray||function(e){return"Array"==_t(e)},Tt=Math.ceil,Ft=Math.floor,Nt=Math.trunc||function(e){var A=+e;return(A>0?Ft:Tt)(A)},Lt=Nt,Ut=function(e){var A=+e;return A!=A||0===A?0:Lt(A)},Kt=Ut,xt=Math.min,Yt=function(e){return e>0?xt(Kt(e),9007199254740991):0},Pt=Yt,Ht=function(e){return Pt(e.length)},Jt=TypeError,Ot=function(e){if(e>9007199254740991)throw Jt("Maximum allowed index exceeded");return e},zt=DA,jt=et,Xt=P,qt=function(e,A,t){var n=zt(A);n in e?jt.f(e,n,Xt(0,t)):e[n]=t},Vt={};Vt[CA("toStringTag")]="z";var Wt="[object z]"===String(Vt),Zt=Wt,$t=M,en=y,An=CA("toStringTag"),tn=Object,nn="Arguments"==en(function(){return arguments}()),rn=Zt?en:function(e){var A,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,A){try{return e[A]}catch(t){}}(A=tn(e),An))?t:nn?en(A):"Object"==(n=en(A))&&$t(A.callee)?"Arguments":n},on=M,an=je,sn=B(Function.toString);on(an.inspectSource)||(an.inspectSource=function(e){return sn(e)});var gn=an.inspectSource,cn=B,ln=s,un=M,In=rn,hn=gn,Cn=function(){},dn=[],En=ge("Reflect","construct"),fn=/^\s*(?:class|function)\b/,Bn=cn(fn.exec),Qn=!fn.exec(Cn),pn=function(e){if(!un(e))return!1;try{return En(Cn,dn,e),!0}catch(A){return!1}},vn=function(e){if(!un(e))return!1;switch(In(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Qn||!!Bn(fn,hn(e))}catch(A){return!0}};vn.sham=!0;var yn=!En||ln((function(){var e;return pn(pn.call)||!pn(Object)||!pn((function(){e=!0}))||e}))?vn:pn,mn=bt,Dn=yn,wn=ne,Rn=CA("species"),kn=Array,Sn=function(e){var A;return mn(e)&&(A=e.constructor,(Dn(A)&&(A===kn||mn(A.prototype))||wn(A)&&null===(A=A[Rn]))&&(A=void 0)),void 0===A?kn:A},Mn=function(e,A){return new(Sn(e))(0===A?0:A)},Gn=s,_n=fe,bn=CA("species"),Tn=function(e){return _n>=51||!Gn((function(){var A=[];return(A.constructor={})[bn]=function(){return{foo:1}},1!==A[e](Boolean).foo}))},Fn=Gt,Nn=s,Ln=bt,Un=ne,Kn=Ze,xn=Ht,Yn=Ot,Pn=qt,Hn=Mn,Jn=Tn,On=fe,zn=CA("isConcatSpreadable"),jn=On>=51||!Nn((function(){var e=[];return e[zn]=!1,e.concat()[0]!==e})),Xn=function(e){if(!Un(e))return!1;var A=e[zn];return void 0!==A?!!A:Ln(e)};Fn({target:"Array",proto:!0,arity:1,forced:!jn||!Jn("concat")},{concat:function(e){var A,t,n,r,i,o=Kn(this),a=Hn(o,0),s=0;for(A=-1,n=arguments.length;Aa;)if((r=i[a++])!=r)return!0}else for(;o>a;a++)if((e||a in i)&&i[a]===t)return e||a||0;return!e&&-1}},ar={includes:or(!0),indexOf:or(!1)},sr={},gr=AA,cr=ee,lr=ar.indexOf,ur=sr,Ir=B([].push),hr=function(e,A){var t,n=cr(e),r=0,i=[];for(t in n)!gr(ur,t)&&gr(n,t)&&Ir(i,t);for(;A.length>r;)gr(n,t=A[r++])&&(~lr(i,t)||Ir(i,t));return i},Cr=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],dr=hr,Er=Cr,fr=Object.keys||function(e){return dr(e,Er)},Br=_,Qr=At,pr=et,vr=it,yr=ee,mr=fr;Zn.f=Br&&!Qr?Object.defineProperties:function(e,A){vr(e);for(var t,n=yr(A),r=mr(A),i=r.length,o=0;i>o;)pr.f(e,t=r[o++],n[t]);return e};var Dr,wr=ge("document","documentElement"),Rr=oA,kr=qe("keys"),Sr=function(e){return kr[e]||(kr[e]=Rr(e))},Mr=it,Gr=Zn,_r=Cr,br=sr,Tr=wr,Fr=SA,Nr="prototype",Lr="script",Ur=Sr("IE_PROTO"),Kr=function(){},xr=function(e){return"<"+Lr+">"+e+""},Yr=function(e){e.write(xr("")),e.close();var A=e.parentWindow.Object;return e=null,A},Pr=function(){try{Dr=new ActiveXObject("htmlfile")}catch(r){}var e,A,t;Pr="undefined"!=typeof document?document.domain&&Dr?Yr(Dr):(A=Fr("iframe"),t="java"+Lr+":",A.style.display="none",Tr.appendChild(A),A.src=String(t),(e=A.contentWindow.document).open(),e.write(xr("document.F=Object")),e.close(),e.F):Yr(Dr);for(var n=_r.length;n--;)delete Pr[Nr][_r[n]];return Pr()};br[Ur]=!0;var Hr=Object.create||function(e,A){var t;return null!==e?(Kr[Nr]=Mr(e),t=new Kr,Kr[Nr]=null,t[Ur]=e):t=Pr(),void 0===A?t:Gr.f(t,A)},Jr={},Or=hr,zr=Cr.concat("length","prototype");Jr.f=Object.getOwnPropertyNames||function(e){return Or(e,zr)};var jr={},Xr=tr,qr=Ht,Vr=qt,Wr=Array,Zr=Math.max,$r=function(e,A,t){for(var n=qr(e),r=Xr(A,n),i=Xr(void 0===t?n:t,n),o=Wr(Zr(i-r,0)),a=0;rf;f++)if((a||f in C)&&(I=d(u=C[f],f,h),e))if(A)Q[f]=I;else if(I)switch(e){case 3:return!0;case 5:return u;case 6:return f;case 2:Ao(Q,u)}else switch(e){case 4:return!1;case 7:Ao(Q,u)}return i?-1:n||r?r:Q}},no={forEach:to(0),map:to(1),filter:to(2),some:to(3),every:to(4),find:to(5),findIndex:to(6),filterReject:to(7)},ro=Gt,io=a,oo=F,ao=B,so=_,go=ve,co=s,lo=AA,uo=ce,Io=it,ho=ee,Co=DA,Eo=Wn,fo=P,Bo=Hr,Qo=fr,po=Jr,vo=jr,yo=ii,mo=G,Do=et,wo=Zn,Ro=N,ko=ai,So=gi,Mo=qe,Go=sr,_o=oA,bo=CA,To=ci,Fo=Bi,No=mi,Lo=bi,Uo=qi,Ko=no.forEach,xo=Sr("hidden"),Yo="Symbol",Po="prototype",Ho=Uo.set,Jo=Uo.getterFor(Yo),Oo=Object[Po],zo=io.Symbol,jo=zo&&zo[Po],Xo=io.TypeError,qo=io.QObject,Vo=mo.f,Wo=Do.f,Zo=vo.f,$o=Ro.f,ea=ao([].push),Aa=Mo("symbols"),ta=Mo("op-symbols"),na=Mo("wks"),ra=!qo||!qo[Po]||!qo[Po].findChild,ia=so&&co((function(){return 7!=Bo(Wo({},"a",{get:function(){return Wo(this,"a",{value:7}).a}})).a}))?function(e,A,t){var n=Vo(Oo,A);n&&delete Oo[A],Wo(e,A,t),n&&e!==Oo&&Wo(Oo,A,n)}:Wo,oa=function(e,A){var t=Aa[e]=Bo(jo);return Ho(t,{type:Yo,tag:e,description:A}),so||(t.description=A),t},aa=function(e,A,t){e===Oo&&aa(ta,A,t),Io(e);var n=Co(A);return Io(t),lo(Aa,n)?(t.enumerable?(lo(e,xo)&&e[xo][n]&&(e[xo][n]=!1),t=Bo(t,{enumerable:fo(0,!1)})):(lo(e,xo)||Wo(e,xo,fo(1,{})),e[xo][n]=!0),ia(e,n,t)):Wo(e,n,t)},sa=function(e,A){Io(e);var t=ho(A),n=Qo(t).concat(ua(t));return Ko(n,(function(A){so&&!oo(ga,t,A)||aa(e,A,t[A])})),e},ga=function(e){var A=Co(e),t=oo($o,this,A);return!(this===Oo&&lo(Aa,A)&&!lo(ta,A))&&(!(t||!lo(this,A)||!lo(Aa,A)||lo(this,xo)&&this[xo][A])||t)},ca=function(e,A){var t=ho(e),n=Co(A);if(t!==Oo||!lo(Aa,n)||lo(ta,n)){var r=Vo(t,n);return!r||!lo(Aa,n)||lo(t,xo)&&t[xo][n]||(r.enumerable=!0),r}},la=function(e){var A=Zo(ho(e)),t=[];return Ko(A,(function(e){lo(Aa,e)||lo(Go,e)||ea(t,e)})),t},ua=function(e){var A=e===Oo,t=Zo(A?ta:ho(e)),n=[];return Ko(t,(function(e){!lo(Aa,e)||A&&!lo(Oo,e)||ea(n,Aa[e])})),n};go||(zo=function(){if(uo(jo,this))throw Xo("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?Eo(arguments[0]):void 0,A=_o(e),t=function(e){this===Oo&&oo(t,ta,e),lo(this,xo)&&lo(this[xo],A)&&(this[xo][A]=!1),ia(this,A,fo(1,e))};return so&&ra&&ia(Oo,A,{configurable:!0,set:t}),oa(A,e)},ko(jo=zo[Po],"toString",(function(){return Jo(this).tag})),ko(zo,"withoutSetter",(function(e){return oa(_o(e),e)})),Ro.f=ga,Do.f=aa,wo.f=sa,mo.f=ca,po.f=vo.f=la,yo.f=ua,To.f=function(e){return oa(bo(e),e)},so&&So(jo,"description",{configurable:!0,get:function(){return Jo(this).description}})),ro({global:!0,constructor:!0,wrap:!0,forced:!go,sham:!go},{Symbol:zo}),Ko(Qo(na),(function(e){Fo(e)})),ro({target:Yo,stat:!0,forced:!go},{useSetter:function(){ra=!0},useSimple:function(){ra=!1}}),ro({target:"Object",stat:!0,forced:!go,sham:!so},{create:function(e,A){return void 0===A?Bo(e):sa(Bo(e),A)},defineProperty:aa,defineProperties:sa,getOwnPropertyDescriptor:ca}),ro({target:"Object",stat:!0,forced:!go},{getOwnPropertyNames:la}),No(),Lo(zo,Yo),Go[xo]=!0;var Ia=ve&&!!Symbol.for&&!!Symbol.keyFor,ha=Gt,Ca=ge,da=AA,Ea=Wn,fa=qe,Ba=Ia,Qa=fa("string-to-symbol-registry"),pa=fa("symbol-to-string-registry");ha({target:"Symbol",stat:!0,forced:!Ba},{for:function(e){var A=Ea(e);if(da(Qa,A))return Qa[A];var t=Ca("Symbol")(A);return Qa[A]=t,pa[t]=A,t}});var va=Gt,ya=AA,ma=ke,Da=Me,wa=Ia,Ra=qe("symbol-to-string-registry");va({target:"Symbol",stat:!0,forced:!wa},{keyFor:function(e){if(!ma(e))throw TypeError(Da(e)+" is not a symbol");if(ya(Ra,e))return Ra[e]}});var ka=B([].slice),Sa=bt,Ma=M,Ga=y,_a=Wn,ba=B([].push),Ta=Gt,Fa=ge,Na=h,La=F,Ua=B,Ka=s,xa=M,Ya=ke,Pa=ka,Ha=function(e){if(Ma(e))return e;if(Sa(e)){for(var A=e.length,t=[],n=0;n=A.length?(e.target=void 0,mg(void 0,!0)):mg("keys"==t?n:"values"==t?A[n]:[n,A[n]],!1)}),"values"),pg.Arguments=pg.Array;var kg={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Sg=a,Mg=rn,Gg=Bt,_g=hs,bg=CA("toStringTag");for(var Tg in kg){var Fg=Sg[Tg],Ng=Fg&&Fg.prototype;Ng&&Mg(Ng)!==bg&&Gg(Ng,bg,Tg),_g[Tg]=_g.Array}var Lg=Is;Bi("dispose");var Ug=Lg;Bi("asyncDispose");var Kg=Gt,xg=B,Yg=ge("Symbol"),Pg=Yg.keyFor,Hg=xg(Yg.prototype.valueOf);Kg({target:"Symbol",stat:!0},{isRegistered:function(e){try{return void 0!==Pg(Hg(e))}catch(A){return!1}}});for(var Jg=Gt,Og=qe,zg=ge,jg=B,Xg=ke,qg=CA,Vg=zg("Symbol"),Wg=Vg.isWellKnown,Zg=zg("Object","getOwnPropertyNames"),$g=jg(Vg.prototype.valueOf),ec=Og("wks"),Ac=0,tc=Zg(Vg),nc=tc.length;Ac=a?e?"":void 0:(n=uc(i,o))<55296||n>56319||o+1===a||(r=uc(i,o+1))<56320||r>57343?e?lc(i,o):n:e?Ic(i,o,o+2):r-56320+(n-55296<<10)+65536}},Cc={codeAt:hc(!1),charAt:hc(!0)},dc=Cc.charAt,Ec=Wn,fc=qi,Bc=fg,Qc=Bg,pc="String Iterator",vc=fc.set,yc=fc.getterFor(pc);Bc(String,"String",(function(e){vc(this,{type:pc,string:Ec(e),index:0})}),(function(){var e,A=yc(this),t=A.string,n=A.index;return n>=t.length?Qc(void 0,!0):(e=dc(t,n),A.index+=e.length,Qc(e,!1))}));var mc=ci.f("iterator"),Dc=i(mc);function wc(e){return(wc="function"==typeof oc&&"symbol"==typeof Dc?function(e){return typeof e}:function(e){return e&&"function"==typeof oc&&e.constructor===oc&&e!==oc.prototype?"symbol":typeof e})(e)}var Rc={exports:{}},kc=Gt,Sc=_,Mc=et.f;kc({target:"Object",stat:!0,forced:Object.defineProperty!==Mc,sham:!Sc},{defineProperty:Mc});var Gc=re.Object,_c=Rc.exports=function(e,A,t){return Gc.defineProperty(e,A,t)};Gc.defineProperty.sham&&(_c.sham=!0);var bc=Rc.exports,Tc=i(bc);Gt({target:"Object",stat:!0,sham:!_},{create:Hr});var Fc=re.Object,Nc=i((function(e,A){return Fc.create(e,A)})),Lc=Ze,Uc=Ss,Kc=ps;Gt({target:"Object",stat:!0,forced:s((function(){Uc(1)})),sham:!Kc},{getPrototypeOf:function(e){return Uc(Lc(e))}});var xc=re.Object.getPrototypeOf,Yc=i(xc),Pc=s,Hc=function(e,A){var t=[][e];return!!t&&Pc((function(){t.call(null,A||function(){return 1},1)}))},Jc=no.forEach,Oc=Hc("forEach")?[].forEach:function(e){return Jc(this,e,arguments.length>1?arguments[1]:void 0)};Gt({target:"Array",proto:!0,forced:[].forEach!=Oc},{forEach:Oc});var zc=re,jc=function(e){return zc[e+"Prototype"]},Xc=jc("Array").forEach,qc=rn,Vc=AA,Wc=ce,Zc=Xc,$c=Array.prototype,el={DOMTokenList:!0,NodeList:!0},Al=i((function(e){var A=e.forEach;return e===$c||Wc($c,e)&&A===$c.forEach||Vc(el,qc(e))?Zc:A})),tl=_,nl=bt,rl=TypeError,il=Object.getOwnPropertyDescriptor,ol=tl&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(WtA){return WtA instanceof TypeError}}()?function(e,A){if(nl(e)&&!il(e,"length").writable)throw rl("Cannot set read only .length");return e.length=A}:function(e,A){return e.length=A},al=Ze,sl=Ht,gl=ol,cl=Ot;Gt({target:"Array",proto:!0,arity:1,forced:s((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(WtA){return WtA instanceof TypeError}}()},{push:function(e){var A=al(this),t=sl(A),n=arguments.length;cl(t+n);for(var r=0;ri;i++)if((a=E(e[i]))&&hu(Qu,a))return a;return new Bu(!1)}n=Cu(e,r)}for(s=u?e.next:n.next;!(g=gu(s,n)).done;){try{a=E(g.value)}catch(WtA){Eu(n,"throw",WtA)}if("object"==typeof a&&a&&hu(Qu,a))return a}return new Bu(!1)},vu=Wn,yu=Gt,mu=ce,Du=Ss,wu=Ag,Ru=function(e,A,t){for(var n=Dl(A),r=Rl.f,i=wl.f,o=0;o2&&Gu(t,arguments[2]);var r=[];return bu(e,Lu,{that:r}),Su(t,"errors",r),t};wu?wu(Uu,Nu):Ru(Uu,Nu,{name:!0});var Ku=Uu.prototype=ku(Nu.prototype,{constructor:Mu(1,Uu),message:Mu(1,""),name:Mu(1,"AggregateError")});yu({global:!0,constructor:!0,arity:2},{AggregateError:Uu});var xu,Yu,Pu,Hu,Ju="undefined"!=typeof process&&"process"==y(process),Ou=ge,zu=gi,ju=_,Xu=CA("species"),qu=function(e){var A=Ou(e);ju&&A&&!A[Xu]&&zu(A,Xu,{configurable:!0,get:function(){return this}})},Vu=ce,Wu=TypeError,Zu=function(e,A){if(Vu(A,e))return e;throw Wu("Incorrect invocation")},$u=yn,eI=Me,AI=TypeError,tI=function(e){if($u(e))return e;throw AI(eI(e)+" is not a constructor")},nI=it,rI=tI,iI=X,oI=CA("species"),aI=function(e,A){var t,n=nI(e).constructor;return void 0===n||iI(t=nI(n)[oI])?A:rI(t)},sI=TypeError,gI=function(e,A){if(e=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(a&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&t.call(r,"finallyLoc")&&this.prev=0;--A){var t=this.tryEntries[A];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),y(t),l}},catch:function(e){for(var A=this.tryEntries.length-1;A>=0;--A){var t=this.tryEntries[A];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var r=n.arg;y(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,A,t){return this.delegate={iterator:D(e),resultName:A,nextLoc:t},"next"===this.method&&(this.arg=void 0),l}},e}function oE(e,A,t,n,r,i,o){try{var a=e[i](o),s=a.value}catch(WtA){return void t(WtA)}a.done?A(s):kd.resolve(s).then(n,r)}function aE(e){return function(){var A=this,t=arguments;return new kd((function(n,r){var i=e.apply(A,t);function o(e){oE(i,n,r,o,a,"next",e)}function a(e){oE(i,n,r,o,a,"throw",e)}o(void 0)}))}}Gt({target:"Array",stat:!0},{isArray:bt});var sE=i(re.Array.isArray);function gE(e,A){(null==A||A>e.length)&&(A=e.length);for(var t=0,n=new Array(A);t1?arguments[1]:void 0,i=void 0!==r;i&&(r=hE(r,n>2?arguments[2]:void 0));var o,a,s,g,c,l,u=yE(A),I=0;if(!u||this===mE&&fE(u))for(o=QE(A),a=t?new this(o):mE(o);o>I;I++)l=i?r(A[I],I):A[I],pE(a,I,l);else for(c=(g=vE(A,u)).next,a=t?new this:[];!(s=CE(c,g)).done;I++)l=i?EE(g,r,[s.value,I],!0):s.value,pE(a,I,l);return a.length=I,a},wE=DE;Gt({target:"Array",stat:!0,forced:!GC((function(e){Array.from(e)}))},{from:wE});var RE=re.Array.from,kE=i(RE);function SE(e,A){var t;if(e){if("string"==typeof e)return gE(e,A);var n=rE(t=Object.prototype.toString.call(e)).call(t,8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?kE(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gE(e,A):void 0}}function ME(e){return function(e){if(sE(e))return gE(e)}(e)||function(e){if(void 0!==oc&&null!=lE(e)||null!=e["@@iterator"])return kE(e)}(e)||SE(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function GE(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")}var _E=ci.f("toPrimitive"),bE=i(_E);function TE(e){var A=function(e,A){if("object"!==wc(e)||null===e)return e;var t=e[bE];if(void 0!==t){var n=t.call(e,A||"default");if("object"!==wc(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(e)}(e,"string");return"symbol"===wc(A)?A:String(A)}function FE(e,A){for(var t=0;t1?arguments[1]:void 0;return JE?HE(this,e,A)||0:YE(this,e,A)}});var OE=jc("Array").indexOf,zE=ce,jE=OE,XE=Array.prototype,qE=function(e){var A=e.indexOf;return e===XE||zE(XE,e)&&A===XE.indexOf?jE:A},VE=i(qE),WE=Ze,ZE=fr;Gt({target:"Object",stat:!0,forced:s((function(){ZE(1)}))},{keys:function(e){return ZE(WE(e))}});var $E=re.Object.keys,ef=i($E);function Af(e,A){if(null==e)return{};var t,n,r=function(e,A){if(null==e)return{};var t,n,r={},i=ef(e);for(n=0;n=0||(r[t]=e[t]);return r}(e,A);if(KE){var i=KE(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}var tf=no.filter;Gt({target:"Array",proto:!0,forced:!Tn("filter")},{filter:function(e){return tf(this,e,arguments.length>1?arguments[1]:void 0)}});var nf=jc("Array").filter,rf=ce,of=nf,af=Array.prototype,sf=function(e){var A=e.filter;return e===af||rf(af,e)&&A===af.filter?of:A},gf=i(sf),cf={exports:{}},lf=Gt,uf=s,If=ee,hf=G.f,Cf=_;lf({target:"Object",stat:!0,forced:!Cf||uf((function(){hf(1)})),sham:!Cf},{getOwnPropertyDescriptor:function(e,A){return hf(If(e),A)}});var df=re.Object,Ef=cf.exports=function(e,A){return df.getOwnPropertyDescriptor(e,A)};df.getOwnPropertyDescriptor.sham&&(Ef.sham=!0);var ff=cf.exports,Bf=i(ff),Qf=yl,pf=ee,vf=G,yf=qt;Gt({target:"Object",stat:!0,sham:!_},{getOwnPropertyDescriptors:function(e){for(var A,t,n=pf(e),r=vf.f,i=Qf(n),o={},a=0;i.length>a;)void 0!==(t=r(n,A=i[a++]))&&yf(o,A,t);return o}});var mf=re.Object.getOwnPropertyDescriptors,Df=i(mf),wf={exports:{}},Rf=Gt,kf=_,Sf=Zn.f;Rf({target:"Object",stat:!0,forced:Object.defineProperties!==Sf,sham:!kf},{defineProperties:Sf});var Mf=re.Object,Gf=wf.exports=function(e,A){return Mf.defineProperties(e,A)};Mf.defineProperties.sham&&(Gf.sham=!0);var _f=wf.exports,bf=i(_f);function Tf(e,A){var t=ef(e);if(KE){var n=KE(e);A&&(n=gf(n).call(n,(function(A){return Bf(e,A).enumerable}))),Cl(t).apply(t,n)}return t}function Ff(e){for(var A=1;A1?arguments[1]:void 0)}});var Of=jc("Array").find,zf=ce,jf=Of,Xf=Array.prototype,qf=i((function(e){var A=e.find;return e===Xf||zf(Xf,e)&&A===Xf.find?jf:A})),Vf={exports:{}},Wf=s((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);Object.isExtensible(e)&&Object.defineProperty(e,"a",{value:8})}})),Zf=s,$f=ne,eB=y,AB=Wf,tB=Object.isExtensible,nB=Zf((function(){tB(1)}))||AB?function(e){return!!$f(e)&&((!AB||"ArrayBuffer"!=eB(e))&&(!tB||tB(e)))}:tB,rB=!s((function(){return Object.isExtensible(Object.preventExtensions({}))})),iB=Gt,oB=B,aB=sr,sB=ne,gB=AA,cB=et.f,lB=Jr,uB=jr,IB=nB,hB=rB,CB=!1,dB=oA("meta"),EB=0,fB=function(e){cB(e,dB,{value:{objectID:"O"+EB++,weakData:{}}})},BB=Vf.exports={enable:function(){BB.enable=function(){},CB=!0;var e=lB.f,A=oB([].splice),t={};t[dB]=1,e(t).length&&(lB.f=function(t){for(var n=e(t),r=0,i=n.length;r1?arguments[1]:void 0);A=A?A.next:t.first;)for(n(A.value,A.key,this);A&&A.removed;)A=A.previous},has:function(e){return!!s(this,e)}}),YB(i,t?{get:function(e){var A=s(this,e);return A&&A.value},set:function(e,A){return a(this,0===e?0:e,A)}}:{add:function(e){return a(this,e=0===e?0:e,e)}}),qB&&xB(i,"size",{configurable:!0,get:function(){return o(this).size}}),r},setStrong:function(e,A,t){var n=A+" Iterator",r=ZB(A),i=ZB(n);zB(e,A,(function(e,A){WB(this,{type:n,target:e,state:r(e),kind:A,last:void 0})}),(function(){for(var e=i(this),A=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?jB("keys"==A?t.key:"values"==A?t.value:[t.key,t.value],!1):(e.target=void 0,jB(void 0,!0))}),t?"entries":"values",!t,!0),XB(A)}};NB("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),$B);var eQ=re.Map,AQ=$A,tQ=F,nQ=Te,rQ=tI,iQ=X,oQ=pu,aQ=[].push,sQ=function(e){var A,t,n,r,i=arguments.length,o=i>1?arguments[1]:void 0;return rQ(this),(A=void 0!==o)&&nQ(o),iQ(e)?new this:(t=[],A?(n=0,r=AQ(o,i>2?arguments[2]:void 0),oQ(e,(function(e){tQ(aQ,t,r(e,n++))}))):oQ(e,aQ,{that:t}),new this(t))};Gt({target:"Map",stat:!0,forced:!0},{from:sQ});var gQ=ka,cQ=function(){return new this(gQ(arguments))};Gt({target:"Map",stat:!0,forced:!0},{of:cQ});var lQ=Me,uQ=function(e){if("object"==typeof e&&"size"in e&&"has"in e&&"get"in e&&"set"in e&&"delete"in e&&"entries"in e)return e;throw TypeError(lQ(e)+" is not a map")},IQ=function(e,A){return 1==A?function(A,t){return A[e](t)}:function(A,t,n){return A[e](t,n)}},hQ=IQ,CQ=ge("Map"),dQ={Map:CQ,set:hQ("set",2),get:hQ("get",1),has:hQ("has",1),remove:hQ("delete",1),proto:CQ.prototype},EQ=uQ,fQ=dQ.remove;Gt({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,A=EQ(this),t=!0,n=0,r=arguments.length;n1?arguments[1]:void 0);return!1!==SQ(A,(function(e,n){if(!t(e,n,A))return!1}),!0)}});var MQ=$A,GQ=uQ,_Q=wQ,bQ=dQ.Map,TQ=dQ.set;Gt({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var A=GQ(this),t=MQ(e,arguments.length>1?arguments[1]:void 0),n=new bQ;return _Q(A,(function(e,r){t(e,r,A)&&TQ(n,r,e)})),n}});var FQ=$A,NQ=uQ,LQ=wQ;Gt({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var A=NQ(this),t=FQ(e,arguments.length>1?arguments[1]:void 0),n=LQ(A,(function(e,n){if(t(e,n,A))return{value:e}}),!0);return n&&n.value}});var UQ=$A,KQ=uQ,xQ=wQ;Gt({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var A=KQ(this),t=UQ(e,arguments.length>1?arguments[1]:void 0),n=xQ(A,(function(e,n){if(t(e,n,A))return{key:n}}),!0);return n&&n.key}});var YQ=Gt,PQ=F,HQ=M,JQ=Te,OQ=pu,zQ=dQ.Map,jQ=B([].push);YQ({target:"Map",stat:!0,forced:!0},{groupBy:function(e,A){var t=new(HQ(this)?this:zQ);JQ(A);var n=JQ(t.has),r=JQ(t.get),i=JQ(t.set);return OQ(e,(function(e){var o=A(e);PQ(n,t,o)?jQ(PQ(r,t,o),e):PQ(i,t,o,[e])})),t}});var XQ=function(e,A){return e===A||e!=e&&A!=A},qQ=uQ,VQ=wQ;Gt({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===VQ(qQ(this),(function(A){if(XQ(A,e))return!0}),!0)}});var WQ=F,ZQ=pu,$Q=M,ep=Te,Ap=dQ.Map;Gt({target:"Map",stat:!0,forced:!0},{keyBy:function(e,A){var t=new($Q(this)?this:Ap);ep(A);var n=ep(t.set);return ZQ(e,(function(e){WQ(n,t,A(e),e)})),t}});var tp=uQ,np=wQ;Gt({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var A=np(tp(this),(function(A,t){if(A===e)return{key:t}}),!0);return A&&A.key}});var rp=$A,ip=uQ,op=wQ,ap=dQ.Map,sp=dQ.set;Gt({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var A=ip(this),t=rp(e,arguments.length>1?arguments[1]:void 0),n=new ap;return op(A,(function(e,r){sp(n,t(e,r,A),e)})),n}});var gp=$A,cp=uQ,lp=wQ,up=dQ.Map,Ip=dQ.set;Gt({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var A=cp(this),t=gp(e,arguments.length>1?arguments[1]:void 0),n=new up;return lp(A,(function(e,r){Ip(n,r,t(e,r,A))})),n}});var hp=uQ,Cp=pu,dp=dQ.set;Gt({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var A=hp(this),t=arguments.length,n=0;n1?arguments[1]:void 0);return!0===yp(A,(function(e,n){if(t(e,n,A))return!0}),!0)}});var mp=Te,Dp=uQ,wp=TypeError,Rp=dQ.get,kp=dQ.has,Sp=dQ.set;Gt({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,A){var t=Dp(this),n=arguments.length;mp(A);var r=kp(t,e);if(!r&&n<3)throw wp("Updating absent value");var i=r?Rp(t,e):mp(n>2?arguments[2]:void 0)(e,t);return Sp(t,e,A(i,e,t)),t}});var Mp=F,Gp=Te,_p=M,bp=it,Tp=TypeError,Fp=function(e,A){var t,n=bp(this),r=Gp(n.get),i=Gp(n.has),o=Gp(n.set),a=arguments.length>2?arguments[2]:void 0;if(!_p(A)&&!_p(a))throw Tp("At least one callback required");return Mp(i,n,e)?(t=Mp(r,n,e),_p(A)&&(t=A(t),Mp(o,n,e,t))):_p(a)&&(t=a(),Mp(o,n,e,t)),t};Gt({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Fp}),Gt({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Fp});var Np=eQ,Lp=i(Np),Up=i(Np),Kp=no.map;Gt({target:"Array",proto:!0,forced:!Tn("map")},{map:function(e){return Kp(this,e,arguments.length>1?arguments[1]:void 0)}});var xp=jc("Array").map,Yp=ce,Pp=xp,Hp=Array.prototype,Jp=i((function(e){var A=e.map;return e===Hp||Yp(Hp,e)&&A===Hp.map?Pp:A})),Op=i(Rd),zp=i(qE),jp=i($E),Xp=i(nE),qp=Me,Vp=TypeError,Wp=function(e,A){if(!delete e[A])throw Vp("Cannot delete property "+qp(A)+" of "+qp(e))},Zp=Gt,$p=Ze,ev=tr,Av=Ut,tv=Ht,nv=ol,rv=Ot,iv=Mn,ov=qt,av=Wp,sv=Tn("splice"),gv=Math.max,cv=Math.min;Zp({target:"Array",proto:!0,forced:!sv},{splice:function(e,A){var t,n,r,i,o,a,s=$p(this),g=tv(s),c=ev(e,g),l=arguments.length;for(0===l?t=n=0:1===l?(t=0,n=g-c):(t=l-2,n=cv(gv(Av(A),0),g-c)),rv(g+t-n),r=iv(s,n),i=0;ig-n+t;i--)av(s,i-1)}else if(t>n)for(i=g-n;i>c;i--)a=i+t-1,(o=i+n-1)in s?s[a]=s[o]:av(s,a);for(i=0;i>>0||(Nv(Fv,t)?16:10))}:_v;Gt({global:!0,forced:parseInt!=Lv},{parseInt:Lv});var Uv=i(re.parseInt),Kv=jc("Array").keys,xv=rn,Yv=AA,Pv=ce,Hv=Kv,Jv=Array.prototype,Ov={DOMTokenList:!0,NodeList:!0},zv=i((function(e){var A=e.keys;return e===Jv||Pv(Jv,e)&&A===Jv.keys||Yv(Ov,xv(e))?Hv:A})),jv=i(sf),Xv=_,qv=B,Vv=F,Wv=s,Zv=fr,$v=ii,ey=N,Ay=Ze,ty=j,ny=Object.assign,ry=Object.defineProperty,iy=qv([].concat),oy=!ny||Wv((function(){if(Xv&&1!==ny({b:1},ny(ry({},"a",{enumerable:!0,get:function(){ry(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)return!0;var e={},A={},t=Symbol(),n="abcdefghijklmnopqrst";return e[t]=7,n.split("").forEach((function(e){A[e]=e})),7!=ny({},e)[t]||Zv(ny({},A)).join("")!=n}))?function(e,A){for(var t=Ay(e),n=arguments.length,r=1,i=$v.f,o=ey.f;n>r;)for(var a,s=ty(arguments[r++]),g=i?iy(Zv(s),i(s)):Zv(s),c=g.length,l=0;c>l;)a=g[l++],Xv&&!Vv(o,s,a)||(t[a]=s[a]);return t}:ny,ay=oy;Gt({target:"Object",stat:!0,arity:2,forced:Object.assign!==ay},{assign:ay});var sy=i(re.Object.assign),gy=i(UE),cy=i(ff),ly=i(mf),uy=i(_f),Iy=i(bc),hy=i(ic),Cy=i(mc),dy=i(dl),Ey=i(xc),fy=B,By=Te,Qy=ne,py=AA,vy=ka,yy=g,my=Function,Dy=fy([].concat),wy=fy([].join),Ry={},ky=yy?my.bind:function(e){var A=By(this),t=A.prototype,n=vy(arguments,1),r=function(){var t=Dy(n,vy(arguments));return this instanceof r?function(e,A,t){if(!py(Ry,A)){for(var n=[],r=0;re.length)&&(A=e.length);for(var t=0,n=new Array(A);t0;(n>>>=1)&&(A+=A))1&n&&(t+=A);return t},Mm=B,Gm=Yt,_m=Wn,bm=W,Tm=Mm(Sm),Fm=Mm("".slice),Nm=Math.ceil,Lm=function(e){return function(A,t,n){var r,i,o=_m(bm(A)),a=Gm(t),s=o.length,g=void 0===n?" ":_m(n);return a<=s||""==g?o:((i=Tm(g,Nm((r=a-s)/g.length))).length>r&&(i=Fm(i,0,r)),e?o+i:i+o)}},Um={start:Lm(!1),end:Lm(!0)},Km=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(le),xm=Um.start;Gt({target:"String",proto:!0,forced:Km},{padStart:function(e){return xm(this,e,arguments.length>1?arguments[1]:void 0)}});var Ym=jc("String").padStart,Pm=ce,Hm=Ym,Jm=String.prototype,Om=i((function(e){var A=e.padStart;return"string"==typeof e||e===Jm||Pm(Jm,e)&&A===Jm.padStart?Hm:A})),zm=a,jm=s,Xm=Wn,qm=Dv.trim,Vm=Ev,Wm=B("".charAt),Zm=zm.parseFloat,$m=zm.Symbol,eD=$m&&$m.iterator,AD=1/Zm(Vm+"-0")!=-1/0||eD&&!jm((function(){Zm(Object(eD))}))?function(e){var A=qm(Xm(e)),t=Zm(A);return 0===t&&"-"==Wm(A,0)?-0:t}:Zm;Gt({global:!0,forced:parseFloat!=AD},{parseFloat:AD});var tD=i(re.parseFloat),nD=Qs.PROPER,rD=s,iD=Ev,oD=Dv.trim;Gt({target:"String",proto:!0,forced:function(e){return rD((function(){return!!iD[e]()||"鈥嬄呩爭"!=="鈥嬄呩爭"[e]()||nD&&iD[e].name!==e}))}("trim")},{trim:function(){return oD(this)}});var aD=jc("String").trim,sD=ce,gD=aD,cD=String.prototype,lD=i((function(e){var A=e.trim;return"string"==typeof e||e===cD||sD(cD,e)&&A===cD.trim?gD:A})),uD=$r,ID=Math.floor,hD=function(e,A){var t=e.length,n=ID(t/2);return t<8?CD(e,A):dD(e,hD(uD(e,0,n),A),hD(uD(e,n),A),A)},CD=function(e,A){for(var t,n,r=e.length,i=1;i0;)e[n]=e[--n];n!==i++&&(e[n]=t)}return e},dD=function(e,A,t,n){for(var r=A.length,i=t.length,o=0,a=0;o3)){if(TD)return!0;if(ND)return ND<603;var e,A,t,n,r="";for(e=65;e<76;e++){switch(A=String.fromCharCode(e),e){case 66:case 69:case 70:case 72:t=3;break;case 68:case 71:t=4;break;default:t=2}for(n=0;n<47;n++)LD.push({k:A+n,v:t})}for(LD.sort((function(e,A){return A.v-e.v})),n=0;nSD(t)?1:-1}}(e)),t=RD(r),n=0;n-1,WD="color: #525252; background-color: #90ee90;",ZD="color: #525252; background-color: red;",$D="color: #525252; background-color: yellow; ",ew="%c[xgplayer]",Aw={config:{debug:VD?3:0},logInfo:function(e){for(var A,t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i=3&&(t=console).log.apply(t,xf(A=[ew,WD,e]).call(A,r))},logWarn:function(e){for(var A,t,n=arguments.length,r=new Array(n>1?n-1:0),i=1;i=1&&(t=console).warn.apply(t,xf(A=[ew,$D,e]).call(A,r))},logError:function(e){var A,t;if(!(this.config.debug<1)){for(var n=this.config.debug>=2?"trace":"error",r=arguments.length,i=new Array(r>1?r-1:0),o=1;o=A||t<0||l&&e-g>=i}function E(){var e=Date.now();if(d(e))return f(e);a=C(E,function(e){var t=e-g,n=A-(e-s);return l?Math.min(n,i-t):n}(e))}function f(e){return a=void 0,u&&n?h(e):(n=r=void 0,o)}function B(){for(var e=Date.now(),t=d(e),i=arguments.length,u=new Array(i),I=0;I0&&void 0!==arguments[0]?arguments[0]:"div",A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",r=document.createElement(e);return r.className=n,r.innerHTML=A,jp(t).forEach((function(A){var n=A,i=t[A];"video"===e||"audio"===e||"live-video"===e?i&&r.setAttribute(n,i):r.setAttribute(n,i)})),r},nw.createDomFromHtml=function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";try{var n=document.createElement("div");n.innerHTML=e;var r=n.children;return n=null,r.length>0?(r=r[0],t&&nw.addClass(r,t),A&&jp(A).forEach((function(e){r.setAttribute(e,A[e])})),r):null}catch(i){return Aw.logError("util.createDomFromHtml",i),null}},nw.hasClass=function(e,A){if(!e||!A)return!1;try{return Array.prototype.some.call(e.classList,(function(e){return e===A}))}catch(P7){var t=e.className&&"object"===am(e.className)?e.getAttribute("class"):e.className;return t&&!!t.match(new RegExp("(\\s|^)"+A+"(\\s|$)"))}},nw.addClass=function(e,A){if(e&&A)try{A.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(A){A&&e.classList.add(A)}))}catch(P7){nw.hasClass(e,A)||(e.className&&"object"===am(e.className)?e.setAttribute("class",e.getAttribute("class")+" "+A):e.className+=" "+A)}},nw.removeClass=function(e,A){if(e&&A)try{A.replace(/(^\s+|\s+$)/g,"").split(/\s+/g).forEach((function(A){A&&e.classList.remove(A)}))}catch(P7){nw.hasClass(e,A)&&A.split(/\s+/g).forEach((function(A){var t=new RegExp("(\\s|^)"+A+"(\\s|$)");e.className&&"object"===am(e.className)?e.setAttribute("class",e.getAttribute("class").replace(t," ")):e.className=e.className.replace(t," ")}))}},nw.toggleClass=function(e,A){e&&A.split(/\s+/g).forEach((function(A){nw.hasClass(e,A)?nw.removeClass(e,A):nw.addClass(e,A)}))},nw.classNames=function(){for(var e=arguments,A=[],t=function(t){if("String"===nw.typeOf(e[t]))A.push(e[t]);else if("Object"===nw.typeOf(e[t])){var n;Jp(n=jp(e[t])).call(n,(function(n){e[t][n]&&A.push(n)}))}},n=0;n0&&void 0!==arguments[0]?arguments[0]:document,t=arguments.length>1?arguments[1]:void 0;try{e=A.querySelector(t)}catch(P7){Aw.logError("util.findDom",P7),0===zp(t).call(t,"#")&&(e=A.getElementById(Xp(t).call(t,1)))}return e},nw.getCss=function(e,A){return e.currentStyle?e.currentStyle[A]:document.defaultView.getComputedStyle(e,!1)[A]},nw.padStart=function(e,A,t){for(var n=String(t),r=A>>0,i=Math.ceil(r/n.length),o=[],a=String(e);i--;)o.push(n);return o.join("").substring(0,r-a.length)+a},nw.format=function(e){if(window.isNaN(e))return"";e=Math.round(e);var A=Om(nw).call(nw,Math.floor(e/3600),2,0),t=Om(nw).call(nw,Math.floor((e-3600*A)/60),2,0),n=Om(nw).call(nw,Math.floor(e-3600*A-60*t),2,0);return("00"===A?[t,n]:[A,t,n]).join(":")},nw.event=function(e){if(e.touches){var A=e.touches[0]||e.changedTouches[0];e.clientX=A.clientX||0,e.clientY=A.clientY||0,e.offsetX=A.pageX-A.target.offsetLeft,e.offsetY=A.pageY-A.target.offsetTop}e._target=e.target||e.srcElement},nw.typeOf=function(e){return Object.prototype.toString.call(e).match(/([^\s.*]+)(?=]$)/g)[0]},nw.deepCopy=function(e,A){if("Object"===nw.typeOf(A)&&"Object"===nw.typeOf(e))return jp(A).forEach((function(t){if("Object"!==nw.typeOf(A[t])||A[t]instanceof Node)if("Array"===nw.typeOf(A[t])){var n;e[t]="Array"===nw.typeOf(e[t])?xf(n=e[t]).call(n,A[t]):A[t]}else e[t]=A[t];else void 0===e[t]||void 0===e[t]?e[t]=A[t]:nw.deepCopy(e[t],A[t])})),e},nw.deepMerge=function(e,A){var t;return Jp(t=jp(A)).call(t,(function(t){var n;"Array"===nw.typeOf(A[t])&&"Array"===nw.typeOf(e[t])?"Array"===nw.typeOf(e[t])&&(n=e[t]).push.apply(n,Bm(A[t])):nw.typeOf(e[t])!==nw.typeOf(A[t])||null===e[t]||"Object"!==nw.typeOf(e[t])||A[t]instanceof window.Node?null!==A[t]&&(e[t]=A[t]):nw.deepMerge(e[t],A[t])})),e},nw.getBgImage=function(e){var A=(e.currentStyle||window.getComputedStyle(e,null)).backgroundImage;if(!A||"none"===A)return"";var t=document.createElement("a");return t.href=A.replace(/url\("|"\)/g,""),t.href},nw.copyDom=function(e){if(e&&1===e.nodeType){var A=document.createElement(e.tagName);return Array.prototype.forEach.call(e.attributes,(function(e){A.setAttribute(e.name,e.value)})),e.innerHTML&&(A.innerHTML=e.innerHTML),A}return""},nw.setInterval=function(e,A,t,n){e._interval[A]||(e._interval[A]=window.setInterval(t.bind(e),n))},nw.clearInterval=function(e,A){clearInterval(e._interval[A]),e._interval[A]=null},nw.setTimeout=function(e,A,t){e._timers||(e._timers=[]);var n=setTimeout((function(){A(),nw.clearTimeout(e,n)}),t);return e._timers.push(n),n},nw.clearTimeout=function(e,A){var t=e._timers;if("Array"===nw.typeOf(t)){for(var n=0;n-1&&zp(n).call(n,e)>-1)||(g=tD(lD(A=Xp(t).call(t,0,zp(t).call(t,e))).call(A)),c=tD(lD(r=Xp(n).call(n,0,zp(n).call(n,e))).call(r)),l=e,!1)})),C.style.width=xf(r="".concat(g)).call(r,l),C.style.height=xf(i="".concat(c)).call(i,l),C.style.backgroundSize=xf(o=xf(a=xf(s="".concat(g)).call(s,l," ")).call(a,c)).call(o,l),C.style.margin="start"===e?xf(u=xf(I=xf(h="-".concat(c/2)).call(h,l," auto auto -")).call(I,g/2)).call(u,l):"auto 5px auto 5px");return C},nw.Hex2RGBA=function(e,A){var t,n=[];if(/^\#[0-9A-F]{3}$/i.test(e)){var r="#";e.replace(/[0-9A-F]/gi,(function(e){r+=e+e})),e=r}return/^#[0-9A-F]{6}$/i.test(e)?(e.replace(/[0-9A-F]{2}/gi,(function(e){n.push(Uv(e,16))})),xf(t="rgba(".concat(n.join(","),", ")).call(t,A,")")):"rgba(255, 255, 255, 0.1)"},nw.getFullScreenEl=function(){return document.fullscreenElement||document.webkitFullscreenElement||document.mozFullScreenElement||document.msFullscreenElement},nw.checkIsFunction=function(e){return e&&"function"==typeof e},nw.checkIsObject=function(e){return null!==e&&"object"===am(e)},nw.hide=function(e){e.style.display="none"},nw.show=function(e,A){e.style.display=A||"block"},nw.isUndefined=function(e){if(null==e)return!0},nw.isNotNull=function(e){return!(null==e)},nw.setStyleFromCsstext=function(e,A){if(A)if("String"===nw.typeOf(A)){var t=A.replace(/\s+/g,"").split(";");Jp(t).call(t,(function(A){if(A){var t=A.split(":");t.length>1&&(e.style[t[0]]=t[1])}}))}else{var n;Jp(n=jp(A)).call(n,(function(t){e.style[t]=A[t]}))}},nw.filterStyleFromText=function(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:["width","height","top","left","bottom","right","position","z-index","padding","margin","transform"],n=e.style.cssText;if(!n)return{};var r=n.replace(/\s+/g,"").split(";"),i={},o={};return Jp(r).call(r,(function(e){if(e){var A=e.split(":");A.length>1&&(!function(e,A){for(var t=0,n=A.length;t-1)return!0;return!1}(A[0],t)?o[A[0]]=A[1]:i[A[0]]=A[1])}})),e.setAttribute("style",""),Jp(A=jp(o)).call(A,(function(A){e.style[A]=o[A]})),i},nw.getStyleFromCsstext=function(e){var A=e.style.cssText;if(!A)return{};var t=A.replace(/\s+/g,"").split(";"),n={};return Jp(t).call(t,(function(e){if(e){var A=e.split(":");A.length>1&&(n[A[0]]=A[1])}})),n},nw.preloadImg=function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){};if(e){var n=new window.Image;n.onload=function(e){n=null,A&&A(e)},n.onerror=function(e){n=null,t&&t(e)},n.src=e}},nw.stopPropagation=function(e){e&&e.stopPropagation()},nw.scrollTop=function(){return window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0},nw.scrollLeft=function(){return window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0},nw.checkTouchSupport=function(){return"ontouchstart"in window},nw.getBuffered2=function(e){for(var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.5,t=[],n=0;na&&(r[o-1].end=t[i].end):r.push(t[i])}else r.push(t[i])}else r=t;return new tw(r)},nw.getEventPos=function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return e.touches&&e.touches.length>0&&(e=e.touches[0]),{x:e.x/A,y:e.y/A,clientX:e.clientX/A,clientY:e.clientY/A,offsetX:e.offsetX/A,offsetY:e.offsetY/A,pageX:e.pageX/A,pageY:e.pageY/A}},nw.requestAnimationFrame=function(e){var A=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame;if(A)return A(e)},nw.getHostFromUrl=function(e){if("String"!==nw.typeOf(e))return"";var A=e.split("/"),t="";return A.length>3&&A[2]&&(t=A[2]),t},nw.cancelAnimationFrame=function(e){var A=window.cancelAnimationFrame||window.mozCancelAnimationFrame||window.cancelRequestAnimationFrame;A&&A(e)},nw.isMSE=function(e){return e.media&&(e=e.media),!!(e&&e instanceof HTMLMediaElement)&&(/^blob/.test(e.currentSrc)||/^blob/.test(e.src))},nw.isBlob=function(e){return"string"==typeof e&&/^blob/.test(e)},nw.generateSessionId=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,A=(new Date).getTime();try{e=Uv(e)}catch(P7){e=0}return A+=e,window.performance&&"function"==typeof window.performance.now&&(A+=Uv(window.performance.now())),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var t=(A+16*Math.random())%16|0;return A=Math.floor(A/16),("x"===e?t:3&t|8).toString(16)}))},nw.createEvent=function(e){var A;return"function"==typeof window.Event?A=new Event(e):(A=document.createEvent("Event")).initEvent(e,!0,!0),A},nw.adjustTimeByDuration=function(e,A,t){return A&&e&&(e>A||t&&e0&&void 0!==arguments[0]?arguments[0]:{x:0,y:0,scale:1,rotate:0},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n={scale:"".concat(A.scale||1),translate:xf(e="".concat(A.x||0,"%, ")).call(e,A.y||0,"%"),rotate:"".concat(A.rotate||0,"deg")};return jp(n).forEach((function(e){var A,r=new RegExp("".concat(e,"\\([^\\(]+\\)"),"g"),i=xf(A="".concat(e,"(")).call(A,n[e],")");r.test(t)?(r.lastIndex=-1,t=t.replace(r,i)):t+="".concat(i," ")})),t},nw.convertDeg=function(e){return Math.abs(e)<=1?360*e:e%360},nw.getIndexByTime=function(e,A){var t=A.length,n=-1;if(t<1)return n;if(e<=A[0].end||t<2)n=0;else if(e>A[t-1].end)n=t-1;else for(var r=1;rA[r-1].end&&e<=A[r].end){n=r;break}return n},nw.getOffsetCurrentTime=function(e,A){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,n=-1;if((n=t>=0&&t=o&&e<=a?e-g:e>a&&n>=r-1?a:-1},nw.getCurrentTimeByOffset=function(e,A){var t=-1;if(!A||A.length<0)return e;for(var n=0;n1,o=i||n&&!/(?:Mobile)/.test(e)||r&&/(?:Tablet)/.test(e),a=/(?:iPhone)/.test(e)&&!o;return{isTablet:o,isPhone:a,isIpad:i,isIos:a||i,isAndroid:n,isPc:!(a||n||t||o),isSymbian:t,isWindowsPhone:A,isFireFox:r}},get osVersion(){if("undefined"==typeof navigator)return 0;var e=navigator.userAgent,A="",t=(A=/(?:iPhone)|(?:iPad|PlayBook)/.test(e)?sw:aw)?A.exec(e):[];if(t&&t.length>=3){var n=t[2].split(".");return n.length>0?Uv(n[0]):0}return 0},get isWeixin(){if("undefined"==typeof navigator)return!1;return!!/(micromessenger)\/([\d.]+)/.exec(navigator.userAgent.toLocaleLowerCase())},isSupportMP4:function(){var e={isSupport:!1,mime:""};if("undefined"==typeof document)return e;if(this.supportResult)return this.supportResult;var A=document.createElement("video");return"function"==typeof A.canPlayType&&Jp(gw).call(gw,(function(t){"probably"===A.canPlayType('video/mp4; codecs="'.concat(t,'"'))&&(e.isSupport=!0,e.mime+="||".concat(t))})),this.supportResult=e,A=null,e},isMSESupport:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:'video/mp4; codecs="avc1.42E01E,mp4a.40.2"';if("undefined"==typeof MediaSource||!MediaSource)return!1;try{return MediaSource.isTypeSupported(e)}catch(WtA){return this._logger.error(e,WtA),!1}},isHevcSupported:function(){return!("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)&&(MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"'))},probeConfigSupported:function(e){var A={supported:!1,smooth:!1,powerEfficient:!1};if(!e||"undefined"==typeof navigator)return Op.resolve(A);if(navigator.mediaCapabilities&&navigator.mediaCapabilities.decodingInfo)return navigator.mediaCapabilities.decodingInfo(e);var t=e.video||{},n=e.audio||{};try{var r=MediaSource.isTypeSupported(t.contentType),i=MediaSource.isTypeSupported(n.contentType);return Op.resolve({supported:r&&i,smooth:!1,powerEfficient:!1})}catch(P7){return Op.resolve(A)}}},lw="3.0.21-rc.21",uw={1:"media",2:"media",3:"media",4:"media",5:"media",6:"media"},Iw={1:5101,2:5102,3:5103,4:5104,5:5105,6:5106},hw=cm((function e(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{errorType:"",errorCode:0,errorMessage:"",originError:"",ext:{},mediaError:null};sm(this,e);var n=A&&A.i18n?A.i18n.ERROR_TYPES:null;if(A.media){var r,i=t.mediaError?t.mediaError:A.media.error||{},o=A.duration,a=A.currentTime,s=A.ended,g=A.src,c=A.currentSrc,l=A.media,u=l.readyState,I=l.networkState,h=t.errorCode||i.code;Iw[h]&&(h=Iw[h]);var C={playerVersion:lw,currentTime:a,duration:o,ended:s,readyState:u,networkState:I,src:g||c,errorType:t.errorType,errorCode:h,message:t.errorMessage||i.message,mediaError:i,originError:t.originError?t.originError.stack:"",host:nw.getHostFromUrl(g||c)};return t.ext&&Jp(r=jp(t.ext)).call(r,(function(e){C[e]=t.ext[e]})),C}if(arguments.length>1){for(var d={playerVersion:lw,domain:document.domain},E=["errorType","currentTime","duration","networkState","readyState","src","currentSrc","ended","errd","errorCode","mediaError"],f=0;f0&&void 0!==arguments[0]?arguments[0]:this.media;this._evHandlers||(this._evHandlers=Jp(tR).call(tR,(function(A){var t,n=xf(t="on".concat(A.charAt(0).toUpperCase())).call(t,Xp(A).call(A,1));return"function"==typeof e[n]&&e.on(A,e[n]),lm({},A,function(e,A){return function(t,n){var r={player:A,eventName:e,originalEvent:t,detail:t.detail||{},timeStamp:t.timeStamp,currentTime:A.currentTime,duration:A.duration,paused:A.paused,ended:A.ended,isInternalOp:!!A._internalOp[t.type],muted:A.muted,volume:A.volume,host:nw.getHostFromUrl(A.currentSrc),vtype:A.vtype};if(A.removeInnerOP(t.type),"timeupdate"===e&&(A._currentTime=A.media&&A.media.currentTime),"ratechange"===e){var i=A.media?A.media.playbackRate:0;if(i&&A._rate===i)return;A._rate=A.media&&A.media.playbackRate}if("durationchange"===e&&(A._duration=A.media.duration),"volumechange"===e&&(r.isMutedChange=A._lastMuted!==A.muted,A._lastMuted=A.muted),"error"===e&&(r.error=n||A.video.error),A.mediaEventMiddleware[e]){var o=rR.bind(A,e,r);try{A.mediaEventMiddleware[e].call(A,r,o)}catch(a){throw rR.call(A,e,r),a}}else rR.call(A,e,r)}}(A,e))}))),this._evHandlers.forEach((function(e){var t=jp(e)[0];A.addEventListener(t,e[t],!1)}))}},{key:"detachVideoEvents",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.media;this._evHandlers.forEach((function(e){var t=jp(e)[0];A.removeEventListener(t,e[t],!1)})),this._evHandlers.forEach((function(A){var t,n=jp(A)[0],r=xf(t="on".concat(n.charAt(0).toUpperCase())).call(t,Xp(n).call(n,1));"function"==typeof e[r]&&e.off(n,e[r])})),this._evHandlers=null}},{key:"_attachSourceEvents",value:function(e,A){var t=this;e.removeAttribute("src"),e.load(),A.forEach((function(e,A){t.media.appendChild(nw.createDom("source","",{src:"".concat(e.src),type:"".concat(e.type||""),"data-index":A+1}))}));var n=e.children;if(n){this._videoSourceCount=n.length,this._videoSourceIndex=n.length,this._vLoadeddata=function(e){t.emit(AR,{src:e.target.currentSrc,host:nw.getHostFromUrl(e.target.currentSrc)})};for(var r=null,i=0;i=t._videoSourceCount){var n={code:4,message:"sources_load_error"};r?r.error(e,n):t.errorHandler("error",n)}var i=uw[4];t.emit(eR,new hw(t,{errorType:i,errorCode:4,errorMessage:"sources_load_error",mediaError:{code:4,message:"sources_load_error"},src:e.target.src}))});for(var o=0;o0;)e.removeChild(A[0]);this._vLoadeddata&&e.removeEventListener("loadeddata",this._vLoadeddata)}}},{key:"errorHandler",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if(this.media&&(this.media.error||A)){var t=this.media.error||A,n=t.code?uw[t.code]:"other";t.message;this.media.currentSrc||this.media.srcObject||(t={code:6,message:"empty_src"}),this.emit(e,new hw(this,{errorType:n,errorCode:t.code,errorMessage:t.message||"",mediaError:t}))}}},{key:"destroy",value:function(){for(var e in this.media&&(this.media.pause&&(this.media.pause(),this.media.muted=!0),this.media.removeAttribute("src"),this.media.load()),this._currentTime=0,this._duration=0,this.mediaConfig=null,this._interval)Object.prototype.hasOwnProperty.call(this._interval,e)&&(clearInterval(this._interval[e]),this._interval[e]=null);this.detachVideoEvents(),this.media=null,this.mediaEventMiddleware={},this.removeAllListeners()}},{key:"video",get:function(){return this.media},set:function(e){this.media=e}},{key:"play",value:function(){return this.media?this.media.play():null}},{key:"pause",value:function(){this.media&&this.media.pause()}},{key:"load",value:function(){this.media&&this.media.load()}},{key:"canPlayType",value:function(e){return!!this.media&&this.media.canPlayType(e)}},{key:"getBufferedRange",value:function(e){var A=[0,0];if(!this.media)return A;e||(e=this.media.buffered);var t=this.media.currentTime;if(e)for(var n=0,r=e.length;n=this.currentTime)return{start:A.start(t),end:A.end(t)};return e}},{key:"crossOrigin",get:function(){return this.media?this.media.crossOrigin:""},set:function(e){this.media&&(this.media.crossOrigin=e)}},{key:"currentSrc",get:function(){return this.media?this.media.currentSrc:""},set:function(e){this.media&&(this.media.currentSrc=e)}},{key:"currentTime",get:function(){return this.media?void 0!==this.media.currentTime?this.media.currentTime:this._currentTime:0},set:function(e){this.media&&(this.media.currentTime=e)}},{key:"defaultMuted",get:function(){return!!this.media&&this.media.defaultMuted},set:function(e){this.media&&(this.media.defaultMuted=e)}},{key:"duration",get:function(){return this._duration}},{key:"ended",get:function(){return!!this.media&&this.media.ended}},{key:"error",get:function(){return this.media.error}},{key:"errorNote",get:function(){if(!this.media.error)return"";return["MEDIA_ERR_ABORTED","MEDIA_ERR_NETWORK","MEDIA_ERR_DECODE","MEDIA_ERR_SRC_NOT_SUPPORTED"][this.media.error.code-1]}},{key:"loop",get:function(){return!!this.media&&this.media.loop},set:function(e){this.media&&(this.media.loop=e)}},{key:"muted",get:function(){return!!this.media&&this.media.muted},set:function(e){this.media&&this.media.muted!==e&&(this._lastMuted=this.media.muted,this.media.muted=e)}},{key:"networkState",get:function(){return this.media.networkState}},{key:"paused",get:function(){return!this.media||this.media.paused}},{key:"playbackRate",get:function(){return this.media?this.media.playbackRate:0},set:function(e){this.media&&e!==1/0&&(this.media.defaultPlaybackRate=e,this.media.playbackRate=e)}},{key:"played",get:function(){return this.media?this.media.played:null}},{key:"preload",get:function(){return!!this.media&&this.media.preload},set:function(e){this.media&&(this.media.preload=e)}},{key:"readyState",get:function(){return this.media.readyState}},{key:"seekable",get:function(){return!!this.media&&this.media.seekable}},{key:"seeking",get:function(){return!!this.media&&this.media.seeking}},{key:"src",get:function(){return this.media?this.media.src:""},set:function(e){this.media&&(this.emit(Nw,e),this.emit(pw),this._currentTime=0,this._duration=0,nw.isMSE(this.media)?this.onWaiting():(this._detachSourceEvents(this.media),"Array"===nw.typeOf(e)?this._attachSourceEvents(this.media,e):e?this.media.src=e:this.media.removeAttribute("src"),this.load()))}},{key:"volume",get:function(){return this.media?this.media.volume:0},set:function(e){e!==1/0&&this.media&&(this.media.volume=e)}},{key:"aspectRatio",get:function(){return this.media?this.media.videoWidth/this.media.videoHeight:0}},{key:"addInnerOP",value:function(e){this._internalOp[e]=!0}},{key:"removeInnerOP",value:function(e){delete this._internalOp[e]}},{key:"emit",value:function(e,A){for(var n,r,i=arguments.length,o=new Array(i>2?i-2:0),a=2;a2?i-2:0),a=2;a2?i-2:0),a=2;a2?i-2:0),a=2;a0&&void 0!==arguments[0]?arguments[0]:{name:"xgplayer",version:1,db:null,ojstore:{name:"xg-m4a",keypath:"vid"}};sm(this,e),this.indexedDB=window.indexedDB||window.webkitindexedDB,this.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange,this.myDB=A}return cm(e,[{key:"openDB",value:function(e){var A=this,t=this,n=this.myDB.version||1,r=t.indexedDB.open(t.myDB.name,n);r.onerror=function(e){},r.onsuccess=function(n){A.myDB.db=n.target.result,e.call(t)},r.onupgradeneeded=function(e){var A=e.target.result;e.target.transaction,A.objectStoreNames.contains(t.myDB.ojstore.name)||A.createObjectStore(t.myDB.ojstore.name,{keyPath:t.myDB.ojstore.keypath})}}},{key:"deletedb",value:function(){this.indexedDB.deleteDatabase(this.myDB.name)}},{key:"closeDB",value:function(){this.myDB.db.close()}},{key:"addData",value:function(e,A){for(var t,n=this.myDB.db.transaction(e,"readwrite").objectStore(e),r=0;r3?r-3:0),o=3;o2&&void 0!==arguments[2]?arguments[2]:{pre:null,next:null};return this.__hooks||(this.__hooks={}),!this.__hooks[e]&&(this.__hooks[e]=null),function(){var n,r=arguments,i=this;if(t.pre)try{var o,a;(a=t.pre).call.apply(a,xf(o=[this]).call(o,Xp(Array.prototype).call(arguments)))}catch(P7){var s,g;throw P7.message=xf(s=xf(g="[pluginName: ".concat(this.pluginName,":")).call(g,e,":pre error] >> ")).call(s,P7.message),P7}if(this.__hooks&&this.__hooks[e])try{var c,l=QR(this,e,A);if(l)if(l.then)l.then((function(e){var n;!1!==e&&lR.apply(void 0,xf(n=[i,A,t.next]).call(n,Bm(r)))})).catch((function(e){throw e}));else lR.apply(void 0,xf(c=[this,A,t.next]).call(c,Xp(Array.prototype).call(arguments)));else if(void 0===l){var u;lR.apply(void 0,xf(u=[this,A,t.next]).call(u,Xp(Array.prototype).call(arguments)))}}catch(P7){var I,h;throw P7.message=xf(I=xf(h="[pluginName: ".concat(this.pluginName,":")).call(h,e,"] >> ")).call(I,P7.message),P7}else lR.apply(void 0,xf(n=[this,A,t.next]).call(n,Xp(Array.prototype).call(arguments)))}.bind(this)}function IR(e,A){var t=this.__hooks;if(!t||!Array.isArray(t[e]))return-1;for(var n=t[e],r=0;r1?t-1:0),r=1;r1?t-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:[];e.__hooks={},A&&Jp(A).call(A,(function(A){e.__hooks[A]=null})),Iy(e,"hooks",{get:function(){var A;return e.__hooks&&Jp(A=jp(e.__hooks)).call(A,(function(A){if(e.__hooks[A])return A}))}})}function BR(e){e.__hooks=null}function QR(e,A,t){for(var n=arguments.length,r=new Array(n>3?n-3:0),i=3;i3?o-3:0),c=3;c1?n-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:{};if(this.player){var n=om(om({},t),{},{pluginName:this.pluginName});this.player.emitUserAction(e,A,n)}}},{key:"hook",value:function(e,A){var t;return uR.call.apply(uR,xf(t=[this]).call(t,Xp(Array.prototype).call(arguments)))}},{key:"useHooks",value:function(e,A){for(var t,n=arguments.length,r=new Array(n>2?n-2:0),i=2;i2?n-2:0),i=2;i1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";if(this.player)return t&&(A.pluginName=t),this.player.registerPlugin({plugin:e,options:A})}},{key:"getPlugin",value:function(e){return this.player?this.player.getPlugin(e):null}},{key:"__destroy",value:function(){var e,A=this,t=this.player,n=this.pluginName;this.offAll(),nw.clearAllTimers(this),nw.checkIsFunction(this.destroy)&&this.destroy(),Jp(e=["player","playerConfig","pluginName","logger","__args","__hooks"]).call(e,(function(e){A[e]=null})),t.unRegisterPlugin(n),BR(this)}}],[{key:"defineGetterOrSetter",value:function(e,A){for(var t in A)Object.prototype.hasOwnProperty.call(A,t)&&Iy(e,t,A[t])}},{key:"defineMethod",value:function(e,A){for(var t in A)Object.prototype.hasOwnProperty.call(A,t)&&"function"==typeof A[t]&&Iy(e,t,{configurable:!0,value:A[t]})}},{key:"defaultConfig",get:function(){return{}}},{key:"pluginName",get:function(){return"pluginName"}}]),e}();if("undefined"!=typeof Element&&!Element.prototype.matches){var yR=Element.prototype;yR.matches=yR.matchesSelector||yR.mozMatchesSelector||yR.msMatchesSelector||yR.oMatchesSelector||yR.webkitMatchesSelector}var mR=function(e,A){for(;e&&9!==e.nodeType;){if("function"==typeof e.matches&&e.matches(A))return e;e=e.parentNode}};function DR(e,A,t,n,r){var i=wR.apply(this,arguments);return e.addEventListener(t,i,r),{destroy:function(){e.removeEventListener(t,i,r)}}}function wR(e,A,t,n){return function(t){t.delegateTarget=mR(t.target,A),t.delegateTarget&&n.call(e,t)}}var RR=function(e,A,t,n,r){return"function"==typeof e.addEventListener?DR.apply(null,arguments):"function"==typeof t?DR.bind(null,document).apply(null,arguments):("string"==typeof e&&(e=document.querySelectorAll(e)),Jp(Array.prototype).call(e,(function(e){return DR(e,A,t,n,r)})))},kR=i(RR),SR={CONTROLS:"controls",ROOT:"root"},MR={ROOT:"root",ROOT_LEFT:"rootLeft",ROOT_RIGHT:"rootRight",ROOT_TOP:"rootTop",CONTROLS_LEFT:"controlsLeft",CONTROLS_RIGTH:"controlsRight",CONTROLS_RIGHT:"controlsRight",CONTROLS_CENTER:"controlsCenter",CONTROLS:"controls"},GR="xg-icon-disable";function _R(e){return!!e&&(zp(e)&&/^(?:http|data:|\/)/.test(e))}function bR(e,A){var t,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},o=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"",a=null;if(e instanceof window.Element)return nw.addClass(e,r),Jp(n=jp(i)).call(n,(function(A){e.setAttribute(A,i[A])})),e;if(_R(e)||_R(e.url))return i.src=_R(e)?e:e.url||"",a=nw.createDom(e.tag||"img","",i,"xg-img ".concat(r));if("function"==typeof e)try{var s,g;return(a=e())instanceof window.Element?(nw.addClass(a,r),Jp(s=jp(i)).call(s,(function(e){a.setAttribute(e,i[e])})),a):(Aw.logWarn(xf(g="warn>>icons.".concat(A," in config of plugin named [")).call(g,o,"] is a function mast return an Element Object")),null)}catch(P7){return Aw.logError("Plugin named [".concat(o,"]:createIcon"),P7),null}return"string"==typeof e?nw.createDomFromHtml(e,i,r):(Aw.logWarn(xf(t="warn>>icons.".concat(A," in config of plugin named [")).call(t,o,"] is invalid")),null)}function TR(e,A){var t,n=A.config.icons||A.playerConfig.icons;Jp(t=jp(e)).call(t,(function(t){var r=e[t],i=r&&r.class?r.class:"",o=r&&r.attr?r.attr:{},a=null;n&&n[t]&&(i=function(e,A){var t;return"object"===am(e)&&e.class&&"string"==typeof e.class?xf(t="".concat(A," ")).call(t,e.class):A}(n[t],i),o=function(e,A){var t;return"object"===am(e)&&e.attr&&"object"===am(e.attr)&&Jp(t=jp(e.attr)).call(t,(function(t){A[t]=e.attr[t]})),A}(n[t],o),a=bR(n[t],t,i,o,A.pluginName)),!a&&r&&(a=bR(r.icon?r.icon:r,o,i,{},A.pluginName)),A.icons[t]=a}))}var FR=function(e){um(t,e);var A=Em(t);function t(){var e,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return sm(this,t),(e=A.call(this,n)).__delegates=[],e}return cm(t,[{key:"__init",value:function(e){if(fm(Im(t.prototype),"__init",this).call(this,e),e.root){var A=e.root,n=null;this.icons={},this.root=null,this.parent=null,TR(this.registerIcons()||{},this),this.langText={};var r,i,o,a=this.registerLanguageTexts()||{};i=this,Jp(o=jp(r=a)).call(o,(function(e){Iy(i.langText,e,{get:function(){var A=i.lang,t=i.i18n;return t[e]?t[e]:r[e]&&r[e][A]||""}})}));var s="";try{s=this.render()}catch(P7){var g;throw Aw.logError("Plugin:".concat(this.pluginName,":render"),P7),new Error(xf(g="Plugin:".concat(this.pluginName,":render:")).call(g,P7.message))}if(s)(n=t.insert(s,A,e.index)).setAttribute("data-index",e.index);else{if(!e.tag)return;(n=nw.createDom(e.tag,"",e.attr,e.name)).setAttribute("data-index",e.index),A.appendChild(n)}this.root=n,this.parent=A;var c=this.config.attr||{},l=this.config.style||{};this.setAttr(c),this.setStyle(l),this.config.index&&this.root.setAttribute("data-index",this.config.index),this.__registerChildren()}}},{key:"__registerChildren",value:function(){var e=this;if(this.root){this._children=[];var A,t=this.children();if(t&&"object"===am(t))if(jp(t).length>0)Jp(A=jp(t)).call(A,(function(A){var n,r,i=A,o=t[i],a={root:e.root};"function"==typeof o?(n=e.config[i]||{},r=o):"object"===am(o)&&"function"==typeof o.plugin&&(n=o.options?nw.deepCopy(e.config[i]||{},o.options):e.config[i]||{},r=o.plugin),a.config=n,void 0!==n.index&&(a.index=n.index),n.root&&(a.root=n.root),e.registerPlugin(r,a,i)}))}}},{key:"updateLang",value:function(e){e||(e=this.lang);var A=this.root,t=this.i18n,n=this.langText;A&&function e(A,t){for(var n=0;n0?e(A.children[n],t):t(A.children[n])}(A,(function(A){var r=A.getAttribute&&A.getAttribute("lang-key");if(r){var i=t[r.toUpperCase()]||n[r];i&&(A.innerHTML="function"==typeof i?i(e):i)}}))}},{key:"lang",get:function(){return this.player.lang}},{key:"changeLangTextKey",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=this.i18n||{},n=this.langText;e.setAttribute&&e.setAttribute("lang-key",A);var r=t[A]||n[A]||"";r&&(e.innerHTML=r)}},{key:"plugins",value:function(){return this._children}},{key:"disable",value:function(){this.config.disable=!0,nw.addClass(qf(this).call(this,".xgplayer-icon"),GR)}},{key:"enable",value:function(){this.config.disable=!1,nw.removeClass(qf(this).call(this,".xgplayer-icon"),GR)}},{key:"children",value:function(){return{}}},{key:"registerPlugin",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"";A.root=A.root||this.root;var r=fm(Im(t.prototype),"registerPlugin",this).call(this,e,A,n);return this._children.push(r),r}},{key:"registerIcons",value:function(){return{}}},{key:"registerLanguageTexts",value:function(){return{}}},{key:"find",value:function(e){if(this.root)return this.root.querySelector(e)}},{key:"bind",value:function(e,A,n){var r=this;if(arguments.length<3&&"function"==typeof A)Array.isArray(e)?e.forEach((function(e){r.bindEL(e,A)})):this.bindEL(e,A);else{var i,o=t.delegate.call(this,this.root,e,A,n);this.__delegates=xf(i=this.__delegates).call(i,o)}}},{key:"unbind",value:function(e,A){var t=this;if(arguments.length<3&&"function"==typeof A)Array.isArray(e)?e.forEach((function(e){t.unbindEL(e,A)})):this.unbindEL(e,A);else for(var n,r=xf(n="".concat(e,"_")).call(n,A),i=0;i2&&void 0!==arguments[2]&&arguments[2];this.root&&"on".concat(e)in this.root&&"function"==typeof A&&this.root.addEventListener(e,A,t)}},{key:"unbindEL",value:function(e,A){var t=arguments.length>2&&void 0!==arguments[2]&&arguments[2];this.root&&"on".concat(e)in this.root&&"function"==typeof A&&this.root.removeEventListener(e,A,t)}},{key:"show",value:function(e){if(this.root)return this.root.style.display=void 0!==e?e:"block","none"===window.getComputedStyle(this.root,null).getPropertyValue("display")?this.root.style.display="block":void 0}},{key:"hide",value:function(){this.root&&(this.root.style.display="none")}},{key:"appendChild",value:function(e,A){if(!this.root)return null;if(arguments.length<2&&arguments[0]instanceof window.Element)return this.root.appendChild(arguments[0]);if(!(A&&A instanceof window.Element))return null;try{return"string"==typeof e?qf(this).call(this,e).appendChild(A):e.appendChild(A)}catch(t){return Aw.logError("Plugin:appendChild",t),null}}},{key:"render",value:function(){return""}},{key:"destroy",value:function(){}},{key:"__destroy",value:function(){var e,A,n,r=this,i=this.player;(Jp(e=this.__delegates).call(e,(function(e){e.destroy()})),this.__delegates=[],this._children instanceof Array)&&(Jp(n=this._children).call(n,(function(e){i.unRegisterPlugin(e.pluginName)})),this._children=null);this.root&&(this.root.hasOwnProperty("remove")?this.root.remove():this.root.parentNode&&this.root.parentNode.removeChild(this.root)),fm(Im(t.prototype),"__destroy",this).call(this),this.icons={},Jp(A=["root","parent"]).call(A,(function(e){r[e]=null}))}}],[{key:"insert",value:function(e,A){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=A.children.length,r=Number(t),i=e instanceof window.Node;if(n){for(var o=0,a=null,s="";o=r){s="beforebegin";break}g4&&void 0!==arguments[4]&&arguments[4],i=[];if(e instanceof window.Node&&"function"==typeof n)if(Array.isArray(t))t.forEach((function(t){var o,a=kR(e,A,t,n,r);a.key=xf(o="".concat(A,"_")).call(o,t),i.push(a)}));else{var o,a=kR(e,A,t,n,r);a.key=xf(o="".concat(A,"_")).call(o,t),i.push(a)}return i}},{key:"ROOT_TYPES",get:function(){return SR}},{key:"POSITIONS",get:function(){return MR}}]),t}(vR),NR=function(){function e(){var A=this;if(sm(this,e),lm(this,"__trigger",(function(e){var t=(new Date).getTime();A.timeStamp=t;for(var n=0;n-1?this.__handlers[r].handler=A:this.__handlers.push({target:e,handler:A,playerId:t})}}},{key:"unObserver",value:function(e){var A,t,n=-1;Jp(A=this.__handlers).call(A,(function(A,t){e===A.target&&(n=t)}));try{var r;null===(r=this.observer)||void 0===r||r.unobserve(e)}catch(P7){}n>-1&&Cv(t=this.__handlers).call(t,n,1)}},{key:"destroyObserver",value:function(){var e;null===(e=this.observer)||void 0===e||e.disconnect(),this.observer=null,this.__handlers=null}},{key:"__runHandler",value:function(e){for(var A=this.__handlers,t=0;t2&&void 0!==arguments[2]?arguments[2]:{};if(e&&A&&"function"==typeof A&&void 0!==A.prototype){var n=e._pluginInfoId;if(n&&this.pluginGroup[n]){this.pluginGroup[n]._plugins||(this.pluginGroup[n]._plugins={});var r=this.pluginGroup[n]._plugins,i=this.pluginGroup[n]._originalOptions;t.player=e;var o=t.pluginName||A.pluginName;if(!o)throw new Error("The property pluginName is necessary");if(!A.isSupported||A.isSupported(e.config.mediaType,e.config.codecType)){t.config||(t.config={});for(var a=jp(i),s=0;s1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;if(this.root){var r=e.defaultConfig||{};if(!A.root){switch(A.position?A.position:A.config&&A.config.position?A.config.position:r.position){case MR.CONTROLS_LEFT:A.root=this.left;break;case MR.CONTROLS_RIGHT:A.root=this.right;break;case MR.CONTROLS_CENTER:A.root=this.center;break;case MR.CONTROLS:A.root=this.root;break;default:A.root=this.left}return fm(Im(t.prototype),"registerPlugin",this).call(this,e,A,n)}}}},{key:"destroy",value:function(){"mobile"!==cw.device&&(this.unbind("mouseenter",this.onMouseEnter),this.unbind("mouseleave",this.onMouseLeave)),this.left=null,this.center=null,this.right=null,this.innerRoot=null}},{key:"render",value:function(){var e=this.config,A=e.mode,t=e.autoHide,n=e.initShow;if(!e.disable){var r=nw.classNames({"xgplayer-controls":!0},{"flex-controls":"flex"===A},{"bottom-controls":"bottom"===A},lm({},nk,t),{"xgplayer-controls-initshow":n||!t});return'\n \n \n \n \n \n \n \n ')}}}],[{key:"pluginName",get:function(){return"controls"}},{key:"defaultConfig",get:function(){return{disable:!1,autoHide:!0,mode:"",initShow:!1}}}]),t}(FR),gk={LANG:"en",TEXT:{ERROR_TYPES:{network:{code:1,msg:"video download error"},mse:{code:2,msg:"stream append error"},parse:{code:3,msg:"parsing error"},format:{code:4,msg:"wrong format"},decoder:{code:5,msg:"decoding error"},runtime:{code:6,msg:"grammatical errors"},timeout:{code:7,msg:"play timeout"},other:{code:8,msg:"other errors"}},HAVE_NOTHING:"There is no information on whether audio/video is ready",HAVE_METADATA:"Audio/video metadata is ready ",HAVE_CURRENT_DATA:"Data about the current play location is available, but there is not enough data to play the next frame/millisecond",HAVE_FUTURE_DATA:"Current and at least one frame of data is available",HAVE_ENOUGH_DATA:"The available data is sufficient to start playing",NETWORK_EMPTY:"Audio/video has not been initialized",NETWORK_IDLE:"Audio/video is active and has been selected for resources, but no network is used",NETWORK_LOADING:"The browser is downloading the data",NETWORK_NO_SOURCE:"No audio/video source was found",MEDIA_ERR_ABORTED:"The fetch process is aborted by the user",MEDIA_ERR_NETWORK:"An error occurred while downloading",MEDIA_ERR_DECODE:"An error occurred while decoding",MEDIA_ERR_SRC_NOT_SUPPORTED:"Audio/video is not supported",REPLAY:"Replay",ERROR:"Network is offline",PLAY_TIPS:"Play",PAUSE_TIPS:"Pause",PLAYNEXT_TIPS:"Play next",DOWNLOAD_TIPS:"Download",ROTATE_TIPS:"Rotate",RELOAD_TIPS:"Reload",FULLSCREEN_TIPS:"Fullscreen",EXITFULLSCREEN_TIPS:"Exit fullscreen",CSSFULLSCREEN_TIPS:"Cssfullscreen",EXITCSSFULLSCREEN_TIPS:"Exit cssfullscreen",TEXTTRACK:"Caption",PIP:"PIP",SCREENSHOT:"Screenshot",LIVE:"LIVE",OFF:"Off",OPEN:"Open",MINI_DRAG:"Click and hold to drag",MINISCREEN:"Miniscreen",REFRESH_TIPS:"Please Try",REFRESH:"Refresh",FORWARD:"forward",LIVE_TIP:"Live"}},ck={lang:{},langKeys:[],textKeys:[]};function lk(e,A){return jp(A).forEach((function(t){var n,r=nw.typeOf(A[t]),i=nw.typeOf(e[t]);"Array"===r?("Array"!==i&&(e[t]=[]),(n=e[t]).push.apply(n,Bm(A[t]))):"Object"===r?("Object"!==i&&(e[t]={}),lk(e[t],A[t])):e[t]=A[t]})),e}function uk(){var e;Jp(e=jp(ck.lang.en)).call(e,(function(e){ck.textKeys[e]=e}))}function Ik(e,A){var t=e.LANG;if(A||(A=ck),A.lang){var n=e.TEXT||{};"zh"===t&&(t="zh-cn"),A.lang[t]?lk(A.lang[t],n):(A.langKeys.push(t),A.lang[t]=n),uk()}}Ik(gk);var hk={get textKeys(){return ck.textKeys},get langKeys(){return ck.langKeys},get lang(){var e,A={};return Jp(e=ck.langKeys).call(e,(function(e){A[e]=ck.lang[e]})),ck.lang["zh-cn"]&&(A.zh=ck.lang["zh-cn"]||{}),A},extend:function(e,A){var t=[];if(A||(A=ck),A.lang){var n;if("Array"!==nw.typeOf(e))t=Jp(n=jp(e)).call(n,(function(A){return{LANG:"zh"===A?"zh-cn":A,TEXT:e[A]}}));else t=e;var r=A.lang;Jp(t).call(t,(function(e){"zh"===e.LANG&&(e.LANG="zh-cn"),r[e.LANG]?lk(r[e.LANG]||{},e.TEXT||{}):Ik(e,A)})),uk()}},use:Ik,init:function(e){var A,t={lang:{},langKeys:[],textKeys:{},pId:e};return lk(t.lang,ck.lang),(A=t.langKeys).push.apply(A,Bm(ck.langKeys)),lk(t.textKeys,ck.textKeys),t}},Ck=1,dk=2,Ek=3,fk=4,Bk=5,Qk=6,pk=7,vk=["ERROR","INITIAL","READY","ATTACHING","ATTACHED","NOTALLOW","RUNNING","ENDED","DESTROYED"],yk={},mk=null,Dk=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"add",value:function(e){e&&(yk[e.playerId]=e,1===jp(yk).length&&this.setActive(e.playerId,!0))}},{key:"remove",value:function(e){e&&(e.isUserActive,delete yk[e.playerId])}},{key:"_iterate",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(var t in yk)if(Object.prototype.hasOwnProperty.call(yk,t)){var n=yk[t];if(A){if(e(n))break}else e(n)}}},{key:"forEach",value:function(e){this._iterate(e)}},{key:"find",value:function(e){var A=null;return this._iterate((function(t){var n=e(t);return n&&(A=t),n}),!0),A}},{key:"findAll",value:function(e){var A=[];return this._iterate((function(t){e(t)&&A.push(t)})),A}},{key:"setActive",value:function(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(yk[e])return A?this.forEach((function(A){e===A.playerId?(A.isUserActive=!0,A.isInstNext=!1):A.isUserActive=!1})):yk[e].isUserActive=A,e}},{key:"getActiveId",value:function(){for(var e=jp(yk),A=0;A1&&void 0!==arguments[1])||arguments[1];if(yk[e])return A?this.forEach((function(A){e===A.playerId?(A.isUserActive=!1,A.isInstNext=!0):A.isInstNext=!1})):yk[e].isInstNext=A,e}}],[{key:"getInstance",value:function(){return mk||(mk=new t),mk}}]),t}(ym.EventEmitter);var wk=["play","pause","replay","retry"],Rk=0,kk=0,Sk=null,Mk=function(e){um(t,e);var A=Em(t);function t(e){var n;sm(this,t);var r,i=nw.deepMerge(ak(),e);lm(Cm(n=A.call(this,i)),"canPlayFunc",(function(){if(n.config){var e=n.config,A=e.autoplay,t=e.defaultPlaybackRate;Aw.logInfo("player","canPlayFunc, startTime",n.__startTime),n._seekToStartTime(),n.playbackRate=t,(A||n._useAutoplay)&&n.mediaPlay(),n.off(vw,n.canPlayFunc),n.removeClass(xR)}})),lm(Cm(n),"onFullscreenChange",(function(e,A){var t=function(){nw.setTimeout(Cm(n),(function(){n.resize()}),100)},r=nw.getFullScreenEl();n._fullActionFrom?n._fullActionFrom="":n.emit(Zw,{eventType:"system",action:"switch_fullscreen",pluginName:"player",currentTime:n.currentTime,duration:n.duration,props:[{prop:"fullscreen",from:!0,to:!1}]});var i=function(e,A,t){if(e){var n=e.getAttribute(t);return!(!n||n!==A||"VIDEO"!==e.tagName&&"AUDIO"!==e.tagName)}}(r,n.playerId,cR);if(A||r&&(r===n._fullscreenEl||i))t(),!n.config.closeFocusVideoFocus&&n.media.focus(),n.fullscreen=!0,n.changeFullStyle(n.root,r,qR),n.emit(Yw,!0,n._fullScreenOffset),n.cssfullscreen&&n.exitCssFullscreen();else if(n.fullscreen){t();var o=Cm(n),a=o._fullScreenOffset;if(o.config.needFullscreenScroll?(window.scrollTo(a.left,a.top),nw.setTimeout(Cm(n),(function(){n.fullscreen=!1,n._fullScreenOffset=null}),100)):(!n.config.closeFocusVideoFocus&&n.media.focus(),n.fullscreen=!1,n._fullScreenOffset=null),n.cssfullscreen)n.removeClass(qR);else{var s=n._fullscreenEl;s||!n.root.contains(e.target)&&e.target!==n.root||(s=e.target),n.recoverFullStyle(n.root,s,qR)}n._fullscreenEl=null,n.emit(Yw,!1)}})),lm(Cm(n),"_onWebkitbeginfullscreen",(function(e){n._fullscreenEl=n.media,n.onFullscreenChange(e,!0)})),lm(Cm(n),"_onWebkitendfullscreen",(function(e){n.onFullscreenChange(e,!1)})),fR(Cm(n),wk),n.config=i,n._pluginInfoId=nw.generateSessionId(),(r=Cm(n)).logInfo=Aw.logInfo.bind(r),r.logWarn=Aw.logWarn.bind(r),r.logError=Aw.logError.bind(r);var o=n.constructor.defaultPreset;if(n.config.presets.length){var a,s=zp(a=n.config.presets).call(a,"default");s>=0&&o&&(n.config.presets[s]=o)}else o&&n.config.presets.push(o);if(n.userTimer=null,n.waitTimer=null,n.handleSource=!0,n._state=Ck,n.isAd=!1,n.isError=!1,n._hasStart=!1,n.isSeeking=!1,n.isCanplay=!1,n._useAutoplay=!1,n.__startTime=-1,n.rotateDeg=0,n.isActive=!1,n.fullscreen=!1,n.cssfullscreen=!1,n.isRotateFullscreen=!1,n._fullscreenEl=null,n.timeSegments=[],n._cssfullscreenEl=null,n.curDefinition=null,n._orgCss="",n._fullScreenOffset=null,n._videoHeight=0,n._videoWidth=0,n.videoPos={pi:1,scale:0,rotate:-1,x:0,y:0,h:-1,w:-1,vy:0,vx:0},n.sizeInfo={width:0,height:0,left:0,top:0},n._accPlayed={t:0,acc:0,loopAcc:0},n._offsetInfo={currentTime:-1,duration:0},n.innerContainer=null,n.controls=null,n.topBar=null,n.root=null,n.__i18n=hk.init(n._pluginInfoId),cw.os.isAndroid&&cw.osVersion>0&&cw.osVersion<6&&(n.config.autoplay=!1),n.database=new oR,n.isUserActive=!1,n._onceSeekCanplay=null,n._isPauseBeforeSeek=0,n.innerStates={isActiveLocked:!1},n.instManager=Sk,!n._initDOM())return console.error(new Error("can't find the dom which id is ".concat(n.config.id," or this.config.el does not exist"))),dm(n);var g=n.config,c=g.definition,l=void 0===c?{}:c;if(!g.url&&l.list&&l.list.length>0){var u,I=qf(u=l.list).call(u,(function(e){return e.definition&&e.definition===l.defaultDefinition}));I||(l.defaultDefinition=l.list[0].definition,I=l.list[0]),n.config.url=I.url,n.curDefinition=I}return n._bindEvents(),n._registerPresets(),n._registerPlugins(),UR.onPluginsReady(Cm(n)),n.getInitDefinition(),n.setState(dk),nw.setTimeout(Cm(n),(function(){n.emit(Sw)}),0),n.onReady&&n.onReady(),(n.config.videoInit||n.config.autoplay)&&(!n.hasStart||n.state0?this._attachSourceEvents(this.media,e):this.media.src&&this.media.src===e?e||this.media.removeAttribute("src"):this.media.src=e),"Number"===nw.typeOf(this.config.volume)&&(this.volume=this.config.volume);var t=this.innerContainer?this.innerContainer:this.root;this.media instanceof window.Element&&!t.contains(this.media)&&t.insertBefore(this.media,t.firstChild);var n=this.media.readyState;Aw.logInfo("_startInit readyState",n),this.config.autoplay&&(!nw.isMSE(this.media)&&this.load(),(cw.os.isIpad||cw.os.isPhone)&&this.mediaPlay());var r=this.config.startTime;this.__startTime=r>0?r:-1,this.config.startTime=0,n>=2&&this.duration>0?this.canPlayFunc():this.on(vw,this.canPlayFunc),(!this.hasStart||this.state0&&void 0!==arguments[0])||arguments[0];this._loadingPlugins=[];var t=this.config.ignores||[],n=this.config.plugins||[],r=this.config.i18n||[];A&&hk.extend(r,this.__i18n);var i=t.join("||").toLowerCase().split("||"),o=this.plugins;n.forEach((function(t){try{var n=t.plugin?t.plugin.pluginName:t.pluginName;if(n&&zp(i).call(i,n.toLowerCase())>-1)return null;if(!A&&o[n.toLowerCase()])return;if(t.lazy&&t.loader){var r=UR.lazyRegister(e,t);return void(t.forceBeforeInit&&(r.then((function(){var A,t;Cv(A=e._loadingPlugins).call(A,zp(t=e._loadingPlugins).call(t,r),1)})).catch((function(A){var t,n;Aw.logError("_registerPlugins:loadingPlugin",A),Cv(t=e._loadingPlugins).call(t,zp(n=e._loadingPlugins).call(n,r),1)})),e._loadingPlugins.push(r)))}return e.registerPlugin(t)}catch(a){Aw.logError("_registerPlugins:",a)}}))}},{key:"_registerPresets",value:function(){var e=this;this.config.presets.forEach((function(A){!function(e,A){var t,n,r,i=A.preset&&A.options?new A.preset(A.options,e.config):new A({},e.config),o=i.plugins,a=void 0===o?[]:o,s=i.ignores,g=void 0===s?[]:s,c=i.icons,l=void 0===c?{}:c,u=i.i18n,I=void 0===u?[]:u;e.config.plugins||(e.config.plugins=[]),e.config.ignores||(e.config.ignores=[]),(n=e.config.plugins).push.apply(n,Bm(a)),(r=e.config.ignores).push.apply(r,Bm(g)),Jp(t=jp(l)).call(t,(function(A){e.config.icons[A]||(e.config.icons[A]=l[A])}));var h=e.config.i18n||[];I.push.apply(I,Bm(h)),e.config.i18n=I}(e,A)}))}},{key:"_getRootByPosition",value:function(e){var A=null;switch(e){case MR.ROOT_RIGHT:this.rightBar||(this.rightBar=nw.createPositionBar("xg-right-bar",this.root)),A=this.rightBar;break;case MR.ROOT_LEFT:this.leftBar||(this.leftBar=nw.createPositionBar("xg-left-bar",this.root)),A=this.leftBar;break;case MR.ROOT_TOP:this.topBar||(this.topBar=nw.createPositionBar("xg-top-bar",this.root),this.config.topBarAutoHide&&nw.addClass(this.topBar,rk)),A=this.topBar;break;default:A=this.innerContainer||this.root}return A}},{key:"registerPlugin",value:function(e,A){var t=UR.formatPluginInfo(e,A),n=t.PLUFGIN,r=t.options,i=this.config.plugins;!UR.checkPluginIfExits(n.pluginName,i)&&i.push(n);var o=UR.getRootByConfig(n.pluginName,this.config);o.root&&(r.root=o.root),o.position&&(r.position=o.position);var a,s=r.position?r.position:r.config&&r.config.position||n.defaultConfig&&n.defaultConfig.position;return!r.root&&"string"==typeof s&&zp(s).call(s,"controls")>-1?null===(a=this.controls)||void 0===a?void 0:a.registerPlugin(n,r,n.pluginName):(r.root||(r.root=this._getRootByPosition(s)),UR.register(this,n,r))}},{key:"deregister",value:function(e){"string"==typeof e?UR.unRegister(this,e):e instanceof vR&&UR.unRegister(this,e.pluginName)}},{key:"unRegisterPlugin",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];this.deregister(e),A&&this.removePluginFromConfig(e)}},{key:"removePluginFromConfig",value:function(e){var A;if("string"==typeof e?A=e:e instanceof vR&&(A=e.pluginName),A)for(var t=this.config.plugins.length-1;t>-1;t--){if(this.config.plugins[t].pluginName.toLowerCase()===A.toLowerCase()){var n;Cv(n=this.config.plugins).call(n,t,1);break}}}},{key:"plugins",get:function(){return UR.getPlugins(this)}},{key:"getPlugin",value:function(e){var A=UR.findPlugin(this,e);return A&&A.pluginName?A:null}},{key:"addClass",value:function(e){this.root&&(nw.hasClass(this.root,e)||nw.addClass(this.root,e))}},{key:"removeClass",value:function(e){this.root&&nw.removeClass(this.root,e)}},{key:"hasClass",value:function(e){if(this.root)return nw.hasClass(this.root,e)}},{key:"setAttribute",value:function(e,A){this.root&&this.root.setAttribute(e,A)}},{key:"removeAttribute",value:function(e,A){this.root&&this.root.removeAttribute(e,A)}},{key:"start",value:function(e){var A=this;if(!(this.state>Ek))return e||this.config.url||this.getInitDefinition(),this.hasStart=!0,this.setState(Ek),this._registerPlugins(!1),UR.beforeInit(this).then((function(){if(A.config){e||(e=A.url||A.config.url);var t=A.preProcessUrl(e);return A._startInit(t.url)}})).catch((function(e){throw e.fileName="player",e.lineNumber="236",Aw.logError("start:beforeInit:",e),e}))}},{key:"switchURL",value:function(e,A){var t=this,n=e;"Object"===nw.typeOf(e)&&(n=e.url),n=this.preProcessUrl(n).url;var r=this.currentTime;this.__startTime=r;var i=this.paused&&!this.isError;return this.src=n,new Op((function(e,A){var r=function(e){t.off("timeupdate",o),t.off("canplay",o),A(e)},o=function(){t._seekToStartTime(),i&&t.pause(),t.off("error",r),e(!0)};t.once("error",r),n?(cw.os.isAndroid?t.once("timeupdate",o):t.once("canplay",o),t.play()):t.errorHandler("error",{code:6,message:"empty_src"})}))}},{key:"videoPlay",value:function(){this.mediaPlay()}},{key:"mediaPlay",value:function(){var e=this;if(!this.hasStart&&this.state>>>playPromise.then"),e.setState(Qk),e.emit(Gw))})).catch((function(A){if(Aw.logWarn(">>>>playPromise.catch",A.name),e.media&&e.media.error)return e.onError(),void e.removeClass(xR);"NotAllowedError"===A.name&&(e._errorTimer=nw.setTimeout(e,(function(){e._errorTimer=null,e.emit(_w),e.addClass(ik),e.removeClass(xR),e.pause(),e.setState(Bk)}),0))})):(Aw.logWarn("video.play not return promise"),this.statethis.duration?Uv(this.duration,10):e,!this._isPauseBeforeSeek&&(this._isPauseBeforeSeek=this.paused?2:1),this._onceSeekCanplay&&this.off(Bw,this._onceSeekCanplay),this._onceSeekCanplay=function(){switch(t.removeClass(xR),t.isSeeking=!1,o){case"play":t.play();break;case"pause":t.pause();break;default:t._isPauseBeforeSeek>1||t.paused?t.pause():t.play()}t._isPauseBeforeSeek=0,t._onceSeekCanplay=null},this.once(Bw,this._onceSeekCanplay),this.state0&&n.defaultDefinition&&Jp(e=n.list).call(e,(function(e){e.definition===n.defaultDefinition&&(A.config.url=e.url,A.curDefinition=e)}))}},{key:"changeDefinition",value:function(e,A){var t=this,n=this.config.definition;if(Array.isArray(null==n?void 0:n.list)&&n.list.forEach((function(A){(null==e?void 0:e.definition)===A.definition&&(t.curDefinition=A)})),null!=e&&e.bitrate&&"number"!=typeof e.bitrate&&(e.bitrate=Uv(e.bitrate,10)||0),this.emit(Jw,{from:A,to:e}),this.hasStart){var r=this.switchURL(e.url,om({seamless:!1!==n.seamless&&"undefined"!=typeof MediaSource&&"function"==typeof MediaSource.isTypeSupported},e));r&&r.then?r.then((function(){t.emit(zw,{from:A,to:e})})):this.emit(zw,{from:A,to:e})}else this.config.url=e.url}},{key:"reload",value:function(){this.load(),this.reloadFunc=function(){this.play()},this.once(Dw,this.reloadFunc)}},{key:"resetState",value:function(){var e=this,A=[ik,PR,jR,YR,zR,xR,HR,OR,JR];this.hasStart=!1,this.isError=!1,this._useAutoplay=!1,this.mediaPause(),this._accPlayed.acc=0,this._accPlayed.t=0,this._accPlayed.loopAcc=0,A.forEach((function(A){e.removeClass(A)})),this.addClass(jR),this.emit($w)}},{key:"reset",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;if(this.resetState(),this.plugins&&(Jp(A).call(A,(function(A){e.deregister(A)})),t)){var n,r=ak();zv(n=jp(this.config)).call(n,(function(A){"undefined"===e.config[A]||"plugins"!==A&&"presets"!==A&&"el"!==A&&"id"!==A||(e.config[A]=r[A])}))}}},{key:"destroy",value:function(){var e,A,n=this,r=this.innerContainer,i=this.root,o=this.media;if(i&&o){if(this.hasStart=!1,this._useAutoplay=!1,i.removeAttribute(cR),o.removeAttribute(cR),this.updateAcc("destroy"),this._unbindEvents(),this._detachSourceEvents(this.media),nw.clearAllTimers(this),this.emit(Fw),null===(A=Sk)||void 0===A||A.remove(this),UR.destroy(this),BR(this),fm(Im(t.prototype),"destroy",this).call(this),this.fullscreen&&this._fullscreenEl===this.root&&this.exitFullscreen(),r)for(var a=r.children,s=0;s0?i.className=jv(g).call(g,(function(e){return zp(e).call(e,"xgplayer")<0})).join(" "):i.className="",this.removeAttribute("data-xgfill"),["isSeeking","isCanplay","isActive","cssfullscreen","fullscreen"].forEach((function(e){n[e]=!1}))}}},{key:"replay",value:function(){var e=this;this.removeClass(HR),this.currentTime=0,this.isSeeking=!1,QR(this,"replay",(function(){e.once(Bw,(function(){var A=e.mediaPlay();A&&A.catch&&A.catch((function(e){console.log(e)}))})),e.emit(Tw),e.onPlay()}))}},{key:"retry",value:function(){var e=this;this.removeClass(OR),this.addClass(JR),QR(this,"retry",(function(){var A=e.currentTime,t=e.config.url,n=nw.isMSE(e.media)?{url:t}:e.preProcessUrl(t);e.src=n.url,!e.config.isLive&&(e.currentTime=A),e.once(vw,(function(){e.mediaPlay()}))}))}},{key:"changeFullStyle",value:function(e,A,t,n){e&&(n||(n=$R),this._orgCss||(this._orgCss=nw.filterStyleFromText(e)),nw.addClass(e,t),A&&A!==e&&!this._orgPCss&&(this._orgPCss=nw.filterStyleFromText(A),nw.addClass(A,n),A.setAttribute(cR,this.playerId)))}},{key:"recoverFullStyle",value:function(e,A,t,n){n||(n=$R),this._orgCss&&(nw.setStyleFromCsstext(e,this._orgCss),this._orgCss=""),nw.removeClass(e,t),A&&A!==e&&this._orgPCss&&(nw.setStyleFromCsstext(A,this._orgPCss),this._orgPCss="",nw.removeClass(A,n),A.removeAttribute(cR))}},{key:"getFullscreen",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget,A=this.root,t=this.media;if("video"!==e&&"media"!==e||(e=this[e]),e||(e=A),this._fullScreenOffset={top:nw.scrollTop(),left:nw.scrollLeft()},this._fullscreenEl=e,this._fullActionFrom="get",nw.getFullScreenEl()===this._fullscreenEl)return this.onFullscreenChange(),Op.resolve();try{for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget;this.isRotateFullscreen?this.exitRotateFullscreen():this.fullscreen&&this.exitFullscreen();var t=A?xf(e="".concat(ek," ")).call(e,VR):VR;this.changeFullStyle(this.root,A,t);var n=this.config.fullscreen,r=void 0===n?{}:n;(!0===r.useCssFullscreen||"function"==typeof r.useCssFullscreen&&r.useCssFullscreen())&&(this.fullscreen=!0,this.emit(Yw,!0)),this._cssfullscreenEl=A,this.cssfullscreen=!0,this.emit(Pw,!0)}},{key:"exitCssFullscreen",value:function(){var e,A=this._cssfullscreenEl?xf(e="".concat(ek," ")).call(e,VR):VR;if(this.fullscreen){var t=this.config.fullscreen,n=void 0===t?{}:t;!0===n.useCssFullscreen||"function"==typeof n.useCssFullscreen&&n.useCssFullscreen()?(this.recoverFullStyle(this.root,this._cssfullscreenEl,A),this.fullscreen=!1,this.emit(Yw,!1)):this.removeClass(A)}else this.recoverFullStyle(this.root,this._cssfullscreenEl,A);this._cssfullscreenEl=null,this.cssfullscreen=!1,this.emit(Pw,!1)}},{key:"getRotateFullscreen",value:function(){var e,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.config.fullscreenTarget;this.cssfullscreen&&this.exitCssFullscreen(A);var t=A?xf(e="".concat(ek," ")).call(e,WR):WR;this._fullscreenEl=A||this.root,this.changeFullStyle(this.root,A,t,ZR),this.isRotateFullscreen=!0,this.fullscreen=!0,this.setRotateDeg(90),this._rootStyle=this.root.getAttribute("style"),this.root.style.width="".concat(window.innerHeight,"px"),this.emit(Yw,!0)}},{key:"exitRotateFullscreen",value:function(e){var A,t=this._fullscreenEl!==this.root?xf(A="".concat(ek," ")).call(A,WR):WR;this.recoverFullStyle(this.root,this._fullscreenEl,t,ZR),this.isRotateFullscreen=!1,this.fullscreen=!1,this.setRotateDeg(0),this.emit(Yw,!1),this._rootStyle&&(this.root.style.style=this._rootStyle,this._rootStyle=!1)}},{key:"setRotateDeg",value:function(e){90===window.orientation||-90===window.orientation?this.rotateDeg=0:this.rotateDeg=e}},{key:"focus",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autoHide:!this.config.closeDelayBlur,delay:this.config.inactive};this.isActive?this.onFocus(e):this.emit(Rw,om({paused:this.paused,ended:this.ended},e))}},{key:"blur",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{ignorePaused:!1};this.isActive?(this._clearUserTimer(),this.emit(kw,om({paused:this.paused,ended:this.ended},e))):this.onBlur(e)}},{key:"onFocus",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{autoHide:!0,delay:3e3},t=this.innerStates;if(this.isActive=!0,this.removeClass(XR),this._clearUserTimer(),void 0!==A.isLock&&(t.isActiveLocked=A.isLock),!1===A.autoHide||!0===A.isLock||t.isActiveLocked)this._clearUserTimer();else{var n=A&&A.delay?A.delay:this.config.inactive;this.userTimer=nw.setTimeout(this,(function(){e.userTimer=null,e.blur()}),n)}}},{key:"onBlur",value:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).ignorePaused,A=void 0!==e&&e;if(!this.innerStates.isActiveLocked){var t=this.config.closePauseVideoFocus;this.isActive=!1,(A||t||!this.paused&&!this.ended)&&this.addClass(XR)}}},{key:"onEmptied",value:function(){this.updateAcc("emptied")}},{key:"onCanplay",value:function(){this.removeClass(xR),this.removeClass(OR),this.removeClass(JR),this.isCanplay=!0,this.waitTimer&&nw.clearTimeout(this,this.waitTimer)}},{key:"onLoadeddata",value:function(){var e=this;this.isError=!1,this.isSeeking=!1,this.__startTime>0&&(this.duration>0?this._seekToStartTime():this.once(yw,(function(){e._seekToStartTime()})))}},{key:"onLoadstart",value:function(){this.removeClass(OR),this.isCanplay=!1}},{key:"onPlay",value:function(){this.state===pk&&this.setState(Qk),this.removeClass(YR),this.ended&&this.removeClass(HR),!this.config.closePlayVideoFocus&&this.focus()}},{key:"onPause",value:function(){this.addClass(YR),this.updateAcc("pause"),this.config.closePauseVideoFocus||(this._clearUserTimer(),this.focus())}},{key:"onEnded",value:function(){this.updateAcc("ended"),this.addClass(HR),this.setState(pk)}},{key:"onError",value:function(){this.isError=!0,this.updateAcc("error"),this.removeClass(ik),this.removeClass(jR),this.removeClass(xR),this.removeClass(JR),this.addClass(OR)}},{key:"onSeeking",value:function(){this.isSeeking||this.updateAcc("seeking"),this.isSeeking=!0,this.addClass(ok)}},{key:"onSeeked",value:function(){this.isSeeking=!1,this.waitTimer&&nw.clearTimeout(this,this.waitTimer),this.removeClass(JR),this.removeClass(ok)}},{key:"onWaiting",value:function(){var e=this;this.waitTimer&&nw.clearTimeout(this,this.waitTimer),this.updateAcc("waiting"),this.waitTimer=nw.setTimeout(this,(function(){e.addClass(JR),e.emit(xw),nw.clearTimeout(e,e.waitTimer),e.waitTimer=null}),this.config.minWaitDelay)}},{key:"onPlaying",value:function(){var e=this;this.isError=!1,[jR,YR,HR,OR,zR,JR].forEach((function(A){e.removeClass(A)})),this._accPlayed.t||this.paused||this.ended||(this._accPlayed.t=(new Date).getTime())}},{key:"onTimeupdate",value:function(){!this._videoHeight&&this.media.videoHeight&&this.resize(),(this.waitTimer||this.hasClass(JR))&&this.media.readyState>2&&(this.removeClass(JR),nw.clearTimeout(this,this.waitTimer),this.waitTimer=null),!this.paused&&this.state===Bk&&this.duration&&(this.setState(Qk),this.emit(Gw)),this._accPlayed.t||this.paused||this.ended||(this._accPlayed.t=(new Date).getTime())}},{key:"onVolumechange",value:function(){"Number"===nw.typeOf(this.config.volume)&&(this.config.volume=this.volume)}},{key:"onRatechange",value:function(){this.config.defaultPlaybackRate=this.playbackRate}},{key:"emitUserAction",value:function(e,A,t){if(this.media&&A&&e){var n="String"===nw.typeOf(e)?e:e.type||"";t.props&&"Array"!==nw.typeOf(t.props)&&(t.props=[t.props]),this.emit(Zw,om({eventType:n,action:A,currentTime:this.currentTime,duration:this.duration,ended:this.ended,event:e},t))}}},{key:"updateAcc",value:function(e){if(this._accPlayed.t){var A=(new Date).getTime()-this._accPlayed.t;this._accPlayed.acc+=A,this._accPlayed.t=0,("ended"===e||this.ended)&&(this._accPlayed.loopAcc=this._accPlayed.acc)}}},{key:"checkBuffer",value:function(e){var A=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{startDiff:0,endDiff:0})||{},t=A.startDiff,n=void 0===t?0:t,r=A.endDiff,i=void 0===r?0:r,o=this.media.buffered;if(!o||0===o.length||!this.duration)return!0;for(var a=e||this.media.currentTime||.2,s=o.length,g=0;ga)return!0;return!1}},{key:"resizePosition",value:function(){var e,A=this,t=this.videoPos,n=t.vy,r=t.vx,i=t.h,o=t.w,a=this.videoPos.rotate;if(!(a<0&&i<0&&o<0)){var s=this.videoPos._pi;if(!s&&this.media.videoHeight&&(s=this.media.videoWidth/this.media.videoHeight*100),s){this.videoPos.pi=s;var g={rotate:a=a<0?0:a},c=0,l=0,u=1,I=Math.abs(a/90),h=this.root,C=this.innerContainer,d=h.offsetWidth,E=C?C.offsetHeight:h.offsetHeight,f={},B=E,Q=d;if(I%2==0)u=i>0?100/i:o>0?100/o:1,g.scale=u,c=n>0?(100-i)/2-n:0,g.y=2===I?0-c:c,l=r>0?(100-o)/2-r:0,g.x=2===I?0-l:l,f.width="".concat(Q,"px"),f.height="".concat(B,"px"),f.maxWidth="",f.maxHeight="";else if(I%2==1){B=d;var p=E-d;l=-p/2/(Q=E)*100,g.x=3===I?l+n/2:l-n/2,c=p/2/B*100,g.y=3===I?c+r/2:c-r/2,g.scale=u,f.width="".concat(Q,"px"),f.maxWidth="".concat(Q,"px"),f.height="".concat(B,"px"),f.maxHeight="".concat(B,"px")}var v=nw.getTransformStyle(g,this.media.style.transform||this.media.style.webkitTransform);f.transform=v,f.webkitTransform=v,Jp(e=jp(f)).call(e,(function(e){A.media.style[e]=f[e]}))}}}},{key:"position",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{h:0,y:0,x:0,w:0};if(this.media&&e&&e.h){var A=this.videoPos;A.h=100*e.h||0,A.w=100*e.w||0,A.vx=100*e.x||0,A.vy=100*e.y||0,this.resizePosition()}}},{key:"setConfig",value:function(e){var A,t=this;e&&Jp(A=jp(e)).call(A,(function(A){if("plugins"!==A){t.config[A]=e[A];var n=t.plugins[A.toLowerCase()];n&&"Function"===nw.typeOf(n.setConfig)&&n.setConfig(e[A])}}))}},{key:"playNext",value:function(e){var A=this;this.resetState(),this.setConfig(e),this._currentTime=0,this._duration=0,QR(this,"playnext",(function(){A.start(),A.emit(Vw,e)}))}},{key:"resize",value:function(){var e=this;if(this.media){var A=this.root.getBoundingClientRect();this.sizeInfo.width=A.width,this.sizeInfo.height=A.height,this.sizeInfo.left=A.left,this.sizeInfo.top=A.top;var t=this.media,n=t.videoWidth,r=t.videoHeight,i=this.config,o=i.fitVideoSize,a=i.videoFillMode;if("fill"!==a&&"cover"!==a&&"contain"!==a||this.setAttribute("data-xgfill",a),r&&n){this._videoHeight=r,this._videoWidth=n;var s=this.controls&&this.innerContainer?this.controls.root.getBoundingClientRect().height:0,g=A.width,c=A.height-s,l=Uv(n/r*1e3,10),u=Uv(g/c*1e3,10),I=g,h=c,C={};"auto"===o&&u>l||"fixWidth"===o?(h=g/l*1e3,this.config.fluid?C.paddingTop="".concat(100*h/I,"%"):C.height="".concat(h+s,"px")):("auto"===o&&ul)&&this.setAttribute("data-xgfill","cover");var d={videoScale:l,vWidth:I,vHeight:h,cWidth:I,cHeight:h+s};this.resizePosition(),this.emit(Xw,d)}}}},{key:"updateObjectPosition",value:function(){var e,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.media.updateObjectPosition?this.media.updateObjectPosition(A,t):this.media.style.objectPosition=xf(e="".concat(100*A,"% ")).call(e,100*t,"%")}},{key:"setState",value:function(e){var A;Aw.logInfo("setState",xf(A="state from:".concat(vk[this.state]," to:")).call(A,vk[e])),this._state=e}},{key:"preProcessUrl",value:function(e,A){var t=this.config,n=t.preProcessUrl,r=t.preProcessUrlOptions,i=sy({},r,A);return nw.isBlob(e)||"function"!=typeof n?{url:e}:n(e,i)}},{key:"_seekToStartTime",value:function(){this.__startTime>0&&this.duration>0&&(this.currentTime=this.__startTime>this.duration?this.duration:this.__startTime,this.__startTime=-1)}},{key:"state",get:function(){return this._state}},{key:"isFullscreen",get:function(){return this.fullscreen}},{key:"isCssfullScreen",get:function(){return this.cssfullscreen}},{key:"hasStart",get:function(){return this._hasStart},set:function(e){"boolean"==typeof e&&(this._hasStart=e,!1===e&&this.setState(dk),this.emit("hasstart"))}},{key:"isPlaying",get:function(){return this._state===Qk||this._state===pk},set:function(e){e?this.setState(Qk):this._state>=Qk&&this.setState(fk)}},{key:"definitionList",get:function(){return this.config&&this.config.definition&&this.config.definition.list||[]},set:function(e){var A=this,t=this.config.definition,n=null,r=null;t.list=e,this.emit("resourceReady",e),e.forEach((function(e){var i;(null===(i=A.curDefinition)||void 0===i?void 0:i.definition)===e.definition&&(n=e),t.defaultDefinition===e.definition&&(r=e)})),!r&&e.length>0&&(r=e[0]),n?this.changeDefinition(n):r&&this.changeDefinition(r)}},{key:"videoFrameInfo",get:function(){var e={total:0,dropped:0,corrupted:0,droppedRate:0,droppedDuration:0};if(!this.media||!this.media.getVideoPlaybackQuality)return e;var A=this.media.getVideoPlaybackQuality();return e.dropped=A.droppedVideoFrames||0,e.total=A.totalVideoFrames||0,e.corrupted=A.corruptedVideoFrames||0,e.total>0&&(e.droppedRate=e.dropped/e.total*100,e.droppedDuration=Uv(this.cumulateTime/e.total*e.dropped,0)),e}},{key:"lang",get:function(){return this.config.lang},set:function(e){var A,t;0!==jv(A=hk.langKeys).call(A,(function(A){return A===e})).length||"zh"===e?(this.config.lang=e,UR.setLang(e,this)):console.error(xf(t="Sorry, set lang fail, because the language [".concat(e,"] is not supported now, list of all supported languages is [")).call(t,hk.langKeys.join(),"] "))}},{key:"i18n",get:function(){var e=this.config.lang;return"zh"===e&&(e="zh-cn"),this.__i18n.lang[e]||this.__i18n.lang.en}},{key:"i18nKeys",get:function(){return this.__i18n.textKeys||{}}},{key:"version",get:function(){return lw}},{key:"playerId",get:function(){return this._pluginInfoId}},{key:"url",get:function(){return this.__url||this.config.url},set:function(e){this.__url=e}},{key:"poster",get:function(){return this.plugins.poster?this.plugins.poster.config.poster:this.config.poster},set:function(e){this.plugins.poster&&this.plugins.poster.update(e)}},{key:"readyState",get:function(){return fm(Im(t.prototype),"readyState",this)}},{key:"error",get:function(){var e=fm(Im(t.prototype),"error",this);return this.i18n[e]||e}},{key:"networkState",get:function(){return fm(Im(t.prototype),"networkState",this)}},{key:"fullscreenChanging",get:function(){return!(null===this._fullScreenOffset)}},{key:"cumulateTime",get:function(){var e=this._accPlayed,A=e.acc,t=e.t;return t?(new Date).getTime()-t+A:A}},{key:"zoom",get:function(){return this.config.zoom},set:function(e){this.config.zoom=e}},{key:"videoRotateDeg",get:function(){return this.videoPos.rotate},set:function(e){(e=nw.convertDeg(e))%90==0&&e!==this.videoPos.rotate&&(this.videoPos.rotate=e,this.resizePosition())}},{key:"avgSpeed",get:function(){return kk},set:function(e){kk=e}},{key:"realTimeSpeed",get:function(){return Rk},set:function(e){Rk=e}},{key:"offsetCurrentTime",get:function(){return this._offsetInfo.currentTime||0},set:function(e){this._offsetInfo.currentTime=e}},{key:"offsetDuration",get:function(){return this._offsetInfo.duration||0},set:function(e){this._offsetInfo.duration=e||0}},{key:"hook",value:function(e,A){var t;return uR.call.apply(uR,xf(t=[this]).call(t,Xp(Array.prototype).call(arguments)))}},{key:"useHooks",value:function(e,A){var t;return hR.call.apply(hR,xf(t=[this]).call(t,Xp(Array.prototype).call(arguments)))}},{key:"removeHooks",value:function(e,A){var t;return CR.call.apply(CR,xf(t=[this]).call(t,Xp(Array.prototype).call(arguments)))}},{key:"usePluginHooks",value:function(e,A,t){for(var n,r=arguments.length,i=new Array(r>3?r-3:0),o=3;o3?r-3:0),o=3;o1&&void 0!==arguments[1]?arguments[1]:{},t=arguments.length>2?arguments[2]:void 0;return new Wk(Ff(Ff({errorCode:e},qk[e]),A),t)}function $k(e,A){var t,n,r=qk[e.errorCode]||Vk[e.errorType],i=e.errorCode;return new Wk({messageTextKey:null==r?void 0:r.messageTextKey,message:null!==(t=null==e?void 0:e.message)&&void 0!==t?t:i,errorCode:i,level:null!==(n=null==r?void 0:r.level)&&void 0!==n?n:"Error",ext:e},A)}var eS=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"isEndedShow",get:function(){return this.config.isEndedShow},set:function(e){this.config.isEndedShow=e}},{key:"hide",value:function(){nw.addClass(this.root,"hide")}},{key:"show",value:function(e){nw.removeClass(this.root,"hide")}},{key:"beforeCreate",value:function(e){"string"==typeof e.player.config.poster&&(e.config.poster=e.player.config.poster)}},{key:"afterCreate",value:function(){var e=this;this.on(dw,(function(){e.isEndedShow&&nw.removeClass(e.root,"hide")})),this.config.hideCanplay?(this.once(Qw,(function(){e.onTimeUpdate()})),this.on(Nw,(function(){nw.removeClass(e.root,"hide"),nw.addClass(e.root,"xg-showplay"),e.once(Qw,(function(){e.onTimeUpdate()}))}))):this.on(Cw,(function(){nw.addClass(e.root,"hide")}))}},{key:"setConfig",value:function(e){var A=this;jp(e).forEach((function(t){A.config[t]=e[t]}));var t=this.config.poster;this.update(t)}},{key:"onTimeUpdate",value:function(){var e=this;this.player.currentTime?nw.removeClass(this.root,"xg-showplay"):this.once(Qw,(function(){e.onTimeUpdate()}))}},{key:"update",value:function(e){e&&(this.config.poster=e,this.root.style.backgroundImage="url(".concat(e,")"))}},{key:"getBgSize",value:function(e){var A="";switch(e){case"cover":A="cover";break;case"contain":A="contain";break;case"fixHeight":A="auto 100%";break;default:A=""}return A?"background-size: ".concat(A,";"):""}},{key:"render",value:function(){var e,A,t=this.config,n=t.poster,r=t.hideCanplay,i=t.fillMode,o=t.notHidden,a=this.getBgSize(i),s=n?xf(e="background-image:url(".concat(n,");")).call(e,a):a;return xf(A='\n ')}}],[{key:"pluginName",get:function(){return"poster"}},{key:"defaultConfig",get:function(){return{isEndedShow:!0,hideCanplay:!1,notHidden:!1,poster:"",fillMode:"fixWidth"}}}]),t}(FR);function AS(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}function tS(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var nS={};function rS(e){var A;e?window.clearTimeout(e):Jp(A=jp(nS)).call(A,(function(e){window.clearTimeout(nS[e].id),delete nS[e]}))}var iS=function(e){um(t,e);var A=Em(t);function t(e){var n;return sm(this,t),lm(Cm(n=A.call(this,e)),"onPlayerReset",(function(){n.autoPlayStart=!1;var e="auto"===n.config.mode?"auto-hide":"hide";n.setAttr("data-state","play"),nw.removeClass(n.root,e),n.show()})),lm(Cm(n),"onAutoplayStart",(function(){if(!n.autoPlayStart){var e="auto"===n.config.mode?"auto-hide":"hide";nw.addClass(n.root,e),n.autoPlayStart=!0,n.toggleTo("play")}})),n.autoPlayStart=!1,n}return cm(t,[{key:"afterCreate",value:function(){var e=this.playerConfig;this.initIcons(),this.listenEvents(),this.bindClickEvents(),e.autoplay||this.show()}},{key:"listenEvents",value:function(){var e=this,A=this.player,t=this.playerConfig;this.once(Sw,(function(){t&&(t.lang&&"en"===t.lang?nw.addClass(A.root,"lang-is-en"):"jp"===t.lang&&nw.addClass(A.root,"lang-is-jp"))})),this.on(Gw,this.onAutoplayStart),this.on(_w,(function(){var A="auto"===e.config.mode?"auto-hide":"hide";e.setAttr("data-state","play"),nw.removeClass(e.root,A),e.show()})),this.on(Cw,(function(){e.toggleTo("play")})),this.on(Ew,(function(){e.toggleTo("pause")})),this.on($w,(function(){e.onPlayerReset()}))}},{key:"bindClickEvents",value:function(){var e=this;this.clickHandler=this.hook("startClick",this.switchPausePlay,{pre:function(A){A.cancelable&&A.preventDefault(),A.stopPropagation();var t=e.player.paused;e.emitUserAction(A,"switch_play_pause",{props:"paused",from:t,to:!t})}}),this.bind(["click","touchend"],this.clickHandler)}},{key:"registerIcons",value:function(){return{startPlay:{icon:AS,class:"xg-icon-play"},startPause:{icon:tS,class:"xg-icon-pause"}}}},{key:"initIcons",value:function(){var e=this.icons;this.appendChild("xg-start-inner",e.startPlay),this.appendChild("xg-start-inner",e.startPause)}},{key:"hide",value:function(){nw.addClass(this.root,"hide")}},{key:"show",value:function(e){nw.removeClass(this.root,"hide")}},{key:"focusHide",value:function(){nw.addClass(this.root,"focus-hide")}},{key:"recover",value:function(){nw.removeClass(this.root,"focus-hide")}},{key:"switchStatus",value:function(e){e?this.setAttr("data-state",this.player.paused?"pause":"play"):this.setAttr("data-state",this.player.paused?"play":"pause")}},{key:"animate",value:function(e){var A=this;this._animateId=function(e,A){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{start:null,end:null};return nS[e]&&window.clearTimeout(nS[e].id),nS[e]={},t.start&&t.start(),nS[e].id=window.setTimeout((function(){t.end&&t.end(),window.clearTimeout(nS[e].id),delete nS[e]}),A),nS[e].id}("pauseplay",400,{start:function(){nw.addClass(A.root,"interact"),A.show(),A.switchStatus(!0)},end:function(){nw.removeClass(A.root,"interact"),!e&&A.hide(),A._animateId=null}})}},{key:"endAnimate",value:function(){nw.removeClass(this.root,"interact"),rS(this._animateId),this._animateId=null}},{key:"switchPausePlay",value:function(e){var A=this.player;(e.cancelable&&e.preventDefault(),e.stopPropagation(),A.state\n \n ')}}],[{key:"pluginName",get:function(){return"start"}},{key:"defaultConfig",get:function(){return{isShowPause:!1,isShowEnd:!1,disableAnimate:!1,mode:"hide"}}}]),t}(FR),oS=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"render",value:function(){var e=this.config.innerHtml,A=nw.createDom("xg-enter","",{},"xgplayer-enter");if(e&&e instanceof window.HTMLElement)A.appendChild(e);else if(e&&"string"==typeof e)A.innerHTML=e;else{for(var t="",n=1;n<=12;n++)t+='
');A.innerHTML='
'.concat(t,"
")}return A}}],[{key:"pluginName",get:function(){return"enter"}},{key:"defaultConfig",get:function(){return{innerHtml:"",logo:""}}}]),t}(FR);function aS(e,A,t){try{var n,r;return xf(n=xf(r='
\n ')).call(n,e.i18n[A],"\n
")}catch(P7){return'
'}}var sS=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"afterCreate",value:function(){this.getMini=this.getMini.bind(this),this.exitMini=this.exitMini.bind(this),this.bind("click",this.getMini)}},{key:"getMini",value:function(){this.config.onClick&&this.config.onClick()}},{key:"exitMini",value:function(){this.config.onClick&&this.config.onClick()}},{key:"destroy",value:function(){this.unbind(["click","touchend"],this.getMini)}},{key:"render",value:function(){var e,A="MINISCREEN";return xf(e='\n \n
')).call(e,this.i18n[A],"
\n
")}}],[{key:"pluginName",get:function(){return"miniscreenIcon"}},{key:"defaultConfig",get:function(){return{position:MR.CONTROLS_RIGHT,index:10}}}]),t}(FR);function gS(e){var A=tD(e);return-1===zp(e).call(e,"%")&&!dv(A)&&A}var cS=["paddingLeft","paddingRight","paddingTop","paddingBottom","marginLeft","marginRight","marginTop","marginBottom","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth"],lS=cS.length;function uS(e){if("string"==typeof e&&(e=document.querySelector(e)),e&&"object"===am(e)&&e.nodeType){var A=function(e){return window.getComputedStyle(e)}(e);if("none"===A.display)return function(){for(var e={width:0,height:0,innerWidth:0,innerHeight:0,outerWidth:0,outerHeight:0},A=0;A1&&void 0!==arguments[1]?arguments[1]:{};return sm(this,t),(n=A.call(this)).isEnabled=!0,n.isDragging=!1,n.isDown=!1,n.position={},n.downPoint={},n.dragPoint={x:0,y:0},n.startPos={x:0,y:0},n._root=e instanceof Element?e:document.querySelector(e),n._handlerDom=r.handle instanceof Element?r.handle:document.querySelector(r.handle),n._root&&n._handlerDom?(n._bindStartEvent(),n):dm(n)}return cm(t,[{key:"_bindStartEvent",value:function(){var e,A=this;"ontouchstart"in window?this._startKey="touchstart":this._startKey="mousedown",this["on".concat(this._startKey)]=this["on".concat(this._startKey)].bind(this),this._handlerDom.addEventListener(this._startKey,this["on".concat(this._startKey)]),Jp(e=ES[this._startKey]).call(e,(function(e){A["on".concat(e)]=A["on".concat(e)].bind(A)}))}},{key:"_unbindStartEvent",value:function(){this._handlerDom.removeEventListener(this._startKey,this["on".concat(this._startKey)])}},{key:"_bindPostStartEvents",value:function(e){var A=this;if(e){var t=ES[this._startKey];Jp(t).call(t,(function(e){window.addEventListener(e,A["on".concat(e)])})),this._boundPointerEvents=t}}},{key:"_unbindPostStartEvents",value:function(){var e,A=this;this._boundPointerEvents&&(Jp(e=this._boundPointerEvents).call(e,(function(e){window.removeEventListener(e,A["on".concat(e)])})),delete this._boundPointerEvents)}},{key:"enable",value:function(){this.isEnabled=!0}},{key:"disable",value:function(){this.isEnabled=!1,this.isDragging&&this.onUp()}},{key:"onDocUp",value:function(e){this.onUp()}},{key:"animate",value:function(){var e=this;this.isDragging&&(this.positionDrag(),window.requestAnimationFrame((function(){e.animate()})))}},{key:"positionDrag",value:function(){var e,A=xf(e="translate3d(".concat(this.dragPoint.x,"px, ")).call(e,this.dragPoint.y,"px, 0)");this._root.style.transform=A,this._root.style.webKitTransform=A}},{key:"setLeftTop",value:function(){this._root.style.left=this.position.x+"px",this._root.style.top=this.position.y+"px"}},{key:"onmousedown",value:function(e){this.dragStart(e,e)}},{key:"onmousemove",value:function(e){this.dragMove(e,e)}},{key:"onmouseup",value:function(e){this.dragEnd(e,e)}},{key:"ontouchstart",value:function(e){var A=e.changedTouches[0];this.dragStart(e,A),this.touchIdentifier=void 0!==A.pointerId?A.pointerId:A.identifier,e.preventDefault()}},{key:"ontouchmove",value:function(e){var A=IS(e.changedTouches,this.touchIdentifier);A&&this.dragMove(e,A)}},{key:"ontouchend",value:function(e){var A=IS(e.changedTouches,this.touchIdentifier);A&&this.dragEnd(e,A),e.preventDefault()}},{key:"ontouchcancel",value:function(e){var A=IS(e.changedTouches,this.touchIdentifier);A&&this.dragCancel(e,A)}},{key:"dragStart",value:function(e,A){if(this._root&&!this.isDown&&this.isEnabled){this.downPoint=A,this.dragPoint.x=0,this.dragPoint.y=0,this._getPosition();var t=uS(this._root);this.startPos.x=this.position.x,this.startPos.y=this.position.y,this.startPos.maxY=window.innerHeight-t.height,this.startPos.maxX=window.innerWidth-t.width,this.setLeftTop(),this.isDown=!0,this._bindPostStartEvents(e)}}},{key:"dragRealStart",value:function(e,A){this.isDragging=!0,this.animate(),this.emit(hS,this.startPos)}},{key:"dragEnd",value:function(e,A){this._root&&(this._unbindPostStartEvents(),this.isDragging&&(this._root.style.transform="",this.setLeftTop(),this.emit(dS)),this.presetInfo())}},{key:"_dragPointerMove",value:function(e,A){var t={x:A.pageX-this.downPoint.pageX,y:A.pageY-this.downPoint.pageY};return!this.isDragging&&this.hasDragStarted(t)&&this.dragRealStart(e,A),t}},{key:"dragMove",value:function(e,A){if(e=e||window.event,this.isDown){var t=this.startPos,n=t.x,r=t.y,i=this._dragPointerMove(e,A),o=i.x,a=i.y;o=this.checkContain("x",o,n),a=this.checkContain("y",a,r),this.position.x=n+o,this.position.y=r+a,this.dragPoint.x=o,this.dragPoint.y=a,this.emit(CS,this.position)}}},{key:"dragCancel",value:function(e,A){this.dragEnd(e,A)}},{key:"presetInfo",value:function(){this.isDragging=!1,this.startPos={x:0,y:0},this.dragPoint={x:0,y:0},this.isDown=!1}},{key:"destroy",value:function(){this._unbindStartEvent(),this._unbindPostStartEvents(),this.isDragging&&this.dragEnd(),this.removeAllListeners(),this._handlerDom=null}},{key:"hasDragStarted",value:function(e){return Math.abs(e.x)>3||Math.abs(e.y)>3}},{key:"checkContain",value:function(e,A,t){return A+t<0?0-t:"x"===e&&A+t>this.startPos.maxX?this.startPos.maxX-t:"y"===e&&A+t>this.startPos.maxY?this.startPos.maxY-t:A}},{key:"_getPosition",value:function(){var e=window.getComputedStyle(this._root),A=this._getPositionCoord(e.left,"width"),t=this._getPositionCoord(e.top,"height");this.position.x=dv(A)?0:A,this.position.y=dv(t)?0:t,this._addTransformPosition(e)}},{key:"_addTransformPosition",value:function(e){var A=e.transform;if(0===zp(A).call(A,"matrix")){var t=A.split(","),n=0===zp(A).call(A,"matrix3d")?12:4,r=Uv(t[n],10),i=Uv(t[n+1],10);this.position.x+=r,this.position.y+=i}}},{key:"_getPositionCoord",value:function(e,A){if(-1!==zp(e).call(e,"%")){var t=uS(this._root.parentNode);return t?tD(e)/100*t[A]:0}return Uv(e,10)}}]),t}(mm),BS=function(e){um(t,e);var A=Em(t);function t(e){var n;sm(this,t),lm(Cm(n=A.call(this,e)),"onCancelClick",(function(e){n.exitMini(),n.isClose=!0})),lm(Cm(n),"onCenterClick",(function(e){var A=Cm(n).player;A.paused?A.play():A.pause()})),lm(Cm(n),"onScroll",(function(e){if(!(!window.scrollY&&0!==window.scrollY||Math.abs(window.scrollY-n.pos.scrollY)<50)){var A=Uv(nw.getCss(n.player.root,"height"));A+=n.config.scrollTop,n.pos.scrollY=window.scrollY,window.scrollY>A+5?!n.isMini&&!n.isClose&&n.getMini():window.scrollY<=A&&(n.isMini&&n.exitMini(),n.isClose=!1)}})),n.isMini=!1,n.isClose=!1;var r=Cm(n).config;return n.pos={left:r.left<0?window.innerWidth-r.width-20:r.left,top:r.top<0?window.innerHeight-r.height-20:r.top,height:n.config.height,width:n.config.width,scrollY:window.scrollY||0},n.lastStyle=null,n}return cm(t,[{key:"beforeCreate",value:function(e){"boolean"==typeof e.player.config.mini&&(e.config.isShowIcon=e.player.config.mini)}},{key:"afterCreate",value:function(){var e=this;this.initIcons(),this.on(Ew,(function(){e.setAttr("data-state","pause")})),this.on(Cw,(function(){e.setAttr("data-state","play")}))}},{key:"onPluginsReady",value:function(){var e=this,A=this.player;if(!this.config.disable){if(this.config.isShowIcon){var t={config:{onClick:function(){e.getMini()}}};A.controls.registerPlugin(sS,t,sS.pluginName)}var n=nw.checkTouchSupport()?"touchend":"click";this.bind(".mini-cancel-btn",n,this.onCancelClick),this.bind(".play-icon",n,this.onCenterClick),this.config.disableDrag||(this._draggabilly=new fS(this.player.root,{handle:this.root})),this.config.isScrollSwitch&&window.addEventListener("scroll",this.onScroll)}}},{key:"registerIcons",value:function(){return{play:{icon:AS,class:"xg-icon-play"},pause:{icon:tS,class:"xg-icon-pause"}}}},{key:"initIcons",value:function(){var e=this.icons;this.appendChild(".play-icon",e.play),this.appendChild(".play-icon",e.pause)}},{key:"getMini",value:function(){var e,A=this;if(!this.isMini){var t=this.player,n=this.playerConfig,r=this.config.target||this.player.root;this.lastStyle={},nw.addClass(t.root,"xgplayer-mini"),Jp(e=["width","height","top","left"]).call(e,(function(e){A.lastStyle[e]=r.style[e],r.style[e]="".concat(A.pos[e],"px")})),n.fluid&&(r.style["padding-top"]=""),this.emit(Hw,!0),t.isMini=this.isMini=!0}}},{key:"exitMini",value:function(){var e=this;if(!this.isMini)return!1;var A,t=this.player,n=this.playerConfig,r=this.config.target||this.player.root;(nw.removeClass(t.root,"xgplayer-mini"),this.lastStyle)&&Jp(A=jp(this.lastStyle)).call(A,(function(A){r.style[A]=e.lastStyle[A]}));this.lastStyle=null,n.fluid&&(t.root.style.width="100%",t.root.style.height="0",t.root.style["padding-top"]="".concat(100*n.height/n.width,"%")),this.emit(Hw,!1),this.isMini=t.isMini=!1}},{key:"destroy",value:function(){window.removeEventListener("scroll",this.onScroll);var e=nw.checkTouchSupport()?"touchend":"click";this.unbind(".mini-cancel-btn",e,this.onCancelClick),this.unbind(".play-icon",e,this.onCenterClick),this._draggabilly&&this._draggabilly.destroy(),this._draggabilly=null,this.exitMini()}},{key:"render",value:function(){if(!this.config.disable)return'\n \n \n '.concat(aS(this,"MINI_DRAG",this.playerConfig.isHideTips),'\n \n
\n \n \n \n
\n
\n
\n
')}}],[{key:"pluginName",get:function(){return"miniscreen"}},{key:"defaultConfig",get:function(){return{index:10,disable:!1,width:320,height:180,left:-1,top:-1,isShowIcon:!1,isScrollSwitch:!1,scrollTop:0,disableDrag:!1}}}]),t}(FR),QS={mouseenter:"onMouseEnter",mouseleave:"onMouseLeave",mousemove:"onMouseMove"},pS=["videoClick","videoDbClick"],vS=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;o0&&A.replay():A.paused?A.play():A.pause()}},{key:"onContextmenu",value:function(e){(e=e||window.event).preventDefault&&e.preventDefault(),e.stopPropagation?e.stopPropagation():(e.returnValue=!1,e.cancelBubble=!0)}},{key:"destroy",value:function(){var e,A=this,t=this.player,n=t.video,r=t.root;this.clickTimer&&clearTimeout(this.clickTimer),r.removeEventListener("click",this.onVideoClick,!1),r.removeEventListener("dblclick",this.onVideoDblClick,!1),n.removeEventListener("contextmenu",this.onContextmenu,!1),Jp(e=jp(QS)).call(e,(function(e){r.removeEventListener(e,A[QS[e]],!1)}))}}],[{key:"pluginName",get:function(){return"pc"}},{key:"defaultConfig",get:function(){return{}}}]),t}(vR),yS="press",mS="pressend",DS="doubleclick",wS="click",RS="touchmove",kS="touchstart",SS="touchend",MS={start:"touchstart",end:"touchend",move:"touchmove",cancel:"touchcancel"},GS={start:"mousedown",end:"mouseup",move:"mousemove",cancel:"mouseleave"};function _S(e){return e&&e.length>0?e[e.length-1]:null}var bS=function(){function e(A){var t,n=this,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{eventType:"touch"};sm(this,e),lm(this,"onTouchStart",(function(e){var A=n._pos,t=n.root,r=_S(e.touches);A.x=r?Uv(r.pageX,10):e.pageX,A.y=r?Uv(r.pageX,10):e.pageX,A.start=!0,n.__setPress(e),t.addEventListener(n.events.end,n.onTouchEnd),t.addEventListener(n.events.cancel,n.onTouchCancel),t.addEventListener(n.events.move,n.onTouchMove),n.trigger(kS,e)})),lm(this,"onTouchCancel",(function(e){n.onTouchEnd(e)})),lm(this,"onTouchEnd",(function(e){var A=n._pos,t=n.root;n.__clearPress(),t.removeEventListener(n.events.cancel,n.onTouchCancel),t.removeEventListener(n.events.end,n.onTouchEnd),t.removeEventListener(n.events.move,n.onTouchMove),e.moving=A.moving,e.press=A.press,A.press&&n.trigger(mS,e),n.trigger(SS,e),!A.press&&!A.moving&&n.__setDb(e),A.press=!1,A.start=!1,A.moving=!1})),lm(this,"onTouchMove",(function(e){var A=n._pos,t=n.config,r=_S(e.touches),i=r?Uv(r.pageX,10):e.pageX,o=r?Uv(r.pageY,10):e.pageX,a=i-A.x,s=o-A.y;Math.abs(s)=0)Cv(t=this.__handlers[e]).call(t,r,1)}}},{key:"trigger",value:function(e,A){var t;this.__handlers[e]&&Jp(t=this.__handlers[e]).call(t,(function(t){try{t(A)}catch(WtA){console.error("trigger>>:".concat(e),WtA)}}))}},{key:"destroy",value:function(){var e=this,A={touchend:"onTouchEnd",touchmove:"onTouchMove",touchstart:"onTouchStart"};jp(A).forEach((function(t){e.root.removeEventListener(t,e[A[t]])}))}}]),e}();function TS(){return(new DOMParser).parseFromString('\n \n \n',"image/svg+xml").firstChild}var FS="auto",NS="seeking",LS="playbackrate",US=["videoClick","videoDbClick"],KS=function(e){um(t,e);var A=Em(t);function t(e){var n;return sm(this,t),lm(Cm(n=A.call(this,e)),"onTouchStart",(function(e){var A=Cm(n),t=A.player,r=A.config,i=A.pos,o=A.playerConfig,a=n.getTouche(e);if(a&&!r.disableGesture&&n.duration>0&&!t.ended){i.isStart=!0,n.timer&&clearTimeout(n.timer),nw.checkIsFunction(o.disableSwipeHandler)&&o.disableSwipeHandler(),qf(n).call(n,".xg-dur").innerHTML=nw.format(n.duration);var s=n.root.getBoundingClientRect();90===t.rotateDeg?(i.top=s.left,i.left=s.top,i.width=s.height,i.height=s.width):(i.top=s.top,i.left=s.left,i.width=s.width,i.height=s.height);var g=Uv(a.pageX-i.left,10),c=Uv(a.pageY-i.top,10);i.x=90===t.rotateDeg?c:g,i.y=90===t.rotateDeg?g:c,i.scopeL=r.scopeL*i.width,i.scopeR=(1-r.scopeR)*i.width,i.scopeM1=i.width*(1-r.scopeM)/2,i.scopeM2=i.width-i.scopeM1}})),lm(Cm(n),"onTouchMove",(function(e){var A=n.getTouche(e),t=Cm(n),r=t.pos,i=t.config,o=t.player;if(A&&!i.disableGesture&&n.duration&&r.isStart){var a=i.miniMoveStep,s=i.hideControlsActive,g=Uv(A.pageX-r.left,10),c=Uv(A.pageY-r.top,10),l=90===o.rotateDeg?c:g,u=90===o.rotateDeg?g:c;if(Math.abs(l-r.x)>a||Math.abs(u-r.y)>a){var I=l-r.x,h=u-r.y,C=r.scope;if(-1===C&&(0===(C=n.checkScope(l,u,I,h,r))&&(s?o.blur():o.focus({autoHide:!1}),!r.time&&(r.time=Uv(1e3*o.currentTime,10)+1e3*n.timeOffset)),r.scope=C),-1===C||C>0&&!i.gestureY||0===C&&!i.gestureX)return;n.executeMove(I,h,C,r.width,r.height),r.x=l,r.y=u}}})),lm(Cm(n),"onTouchEnd",(function(e){var A=Cm(n),t=A.player,r=A.pos,i=A.playerConfig;if(setTimeout((function(){t.getPlugin("progress")&&t.getPlugin("progress").resetSeekState()}),10),r.isStart){r.scope>-1&&e.cancelable&&e.preventDefault();var o=n.config,a=o.disableGesture,s=o.gestureX;!a&&s?n.endLastMove(r.scope):r.time=0,r.scope=-1,n.resetPos(),nw.checkIsFunction(i.enableSwipeHandler)&&i.enableSwipeHandler(),n.changeAction(FS)}})),lm(Cm(n),"onRootTouchMove",(function(e){!n.config.disableGesture&&n.config.gestureX&&n.checkIsRootTarget(e)&&(e.stopPropagation(),n.pos.isStart?n.onTouchMove(e):n.onTouchStart(e))})),lm(Cm(n),"onRootTouchEnd",(function(e){n.pos.scope>-1&&n.onTouchEnd(e)})),n.pos={isStart:!1,x:0,y:0,time:0,volume:0,rate:1,light:0,width:0,height:0,scopeL:0,scopeR:0,scopeM1:0,scopeM2:0,scope:-1},n.timer=null,n}return cm(t,[{key:"duration",get:function(){return this.playerConfig.customDuration||this.player.duration}},{key:"timeOffset",get:function(){return this.playerConfig.timeOffset||0}},{key:"registerIcons",value:function(){return{seekTipIcon:{icon:TS,class:"xg-seek-pre"}}}},{key:"afterCreate",value:function(){var e,A=this;Jp(US).call(US,(function(e){A.__hooks[e]=null}));var t=this.playerConfig,n=this.config,r=this.player;!0===t.closeVideoDblclick&&(n.closedbClick=!0),this.resetPos(),nw.isUndefined(t.disableGesture)||(n.disableGesture=!!t.disableGesture),this.appendChild(".xg-seek-icon",this.icons.seekTipIcon),this.xgMask=nw.createDom("xg-mask","",{},"xgmask"),r.root.appendChild(this.xgMask),this.initCustomStyle(),this.registerThumbnail();var i="mouse"===this.domEventType?"mouse":"touch";this.touch=new bS(this.root,{eventType:i,needPreventDefault:!this.config.disableGesture}),this.root.addEventListener("contextmenu",(function(e){e.preventDefault()})),r.root.addEventListener("touchmove",this.onRootTouchMove,!0),r.root.addEventListener("touchend",this.onRootTouchEnd,!0),r.root.addEventListener("touchcancel",this.onRootTouchEnd,!0);var o=this.player.controls;o&&o.center&&(o.center.addEventListener("touchmove",this.onRootTouchMove,!0),o.center.addEventListener("touchend",this.onRootTouchEnd,!0),o.center.addEventListener("touchcancel",this.onRootTouchEnd,!0)),this.on(yw,(function(){var e=A.player,t=A.config;e.duration>0&&1e3*e.duration0&&(A.pos.time=0)}));var a={touchstart:"onTouchStart",touchmove:"onTouchMove",touchend:"onTouchEnd",press:"onPress",pressend:"onPressEnd",click:"onClick",doubleclick:"onDbClick"};if(Jp(e=jp(a)).call(e,(function(e){A.touch.on(e,(function(t){A[a[e]](t)}))})),!n.disableActive){var s=r.plugins.progress;s&&(s.addCallBack("dragmove",(function(e){A.activeSeekNote(e.currentTime,e.forward)})),["dragend","click"].forEach((function(e){s.addCallBack(e,(function(){A.changeAction(FS)}))})))}}},{key:"registerThumbnail",value:function(){var e=this.player.plugins.thumbnail;if(e&&e.usable){this.thumbnail=e.createThumbnail(null,"mobile-thumbnail");var A=qf(this).call(this,".time-preview");A.insertBefore(this.thumbnail,A.children[0])}}},{key:"initCustomStyle",value:function(){var e=(this.playerConfig||{}).commonStyle,A=e.playedColor,t=e.progressColor,n=e.timePreviewStyle,r=e.curTimeColor,i=e.durationColor;A&&(qf(this).call(this,".xg-curbar").style.backgroundColor=A);t&&(qf(this).call(this,".xg-bar").style.backgroundColor=t);if(n){var o=qf(this).call(this,".time-preview");jp(n).forEach((function(e){o.style[e]=n[e]}))}var a=r||A,s=i;a&&(qf(this).call(this,".xg-cur").style.color=a),s&&(qf(this).call(this,".xg-dur").style.color=s),this.config.disableTimeProgress&&nw.addClass(qf(this).call(this,".xg-timebar"),"hide")}},{key:"resetPos",value:function(){var e,A=this;this.pos?(this.pos.isStart=!1,this.pos.scope=-1,Jp(e=["x","y","width","height","scopeL","scopeR","scopeM1","scopeM2"]).call(e,(function(e){A.pos[e]=0}))):this.pos={isStart:!1,x:0,y:0,volume:0,rate:1,light:0,width:0,height:0,scopeL:0,scopeR:0,scopeM1:0,scopeM2:0,scope:-1,time:0}}},{key:"changeAction",value:function(e){var A=this.player;this.root.setAttribute("data-xg-action",e);var t=A.plugins.start;t&&t.recover()}},{key:"getTouche",value:function(e){this.player.rotateDeg;var A=e.touches&&e.touches.length>0?e.touches[e.touches.length-1]:e;return{pageX:A.pageX,pageY:A.pageY}}},{key:"checkScope",value:function(e,A,t,n,r){var i=r.width,o=-1;if(e<0||e>i)return o;var a=0===n?Math.abs(t):Math.abs(t/n);return Math.abs(t)>0&&a>=1.73&&e>r.scopeM1&&er.scopeR?2:3),o}},{key:"executeMove",value:function(e,A,t,n,r){switch(t){case 0:this.updateTime(e/n*this.config.scopeM);break;case 1:this.updateBrightness(A/r);break;case 2:cw.os.isIos||this.updateVolume(A/r)}}},{key:"endLastMove",value:function(e){var A=this,t=this.pos,n=this.player,r=this.config,i=(t.time-this.timeOffset)/1e3;if(0===e)n.seek(Number(i).toFixed(1)),r.hideControlsEnd?n.blur():n.focus(),this.timer=setTimeout((function(){A.pos.time=0}),500);this.changeAction(FS)}},{key:"checkIsRootTarget",value:function(e){var A=this.player.plugins||{};return(!A.progress||!A.progress.root.contains(e.target))&&(A.start&&A.start.root.contains(e.target)||A.controls&&A.controls.root.contains(e.target))}},{key:"sendUseAction",value:function(e){var A=this.player.paused;this.emitUserAction(e,"switch_play_pause",{prop:"paused",from:A,to:!A})}},{key:"clickHandler",value:function(e){var A=this.player,t=this.config,n=this.playerConfig;A.state=Qk&&(this.sendUseAction(nw.createEvent("dblclick")),this.switchPlayPause())}},{key:"onClick",value:function(e){var A=this,t=this.player;QR(this,US[0],(function(e,t){A.clickHandler(t.e)}),{e:e,paused:t.paused})}},{key:"onDbClick",value:function(e){var A=this,t=this.player;QR(this,US[1],(function(e,t){A.dbClickHandler(t.e)}),{e:e,paused:t.paused})}},{key:"onPress",value:function(e){var A=this.pos,t=this.config,n=this.player;t.disablePress||(A.rate=this.player.playbackRate,this.emitUserAction("press","change_rate",{prop:"playbackRate",from:n.playbackRate,to:t.pressRate}),n.playbackRate=t.pressRate,this.changeAction(LS))}},{key:"onPressEnd",value:function(e){var A=this.pos,t=this.config,n=this.player;t.disablePress||(this.emitUserAction("pressend","change_rate",{prop:"playbackRate",from:n.playbackRate,to:A.rate}),n.playbackRate=A.rate,A.rate=1,this.changeAction(FS))}},{key:"updateTime",value:function(e){var A=this.player,t=this.config,n=this.player.duration;e=Number(e.toFixed(4));var r=Uv(e*t.moveDuration,10)+this.timeOffset;r=(r+=this.pos.time)<0?0:r>1e3*n?1e3*n-200:r,A.getPlugin("time")&&A.getPlugin("time").updateTime(r/1e3),A.getPlugin("progress")&&A.getPlugin("progress").updatePercent(r/1e3/this.duration,!0),this.activeSeekNote(r/1e3,e>0),t.isTouchingSeek&&A.seek(Number((r-this.timeOffset)/1e3).toFixed(1)),this.pos.time=r}},{key:"updateVolume",value:function(e){this.player.rotateDeg&&(e=-e);var A=this.player,t=this.pos;if(e=Uv(100*e,10),t.volume+=e,!(Math.abs(t.volume)<10)){var n=Uv(10*A.volume,10)-Uv(t.volume/10,10);n=n>10?10:n<1?0:n,A.volume=n/10,t.volume=0}}},{key:"updateBrightness",value:function(e){var A=this.pos,t=this.config,n=this.xgMask;if(t.darkness){this.player.rotateDeg&&(e=-e);var r=A.light+.8*e;r=r>t.maxDarkness?t.maxDarkness:r<0?0:r,n&&(n.style.backgroundColor="rgba(0,0,0,".concat(r,")")),A.light=r}}},{key:"activeSeekNote",value:function(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],t=this.player,n=this.config,r=!(this.duration!==1/0&&this.duration>0);if(e&&"number"==typeof e&&!r&&!n.disableActive){e<0?e=0:e>t.duration&&(e=t.duration-.2),this.changeAction(NS);var i=t.plugins.start;if(i&&i.focusHide(),qf(this).call(this,".xg-dur").innerHTML=nw.format(this.duration),qf(this).call(this,".xg-cur").innerHTML=nw.format(e),qf(this).call(this,".xg-curbar").style.width="".concat(e/this.duration*100,"%"),A)nw.removeClass(qf(this).call(this,".xg-seek-show"),"xg-back");else nw.addClass(qf(this).call(this,".xg-seek-show"),"xg-back");this.updateThumbnails(e)}}},{key:"updateThumbnails",value:function(e){var A=this.player.plugins.thumbnail;A&&A.usable&&this.thumbnail&&A.update(this.thumbnail,e,160,90)}},{key:"switchPlayPause",value:function(){var e=this.player;if(e.state\n
\n
\n
\n \n 00:00\n /\n 00:00\n
\n
\n
\n
\n
\n
\n ')).call(A,this.config.pressRate,"X")).call(e,this.i18n.FORWARD,"\n
\n \n ")}}],[{key:"pluginName",get:function(){return"mobile"}},{key:"defaultConfig",get:function(){return{index:0,disableGesture:!1,gestureX:!0,gestureY:!0,gradient:"normal",isTouchingSeek:!1,miniMoveStep:5,miniYPer:5,scopeL:.25,scopeR:.25,scopeM:.9,pressRate:2,darkness:!0,maxDarkness:.8,disableActive:!1,disableTimeProgress:!1,hideControlsActive:!1,hideControlsEnd:!1,moveDuration:36e4,closedbClick:!1,disablePress:!0,disableSeekIcon:!1,focusVideoClick:!1}}}]),t}(FR);Gt({target:"String",proto:!0},{repeat:Sm});var xS=jc("String").repeat,YS=ce,PS=xS,HS=String.prototype,JS=i((function(e){var A=e.repeat;return"string"==typeof e||e===HS||YS(HS,e)&&A===HS.repeat?PS:A}));function OS(e){var A=e.tagName;return!("INPUT"!==A&&"TEXTAREA"!==A&&!e.isContentEditable)}var zS=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;o0&&n-r>.9*A)}},{key:"checkCode",value:function(e,A){var t,n=this,r=!1;return Jp(t=jp(this.keyCodeMap)).call(t,(function(t){n.keyCodeMap[t]&&e===n.keyCodeMap[t].keyCode&&!n.keyCodeMap[t].disable&&(r=!A||A&&!n.keyCodeMap[t].noBodyTarget)})),r}},{key:"downVolume",value:function(e){var A=this.player;if(!(A.volume<=0)){var t=tD((A.volume-.1).toFixed(1)),n={volume:{from:A.volume,to:t}};this.emitUserAction(e,"change_volume",{props:n}),A.volume=t>=0?t:0}}},{key:"upVolume",value:function(e){var A=this.player;if(!(A.volume>=1)){var t=tD((A.volume+.1).toFixed(1)),n={volume:{from:A.volume,to:t}};this.emitUserAction(e,"change_volume",{props:n}),A.volume=t<=1?t:1}}},{key:"seek",value:function(e){var A=this.player,t=A.currentTime,n=A.offsetCurrentTime,r=A.duration,i=A.offsetDuration,o=A.timeSegments,a=n>-1?n:t,s=i||r,g=JS(e)&&this.seekStep>=4?Uv(this.seekStep/2,10):this.seekStep;a+g<=s?a+=g:a=s;var c=nw.getCurrentTimeByOffset(a,o),l={currentTime:{from:t,to:c}};this.emitUserAction(e,"seek",{props:l}),this.player.currentTime=c}},{key:"seekBack",value:function(e){var A=this.player,t=A.currentTime,n=A.offsetCurrentTime,r=A.timeSegments,i=(n>-1?n:t)-(JS(e)?Uv(this.seekStep/2,10):this.seekStep);i<0&&(i=0);var o={currentTime:{from:t,to:i=nw.getCurrentTimeByOffset(i,r)}};this.emitUserAction(e,"seek",{props:o}),this.player.currentTime=i}},{key:"changePlaybackRate",value:function(e){var A=this._keyState,t=this.config,n=this.player;0===A.playbackRate&&(A.playbackRate=n.playbackRate,n.playbackRate=t.playbackRate)}},{key:"playPause",value:function(e){var A=this.player;A&&(this.emitUserAction(e,"switch_play_pause"),A.paused?A.play():A.pause())}},{key:"exitFullscreen",value:function(e){var A=this.player,t=A.fullscreen,n=A.cssfullscreen;t&&(this.emitUserAction("keyup","switch_fullscreen",{prop:"fullscreen",from:t,to:!t}),A.exitFullscreen()),n&&(this.emitUserAction("keyup","switch_css_fullscreen",{prop:"cssfullscreen",from:n,to:!n}),A.exitCssFullscreen())}},{key:"handleKeyDown",value:function(e){var A=this._keyState;if(JS(e)){A.isPress=!0;var t=Date.now();if(t-A.tt<200)return;A.tt=t}this.handleKeyCode(e.keyCode,e,A.isPress)}},{key:"handleKeyUp",value:function(e){var A=this._keyState;A.playbackRate>0&&(this.player.playbackRate=A.playbackRate,A.playbackRate=0),A.isKeyDown=!1,A.isPress=!1,A.tt=0}},{key:"handleKeyCode",value:function(e,A,t){for(var n,r=jp(this.keyCodeMap),i=0;i\n \n\n',"image/svg+xml").firstChild}var XS=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"registerIcons",value:function(){return{loadingIcon:jS}}},{key:"afterCreate",value:function(){this.appendChild("xg-loading-inner",this.icons.loadingIcon)}},{key:"render",value:function(){return'\n \n \n '}}],[{key:"pluginName",get:function(){return"loading"}},{key:"defaultConfig",get:function(){return{position:MR.ROOT}}}]),t}(FR),qS=Gt,VS=no.findIndex,WS="findIndex",ZS=!0;WS in[]&&Array(1)[WS]((function(){ZS=!1})),qS({target:"Array",proto:!0,forced:ZS},{findIndex:function(e){return VS(this,e,arguments.length>1?arguments[1]:void 0)}});var $S=jc("Array").findIndex,eM=ce,AM=$S,tM=Array.prototype,nM=i((function(e){var A=e.findIndex;return e===tM||eM(tM,e)&&A===tM.findIndex?AM:A})),rM=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;o\n
\n
\n '.concat(aS(this,"PLAY_TIPS",this.playerConfig.isHideTips),"\n ")}}],[{key:"pluginName",get:function(){return"play"}},{key:"defaultConfig",get:function(){return{position:MR.CONTROLS_LEFT,index:0,disable:!1}}}]),t}(rM);function oM(){return(new DOMParser).parseFromString('\n \n \n \n',"image/svg+xml").firstChild}var aM=function(e){um(t,e);var A=Em(t);function t(){return sm(this,t),A.apply(this,arguments)}return cm(t,[{key:"afterCreate",value:function(){var e=this;this.initIcons(),this.onClick=function(A){A.preventDefault(),A.stopPropagation(),e.config.onClick(A)},this.bind(["click","touchend"],this.onClick)}},{key:"registerIcons",value:function(){return{screenBack:{icon:oM,class:"xg-fullscreen-back"}}}},{key:"initIcons",value:function(){var e=this.icons;this.appendChild(this.root,e.screenBack)}},{key:"show",value:function(){nw.addClass(this.root,"show")}},{key:"hide",value:function(){nw.removeClass(this.root,"show")}},{key:"render",value:function(){return'\n '}}],[{key:"pluginName",get:function(){return"topbackicon"}},{key:"defaultConfig",get:function(){return{position:MR.ROOT_TOP,index:0}}}]),t}(FR);function sM(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}function gM(){return(new DOMParser).parseFromString('\n \n\n',"image/svg+xml").firstChild}var cM=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;o1&&this.lockScreen(t.lockOrientationType))}},{key:"animate",value:function(e){e?this.setAttr("data-state","full"):this.setAttr("data-state","normal"),this.topBackIcon&&(e?(this.topBackIcon.show(),this.hide()):(this.topBackIcon.hide(),this.show()))}},{key:"render",value:function(){if(!this.config.disable){return'\n
\n
\n '.concat(aS(this,"FULLSCREEN_TIPS",this.playerConfig.isHideTips),"\n
")}}},{key:"lockScreen",value:function(e){try{screen.orientation.lock(e).catch((function(e){}))}catch(P7){}}},{key:"unlockScreen",value:function(){try{screen.orientation.unlock().catch((function(e){}))}catch(P7){}}}],[{key:"pluginName",get:function(){return"fullscreen"}},{key:"defaultConfig",get:function(){return{position:MR.CONTROLS_RIGHT,index:0,useCssFullscreen:!1,rotateFullscreen:!1,useScreenOrientation:!1,lockOrientationType:"landscape",switchCallback:null,target:null,disable:!1,needBackIcon:!1}}}]),t}(rM);function lM(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}function uM(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}function IM(){return(new DOMParser).parseFromString('\n \n \n\n',"image/svg+xml").firstChild}var hM=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;or.barH||n.updateVolumePos(a,e)}})),lm(Cm(n),"onBarMouseUp",(function(e){nw.event(e),document.removeEventListener("mouseup",n.onBarMouseUp);var A=Cm(n)._d;A.isStart=!1,A.isMoving=!1})),lm(Cm(n),"onMouseenter",(function(e){n._d.isActive=!0,n.focus(),n.emit("icon_mouseenter",{pluginName:n.pluginName})})),lm(Cm(n),"onMouseleave",(function(e){n._d.isActive=!1,n.unFocus(100,!1,e),n.emit("icon_mouseleave",{pluginName:n.pluginName})})),lm(Cm(n),"onVolumeChange",(function(e){if(n.player){var A=n.player,t=A.muted,r=A.volume;n._d.isMoving||(qf(n).call(n,".xgplayer-drag").style.height=t||0===r?"4px":"".concat(100*r,"%"),n.config.showValueLabel&&n.updateVolumeValue()),n.animate(t,r)}})),n}return cm(t,[{key:"registerIcons",value:function(){return{volumeSmall:{icon:uM,class:"xg-volume-small"},volumeLarge:{icon:lM,class:"xg-volume"},volumeMuted:{icon:IM,class:"xg-volume-mute"}}}},{key:"afterCreate",value:function(){var e=this;if(this._timerId=null,this._d={isStart:!1,isMoving:!1,isActive:!1},!this.config.disable){this.initIcons();var A=this.playerConfig,t=A.commonStyle,n=A.volume;if(t.volumeColor)qf(this).call(this,".xgplayer-drag").style.backgroundColor=t.volumeColor;this.changeMutedHandler=this.hook("mutedChange",(function(A){e.changeMuted(A)}),{pre:function(e){e.preventDefault(),e.stopPropagation()}}),this._onMouseenterHandler=this.hook("mouseenter",this.onMouseenter),this._onMouseleaveHandler=this.hook("mouseleave",this.onMouseleave),"mobile"!==cw.device&&"mobile"!==this.playerConfig.isMobileSimulateMode&&(this.bind("mouseenter",this._onMouseenterHandler),this.bind(["blur","mouseleave"],this._onMouseleaveHandler),this.bind(".xgplayer-slider","mousedown",this.onBarMousedown),this.bind(".xgplayer-slider","mousemove",this.onBarMouseMove),this.bind(".xgplayer-slider","mouseup",this.onBarMouseUp)),this.bind(".xgplayer-icon",["touchend","click"],this.changeMutedHandler),this.on(mw,this.onVolumeChange),this.once(Dw,this.onVolumeChange),"Number"!==nw.typeOf(n)&&(this.player.volume=this.config.default),this.onVolumeChange()}}},{key:"updateVolumePos",value:function(e,A){var t=this.player,n=qf(this).call(this,".xgplayer-drag"),r=qf(this).call(this,".xgplayer-bar");if(r&&n){var i=Uv(e/r.getBoundingClientRect().height*1e3,10);n.style.height="".concat(e,"px");var o=Math.max(Math.min(i/1e3,1),0),a={volume:{from:t.volume,to:o}};t.muted&&(a.muted={from:!0,to:!1}),this.emitUserAction(A,"change_volume",{muted:t.muted,volume:t.volume,props:a}),t.volume=Math.max(Math.min(i/1e3,1),0),t.muted&&(t.muted=!1),this.config.showValueLabel&&this.updateVolumeValue()}}},{key:"updateVolumeValue",value:function(){var e=this.player,A=e.volume,t=e.muted,n=qf(this).call(this,".xgplayer-value-label"),r=Math.max(Math.min(A,1),0);n.innerText=t?0:Math.round(100*r)}},{key:"focus",value:function(){this.player.focus({autoHide:!1}),this._timerId&&(nw.clearTimeout(this,this._timerId),this._timerId=null),nw.addClass(this.root,"slide-show")}},{key:"unFocus",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:100,t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2?arguments[2]:void 0,r=this._d,i=this.player;r.isActive||(this._timerId&&(nw.clearTimeout(this,this._timerId),this._timerId=null),this._timerId=nw.setTimeout(this,(function(){r.isActive||(t?i.blur():i.focus(),nw.removeClass(e.root,"slide-show"),r.isStart&&e.onBarMouseUp(n)),e._timerId=null}),A))}},{key:"changeMuted",value:function(e){e&&e.stopPropagation();var A=this.player;this._d.isStart&&this.onBarMouseUp(e),this.emitUserAction(e,"change_muted",{muted:A.muted,volume:A.volume,props:{muted:{from:A.muted,to:!A.muted}}}),A.volume>0&&(A.muted=!A.muted),A.volume<.01&&(A.volume=this.config.miniVolume)}},{key:"animate",value:function(e,A){e||0===A?this.setAttr("data-state","mute"):A<.5&&this.icons.volumeSmall?this.setAttr("data-state","small"):this.setAttr("data-state","normal")}},{key:"initIcons",value:function(){var e=this.icons;this.appendChild(".xgplayer-icon",e.volumeSmall),this.appendChild(".xgplayer-icon",e.volumeLarge),this.appendChild(".xgplayer-icon",e.volumeMuted)}},{key:"destroy",value:function(){this._timerId&&(nw.clearTimeout(this,this._timerId),this._timerId=null),this.unbind("mouseenter",this.onMouseenter),this.unbind(["blur","mouseleave"],this.onMouseleave),this.unbind(".xgplayer-slider","mousedown",this.onBarMousedown),this.unbind(".xgplayer-slider","mousemove",this.onBarMouseMove),this.unbind(".xgplayer-slider","mouseup",this.onBarMouseUp),document.removeEventListener("mouseup",this.onBarMouseUp),this.unbind(".xgplayer-icon","mobile"===cw.device?"touchend":"click",this.changeMutedHandler)}},{key:"render",value:function(){var e;if(!this.config.disable){var A=this.config.default||this.player.volume,t=this.config.showValueLabel;return xf(e='\n \n
\n
\n \n '.concat(t?'
'.concat(100*A,"
"):"",'\n
\n \n
\n
\n
')}}}],[{key:"pluginName",get:function(){return"volume"}},{key:"defaultConfig",get:function(){return{position:MR.CONTROLS_RIGHT,index:1,disable:!1,showValueLabel:!1,default:.6,miniVolume:.2}}}]),t}(FR);function CM(){return(new DOMParser).parseFromString('\n \n',"image/svg+xml").firstChild}function dM(){return(new DOMParser).parseFromString('\n \n \n',"image/svg+xml").firstChild}var EM="picture-in-picture",fM="inline",BM="fullscreen",QM=function(e){um(t,e);var A=Em(t);function t(){var e,n;sm(this,t);for(var r=arguments.length,i=new Array(r),o=0;o\n
\n
\n '.concat(aS(this,"PIP",this.playerConfig.isHideTips),"\n ")}}],[{key:"pluginName",get:function(){return"pip"}},{key:"defaultConfig",get:function(){return{position:MR.CONTROLS_RIGHT,index:6,showIcon:!1,preferDocument:!1,width:void 0,height:void 0,docPiPNode:void 0,docPiPStyle:void 0}}},{key:"checkWebkitSetPresentationMode",value:function(e){return"function"==typeof e.webkitSetPresentationMode}}]),t}(rM),pM=s,vM=CA("iterator"),yM=!pM((function(){var e=new URL("b?a=1&b=2&c=3","http://a"),A=e.searchParams,t="";return e.pathname="c%20d",A.forEach((function(e,n){A.delete("b"),t+=n+e})),!e.toJSON||!A.size&&true||!A.sort||"http://a/c%20d?a=1&c=3"!==e.href||"3"!==A.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!A[vM]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("http://褌械褋褌").host||"#%D0%B1"!==new URL("http://a#斜").hash||"a1c3"!==t||"x"!==new URL("http://x",void 0).host})),mM=B,DM=2147483647,wM=/[^\0-\u007E]/,RM=/[.\u3002\uFF0E\uFF61]/g,kM="Overflow: input needs wider integers to process",SM=RangeError,MM=mM(RM.exec),GM=Math.floor,_M=String.fromCharCode,bM=mM("".charCodeAt),TM=mM([].join),FM=mM([].push),NM=mM("".replace),LM=mM("".split),UM=mM("".toLowerCase),KM=function(e){return e+22+75*(e<26)},xM=function(e,A,t){var n=0;for(e=t?GM(e/700):e>>1,e+=GM(e/A);e>455;)e=GM(e/35),n+=36;return GM(n+36*e/(e+38))},YM=function(e){var A=[];e=function(e){for(var A=[],t=0,n=e.length;t=55296&&r<=56319&&t=i&&nGM((DM-o)/l))throw SM(kM);for(o+=(c-i)*l,i=c,t=0;tDM)throw SM(kM);if(n==i){for(var u=o,I=36;;){var h=I<=a?1:I>=a+26?26:I-a;if(u0?arguments[0]:void 0));zM||(this.length=e.entries.length)},WG=VG.prototype;if(VM(WG,{append:function(e,A){uG(arguments.length,2);var t=fG(this);bG(t.entries,{key:aG(e),value:aG(A)}),zM||this.length++,t.updateURL()},delete:function(e){uG(arguments.length,1);for(var A=fG(this),t=A.entries,n=aG(e),r=0;rA.key?1:-1})),e.updateURL()},forEach:function(e){for(var A,t=fG(this).entries,n=nG(e,arguments.length>1?arguments[1]:void 0),r=0;r1?e_(arguments[1]):{})}}),AG(yG)){var A_=function(e){return eG(this,DG),new yG(e,arguments.length>1?e_(arguments[1]):{})};DG.constructor=A_,A_.prototype=DG,PM({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:A_})}}var t_,n_=Gt,r_=_,i_=yM,o_=a,a_=$A,s_=B,g_=ai,c_=gi,l_=Zu,u_=AA,I_=oy,h_=DE,C_=$r,d_=Cc.codeAt,E_=function(e){var A,t,n=[],r=LM(NM(UM(e),RM,"."),".");for(A=0;A?@[\\\]^|]/,Ab=/[\0\t\n\r #/:<>?@[\\\]^|]/,tb=/^[\u0000-\u0020]+/,nb=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,rb=/[\t\n\r]/g,ib=function(e){var A,t,n,r;if("number"==typeof e){for(A=[],t=0;t<4;t++)H_(A,e%256),e=M_(e/256);return T_(A,".")}if("object"==typeof e){for(A="",n=function(e){for(var A=null,t=1,n=null,r=0,i=0;i<8;i++)0!==e[i]?(r>t&&(A=n,t=r),n=null,r=0):(null===n&&(n=i),++r);return r>t&&(A=n,t=r),A}(e),t=0;t<8;t++)r&&0===e[t]||(r&&(r=!1),n===t?(A+=t?":":"::",r=!0):(A+=F_(e[t],16),t<7&&(A+=":")));return"["+A+"]"}return e},ob={},ab=I_({},ob,{" ":1,'"':1,"<":1,">":1,"`":1}),sb=I_({},ab,{"#":1,"?":1,"{":1,"}":1}),gb=I_({},sb,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),cb=function(e,A){var t=d_(e,0);return t>32&&t<127&&!u_(A,e)?e:encodeURIComponent(e)},lb={ftp:21,file:null,http:80,https:443,ws:80,wss:443},ub=function(e,A){var t;return 2==e.length&&b_(j_,__(e,0))&&(":"==(t=__(e,1))||!A&&"|"==t)},Ib=function(e){var A;return e.length>1&&ub(Y_(e,0,2))&&(2==e.length||"/"===(A=__(e,2))||"\\"===A||"?"===A||"#"===A)},hb=function(e){return"."===e||"%2e"===P_(e)},Cb={},db={},Eb={},fb={},Bb={},Qb={},pb={},vb={},yb={},mb={},Db={},wb={},Rb={},kb={},Sb={},Mb={},Gb={},_b={},bb={},Tb={},Fb={},Nb=function(e,A,t){var n,r,i,o=f_(e);if(A){if(r=this.parse(o))throw k_(r);this.searchParams=null}else{if(void 0!==t&&(n=new Nb(t,!0)),r=this.parse(o,null,n))throw k_(r);(i=w_(new D_)).bindURL(this),this.searchParams=i}};Nb.prototype={type:"URL",parse:function(e,A,t){var n,r,i,o,a,s=this,g=A||Cb,c=0,l="",u=!1,I=!1,h=!1;for(e=f_(e),A||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,e=U_(e,tb,""),e=U_(e,nb,"$1")),e=U_(e,rb,""),n=h_(e);c<=n.length;){switch(r=n[c],g){case Cb:if(!r||!b_(j_,r)){if(A)return J_;g=Eb;continue}l+=P_(r),g=db;break;case db:if(r&&(b_(X_,r)||"+"==r||"-"==r||"."==r))l+=P_(r);else{if(":"!=r){if(A)return J_;l="",g=Eb,c=0;continue}if(A&&(s.isSpecial()!=u_(lb,l)||"file"==l&&(s.includesCredentials()||null!==s.port)||"file"==s.scheme&&!s.host))return;if(s.scheme=l,A)return void(s.isSpecial()&&lb[s.scheme]==s.port&&(s.port=null));l="","file"==s.scheme?g=kb:s.isSpecial()&&t&&t.scheme==s.scheme?g=fb:s.isSpecial()?g=vb:"/"==n[c+1]?(g=Bb,c++):(s.cannotBeABaseURL=!0,L_(s.path,""),g=bb)}break;case Eb:if(!t||t.cannotBeABaseURL&&"#"!=r)return J_;if(t.cannotBeABaseURL&&"#"==r){s.scheme=t.scheme,s.path=C_(t.path),s.query=t.query,s.fragment="",s.cannotBeABaseURL=!0,g=Fb;break}g="file"==t.scheme?kb:Qb;continue;case fb:if("/"!=r||"/"!=n[c+1]){g=Qb;continue}g=yb,c++;break;case Bb:if("/"==r){g=mb;break}g=_b;continue;case Qb:if(s.scheme=t.scheme,r==t_)s.username=t.username,s.password=t.password,s.host=t.host,s.port=t.port,s.path=C_(t.path),s.query=t.query;else if("/"==r||"\\"==r&&s.isSpecial())g=pb;else if("?"==r)s.username=t.username,s.password=t.password,s.host=t.host,s.port=t.port,s.path=C_(t.path),s.query="",g=Tb;else{if("#"!=r){s.username=t.username,s.password=t.password,s.host=t.host,s.port=t.port,s.path=C_(t.path),s.path.length--,g=_b;continue}s.username=t.username,s.password=t.password,s.host=t.host,s.port=t.port,s.path=C_(t.path),s.query=t.query,s.fragment="",g=Fb}break;case pb:if(!s.isSpecial()||"/"!=r&&"\\"!=r){if("/"!=r){s.username=t.username,s.password=t.password,s.host=t.host,s.port=t.port,g=_b;continue}g=mb}else g=yb;break;case vb:if(g=yb,"/"!=r||"/"!=__(l,c+1))continue;c++;break;case yb:if("/"!=r&&"\\"!=r){g=mb;continue}break;case mb:if("@"==r){u&&(l="%40"+l),u=!0,i=h_(l);for(var C=0;C65535)return z_;s.port=s.isSpecial()&&f===lb[s.scheme]?null:f,l=""}if(A)return;g=Gb;continue}return z_}l+=r;break;case kb:if(s.scheme="file","/"==r||"\\"==r)g=Sb;else{if(!t||"file"!=t.scheme){g=_b;continue}if(r==t_)s.host=t.host,s.path=C_(t.path),s.query=t.query;else if("?"==r)s.host=t.host,s.path=C_(t.path),s.query="",g=Tb;else{if("#"!=r){Ib(T_(C_(n,c),""))||(s.host=t.host,s.path=C_(t.path),s.shortenPath()),g=_b;continue}s.host=t.host,s.path=C_(t.path),s.query=t.query,s.fragment="",g=Fb}}break;case Sb:if("/"==r||"\\"==r){g=Mb;break}t&&"file"==t.scheme&&!Ib(T_(C_(n,c),""))&&(ub(t.path[0],!0)?L_(s.path,t.path[0]):s.host=t.host),g=_b;continue;case Mb:if(r==t_||"/"==r||"\\"==r||"?"==r||"#"==r){if(!A&&ub(l))g=_b;else if(""==l){if(s.host="",A)return;g=Gb}else{if(o=s.parseHost(l))return o;if("localhost"==s.host&&(s.host=""),A)return;l="",g=Gb}continue}l+=r;break;case Gb:if(s.isSpecial()){if(g=_b,"/"!=r&&"\\"!=r)continue}else if(A||"?"!=r)if(A||"#"!=r){if(r!=t_&&(g=_b,"/"!=r))continue}else s.fragment="",g=Fb;else s.query="",g=Tb;break;case _b:if(r==t_||"/"==r||"\\"==r&&s.isSpecial()||!A&&("?"==r||"#"==r)){if(".."===(a=P_(a=l))||"%2e."===a||".%2e"===a||"%2e%2e"===a?(s.shortenPath(),"/"==r||"\\"==r&&s.isSpecial()||L_(s.path,"")):hb(l)?"/"==r||"\\"==r&&s.isSpecial()||L_(s.path,""):("file"==s.scheme&&!s.path.length&&ub(l)&&(s.host&&(s.host=""),l=__(l,0)+":"),L_(s.path,l)),l="","file"==s.scheme&&(r==t_||"?"==r||"#"==r))for(;s.path.length>1&&""===s.path[0];)K_(s.path);"?"==r?(s.query="",g=Tb):"#"==r&&(s.fragment="",g=Fb)}else l+=cb(r,sb);break;case bb:"?"==r?(s.query="",g=Tb):"#"==r?(s.fragment="",g=Fb):r!=t_&&(s.path[0]+=cb(r,ob));break;case Tb:A||"#"!=r?r!=t_&&("'"==r&&s.isSpecial()?s.query+="%27":s.query+="#"==r?"%23":cb(r,ob)):(s.fragment="",g=Fb);break;case Fb:r!=t_&&(s.fragment+=cb(r,ab))}c++}},parseHost:function(e){var A,t,n;if("["==__(e,0)){if("]"!=__(e,e.length-1))return O_;if(A=function(e){var A,t,n,r,i,o,a,s=[0,0,0,0,0,0,0,0],g=0,c=null,l=0,u=function(){return __(e,l)};if(":"==u()){if(":"!=__(e,1))return;l+=2,c=++g}for(;u();){if(8==g)return;if(":"!=u()){for(A=t=0;t<4&&b_($_,u());)A=16*A+S_(u(),16),l++,t++;if("."==u()){if(0==t)return;if(l-=t,g>6)return;for(n=0;u();){if(r=null,n>0){if(!("."==u()&&n<4))return;l++}if(!b_(q_,u()))return;for(;b_(q_,u());){if(i=S_(u(),10),null===r)r=i;else{if(0==r)return;r=10*r+i}if(r>255)return;l++}s[g]=256*s[g]+r,2!=++n&&4!=n||g++}if(4!=n)return;break}if(":"==u()){if(l++,!u())return}else if(u())return;s[g++]=A}else{if(null!==c)return;l++,c=++g}}if(null!==c)for(o=g-c,g=7;0!=g&&o>0;)a=s[g],s[g--]=s[c+o-1],s[c+--o]=a;else if(8!=g)return;return s}(Y_(e,1,-1)),!A)return O_;this.host=A}else if(this.isSpecial()){if(e=E_(e),b_(eb,e))return O_;if(A=function(e){var A,t,n,r,i,o,a,s=x_(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(A=s.length)>4)return e;for(t=[],n=0;n1&&"0"==__(r,0)&&(i=b_(V_,r)?16:8,r=Y_(r,8==i?1:2)),""===r)o=0;else{if(!b_(10==i?Z_:8==i?W_:$_,r))return e;o=S_(r,i)}L_(t,o)}for(n=0;n=G_(256,5-A))return null}else if(o>255)return null;for(a=N_(t),n=0;n1?arguments[1]:void 0,n=y_(A,new Nb(e,!1,t));r_||(A.href=n.serialize(),A.origin=n.getOrigin(),A.protocol=n.getProtocol(),A.username=n.getUsername(),A.password=n.getPassword(),A.host=n.getHost(),A.hostname=n.getHostname(),A.port=n.getPort(),A.pathname=n.getPathname(),A.search=n.getSearch(),A.searchParams=n.getSearchParams(),A.hash=n.getHash())},Ub=Lb.prototype,Kb=function(e,A){return{get:function(){return m_(this)[e]()},set:A&&function(e){return m_(this)[A](e)},configurable:!0,enumerable:!0}};if(r_&&(c_(Ub,"href",Kb("serialize","setHref")),c_(Ub,"origin",Kb("getOrigin")),c_(Ub,"protocol",Kb("getProtocol","setProtocol")),c_(Ub,"username",Kb("getUsername","setUsername")),c_(Ub,"password",Kb("getPassword","setPassword")),c_(Ub,"host",Kb("getHost","setHost")),c_(Ub,"hostname",Kb("getHostname","setHostname")),c_(Ub,"port",Kb("getPort","setPort")),c_(Ub,"pathname",Kb("getPathname","setPathname")),c_(Ub,"search",Kb("getSearch","setSearch")),c_(Ub,"searchParams",Kb("getSearchParams")),c_(Ub,"hash",Kb("getHash","setHash"))),g_(Ub,"toJSON",(function(){return m_(this).serialize()}),{enumerable:!0}),g_(Ub,"toString",(function(){return m_(this).serialize()}),{enumerable:!0}),R_){var xb=R_.createObjectURL,Yb=R_.revokeObjectURL;xb&&g_(Lb,"createObjectURL",a_(xb,R_)),Yb&&g_(Lb,"revokeObjectURL",a_(Yb,R_))}B_(Lb,"URL"),n_({global:!0,constructor:!0,forced:!i_,sham:!r_},{URL:Lb});var Pb=Gt,Hb=s,Jb=gI,Ob=Wn,zb=yM,jb=ge("URL");Pb({target:"URL",stat:!0,forced:!(zb&&Hb((function(){jb.canParse()})))},{canParse:function(e){var A=Jb(arguments.length,1),t=Ob(e),n=A<2||void 0===arguments[1]?void 0:Ob(arguments[1]);try{return!!new jb(t,n)}catch(WtA){return!1}}});var Xb=i(re.URL),qb=function(){function e(A){sm(this,e),this.config=A.config,this.parent=A.root,this.root=nw.createDom("ul","",{},"xg-options-list xg-list-slide-scroll ".concat(this.config.className)),A.root.appendChild(this.root);var t=this.config.maxHeight;t&&this.setStyle({maxHeight:t}),this.onItemClick=this.onItemClick.bind(this),this.renderItemList();var n="touch"===this.config.domEventType?"touchend":"click";this._delegates=FR.delegate.call(this,this.root,"li",n,this.onItemClick)}return cm(e,[{key:"renderItemList",value:function(e){var A,t=this,n=this.config,r=this.root;(e?n.data=e:e=n.data,n.style)&&Jp(A=jp(n.style)).call(A,(function(e){r.style[e]=n[e]}));e.length>0&&(this.attrKeys=jp(e[0])),this.root.innerHTML="",Jp(e).call(e,(function(e,A){var n=e.selected?"option-item selected":"option-item";e["data-index"]=A,t.root.appendChild(nw.createDom("li","".concat(e.showText,""),e,n))}))}},{key:"onItemClick",value:function(e){e.delegateTarget||(e.delegateTarget=e.target);var A=e.delegateTarget;if(A&&nw.hasClass(A,"selected"))return!1;var t="function"==typeof this.config.onItemClick?this.config.onItemClick:null,n=this.root.querySelector(".selected");nw.addClass(A,"selected"),n&&nw.removeClass(n,"selected"),t(e,{from:n?this.getAttrObj(n,this.attrKeys):null,to:this.getAttrObj(A,this.attrKeys)})}},{key:"getAttrObj",value:function(e,A){if(!e||!A)return{};var t={};Jp(A).call(A,(function(A){t[A]=e.getAttribute(A)}));var n=e.getAttribute("data-index");return n&&(t.index=Number(n)),t}},{key:"show",value:function(){nw.removeClass(this.root,"hide"),nw.addClass(this.root,"active")}},{key:"hide",value:function(){nw.removeClass(this.root,"active"),nw.addClass(this.root,"hide")}},{key:"setStyle",value:function(e){var A=this;jp(e).forEach((function(t){A.root.style[t]=e[t]}))}},{key:"destroy",value:function(){var e;this._delegates&&(Jp(e=this._delegates).call(e,(function(e){e.destroy&&e.destroy()})),this._delegates=null);this.root.innerHTML=null,this.parent.removeChild(this.root),this.root=null}}]),e}(),Vb=re,Wb=h;Vb.JSON||(Vb.JSON={stringify:JSON.stringify});var Zb=function(e,A,t){return Wb(Vb.JSON.stringify,null,arguments)},$b=i(Zb),eT=i(ci.f("toStringTag")),AT=ne,tT=y,nT=CA("match"),rT=function(e){var A;return AT(e)&&(void 0!==(A=e[nT])?!!A:"RegExp"==tT(e))},iT=TypeError,oT=function(e){if(rT(e))throw iT("The method doesn't accept regular expressions");return e},aT=CA("match"),sT=function(e){var A=/./;try{"/./"[e](A)}catch(t){try{return A[aT]=!1,"/./"[e](A)}catch(WtA){}}return!1},gT=Gt,cT=w;G.f;var lT=Yt,uT=Wn,IT=oT,hT=W,CT=sT,dT=cT("".startsWith),ET=cT("".slice),fT=Math.min;gT({target:"String",proto:!0,forced:!CT("startsWith")},{startsWith:function(e){var A=uT(hT(this));IT(e);var t=lT(fT(arguments.length>1?arguments[1]:void 0,A.length)),n=uT(e);return dT?dT(A,n,t):ET(A,t,t+n.length)===n}});var BT=jc("String").startsWith,QT=ce,pT=BT,vT=String.prototype,yT=i((function(e){var A=e.startsWith;return"string"==typeof e||e===vT||QT(vT,e)&&A===vT.startsWith?pT:A})),mT=ne,DT=Math.floor,wT=Number.isInteger||function(e){return!mT(e)&&isFinite(e)&&DT(e)===e};Gt({target:"Number",stat:!0},{isInteger:wT});var RT=i(re.Number.isInteger),kT=ar.includes;Gt({target:"Array",proto:!0,forced:s((function(){return!Array(1).includes()}))},{includes:function(e){return kT(this,e,arguments.length>1?arguments[1]:void 0)}});var ST=jc("Array").includes,MT=Gt,GT=oT,_T=W,bT=Wn,TT=sT,FT=B("".indexOf);MT({target:"String",proto:!0,forced:!TT("includes")},{includes:function(e){return!!~FT(bT(_T(this)),bT(GT(e)),arguments.length>1?arguments[1]:void 0)}});var NT=jc("String").includes,LT=ce,UT=ST,KT=NT,xT=Array.prototype,YT=String.prototype,PT=i((function(e){var A=e.includes;return e===xT||LT(xT,e)&&A===xT.includes?UT:"string"==typeof e||e===YT||LT(YT,e)&&A===YT.includes?KT:A})),HT=Ze,JT=tr,OT=Ht,zT=function(e){for(var A=HT(this),t=OT(A),n=arguments.length,r=JT(n>1?arguments[1]:void 0,t),i=n>2?arguments[2]:void 0,o=void 0===i?t:JT(i,t);o>r;)A[r++]=e;return A};Gt({target:"Array",proto:!0},{fill:zT});var jT,XT=jc("Array").fill,qT=ce,VT=XT,WT=Array.prototype,ZT=i((function(e){var A=e.fill;return e===WT||qT(WT,e)&&A===WT.fill?VT:A})),$T={SEI:"sei",PLAYER_CREATE_FINISH:"playerCreateFinish",FALLBACK_ERROR:"fallbackError",FALLBACK:"fallback",AUTOPLAY_STARTED:"autoplayStarted",AUTOPLAY_PREVENTED:"autoplayWasPrevented",DOWNLOAD_SPEED_CHANGE:"downloadSpeedChange",FULLSCREEN_CHANGE:"fullscreenChange",CSS_FULLSCREEN_CHANGE:"cssFullscreenChange",MINI_STATE_CHANGE:"miniStateChange",DEFINITION_CHANGE:"definitionChange",BEFORE_DEFINITION_CHANGE:"beforeDefinitionChange",AFTER_DEFINITION_CHANGE:"afterDefinitionChange",VIDEO_RESIZE:"videoResize",PIP_CHANGE:"pipChange",USER_ACTION:"userAction",AUTOPLAY_UNMUTE:"autoplayUnmute",LONG_WAITING:"longWaiting",DEFINITION_FALLBACK:"definitionFallback",AUTOPLAY_FAIL:"autoplayFail",AUTOPLAY_SUCCESS:"autoplaySuccess",ERROR_REFRESH_CLICK:"errorRefreshClick",SOURCE_CHANGE:"sourceChange",ABR_SWITCH_START:"abrSwitchStart",ABR_SWITCH_SUCCESS:"abrSwitchSuccess",ABR_SWITCH_FAILED:"abrSwitchFailed",AD_FIRST_QUARTILE:"ad_first_quartile",AD_MIDPOINT:"ad_midpoint",AD_THIRD_QUARTILE:"ad_third_quartile",AD_CLICK:"ad_click",AD_IMPRESSION:"ad_impression",AD_RESUME:"ad_resume",AD_START:"ad_start",AD_PLAY:"ad_play",AD_PAUSE:"ad_pause",AD_TIME_UPDATE:"ad_time_update",AD_SKIPPED:"ad_skipped",AD_ERROR:"ad_error",AD_COMPLETE:"ad_complete",AD_ALL_COMPLETED:"ad_all_completed",RTM_NETWORK:"rtmNetwork",LICENSE_STATUS_WARNING:"licenseStatusWarning"},eF=Ff(Ff({},nR),$T),AF=(LE(jT={},$T.SEI,{event:"core_event",shouldCallback:function(e){return"core.sei"===(null==e?void 0:e.eventName)}}),LE(jT,$T.RTM_NETWORK,{event:"core_event",shouldCallback:function(e){return"core.rtcnetwork"===(null==e?void 0:e.eventName)}}),LE(jT,$T.AUTOPLAY_STARTED,{event:Gw}),LE(jT,$T.AUTOPLAY_PREVENTED,{event:_w}),LE(jT,$T.FULLSCREEN_CHANGE,{event:Yw}),LE(jT,$T.CSS_FULLSCREEN_CHANGE,{event:Pw}),LE(jT,$T.MINI_STATE_CHANGE,{event:Hw}),LE(jT,$T.DEFINITION_CHANGE,{event:Jw}),LE(jT,$T.BEFORE_DEFINITION_CHANGE,{event:Ow}),LE(jT,$T.AFTER_DEFINITION_CHANGE,{event:zw}),LE(jT,$T.VIDEO_RESIZE,{event:Xw}),LE(jT,$T.PIP_CHANGE,{event:qw}),LE(jT,$T.USER_ACTION,{event:Zw}),LE(jT,$T.DOWNLOAD_SPEED_CHANGE,{event:Lw}),LE(jT,$T.ABR_SWITCH_START,{event:"switch_definition_start"}),LE(jT,$T.ABR_SWITCH_SUCCESS,{event:"switch_definition_success"}),LE(jT,$T.ABR_SWITCH_FAILED,{event:"switch_definition_fail"}),jT);var tF=/["'&<>]/;function nF(e){var A,t=""+e,n=tF.exec(t);if(!n)return t;var r,i="",o=0;for(r=n.index;ro;)t=r[o++],iF&&!gF(n,t)||cF(a,e?[t,n[t]]:n[t]);return a}},uF={entries:lF(!0),values:lF(!1)},IF=uF.entries;Gt({target:"Object",stat:!0},{entries:function(e){return IF(e)}});var hF=i(re.Object.entries);var CF=Te,dF=Ze,EF=j,fF=Ht,BF=TypeError,QF=function(e){return function(A,t,n,r){CF(t);var i=dF(A),o=EF(i),a=fF(i),s=e?a-1:0,g=e?-1:1;if(n<2)for(;;){if(s in o){r=o[s],s+=g;break}if(s+=g,e?s<0:a<=s)throw BF("Reduce of empty array with no initial value")}for(;e?s>=0:a>s;s+=g)s in o&&(r=t(r,o[s],s,i));return r}},pF={left:QF(!1),right:QF(!0)}.left;Gt({target:"Array",proto:!0,forced:!Ju&&fe>79&&fe<83||!Hc("reduce")},{reduce:function(e){var A=arguments.length;return pF(this,e,A,A>1?arguments[1]:void 0)}});var vF=jc("Array").reduce,yF=ce,mF=vF,DF=Array.prototype,wF=i((function(e){var A=e.reduce;return e===DF||yF(DF,e)&&A===DF.reduce?mF:A}));var RF=function(){function e(A){var t;GE(this,e),LE(this,"definition",void 0),LE(this,"source",void 0),LE(this,"text",void 0),LE(this,"fallbackUrl",void 0),LE(this,"urls",void 0),LE(this,"_currentUrlRef",void 0);var n=A.url,r=A.definition,i=A.text,o=A.source,a=A.fallbackUrls;this.definition=r,this.text=i,this.source=o,this.urls=xf(t=[n]).call(t,ME(null!=a?a:[])),this.fallbackUrl=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],A={url:e[0],next:null},t=A,n=1;n=this.maxFallbackRound*this.definition.urls.length)){var A=null===(e=this._currentDefinition)||void 0===e?void 0:e.next();return null==A?void 0:A.url}this.resetFallback()}},{key:"switch",value:function(e){return this._currentDefinition=e,this.resetFallback(),e}},{key:"updateSources",value:function(e,A){var t,n,r,i,o;return this._sources=kF.normalize(e),this._currentDefinition=null!==(t=qf(this).call(this,null!=A?A:{source:null!==(n=this.defaultSource)&&void 0!==n?n:null===(r=this._currentDefinition)||void 0===r?void 0:r.source.name,definition:null!==(i=this.defaultDefinition)&&void 0!==i?i:null===(o=this._currentDefinition)||void 0===o?void 0:o.definition}))&&void 0!==t?t:this._sources[0].definitions[0],this.resetFallback(),this}},{key:"resetFallback",value:function(){this._fallbackCount=0}}]),e}();function MF(){var e;"undefined"!=typeof Reflect&&em?MF=Kk(e=em).call(e):MF=function(e,A,t){var n=function(e,A){for(;!Object.prototype.hasOwnProperty.call(e,A)&&null!==(e=Pk(e)););return e}(e,A);if(n){var r=Bf(n,A);return r.get?r.get.call(arguments.length<3?e:t):r.value}};return MF.apply(this,arguments)}function GF(){return(new DOMParser).parseFromString('\n\n\n\n\n\n\n\n\n\n\n\n',"image/svg+xml").firstChild}var _F=function(e){Yk(t,e);var A=Jk(t);function t(){var e,n;GE(this,t);for(var r=arguments.length,i=new Array(r),o=0;o':"",'\n
\n ')).call(e,this.config.showRefresh?'
'.concat(A.getText("ERROR_REFRESH"),"
"):"",'\n
\n \n ')}},{key:"_focus",value:function(){this.player.focus({autoHide:!0})}},{key:"_initIcons",value:function(){this.config.showErrorImg&&this.appendChild(".veplayer-error-img",this.icons.error)}},{key:"_initEvents",value:function(){this.on(eF.FALLBACK_ERROR,this.showError.bind(this)),this.on(vw,this.hideError.bind(this)),this.on(Cw,this.hideError.bind(this)),this.on(jw,this.hideError.bind(this))}},{key:"_renderText",value:function(e){var A=qf(this).call(this,".veplayer-error-tips");A&&(A.innerText=e)}},{key:"_renderExtraTips",value:function(){var e,A=this,t=qf(this).call(this,".veplayer-error-extra");t&&(t.innerHTML="");var n=this.player.config.i18nManager;null===(e=this.config.extraTips)||void 0===e||e.forEach((function(e){if(e){var t,r=nw.createDom("div",xf(t="".concat(n.normalize(e.label),": ")).call(t,n.normalize(e.value)),void 0,"veplayer-error-detail-info");A.appendChild(".veplayer-error-extra",r)}}))}},{key:"_handleRefresh",value:function(){var e,A;null===(e=this.player)||void 0===e||e.emit(eF.ERROR_REFRESH_CLICK),(null===(A=this.player)||void 0===A||null===(A=A.config)||void 0===A||null===(A=A.veplayer)||void 0===A?void 0:A.retry())&&this.hideError()}},{key:"_renderRefresh",value:function(){var e,A=this.player.config.i18nManager,t=qf(this).call(this,".veplayer-error-refresh");t&&(t.innerHTML=null!==(e=A.getText("ERROR_REFRESH"))&&void 0!==e?e:"")}}],[{key:"pluginName",get:function(){return"error"}},{key:"defaultConfig",get:function(){return{showErrorImg:!0,showErrorTip:!0,showRefresh:!0,errorTipsText:"",extraTips:[],position:FR.POSITIONS.ROOT}}}]),t}(FR),bF=function(e){Yk(t,e);var A=Jk(t);function t(){var e,n;GE(this,t);for(var r=arguments.length,i=new Array(r),o=0;o'}},{key:"_renderToast",value:function(e,A,t){var n=this,r=nw.createDom("div","",void 0,"veplayer-toast-container"),i=nw.checkIsObject(e)?e:nw.createDom("div",e,void 0,"veplayer-toast-txt");if(r.appendChild(i),A){var o=nw.createDom("span","脳",void 0,"veplayer-toast-close");o.addEventListener("click",(function(){n.remove(t)})),r.appendChild(o)}return r}}],[{key:"pluginName",get:function(){return"toast"}},{key:"defaultConfig",get:function(){return{index:5}}}]),t}(FR);function TF(){return(new DOMParser).parseFromString('\n\n',"image/svg+xml").firstChild}var FF=function(){function e(A){GE(this,e),LE(this,"_root",void 0),LE(this,"_config",void 0),LE(this,"_parent",void 0),LE(this,"_listDom",void 0),LE(this,"_container",void 0),LE(this,"_titleDom",void 0),LE(this,"_player",void 0),LE(this,"_delegates",void 0),LE(this,"_listType",void 0);var t=A.config,n=A.root,r=A.player;this._config=t,this._parent=n,this._player=r,this._listType=t.listType,this.renderPanel(),this._initEvents(),this._bindDomEvent()}return NE(e,[{key:"changeMode",value:function(e){this.updatePanel(e),this._listType=e}},{key:"renderItemList",value:function(e){var A,t=this,n=this._config;return e&&(n.list=e),this._listDom||(this._listDom=nw.createDom("div","",{},"item-list-panel-content")),this._listDom.innerHTML="",null===(A=n.list)||void 0===A||Jp(A).call(A,(function(e,A){var n,r,i=e.selected?"panel-item select-in":"panel-item ".concat(null!==(n=e.className)&&void 0!==n?n:"");e["data-index"]=A;var o=nw.createDom("div","",e,i);e.showText&&("string"==typeof e.showText?o.innerHTML=e.showText:o.appendChild(e.showText)),null===(r=t._listDom)||void 0===r||r.appendChild(o)})),this._listDom}},{key:"renderTitle",value:function(){var e,A,t=this._player.config.i18nManager;if(null!==(e=this._config.panel)&&void 0!==e&&e.title&&this._listType!==NF.Inner)return this._titleDom||(this._titleDom=nw.createDom("div","",{},"xg-mobile-panel-title")),this._titleDom.innerHTML=t.normalize(null===(A=this._config.panel)||void 0===A?void 0:A.title),this._titleDom}},{key:"updatePanel",value:function(e){this._root&&nw.removeClass(this._root,"panel-".concat(this._listType)),this._root&&nw.addClass(this._root,"panel-".concat(e));var A="mobile"===cw.device?"touchend":"click";e===NF.Inner?this._container&&this._bind(this._container,A,this._handleHide.bind(this)):this._container&&this._unbind(this._container,A,this._handleHide.bind(this))}},{key:"renderPanel",value:function(){var e,A,t,n=xf(e="xg-mobile-panel panel-".concat(this._config.listType," ")).call(e,null!==(A=null===(t=this._config)||void 0===t||null===(t=t.panel)||void 0===t?void 0:t.className)&&void 0!==A?A:"");this._root=nw.createDom("div","",{},n),this._parent&&this._parent.appendChild(this._root);var r=this.renderTitle(),i=this.renderItemList();this._container=nw.createDom("div","",{},"xg-mobile-panel-content"),this._root.appendChild(this._container),r&&this._container.appendChild(r),i&&this._container.appendChild(i)}},{key:"show",value:function(){this._root&&(nw.removeClass(this._root,"hide"),nw.addClass(this._root,"active"))}},{key:"hide",value:function(){this._root&&(nw.removeClass(this._root,"active"),nw.addClass(this._root,"hide"))}},{key:"destroy",value:function(){this._parent&&this._root&&this._parent.removeChild(this._root),this._unbindDomEvent(),this._unbindEvents()}},{key:"_bind",value:function(e,A,t){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e&&"on".concat(A)in e&&"function"==typeof t&&e.addEventListener(A,t,n)}},{key:"_unbind",value:function(e,A,t){var n=arguments.length>3&&void 0!==arguments[3]&&arguments[3];e&&"on".concat(A)in e&&"function"==typeof t&&e.removeEventListener(A,t,n)}},{key:"_initEvents",value:function(){var e;this._config.isAutoChange&&(window.addEventListener("orientationchange",this._handleOrientationChange.bind(this)),null===(e=this._player)||void 0===e||e.on(Yw,this._handleOrientationChange.bind(this)))}},{key:"_unbindEvents",value:function(){var e;window.removeEventListener("orientationchange",this._handleOrientationChange.bind(this)),null===(e=this._player)||void 0===e||e.off(Yw,this._handleOrientationChange.bind(this))}},{key:"_handleOrientationChange",value:function(){var e,A,t,n=PT(e=[90,-90,"90","-90"]).call(e,window.orientation);if(null!==(A=this._player)&&void 0!==A&&A.fullscreen&&n)this.changeMode(NF.Fullscreen);else if(this._listType!==(null===(t=this._config)||void 0===t?void 0:t.listType)){var r;this.changeMode(null===(r=this._config)||void 0===r?void 0:r.listType)}}},{key:"_bindDomEvent",value:function(){var e="mobile"===cw.device?"touchend":"click";this._listType===NF.Inner&&this._container&&this._bind(this._container,e,this._handleHide.bind(this)),this._root&&this._bind(this._root,e,this._handleHide.bind(this)),this._container&&this._bind(this._container,e,this._stopPropagation),this._listDom&&(this._delegates=FR.delegate.call(this,this._listDom,".panel-item",e,this._onItemClick.bind(this),!0))}},{key:"_unbindDomEvent",value:function(){var e,A="mobile"===cw.device?"touchend":"click";(this._root&&this._unbind(this._root,A,this._handleHide.bind(this)),this._container&&this._unbind(this._container,A,this._handleHide.bind(this)),this._container&&this._unbind(this._container,A,this._stopPropagation),this._delegates)&&(Jp(e=this._delegates).call(e,(function(e){e.destroy&&e.destroy()})),this._delegates=null)}},{key:"_stopPropagation",value:function(e){e.stopPropagation(),e.preventDefault()}},{key:"_onItemClick",value:function(e){var A,t,n,r,i=e.delegateTarget,o="function"==typeof this._config.onOptionClick?this._config.onOptionClick:null,a="function"==typeof this._config.onItemClick?this._config.onItemClick:null,s=null===(A=this._root)||void 0===A?void 0:A.querySelector(".selected");nw.addClass(i,"selected"),s&&(nw.removeClass(s,"selected"),r=Number(s.getAttribute("data-index")));var g=Number(i.getAttribute("data-index")),c={from:void 0!==wc(r)?null===(t=this._config.list)||void 0===t?void 0:t[r]:void 0,to:null===(n=this._config.list)||void 0===n?void 0:n[g]};null==o||o(e,c),i&&r===g||null==a||a(e,c)}},{key:"_handleHide",value:function(e){var A,t;e.stopPropagation(),e.preventDefault(),null===(A=(t=this._config).hide)||void 0===A||A.call(t)}}]),e}(),NF=function(e){return e.Middle="middle",e.Bottom="bottom",e.Fullscreen="fullscreen",e.Inner="inner",e}(NF||{}),LF=function(e){return e.Icon="Icon",e.Text="Text",e}(LF||{}),UF="mobile"===cw.device,KF=["bottom","fullscreen","inner"],xF=["middle"],YF=["bottom","inner","fullscreen"],PF=["bottom","inner","fullscreen"],HF=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),LE(Gk(n=A.call(this,e)),"optionsList",void 0),LE(Gk(n),"_isIcon",void 0),LE(Gk(n),"_isActive",void 0),LE(Gk(n),"_curIndex",void 0),LE(Gk(n),"activeEvent",void 0),LE(Gk(n),"onEnter",(function(e){e.preventDefault(),e.stopPropagation(),n.emit("icon_mouseenter",{pluginName:n.pluginName}),n.toggle(!0)})),LE(Gk(n),"onLeave",(function(e){e.preventDefault(),e.stopPropagation(),n.emit("icon_mouseleave",{pluginName:n.pluginName}),n._isActive&&n.toggle(!1)})),n._isIcon=!1,n._isActive=!1,n._curIndex=0,n}return NE(t,[{key:"updateLang",value:function(){this.config.list&&this.renderItemList(this.config.list,this._curIndex)}},{key:"afterCreate",value:function(){var e=this,A=this.config;this.config.listType=this._getListType(),this.initIcons(),A.hidePortrait&&nw.addClass(this.root,"portrait"),UF&&this.on(Rw,(function(){e._isActive&&(e.optionsList&&e.optionsList.hide(),e._isActive=!1)})),A.list&&this.renderItemList(A.list),this.activeEvent=UF?"touchend":"mouseenter",this.bind(this.activeEvent,this.onEnter),this.bind("mouseleave",this.onLeave)}},{key:"initIcons",value:function(){var e=this,A=this.icons,t=jp(A);if(t.length>0&&"Icon"===this.config.renderType)return t.forEach((function(t){e.appendChild(".xgplayer-icon",A[t])})),void(this._isIcon=!0);var n=this.appendChild(".xgplayer-icon",nw.createDom("span","",{},"icon-text"));n&&nw.addClass(n,"btn-text")}},{key:"show",value:function(){!this.config.list||this.config.list.length<1||this.config.hideOnSingleOption&&1===this.config.list.length||nw.addClass(this.root,"show")}},{key:"hide",value:function(){nw.removeClass(this.root,"show")}},{key:"toggle",value:function(e){if(e!==this._isActive){var A=this.player.controls,t=this.config.listType;e?(t&&PT(YF).call(YF,t)?null==A||A.blur():null==A||A.focus(),this.optionsList&&this.optionsList.show()):(t&&PT(YF).call(YF,t)?null==A||A.focus():null==A||A.focusAwhile(),this.optionsList&&this.optionsList.hide()),this._isActive=e}}},{key:"onItemClick",value:function(e,A){var t;e.preventDefault(),e.stopPropagation();var n=this.config.listType;this._curIndex=null===(t=A.to)||void 0===t?void 0:t.index,this.changeCurrentText(),(this.config.isItemClickHide||n&&PT(YF).call(YF,n))&&this.toggle(!1)}},{key:"onOptionClick",value:function(e,A){e.preventDefault(),e.stopPropagation()}},{key:"changeCurrentText",value:function(){if(!this._isIcon){var e=this.config.list,A=e&&this._curIndex\n
\n
\n '):""}},{key:"_getListType",value:function(){var e,A=this.config.listType;return null!==(e=this.player)&&void 0!==e&&null!==(e=e.config)&&void 0!==e&&e.listType&&(A=this.player.config.listType),UF||A&&PT(KF).call(KF,A)||(A="bottom"),UF||A&&PT(xF).call(xF,A)||(A="middle"),A}}],[{key:"pluginName",get:function(){return"optionsIcon"}},{key:"defaultConfig",get:function(){return{position:UF?FU.ROOT_TOP_RIGHT:FU.CONTROLS_RIGHT,listType:UF?"bottom":"middle",index:100,list:[],listStyle:{},hidePortrait:!0,isShowIcon:!1,renderType:UF?"Icon":"Text",isItemClickHide:!0,hideOnSingleOption:!0,isAutoChange:!0}}}]),t}(FR),JF=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"updateLang",value:function(){this.renderItemList()}},{key:"beforeCreate",value:function(e){var A=e.player.config.sources.sourceManager;e.config.list=A.sources}},{key:"registerIcons",value:function(){return{source:{icon:TF}}}},{key:"renderItemList",value:function(){var e=this.config.sourceManager,A=e.sources,n=e.source,r=this.player.config.i18nManager;if(A.length<2)this.hide();else{var i=Jp(A).call(A,(function(e){var A;return Ff(Ff({},e),{},{showText:null!==(A=r.normalize(e.text))&&void 0!==A?A:e.name,selected:!1})})),o=nM(i).call(i,(function(e){return e.name===(null==n?void 0:n.name)}));this.config.list=A,o>-1&&(i[o].selected=!0),MF(Pk(t.prototype),"renderItemList",this).call(this,i,o)}}},{key:"onItemClick",value:function(e,A){var n,r=this;MF(Pk(t.prototype),"onItemClick",this).call(this,e,A),null===(n=this.player.config)||void 0===n||n.veplayer.switch({source:A.to.name},{fallbackToFirstDefinition:!0}).catch((function(){r.renderItemList()}))}}],[{key:"pluginName",get:function(){return"sources"}},{key:"defaultConfig",get:function(){return Ff(Ff({},HF.defaultConfig),{},{index:4,panel:{title:{jp:"銉┿偆銉抽伕銇�",en:"Line Choose","zh-cn":"绾胯矾閫夋嫨","zh-hk":"绶氳矾閬告搰"}},list:[],className:"xgplayer-sources",hidePortrait:!1,isShowIcon:!0})}},{key:"textTips",get:function(){return{jp:"銉┿偆銉�",en:"Line","zh-cn":"绾胯矾","zh-hk":"绶氳矾"}}}]),t}(HF);function OF(){return(new DOMParser).parseFromString('\n\n',"image/svg+xml").firstChild}var zF={exports:{}};!function(e,A){var t="__lodash_hash_undefined__",n=9007199254740991,i="[object Arguments]",o="[object Boolean]",a="[object Date]",s="[object Function]",g="[object GeneratorFunction]",c="[object Map]",l="[object Number]",u="[object Object]",I="[object Promise]",h="[object RegExp]",C="[object Set]",d="[object String]",E="[object Symbol]",f="[object WeakMap]",B="[object ArrayBuffer]",Q="[object DataView]",p="[object Float32Array]",v="[object Float64Array]",y="[object Int8Array]",m="[object Int16Array]",D="[object Int32Array]",w="[object Uint8Array]",R="[object Uint8ClampedArray]",k="[object Uint16Array]",S="[object Uint32Array]",M=/\w*$/,G=/^\[object .+?Constructor\]$/,_=/^(?:0|[1-9]\d*)$/,b={};b[i]=b["[object Array]"]=b[B]=b[Q]=b[o]=b[a]=b[p]=b[v]=b[y]=b[m]=b[D]=b[c]=b[l]=b[u]=b[h]=b[C]=b[d]=b[E]=b[w]=b[R]=b[k]=b[S]=!0,b["[object Error]"]=b[s]=b[f]=!1;var T="object"==wc(r)&&r&&r.Object===Object&&r,F="object"==("undefined"==typeof self?"undefined":wc(self))&&self&&self.Object===Object&&self,N=T||F||Function("return this")(),L=A&&!A.nodeType&&A,U=L&&e&&!e.nodeType&&e,K=U&&U.exports===L;function x(e,A){return e.set(A[0],A[1]),e}function Y(e,A){return e.add(A),e}function P(e,A,t,n){var r=-1,i=e?e.length:0;for(n&&i&&(t=e[++r]);++r-1},Re.prototype.set=function(e,A){var t=this.__data__,n=_e(t,e);return n<0?t.push([e,A]):t[n][1]=A,this},ke.prototype.clear=function(){this.__data__={hash:new we,map:new(he||Re),string:new we}},ke.prototype.delete=function(e){return Le(this,e).delete(e)},ke.prototype.get=function(e){return Le(this,e).get(e)},ke.prototype.has=function(e){return Le(this,e).has(e)},ke.prototype.set=function(e,A){return Le(this,e).set(e,A),this},Se.prototype.clear=function(){this.__data__=new Re},Se.prototype.delete=function(e){return this.__data__.delete(e)},Se.prototype.get=function(e){return this.__data__.get(e)},Se.prototype.has=function(e){return this.__data__.has(e)},Se.prototype.set=function(e,A){var t=this.__data__;if(t instanceof Re){var n=t.__data__;if(!he||n.length<199)return n.push([e,A]),this;t=this.__data__=new ke(n)}return t.set(e,A),this};var Ke=ce?O(ce,Object):function(){return[]},xe=function(e){return Ae.call(e)};function Ye(e,A){return!!(A=null==A?n:A)&&("number"==typeof e||_.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=n}(e.length)&&!Xe(e)}var je=le||function(){return!1};function Xe(e){var A=qe(e)?Ae.call(e):"";return A==s||A==g}function qe(e){var A=wc(e);return!!e&&("object"==A||"function"==A)}function Ve(e){return ze(e)?Me(e):function(e){if(!Pe(e))return ue(e);var A=[];for(var t in Object(e))ee.call(e,t)&&"constructor"!=t&&A.push(t);return A}(e)}e.exports=function(e){return be(e,!0,!0)}}(zF,zF.exports);var jF=i(zF.exports),XF=function(e){Yk(n,e);var A,t=Jk(n);function n(){var e,A;GE(this,n);for(var r=arguments.length,i=new Array(r),o=0;o-1&&(a[s].selected=!0),MF(Pk(n.prototype),"renderItemList",this).call(this,a,s)}}},{key:"onItemClick",value:function(e,A){var t,r=this;this._showToast(A.to),MF(Pk(n.prototype),"onItemClick",this).call(this,e,A),null===(t=this.player.config)||void 0===t||t.veplayer.switch({definition:A.to.definition}).catch((function(){r.renderItemList()}))}},{key:"fallback",value:(A=aE(iE().mark((function e(){var A,t,n,r,i,o,a,s=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=s.length>0&&void 0!==s[0]?s[0]:{toast:!0},r=this.player.config.sourceManager,!((i=nM(A=this.config.demotePriority).call(A,(function(e){var A;return e===(null===(A=r.definition)||void 0===A?void 0:A.definition)})))<0)){e.next=5;break}return e.abrupt("return");case 5:if(o=jF(r.definition),a=this._getNextDefinition(i)){e.next=9;break}return e.abrupt("return");case 9:if(!n.toast){e.next=15;break}return e.next=12,this._toast(a);case 12:if(e.sent){e.next=15;break}return e.abrupt("return");case 15:this.player.emit(eF.DEFINITION_FALLBACK,{from:o,to:a}),null===(t=this.player.config)||void 0===t||t.veplayer.switch({definition:a.definition}).catch((function(){}));case 17:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"_waiting",value:function(){var e=this;if(!this._timer){this._waitingStartTime=Date.now();var A=this.player.currentTime;this._timer=window.setTimeout((function(){e.player&&e.player.currentTime<=A+.1&&(e.player.emit(eF.LONG_WAITING),e.config.needFallback&&e.fallback({toast:!0}),e._clearTimer())}),this.config.longWaitingTime)}}},{key:"_clearTimer",value:function(){this._timer&&(clearTimeout(this._timer),this._timer=void 0),this._waitingStartTime&&(this._waitingStartTime=0)}},{key:"_toast",value:function(e){var A=this,t=this.player.config.i18nManager;return new Op((function(n){var r,i,o=null===(r=A.player)||void 0===r?void 0:r.getPlugin("toast");if(o){var a=nw.createDom("div",t.getText("DEFINITION_FALLBACK_TOAST"),void 0,"veplayer-toast-txt"),s=null!==(i=A.player.config.i18nManager.normalize(e.text))&&void 0!==i?i:e.definition,g=nw.createDom("span",s,void 0,"veplayer-toast-txt-bt");a.appendChild(g);var c=o.toast(a,{duration:5e3,closable:!0});g.addEventListener("click",(function(){o.remove(c),n(!0)}))}else n(!1)}))}},{key:"_getNextDefinition",value:function(e){var A,t=this.player.config.sourceManager;if(null!==(A=t.source)&&void 0!==A&&A.definitions.length&&!(e+1>=this.config.demotePriority.length)){var n=e+1,r=qf(t).call(t,{definition:this.config.demotePriority[n]});return r||this._getNextDefinition(n)}}},{key:"_initTimeUpdateEvent",value:function(){var e=this,A=this.player.currentTime;this.on(eF.TIME_UPDATE,(function(){var t=e.player.currentTime;t!==A?(A=t,e._clearTimer()):A=t}))}},{key:"_showToast",value:function(e){var A,t,n,r=this,i=null===(A=this.player)||void 0===A?void 0:A.getPlugin("toast"),o=this.player.config.i18nManager;i&&(this._toastId&&i.remove(this._toastId),this._toastId=i.toast(xf(t="".concat(o.getText("DEFINITION_SWITCHING")," ")).call(t,null!==(n=e.showText)&&void 0!==n?n:e.definition," ..."),{duration:2e3,closable:!0}),this.player.once(eF.AFTER_DEFINITION_CHANGE,(function(){void 0!==r._toastId&&i.remove(r._toastId)})))}}],[{key:"pluginName",get:function(){return"definition"}},{key:"defaultConfig",get:function(){return Ff(Ff({},HF.defaultConfig),{},{index:3,list:[],panel:{title:{jp:"銈儵銉儐銈c偦銉偗銈枫儳銉�",en:"Definition Choose","zh-cn":"娓呮櫚搴﹂€夋嫨","zh-hk":"娓呮櫚搴﹂伕鎿�"}},className:"xgplayer-definition",hidePortrait:!1,isShowIcon:!0,longWaitingTime:5e3,needFallback:!1,demotePriority:["uhd","hd","sd","ld","ao"]})}},{key:"textTips",get:function(){return{jp:"鏄庡揩銇�",en:"Definition","zh-cn":"娓呮櫚搴�","zh-hk":"娓呮櫚搴�"}}}]),n}(HF),qF={"biz:vod":"veplayer.biz.vod.[env].[ext]","biz:live":"veplayer.biz.live.[env].[ext]","plugin:flv":"veplayer.plugin.flv.[env].[ext]","plugin:mp4":"veplayer.plugin.mp4.[env].[ext]","plugin:hls":"veplayer.plugin.hls.[env].[ext]","plugin:hlsjs":"veplayer.plugin.hlsjs.[env].[ext]","plugin:dashjs":"veplayer.plugin.dashjs.[env].[ext]","plugin:shaka":"veplayer.plugin.shaka.[env].[ext]","plugin:rtm":"veplayer.plugin.rtm.[env].[ext]","plugin:xgvideo":"veplayer.plugin.xgvideo.[env].[ext]","plugin:drm":"veplayer.plugin.drm.[env].[ext]","plugin:abr":"veplayer.plugin.abr.[env].[ext]","strategy:base":"veplayer.strategy.base.[env].[ext]","strategy:rtmAdaptiveBuffer":"veplayer.strategy.rtm.adaptive.buffer.[env].[ext]"},VF=function(e){return e.BizVod="biz:vod",e.BizLive="biz:live",e.PluginFlv="plugin:flv",e.PluginMp4="plugin:mp4",e.PluginHls="plugin:hls",e.PluginHlsJs="plugin:hlsjs",e.PluginDashJs="plugin:dashjs",e.PluginShaka="plugin:shaka",e.PluginRtm="plugin:rtm",e.PluginXgvideo="plugin:xgvideo",e.PluginDrm="plugin:drm",e.PluginAbr="plugin:abr",e.StrategyBase="strategy:base",e.StrategyRtmAdaptiveBuffer="strategy:rtmAdaptiveBuffer",e}(VF||{}),WF=function(){function e(A){var t=this;GE(this,e),LE(this,"modules",{}),LE(this,"mountPromiseMap",{}),LE(this,"_baseUrl",void 0),LE(this,"_moduleSystem",void 0),LE(this,"load",function(){var e=aE(iE().mark((function e(A,n){var r,i,o,a,s;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t._moduleSystem){e.next=2;break}throw new Error('You have to specify moduleSystem first, call "setModuleSystem(moduleSystem)" to set module system');case 2:if(qF[A]){e.next=4;break}throw new Error('Invalid module name: "'.concat(A,'"'));case 4:if("esm"!==t._moduleSystem){e.next=11;break}if(t.modules[A]){e.next=9;break}throw new Error('Dynamic module "'.concat(A,'" not found, you have to register it first under ESM'));case 9:return i=t.modules[A].exports,e.abrupt("return",null!==(r=i.default)&&void 0!==r?r:i);case 11:if(!t.modules[A]){e.next=21;break}if(1!==t.modules[A].state){e.next=16;break}return e.abrupt("return",t.modules[A].exports);case 16:if(0!==t.modules[A].state){e.next=20;break}return e.abrupt("return",t.mountPromiseMap[A].then((function(e){var A;return null!==(A=e.default)&&void 0!==A?A:e})));case 20:throw null!==(o=t.modules[A].error)&&void 0!==o?o:new Error('Dynamic module "'.concat(A,'" load failed.'));case 21:return a=[t._baseUrl,qF[A]].join("/").replace("[env]","production").replace("[ext]","js"),s={src:null!=n?n:a,name:A,state:0,exports:{__PLUGIN_NAME__:A}},t.modules[A]=s,t.mountPromiseMap[A]=t._mount(s),e.abrupt("return",t.mountPromiseMap[A]);case 26:case"end":return e.stop()}}),e)})));return function(A,t){return e.apply(this,arguments)}}()),LE(this,"registerPlugin",(function(e,A){if(!t._moduleSystem)throw new Error("You have to specify moduleSystem first, call setModuleSystem(moduleSystem) to set module system");return"esm"===t._moduleSystem?(t.modules[e]={src:"esm:".concat(e),name:e,state:1,exports:A},t.modules[e].exports):(t.modules[e]?t.modules[e].exports=A:t.modules[e]={src:"umd:".concat(e),name:e,state:1,exports:A},t.modules[e].exports)})),LE(this,"register",(function(e){return Jp(e).call(e,(function(e){return t.registerPlugin(e.__PLUGIN_NAME__,e)}))})),this._baseUrl=A.baseUrl}return NE(e,[{key:"baseUrl",get:function(){return this._baseUrl}},{key:"moduleSystem",get:function(){return this._moduleSystem}},{key:"setModuleSystem",value:function(e){this._moduleSystem=e}},{key:"setBaseUrl",value:function(e){this._baseUrl=e}},{key:"_mount",value:function(e){var A=this.modules;return new Op((function(t,n){var r=document.createElement("script");r.src=e.src,r.onload=function(){e.state=1,t(A[e.name].exports),r.onload=null},r.onerror=function(A){e.state=2,e.error=A,n(A),r.onerror=null},document.body.appendChild(r)}))}}]),e}(),ZF=i(Ld),$F="Expected a function",eN="__lodash_placeholder__",AN=1,tN=2,nN=4,rN=8,iN=16,oN=32,aN=64,sN=128,gN=512,cN=1/0,lN=9007199254740991,uN=17976931348623157e292,IN=NaN,hN=[["ary",sN],["bind",AN],["bindKey",tN],["curry",rN],["curryRight",iN],["flip",gN],["partial",oN],["partialRight",aN],["rearg",256]],CN="[object Function]",dN="[object GeneratorFunction]",EN="[object Symbol]",fN=/^\s+|\s+$/g,BN=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,QN=/\{\n\/\* \[wrapped with (.+)\] \*/,pN=/,? & /,vN=/^[-+]0x[0-9a-f]+$/i,yN=/^0b[01]+$/i,mN=/^\[object .+?Constructor\]$/,DN=/^0o[0-7]+$/i,wN=/^(?:0|[1-9]\d*)$/,RN=Uv,kN="object"==wc(r)&&r&&r.Object===Object&&r,SN="object"==("undefined"==typeof self?"undefined":wc(self))&&self&&self.Object===Object&&self,MN=kN||SN||Function("return this")();function GN(e,A,t){switch(t.length){case 0:return e.call(A);case 1:return e.call(A,t[0]);case 2:return e.call(A,t[0],t[1]);case 3:return e.call(A,t[0],t[1],t[2])}return e.apply(A,t)}function _N(e,A){return!!(e?e.length:0)&&function(e,A,t){if(A!=A)return function(e,A,t,n){var r=e.length,i=t+(n?1:-1);for(;n?i--:++i-1}function bN(e){return e!=e}function TN(e,A){for(var t=-1,n=e.length,r=0,i=[];++t2?NN:void 0);function VN(e){if(!gL(e)||function(e){return!!YN&&YN in e}(e))return!1;var A=function(e){var A=gL(e)?JN.call(e):"";return A==CN||A==dN}(e)||function(e){var A=!1;if(null!=e&&"function"!=typeof e.toString)try{A=!!(e+"")}catch(P7){}return A}(e)?ON:mN;return A.test(function(e){if(null!=e){try{return PN.call(e)}catch(P7){}try{return e+""}catch(P7){}}return""}(e))}function WN(e){return function(){var A=arguments;switch(A.length){case 0:return new e;case 1:return new e(A[0]);case 2:return new e(A[0],A[1]);case 3:return new e(A[0],A[1],A[2]);case 4:return new e(A[0],A[1],A[2],A[3]);case 5:return new e(A[0],A[1],A[2],A[3],A[4]);case 6:return new e(A[0],A[1],A[2],A[3],A[4],A[5]);case 7:return new e(A[0],A[1],A[2],A[3],A[4],A[5],A[6])}var t,n=gL(t=e.prototype)?zN(t):{},r=e.apply(n,A);return gL(r)?r:n}}function ZN(e,A,t,n,r,i,o,a,s,g){var c=A&sN,l=A&AN,u=A&tN,I=A&(rN|iN),h=A&gN,C=u?void 0:WN(e);return function d(){for(var E=arguments.length,f=Array(E),B=E;B--;)f[B]=arguments[B];if(I)var Q=AL(d),p=function(e,A){for(var t=e.length,n=0;t--;)e[t]===A&&n++;return n}(f,Q);if(n&&(f=function(e,A,t,n){for(var r=-1,i=e.length,o=t.length,a=-1,s=A.length,g=jN(i-o,0),c=Array(s+g),l=!n;++a1&&ZF(f).call(f),c&&s1?"& ":"")+A[n],A=A.join(t>2?", ":" "),e.replace(BN,"{\n/* [wrapped with "+A+"] */\n")}function iL(e,A){return!!(A=null==A?lN:A)&&("number"==typeof e||wN.test(e))&&e>-1&&e%1==0&&e1&&(n=BL(n,dL(arguments[1]))),n<0&&(n=t+n);n>=0;n--)if(n in A&&A[n]===e)return n||0;return-1}:QL;Gt({target:"Array",proto:!0,forced:yL!==[].lastIndexOf},{lastIndexOf:yL});var mL,DL=jc("Array").lastIndexOf,wL=ce,RL=DL,kL=Array.prototype,SL=i((function(e){var A=e.lastIndexOf;return e===kL||wL(kL,e)&&A===kL.lastIndexOf?RL:A})),ML=null===(mL=document.currentScript)||void 0===mL?void 0:mL.src,GL=new WF({baseUrl:null==ML?void 0:Xp(ML).call(ML,0,null==ML?void 0:SL(ML).call(ML,"/"))}),_L=GL.registerPlugin,bL=GL.register;function TL(e){GL.setModuleSystem(e)}function FL(e,A){return NL.apply(this,arguments)}function NL(){return NL=aE(iE().mark((function e(A,t){var n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,GL.load(A,t);case 3:return e.abrupt("return",e.sent);case 6:throw e.prev=6,e.t0=e.catch(0),Zk(Xk.MODULE_LOAD_ERROR,{ext:{name:A,cdn:null===e.t0||void 0===e.t0||null===(n=e.t0.target)||void 0===n?void 0:n.src},error:e.t0});case 9:case"end":return e.stop()}}),e,null,[[0,6]])}))),NL.apply(this,arguments)}var LL=function(e){if(e){yT(e).call(e,"//")&&(e=location.protocol+e);try{return new Xb(e)}catch(WtA){return}}};function UL(e,A){var t=void 0!==oc&&lE(e)||e["@@iterator"];if(!t){if(sE(e)||(t=SE(e))||A&&e&&"number"==typeof e.length){t&&(e=t);var n=0,r=function(){};return{s:r,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var i,o=!0,a=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return o=e.done,e},e:function(e){a=!0,i=e},f:function(){try{o||null==t.return||t.return()}finally{if(a)throw i}}}}function KL(e){var A,t={},n=UL(e.attributes);try{for(n.s();!(A=n.n()).done;){var r=A.value;t[r.name]=r.value}}catch(i){n.e(i)}finally{n.f()}return t}function xL(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return jp(A).forEach((function(t){var n=t,r=A[t];r&&(null==e||e.setAttribute(n,r))})),e}function YL(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=KL(e);return jp(t).forEach((function(t){A[t]?null==e||e.setAttribute(t,A[t]):null==e||e.removeAttribute(t)})),e}var PL=Object.freeze({__proto__:null,getAttributes:KL,replaceAttributes:YL,setAttributes:xL}),HL='video/mp4; codecs="avc1.42E01E,mp4a.40.2"',JL=['video/mp4;codecs="hev1.1.6.L120.90"','video/mp4;codecs="hev1.2.4.L120.90"','video/mp4;codecs="hev1.3.E.L120.90"','video/mp4;codecs="hev1.4.10.L120.90"'],OL=IL((function(e,A){var t;return null==A?void 0:PT(t=A.split("?")[0].toLowerCase()).call(t,e)})),zL=OL(".m3u8"),jL=OL(".mp4"),XL=OL(".flv"),qL=OL(".sdp"),VL=OL(".mpd");function WL(e){return zL(e)?"hls":XL(e)?"flv":qL(e)?"rtm":jL(e)?"mp4":VL(e)?"dash":"unknown"}function ZL(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.H264;return e===A.H265?cw.isHevcSupported():e===A.H264?cw.isMSESupport():cw.isMSESupport(e)}function $L(){return eU.apply(this,arguments)}function eU(){return(eU=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,FL(VF.PluginXgvideo);case 2:return A=e.sent,t=A.XGVideoPlugin,e.abrupt("return",null==t?void 0:t.isSupported());case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function AU(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.H264;return void 0!==window.ManagedMediaSource&&(e===A.H264?window.ManagedMediaSource.isTypeSupported(HL):e===A.H265?JL.some((function(e){return window.ManagedMediaSource.isTypeSupported(e)})):window.ManagedMediaSource.isTypeSupported(e))}var tU=Ff(Ff(Ff({},nw),PL),{},{getStreamType:WL,isMseSupported:ZL,isSoftDecodeSupported:$L,isMMSSupported:AU,appendSearchParams:function(e,A){var t,n=LL(e);if(!e||!n)return null!==(t=e)&&void 0!==t?t:"";var r,i=yT(e).call(e,"//");for(var o in A){var a,s,g=A[o];if(null!=n&&n.searchParams.has(o))null==n||null===(a=n.searchParams)||void 0===a||a.set(o,g);else null==n||null===(s=n.searchParams)||void 0===s||s.append(o,g)}return e=n.toString(),i?null===(r=e)||void 0===r?void 0:r.replace(location.protocol,""):e},getUrlObject:LL}),nU=cw.isWeixin,rU=cw.os,iU=cw.device,oU=rU.isAndroid,aU=rU.isIos,sU="mobile"===iU,gU=0,cU=!1,lU=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),LE(Gk(n=A.call(this,e)),"_hasSetUserAutoplay",void 0),LE(Gk(n),"_timer",void 0),LE(Gk(n),"_wxTimer",void 0),LE(Gk(n),"_state",{mode:0,showUnmuteBt:!1}),LE(Gk(n),"userClickPlay",(function(){if(!cU){var e=n.player.play();e&&e.then?e.then((function(){console.log("user action autoplay success"),cU=!0})).catch((function(e){console.warn("user action autoplay fail:",e)})):(console.warn("no play promise"),cU=!0)}})),n}return NE(t,[{key:"afterCreate",value:function(){this.initState(),this.initEvents(),this.setWXAutoPlay()}},{key:"updateLang",value:function(){this.renderUnmuteBt()}},{key:"initState",value:function(){this._state.mode=this.player.muted?1:0}},{key:"initEvents",value:function(){this.player.on(_w,this.handleAutoplayPrevented.bind(this)),this.player.on(Gw,this.handleAutoplayStart.bind(this)),this.player.on(mw,this.handleVolumechange.bind(this)),this.setUserActionAutoPlay()}},{key:"setWXAutoPlay",value:function(){nU&&this.player.config.autoplay&&this.config.enableWxJsBridgeAutoplay&&(window.WeixinJSBridge?this.wxPlay():document.addEventListener("WeixinJSBridgeReady",this.wxPlay.bind(this),!1))}},{key:"wxCanPlayFn",value:function(){var e=this;window.WeixinJSBridge&&window.WeixinJSBridge.invoke("getNetworkType",{},(function(){e._wxTimer=window.setTimeout((function(){e._wxTimer&&clearTimeout(e._wxTimer);var A=e.player.play();A&&A.then?A.then((function(){console.log("wechat autoplay success")})).catch((function(A){console.warn("wechat autoplay fail:",A),e._state.showUnmuteBt=!1,e.renderUnmuteBt()})):console.warn("wechat browser no play promise")}))}))}},{key:"wxPlay",value:function(){this.player.readyState>=2?this.wxCanPlayFn():oU?this.player.once(vw,this.wxCanPlayFn.bind(this)):aU&&this.player.once(bw,this.wxCanPlayFn.bind(this))}},{key:"setUserActionAutoPlay",value:function(){var e=this;this.config.enableUserActionAutoplay&&this.player.once($T.AUTOPLAY_FAIL,(function(){e._hasSetUserAutoplay=!0,(e.config.userActionDom instanceof window.Node?e.config.userActionDom:window.document.body).addEventListener("click",e.userClickPlay,!1)}))}},{key:"handleAutoplayPrevented",value:function(){var e,A,t;return 0===this._state.mode?(console.warn("unmute autoplay fail"),this.player.emit($T.AUTOPLAY_FAIL,{mode:"unmute"}),null===(e=this.player)||void 0===e||null===(e=e.config)||void 0===e||null===(e=e.teaTracker)||void 0===e||null===(e=e.liveLogger)||void 0===e||e.sendLog({event_key:"autoplay_error",message:$T.AUTOPLAY_FAIL,mode:"unmute"}),oU&&nU?void(this._state.mode=2):void(this.config.enableDegradeMuteAutoplay&&this.changeMuteMode())):1===this._state.mode?(console.warn("mute autoplay fail"),this.player.emit($T.AUTOPLAY_FAIL,{mode:"mute"}),this._state.mode=2,void(null===(A=this.player)||void 0===A||null===(A=A.config)||void 0===A||null===(A=A.teaTracker)||void 0===A||null===(A=A.liveLogger)||void 0===A||A.sendLog({event_key:"autoplay_error",message:$T.AUTOPLAY_FAIL,mode:"mute"}))):2===this._state.mode?(this.player.emit($T.AUTOPLAY_FAIL,{mode:"noSupport"}),null===(t=this.player)||void 0===t||null===(t=t.config)||void 0===t||null===(t=t.teaTracker)||void 0===t||null===(t=t.liveLogger)||void 0===t||t.sendLog({event_key:"autoplay_error",message:$T.AUTOPLAY_FAIL,mode:"noSupport"}),void console.warn("not support autoplay")):void 0}},{key:"changeMuteMode",value:function(){var e=this;this.player.muted=!0,this._state.showUnmuteBt=!0,this._state.mode=1,this.renderUnmuteBt(),this._timer=window.setTimeout((function(){e._timer&&window.clearTimeout(e._timer);var A=e.player.play();A&&A.then?A.then((function(){console.log("degrade mute autoplay success")})).catch((function(A){console.warn("degrade mute autoplay fail:",A),e.player.muted=!1,e._state.showUnmuteBt=!1,e.renderUnmuteBt()})):console.warn("no play promise")}))}},{key:"handleAutoplayStart",value:function(){if(0!==this._state.mode)return 1===this._state.mode?(this.player.emit($T.AUTOPLAY_SUCCESS,{mode:"mute"}),this._state.showUnmuteBt=!0,void this.renderUnmuteBt()):2===this._state.mode?(this.player.emit($T.AUTOPLAY_SUCCESS,{mode:"click"}),this.player.muted=!1,this._state.showUnmuteBt=!1,void this.renderUnmuteBt()):void 0;this.player.emit($T.AUTOPLAY_SUCCESS,{mode:"unmute"})}},{key:"handleVolumechange",value:function(){this._state.mode=this.player.muted?1:0,this._state.showUnmuteBt&&(this._state.showUnmuteBt=!1,this.renderUnmuteBt(),this.player.paused&&this.player.readyState>=1&&this.player.play())}},{key:"renderUnmuteBt",value:function(){var e=this.root,A=this.player.config.i18nManager;if(e&&(e.innerHTML="",this._state.showUnmuteBt)){var t=A.getText("UNMUTE"),n=nw.createDom("div",t,void 0,"veplayer-unmute-bt");e.appendChild(n),this.bind(".veplayer-unmute-bt","click",this.cancelUnmute.bind(this)),this.bind(".veplayer-unmute-bt","touchend",this.cancelUnmute.bind(this))}}},{key:"cancelUnmute",value:function(){var e=Date.now();if(e-gU>200){gU=e,this.player.muted=!1,this._state.showUnmuteBt=!1,this.renderUnmuteBt(),this.emit($T.AUTOPLAY_UNMUTE);var A="mobile"===cw.device,t=qL(this.player.config.url);A&&t&&(this.player.volume>.5?this.player.volume=this.player.volume-.1:this.player.volume=this.player.volume+.1)}}},{key:"destroy",value:function(){if(this.player.off(_w,this.handleAutoplayPrevented.bind(this)),this.player.off(Gw,this.handleAutoplayStart.bind(this)),this.player.off(mw,this.handleVolumechange.bind(this)),this._timer&&window.clearTimeout(this._timer),this._wxTimer&&window.clearTimeout(this._wxTimer),document.removeEventListener("WeixinJSBridgeReady",this.wxPlay.bind(this),!1),this._hasSetUserAutoplay){var e=sU?"touch":"click";(this.config.userActionDom instanceof window.Node?this.config.userActionDom:window.document.body).removeEventListener(e,this.userClickPlay,!1)}}},{key:"render",value:function(){return'
'}}],[{key:"pluginName",get:function(){return"autoplayPlugin"}},{key:"defaultConfig",get:function(){return{position:FR.POSITIONS.ROOT,enableDegradeMuteAutoplay:!1,enableWxJsBridgeAutoplay:!1,userActionDom:window.document.body,enableUserActionAutoplay:!1}}}]),t}(FR),uU=uF.values;Gt({target:"Object",stat:!0},{values:function(e){return uU(e)}});var IU=i(re.Object.values);function hU(){return(new DOMParser).parseFromString('\n\n\n',"image/svg+xml").firstChild}var CU,dU,EU=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"onItemClick",value:function(){}},{key:"onOptionClick",value:function(){this.toggle(!1)}},{key:"updateLang",value:function(){var e,A=this,t=this.player.config.i18nManager;null===(e=this.config.plugins)||void 0===e||e.forEach((function(e){var n,r=null!==(n=t.normalize(e.textTips))&&void 0!==n?n:e.pluginName;if(A.player.root){var i=nw.findDom(A.player.root,".panel-plugin-".concat(e.pluginName," .panel-icon-bt-text"));i&&(i.innerHTML=r)}}))}},{key:"beforeCreate",value:function(e){var A,t=e.player.config.i18nManager;e.config.list=null===(A=e.config.plugins)||void 0===A?void 0:Jp(A).call(A,(function(A,n){var r,i=nw.createDom("div","",{},"panel-icon-bt panel-plugin-".concat(A.pluginName)),o=nw.createDom("div","",{},"panel-icon-svg"),a=null!==(r=t.normalize(A.textTips))&&void 0!==r?r:A.pluginName;return i.appendChild(o),i.appendChild(nw.createDom("span",a,{"plugin-index":n},"panel-icon-bt-text")),{showText:i,plugin:e.player.registerPlugin({plugin:A,options:{root:o}})}}))}},{key:"hideChild",value:function(e){if(e){var A;null===(A=e.hide)||void 0===A||A.call(e);var t=document.querySelector(".panel-plugin-".concat(e.pluginName));t&&nw.addClass(t,"hide")}}},{key:"showChild",value:function(e){if(e){var A;null===(A=e.show)||void 0===A||A.call(e);var t=document.querySelector(".panel-plugin-".concat(e.pluginName));t&&nw.removeClass(t,"hide")}}},{key:"registerIcons",value:function(){return{more:{icon:hU}}}}],[{key:"pluginName",get:function(){return"more"}},{key:"defaultConfig",get:function(){return Ff(Ff({},HF.defaultConfig),{},{index:1,plugins:[],list:[],hideOnSingleOption:!1,isShowIcon:!0,hidePortrait:!1,renderType:LF.Icon,panel:{className:"more-panel-content"}})}}]),t}(HF),fU=function(e){return e.ROOT_TOP_RIGHT="rootTopRight",e.ROOT_TOP_RIGHT_COLLAPSE="rootTopRightCollapse",e}(fU||{}),BU=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"registerIcons",value:function(){return{more:{icon:hU,class:"xgplayer-more-svg"}}}},{key:"children",value:function(){var e=this,A=this._getPlugins(),t=A.plugins,n=A.collapsePlugins,r={};return t.forEach((function(A){r[A.pluginName]={plugin:A,options:{root:e.root}}})),n.length&&(r[EU.pluginName]={plugin:EU,options:{root:this.root,plugins:n}}),r}},{key:"render",value:function(){return''}},{key:"_getPlugins",value:function(){var e,A=this,t=[],n=[],r=null===(e=this.player.config.ignores)||void 0===e?void 0:Jp(e).call(e,(function(e){return e.toLowerCase()}));return this.config.plugins.forEach((function(e){var i,o=e.pluginName.toLowerCase();null!=r&&PT(r).call(r,o)||("rootTopRight"===(null!==(i=A.player.config[o].position)&&void 0!==i?i:e.defaultConfig.position)?t.push(e):n.push(e))})),{plugins:null!=t?t:[],collapsePlugins:null!=n?n:[]}}}],[{key:"pluginName",get:function(){return"topRightBar"}},{key:"defaultConfig",get:function(){return{position:FR.POSITIONS.ROOT_TOP,plugins:[]}}},{key:"isTopRightPlugin",value:function(e,A){var t,n,r,i,o,a=null!==(n=null===(r=A[null==e||null===(t=e.pluginName)||void 0===t?void 0:t.toLowerCase()])||void 0===r?void 0:r.position)&&void 0!==n?n:null==e||null===(i=e.defaultConfig)||void 0===i?void 0:i.position;return!!PT(o=IU(fU)).call(o,a)}}]),t}(FR),QU=[iM,cM,hM,BS,QM,eS,iS,XS,oS,_F,bF,JF,XF,lU],pU=xf(CU=[]).call(CU,QU,[zS,vS,BU]),vU=xf(dU=[]).call(dU,QU,[KS,BU]),yU="pc"===cw.device?pU:vU;function mU(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild}function DU(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild}var wU={startPlay:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},play:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},pause:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},fullscreen:DU,exitFullscreen:mU,replay:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},volumeLarge:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},volumeMuted:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},volumeSmall:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild}},RU=Ff(Ff({},wU),{},{fullscreen:DU,exitFullscreen:mU}),kU=Ff(Ff({},wU),{},{fullscreen:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild},exitFullscreen:function(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild}}),SU="pc"===cw.device?RU:kU,MU=Ff(Ff({},gk.TEXT),{},{DEFINITION_FALLBACK_TOAST:"The current network is unstable, it is recommended to switch to ",DEFINITION_SWITCHING:"Switching to",ERROR_REFRESH:"Refresh",UNMUTE:"Click to unmute",MANIFEST:"Video parsing error",NETWORK:"Network error",NETWORK_TIMEOUT:"Network timeout",NETWORK_FORBIDDEN:"Authentication error",NETWORK_NOTFOUND:"Stream does not exist",DEMUX:"Video parsing error",REMUX:"Video parsing error",MEDIA:"An error occurred, Please try again",MEDIA_ERR_CODEC_NOT_SUPPORTED:"Audio/video codec is not supported",MEDIA_ERR_URL_EMPTY:"The stream address is not specified",DRM:"Permission verification failed",DRM_LICENSE:"Commercial DRM Permission verification failed",DRM_UNSUPPORTED:"DRM encrypted playback is not supported",DRM_NO_MEDIA_KEY:"Video data lacks the corresponding MediaKey",DRM_NO_KEY_SESSION:"Browser does not support the corresponding DRM KeySession",DRM_GENERATE_QUEST_FAIL:"Decryption playback error",DRM_LACK_SERVER_CERTIFICATE_PATH:"Missing DRM certificate request link",DRM_LACK_SERVER_PROCESS_SPC_PATH:"Missing DRM License request link",DRM_LICENSE_FAIL:"Request or update License failed",DRM_KEY_ERROR:"Decryption error",DRM_CERT_FAIL:"Request for DRM certificate failed",OTHER:"Unknown error",RUNTIME:"An error occurred, Please try again",MODULE_LOAD_ERROR:"CDN fetch error",LICENSE:"License validation failed",LICENSE_STATUS_INVALID:"License validation failed",LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH:"License domain name does not match",UNKNOWN:"Unknown error"}),GU=Ff(Ff({},{ERROR_TYPES:{network:{code:1,msg:"瑙嗛涓嬭浇閿欒"},mse:{code:2,msg:"娴佽拷鍔犻敊璇�"},parse:{code:3,msg:"瑙f瀽閿欒"},format:{code:4,msg:"鏍煎紡閿欒"},decoder:{code:5,msg:"瑙g爜閿欒"},runtime:{code:6,msg:"璇硶閿欒"},timeout:{code:7,msg:"鎾斁瓒呮椂"},other:{code:8,msg:"鍏朵粬閿欒"}},HAVE_NOTHING:"娌℃湁鍏充簬闊抽/瑙嗛鏄惁灏辩华鐨勪俊鎭�",HAVE_METADATA:"闊抽/瑙嗛鐨勫厓鏁版嵁宸插氨缁�",HAVE_CURRENT_DATA:"鍏充簬褰撳墠鎾斁浣嶇疆鐨勬暟鎹槸鍙敤鐨勶紝浣嗘病鏈夎冻澶熺殑鏁版嵁鏉ユ挱鏀句笅涓€甯�/姣",HAVE_FUTURE_DATA:"褰撳墠鍙婅嚦灏戜笅涓€甯х殑鏁版嵁鏄彲鐢ㄧ殑",HAVE_ENOUGH_DATA:"鍙敤鏁版嵁瓒充互寮€濮嬫挱鏀�",NETWORK_EMPTY:"闊抽/瑙嗛灏氭湭鍒濆鍖�",NETWORK_IDLE:"闊抽/瑙嗛鏄椿鍔ㄧ殑涓斿凡閫夊彇璧勬簮锛屼絾骞舵湭浣跨敤缃戠粶",NETWORK_LOADING:"娴忚鍣ㄦ鍦ㄤ笅杞芥暟鎹�",NETWORK_NO_SOURCE:"鏈壘鍒伴煶棰�/瑙嗛鏉ユ簮",MEDIA_ERR_ABORTED:"鍙栧洖杩囩▼琚敤鎴蜂腑姝�",MEDIA_ERR_NETWORK:"缃戠粶閿欒",MEDIA_ERR_DECODE:"瑙g爜閿欒",MEDIA_ERR_SRC_NOT_SUPPORTED:"涓嶆敮鎸佺殑闊抽/瑙嗛鏍煎紡",REPLAY:"閲嶆挱",ERROR:"缃戠粶杩炴帴浼间箮鍑虹幇浜嗛棶棰�",PLAY_TIPS:"鎾斁",PAUSE_TIPS:"鏆傚仠",PLAYNEXT_TIPS:"涓嬩竴闆�",DOWNLOAD_TIPS:"涓嬭浇",ROTATE_TIPS:"鏃嬭浆",RELOAD_TIPS:"閲嶆柊杞藉叆",FULLSCREEN_TIPS:"杩涘叆鍏ㄥ睆",EXITFULLSCREEN_TIPS:"閫€鍑哄叏灞�",CSSFULLSCREEN_TIPS:"杩涘叆鏍峰紡鍏ㄥ睆",EXITCSSFULLSCREEN_TIPS:"閫€鍑烘牱寮忓叏灞�",TEXTTRACK:"瀛楀箷",PIP:"鐢讳腑鐢�",SCREENSHOT:"鎴浘",LIVE:"姝e湪鐩存挱",OFF:"鍏抽棴",OPEN:"寮€鍚�",MINI_DRAG:"鐐瑰嚮鎸変綇鍙嫋鍔ㄨ棰�",MINISCREEN:"灏忓睆骞�",REFRESH_TIPS:"璇疯瘯璇�",REFRESH:"鍒锋柊",FORWARD:"蹇繘涓�",LIVE_TIP:"鐩存挱"}),{},{DEFINITION_FALLBACK_TOAST:"褰撳墠缃戠粶涓嶇ǔ瀹氾紝寤鸿鍒囨崲鍒�",DEFINITION_SWITCHING:"姝e湪鍒囨崲鑷�",ERROR_REFRESH:"鍒锋柊",UNMUTE:"鐐瑰嚮鍙栨秷闈欓煶",MANIFEST:"瑙嗛瑙f瀽閿欒",NETWORK:"缃戠粶閿欒",NETWORK_TIMEOUT:"缃戠粶瓒呮椂",NETWORK_FORBIDDEN:"閴存潈寮傚父",NETWORK_NOTFOUND:"鎾斁鍦板潃涓嶅瓨鍦�",DEMUX:"瑙嗛瑙f瀽閿欒",REMUX:"瑙嗛瑙f瀽閿欒",MEDIA:"鎾斁寮傚父锛岃閲嶈瘯",MEDIA_ERR_CODEC_NOT_SUPPORTED:"涓嶆敮鎸佺殑闊抽/瑙嗛鏍煎紡",MEDIA_ERR_URL_EMPTY:"褰撳墠鎾斁鍦板潃涓虹┖",DRM:"鏉冮檺楠岃瘉澶辫触",DRM_LICENSE:"鍟嗕笟 DRM LICENSE 閴存潈澶辫触",DRM_UNSUPPORTED:"涓嶆敮鎸� DRM 鍔犲瘑鎾斁",DRM_NO_MEDIA_KEY:"瑙嗛鏁版嵁缂哄皯鐩稿簲 MediaKey",DRM_NO_KEY_SESSION:"娴忚鍣ㄤ笉鏀寔鐩稿簲 DRM KeySession",DRM_GENERATE_QUEST_FAIL:"瑙e瘑鎾斁閿欒",DRM_LACK_SERVER_CERTIFICATE_PATH:"缂哄皯 DRM 璇佷功璇锋眰閾炬帴",DRM_LACK_SERVER_PROCESS_SPC_PATH:"缂哄皯 DRM License 璇锋眰閾炬帴",DRM_LICENSE_FAIL:"璇锋眰鎴栨洿鏂� License 澶辫触",DRM_KEY_ERROR:"瑙e瘑閿欒",DRM_CERT_FAIL:"璇锋眰 DRM 璇佷功澶辫触",OTHER:"鍏朵粬鎶ラ敊",RUNTIME:"鎾斁寮傚父锛岃閲嶈瘯",MODULE_LOAD_ERROR:"鎻掍欢妯″潡鍔犺浇寮傚父",LICENSE:"License 鏍¢獙澶辫触",LICENSE_STATUS_INVALID:"License 鏍¢獙澶辫触",LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH:"License 鍩熷悕涓嶅尮閰�",UNKNOWN:"鏈煡鎶ラ敊"}),_U=function(){function e(A){var t;if(GE(this,e),LE(this,"_lang",void 0),this._lang=(null==A?void 0:A.lang)||ow()||"en","zh"===this._lang&&(this._lang="zh-cn"),null!=A&&null!==(t=A.i18n)&&void 0!==t&&t.texts){var n,r,i=Jp(n=hF(null==A||null===(r=A.i18n)||void 0===r?void 0:r.texts)).call(n,(function(e){var A=rF(e,2);return{LANG:A[0],TEXT:A[1]}}));e.extend(i)}}return NE(e,[{key:"setLang",value:function(e){this._lang=e}},{key:"getLang",value:function(){return this._lang}},{key:"normalize",value:function(e){return e?"string"==typeof e?e:e[this._lang]:""}},{key:"getText",value:function(e){var A,t,n;if(e){var r=null==hk?void 0:hk.lang;return null!==(A=null==r||null===(t=r[this._lang])||void 0===t?void 0:t[e])&&void 0!==A?A:null==r||null===(n=r.en)||void 0===n?void 0:n[e]}}}],[{key:"langKeys",get:function(){return hk.langKeys}},{key:"isLangValid",value:function(e){var A;return PT(A=hk.langKeys).call(A,e)||"zh"===e}},{key:"extend",value:function(e,A){hk.extend(e,A)}}]),e}(),bU=function(){function e(A){GE(this,e),LE(this,"_videoAttributes",void 0),LE(this,"_el",void 0),this._videoAttributes=KL(A),this._el=A}return NE(e,[{key:"options",get:function(){var e=this;return{remainMediaAfterDestroy:!0,mediaEl:function(A){return xL(e._el,A)}}}},{key:"destroy",value:function(){YL(this._el,this._videoAttributes)}}]),e}(),TU=["autoplay"],FU=Ff(Ff({},FR.POSITIONS),fU),NU={id:"veplayer",width:"100%",height:"100%",decodeType:n.Hardware,fullscreen:{useCssFullscreen:!1}},LU=function(e){var A,t,n,r,i=e.autoplay,o=Af(e,TU);if(o.poster)if("string"==typeof o.poster)o.poster=nF(o.poster);else if("string"==typeof(null===(A=o.poster)||void 0===A?void 0:A.poster)){var a;o.poster.poster=nF(null===(a=o.poster)||void 0===a?void 0:a.poster)}(o.icons=Ff(Ff({},SU),o.icons?(t=o.icons,n={},hF(null!=t?t:{}).forEach((function(e){var A=rF(e,2),t=A[0],r=A[1];"string"==typeof r?console.warn("icons.".concat(t," has been removed")):n[t]=r})),n):{}),o.autoplay=Boolean(i),i&&"boolean"!=typeof i)&&(o.autoplayMuted=null==i?void 0:i.muted,o.videoAttributes=Ff(Ff({},null!==(r=o.videoAttributes)&&void 0!==r?r:{}),{},{muted:null==i?void 0:i.muted}),o.autoplayPlugin=i);return delete o.i18n,o},UU=function(){function e(){var A,t,n,r,i,o,a,s,g,c,l,u,I,h=this,C=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};GE(this,e),LE(this,"_player",void 0),LE(this,"_sourceManager",void 0),LE(this,"_preparePlugins",void 0),LE(this,"_previousPrepareResult",void 0),LE(this,"_i18nManager",void 0),LE(this,"_events",{}),LE(this,"_customMedia",void 0),LE(this,"_errorCallback",void 0),LE(this,"_beforeFallbackError",void 0),this._sourceManager=C.sourceManager,this._preparePlugins=C.preparePlugins,this._previousPrepareResult=C.prepareResult,this._beforeFallbackError=C.beforeFallbackError,this._i18nManager=null!==(A=C.i18nManager)&&void 0!==A?A:new _U({i18n:C.i18n}),C.mediaElement&&(this._customMedia=new bU(C.mediaElement));var d=LU(Ff(Ff(Ff({},C),null===(t=this._customMedia)||void 0===t?void 0:t.options),null===(n=this._previousPrepareResult)||void 0===n?void 0:n.options)),E=xf(r=[]).call(r,ME(null!==(i=null===(o=this._previousPrepareResult)||void 0===o?void 0:o.plugins)&&void 0!==i?i:[]),ME(null!==(a=C.plugins)&&void 0!==a?a:yU)),f=[],B=[];E.forEach((function(e){BU.isTopRightPlugin(e,C)?f.push(e):B.push(e)})),this._player=new Mk(Ff(Ff(Ff({},NU),d),{},{definition:Ff({list:null!==(s=null===(g=this._sourceManager.source)||void 0===g?void 0:g.definitions)&&void 0!==s?s:[],defaultDefinition:null===(c=this._sourceManager.definition)||void 0===c?void 0:c.definition},null!==(l=C.definition)&&void 0!==l?l:{}),url:null===(u=this._sourceManager.definition)||void 0===u?void 0:u.url,sources:Ff(Ff({},null!==(I=C.sources)&&void 0!==I?I:{}),{},{sourceManager:this._sourceManager}),topRightBar:{plugins:f},plugins:B,i18nManager:this._i18nManager,veplayer:this})),this.emit(eF.PLAYER_CREATE_FINISH,this._player),this._errorCallback=function(e){return h._handleFallback(e)},this._player.on(fw,this._errorCallback)}var A,t,n,r,i,o,a,s,g;return NE(e,[{key:"readyState",get:function(){return this._player.readyState}},{key:"buffered",get:function(){return this._player.buffered}},{key:"played",get:function(){return this._player.played}},{key:"cumulateTime",get:function(){return this._player.cumulateTime}},{key:"isFocused",get:function(){return this._player.isActive}},{key:"isFullscreen",get:function(){return this._player.isFullscreen}},{key:"isCssFullscreen",get:function(){return this._player.isCssfullScreen}},{key:"networkState",get:function(){return this._player.networkState}},{key:"paused",get:function(){return this._player.paused}},{key:"ended",get:function(){return this._player.ended}},{key:"state",get:function(){return this._player.state}},{key:"url",get:function(){return this._player.config.url}},{key:"source",get:function(){var e;return null===(e=this._sourceManager.source)||void 0===e?void 0:e.name}},{key:"playerVersion",get:function(){return"2.11.2"}},{key:"definition",get:function(){var e;return null===(e=this._sourceManager.definition)||void 0===e?void 0:e.definition}},{key:"crossOrigin",get:function(){return this._player.crossOrigin},set:function(e){this._player.crossOrigin=e}},{key:"volume",get:function(){return this._player.volume},set:function(e){this._player.volume=e}},{key:"muted",get:function(){return this._player.muted},set:function(e){this._player.muted=e}},{key:"lang",get:function(){return this._i18nManager.getLang()},set:function(e){if(this._player.lang!==e)if(_U.isLangValid(e))this._i18nManager.setLang(e),this._player.lang=e;else{var A,t,n,r,i=_U.langKeys.join(","),o={en:xf(A="Sorry, we couldn't set the language to ".concat(e," because it's not currently supported. The list of supported languages includes ")).call(A,i,"."),"zh-cn":xf(t="涓嶆敮鎸佸綋鍓嶈缃殑璇█".concat(e,", 鏀寔鐨勮瑷€鏈�")).call(t,i,", 璇烽噸鏂拌缃�")};console.error((null===(n=this._i18nManager)||void 0===n||null===(r=n.normalize)||void 0===r?void 0:r.call(n,o))||o.en)}}},{key:"_src",get:function(){return this._player.currentSrc}},{key:"switch",value:(g=aE(iE().mark((function e(A,t){var n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("string"!=typeof A||1!==this._sourceManager.sources.length||1!==(null===(n=this._sourceManager.sources)||void 0===n||null===(n=n[0].definitions)||void 0===n?void 0:n.length)){e.next=5;break}return this._sourceManager.updateSources(A),e.next=4,this._switchUrl(A,{seamless:null==t?void 0:t.seamless});case 4:return e.abrupt("return",this._sourceManager.definition);case 5:if(i=qf(r=this._sourceManager).call(r,A,t)){e.next=8;break}throw new Error("string"==typeof A?"No definition found for url: ".concat(A):xf(o="No definition found for source: ".concat(A.source,", definition: ")).call(o,A.definition));case 8:return e.next=10,this._switch(i);case 10:return e.abrupt("return",i);case 11:case"end":return e.stop()}}),e,this)}))),function(e,A){return g.apply(this,arguments)})},{key:"updatePlaylist",value:(s=aE(iE().mark((function e(A,t){var n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=this._sourceManager.updateSources(A,t),e.abrupt("return",this._switch(n.definition));case 2:case"end":return e.stop()}}),e,this)}))),function(e,A){return s.apply(this,arguments)})},{key:"once",value:function(e,A){var t,n=this._transformEvent(e,A),r=n.xgCallback,i=n.xgEventName;r&&(null!==(t=this._events)&&void 0!==t&&t[e]||(this._events[e]=new Up),this._events[e].set(A,r),this._player.once(i,r))}},{key:"off",value:function(e,A){var t,n=null===(t=this._events[e])||void 0===t?void 0:t.get(A),r=this._transformEvent(e).xgEventName;n&&(this._player.off(r,n),this._events[e].delete(A))}},{key:"emit",value:function(e,A){var t=this._transformEvent(e).xgEventName;this._player.emit(t,A)}},{key:"offAll",value:function(){this._events={},this._player.offAll()}},{key:"on",value:function(e,A){var t,n=this._transformEvent(e,A),r=n.xgCallback,i=n.xgEventName;r&&(null!==(t=this._events)&&void 0!==t&&t[e]||(this._events[e]=new Up),this._events[e].set(A,r),this._player.on(i,r))}},{key:"play",value:(a=aE(iE().mark((function e(){var A,t,n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,null!==(A=this._player)&&void 0!==A&&null!==(A=A.config)&&void 0!==A&&null!==(A=A.teaTracker)&&void 0!==A&&A.liveLogger&&this._player.config.teaTracker.liveLogger.sendLog({event_key:"play_method_call"}),e.next=4,this._player.play();case 4:return t=e.sent,e.abrupt("return",t);case 8:throw e.prev=8,e.t0=e.catch(0),null!==(n=this._player)&&void 0!==n&&null!==(n=n.config)&&void 0!==n&&null!==(n=n.teaTracker)&&void 0!==n&&n.liveLogger&&this._player.config.teaTracker.liveLogger.sendLog({event_key:"play_method_call_error",error:e.t0.message||String(e.t0)}),e.t0;case 12:case"end":return e.stop()}}),e,this,[[0,8]])}))),function(){return a.apply(this,arguments)})},{key:"pause",value:function(){return this._player.pause()}},{key:"requestPIP",value:function(){var e;null===(e=this._player.plugins.pip)||void 0===e||e.requestPIP()}},{key:"exitPIP",value:function(){var e;null===(e=this._player.plugins.pip)||void 0===e||e.exitPIP()}},{key:"retry",value:function(){var e;return(null===(e=this._previousPrepareResult)||void 0===e||!e.error)&&(this._player.retry(),!0)}},{key:"focus",value:function(e){return this._player.focus(e)}},{key:"blur",value:function(e){return this._player.blur(e)}},{key:"canPlayType",value:function(e){return this._player.canPlayType(e)}},{key:"requestFullscreen",value:function(e){return this._player.getFullscreen(e)}},{key:"exitFullscreen",value:function(e){return this._player.exitFullscreen(e)}},{key:"requestCssFullscreen",value:function(e){return this._player.getCssFullscreen(e)}},{key:"exitCssFullscreen",value:function(){return this._player.exitCssFullscreen()}},{key:"registerPlugin",value:function(e,A){return this._player.registerPlugin(e,A)}},{key:"unRegisterPlugin",value:function(e){return this._player.unRegisterPlugin(e)}},{key:"showIcon",value:function(e){var A=this,t=this._player.getPlugin("more");e.forEach((function(e){var n=A._player.getPlugin(e);n&&null!=n&&n.root&&(n.config.position===FU.ROOT_TOP_RIGHT_COLLAPSE?null==t||t.showChild(n):n.show())}))}},{key:"hideIcon",value:function(e){var A=this,t=this._player.getPlugin("more");e.forEach((function(e){var n=A._player.getPlugin(e);n&&null!=n&&n.root&&(n.config.position===FU.ROOT_TOP_RIGHT_COLLAPSE?null==t||t.hideChild(n):n.hide())}))}},{key:"destroy",value:function(){var e;this._player.off(fw,this._errorCallback),this._player.destroy(),null===(e=this._customMedia)||void 0===e||e.destroy()}},{key:"handlePrepareError",value:function(e){var A,t,n,r,i=this;null===(A=this._player)||void 0===A||null===(A=A.media)||void 0===A||A.removeAttribute("src"),null===(t=this._player)||void 0===t||null===(t=t.plugins)||void 0===t||null===(t=t.controls)||void 0===t||t.hide(),null===(n=this._player)||void 0===n||n.emit(fw,e),null===(r=this._previousPrepareResult)||void 0===r||null===(r=r.plugins)||void 0===r||r.forEach((function(e){i._player.unRegisterPlugin(e.pluginName)}))}},{key:"prepare",value:(o=aE(iE().mark((function e(A){var t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,null===(g=this._preparePlugins)||void 0===g?void 0:g.call(this,A);case 3:s=e.sent,e.next=11;break;case 6:return e.prev=6,e.t0=e.catch(0),this.handlePrepareError(e.t0),this._previousPrepareResult={error:e.t0},e.abrupt("return",{canSwitch:!1});case 11:return null!==(t=s)&&void 0!==t&&t.protocol&&null!==(n=this._previousPrepareResult)&&void 0!==n&&n.protocol?c=s.protocol===(null===(l=this._previousPrepareResult)||void 0===l?void 0:l.protocol):(C=null!==(u=null===(I=s)||void 0===I||null===(I=I.options)||void 0===I?void 0:I.url)&&void 0!==u?u:A,d=null===(h=this._player)||void 0===h||null===(h=h.config)||void 0===h?void 0:h.url,c=d&&WL(C)===WL(d)),c||null===(E=this._previousPrepareResult)||void 0===E||null===(E=E.plugins)||void 0===E||E.forEach((function(e){f._player.unRegisterPlugin(e.pluginName)})),this._previousPrepareResult=s,null!==(r=s)&&void 0!==r&&r.options&&this._player.setConfig(s.options),e.abrupt("return",{plugins:c?[]:null===(i=s)||void 0===i||null===(i=i.plugins)||void 0===i?void 0:Jp(i).call(i,(function(e){return f._player.registerPlugin(e)})),options:null===(o=s)||void 0===o?void 0:o.options,isSameProtocol:c,useSrc:null===(a=s)||void 0===a?void 0:a.useSrc,canSwitch:!0});case 16:case"end":return e.stop()}}),e,this,[[0,6]])}))),function(e){return o.apply(this,arguments)})},{key:"_handleFallback",value:(i=aE(iE().mark((function e(A){var t,n,r,i=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._player.addClass(xR),t=this._sourceManager.url,n=this._sourceManager.fallback()){e.next=19;break}return r=$k(A,this._i18nManager),e.prev=5,e.next=8,this._beforeFallbackError(r);case 8:if(e.sent.canEmitError){e.next=12;break}return e.abrupt("return");case 12:e.next=16;break;case 14:e.prev=14,e.t0=e.catch(5);case 16:return this._player.removeClass(xR),this.emit(eF.FALLBACK_ERROR,r),e.abrupt("return");case 19:this._player.once("canplay",(function(){i._sourceManager.resetFallback()})),this.emit(eF.FALLBACK,{from:{url:t},to:{url:n}}),this._switchUrl(n);case 22:case"end":return e.stop()}}),e,this,[[5,14]])}))),function(e){return i.apply(this,arguments)})},{key:"_transformEvent",value:function(e,A){var t=this;return e===fw?{xgCallback:A?function(e){A($k(e,t._i18nManager))}:void 0,xgEventName:e}:function(e,A){var t=AF[e];if(t)return{xgEventName:t.event,xgCallback:A?t.shouldCallback?function(){for(var e,n,r=arguments.length,i=new Array(r),o=0;o0&&void 0!==I[0]?I[0]:{},i=I.length>1?I[1]:void 0,o=new SF({sources:kF.normalize({url:r.url,fallbackUrls:r.fallbackUrls,sources:r.playlist}),url:r.url,defaultSource:r.defaultSource,defaultDefinition:r.defaultDefinition,maxFallbackRound:r.maxFallbackRound}),A.prev=3,A.next=6,null==r||null===(s=r.preparePlugins)||void 0===s?void 0:s.call(r,null!==(g=o.url)&&void 0!==g?g:"");case 6:a=A.sent,A.next=12;break;case 9:A.prev=9,A.t0=A.catch(3),a={error:A.t0};case 12:return null!==(t=a)&&void 0!==t&&null!==(t=t.options)&&void 0!==t&&t.url&&(o.url=null===(c=a)||void 0===c||null===(c=c.options)||void 0===c?void 0:c.url),r.url=o.url,l=new(null!=i?i:e)(Ff(Ff({},r),{},{prepareResult:a,sourceManager:o})),null!==(n=a)&&void 0!==n&&n.error&&(null==l||null===(u=l._player)||void 0===u||u.once(eF.READY,(function(){var e;l.handlePrepareError(null===(e=a)||void 0===e?void 0:e.error)}))),A.abrupt("return",l);case 17:case"end":return A.stop()}}),A,null,[[3,9]])}))),function(){return A.apply(this,arguments)})}]),e}();function KU(e){var A=wF(e).call(e,(function(e,A){return e+A.byteLength}),0),t=new Uint8Array(A),n=0;return e.forEach((function(e){t.set(e,n),n+=e.byteLength})),t}function xU(e,A){return tD(null==e?void 0:e.toFixed(A||4))}var YU,PU,HU=Iy,JU=function(e,A,t){return function(e,A,t){A in e?HU(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==wc(A)?A+"":A,t),t},OU="ScriptData",zU="Sequence_Header",jU="RawData",XU=[5500,11e3,22e3,44e3],qU="aac",VU="pcma",WU="pcmu",ZU="avc",$U="bytevc1",eK=function(){function e(A){var t=this;GE(this,e),JU(this,"type",0),JU(this,"tagSize",0),JU(this,"timestamp",0),JU(this,"duration",0),JU(this,"header",null),JU(this,"body",null),JU(this,"bodyView",null),JU(this,"tailsize",null),jp(A).forEach((function(e){t[e]=A[e]}))}return NE(e,[{key:"streamType",get:function(){switch(this.type){case 18:return"scriptData";case 9:return"video";case 8:return"audio"}}},{key:"packetType",get:function(){var e;return null==(e=this.bodyView)?void 0:e.packetType}},{key:"frameType",get:function(){var e;return null==(e=this.bodyView)?void 0:e.frameType},set:function(e){this.bodyView.frameType=e}},{key:"dts",get:function(){return this.timestamp}},{key:"pts",get:function(){var e;return((null==(e=this.bodyView)?void 0:e.cts)||0)+this.timestamp}},{key:"ptsTime",get:function(){return this.pts?xU(this.pts/1e3):0}},{key:"dtsTime",get:function(){return this.dts?xU(this.dts/1e3):0}},{key:"sampleView",get:function(){var e,A,t;if("Sequence_Header"!==(null==(e=this.bodyView)?void 0:e.packetType)&&18!==this.type)return{dts:this.timestamp,pts:((null==(A=this.bodyView)?void 0:A.cts)||0)+this.timestamp,data:this._getSampleData(),units:null==(t=this.bodyView)?void 0:t.units}}},{key:"size",get:function(){var e,A;return null==(A=null==(e=this.sampleView)?void 0:e.data)?void 0:A.length}},{key:"data",get:function(){return this._getSampleData()}},{key:"nalTypes",get:function(){var e,A;return null==(A=null==(e=this.bodyView)?void 0:e.units)?void 0:Jp(A).call(A,(function(e){return e.type}))}},{key:"nalSizes",get:function(){var e,A;return null==(A=null==(e=this.bodyView)?void 0:e.units)?void 0:Jp(A).call(A,(function(e){return e.unit.length}))}},{key:"keyframe",get:function(){return"I"===this.frameType}},{key:"isSample",get:function(){return"scriptData"!==this.streamType&&"Sequence_Header"!==this.packetType}},{key:"isVideo",get:function(){return this.isSample&&"video"===this.streamType}},{key:"isAudio",get:function(){return this.isSample&&"audio"===this.streamType}},{key:"isSqHeader",get:function(){return"Sequence_Header"===this.packetType}},{key:"timescale",get:function(){return 1e3}},{key:"isHevc",get:function(){var e;return"bytevc1"===(null==(e=this.bodyView)?void 0:e.codecType)}},{key:"_getSampleData",value:function(){var e,A;if("audio"===this.streamType)return this.bodyView.sample;var t=(null==(A=this.bodyView)?void 0:jv(e=A.units).call(e,(function(e){return!e.isSei})))||[],n=wF(t).call(t,(function(e,A){return e+(A.unit.byteLength+4)}),0),r=new Uint8Array(n),i=0;return t.forEach((function(e){r.set([0,0,0,1],i),i+=4,r.set(e.unit,i),i+=e.unit.byteLength})),r}}]),e}(),AK=function(){function e(){GE(this,e)}return NE(e,null,[{key:"decode",value:function(A){for(var t=[],n=A,r=0,i=A.length;r=128){t.push(String.fromCharCode(65535&o)),r+=2;continue}}}else if(n[r]<240){if(e._checkContinuation(n,r,2)){var a=(15&n[r])<<12|(63&n[r+1])<<6|63&n[r+2];if(a>=2048&&55296!=(63488&a)){t.push(String.fromCharCode(65535&a)),r+=3;continue}}}else if(n[r]<248&&e._checkContinuation(n,r,3)){var s=(7&n[r])<<18|(63&n[r+1])<<12|(63&n[r+2])<<6|63&n[r+3];if(s>65536&&s<1114112){s-=65536,t.push(String.fromCharCode(s>>>10|55296)),t.push(String.fromCharCode(1023&s|56320)),r+=4;continue}}t.push(String.fromCharCode(65533)),++r}return t.join("")}},{key:"_checkContinuation",value:function(e,A,t){var n=e;if(A+t0&&(t=AK.decode(new Uint8Array(A.buffer,A.byteOffset+r,p))),r+=p;break;default:r=n}return{data:t,size:r,isEnd:i}}},{key:"_parseString",value:function(e){var A=e.getUint16(0),t="";return A>0&&(t=AK.decode(new Uint8Array(e.buffer,e.byteOffset+2,A))),{data:t,size:2+A}}},{key:"_parseObject",value:function(A){if(!(A.byteLength<3)){var t=e._parseString(A),n=e._parseValue(new DataView(A.buffer,A.byteOffset+t.size,A.byteLength-t.size));return{data:{name:t.data,value:n.data},size:t.size+n.size,isEnd:n.isEnd}}}}]),e}(),nK="undefined"!=typeof window,rK=nK&&navigator.userAgent.toLocaleLowerCase(),iK=nK&&PT(rK).call(rK,"firefox"),oK=nK&&PT(rK).call(rK,"android"),aK=Iy,sK=function(){function e(){GE(this,e)}return NE(e,null,[{key:"parseADTS",value:function(A,t){for(var n=A.length,r=0;r+2=n)){var i=r,o=[],a=(60&A[r+2])>>>2,s=e.FREQ[a];if(!s)throw new Error("Invalid sampling index: ".concat(a));for(var g,c,l=1+((192&A[r+2])>>>6),u=(1&A[r+2])<<2|(192&A[r+3])>>>6,I=e._getConfig(a,u,l),h=I.config,C=I.codec,d=0,E=e.getFrameDuration(s);r+7>5))break;g=2*(1&~A[r+1]);var f=xU(t+d*E);o.push({pts:f,dts:f,ptsTime:xU(f/9e4),dtsTime:xU(f/9e4),data:A.subarray(r+7+g,r+c)}),d++,r+=c}else r++;return{skip:i,remaining:r>=n?void 0:A.subarray(r),frames:o,nbFrame:o.length,samplingFrequencyIndex:a,sampleRate:s,objectType:l,channelCount:u,codec:C,config:h,originCodec:"mp4a.40.".concat(l)}}}},{key:"parseAudioSpecificConfig",value:function(A){if(A.length){var t=A[0]>>>3,n=(7&A[0])<<1|A[1]>>>7,r=(120&A[1])>>>3,i=e.FREQ[n];if(!i)throw new Error("Invalid sampling index: ".concat(n));var o=e._getConfig(n,r,t);return{samplingFrequencyIndex:n,sampleRate:i,objectType:t,channelCount:r,config:o.config,codec:o.codec,originCodec:"mp4a.40.".concat(t)}}}},{key:"getFrameDuration",value:function(e){return 1024*(arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4)/e}},{key:"_getConfig",value:function(e,A,t){var n,r,i=[];return iK?e>=6?(n=5,r=e-3):(n=2,r=e):oK?(n=2,r=e):(n=t,r=e,e>=6?r=e-3:1===A&&(n=2,r=e)),i[0]=n<<3,i[0]|=(14&e)>>1,i[1]=(1&e)<<7,i[1]|=A<<3,5===n&&(i[1]|=(14&r)>>1,i[2]=(1&r)<<7,i[2]|=8,i[3]=0),{config:i,codec:"mp4a.40.".concat(n)}}},{key:"getSilentFrame",value:function(e,A){if("mp4a.40.2"===e){if(1===A)return new Uint8Array([0,200,0,128,35,128]);if(2===A)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===A)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===A)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===A)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}(),gK=sK;PU=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350],function(e,A,t){A in e?aK(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(gK,"symbol"!==wc(YU="FREQ")?YU+"":YU,PU);var cK=Iy,lK=function(e,A,t){return function(e,A,t){A in e?cK(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==wc(A)?A+"":A,t),t},uK=function(){function e(A){if(GE(this,e),lK(this,"_bytesAvailable"),lK(this,"_bitsAvailable",0),lK(this,"_word",0),!A)throw new Error("ExpGolomb data params is required");this._data=A,this._bytesAvailable=A.byteLength,this._bytesAvailable&&this._loadWord()}return NE(e,[{key:"_loadWord",value:function(){var e=this._data.byteLength-this._bytesAvailable,A=Math.min(4,this._bytesAvailable);if(0===A)throw new Error("No bytes available");var t=new Uint8Array(4);t.set(this._data.subarray(e,e+A)),this._word=new DataView(t.buffer).getUint32(0),this._bitsAvailable=8*A,this._bytesAvailable-=A}},{key:"skipBits",value:function(e){if(this._bitsAvailable>e)this._word<<=e,this._bitsAvailable-=e;else{e-=this._bitsAvailable;var A=Math.floor(e/8);e-=8*A,this._bytesAvailable-=A,this._loadWord(),this._word<<=e,this._bitsAvailable-=e}}},{key:"readBits",value:function(e){if(e>32)throw new Error("Cannot read more than 32 bits");var A=Math.min(this._bitsAvailable,e),t=this._word>>>32-A;return this._bitsAvailable-=A,this._bitsAvailable>0?this._word<<=A:this._bytesAvailable>0&&this._loadWord(),(A=e-A)>0&&this._bitsAvailable?t<>>e))return this._word<<=e,this._bitsAvailable-=e,e;return this._loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBool",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"skipScalingList",value:function(e){for(var A=8,t=8,n=0;n1&&void 0!==arguments[1]?arguments[1]:0;return(e[A]<<24>>>0)+(e[A+1]<<16)+(e[A+2]<<8)+(e[A+3]||0)}var hK=function(){function e(){GE(this,e)}return NE(e,null,[{key:"parseAnnexB",value:function(e){for(var A=e.length,t=2,n=0;null!==e[t]&&1!==e[t];)t++;if((n=++t+2)>=A)return[];for(var r=[];n1&&void 0!==arguments[1]?arguments[1]:4;if(!(e.length<4)){for(var t,n=e.length,r=[],i=0;i+A>>=8),i+=A,t){if(i+t>n)break;r.push(e.subarray(i,i+t)),i+=t}return r}}},{key:"parseNaluType",value:function(e,A){return null==e?void 0:Jp(e).call(e,(function(e){var t=A?e[0]>>>1&63:31&e[0],n=A&&(39===t||40===t),r={type:t,unit:e,isSei:n=n||!A&&6===t};switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!A&&5!==t||A&&5===t)break;r.frameType="I"}return A||1!==t||(r.frameType=function(e){var A=new uK(e).readSliceType();return 2===A||4===A||7===A||9===A?"I":0===A||3===A||5===A||8===A?"P":1===A||6===A?"B":void 0}(e)),!A||0!==t&&1!==t||(r.frameType="P"),!A&&t<=5&&(r.firstMbInSlice=new uK(e).firstMbInSlice()),A&&t<=21&&(r.firstMbInSlice=128==(128&e[2])),r}))}},{key:"parseSEI",value:function(e){for(var A=e.length,t=1,n=0,r=0,i="";255===e[t];)n+=255,t++;for(n+=e[t++];255===e[t];)r+=255,t++;if(r+=e[t++],5===n&&A>t+16)for(var o=0;o<16;o++)i+=e[t].toString(16),t++;return{payload:e.subarray(t),type:n,size:r,uuid:i}}},{key:"removeEPB",value:function(e){for(var A=e.byteLength,t=[],n=1;n2&&void 0!==arguments[2]?arguments[2]:1)&&(t=e.readBits(2),n=e.readBits(1),r=e.readBits(5)),e.readBits(32),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(1),e.readBits(16),e.readBits(16),e.readBits(12);for(var i=e.readUByte(),o=[],a=[],s=0;s0&&e.readBits(2*(8-A));for(var g=0;g1&&void 0!==arguments[1]?arguments[1]:0,r=jv(A=e.items).call(A,(function(e){return e.isSample&&e.isVideo}))[0],i=jv(t=e.items).call(t,(function(e){return e.isSample&&e.isAudio}))[0],o=Math.min((null==i?void 0:i.dtsTime)||0,(null==r?void 0:r.dtsTime)||0);return o-=n,e.items.forEach((function(e){e.time=xU(e.dtsTime-o)})),e}function fK(e){var A,t=jv(A=e.items).call(A,(function(e){return e.isVideo})),n=[],r=-1,i={},o={};return t.forEach((function(e,A){(e.keyframe||A===t.length-1)&&(r=-1===r?e.time:r,n.push({time:e.time,value:xU(e.time-r)}),r=e.time);var a=Math.ceil(e.time+1e-5);i[a]?i[a]++:i[a]=1,o[a]?o[a]+=8*e.size:o[a]=8*e.size})),{bitRates:BK(o),gops:jv(n).call(n,(function(e){return e.value})),frameRates:BK(i)}}function BK(e){var A=jp(e);return Jp(A).call(A,(function(A){return{time:Number(A),value:e[A]}}))}function QK(e){var A,t,n,r,i=wF(A=Xp(t=qD(n=jv(r=Xp(e).call(e)).call(r,(function(e){return e.isSample}))).call(n,(function(e,A){return e.time>A.time?1:-1}))).call(t,0,3)).call(A,(function(e,A){return e+A.size}),0);return i>1e3?xU(i/1e3)+"KB":i+"B"}function pK(e){return wF(e).call(e,(function(e,A){return e+A.size}),0)/wF(e).call(e,(function(e,A){return e+A.duration}),0)*8e3}function vK(e){if(null==e?void 0:e.profileIdc)switch(e.profileIdc){case 66:return"66(Baseline)";case 77:return"77(Main)";case 100:return"100(High)"}}var yK=Iy,mK=function(e,A,t){return function(e,A,t){A in e?yK(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==wc(A)?A+"":A,t),t},DK=function(){function e(){GE(this,e),mK(this,"_nalUnitSize",0),mK(this,"_lastAudio",null),mK(this,"_lastVideo",null),mK(this,"_videoStartDts",-1),mK(this,"_audioStartDts",-1)}return NE(e,[{key:"parse",value:function(e){for(var A=e.byteLength,t=e.subarray(0,13),n=13,r=Ff(Ff({header:t},this._parseHeader(t)),{},{items:[]});n+11A)break;var s=e.subarray(n+11,a),g=new eK(Ff({tagSize:11+o+4,header:i,body:s,tailsize:e.subarray(a,a+4)},this._parseTag(i,s)));g.isAudio&&(this._lastAudio&&(this._lastAudio.duration=g.dts-this._lastAudio.dts),this._lastAudio=g),g.isVideo&&(this._lastVideo&&(this._lastVideo.duration=g.dts-this._lastVideo.dts),this._lastVideo=g),r.items.push(g),n=a+4}var c=EK(r);return c.rates=fK(c),this._addMetadataToFirstKeyFrame(c),c}},{key:"getSnapshoot",value:function(A,t){var n,r,i,o,a=jv(n=A.items).call(n,(function(e){return 8===e.type}))[0],s=jv(r=A.items).call(r,(function(e){return 9===e.type}))[0],g=a&&a.bodyView||a,c=s&&s.bodyView||s,l=jv(i=A.items).call(i,(function(e){return e.isVideo})).length,u=this._getNbFrame(A,"I"),I=this._getNbFrame(A,"P"),h=this._getNbFrame(A,"B"),C=0;if(null==t?void 0:t.gopCacheBuffer){var d,E=(new e).parse(t.gopCacheBuffer),f=jv(d=E.items).call(d,(function(e){return e.isVideo})),B=null==(o=f[f.length-1])?void 0:o.time;B&&(C=B-t.take/1e3)}return{rates:A.rates,audio:g?sy({},g,this._getExt(A,"audio")):null,video:c?sy({},c,this._getExt(A,"video"),{topThreeFrameSize:QK(A.items),gopCache:xU(C),profile:vK(c.sps),iFrames:u,pFrames:I,bFrames:h,iPercent:xU(u/l*100),pPercent:xU(I/l*100),bPercent:xU(h/l*100)}):null}}},{key:"_addMetadataToFirstKeyFrame",value:function(e){var A,t,n,r=jv(A=e.items).call(A,(function(e){return 9===e.type}))[0];if(r&&(null==(n=r.bodyView)?void 0:n.sps)){var i=jv(t=e.items).call(t,(function(e){return e.isVideo&&e.keyframe}))[0];i&&(i.bodyView.sps=r.bodyView.sps,i.bodyView.vpsArr=r.bodyView.vpsArr,i.bodyView.spsArr=r.bodyView.spsArr,i.bodyView.ppsArr=r.bodyView.ppsArr)}}},{key:"_getExt",value:function(e,A){var t,n,r,i=jv(t=e.items).call(t,(function(e){return e.streamType===A&&e.isSample})),o=jv(n=e.items).call(n,(function(e){var t;return e.streamType===A&&(null==(t=e.bodyView)?void 0:t.packetType)===zU}))[0];if(!i.length)return 0;var a=i[0],s=i[i.length-1],g=0;return"audio"===A&&(g=o&&1024/(null==(r=o.bodyView)?void 0:r.sampleRate)*1e3),"video"===A&&(g=a.duration),{avgBits:pK(i),startDts:i[0].dts,duration:(s.timestamp-a.timestamp)/1e3,refDuration:g,frameLength:i.length}}},{key:"_getNbFrame",value:function(e,A){var t;return jv(t=e.items).call(t,(function(e){return e.isVideo&&e.frameType===A})).length}},{key:"_parseHeader",value:function(e){return{hasAudio:!!(e[4]>>2&1),hasVideo:!!(1&e[4])}}},{key:"_parseTag",value:function(e,A){var t,n=31&e[0],r=(e[7]<<24>>>0)+(e[4]<<16)+(e[5]<<8)+e[6];switch(n){case 18:t=sy({packetType:OU},tK.parse(A));break;case 9:t=this._parseVideo(A,r);break;case 8:t=this._parseAudio(A,r)}return{type:n,timestamp:r,bodyView:t}}},{key:"_parseAudio",value:function(e){if(e.length){var A=(240&e[0])>>>4;if(10===A||7===A||8===A){if(10!==A){var t=(12&e[0])>>2,n=(2&e[0])>>1,r=1&e[0];return Ff({format:A,sampleRate:XU[t],sampleSize:n?2:1,channelCount:r+1},this._parseG711(e))}return this._parseAac(e,A)}console.warn("Unsupported sound format: ".concat(A))}}},{key:"_parseG711",value:function(e,A){return{codecType:7===A?VU:WU,sampleRate:8e3,sample:e.subarray(1),packetType:jU}}},{key:"_parseAac",value:function(e,A){if(0===e[1]){var t=e.subarray(2);return Ff(Ff({},gK.parseAudioSpecificConfig(t)),{},{format:A,timescale:1e3,codecType:qU,packetType:zU,sequenceData:[t],frameType:"A"})}if(1===e[1])return{sample:e.subarray(2),format:A,codecType:qU,packetType:jU,frameType:"A"}}},{key:"_parseVideo",value:function(e,A){if(!(e.length<6)){var t=(240&e[0])>>>4,n=15&e[0];if(7===n||12===n){var r=12===n,i=e[1],o=(e[2]<<16|e[3]<<8|e[4])<<8>>8;if(0===i){var a=e.subarray(5),s=r?dK.parseHEVCDecoderConfigurationRecord(a):CK.parseAVCDecoderConfigurationRecord(a);return this._nalUnitSize=s.nalUnitSize,Ff({codecId:n,codecType:r?$U:ZU,packetType:zU,timescale:1e3,sequenceData:[a]},s)}if(1===i){var g=hK.parseNalu(e.subarray(5),this._nalUnitSize);if(!g||!g.length)return;var c={dts:A,cts:o,units:g=hK.parseNaluType(g,r)};return 1===t&&(c.keyframe=!0),g.forEach((function(e){var A=e.type,t=e.unit,n=e.frameType;switch(A){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!r&&5!==A||r&&5===A)break;c.keyframe=!0,c.frameType="I";break;case 6:case 39:case 40:if(!r&&6!==A||r&&6===A)break;c.seis?c.seis.push(hK.parseSEI(hK.removeEPB(t))):c.seis=[hK.parseSEI(hK.removeEPB(t))];break;case 32:if(!r)break;c.vpsArr?c.vpsArr.push(t):c.vpsArr=[t];break;case 7:case 33:if(!r&&7!==A||r&&7===A)break;c.spsArr?c.spsArr.push(t):c.spsArr=[t];var i=hK.removeEPB(t);c.sps=r?dK.parseSPS(i):CK.parseSPS(i);break;case 8:case 34:if(!r&&8!==A||r&&8===A)break;c.ppsArr?c.ppsArr.push(t):c.ppsArr=[t];break;case 1:case 0:c.frameType=n}})),Ff({codecId:n,codecType:r?$U:ZU,packetType:jU},c)}}else console.warn("Unsupported codecId: ".concat(n))}}}]),e}(),wK="FLV",RK="MPEG-TS",kK="MP4";function SK(e,A){var t;return Jp(t=[e[A],e[A+1],e[A+2],e[A+3]]).call(t,(function(e){return String.fromCharCode(e)})).join("")}var MK=Iy,GK=function(e,A,t){return function(e,A,t){A in e?MK(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==wc(A)?A+"":A,t),t},_K=NE((function e(A){var t=A.startIndictor,n=A.packetType,r=A.pid,i=A.afc;GE(this,e),GK(this,"startIndictor",0),GK(this,"pid",0),GK(this,"afc",0),GK(this,"eleInfo",null),GK(this,"packetType",""),this.startIndictor=t,this.packetType=n,this.pid=r,this.afc=i})),bK=function(){function e(A){var t=A.header,n=A.headerObject,r=A.body,i=A.eleInfo,o=A.bodyView,a=A.headerView;GE(this,e),GK(this,"header",null),GK(this,"headerView",null),GK(this,"body",null),GK(this,"bodyView",null),GK(this,"eleInfo",null),GK(this,"duration",0),this.header=t,this.headerView=a||new _K(n),this.eleInfo=i,this.body=r,this.bodyView=o}return NE(e,[{key:"type",get:function(){var e;return null==(e=this.headerView)?void 0:e.packetType}},{key:"streamType",get:function(){return this.eleInfo?this.eleInfo[this.headerView.pid]:""}},{key:"packetType",get:function(){var e;return null==(e=this.headerView)?void 0:e.packetType}},{key:"frameType",get:function(){var e;return null==(e=this.bodyView)?void 0:e.frameType}},{key:"pts",get:function(){var e;return null==(e=this.bodyView)?void 0:e.pts}},{key:"ptsTime",get:function(){return this.pts?xU(this.pts/9e4):0}},{key:"dtsTime",get:function(){return this.dts?xU(this.dts/9e4):0}},{key:"dts",get:function(){var e;return null==(e=this.bodyView)?void 0:e.dts}},{key:"keyframe",get:function(){return"I"===this.frameType}},{key:"nalTypes",get:function(){var e,A;return null==(A=null==(e=this.bodyView)?void 0:e.units)?void 0:Jp(A).call(A,(function(e){return e.type}))}},{key:"nalSizes",get:function(){var e,A;return null==(A=null==(e=this.bodyView)?void 0:e.units)?void 0:Jp(A).call(A,(function(e){return e.unit.length}))}},{key:"isSample",get:function(){return"PES"===this.packetType}},{key:"timescale",get:function(){return 9e4}},{key:"isHevc",get:function(){var e,A;return"bytevc1"===(null==(A=null==(e=this.eleInfo)?void 0:e.video)?void 0:A.codecType)}},{key:"sampleView",get:function(){var e;if("PES"===this.type)return{dts:this.dts,pts:this.pts,units:null==(e=this.bodyView)?void 0:e.units,data:this._getSampleData()}}},{key:"data",get:function(){return this._getSampleData()}},{key:"size",get:function(){var e,A;return null==(A=null==(e=this.sampleView)?void 0:e.data)?void 0:A.length}},{key:"isVideo",get:function(){return this.isSample&&"video"===this.streamType}},{key:"isAudio",get:function(){return this.isSample&&"audio"===this.streamType}},{key:"_getSampleData",value:function(){var e,A;if("audio"===this.streamType)return this.bodyView.data;var t=(null==(A=this.bodyView)?void 0:jv(e=A.units).call(e,(function(e){return!e.isSei&&!e.isDivision})))||[],n=wF(t).call(t,(function(e,A){return e+(A.unit.byteLength+4)}),0),r=new Uint8Array(n),i=0;return t.forEach((function(e){r.set([0,0,0,1],i),i+=4,r.set(e.unit,i),i+=e.unit.byteLength})),r}}]),e}(),TK=function(){function e(){GE(this,e)}return NE(e,[{key:"parse",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=function(e){for(var A=Math.min(1e3,e.byteLength-564),t=0;t1&&(C+=1+Math.min(c[C],183)),u.pid){case 0:C+=1+c[C],I=c.subarray(C),d="PAT",h={pmtId:s=this._parsePAT(I)};break;default:if(u.pid===s){C+=1+c[C],I=c.subarray(C),h=r=this._parsePMT(I),d="PMT";break}if(!r||!r[u.pid])continue;I=c.subarray(C),d="PES"}if(u.packetType=d,"PES"===d){var E="video"===r[u.pid]?o:a;u.startIndictor&&E.length&&(i.push(new bK(Ff(Ff({},this._concatPesChunk(E)),{},{eleInfo:r}))),E="video"===r[u.pid]?o=[]:a=[]),E.push({header:l,headerObject:u,body:I})}else i.push(new bK({header:l,headerObject:u,body:I,eleInfo:r,bodyView:h}))}o.length&&(i.push(new bK(Ff(Ff({},this._concatPesChunk(o)),{},{eleInfo:r}))),o=[]),a.length&&(i.push(new bK(Ff(Ff({},this._concatPesChunk(a)),{},{eleInfo:r}))),a=[]);var f=EK({items:this._parsePES(i)},A);return f.rates=fK(f),f}},{key:"getSnapshoot",value:function(e){var A,t,n,r=e.items,i=e.rates,o=jv(r).call(r,(function(e){return"video"===e.streamType})),a=jv(r).call(r,(function(e){return"audio"===e.streamType})),s=qf(r).call(r,(function(e){return"PMT"===e.type})),g=o[0],c=a[0],l=o.length,u=this._getNbFrame(o,"I"),I=this._getNbFrame(o,"P"),h=this._getNbFrame(o,"B"),C={rates:i,video:g?sy({},null==g?void 0:g.bodyView,{codecType:g.eleInfo.video.codecType,frameLength:l,topThreeFrameSize:QK(r),avgBits:pK(o),profile:vK(null==(A=null==g?void 0:g.bodyView)?void 0:A.sps),iFrames:u,pFrames:I,bFrames:h,iPercent:xU(u/l*100),pPercent:xU(I/l*100),bPercent:xU(h/l*100),timescale:9e4},this._getDuration(o,"video")):null,audio:c?sy({},null==c?void 0:c.bodyView,{codecType:c.eleInfo.audio.codecType,frameLength:a.length,timescale:9e4,avgBits:pK(a)},this._getDuration(a,"audio")):null};return s&&(null==(t=s.bodyView)?void 0:t.noSupported)&&(C.noSupported=null==(n=s.bodyView)?void 0:n.noSupported),C}},{key:"getRates",value:function(e){return fK(e)}},{key:"_getDuration",value:function(e,A){var t,n=e[0],r=e[e.length-1],i=0;return"audio"===A&&(i=1024/(null==(t=n.bodyView)?void 0:t.sampleRate)*1e3),"video"===A&&(i=n.duration),{duration:(r.pts-n.pts)/9e4,refDuration:i}}},{key:"_getNbKeyFrame",value:function(e){return jv(e).call(e,(function(e){var A;return null==(A=e.bodyView)?void 0:A.keyframe})).length}},{key:"_getNbFrame",value:function(e,A){return jv(e).call(e,(function(e){return e.frameType===A})).length}},{key:"_parseTsHeader",value:function(e){if(71===e[0]){var A={};return A.startIndictor=(64&e[1])>>6,A.pid=((31&e[1])<<8)+e[2],A.afc=(48&e[3])>>4,A}return null}},{key:"_parsePAT",value:function(e){return(31&e[10])<<8|e[11]}},{key:"_parsePMT",value:function(e){var A=0,t=3+((15&e[1])<<8|e[2])-4;e[3],e[4],A=A+11+((15&e[10])<<8|e[11])+1;for(var n,r={video:null,audio:null,noSupported:0};Ae.length-6)){var n,r,i=e[7];return 192&i&&(n=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,64&i?n-(r=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2)>54e5&&(n=r):r=n),r=r||n,{data:e.subarray(9+A),pts:n,dts:r}}}}},{key:"_parseVideoFrame",value:function(e,A,t,n){var r=hK.parseAnnexB(e);if(r.length){var i={units:r=hK.parseNaluType(r,n),pts:A,dts:t};return r.forEach((function(e){var A=e.unit,t=e.type,r=e.frameType;switch(t){case 5:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:if(!n&&5!==t||n&&5===t)break;i.keyframe=!0,i.frameType="I";break;case 6:case 39:case 40:if(!n&&6!==t||n&&6===t)break;i.seis?i.seis.push(hK.parseSEI(hK.removeEPB(A))):i.seis=[hK.parseSEI(hK.removeEPB(A))];break;case 32:if(!n)break;i.vpsArr?i.vpsArr.push(A):i.vpsArr=[A];break;case 7:case 33:if(!n&&7!==t||n&&7===t)break;i.spsArr?i.spsArr.push(A):i.spsArr=[A];var o=hK.removeEPB(A);i.sps=n?dK.parseSPS(o):CK.parseSPS(o);break;case 8:case 34:if(!n&&8!==t||n&&8===t)break;i.ppsArr?i.ppsArr.push(A):i.ppsArr=[A];break;case 9:case 35:break;case 0:case 1:i.frameType=r}})),i}}}]),e}(),FK=jc("Array").entries,NK=rn,LK=AA,UK=ce,KK=FK,xK=Array.prototype,YK={DOMTokenList:!0,NodeList:!0},PK=i((function(e){var A=e.entries;return e===xK||UK(xK,e)&&A===xK.entries||LK(YK,NK(e))?KK:A})),HK=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;GE(this,e),this._offset=t,this._buffer=A,this._length=A.byteLength}return NE(e,[{key:"offset",get:function(){return this._offset},set:function(e){this._offset=e}},{key:"forward",value:function(e){this._offset+=e}},{key:"subarray",value:function(e){return e?this._buffer.subarray(this._offset,this._offset+e):this._buffer.subarray(this._offset,e)}},{key:"slice",value:function(e){for(var A=this._offset,t=this._buffer,n=[],r=0;r>2,dependsOn:3&e[A],isDenpendedOn:(192&e[A+1])>>6,hasRedundancy:(48&e[A+1])>>4,padding:(14&e[A+1])>>1,nonSync:1&e[A+1],degradationPriority:e[A+2]<<8|e[A+3]}}function qK(e,A){var t;return Jp(t=[e[A],e[A+1],e[A+2],e[A+3]]).call(t,(function(e){return String.fromCharCode(e)})).join("")}function VK(e){for(var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=[],n=0;n2&&void 0!==arguments[2]?arguments[2]:[],n=0,r=0,i=0,o=0,a=0,s=[];A=Jp(A).call(A,(function(e){return Ff({},e)})),t=Jp(t).call(t,(function(e){return Ff({},e)}));for(;i>3;return 31===n&&t.data.length>=2&&(n=32+((7&t.data[0])<<3)+((224&t.data[1])>>5)),n}return null},t.DecoderConfigDescriptor=function(e){t.Descriptor.call(this,4,e)},t.DecoderConfigDescriptor.prototype=new t.Descriptor,t.DecoderConfigDescriptor.prototype.parse=function(e){this.oti=e.readU8(),e.forward(1),this.streamType=e.readU8(),e.forward(1),this.bufferSize=e.readU24(),e.forward(3),this.maxBitrate=e.readU32(),e.forward(4),this.avgBitrate=e.readU32(),e.forward(4),this.size-=13,this.parseRemainingDescriptors(e)},t.DecoderSpecificInfo=function(e){t.Descriptor.call(this,5,e)},t.DecoderSpecificInfo.prototype=new t.Descriptor,t.SLConfigDescriptor=function(e){t.Descriptor.call(this,6,e)},t.SLConfigDescriptor.prototype=new t.Descriptor,this};function hx(e){var A,t,n,r=qf(A=e.descs).call(A,(function(e){return 4===e.tag}));r&&(t=qf(n=r.descs).call(n,(function(e){return 5===e.tag})));var i=sy({},r);return delete i.descs,i.config=(null==t?void 0:t.data.length)?nm(null==t?void 0:t.data):[],i}function Cx(e){return Jp(e).call(e,(function(e){return e.toString(16)})).join("")}function dx(e){var A=e.body,t={},n=A[0],r=new HK(A);if(r.forward(4),t.systemId=Cx(Xp(r).call(r,16)),r.forward(16),n>0){var i=r.readU32();t.kids=[];var o=0;for(r.forward(4);o>1),sampleFlagsPresent:!!((4&o)>>2),sampleCompositionTimeOffsetPresent:!!((8&o)>>3)}),g=s.dataOffsetPresent,c=s.firstSampleFlagsPresent,l=s.sampleDurationPresent,u=s.sampleSizePresent,I=s.sampleFlagsPresent,h=s.sampleCompositionTimeOffsetPresent;t.trFlags=s,n.forward(3),t.sampleCount=n.readU32(),n.forward(4),g&&(t.dataOffset=n.readU32(),n.forward(4)),c&&(t.firstSampleFlags=XK(A,n.offset),n.forward(4));for(var C=0;C>16,t.forward(4),n.height=t.readU32()>>16,n}(e);break;case"mehd":e.bodyView=function(e){var A,t=e.body,n=new HK(t);if(n.forward(4),1===t[0]){var r=n.readU32();n.forward(4),A=r*(1<<30)*2+n.readU32()}else A=n.readU32();return{fragDuration:A}}(e);break;case"mdhd":e.bodyView=function(e){var A=e.body,t={},n=new HK(A),r=A[0];return n.forward(4),1===r?(n.forward(16),t.timescale=n.readU32(),n.forward(4),t.duration=n.readU32()*tx,n.forward(4),t.duration+=n.readU32()):(n.forward(8),t.timescale=n.readU32(),n.forward(4),t.duration=n.readU32()),t}(e);break;case"hdlr":e.bodyView=function(e){return{handlerType:SK(e.body,8)}}(e);break;case"trex":e.bodyView=function(e){var A=e.body,t={},n=new HK(A);return n.forward(4),t.trackId=n.readU32(),n.forward(4),t.defaultSdescriptionIndex=n.readU32(),n.forward(4),t.defaultSampleDuration=n.readU32(),n.forward(4),t.defaultSampleSize=n.readU32(),n.forward(4),t.defaultSampleFlags=XK(A,n.offset),t}(e);break;case"trun":e.bodyView=Bx(e),A=e.bodyView.samples.length;break;case"tfdt":e.bodyView=function(e){var A=e.body,t=new HK(A),n=0;return t.forward(4),1===A[0]?(n=t.readU32()*Ex,t.forward(4),n+=t.readU32()):n=t.readU32(),{baseMediaDecodeTime:n}}(e);break;case"avc1":case"hvc1":case"hev1":e.bodyView=function(e){var A=e.body,t=e.start,n=new HK(A);return n.forward(78),VK(n.subarray(),t+78+8)}(e),px(e.bodyView);break;case"mp4a":e.bodyView=function(e){var A=e.body,t=Xp(A).call(A,28),n=(new Ix).parseOneDescriptor(new HK(Xp(t).call(t,12),0)),r=(null==n?void 0:n.getAudioConfig)&&n.getAudioConfig();return{channelCount:A[17],samplesize:A[19],sampleRate:A[24]<<8|A[25],objectType:r,codec:"mp4a.40."+r,ests:hx(n)}}(e),e.bodyView&&(e.bodyView.codecType="aac");break;case"avcC":e.bodyView=function(e){var A=e.body,t={spsArr:[],ppsArr:[]},n=new HK(A);t.configVersion=A[0],t.avcProfile=A[1],t.profileComptibility=A[2],t.avcLevel=A[3],n.forward(4),n.forward(1);var r=31&Xp(n).call(n,1);n.forward(1);for(var i=0;i>6,i=(48&c)>>4,o=(12&c)>>2,a=3&c,s.push({isLeading:r,dependsOn:i,isDenpendedOn:o,hasRedundancy:a}),n.forward(1)}return{entries:s}}(e,A);break;case"mfhd":e.bodyView=function(e){var A=e.body,t=new HK(A);return t.forward(4),{seqNumber:t.readU32()}}(e);break;case"tfhd":e.bodyView=function(e){var A=e.body,t=new HK(A);t.forward(1);var n=Xp(t).call(t,3),r=n[0]<<16|n[1]<<8|n[2],i={flags:n},o={baseDataOffsetPresent:!!(1&r),sampleDescriptionIndexPresent:!!(2&r),defaultSampleDurationPresent:!!(8&r),defaultSampleSizePresent:!!(16&r),defaultSampleFlagsPresent:!!(32&r),durationIsEmpty:!!(65536&r),defaultBaseIsMoof:!!(131072&r)};if(i.tfFlags=o,t.forward(3),i.trackId=t.readU32(),o.baseDataOffsetPresent){t.forward(4);var a=t.readU32();t.forward(4);var s=t.readU32();i.baseDataOffset=a<<32|s}else i.baseDataOffset=0,console.warn("base data offset not detected in tfhd");return o.sampleDescriptionIndexPresent&&(t.forward(4),i.sampleDescriptionIndex=t.readU32()),o.defaultSampleDurationPresent&&(t.forward(4),i.defaultSampleDuration=t.readU32()),o.defaultSampleSizePresent&&(t.forward(4),i.defaultSampleSize=t.readU32()),o.defaultSampleFlagsPresent&&(t.forward(4),i.defaultSampleFlags=t.readU32()),i}(e);break;case"pssh":e.bodyView=dx(e)}var l,u,I}))}var vx=function(){function e(){GE(this,e)}return NE(e,[{key:"parse",value:function(e){return Qx(e)}},{key:"parseV2",value:function(e,A){var t,n,r,i,o,a,s=jv(e).call(e,(function(e){return"mdat"===e.type})),g=[],c=null==(n=null==(t=s[0])?void 0:t.bodyView)?void 0:jv(n).call(n,(function(e){return"video"===e.type}))[0],l=null==(i=null==(r=s[0])?void 0:r.bodyView)?void 0:jv(i).call(i,(function(e){return"audio"===e.type}))[0],u=Math.min((null==(o=null==l?void 0:l.samples[0])?void 0:o.dtsTime)||0,(null==(a=null==c?void 0:c.samples[0])?void 0:a.dtsTime)||0);s.forEach((function(e){e.bodyView.forEach((function(e){e.samples.forEach((function(e){e.time=xU(e.dtsTime-u),g.push(e)}))}))}));var I={items:qD(g).call(g,(function(e,A){return e.time>A.time?1:-1}))};return this._addMetadataToFirstKeyFrame(c),I.rates=fK(I),I}},{key:"getSnapshoot",value:function(e){return function(e){var A,t,n,r,i,o,a=jv(e).call(e,(function(e){return"mdat"===e.type}));if(!a.length){var s=ZK(e,"vide"),g=ZK(e,"soun"),c=null==(t=WK(null==s?void 0:s.bodyView,"mdhd"))?void 0:t.bodyView,l=(null==(n=WK(null==s?void 0:s.bodyView,"avcC"))?void 0:n.bodyView)||(null==(r=WK(null==s?void 0:s.bodyView,"hvcC"))?void 0:r.bodyView),u=null==(i=WK(null==g?void 0:g.bodyView,"mdhd"))?void 0:i.bodyView,I=null==(o=WK(null==g?void 0:g.bodyView,"mp4a"))?void 0:o.bodyView;try{return{video:Ff(Ff({},c),{},{duration:(null==c?void 0:c.duration)/c.timescale},l),audio:Ff(Ff(Ff({},u),{},{duration:(null==u?void 0:u.duration)/u.timescale},I),I.ests)}}catch(P7){}return{}}var h=wF(A=Jp(a).call(a,(function(e){return e.bodyView}))).call(A,(function(e,A){return xf(e).call(e,A)}),[]),C=wF(h).call(h,(function(e,A){var t,n=A.type,r=A.frameLength,i=A.iFrames,o=A.pFrames,a=A.bFrames,s=A.duration;return e[n]?(e[n].frameLength+=r,e[n].iFrames+=i,e[n].pFrames+=o,e[n].bFrames+=a,e[n].duration+=s,e):(e[n]=sy({},A),e[n].refDuration||(e[n].refDuration=null==(t=A.samples[0])?void 0:t.duration),e)}),{}),d=C.video;if(d){var E=d.frameLength,f=d.iFrames,B=d.pFrames,Q=d.bFrames;d.iPercent=xU(f/E*100),d.pPercent=xU(B/E*100),d.bPercent=xU(Q/E*100)}return C}(e)}},{key:"_addMetadataToFirstKeyFrame",value:function(e){var A;if(e){var t=jv(A=e.samples).call(A,(function(e){return e.keyframe}))[0];t&&(t.sps=e.sps,t.vpsArr=e.vpsArr,t.spsArr=e.spsArr,t.ppsArr=e.ppsArr)}}}]),e}(),yx=.2,mx=40,Dx=.3,wx=.5,Rx=.1,kx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){var A=null==e?void 0:qf(e).call(e,(function(e){return e.isSample&&"video"===e.streamType})),t=null==e?void 0:qf(e).call(e,(function(e){return e.isSample&&"audio"===e.streamType}));if(A&&t){var n,r,i,o=A.pts-t.pts,a=xU(o/A.timescale);if(o/A.timescale>=yx)return[{description:xf(n=xf(r=xf(i="銆愰煶瑙嗛棣栧抚gap宸窛杩囧ぇ銆戣棰戦甯ts: ".concat(A.pts,", 闊抽棣栧抚pts: ")).call(i,t.pts,", delta: ")).call(r,o,"(")).call(n,a,"s)"),tips:"".concat(a>10?"鍙兘閫犳垚鏃犳硶璧锋挱闂":"")}]}}}]),e}(),Sx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){var A=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"video"===e.streamType})),t=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"audio"===e.streamType})),n=!!e[0]&&e[0]instanceof eK;return[this._checkBreak(A,"video"),this._checkBreak(t,"audio"),n&&this._checkConsecutiveFrameBreak(null==e?void 0:jv(e).call(e,(function(e){return e.isSample})))]}},{key:"_checkBreak",value:function(e,A){var t=e.length;if(t)for(var n=0;nwx)return{description:xf(r=xf(i=xf(o=xf(a="銆�".concat(A,"鏃堕棿鎴冲彂鐢熻烦鍙樸€戯紝褰撳墠甯ts: ")).call(a,e[n].dts,", time:")).call(o,e[n].time,", 鍚庝竴甯ts: ")).call(i,e[n+1].dts,", time:")).call(r,e[n+1].time)}}}},{key:"_checkConsecutiveFrameBreak",value:function(e){var A=e.length;if(A)for(var t=0;tRx){var n,r,i,o,a,s=e[t],g=e[t+1];return{description:xf(n=xf(r=xf(i=xf(o=xf(a="銆愬墠鍚庡抚dts宸窛杩囧ぇ銆戯紝褰撳墠甯�(".concat(s.streamType,")dts: ")).call(a,s.dts,", time:")).call(o,s.time,", 鍚庝竴甯�(")).call(i,g.streamType,")dts: ")).call(r,g.dts,", time:")).call(n,g.time),tips:"鍙兘閫犳垚鎾斁鐢婚潰鍗¢】鎴栬€呭0闊冲崱椤�"}}}}]),e}(),Mx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){return[this._checkKeyFrame(e),this._checkAudioFrameDataFull(e)]}},{key:"_checkKeyFrame",value:function(e){var A=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"video"===e.streamType}))[0];if(A&&"I"!==A.frameType)return{description:"銆愯棰戦甯ч潪鍏抽敭甯с€�",tips:"鍙兘鎾斁鑺卞睆鎴栬€呮姤瑙g爜閿欒"}}},{key:"_checkAudioFrameDataFull",value:function(e){var A=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"audio"===e.streamType})),t=A.length;if(t)for(var n=0;n1&&n[0].join(",")!==n[1].join(","))return{description:"銆愬叧閿抚鍓嶅寘鍚涓猻ps淇℃伅銆�"}}},{key:"_metadataOnlyInSequeceHeader",value:function(e,A){var t;if("FLV"===A){var n=null==e?void 0:qf(e).call(e,(function(e){return e.keyframe}));if(n){var r=n.isHevc;return-1===zp(t=n.nalTypes).call(t,r?33:7)?{description:"銆恠ps銆乸ps淇℃伅鍙瓨鍦ㄤ簬Sequence Header涓€�"}:void 0}}}}]),e}(),_x=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){var A=null==e?void 0:qf(e).call(e,(function(e){return e.isSample&&"video"===e.streamType}));if(A)return A.isHevc?[{id:1,description:"銆怘265缂栫爜鏍煎紡銆�",tips:"瀵逛簬涓嶆敮鎸丠265瑙g爜鐨勮澶囨棤娉曟挱鏀�"}]:void 0}}]),e}(),bx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){if(null==e?void 0:qf(e).call(e,(function(e){return e.isSample&&"B"===e.frameType})))return[{description:"銆愬瓨鍦˙甯с€�"}]}}]),e}(),Tx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){var A=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"video"===e.streamType})),t=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"audio"===e.streamType}));if(A.length&&t.length){var n,r,i=A[A.length-1].ptsTime-A[0].ptsTime,o=t[t.length-1].ptsTime-t[0].ptsTime;if(Math.abs(i-o)>=Dx)return[{description:xf(n=xf(r="銆愰煶瑙嗛鏃堕暱瀛樺湪宸窛銆�, video=".concat(i,"s, audio=")).call(r,o,"s, delta=")).call(n,xU(i-o),"s"),tips:"鍙兘閫犳垚鎾斁鐢婚潰鍗¢】鎴栬€呭0闊冲崱椤�"}]}}}]),e}(),Fx=function(){function e(){GE(this,e)}return NE(e,[{key:"detect",value:function(e){var A=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"video"===e.streamType})),t=null==e?void 0:jv(e).call(e,(function(e){return e.isSample&&"audio"===e.streamType}));if(A.length||t.length)return A.length&&t.length?void 0:[{description:"銆愭祦寮€濮嬪彧鍖呭惈".concat(A.length?"闊抽":"瑙嗛","銆�"),tips:"鍙兘鎾斁娌℃湁澹伴煶鎴栬€呮病鏈夌敾闈�"}]}}]),e}();function Nx(e,A){var t,n,r;return jv(t=wF(n=Jp(r=[new _x,new kx,new Sx,new Mx,new Gx,new Tx,new bx,new Fx]).call(r,(function(t){return t.detect(e,A)}))).call(n,(function(e,A){return xf(e).call(e,A)}),[])).call(t,Boolean)}var Lx=Iy,Ux=function(e,A,t){return function(e,A,t){A in e?Lx(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==wc(A)?A+"":A,t),t},Kx=function(){function e(A){var t=this;GE(this,e),Ux(this,"_opts",null),Ux(this,"_controller",null),Ux(this,"_reader",null),Ux(this,"_loading",!1),Ux(this,"_chunks",[]),Ux(this,"_readStream",(function(e,A){var n=0;t._reader=e.getReader();var r=t._chunks;return function e(){var i;return null==(i=t._reader)?void 0:i.read().then((function(t){var i=t.value,o=t.done;return r.push(i),A(n,i),o?Op.resolve(KU(jv(r).call(r,Boolean))):(n+=i.byteLength,e())}))}()})),this._opts=A}return NE(e,[{key:"request",value:function(){var e=this,A=this._opts,t=A.url,n=A.onProgress,r=A.contentType,i=void 0===r?"ArrayBuffer":r,o=A.loadTimeout,a=void 0===o?5e3:o,s=A.headers;return this._controller=new AbortController,Op.race([fetch(t,{signal:this._controller.signal,headers:s}),new Op((function(A,t){setTimeout((function(){var A;e._loading||(t({code:0,message:"timeout"}),null==(A=e._controller)||A.abort())}),a)}))]).then((function(A){return A.ok&&A.status>=200&&A.status<300?(e._loading=!0,A):Op.reject({code:A.status,message:A.statusText})})).then((function(A){switch(i){case"TEXT":return A.text();case"JSON":return A.json();case"ArrayBuffer":return n?e._readStream(A.clone().body,n):A.arrayBuffer()}})).catch((function(A){if(e._loading=!1,"AbortError"!==A.name)return Op.reject({code:A.code||0,message:A.message})}))}},{key:"cancel",value:function(){var e,A;try{null==(e=this._reader)||e.cancel(),null==(A=this._controller)||A.abort(),this._reader=null,this._controller=null}catch(P7){}}}]),e}(),xx=function(){function e(){GE(this,e)}var A;return NE(e,[{key:"parse",value:(A=aE(iE().mark((function e(A,t){var n,r,i,o,a,s,g,c,l,u,I,h=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g=[],this._loader=new Kx(Ff(Ff({url:A},t),{},{onProgress:function(e,A){g.push(A),e>t.probeSize&&h._loader.cancel()}})),e.next=4,this._loader.request();case 4:return c=new DK,l=c.parse(KU(g)),u=c.getSnapshoot(l),I=null==(n=u.video)?void 0:n.sps,e.abrupt("return",{codec:null==(r=u.video)?void 0:r.codecType,codecStr:null==I?void 0:I.codec,width:null==I?void 0:I.width,height:null==I?void 0:I.height,vDration:null==(i=null==u?void 0:u.video)?void 0:i.duration,aDuration:null==(o=null==u?void 0:u.audio)?void 0:o.duration,sampleRate:null==(a=null==u?void 0:u.audio)?void 0:a.sampleRate,channelCount:null==(s=null==u?void 0:u.audio)?void 0:s.channelCount,views:l,snap:u});case 9:case"end":return e.stop()}}),e,this)}))),function(e,t){return A.apply(this,arguments)})}]),e}(),Yx={exports:{}};Yx.exports=function(e){var A={};function t(n){if(A[n])return A[n].exports;var r=A[n]={i:n,l:!1,exports:{}};return e[n].call(r.exports,r,r.exports,t),r.l=!0,r.exports}return t.m=e,t.c=A,t.d=function(e,A,n){t.o(e,A)||Iy(e,A,{enumerable:!0,get:n})},t.r=function(e){void 0!==hy&&eT&&Iy(e,eT,{value:"Module"}),Iy(e,"__esModule",{value:!0})},t.t=function(e,A){if(1&A&&(e=t(e)),8&A)return e;if(4&A&&"object"==wc(e)&&e&&e.__esModule)return e;var n=Object.create(null);if(t.r(n),Iy(n,"default",{enumerable:!0,value:e}),2&A&&"string"!=typeof e)for(var r in e)t.d(n,r,function(A){return e[A]}.bind(null,r));return n},t.n=function(e){var A=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(A,"a",A),A},t.o=function(e,A){return Object.prototype.hasOwnProperty.call(e,A)},t.p="",t(t.s=0)}([function(e,A,t){function n(e,A){var t=jp(e);if(gy){var n=gy(e);A&&(n=jv(n).call(n,(function(A){return cy(e,A).enumerable}))),t.push.apply(t,n)}return t}function r(e){return(r="function"==typeof hy&&"symbol"==wc(Cy)?function(e){return wc(e)}:function(e){return e&&"function"==typeof hy&&e.constructor===hy&&e!==hy.prototype?"symbol":wc(e)})(e)}function i(e,A,t){return A in e?Iy(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}t.r(A),t.d(A,"m3u8Parser",(function(){return l})),t.d(A,"mpdParser",(function(){return d}));var o=/EXT(?:-X-)?([^:]+):?(.*)$/,a=/([^,="]+)((="[^"]+")|(=[^,]+))*/g;function s(e){var A;return wF(A=e.split("-")).call(A,(function(e,A){return e+(e?A.charAt(0)+Xp(A).call(A,1).toLowerCase():A.toLowerCase())}),"")}function g(e){if(!/^#EXT/.test(e)&&/^\s*#/.test(e))return null;var A,t,g=o.exec(e);return g?(A=s(g[1]),t=function(e,A){if(!e)return null;var t=Jp(A=e.match(a)).call(A,(function(e){return function(e){var A=lD(e).call(e).replace("=","|").split("|");if(2==A.length)return i({},s(A[0]),A[1].replace(/("|')/g,""));var t=tD(A[0]);return dv(t)?A[0]:t}(e)}));return 1===t.length?t[0]:0===jv(t).call(t,(function(e){return"object"===r(e)})).length?t:wF(t).call(t,(function(e,A){return function(e){for(var A=1;A=0&&(d.keyIndex=l),s++,o=d.end,A.segments.push(d);break;case"start":o=C;break;case"discontinuity":i++;break;case"mediaSequence":a=C;break;case"streamInf":g++,C.levelId=g,A.levels.push(C);break;case"media":A.medias.push(C);break;case"endlist":A.live=!1;break;case"key":l++,A.key?A.key.push(C):A.key=[C];break;case"url":var E=n?A.levels:A.segments;if(!E.length)throw new Error("invalid m3u8");n?E[g-1].url=c(C,A.m3u8Url):E[s-1].url=c(C,A.m3u8Url);break;default:C&&(A[h]=C)}}t&&(A=t(I,A))}return n||(A.startSN=a,A.endSN=a+s-1,A.duration=o),A}(a,o,t)}catch(s){return{error:1,msg:s.message}}return o},u=/\s*(<\/?[^>]+>)/,I=/\s*(?:<\/?([^\s>]+))?\s*([^>]+)*(?:\/?>)?/,h=/\s*([^=]+)="([^"]+)"/g;function C(e,A){for(var t,n,r,i=[],o=e.length,a=0;a1&&void 0!==i[1]?i[1]:{}),{},{contentType:"TEXT"})),e.next=4,t.request();case 4:return n=e.sent,r=Px.m3u8Parser(n,A,(function(e,A){var t;if(!e.url||!/^\//.test(e.url))return A;var n=e.url,r=A.segments[A.segments.length-1];return r.url=Xp(t=r.url.split("/")).call(t,0,3).join("/")+n,A})),e.abrupt("return",r);case 7:case"end":return e.stop()}}),e)}))),Jx.apply(this,arguments)}var Ox=function(){function e(){GE(this,e)}var A;return NE(e,[{key:"parse",value:(A=aE(iE().mark((function e(A,t){var n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Hx(A,t);case 2:if(!(g=e.sent).master){e.next=7;break}return e.next=6,Hx(g.levels[0].url);case 6:g=e.sent;case 7:if(null==g?void 0:g.segments.length){e.next=9;break}throw new Error("invalid m3u8");case 9:c=[],l=t.nbSegment,u=0,I=iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=new Kx(Ff(Ff({url:g.segments[u].url},t),{},{onProgress:function(e,n){c.push(n),e>t.probeSize&&A.cancel()}})),e.next=3,A.request();case 3:l--,u++;case 5:case"end":return e.stop()}}),e)}));case 13:if(!l){e.next=17;break}return e.delegateYield(I(),"t0",15);case 15:e.next=13;break;case 17:return h=new Uint8Array(KU(jv(c).call(c,Boolean))),C=new TK,d=C.parse(h),E=C.getSnapshoot(d),f=null==(n=E.video)?void 0:n.sps,e.abrupt("return",{codec:null==(r=E.video)?void 0:r.codecType,codecStr:null==f?void 0:f.codec,width:null==f?void 0:f.width,height:null==f?void 0:f.height,vDration:null==(i=null==E?void 0:E.video)?void 0:i.duration,aDuration:null==(o=null==E?void 0:E.audio)?void 0:o.duration,sampleRate:null==(a=null==E?void 0:E.audio)?void 0:a.sampleRate,channelCount:null==(s=null==E?void 0:E.audio)?void 0:s.channelCount,views:d,snap:E});case 23:case"end":return e.stop()}}),e)}))),function(e,t){return A.apply(this,arguments)})}]),e}(),zx=function(){function e(){GE(this,e)}var A;return NE(e,[{key:"parse",value:(A=aE(iE().mark((function e(A,t){var n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=new Kx(Ff(Ff({url:A},t),{},{contentType:"ArrayBuffer",headers:{Range:"bytes=0-1499"}})),l=[],e.next=4,c.request();case 4:return u=e.sent,I=new Uint8Array(u),h=(new vx).parse(I),C=qf(h).call(h,(function(e){return"mdat"===e.type})),(d=qf(h).call(h,(function(e){return"moov"===e.type})))?(l.push(d.start),l.push(d.start+d.size)):C&&l.push(C.start+C.size),c=new Kx(Ff(Ff({url:A},t),{},{contentType:"ArrayBuffer",headers:{Range:xf(n="bytes=".concat(l[0],"-")).call(n,l[1]||"")}})),e.next=13,c.request();case 13:return E=e.sent,f=new vx,B=f.parse(E),Q=f.getSnapshoot(B),p=null==(r=Q.video)?void 0:r.sps,e.abrupt("return",{codec:null==(i=Q.video)?void 0:i.codecType,codecStr:null==p?void 0:p.codec,width:null==p?void 0:p.width,height:null==p?void 0:p.height,vDration:null==(o=null==Q?void 0:Q.video)?void 0:o.duration,aDuration:null==(a=null==Q?void 0:Q.audio)?void 0:a.duration,sampleRate:null==(s=null==Q?void 0:Q.audio)?void 0:s.sampleRate,channelCount:null==(g=null==Q?void 0:Q.audio)?void 0:g.channelCount,views:f.parseV2(B,!0),snap:Q});case 19:case"end":return e.stop()}}),e)}))),function(e,t){return A.apply(this,arguments)})}]),e}(),jx=function(){function e(){GE(this,e)}var A;return NE(e,[{key:"parseUrl",value:(A=aE(iE().mark((function e(A){var t,n,r,i,o=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=sy({timeout:5e3,probeSize:8e4,nbSegment:1},n=o.length>1&&void 0!==o[1]?o[1]:{}),!/flv/.test(A)){e.next=9;break}return e.next=5,(new xx).parse(A,n);case 5:r=e.sent,i=wK,e.next=20;break;case 9:if(!/m3u8?/.test(A)){e.next=16;break}return e.next=12,(new Ox).parse(A,n);case 12:r=e.sent,i=RK,e.next=20;break;case 16:return e.next=18,(new zx).parse(A,n);case 18:r=e.sent,i=kK;case 20:return r.exceps=jv(t=Nx(r.views.items,i)).call(t,(function(e){return 1!==e.id})),e.abrupt("return",r);case 22:case"end":return e.stop()}}),e)}))),function(e){return A.apply(this,arguments)})}]),e}(),Xx=function(e){var A,t;return{retryCount:3,disconnectRetryCount:null!==(A=null==e||null===(t=e.flv)||void 0===t?void 0:t.retryCount)&&void 0!==A?A:3}},qx=function(e){var A;return{options:{flv:Ff(Ff({},Xx(e)),null!==(A=null==e?void 0:e.flv)&&void 0!==A?A:{})},module:VF.PluginFlv}},Vx=function(e){var A;return{options:{flv:Ff(Ff({preferMMS:!0},Xx(e)),null!==(A=null==e?void 0:e.flv)&&void 0!==A?A:{})},module:VF.PluginFlv}},Wx=function(e,A){var t;return{options:{hls:Ff({retryCount:3,pollRetryCount:3,allowedStreamTrackChange:!1,minSegmentsStartPlay:A?1:3},null!==(t=null==e?void 0:e.hls)&&void 0!==t?t:{})},module:A?VF.PluginHlsJs:VF.PluginHls}},Zx=function(){return{options:{mediaType:"xg-video",innerDegrade:1,codecType:A.H264},module:VF.PluginXgvideo,afterLoad:function(e){e.isSupported()&&e.setDecodeCapacity({preloadDecoder:A.H264,wasmFallbackToAsm:!1,reuseWasmDecoder:!1,disabledWhenErrorOccur:!1})}}},$x=function(){return{options:{mediaType:"xg-video",innerDegrade:1,codecType:A.H265},module:VF.PluginXgvideo,afterLoad:function(e){e.isSupported()&&e.setDecodeCapacity({preloadDecoder:A.H265,wasmFallbackToAsm:!1,reuseWasmDecoder:!1})}}};function eY(e){return AY.apply(this,arguments)}function AY(){return(AY=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!A.codec){e.next=2;break}return e.abrupt("return",A.codec);case 2:if(A.degradation!==t.SoftFirst||!A.url){e.next=6;break}return e.next=5,tY(A.url);case 5:return e.abrupt("return",e.sent);case 6:return e.abrupt("return","unknown");case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function tY(e){return nY.apply(this,arguments)}function nY(){return(nY=aE(iE().mark((function e(t){var n,r;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,(new jx).parseUrl(t);case 3:if(n=e.sent,"bytevc1"!==(r=n.codec)){e.next=9;break}return e.abrupt("return",A.H265);case 9:if("avc"!==r){e.next=11;break}return e.abrupt("return",A.H264);case 11:return e.abrupt("return","unknown");case 14:return e.prev=14,e.t0=e.catch(0),console.error("detect codec error: ",e.t0),e.abrupt("return","unknown");case 18:case"end":return e.stop()}}),e,null,[[0,14]])})))).apply(this,arguments)}function rY(e,A){return iY.apply(this,arguments)}function iY(){return(iY=aE(iE().mark((function e(r,i){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r.decodeType!==n.Software){e.next=2;break}return e.abrupt("return",!0);case 2:if("unknown"!==i){e.next=4;break}return e.abrupt("return",!1);case 4:return e.next=6,eY(r);case 6:if(e.sent!==A.H265){e.next=12;break}if(!cw.isHevcSupported()){e.next=10;break}return e.abrupt("return",!1);case 10:if(r.degradation!==t.SoftFirst){e.next=12;break}return e.abrupt("return",!0);case 12:return e.abrupt("return",!1);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function oY(e){return wF(e).call(e,(function(e,A){return sy(e,null==A?void 0:A.options)}),{})}var aY=a;Gt({global:!0,forced:aY.globalThis!==aY},{globalThis:aY});var sY=i(a),gY=h,cY=Te,lY=it;Gt({target:"Reflect",stat:!0,forced:!s((function(){Reflect.apply((function(){}))}))},{apply:function(e,A,t){return gY(cY(e),A,lY(t))}});var uY=i(re.Reflect.apply);Gt({target:"Math",stat:!0},{trunc:Nt});var IY=i(re.Math.trunc),hY=Gt,CY=s,dY=jr.f;hY({target:"Object",stat:!0,forced:CY((function(){return!Object.getOwnPropertyNames(1)}))},{getOwnPropertyNames:dY});var EY=re.Object,fY=i((function(e){return EY.getOwnPropertyNames(e)})),BY=i(re.Symbol.for),QY=i(re.Symbol.keyFor),pY=Gt,vY=rB,yY=s,mY=ne,DY=QB.onFreeze,wY=Object.freeze;pY({target:"Object",stat:!0,forced:yY((function(){wY(1)})),sham:!vY},{freeze:function(e){return wY&&mY(e)?wY(DY(e)):e}});var RY=i(re.Object.freeze),kY=Math.log,SY=Math.LOG10E;Gt({target:"Math",stat:!0},{log10:Math.log10||function(e){return kY(e)*SY}});var MY=i(re.Math.log10),GY=nB;Gt({target:"Object",stat:!0,forced:Object.isExtensible!==GY},{isExtensible:GY});var _Y=i(re.Object.isExtensible),bY=Gt,TY=ne,FY=QB.onFreeze,NY=rB,LY=s,UY=Object.preventExtensions;bY({target:"Object",stat:!0,forced:LY((function(){UY(1)})),sham:!NY},{preventExtensions:function(e){return UY&&TY(e)?UY(FY(e)):e}});var KY=i(re.Object.preventExtensions),xY=jc("Array").values,YY=rn,PY=AA,HY=ce,JY=xY,OY=Array.prototype,zY={DOMTokenList:!0,NodeList:!0},jY=i((function(e){var A=e.values;return e===OY||HY(OY,e)&&A===OY.values||PY(zY,YY(e))?JY:A})),XY=i(re.URLSearchParams),qY=/ANGLE\s+\((?:[^,]+,\s+)?([^,/]+)?(?:[^,]*)(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,VY=/ANGLE\s+\((?:[^,]+,\s+)?([^,]+)?(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,WY=/ANGLE\s+\((?:[^,]+,\s+)?(?:[^:]+:\s+)?([^,]+)?(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)?/,ZY="OpenGL Engine",$Y="Unknow",eP=4318,AP=32902,tP=4098,nP=function(e){return e.CpuDeriver="CpuDeriver",e.Intel="Intel",e.Nvidia="NVIDIA",e.Amd="AMD",e.Apple="Apple",e.Adreno="Adreno",e[e.Unknow=$Y]="Unknow",e}(nP||{});function rP(e){return"NVIDIA"===e?eP:"AMD"===e?tP:"Intel"===e?AP:0}function iP(e){var A,t,n,r,i=function(e){var A=/(SwiftShader|Intel|NVIDIA|AMD|Radeon|Apple|Adreno)/.exec(e);return A?"Radeon"===A[0]?"AMD":"SwiftShader"===A[0]?"CpuDeriver":A[0]:nP.Unknow}(e);return i===nP.Unknow||"CpuDeriver"===i?{vendor:i,vendorId:0,model:e,backupModel:e,api:$Y}:/^ANGLE/.test(e)?function(e,A){var t,n,r,i,o,a,s=$Y,g=$Y,c=$Y;return"Intel"!==e&&"NVIDIA"!==e||(n=qY.exec(A)),"AMD"!==e&&"Adreno"!==e||(n=VY.exec(A)),"Apple"===e&&(n=WY.exec(A)),(null==n?void 0:n[1])&&(s=lD(r=n[1].replace(/(AMD|NVIDIA)/,"")).call(r)),(null==n?void 0:n[2])&&(c=lD(i=n[2]).call(i)),s=lD(t=s.split("(0x00")[0]).call(t),g="Intel"===e?s=lD(o=s.split(ZY)[0]).call(o):lD(a=s.split(ZY)[0]).call(a),{vendor:e,vendorId:rP(e),model:s,backupModel:g,api:c}}(i,e):"Intel"===i?{vendor:i,vendorId:rP(i),model:lD(n=e.split(ZY)[0]).call(n),backupModel:lD(r=e.split(ZY)[0]).call(r),api:$Y}:{vendor:i,vendorId:rP(i),model:lD(A=e.replace(/(AMD|NVIDIA)/,"")).call(A),backupModel:lD(t=e.split(ZY)[0].replace(/(AMD|NVIDIA)/,"")).call(t),api:$Y}}var oP=Gt,aP=Math.log,sP=Math.LN2;oP({target:"Math",stat:!0},{log2:function(e){return aP(e)/sP}});var gP=i(re.Math.log2),cP="g_ven";var lP="Arc(TM) A770M Graphics|995\nArc(TM) A770 Graphics|983\nArc(TM) A770 Graphics|969\nArc(TM) A580 Graphics|944\nArc(TM) A730M Graphics|822\nArc(TM) A750 Graphics|768\nArc(TM) A750 Graphics|768\nArc(TM) A550M Graphics|660\nArc(TM) A550M Graphics|634\nXe Graphics ReleaseInternal|561\nArc(TM) A770M Graphics|498\nArc(TM) A380 Graphics|473\nArc(TM) A380 Graphics|468\nArc(TM) A370M Graphics|342\nArc(TM) A370M Graphics|341\nXe Graphics|319\nHD Graphics 630 GT2|309\nArc(TM) A350M Graphics|284\nIris(R) Xe MAX Graphics|214\nIris(R) Xe Graphics RI|205\nIris(R) Xe Graphics ReleaseInternal|181\nIris(R) Xe Graphics|180\nGen12 Desktop Graphics Controller|179\nIris(R) Xe Graphics|178\nIris(R) Xe MAX Graphics|168\nCorporation Iris Xe Graphics|167\nCorporation TigerLake-LP GT2 [Iris Xe Graphics]|162\nXe Graphics|158\nArc(TM) A350M Graphics|156\nCorporation TigerLake GT2 [Iris Xe Graphics]|149\nUHD Graphics 770|138\nUHD Graphics ReleaseInternal|137\nIris(R) Pro Graphics P580|137\nIris(R) Plus Graphics|132\nIris Plus Graphics|127\nIris(R) Pro Graphics 580|126\nUHD Graphics 770|125\nUHD Graphics 750|125\nRadeong 0.4 on AMD TONGA (DRM 3.1.0, LLVM 3.9.0)|123\nCorporation Iris Plus Graphics G7|123\nIris(R) Plus Graphics|122\nIris(R) Plus Graphics 940|121\nIris(R) Plus Graphics 650|121\nIris(R) Plus Graphics 655|121\nIris(R) Plus Graphics 655|121\nHD Graphics P4600|120\nIris(TM) Pro Graphics 6200|120\nIris(R) Plus Graphics|118\nIris(R) Plus Graphics 650|116\nIris(R) Plus Graphics 655|115\nIris(R) Pro Graphics 580|114\nCorporation Iris Pro Graphics 580|114\nIris(R) Plus Graphics 645|113\nIris(TM) Pro Graphics 6200|113\nIris(TM) Pro Graphics P580|113\nCorporation Iris Plus Graphics 655|112\nArc(TM) Graphics RI|111\nIris(R) Plus Graphics 655|111\nIris(R) Plus Graphics 655|110\nIris(R) Plus Graphics|110\nUHD Graphics|110\nIris Plus Graphics 655|108\nIris(R) Plus Graphics 650|108\nIris(R) Plus Graphics 650|108\nIris(TM) Pro Graphics 580|108\nIris(TM) Pro Graphics 6200|107\nIris Graphics 6100|107\nIris(TM) Pro Graphics 6200|107\nIris(R) Plus Graphics 645|106\nUHD Graphics 730|106\nIris(TM) Pro Graphics 6200|103\nIris Pro Graphics 580|102\nCorporation Iris Pro Graphics 6200|102\nIris(R) Plus Graphics gfx-driver-user-comp_media-21486 DC ReleaseInternal|101\nIris(R) Pro Graphics 580|101\nIris Plus Graphics 645|101\nUHD Graphics 750|100\nIris(TM) Pro Graphics 580|99\nIris(TM) Graphics 550|99\nIris(TM) Pro Graphics P6300|99\nIris(R) Plus Graphics 650|99\nIris(TM) Pro Graphics 5200|98\nIris(R) Graphics 550|97\nIris(R) Plus Graphics|97\nIris(R) Plus Graphics 650|96\nIris(R) Plus Graphics 655|96\nIris(R) Graphics 550|96\nIris(R) Plus Graphics 645|95\nIris Plus Graphics 650|95\nIris(R) Graphics 550|95\nIris Graphics 550|93\nIris(R) Plus Graphics 650|93\nIris(R) Pro Graphics 580|93\nIris(TM) Plus Graphics 650|91\nIris(TM) Graphics 550|91\nIris(R) Plus Graphics 640|89\nIris(TM) Plus Graphics 650|88\nIris(TM) Pro Graphics P6300|88\nIris(TM) Plus Graphics 650|88\nIris(TM) Graphics 550|87\nUHD Graphics 730|87\nCorporation Iris Plus Graphics 650|87\nIris(TM) Pro Graphics 5200|86\nCorporation CometLake-H GT2 [UHD Graphics]|86\nIris(R) Graphics 540|86\nUHD Graphics P630|86\nUHD Graphics 630|85\nIris(TM) Graphics 540|85\nIris(TM) Plus Graphics 640|84\nIris(TM) Graphics 540|84\nUHD Graphics 630|84\nUHD Graphics 630|83\nUHD Graphics P630|83\nIris(TM) Plus Graphics 640|83\nUHD Graphics 630|83\nUHD Graphics 630|83\nIris Plus Graphics 640|83\nIris(TM) Graphics 540|82\nUHD Graphics 630|82\nUHD Graphics 630|82\nIris(TM) Pro Graphics 5200|81\nUHD Graphics 630|81\nHD Graphics 630|81\nUHD Graphics 630|81\nUHD Graphics 630|81\nUHD Graphics 630|80\nUHD Graphics 630|80\nUHD Graphics 630|80\nIris Pro Graphics 6200|80\nUHD Graphics 630|80\nIris Graphics 540|80\nHD Graphics 630|80\nIris(TM) Graphics 540|80\nIris(TM) Pro Graphics 5200|79\nUHD Graphics 630|79\nUHD Graphics 630|79\nUHD Graphics 630|79\nIris Graphics 540|79\nUHD Graphics 630|79\nUHD Graphics|78\nCorporation Sky Lake Integrated Graphics|78\nIris(TM) Pro Graphics 6200|78\nCorporation WhiskeyLake-U GT2 [UHD Graphics 620]|78\nRadeong 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.8.0)|78\nUHD Graphics 710|78\nUHD Graphics 630|78\nUHD Graphics P630|77\nUHD Graphics 630|77\nUHD Graphics 630 (Desktop 9 Series)|77\nUHD Graphics 630|77\nCoffee Lake UHD Graphics|77\nIris(TM) Pro Graphics 5200|77\nUHD Graphics 630|76\nIris(R) Plus Graphics 640|76\nIris(TM) Pro Graphics 5200|76\nUHD Graphics 630|76\nUHD Graphics|76\nUHD Graphics 630|76\nIris(TM) Pro Graphics 5200|75\nUHD Graphics 630|75\nUHD Graphics P630|75\nHD Graphics P530|75\nHD Graphics 630|75\nIris(TM) Pro Graphics 5200|75\nUHD Graphics 630|75\nIris(TM) Pro Graphics 5200|75\nHD Graphics 620|74\nUHD Graphics 630|74\nHD Graphics 630|74\nHD Graphics 630|74\nCoffee Lake HD Graphics|74\nUHD Graphics 630|74\nIris(TM) Graphics 540|74\nUHD 630|74\nIris(R) Graphics 540|73\nUHD Graphics 620|73\nIris Graphics 6200|73\nCorporation CoffeeLake-H GT2 [UHD Graphics 630]|73\nUHD Graphics 630 (Desktop)|73\nHD Graphics ICL RVP|73\nUHD Graphics 630|73\nHD Graphics 630|72\nIris Pro|72\nKBL Unknown|72\nUHD Graphics 630|72\nIris(TM) Pro Graphics 5200|72\nHD Graphics 530|72\nCorporation UHD Graphics 630 (Desktop 9 Series)|72\nRadeon Pro Vega 16|72\nIris(TM) Graphics 540|72\nIris(R) Graphics 540|72\nUHD Graphics 630|71\nHD Graphics 630|71\nIris(TM) Pro Graphics 5200|71\nUHD Graphics 630|71\nIris Pro|71\nCometLake UHD Graphics 630|71\nHD Graphics 630|71\nUHD Graphics|71\nIris(TM) Plus Graphics 640|71\nUHD Graphics|71\nCorporation UHD Graphics|70\nIris Pro Graphics 6200|70\nIris(R) Graphics 540|70\nGraphics|70\nUHD Graphics 630|70\nHD Graphics ICL RVP BigSur|70\nUHD Graphics ReleaseInternal|70\nHD Graphics 530|70\nUHD Graphics 630|70\nUHD Graphics|70\nUHD Graphics gfx-driver-user-comp_core-23599|70\nUHD Graphics 630|69\nUHD Graphics|69\nIris(TM) Pro Graphics 5200|69\nCorporation Iris Plus Graphics G1 (Ice Lake)|69\nHD Graphics 630|69\nHD Graphics 630|69\nIris(R) Plus Graphics|69\nIris(TM) Pro Graphics 5200|69\nUHD Graphics 620|69\nUHD Graphics|69\nIris(R) Plus Graphics 640|69\nIris Pro Graphics 6200|69\nHD Graphics 630|69\nUHD Graphics 630 (Mobile)|68\nIris(TM) Pro Graphics 5200|68\nCorporation UHD Graphics 630 (Desktop)|68\nHD Graphics 630|68\nUHD Graphics 630|68\nUHD Graphics 620|68\nUHD Graphics 630|68\nIris(TM) Plus Graphics 640|68\nUHD Graphics|67\nIris Pro Graphics 580|67\nIris(TM) Graphics 540|67\nUHD Graphics 620|67\nIris(TM) Pro Graphics 5200|67\nUHD Graphics|66\nHD Graphics P530|66\nCorporation UHD Graphics 630 (Mobile)|66\nIris(R) Plus Graphics 640|66\nUHD Graphics 630|66\nIris(R) Plus Graphics 640|65\nHD Graphics 630|65\nHD 530|65\nUHD Graphics 620|65\nSKL Unknown|65\nHD Graphics 630|64\nIris(TM) Graphics 540|64\nMesa DRI Intel(R) UHD Graphics 620 (Kabylake GT2)|64\nUHD Graphics 630|64\nHD Graphics 530|63\nHD Graphics 530|63\nHD Graphics 530|63\nMesa Intel(R) HD Graphics 530 (SKL GT2)|63\nUHD Graphics|63\nHD Graphics 530|63\nIris Graphics 550|63\nHD Graphics 530|63\nIris Plus Graphics 655|63\nHD Graphics 630|63\nUHD Graphics, Gen11 LP|63\nCorporation 8th Gen Core Processor Gaussian Mixture Model|63\nUHD Graphics 630|63\nIris(TM) Graphics 650|63\nIris(R) Plus Graphics 640|62\nHD Graphics 530|62\nMesa DRI Intel(R) Iris Graphics 540 (Skylake GT3e)|62\nIris(R) Plus Graphics|61\nIris(TM) Pro Graphics 5200|61\nIris Pro|61\nHD Graphics 620|61\nUHD Graphics 620|61\nUHD Graphics 630|61\nUHD Graphics|61\nHD Graphics 530|60\nIris Plus Graphics G1|60\nIris(TM) Pro Graphics 5200|60\nIris Plus Graphics 650|60\nUHD Graphics|60\nHD Graphics 620|60\nUHD Graphics 620|60\nUHD Graphics 630|60\nMesa DRI Intel(R) HD Graphics 630 (Kaby Lake GT2)|60\nUHD Graphics 620|60\nHD Graphics 630|60\nHD Graphics 630|59\nIris Graphics 540|59\nIris Plus Graphics 640|59\nCoffeeLake-H GT2 [UHD Graphics 630]|59\nHD Graphics 630|59\nUHD Graphics|59\nHD Graphics 620|59\nUHD Graphics 620|59\nHD Graphics 630|59\nCorporation UHD Graphics 620 (Whiskey Lake)|59\nIris(R) Plus Graphics 650|59\nUHD Graphics 620|59\nMesa Intel(R) HD Graphics 520 (SKL GT2)|58\nHD Graphics 630|58\nHD Graphics P530|58\nIris(TM) Plus Graphics 640|58\nCorporation HD Graphics 630|58\nUHD Graphics 620|58\nUHD Graphics 630|58\nHD Graphics P630|58\nMesa DRI Intel(R) UHD Graphics 630 (Coffeelake 3x8 GT2)|58\nCorporation CometLake-S GT2 [UHD Graphics 630]|58\nHD Graphics 530|58\nIris Graphics 540|58\nHD Graphics 530|58\nCorporation Device|58\nHD Graphics CFL CRB|57\nHD Graphics 620 macOS Edition|57\nHD Graphics 530|57\nMesa DRI Intel(R) HD Graphics 520 (SKL GT2)|57\nIris Pro Graphics|56\nIris(TM) Pro Graphics 5200|56\nIris(R) Plus Graphics 655|56\nCoffee Lake UHD Graphics|56\nIris(TM) Graphics 640|55\nIris Pro|55\nUHD Graphics 630|55\nUHD Graphics 620|55\nHD Graphics 530|55\nHD Graphics 520|54\nHD Graphics 530|54\nUHD Graphics 620|54\nHD Graphics 530|54\nCorporation UHD Graphics 620|54\nUHD Graphics|54\nIris Plus Graphics G7|54\nCorporation Skylake GT2 [HD Graphics 520]|53\nUHD Graphics 630|53\nHD Graphics 630|53\nCorporation HD Graphics 530|53\nUHD Graphics 617|53\nHD Graphics 520|52\nHD Graphics 620|52\nHD Graphics 620|52\nHD Graphics 620|52\nHD Graphics 620|52\nHD Graphics 630|52\nHD Graphics 630|52\nHD Graphics 5600|51\nHD Graphics 530|51\nHD Graphics 630|51\nUHD Graphics 615|51\nMesa DRI Intel(R) HD Graphics 520 (Skylake GT2)|51\nHD Graphics 630|50\nHD Graphics 620|50\nUHD Graphics|50\nHD Graphics P4600/P4700|50\nHD Graphics 520|50\nHD Graphics 530|50\nHD Graphics 620|50\nHD Graphics 530|50\nCorporation HD Graphics 620|50\nHD Graphics 530|50\nUHD Graphics 620|49\nUHD Graphics 620|49\nHD Graphics 530|49\nIris(TM) Graphics 6100|49\nHD Graphics 4600|49\nHD Graphics 630|49\nUHD Graphics 617|49\nUHD Graphics RI|48\nHD Graphics 520|48\nUHD Graphics 617|48\nHD Graphics 5600|48\nHD Graphics 620|48\nUHD Graphics, Gen11 LP|47\nUHD Graphics 617|47\nMesa DRI Intel(R) HD Graphics 620 (Kaby Lake GT2)|47\nHD Graphics 615|47\nUHD Graphics RI|47\nHD Graphics 630|47\nHD Graphics 4600|46\nHD Graphics 520|46\nCorporation Skylake GT2 [HD Graphics 520]|46\nHD Graphics 520|46\nCorporation Device|46\nHD Graphics 4600|46\nHD Graphics 615|45\nHD Graphics 4600|45\nIris(TM) Graphics 6100|45\nHD Graphics 615|45\nUHD Graphics 615|45\nHD Graphics 630 GT2|45\nHD Graphics 4600|45\nHD Graphics 630|45\nIris(TM) Graphics 6100|45\nHD Graphics 4600|45\nHD Graphics 620|45\nIris(TM) Graphics 6100|45\nHD Graphics 520|45\nHD Graphics 4600|45\nIris(TM) Graphics 540|44\nHD Graphics 530|44\nHD Graphics 4600|44\nIris(TM) Graphics 5100|44\nKabylake HD Graphics ULT GT2|44\nIris Graphics 6100|44\nUHD Graphics 630|44\nHD Graphics 520|44\nHD Graphics KBL CRB|44\nHD Graphics 530 (Skylake GT2)|44\nCorporation HD Graphics 620|44\nHD Graphics 515|44\nUHD Graphics|44\nUHD Graphics 620|44\nIris(TM) Pro Graphics P580|43\nUHD Graphics 615|43\nHD Graphics 4600|43\nHD Graphics 4600|43\nCorporation Skylake Integrated Graphics|43\nHD Graphics 530|43\nUHD Graphics 615|43\nUHD Graphics 630|43\nHD Graphics 615|42\nHD Graphics 620|42\nHD Graphics 4600|42\nHD Graphics 615|42\nHD Graphics 4600|42\nHD Graphics 4600|42\nMesa DRI Intel(R) Kabylake GT2|42\nHD Graphics 620|42\nCorporation HD Graphics 6000|42\nUHD Graphics 615|42\nHD Graphics 4600|41\nCorporation HD Graphics 520|41\nHD Graphics P4600/P4700|41\nCorporation, Series Chipset Iris Plus Graphics 655|41\nHD Graphics 4600|41\nMesa DRI Intel(R) HD Graphics 530 (Skylake GT2)|41\nHD Graphics 4600|41\nIris(TM) Graphics 640|41\nHD Graphics 4600|41\nHD Graphics 630|40\nIris(TM) Graphics 5100|40\nIris(TM) Graphics 6100|40\nUHD Graphics 610|40\nHD Graphics 4600|40\nHD Graphics 4600|40\nUHD Graphics 615|40\nUHD Graphics 610|40\nHD Graphics 530|40\nUHD Graphics 605|40\nHD Graphics 615|40\nHD Graphics 4600|40\nUHD Graphics 615|40\nHD Graphics 505|39\nPHDGD Ivy 4|39\nUnknown|39\nIris(TM) Graphics 5100|39\nIris|39\nCorporation Iris Graphics 6100|39\nHD Graphics 6000|39\nIris(TM) Graphics 5100|39\nHD Graphics 615|39\nHD Graphics 5500|39\nSkylake GT2 [HD Graphics 520]|39\nCorporation Broadwell-U Integrated Graphics|38\nHD Graphics 615|38\nHD Graphics 5500|38\nHD Graphics 4600|38\nMesa DRI Intel(R) HD Graphics P4000 (IVB GT2)|38\nHD Graphics 4600|38\nHD Graphics 615|38\nCorporation HD Graphics 610|38\nHD Graphics 4600|38\nHD Graphics 4600|38\nIris(TM) Graphics 5100|38\nIris Graphics 6100|38\nHD Graphics 515|38\nHD Graphics 6000|38\nUHD Graphics, Gen11 LP|38\nIris(TM) Graphics 5100|38\nHD Graphics 4600|37\nHD Graphics 610|37\nHD Graphics 4600|37\nHD Graphics 515|37\nHD Graphics 4600|37\nHD Graphics 4600|37\nIris Graphics P580|37\nIris(TM) Pro Graphics P6300|37\nHD Graphics 5500|37\nHD Graphics 4600|37\nIris Graphics 6100|37\nUHD Graphics 610|37\nHD Graphics 4600|37\nHD Graphics 4600|37\nUHD Graphics 610|37\nHD Graphics 530|37\nHD Graphics 5500|37\nHD Graphics 515|36\nHD Graphics P4600/P4700|36\nHD Graphics 515|36\nHD Graphics 4600|36\nUHD Graphics 615|36\nIris Graphics 6100|36\nHD Graphics 4600|36\nHD Graphics 4600|36\nHD Graphics 4600|36\nHD Graphics 520|36\nHD Graphics 520|36\nHD Graphics 5500|36\nCorporation HD Graphics 5500|35\nIris|35\nHD5500 Graphics PG7|35\nHD Graphics 515|35\nIris|35\nGraphics gfx-driver-user-feature_dg1_poweron-27723 DCH ReleaseInternal|35\nHD Graphics 615|35\nHD Graphics P630|35\nHD Graphics 510|35\nHD Graphics 6000|35\nHD Graphics 5000|35\nCorporation HD Graphics 5300|35\nHD Graphics 6000|35\nHD Graphics 4600|35\nHD5500 Broadwell PG7|35\nGraphics HD 4600|35\nHD Graphics 6000|35\nHD Graphics 510|34\nHD Graphics 610|34\nHD Graphics 4600|34\nHD Graphics Family (PHDGD Skylake v2.9)|34\nCorporation Device|34\nHD Graphics 610|34\nUHD Graphics 610|34\nHD Graphics 5300|34\nHD Graphics 5000|34\nHD Graphics 4600|34\nUHD Graphics 610|33\nHD Graphics 4600|33\nUHD Graphics 620|33\nCorporation UHD Graphics 615|33\nHD Graphics 5000|33\nKabylake HD Graphics ULX GT2|33\nHD Graphics 620|33\nUHD Graphics 615|33\nHD Graphics 4600|33\nHD Graphics 5500|33\nHD Graphics 515|33\nUHD Graphics|33\nHD Graphics 4600|33\nHD Graphics 520|33\nHD Graphics 6000|33\nHD Graphics 615|33\nHD Graphics KBL CRB|33\nHD Graphics 4600|33\nUHD Graphics 610|33\nIris Graphics 6100|33\nHD Graphics 515|33\nIris|32\nIris|32\nHD Graphics 5000|32\nIris|32\nHD Graphics 5000|32\nIris(TM) Graphics 5100|32\nHD Graphics 4600|32\nHD Graphics 4600|32\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|32\nHD Graphics 5500 (PHDGD Skylake v2.9)|32\nHD Graphics 610|32\nHD Graphics 6000|31\nHD Graphics 5500|31\nIris|31\nHD Graphics 6000|31\nUHD Graphics 610|31\nHD Graphics 510|31\nHD Graphics|31\nHD Graphics 6000|31\nHD Graphics 4400|31\nHD Graphics 5000|31\nHD Graphics 4600|30\nHD Graphics 515|30\nHD Graphics 5600|30\nHD Graphics 4600|30\nHD Graphics 4400|30\nHD Graphics 530|30\nGeForce GTX 960|30\nUHD Graphics 610|30\nGeForce GTX 960|30\nHD Graphics 510|30\nHD Graphics 6000|30\nCorporation HD Graphics 515|30\nHD Graphics 610|29\nHD Graphics 510|29\nHD Graphics 5000|29\nHD Graphics 4600|29\nIris(TM) Pro Graphics 6200|29\nHD Graphics 510|29\nHD Graphics 5000|29\nHD Graphics 6000|29\nIris|29\nHD Graphics 4400|29\nHD Graphics 4400|29\nHD Graphics 4000|29\nHD Graphics 510|29\nHD Graphics 5000|29\nHD Graphics 4400|28\nHD Graphics 610|28\nHD Graphics 5300|28\nHD Graphics 510|28\nHD Graphics|28\nHD Graphics 610|28\nHD Graphics 4400|28\nHD Graphics 610|28\nHD Graphics 4600|28\nHD Graphics 4600|28\nHD Graphics 5000|28\nHD Graphics 4400|28\nHD Graphics 4400|28\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|28\nHD Graphics 4400|28\nHD Graphics 5300|28\nHD Graphics 5000|28\nUHD Graphics 605|28\nHD Graphics 4400|28\nHD Graphics 5500|28\nHD Graphics 4000|28\nHD Graphics 4400|27\nHD Graphics 615|27\nHD Graphics Family(PHDGD Skylake v2.0)|27\nHD Graphics 4400|27\nHD Graphics 4400|27\nHD Graphics 610|27\nCorporation HD Graphics 510|27\nIris|27\nHD Graphics 520|27\nHD Graphics 5000|27\nHD Graphics 5300|27\nHD Graphics 6000|27\nHD Graphics 4000|27\nHD Graphics 610|27\nHD Graphics 5000|27\nHD Graphics 4600|27\nMesa DRI Intel(R) HD Graphics 505 (Broxton)|27\nHD Graphics 5500|27\nHD Graphics|27\nHD Graphics 5000|26\nUHD Graphics 600|26\nHD Graphics 4600|26\nMesa DRI Intel(R) Haswell Mobile|26\nHD Graphics 4000|26\nHD Graphics 5300|26\nIris(TM) Graphics 540|26\nHD Graphics 4000|26\nHD Graphics 4600|26\nHD Graphics|26\nHD Graphics 4400|26\nHD Graphics 4600|26\nHD Graphics 6000|26\nCorporation Celeron N3350/Pentium N4200/Atom E3900 Series Integrated Graphics Controller|26\nHD Graphics 530|26\nHD Graphics 5500|25\nBroxton-P HD Graphics|25\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|25\nHD 4000|25\nHD Graphics 4400|25\nHD Graphics 4600|25\nHD Graphics 5500|25\nHD 4000|25\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|25\nCorporation HD Graphics|25\nHD Graphics 4400|25\nMesa DRI Intel(R) HD Graphics 5500 (Broadwell GT2)|25\nHD Graphics 4400|25\nHD Graphics|25\nUHD Graphics 600|24\nArc(TM) Graphics|24\nHD Graphics 4600|24\nHD Graphics 5300|24\nHD Graphics 4400|24\nHD Graphics 4400|24\nHD Graphics 4400|24\nHD Graphics 4000|24\nUHD Graphics 605|24\nHD Graphics 5000|23\nCorporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller|23\nUHD Graphics, LKF|23\nUHD Graphics 605|23\nHD Graphics 4400|23\nHD Graphics 4400|23\nHD Graphics 4000|23\nHD Graphics 4400|23\nMesa DRI Intel(R) Ivybridge Desktop|23\n0x496e74656c2048442047726170686963000732034343|23\nHD Graphics 5300|22\nHD Graphics 615|22\nKabylake HD Graphics ULX GT2|22\nHD Graphics 5300|22\nHD Graphics|22\nHD Graphics|22\nHD Graphics 4000|22\nHD Graphics|22\nHD Graphics 515|22\nHD Graphics|22\nHD Graphics 5300|22\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|22\nHD Graphics 5300|22\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|22\nHD Graphics 4000|21\nUHD Graphics 605|21\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|21\nHD Graphics 4400|21\nHD Graphics|21\nHD Graphics 4400|21\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|21\nHD Graphics|21\nHD Graphics 5300|21\nHD Graphics 4400|21\nHD Graphics 5300|21\nHD Graphics P4600/P4700|21\nHD Graphics|21\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|21\nCorporation UHD Graphics 605|20\nUHD Graphics 600|20\nHD Graphics 4000|20\nHD Graphics|20\nUHD Graphics 600 Universal|20\nHD Graphics 4600|20\nHD Graphics 500|20\nUHD Graphics 600|20\nHD Graphics|20\nHD Graphics 5000|20\nHD Graphics 4400|20\nHD Graphics 5300|19\nHD Graphics 4000|19\nMesa DRI Intel(R) Sandybridge Mobile|19\nHD Graphics 505|19\nHD Graphics 4000|19\nHD Graphics 4400|19\nUHD Graphics 600|19\nHD Graphics 3000|19\nHD Graphics 615|19\nHD Graphics|19\nCorporation Atom/Celeron/Pentium Processor N4200/N3350/E3900 Series Integrated Graphics Controller|19\nHD Graphics 4000|19\nHD Graphics|19\nUHD Graphics 600|19\nHD Graphics|19\nCorporation Haswell-ULT Integrated Graphics Controller|19\nHD Graphics 4400|19\nCorporation GeminiLake [UHD Graphics 600]|19\nHD Graphics 4000|18\nHD Graphics|18\nHD Graphics|18\nHD Graphics 500|18\nHD Graphics 4000|18\nCherryView HD Graphics|17\nCorporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller|17\nXeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|17\nCorporation Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller|17\nUHD Graphics 600|17\nUHD Graphics 600|17\nCorporation Xeon E3-1200 v2/3rd Gen Core processor Graphics Controller|16\nHD Graphics|16\nUHD Graphics 600|16\nHD Graphics|16\nHD Graphics 5000 (Android)|16\nHD Graphics|16\nUHD Graphics 600|16\nHD Graphics|16\nHD Graphics, Gen10|16\nHD Graphics (PHDGD IvyDrive 3.0)|16\nHD Graphics|15\nUHD Graphics 600|15\nCorporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Integrated Graphics Controller|15\nHD Graphics 500|15\nHD Graphics 505|15\nHD Graphics|15\nCorporation 3rd Gen Core processor Graphics Controller|15\nHD Graphics 4400|15\nHD Graphics|14\nHD Graphics|14\nHD Graphics|14\nHD Graphics 505|14\nHD Graphics|14\nHD Graphics|14\nHD Graphics|14\nHD Graphics|13\nHD Graphics 530|13\nHD Graphics 500|13\nCorporation 3rd Gen Core processor Graphics Controller|13\nHD Graphics 4400|12\nHD Graphics 5500|12\nHD Graphics|12\nHD Graphics|12\nCorporation HD Graphics 500|12\nHD Graphics 500|12\n3rd Gen Core processor Graphics Controller|12\nHD Graphics|11\nCorporation Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series PCI Configuration Registers|11\nCorporation 2nd Gen Core Processor Family Integrated Graphics Controller|11\nHD Graphics 510|11\nHD Graphics 4600 (PHDGD Skylake v2.9)|9\nCorporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display|8\nCorporation Atom Processor Z36xxx/Z37xxx Series Graphics & Display|8\nMesa DRI Intel(R) Bay Trail|8\nUHD Graphics, Gen12 LP ReleaseInternal|5\nCorporation D3D12 (Intel(R) UHD Graphics 630)|3\nHD Graphics 3000|2\n(PE64) Intel(R) 4th Generation Haswell HD Graphics Family|-1\n4 Series Internal Chipset|-1\n7 Series/C216 Chipset Family MEI Controller #1|-1\nB43 Express Chipset|-1\nCometLake-S GT2 [UHD Graphics 630]|-1\nHD Graphics 5500|-1\nHD Graphics 620|-1\nG35 Express Chipset Family|-1\nG41 Express Chipset|-1\nG45/G43 Express Chipset|-1\nGraphics Media Accelerator HD|-1\nHD Graphics (PHDGD Omega 5.0)|-1\nHD Graphics 4400|-1\nHD Graphics P3000|-1\nHD Graphics P3000 (PHDGD Omega 5.0)|-1\nIncrediblE HD Graphics 3000|-1\nIris Pro Graphics 5200|-1\nMesa DRI Intel(R) HD Graphics (CHV)|-1\nMesa DRI Intel(R) Ivybridge Mobile|-1\nMobile Intel(R) 4 Series Express Chipset Family|-1\nMobile Intel(R) 965 Express Chipset Family|-1\nMobile Intel(R) HD Graphics|-1\nPHDGD Quantic C3|-1\nQ45/Q43 Express Chipset|-1\nRadeong 0.4 on AMD CAPE VERDE (DRM 2.43.0, LLVM 3.7.0)|-1\nRadeong 0.4 on AMD CAPE VERDE (DRM 3.9.0 / 4.9.0-rc1+, LLVM 4.0.0)|-1\nRadeong 0.4 on AMD FIJI (DRM 3.2.0 / 4.7.0-rc5+, LLVM 4.0.0)|-1\nUHD Graphics, Gen12 LP ReleaseInternal|-1";var uP="\nGeForce RTX 4090|1950\nGeForce RTX 4090 Laptop GPU|1791\nGeForce RTX 4070 Ti|1517\nGeForce RTX 3090 Ti|1465\nGeForce RTX 4080|1426\nGeForce RTX 4060 Laptop GPU|1408\nGeForce RTX 3080 Ti Laptop GPU|1394\nGeForce RTX 3080|1325\nGeForce RTX 3080 Ti|1298\nRTX A5500 Laptop GPU|1242\nGeForce RTX 3090|1235\nGeForce RTX 3070 Ti|1229\nGeForce RTX 3070|1228\nGeForce RTX 3060 Ti|1166\nGeForce RTX 3080 Laptop GPU|1139\nRTX A4000 Laptop GPU|1126\nGeForce RTX 2080 Ti|1120\nGeForce RTX 3070 Laptop GPU|1077\nTITAN V|1070\nGeForce RTX 2080 SUPER|1063\nQuadro RTX 8000|1054\nRTX A6000|1046\nTITAN RTX|1046\nGeForce RTX 3070 Ti Laptop GPU|1033\nRTX A5000 Laptop GPU|1027\nGeForce RTX 4090 Laptop GPU|1024\nGeForce RTX 3060|1015\nTITAN X (Pascal)|1008\nTITAN Xp|995\nGeForce GTX 1080 Ti|992\nGeForce RTX 4070 Laptop GPU|989\nGeForce RTX 4090|982\nGeForce RTX 2070 SUPER|981\nGeForce RTX 4080|975\nGeForce RTX 3060|970\nGeForce RTX 2080|970\nGeForce RTX 4080 Laptop GPU|968\nGeForce RTX 3060 Laptop GPU|913\nGeForce RTX 2060 SUPER|890\nGeForce RTX 4060 Laptop GPU|882\nGeForce RTX 2070|879\nGeForce RTX 2080 Super with Max-Q Design|868\nGeForce RTX 2080 with Max-Q Design|868\nQuadro RTX 5000|867\nGeForce RTX 3080 Ti Laptop GPU|861\nQuadro RTX 5000 with Max-Q Design|843\nAsus GeForce GTX 1080|841\nGeForce GTX 1080|841\nGeForce RTX 2070 Super with Max-Q Design|837\nRTX A3000 Laptop GPU|835\nQuadro RTX 4000 with Max-Q Design|833\nGeForce RTX 3070 Ti Laptop GPU|827\nQuadro RTX 4000|817\nRTX A6000|814\nGeForce GTX 1070 Ti|785\nGeForce RTX 4070 Ti|784\nGeForce RTX 4050 Laptop GPU|784\nRTX A5500 Laptop GPU|783\nTITAN Xp COLLECTORS EDITION|771\nGeForce RTX 2070 with Max-Q Design|765\nGeForce RTX 3050|760\nGeForce RTX 2060|757\nGeForce GTX 980 Ti|755\nQuadro P6000|753\nGeForce GTX 1080|747\nQuadro RTX 6000|744\nGeForce GTX 1070|742\nRTX A4000|739\nGeForce RTX 3090|737\nGeForce RTX 3080 Ti|733\nGeForce GTX 1080 Ti|729\nQuadro P4200|711\nGeForce GTX 1080 with Max-Q Design|707\nGeForce RTX 3060 Lite Hash Rate|705\nEIZO MED-XN83|704\nGeForce RTX 3080 Ti|701\nGeForce GTX 1660 SUPER|701\nTITAN Xp|700\nEVGA GeForce GTX 1070|698\nGeForce RTX 3090 Ti|696\nQuadro GV100|695\nQuadro P4000|695\nGeForce GTX 1660 Ti|694\nGeForce RTX 3070 Ti|690\nRTX 6000 Ada Generation|687\nGeForce RTX 3070|687\nQuadro RTX 8000|685\nRTX A2000 12GB|683\nGeForce RTX 2080|679\nGeForce GTX TITAN X|679\nQuadro M6000 24GB|676\nGeForce GTX 1660 SUPER|674\nTITAN V|673\nQuadro RTX 3000|672\nGraphics Device|672\nRTX A5000|669\nGeForce RTX 3090|669\nTITAN Xp COLLECTORS EDITION|669\nGeForce GTX 1070 A17|668\nGeForce RTX 3080 Laptop GPU|667\nRTX A4500 Embedded GPU|663\nRTX A5000 Laptop GPU|663\nGeForce RTX 3080|658\nGeForce RTX 3050 Ti Laptop GPU|657\nGeForce GTX 1070 with Max-Q Design|656\nGeForce RTX 3060 Ti|656\nQuadro P4200 with Max-Q Design|651\nGeForce RTX 3080|651\nGeForce RTX 2080 SUPER|650\nGeForce GTX 1070 Ti|648\nGeForce GTX 1070 with MaxQ Design|642\nRTX A3000 Laptop GPU|641\nGeForce RTX 3070 Laptop GPU|641\nGeForce GTX 1070|640\nGA104GL [RTX A4000]|639\nGeForce GTX 980 Ti|637\nGeForce RTX 2070 Mobile / Max-Q Refresh|637\nRTX A4000 Laptop GPU|634\nGeForce RTX 3060|633\nMicrosoft Virtual Render Driver|633\nGeForce RTX 3050 Laptop GPU|631\nRTX A2000|629\nGeForce RTX 2070 Mobile / Max-Q|626\nGeForce RTX 3070|625\nQuadro P5000|625\nQuadro P4000|621\nGeForce RTX 3060 Laptop GPU|621\nGeForce RTX 2060 with Max-Q Design|618\nGV102|614\nGeForce RTX 2070 SUPER|612\nGeForce GTX 1660|606\nGeForce RTX 2070|604\nGeForce GTX 1660 Ti with Max-Q Design|601\nGeForce GTX TITAN X|598\nRTX A2000 8GB Laptop GPU|598\nGeForce GTX TITAN Xp|595\nGeForce GTX 980|593\nGeForce RTX 2080 SUPER|591\nGTX 1060 HL|589\nTesla T4|589\nGRID P4-1Q|585\nRTX A4000|581\nGeForce RTX 2080 Ti|577\nGeForce RTX 2080 Super with Max-Q Design|576\nQuadro RTX 4000 Mobile / Max-Q|576\nTU102 [TITAN RTX]|574\nGeForce GTX 1060 with Max-Q Design|571\nGeForce RTX 2070 SUPER|570\nGeForce GTX 1060 6GB|570\nGeForce RTX 2080 Mobile|568\nGeForce RTX 2060|568\nQuadro P3200|565\nP106-100|564\nGRID V100DX-1Q|564\nRTX A2000|562\nGeForce RTX 2080 Ti Rev. A|561\nGeForce RTX 2080 Rev. A|559\nGV100 [TITAN V]|557\nGeForce RTX 2080|556\nGeForce GTX 1650 SUPER|554\nP106-100 Custom|553\nGeForce RTX 2070 Super with Max-Q Design|553\nGV100|553\nGeForce RTX 2070 Mobile|550\nGP102 [TITAN X]|548\nRTX A2000 12GB|546\nGeForce GTX 1060 5GB|542\nMSI GeForce GTX 1060|542\nGeForce RTX 2060 SUPER|542\nGRID T4-1Q|539\nQuadro RTX 5000 Mobile / Max-Q|538\nGeForce RTX 3050|538\nGeForce GTX 1060 3GB|538\nQuadro RTX 5000 with Max-Q Design|537\nQuadro M6000|536\nRTX A2000 Laptop GPU|536\nGeForce GTX 1660 SUPER|533\nA10-2B|530\nTITAN X (Pascal)|530\nQuadro P5000|527\nGeForce RTX 2070|526\nGeForce GTX 1080|525\nGeForce RTX 2060 Mobile|524\nPNY GeForce GTX 980|524\nGeForce GTX 1080 Mobile|523\nGeForce RTX 2060 SUPER|520\nGeForce GTX 780 Ti|518\nRTX A4500|516\nGeForce RTX 2060 Rev. A|515\nMSI GeForce GTX 980|515\nQuadro P3200 with Max-Q Design|513\nGeForce RTX 2070 with Max-Q Design|513\nGeForce RTX 3050 Ti Laptop GPU|510\nQuadro RTX 3000 Mobile / Max-Q|509\nGeForce GTX 1660 SUPER|508\nQuadro RTX 4000|508\nGeForce GTX 1060|506\nGeForce RTX 2080 with Max-Q Design|505\nGeForce GTX 1080 Ti|505\nGeForce GTX 1660 Ti Rev. A|504\nGeForce GTX 1660 Ti Mobile|504\nGeForce RTX 3050 Laptop GPU|503\nGeForce RTX 2060|503\nQuadro RTX 4000 with Max-Q Design|500\nEIZO MED-XN83|499\nGeForce GTX 970|499\nGeForce GTX 1080|495\nGeForce GTX 1070 Ti|492\nGeForce GTX 980|491\nA100-PCIE-40GB|489\nGeForce GTX 1070|487\nGeForce GTX 1660 Ti|487\nQuadro P2200|485\nGeForce GTX TITAN Black|484\nTITAN Xp COLLECTORS EDITION|483\nTITAN RTX|482\nQuadro P5200|482\nGeForce GTX 1060 with Max-Q Design|480\nRTX A1000 Laptop GPU|479\nGeForce GTX 1060 6GB|479\nQuadro RTX 5000|475\nTITAN V|475\nGRID P100-4Q|474\nEVGA GeForce GTX 970|472\nGeForce GTX 1650 SUPER|471\nGeForce GTX 1650 Ti|470\nQuadro RTX 3000|470\nQuadro M5000|469\nQuadro RTX 3000 with Max-Q Design|468\nGeForce GTX 980 Ti|467\nGeForce GTX TITAN|467\nQuadro P4200|466\nGeForce GTX 1070 with Max-Q Design|466\nQuadro M5000|466\nGeForce GTX 1080 Ti|466\nTesla M60|462\nGeForce GTX 1660|457\nGeForce GTX 1660|455\nGeForce RTX 2050|453\nGeForce GTX 1060|453\nGeForce RTX 2060 with Max-Q Design|453\nQuadro P3200 with Max-Q Design|452\nQuadro P4000|450\nGeForce GTX 1060 3GB|449\nGeForce GTX 1070|448\nGeForce GTX 1060 6GB Rev. 2|447\nGigabyte GeForce GTX 780 Ti|447\nTITAN Xp|444\nGeForce GTX 980M|440\nA10-4Q|439\nGeForce GTX 1080 with Max-Q Design|437\nGeForce GTX 1650 SUPER|435\nQuadro P5000|435\nQuadro P3000|434\nRTX A6000|434\nGeForce GTX 1060 3GB|433\nGeForce GTX 1070 Ti|432\nGeForce GTX 780|432\nGeForce GTX 1060 Mobile|432\nGigabyte GeForce GTX 970|431\nGeForce GTX TITAN Z|431\nQuadro K6000|429\nGeForce GTX 1650|425\nGeForce GTX 970|421\nTesla K20m|420\nQuadro GV100|419\nQuadro P4000|419\nQuadro P3200|417\nGTX 1060 HL|415\nRTX A2000 Laptop GPU|415\nGeForce GTX 780 by St3Phl3|414\nP102-100|412\nT1200 Laptop GPU|412\nGeForce GTX 780 Ti|411\nGeForce GTX 1060 6GB|408\nGeForce GTX 1650 Ti with Max-Q Design|407\nQuadro T2000 with Max-Q Design|407\nQuadro P2000|406\nQuadro P2200|406\nGeForce RTX 2060 Max-Q|405\nGeForce GTX 1650 Ti Mobile|403\nGeForce GTX 1060 Mobile 6GB|403\nGeForce GTX 1060 with Max-Q Design|401\nGeForce GTX 980|398\nGeForce RTX 2070 Rev. A|397\nGeForce GTX TITAN X|397\nTesla T4|395\nQuadro P6000|394\nGeForce GTX 1060 3GB|394\nQuadro M5000|393\nGeForce GTX 1060 with Max-Q Design|392\nPNY GeForce GTX 970|392\nQuadro T2000|391\nQuadro T1000 with Max-Q Design|391\nGRID P40-8Q|390\nGeForce GTX 780 Rev. 2|389\nQuadro GP100|387\nGeForce GTX 980|387\nP104-100|387\nGeForce GTX 1650 Ti|386\nGRID P40-4Q|384\nGeForce GTX 780 Ti|383\nDevice|383\nTU117M|381\nQuadro P2000|380\nQuadro RTX 6000|379\nGeForce GTX 1070 Mobile|378\nQuadro T1000|377\nGeForce RTX 3070 Mobile / Max-Q|376\nGeForce GTX 1060|376\nGRID V100-1Q|375\nGeForce GTX 780 Rev. 2|372\nGeForce RTX 2050|370\nGeForce GTX 770|370\nGeForce GTX 970|368\nGeForce GTX 1650 Ti|368\nGRID T4-2B4|368\nAsus GeForce GTX 780|366\nP106-100|365\nQuadro RTX 8000|365\nGeForce GTX TITAN Black|365\nGRID RTX6000-2Q|365\nGeForce GTX TITAN Black|363\nQuadro M4000|363\nGeForce GTX 1060 6GB|362\nQuadro P5000|361\nGeForce GTX 1650|361\nQuadro M5500|361\nGeForce GTX 780|360\nGeForce GTX 780|360\nGeForce GTX 980M|358\nGeForce GTX 1650|358\nGeForce GTX 1050 Ti|357\nQuadro P3200 Mobile|357\nGeForce GTX 1650 with Max-Q Design|356\nTesla T4|356\nQuadro P2000|356\nGeForce GTX TITAN|355\nGeForce GTX 970|355\nGeForce GTX 980 Ti|354\nGeForce GTX 1660 Ti with Max-Q Design|354\nGeForce GTX 780 Rev. 2|352\nGRID P4-4Q|351\nGeForce GTX TITAN X|351\nT1200 Laptop GPU|350\nGRID T4-8Q|350\nGeForce GTX 1060|349\nGeForce GTX 1050 Ti with Max-Q Design|348\nGeForce GTX 970M|346\nT1000 8GB|346\nGeForce RTX 3080 Mobile / Max-Q 8GB/16GB|346\nGeForce GTX 780 Ti|346\nGeForce GTX 680|346\nGeForce GTX 1660 Ti|345\nGeForce GTX 780|345\nQuadro M6000|344\nGRID T4-16Q|344\nGeForce RTX 2080 Ti|344\nGRID T4-1B|343\nQuadro K5200|342\nQuadro P2200|341\nT1000 8GB|341\nTesla K80|341\nQuadro T2000 Mobile / Max-Q|338\nTU107|337\nGeForce GTX 780 Mac|336\nGeForce GTX TITAN|336\nGeForce GTX 980M|335\nGRID P40-2Q|335\nEVGA GeForce GTX 780|334\nGeForce GTX TITAN Z|334\nTITAN X (Pascal)|332\nGeForce GTX 960|331\nTesla P40|331\nGeForce GTX 1650 Ti with Max-Q Design|330\nTesla P40|330\nGeForce GTX 1060se 3GB|329\nGeForce GTX 1650 Mobile / Max-Q|329\nQuadro T2000 with Max-Q Design|328\nT1000|327\nRTX A5500|326\nA40-8Q|326\nGeForce RTX 3060 Mobile / Max-Q|326\nGeForce GTX 690|326\nTesla V100-SXM2-16GB|326\nQuadro M5000|325\nA16-2B|323\nGeForce GTX 1050 Ti with Max-Q Design|321\nGeForce GTX 1050 Ti Mobile|321\nGeForce GTX 980M|319\nQuadro M3000M|318\nGeForce GTX 1650 with Max-Q Design|318\nGeForce GTX 670|316\nQuadro P3000|316\nT600 Laptop GPU|315\nQuadro T1000 with Max-Q Design|313\nTesla K80|312\nTesla K20m|311\nGeForce GTX 770|311\nTesla P100-PCIE-16GB|311\nQuadro M5000M|311\nTesla K80|309\nEVGA GeForce GTX 1070|309\nQuadro T1000|309\nGeForce GTX 1050 Ti|309\nGeForce GTX TITAN Z|308\nQuadro T2000|308\nQuadro M6000 24GB|308\nGeForce GTX 760 Ti|308\nGeForce RTX 2080 SUPER Mobile / Max-Q|308\nGeForce GTX 1050 Ti|307\nQuadro P2000|304\nQuadro P6000|304\nGeForce GTX 770 Mac Edition|303\nMSi GeForce GTX 1050 Ti|303\nA40|303\nT600|303\nP106-090|302\nP106-090|301\nQuadro K5200|300\nGeForce GTX 770|299\nGeForce GTX 680|299\nGeForce GTX TITAN|299\nGeForce GTX 680|297\nGRID M60-4Q|296\nQuadro M4000|296\nGRID M60-2Q|295\nGeForce GTX 760|294\nGRID V100DX-16Q|293\nQuadro RTX 6000/8000|293\nGeForce GTX 770|293\nGP104|292\nGeForce GTX 780 Rev. 2|290\nGeForce GTX 1050 Ti|288\nGeForce GTX 950|288\nEVGA GeForce GTX 1050 Ti|288\nGeForce GTX 1650 with Max-Q Design|286\nGeForce GTX 880M|285\n%NVIDIA_DEV.13D7.0580.1028%|283\nGP104GL|283\nGigabyte GeForce GTX 960|282\nQuadro K5200|281\nGeForce GTX 660 Ti|281\nGeForce GTX 670|281\nQuadro M4000|280\nGeForce GTX 580|280\nMSi GeForce GTX 960|280\nTesla M6|278\nPNY GeForce GTX 680|278\nT500|277\nGeForce GTX 1050|276\nGeForce GTX 1050 Ti with Max-Q Design|276\nGeForce GTX 690|276\nGeForce GTX 680|276\nGeForce GTX 670|275\nGeForce GTX 760 Ti|274\nGeForce GTX 1050 3GB|272\nGeForce GTX 880M|272\nTesla M60|272\nAsus GeForce GTX 960|271\nQuadro M4000|269\nT600|268\nTesla K20m|268\nGeForce GTX 760|268\nGP102 [TITAN Xp]|267\nGeForce GTX 960|267\nGeForce GTX 670|265\nQuadro T1000 Mobile|265\nGeForce GTX 1050|264\nTesla M60|264\nEVGA GeForce GTX 1080 Ti|263\nGeForce GTX 970M|263\nGeForce GTX 780M|262\nGeForce GTX 690|262\nAsus GeForce GTX 770|261\nGeForce GTX 1070 with MaxQ Design|261\nEVGA GeForce GTX 960|261\nGeForce GTX 960|260\nGRID T4-2Q|259\nGeForce GTX 970M|259\nGeForce GTX 960|259\nQuadro M3000M|258\nGeForce GTX 1060se 3GB|257\nTesla K10|257\nQuadro M3000M|257\nQuadro M2200|256\nGeForce GTX 690|255\nGeForce GTX 760|254\nGeForce GTX 880M|254\nQuadro K4200|253\nQuadro P2000 with Max-Q Design|253\nT550 Laptop GPU|253\nQuadro K5200|252\nMSI GeForce GTX 760|250\nGeForce GTX 580|249\nGeForce GTX 780M Mac Edition|249\nGeForce GTX 570|249\nTesla V100-PCIE-16GB|248\nGeForce GTX880M|248\nGeForce GTX 760|247\nGeForce GTX 570 Rev. 2|247\nAsus GeForce GTX 670|246\nGeForce GTX 580|246\nGeForce GTX 1050|245\nTesla P4|244\nGeForce GTX 680MX|244\nGeForce GTX 480|242\nGeForce GTX 1050|242\nQuadro 7000|241\nQuadro M4000M|241\nGeForce GTX 1050 Mobile|240\nGeForce GTX 660|240\nGeForce GTX 760 (192-bit)|239\nQuadro K5000|239\nGeForce GTX 760 OEM|238\nGeForce GTX 660 Ti|238\nGeForce GTX 775M Mac Edition|238\nGeForce GTX 965M|237\nGeForce GTX 870M|236\nGeForce GTX 950|236\nGeForce GTX 560 Ti 448 Cores|236\nGeForce GTX 780M|236\nQuadro P2000 with Max-Q Design|234\nMSI GeForce GTX 980 TI|234\nGRID K2|233\nGeForce GTX 1060 6GB OpenGL Engine|233\nPNY GeForce GTX 1060|233\nEVGA GeForce GTX 980|232\nGRID RTX6000P-6Q|232\nGeForce GTX 950|232\nGeForce GTX 950|232\nGeForce GTX 590|231\nGeForce GTX 1070 OpenGL Engine|231\nTITAN X (Pascal)|229\nGeForce GTX 1050 with Max-Q Design|229\nGeForce GTX TITAN Black|228\nQuadro K4200|227\nGeForce GTX 660 OEM|227\nGeForce MX450|225\nGeForce GTX 1050 with Max-Q Design|225\nQuadro P1000|225\nGraphics Device|225\nQuadro M2000|222\nGeForce GTX 1630|222\nQuadro M4000M|221\nQuadro K5100M|221\nEVGA GeForce GTX 760|221\nGeForce GTX 1070 Ti|221\nGeForce GTX 660 Ti|220\nGeForce GTX 570|220\nGeForce GTX 660 Ti|219\nQuadro K6000|219\nGeForce GTX 570 Rev. 2|219\nGeForce GTX 1050 with Max-Q Design|219\nTesla M40|218\nGeForce GTX 680M|217\nGeForce GTX 780M by Nick[D]vB|217\nAsus GeForce GTX 980 TI|217\nGeForce GTX 1060 3GB|217\nGraphics Device|217\nGeForce GTX 570 Rev. 2|216\nGeForce GTX 1060 3GB OpenGL Engine|216\nGeForce GTX 660|215\nPoint of View GeForce GTX 660 Ti|214\nGigabyte GeForce GTX 980|214\nQuadro K5000|213\nQuadro P1000|213\nGeForce GTX 480|213\nGeForce MX450|212\nQuadro K4200|211\nGRID K280Q|211\nAsus GeForce GTX 760|210\nQuadro P1000|210\nGeForce GTX 680MX|209\nGeForce GTX 1060 6GB|209\nGeForce GTX 660|209\nGeForce GTX 750 Ti|208\nGeForce GTX 780M Mac Edition|208\nGeForce GTX 775M Mac Edition|208\nGRID K520|208\nQuadro M2200|207\nGRID M60-8Q|207\nGRID K2|207\nGeForce GTX 775M Mac Edition|206\nGeForce GTX 560 Ti 448 Cores|205\nGeForce GTX 760 (192-bit)|205\nQuadro K5000|205\nGigabyte GeForce GTX 980 TI|204\nGeForce GTX 780M Mac Edition|204\nAsus GeForce GTX 660|204\nGRID M60-1B|202\nGeForce GTX 650 Ti BOOST|202\nGeForce GTX 480|202\nGeForce GTX 960M|201\nGeForce GTX 660 OEM|201\nGeForce GTX 780 Ti|201\nQuadro K5000|201\nGeForce GTX 780M Mac Edition|201\nGeForce GTX 870M|200\nGeForce GTX 680MX|200\nGeForce GTX 680MX|199\nQuadro P1000|198\nTesla P100 PCIe 16GB|198\nQuadro K5100M|198\nGeForce GTX 470|198\nQuadro P620|197\nAsus GeForce GTX 780|197\nQuadro 6000|196\nQuadro M1200|195\nQuadro K2200|195\nGeForce GTX 590|195\nQuadro M2000M|194\nQuadro M4000 OpenGL Engine|194\nGeForce GTX 870M|194\nGeForce GTX 1070|194\nEVGA GeForce GTX 750 Ti|194\nZotac GeForce GTX 680|193\nQuadro RTX 3000 with Max-Q Design|193\nT400|193\nQuadro M2200|193\nQuadro K4100M by nikey22|192\nGRID K2|192\nGTX 865M by iMacGFX|191\nQuadro M2000|191\nGeForce GTX 980M|190\nGeForce GTX 560 Ti|190\nPalit GeForce GTX 660|190\nGRID K260Q|189\nGRID M10-2Q|189\nGeForce GTX 660|189\nGeForce GTX 965M|189\nGeForce GTX 650 Ti BOOST|188\nGeForce GTX 675MX Mac Edition|188\nQuadro K5100M by nikey22|187\nGeForce GTX 680M|187\nZotac GeForce GTX 660|186\nGeForce GTX 650 Ti BOOST|186\nGeForce GTX 760 (192-bit)|185\nGRID M60-1Q|184\nGigabyte GeForce GTX 960|184\nQuadro M2000M Special Edition|184\nGeForce GTX 560 Ti|184\nInno3D GeForce GTX660|183\nGeForce GTX 1060|183\nGeForce GTX 675MX Mac Edition|182\nQuadro P600|181\nGeForce GTX 1080|181\nGeForce GTX 675MX Mac Edition|181\nQuadro P620|180\nGK104 Board - 20530501|180\nAshley|180\nQuadro M2000|179\nGeForce GTX 860M|179\nMSi GeForce GTX 1050 Ti|179\nAsus GeForce GTX 750 Ti|178\nGeForce GTX 750 Ti|178\nGeForce GTX 750 Ti|177\nEVGA GeForce GTX 980 TI|177\nAsus GeForce GTX 770|177\nGeForce GTX 760 OEM|176\nGeForce GTX 750|176\nQuadro P2000 Mobile|176\nQuadro K4100M|175\nT400 4GB|174\nGeForce GTX 1080 Ti OpenGL Engine|174\nQuadro K5000M|173\nGeForce GTX 960A|173\nGeForce GTX 560 Ti|172\nTesla M10|172\nGeForce GTX 1080 Ti|172\nGRID RTX6000P-6|172\nGK104 Board - 2051b502|172\nGeForce GTX 770M|172\nGeForce GTX 960M|172\nGeForce GTX 970|172\nGRID M10-2Q|171\nGeForce GTX 560 Ti OEM|171\nMSi GeForce GTX 970|171\nGK104GL [GRID K2]|171\nGeForce GTX 470|170\nGeForce GTX 560 Ti|170\nTITAN Xp|170\nGeForce GTX 870M|170\nGeForce MX350|169\nMSi GeForce GTX 580|169\nGeForce GTX 960M|169\nEVGA GeForce GTX 760|169\nQuadro K4000M|169\nT400|169\nGeForce MX350|168\nGeForce GTX 470|168\nGeForce GTX 560|167\nQuadro 6000|167\nGeForce GTX 1050 Ti OpenGL Engine|167\nQuadro M1200|167\nGigabyte GeForce GTX 970|166\nGeForce GT 1030|166\nGeForce GTX780M by nikey22|166\nGeForce GTX870M by nikey22|166\nTesla V100-PCIE-32GB|165\nQuadro K2200|165\nQuadro M1000M|165\nQuadro K2200|165\nAsus GeForce GTX 970|164\nGeForce GTX 750 Ti|164\nQuadro M2000M|164\nGeForce GTX 1050|164\nGeForce GTX 1050 Ti|163\nQuadro K5000|163\nGraphics Device|162\nGeForce MX250|162\nT500|161\nEVGA GeForce GTX 570|161\nQuadro M2000M|161\nQuadro K1200|159\nGeForce GTX 860M|159\nGeForce GTX 770M|159\nQuadro M1200|158\nGeForce GTX 675MX|158\nGeForce MX330|158\nQuadro K2200M|157\nQuadro K4000|157\nGeForce GTX 690|157\nGeForce GTX 860M|157\nMSi GeForce GTX 670|156\nQuadro K2200|156\nQuadro K4100M|156\nGeForce GTX 770M by Nick[D]vB|155\nTesla V100-SXM2-32GB|155\nGeForce GTX 1080 OpenGL Engine|155\nGigabyte GeForce GTX 670|155\nEVGA GeForce GTX 960|155\nGeForce GTX 750|155\nGeForce Pre-Release TITAN X (Pascal) OpenGL Engine|154\nGeForce GTX TITAN Xp|154\nAsus GeForce GTX 950|154\nQuadro K4100M|153\nGeForce GTX 960|153\nGeForce GTX 770M|153\nGeForce MX330|153\nQuadro M2200 Mobile|153\nGeForce MX250|153\nGeForce Pre-Release TITAN Xp OpenGL Engine|153\nQuadro P600|153\nQuadro M620|152\nGeForce GTX 1070 Ti OpenGL Engine|152\nGeForce GTX 770|152\nGeForce GT 1030|152\nTesla C2070|152\nGeForce GTX 650 Ti|152\nGRID K240Q|151\nGeForce GTX 480 OpenGL Engine|151\nGeForce GTX 750|151\nGeForce GTX TITAN|151\nGeForce GTX 760 (192-bit)|151\nGeForce GTX 560|151\nGeForce GT 1030|151\nQuadro K5000M|151\nQuadro P1000 Mobile|151\nZotac GeForce GTX 660|151\nGeForce GTX 460 v2|150\nGRID GTX P40-6|150\nMSi GeForce GTX 660|149\nGeForce GTX 780M|149\nMSI GeForce GTX 760|149\nP106-090|149\nGeForce GTX 950A|149\nGeForce MX150|149\nAsus GeForce GTX 1060|149\nUnknown|149\nGeForce GTX 980 Ti|148\nGRID T4-4Q|148\nGeForce GTX 465|147\nColorful GeForce GTX 960|147\nGigabyte GeForce GTX 750|147\nQuadro M1000M|147\nGeForce GTX 780 Mac|147\nGeForce GTX 460|146\nMSi GeForce GTX 960|146\nGeForce GTX 560|146\nQuadro K4000|145\nGeForce GTX 970M|145\nQuadro M1000M|145\nUnknown|145\nGeForce GTX 980|144\nGeForce GTX 950|144\nGeForce GTX 675M|144\nZotac GeForce GTX 960|144\nGeForce Pre-Release Graphics Device|144\nGeForce GTX 670 OpenGL Engine|143\nQuadro K4000|143\nEVGA GeForce GTX 580|143\nGeForce GTX 950M|143\nGeForce GTX TITAN Black OpenGL Engine|142\nGeForce GTX 760|142\nQuadro 5000|142\nMSI GeForce GTX 570 HD|142\nGeForce Pre-Release TITAN Xp COLLECTORS EDITION OpenGL E|142\nGeForce GTX 1050 OpenGL Engine|142\nGeForce GTX TITAN X|142\nGeForce GTX 880M|141\nGV-N660OC-2GD|141\nGeForce GTX 750|141\nQuadro M5000M|140\nGeForce GTX 970 OpenGL Engine|140\nGeForce GTX 675MX|140\nAsus GeForce GTX 760|140\nQuadro P5000 OpenGL Engine|139\nGeForce GTX 580|139\nGeForce GTX 675MX|139\nZotac GeForce GTX 750|139\nQuadro K1200|139\nGeForce MX150|139\nGeForce GTX 650 Ti|139\nQuadro K1200|139\nGeForce GTX 980 Ti OpenGL Engine|139\nGeForce GTX 580M|138\nAsus GeForce GTX 580|138\nGeForce GTX 770 OpenGL Engine|138\nGeForce GT 1010|138\nGeForce GTX 780 Rev. 2|138\nQuadro P2000 OpenGL Engine|138\nGeForce MX250|138\nQuadro K4000|137\nGeForce GTX 460 v2|137\nGeForce GTX 770M|137\nGigabyte GeForce GTX 570 HD|136\nGeForce GTX 465|136\nGeForce GTX 460 v2|136\nGeForce GTX 670|136\nGeForce GTX 590 OpenGL Engine|136\nGeForce GTX 780|135\nGeForce GTX TITAN Black|135\nGeForce GTX 660 Ti|135\nZotac GeForce GTX 560 Ti|134\nGeForce GTX 880M OpenGL Engine|134\nGeForce GTX 650 Ti|134\nGeForce GTX 760 OpenGL Engine|134\nnull Graphics Device|134\nQuadro M620|133\nGeForce GTX 780M Mac Edition|133\nGeForce MX150|132\nAsus GeForce GTX 570 HD|132\nGeForce GTX 775M OpenGL Engine|132\nGeForce GTX 850M|132\nAsus GeForce GTX 570|132\nQuadro K6000 OpenGL Engine|131\nGeForce GTX 850M|131\nGeForce GTX 460|131\nGeForce GTX 950A|130\nGeForce GTX 780M OpenGL Engine|130\nPoint of View GeForce GTX 660 Ti|130\nGeForce GTX 775M Mac Edition|130\nEVGA GeForce GTX 650 Ti|130\nEVGA GeForce GTX 750 Ti|129\nGeForce GTX 460|129\nQuadro P520|129\nGainward GeForce GTX 570|129\nAsus GeForce GTX 750 Ti|129\nQuadro K3100M|128\nQuadro K2200|128\nAsus GeForce GTX 560 Ti|127\nGeForce GTX 680|127\nGeForce GTX 680 OpenGL Engine|127\nGeForce GTX 950M|127\nGRID V100-2B|127\nGigabyte GeForce GTX 660 Ti|127\nN15E-GT|126\nQuadro K1200|126\nGeForce GTX 650 Ti|126\nGigabyte GeForce GTX 770|126\nGeForce GTX 660|126\nQuadro 5000|125\nGeForce GT 1030|125\nGeForce GTX 950M|125\nGeForce GTX 765M|125\nQuadro M5000|125\nGigabyte GeForce GTX 560 Ti|125\nGeForce GTX 580M|125\nQuadro M2000|124\nGeForce GTX 850M|124\nGeForce GTX 570 OpenGL Engine|123\nGainward GeForce GTX 750 Ti|123\nQuadro K2200M|123\nGeForce GTX 780M Mac Edition|123\nGeForce GTX 680MX OpenGL Engine|123\nQuadro K4200|123\nGeForce GTX 460 OEM|122\nGeForce GTX 670MX|122\nMSi GeForce GTX 560 Ti|122\nGeForce GTX 460 SE|122\nQuadro M4000|122\nGeForce GTX880M OpenGL Engine|122\nQuadro P620|121\nGeForce GTX 560 SE|121\nGeForce GTX880M by nikey22|121\nGeForce GTX 555|121\nGeForce GTX 965M OpenGL Engine|121\nGeForce GTX 850A|121\nQuadro K5000 OpenGL Engine|120\nGeForce GTX 580 OpenGL Engine|120\nQuadro K3100M|120\nGeForce GTX 650 Ti BOOST|119\nGeForce GTX 570M|119\nGeForce GTX 675MX OpenGL Engine|119\nGeForce GTX 775M Mac Edition|119\nZotac GeForce GTX 1050 Ti|118\nGeForce GTX 965M|117\nQuadro M600M|117\nGeForce GTX 780M by Nick[D]vB|117\nGeForce GTX 460 SE|117\nGeForce GTX 555|116\nGeForce GTX 670M|116\nQuadro K3000M|116\nGeForce GTX 780 Ti OpenGL Engine|116\nQuadro K4000M|115\nGeForce GTX 860M|115\nAsus GeForce GTX 660|115\nTesla C2075|114\nGeForce GTX 675MX Mac Edition|114\nZotac GeForce GTX 770|114\nGigabyte GeForce GTX 750 Ti|114\nGeForce MX330|114\nGeForce GT 1030|113\nGeForce GTX TITAN OpenGL Engine|113\nGeForce GTX 590|113\nQuadro K620|113\nGeForce GTX 780M|112\nGeForce GTX 560 Ti|112\nQuadro 6000|112\nEVGA GeForce GTX 560 Ti|112\nAsus GeForce GTX 960|112\nQuadro K5000|112\nPoint of View GeForce GTX 470|111\nPNY GeForce GTX 580|111\nGeForce GTX 770M|111\nGeForce GT 120|111\nMSi GeForce GTX 660|111\nGigabyte GeForce GTX 560|111\nGeForce GTX 680MX|110\nGeForce 945M|110\nGeForce GTX 765M|110\nGeForce GTX 950 OpenGL Engine|110\nGeForce Pre-Release Tesla C2075 OpenGL Engine|109\nGeForce GTX 550 Ti|109\nGeForce GTX 765M|108\nPNY GeForce GTX 750|108\nGeForce GTX 560 Ti 448 Cores|108\nQuadro P500|108\nGeForce GTX 670MX|108\nGeForce GTX 680MX|107\nGeForce GTX 460 SE|107\nGeForce GTX 675MX Mac Edition|107\nGeForce GTX 770M OpenGL Engine|107\nGeForce 945M|107\nGeForce GTX 675MX|107\nPNY GeForce GTX 570 HD|106\nGeForce GTX 745|106\nGeForce MX230|106\nGeForce GTX 670MX|106\nGeForce 845M|106\nQuadro K3100M OpenGL Engine|105\nQuadro P2000|105\nGeForce MX570 A|105\nGeForce GTX 750 Ti|104\nGeForce GTX 660 OEM|104\nQuadro M600M|104\nGeForce GTX 750|104\nGeForce GTX 645|104\nGP108|104\nQuadro P520|104\nZotac GeForce GTX 460|103\nChip Model|103\nGeForce GTX 670M|103\nQuadro T1000|103\nGeForce GTX 670M|103\nGeForce GTX 650|103\nZotac GeForce GTX 750|102\nGeForce GTX 460 OpenGL Engine|102\nGeForce GTX 860M OpenGL Engine|102\nQuadro 4000|102\nAsus GeForce GTX 480|102\nZotac GeForce GTX 650 Ti|102\nGeForce GT 755M|101\nGF100 Board - 10220000|101\nGeForce GTX 470M|101\nGeForce GTX 570 Rev. 2|101\nGeForce GTX 775M by iDopt Mac|101\nGeForce GTX 765M by Nick[D]vB|101\nGeForce GTX 570|101\nGeForce GTX 645|101\nGeForce GTX 550 Ti|100\nGeForce GTX 760M|100\nGeForce GT 1030 OpenGL Engine|100\nGeForce GTX 650|100\nQuadro P400|100\nGeForce GTX 480|99\nEVGA GeForce GTX 650|99\nEVGA GeForce GTX 560|99\nGeForce MX130|99\nGeForce MX130|98\nAsus GeForce GTX 460|98\nElitegroup GeForce GTX 460|98\nTesla V100-SXM2-32GB|98\nGeForce GT 755M|98\nGeForce GTX 760 Ti OpenGL Engine|98\nQuadro P520|97\nGeForce GT 755M Mac Edition|97\nGeForce GTX 1060 5GB|97\nPalit GeForce GTX 650 Ti|97\nMSi GeForce GTX 460|96\nGeForce GTX 650|96\nGigabyte GeForce GTX 580|96\nGigabyte GeForce GTX 460|96\nGeForce GTX 745|96\nEVGA GeForce GTX 550 Ti|96\nGeForce GTX 465|96\nGeForce GTX 460 SE|96\nGeForce GTX 765M|96\nGeForce GT 755M Mac Edition|96\nQuadro M520|95\nQuadro K620|95\nT1000|95\nGeForce GTX 745|95\nQuadro K620|95\nGeForce GT 755M|94\nGeForce GTX 660 Ti OpenGL Engine|94\nQuadro K3000M|94\nQuadro K4000|94\nQuadro K4000 OpenGL Engine|94\nGeForce GTX 560|94\nGeForce GTX 650 Ti OpenGL Engine|94\nZotac GeForce GTX 560|94\nAsus GeForce GTX 560|93\nGeForce GTX 650 Ti|93\nGeForce GPU|92\nGeForce GTX 460|92\nMSi GeForce GTX 650 Ti|92\nGeForce GTX 645|92\nGigabyte GeForce GTX 760|92\nGeForce GTX 660M|92\nGeForce GTS 450|92\nGeForce GTX 765M|92\nQuadro K2000D|92\nQuadro K2000|91\nGeForce GT 740|91\nGeForce GTX 650|91\nGRID M6-0B|91\nHP Quadro K620|91\nGeForce MX130|91\nQuadro K3000M by ST3PHL3|91\nQuadro 4000|90\nGeForce MX230|90\nQuadro K620|90\nQuadro K2100M by Nick[D]vB|90\nQuadro K3000M by nikey22|89\nGeForce GT 650M OpenGL Engine|89\nQuadro 4000|89\nQuadro K3000M|88\nGeForce GTX 660M|88\nQuadro K6000|87\nGeForce GT 755M Mac Edition|87\nPalit GeForce GTX 650|87\nQuadro P500|87\nGeForce GTX 570M|86\nGainward GeForce GTX 460|86\nGeForce GTX 950M|86\nQuadro K2000D|86\nGeForce GTX 650 Ti BOOST|86\nQuadro K2100M|86\nGeForce GTX 470|85\nQuadro K2000|85\nQuadro K2000|85\nGeForce GT 750M Mac Edition|85\nGeForce GTX 745|85\nGRID K220Q|85\nGeForce GTX 750 OpenGL Engine|85\nQuadro 5000M|84\nQuadro P400|84\nGeForce GTS 450|84\nGeForce GT 640 Rev. 2|84\nGeForce GTX 660M Mac Edition|84\nQuadro P400|84\nAsus GeForce GTX 560 SE|84\nPNY GeForce GTX 460|83\nGeForce GT 640 Rev. 2|83\nGeForce GTS 450 Rev. 2|83\nGeForce GTS 450|83\nGeForce GTS 450 Rev. 2|83\nGeForce GTX 645|82\nGeForce GPU|82\nGeForce GTX 560M|82\nQuadro K3000M|82\nQuadro K2100M by nikey22|82\nGigabyte GeForce GTX 750|82\nGeForce GT 740|82\nGeForce GT 750M Mac Edition|82\nGeForce GTX 765M OpenGL Engine|82\nGeForce GTX 645 OpenGL Engine|82\nQuadro K620|81\nGeForce GTX 550 Ti OpenGL Engine|81\nQuadro 4000M|81\nPNY GeForce GTX 550 Ti|81\nGeForce MX110|80\nGeForce GTX 760M|80\nMSi GeForce GTX 745|80\nQuadro K2100M OpenGL Engine|80\nQuadro K2000|80\nQuadro 5000|80\nQuadro K620 OpenGL Engine|80\nMSi GeForce GTX 745|80\nGeForce GT 755M OpenGL Engine|80\nGeForce GTX 660M|79\nGigabyte GeForce GTX 550 Ti|79\nMSi GeForce GTX 650|79\nGeForce GTX 560M|79\nQuadro P400|78\nQuadro K2100M|78\nQuadro K2100M|78\nZotac GeForce GTX 1050 Ti|78\nQuadro 3000M|77\nGeForce 940A|77\nGeForce GTX 460M|77\nGeForce GTX 550 Ti|77\nGeForce GT 545|77\nGeForce GT 650M Mac Edition|77\nGeForce 940MX|76\nGeForce GTX 650 OEM|76\nGeForce GTX 550 Ti|76\nGeForce GT 755M Mac Edition|76\nGeForce GT 740 OpenGL Engine|75\nGainward GeForce GTX 550 Ti|75\nQuadro K1200|75\nGeForce GT 650M Mac Edition|75\nEVGA GeForce GTX 650|75\nGeForce GT 750M Mac Edition|74\nGeForce GTX 745|73\nGeForce GTX 555|73\nGeForce GTX 650|73\nGainward GeForce GTS 450|73\nGeForce GT 650M|73\nGeForce GT 755M Mac Edition|73\nGeForce GTX 460M|72\nGeForce 930A|72\nGeForce 930MX|72\nGeForce 940MX|72\nGeForce MX110|72\nGeForce GT 750M Mac Edition|72\nQuadro 2000|72\nGeForce 845M|71\nQuadro 2000D|71\nGeForce GT 640 Rev. 2|71\nGeForce MX110|71\nGeForce GT 1010|71\nGeForce GT 545|71\nQuadro K1200 OpenGL Engine|71\nGeForce 940MX|71\nGeForce GTX 650 OpenGL Engine|71\nEVGA GeForce GTX 650 Ti BOOST|71\nQuadro K2100M|70\nGeForce GT 1010|70\nQuadro M500M|70\nGeForce GT 650M Mac Edition|70\nGeForce GT 640 OEM|70\nQuadro K2000D|70\nQuadro K2000 OpenGL Engine|70\nGeForce GT 750M Mac Edition|70\nGeForce GT 650M|69\nQuadro K1100M by Nick[D]vB|69\nGeForce GT 650M|69\nGeForce 940M|69\nGeForce GT 650M|69\nQuadro 4000|69\nGeForce GT 650M Mac Edition|69\nGeForce GT 745M|69\nGainward GeForce GTX 560 Ti|68\nGeForce 920MX|68\nQuadro M520|68\nGeForce GT 640|68\nGeForce 840M|68\nGeForce 9800 GTX / 9800 GTX+|68\nGeForce GTX 770M by Nick[D]vB|67\nZotac GeForce GTX 650|67\nAsus GeForce GTX 550 Ti|67\nGeForce GT 750M|67\nQuadro K3100M by nikey22|67\nGeForce GT 750M|67\nGeForce GTX 760 (192-bit) OpenGL Engine|67\nHP Quadro 4000|67\nQuadro K2000|67\nGeForce GTS 450 Rev. 2|67\nGeForce 930MX|67\nGeForce GTX 660M Mac Edition|66\nGeForce GTX 570|66\nGeForce GT 750M|66\nGeForce GT 650M Mac Edition|66\nGeForce GT 650M OpenGL Engine|65\nGeForce GTX 660M OpenGL Engine|65\nGeForce 930M|65\nPalit GeForce GTX 650|65\nGeForce GTX 760M|65\nGeForce GT 650M Mac Edition|65\nGeForce 940M|65\nGeForce GT 750M Mac Edition|64\nGeForce 940M|64\nGeForce GT 740|63\nGeForce 930MX|63\nQuadro 3000M|63\nGeForce GT 730|63\nQuadro K1100M|63\nGeForce GT 750M|63\nGeForce 840M|63\nGeForce GT 640 OEM|63\nGeForce 840M|63\nGeForce GT 640 Rev. 2|62\nGeForce GTS 450|62\nQuadro 2000|62\nGeForce GT 745M|62\nGeForce GT 740|62\nGeForce GT 640|62\nQuadro 2000|62\nGeForce GTX 660M Mac Edition|62\nQuadro K1100M OpenGL Engine|62\nQuadro K2000M|62\nGeForce GTX 680MX OpenGL Engine|61\nEVGA GeForce GT 730|61\nQuadro 2000D|61\nGeForce 840A|61\nMSi GeForce GTX 660 Ti|61\nQuadro K1100M|61\nGeForce GT 645M|61\nGeForce GTX 780M OpenGL Engine|61\nHP GeForce GT 730|61\nQuadro K5000M OpenGL Engine|61\nEVGA GeForce GT 640|61\nGeForce 920MX|60\nQuadro M500M|60\nQuadro K620M|60\nGeForce 930M|60\nGeForce 930A|60\nGeForce GT 640 OEM|60\nGeForce GT 640|60\nQuadro 2000M|60\nGeForce GT 640|60\nGeForce GT 640M Mac Edition|60\nGeForce GT 640M Mac Edition|60\nGeForce GT 640M Mac Edition|59\nGeForce GT 645M|59\nGeForce 930M|59\nGigabyte GeForce GTX 650 Ti|59\nGeForce GT 640 OEM|59\nGeForce 830M|59\nAsus GeForce GT 640|58\nMSI GeForce GTX 1070|58\nGeForce GT 555M|58\nQuadro K2000M|58\nQuadro K1100M|57\nGeForce GT 650M Mac Edition|57\nQuadro K2000M by Nick[D]vB|57\nEVGA GeForce GTX 650 Ti|57\nGeForce GT 640M|56\nGeForce GT 650M Mac Edition|56\nGeForce GT 445M|56\nGeForce 830A|56\nGeForce 9800 GT|56\nAsus GeForce GTS 450|55\nGeForce 830M|55\nGeForce 920MX|55\nQuadro 2000|55\nEVGA GeForce GT 545|54\nQuadro K2000M|54\nGeForce GT 650M Mac Edition|54\nGeForce GTX 280|54\nGeForce GT 640|53\nQuadro FX 2800M|53\nQuadro 3000M OpenGL Engine|53\nGeForce GT 740|53\nnull GeForce 920A|53\nGeForce GT 640M Mac Edition|52\nGeForce GT 635|52\nGraphics Device|52\nGeForce GT 640M|52\nGeForce GTX 660M Mac Edition|52\nQuadro 2000M|52\nQuadro 5010M|52\nGeForce GTS 250|52\nGeForce GT 445M|51\nGeForce GT 640M OpenGL Engine|51\nGeForce GT 640M|50\nEVGA GeForce GT 740|50\nGeForce GT 640M Mac Edition|50\nGeForce 730A|50\nGeForce 920M|49\nHP Quadro 2000|49\nGeForce GT 730M|49\nnull GeForce 920A|49\nGeForce GT 555M|49\nGeForce GT 640M LE|49\nGeForce GT 730M|49\nGeForce GT 730M|48\nGeForce GT 640M Mac Edition|48\nQuadro K2000M OpenGL Engine|48\nGeForce GT 640M LE|48\nGeForce GT 740M|47\nGeForce GTX 460M|47\nGeForce GT 440|47\nGeForce GT 440|46\nGeForce GT 640M Mac Edition|46\nQuadro P400|46\nGeForce GT 730|46\nDell Quadro 2000M|45\nGeForce GT 740M|45\nGeForce GT 740M|45\nGeForce GTS 450 Rev. 2|45\nGeForce 920M|45\nGeForce 920M|45\nGeForce 910M|44\nGeForce GTX 680M|44\nGeForce GT 730|44\nQuadro 2000M|44\nGeForce GT 635|43\nGeForce GT 720 OpenGL Engine|43\nGeForce GT 635|43\nQuadro K5200 OpenGL Engine|43\nZotac GeForce GTX 650|43\nGeForce GT 440|43\nGeForce GT 435M|42\nGeForce GT 735M|42\nGainward GeForce GT 630|42\nQuadro 1000M|42\nGeForce 820M|41\nGeForce GTX 680M OpenGL Engine|41\nMSI GeForce GT 635|41\nGeForce 820A|41\nTesla M10|41\nAsus GeForce GT 440|40\nAsus GeForce GT 630|40\nGeForce GT 820M|40\nGeForce 910M|40\nGeForce GT 820M|40\nGeForce GT 730|40\nGeForce GT 550M|40\nGeForce GT 430|40\nGeForce GT 540M|39\nAsus GeForce GT 720|39\nGeForce GT 630|39\nGeForce GT 530|39\nGeForce GT 635M|39\nGeForce GT 620M/630M/635M/640M LE|39\nNVS 5400M|39\nQuadro K600|39\nQuadro K610M|39\nAsus GeForce GT 730|39\nGeForce GT 630|39\nGeForce GT 440|39\nGeForce GT 630M|38\nGeForce 820M|38\nQuadro K420|38\nQuadro K610M|38\nGeForce GT 625M|38\nQuadro K1000M|38\nNVS 5200M|38\nGRID K1|38\nQuadro K600|38\nQuadro K420|38\nGeForce GT 630|38\nQuadro K600|37\nQuadro 600|37\nHP Quadro 600|37\nQuadro K1000M|37\nQuadro K610M|37\nGRID K180Q|37\nGRID K160Q|37\nGeForce GT 635M|37\nGigabyte GeForce GT 440|37\nGeForce 820M|37\nGeForce GT 530|37\nGeForce GT 540M|37\nGeForce GT 630 OEM|37\nQuadro K610M by Nick[D]vB|37\nNVS 510|37\nGeForce GT 630M|37\nQuadro 1000M|37\nGeForce GT 540M|37\nGeForce GT 530|37\nQuadro K1100M|37\nQuadro K620M|37\nQuadro 1000M|36\nGeForce GT 730|36\nGeForce 820M|36\nGeForce GT 430|36\nGRID K1|36\nGeForce GT 525M|36\nNVS 5200M|36\nNVS 510|36\nZotac GeForce GT 430|36\nQuadro K600|36\nAsus GeForce GT 730|36\nHP Quadro K4000|35\nGeForce GT 755M Mac Edition|35\nGeForce GT 630|35\nNVS 5400M|35\nNVS 5400M|35\nGeForce GT 640 OpenGL Engine|35\nGeForce GT 625M|35\nGeForce GT 630|35\nGeForce GT 430|35\nQuadro K600 OpenGL Engine|35\nQuadro K1000M|35\nZotac GeForce GT 630|35\nGigabyte GeForce GT 630|35\nGRID K140Q vGPU|35\nGeForce GT 710M|35\nGeForce GT 620M|35\nGeForce GT 720M|34\nGeForce 710M|34\nQuadro 1000M,|34\nQuadro K510M|34\nGeForce 9400 GT|34\nQuadro K1000M|34\nGeForce GT 635M|34\nQuadro K420|34\nGRID K180Q|34\nAsus GeForce GT 430|34\nQuadro K4100M|34\nGigabyte GeForce GT 730|34\nGeForce GT 620M|34\nGeForce GT 525M|34\nQuadro K420|34\nDell NVS 5200M|34\nGeForce 710A|34\nGeForce GT 425M|33\nGeForce GT 710B|33\nGeForce GT 525M|33\nQuadro 600|33\nGeForce GT 620M|33\nQuadro K600|33\nQuadro 600|33\nGeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M|33\nMSI GeForce GT 730|33\nGeForce GT 710|33\nGeForce GT 435M|33\nNVS 510|33\nAsus GeForce GT 710|33\nNVS 510|32\nGeForce 710M|32\nGeForce GT 720M|32\nGeForce GT 730A|32\nGeForce GT 710M|32\nGIGABYTE GeForce GTX 660|31\nEVGA GeForce GT 710|31\nGeForce GT 710|31\nGeForce GT 710|31\nGeForce GT 425M|31\nGeForce GT 720|31\nEVGA GeForce GT 710|31\nQuadro K1000M by Nick[D]vB|31\nAsus GeForce GT 710|31\nGeForce GT 720|31\nGeForce GT 420M|30\nGeForce GT 710|30\nnull Graphics Device|30\nGeForce GT 240|30\nGeForce 810M|29\nGeForce GT 720M|29\nGeForce GT 710|29\nQuadro 600|29\nGeForce 810M|29\nGeForce GT 420M|28\nQuadro 410|28\nGeForce GTX 660M|28\nMSI GeForce GT 710|28\nGeForce GT 720|28\nGeForce GT 735M|27\nGeForce GT 720|27\nGeForce GT 720|27\nGeForce GT 630 OpenGL Engine|27\nQuadro 410|27\nGeForce GT 330M|26\nGeForce GT 420M|26\nGeForce GT 430|26\nGeForce 615|25\nGeForce GTX 760A|25\nToshiba GeForce GT 525M|25\nGeForce GT 520MX|25\nGeForce GT 620|25\nGeForce GT 625|25\nGeForce GT 710|24\nQuadro NVS 4200M|24\nGeForce 840A|24\nGeForce 610M|24\nGeForce 800M|24\nGeForce GT 420|24\nGeForce 705M|23\nGeForce GT 705|23\nGeForce 800M|23\nGeForce 610M|23\nGeForce GT 620 OEM|23\nGeForce GT 625|23\nGeForce GT 420|23\nQuadro NVS 4200M|23\nGeForce GT 520M|22\nNVS 4200M|22\nGeForce GT 620 OEM|22\nNVS 5200M|22\nGeForce GT 620 OEM|22\nGeForce GT 620|22\nGeForce GT 705|21\nGeForce GT 620|21\nGeForce GT 630 Rev. 2|21\nQuadro NVS 4200M|21\nGeForce GT 520M|20\nGTX 980M SLI|20\nGeForce GT 620|20\nGeForce GT 520M|20\nGeForce GT 520|19\nGeForce 410M|19\nGeForce 730A|19\nGeForce GT 520|19\nGeForce GT 610|19\nAsus GeForce GT 610|19\nNVS 310|18\nGeForce 410M|18\nNVS 315|18\nGeForce 605|18\nGeForce GT 610|18\nGeForce GT 520|17\nGeForce MX550|17\nNVS 4200M|17\nNVS 315|17\nNVS 310|17\nGeForce 410M|17\nPalit GeForce GTX 660|17\nGeForce 605|17\nNVS 310|17\nGeForce GT 415M|17\nZotac GeForce GT 610|17\nGeForce GTX 675M|17\nGeForce GT 610|16\nQuadro 4000M|16\nPNY GeForce GT 610|16\nGeForce GT 610|16\nGeForce 510|15\nMSi GeForce GT 610|15\nGeForce GT 735M|15\nGeForce GT 520|15\nGeForce 510|15\nGeForce GT 320M|14\nGeForce 9600M GT|14\nGeForce GTX 570M|14\nCorporation D3D12 (NVIDIA GeForce RTX 3080 Ti)|13\nGeForce 510|13\nQuadro FX 1800M|12\nAsus GeForce GT 520|12\nGeForce GT 705|12\nMSi GeForce GT 630|11\nQuadro 3000M|10\nGigabyte GeForce GT 610|10\nPegatron GeForce GT 420|9\nGeForce 210|8\nGeForce 9300 / nForce 730i|7\nNVS 3100M|7\nGeForce 8600 GT|5\nGeForce 8400 GS Rev. 3|4\nGeForce 8400 GS|3\nGeForce 9600 GT|2\nGeForce GT 550M|-1\nGeForce 8600 GTS|-1\nGeForce GT 520MX|-1\nEVGA GeForce GTX 460|-1\nEVGA GeForce GTX 970|-1\nGP106|-1\nGRID P4-2B|-1\nGainward GeForce GTX 650|-1\nGeForce 210|-1\nGeForce 310|-1\nGeForce 310M|-1\nGeForce 315|-1\nGeForce 315M|-1\nGeForce 320M|-1\nGeForce 405|-1\nGeForce 610M|-1\nGeForce 820A|-1\nGeForce 8300 GS|-1\nGeForce 8400 GS|-1\nGeForce 8400 GS Rev. 2|-1\nGeForce 8400 GS Rev. 3|-1\nGeForce 8400M GS|-1\nGeForce 8400M GT|-1\nGeForce 8500 GT|-1\nGeForce 8600 GT|-1\nGeForce 8600M GS|-1\nGeForce 8600M GT|-1\nGeForce 8700M GT|-1\nGeForce 8800 GT|-1\nGeForce 8800 GTS|-1\nGeForce 8800 GTS 512|-1\nGeForce 8800 GTX|-1\nGeForce 8800M GTX|-1\nGeForce 9200M GE|-1\nGeForce 9200M GS|-1\nGeForce 9300 / nForce 730i|-1\nGeForce 9300 GE|-1\nGeForce 9300 GS|-1\nGeForce 9300M GS|-1\nGeForce 9400|-1\nGeForce 9400M|-1\nGeForce 9500 GT|-1\nGeForce 9500M GS|-1\nGeForce 9600 GS|-1\nGeForce 9600 GSO|-1\nGeForce 9600 GSO 512|-1\nGeForce 9600 GT|-1\nGeForce 9600M GS|-1\nGeForce 9600M GT|-1\nGeForce 9600M GT / GeForce GT 220M|-1\nGeForce 9800 GT|-1\nGeForce 9800 GTX+|-1\nGeForce 9800 GTX/9800 GTX+|-1\nGeForce 9800M GTS|-1\nGeForce G 103M|-1\nGeForce G 105M|-1\nGeForce G105M|-1\nGeForce G205M|-1\nGeForce G210|-1\nGeForce G210M|-1\nGeForce GT 120|-1\nGeForce GT 120M|-1\nGeForce GT 130|-1\nGeForce GT 130M|-1\nGeForce GT 220|-1\nGeForce GT 220M|-1\nGeForce GT 230|-1\nGeForce GT 230M|-1\nGeForce GT 240|-1\nGeForce GT 240M|-1\nGeForce GT 240M|-1\nGeForce GT 320|-1\nGeForce GT 320M|-1\nGeForce GT 325M|-1\nGeForce GT 330|-1\nGeForce GT 330M|-1\nGeForce GT 335M|-1\nGeForce GT 435M|-1\nGeForce GT 520M|-1\nGeForce GT 525M|-1\nGeForce GT 555M/635M|-1\nGeForce GTS 240|-1\nGeForce GTS 250|-1\nGeForce GTS 360M|-1\nGeForce GTX 1180|-1\nGeForce GTX 260|-1\nGeForce GTX 260M|-1\nGeForce GTX 275|-1\nGeForce GTX 280|-1\nGeForce GTX 285|-1\nGeForce GTX 295|-1\nGeForce GTX 560 SE|-1\nGeForce GTX 750 v2|-1\nGeForce RTX T10-16|-1\nGeForce RTX T10-8|-1\nGigabyte GeForce GTX 1050 Ti|-1\nION|-1\nMSI GeForce GT 710|-1\nNVS 300|-1\nNVS 3100M|-1\nNVS 4200M|-1\nNVS 5100M|-1\nPalit GTX 680 JetStream|-1\nQuadro FX 1700|-1\nQuadro FX 1700M|-1\nQuadro FX 1800|-1\nQuadro FX 1800M|-1\nQuadro FX 2700M|-1\nQuadro FX 2800M|-1\nQuadro FX 3600M|-1\nQuadro FX 360M|-1\nQuadro FX 370|-1\nQuadro FX 3700|-1\nQuadro FX 3700M|-1\nQuadro FX 380 LP|-1\nQuadro FX 3800|-1\nQuadro FX 3800M|-1\nQuadro FX 4600|-1\nQuadro FX 4800|-1\nQuadro FX 4800|-1\nQuadro FX 5600|-1\nQuadro FX 570M|-1\nQuadro FX 580|-1\nQuadro FX 770M|-1\nQuadro FX 880M|-1\nQuadro K1100M by Nick[D]vB|-1\nQuadro K2000D|-1\nQuadro K2000M|-1\nQuadro K2100M by Nick[D]vB|-1\nQuadro NVS 135M|-1\nQuadro NVS 140M|-1\nQuadro NVS 160M|-1\nQuadro NVS 290|-1\nQuadro NVS 295|-1\nQuadro NVS 4200M|-1\nQuadro P4000 OpenGL Engine|-1\nSony GeForce 410M|-1\nZotac GeForce GTX 780|-1\n";var IP="\nRadeon RX 7900 XT|2202\nRadeon RX 7900 XT|1968\nRX 6800 XT|1957\nRadeon RX 6900 XT (XTXH)|1930\nRadeon RX 6900XT|1925\nRadeon PRO W6900X|1889\nRX 6900 XT|1852\nRadeon RX 6900|1814\nRadeon RX 7900 XTX|1773\nRX6800|1695\nFreddyVGA|1603\nRadeon PRO W6800|1564\nRadeon RX 7900 XTX|1437\nRadeon RX 6950 XT|1376\nRadeon RX 6800 XT|1358\nRadeon RX 6750 XT|1310\nRadeon(TM) RX 6850M XT|1294\nRadeon RX 6700|1285\nRadeon RX 6900 XT|1269\nSapphire Nitro+ RX 6800|1262\nRadeon PRO W6800X|1255\nRadeon PRO W6800X Duo|1218\nRadeon RX 6700|1214\nRadeon RX 6800 XT|1183\nSapphire Nitro Radeon RX6650XT|1180\nRadeon(TM) RX 6750 XT|1166\nRadeon RX 6800|1163\nRadeon RX 6900 XT|1162\nASRock RX 6650 XT Phantom Gaming|1161\nRadeon Navi23|1139\nRadeon RX 6650 XT|1132\nRadeon RX 6950 XT|1130\nRadeon 6800|1121\nRadeon RX 6700 XT|1110\nRadeon Pro W6600X|1101\nRadeon RX 6700M|1081\nRadeon RX 6800M|1078\nRadeon RX 5700 XT PJM|1060\nRadeon RX 6800|1054\nRadeon RX 6600 XT|1037\nRadeon RX 6600 XT|1031\nASUS RX 6600XT macOS Edition|1021\nRadeon RX 6800M|1016\nRadeon Pro Vega II Duo|1015\nRadeon RX 5700 Series|961\nRadeon RX 6800/6800 XT / 6900 XT|961\nRadeon RX 6600 XT|958\nRadeon Pro Vega II|956\nRadeon RX 6650 XT|951\nNavi 10 5700 XT|947\nRadeon Pro Vega II|947\nRadeon RX 5700 Series|946\nRadeon Pro W5700X|934\nRadeon RX 6600|929\nASUS Radeon RX 5700 XT|926\nRadeon Pro W5700X|917\nRadeon Pro 5700 XT|917\nRadeon RX 6900 XT|915\nRadeon RX 5700 XT|911\nRadeon Pro W5700|895\nRadeon RX 6600/6600 XT/6600M|889\nRadeon RX 6750 XT|883\nRadeon RX 6600|874\nRadeon RX 5700|855\nRadeon RX 5700 XT 50th Anniversary|854\nRadeon VII|851\nRadeon RX 5700 XT 50th Anniversary|845\nRadeon PRO W6800|837\nRadeon Pro Vega 64|824\nRadeon Navi10|822\nRadeon RX 5600 XT|816\nRadeon RX 6600M|803\nRadeon RX 6800S|791\nRadeon Pro 5700 XT|781\nRadeon RX Vega 64 8GB|775\nRadeon Pro 5700|768\nRadeon Vega Frontier Edition|767\nRadeon RX Vega|766\nRadeon RX Vega 56/64|765\nRadeon(TM) RX Vega|756\nRadeon Pro Vega 64X|745\nRadeon RX 5600 XT|744\nRadeon PRO W6600|744\nRadeon Vega 64 LC|735\nRadeon RX Vega 64.1|732\nRadeon RX 6600M|728\nRadeon Pro 5700|714\nRadeon Vega Frontier Edition|707\nRadeon Vega Frontier|704\nRadeon Vega FE|701\nRadeon RX 5700 XT|691\nRadeon Pro Vega 64|673\nRadeon Vega 64|667\nRadeon VII|663\nRadeon Pro WX9100|656\nSapphire Radeon RX Vega 64 8GB|654\nRadeon(TM) PRO W6600M|654\nRadeon RX 5700 XT 50th Anniversary|652\nRadeon RX 5700|640\nRadeon Pro W5700|640\nRadeon(TM) Pro WX 9100|635\nRadeon RX Vega 56|628\nRadeon RX Vega 56|623\nRadeon Pro 5500 XT|622\nRadeon RX 5600 OEM/5600 XT / 5700/5700 XT|621\nRadeon RX 5500|618\nRadeon RX 5500 XT|617\nRadeon Vega Frontier Edition|617\nRadeon RX 5500M Series|613\nRX xxx|613\nRadeon Pro Vega 64X|611\nRadeon RX Vega 64|610\nRadeon RX 5600 XT|610\nRadeon Pro Vega 64|605\nRadeon RX 6500 XT|603\nRadeon Vega|602\nRadeon Pro W5500|601\nRadeon RX 5600M|600\nRadeon Pro Vega 56|598\nRadeon Pro Vega 64|594\nRadeon Pro 5600M|593\nRadeon Pro Vega 48|592\nRadeon Pro Vega II Duo|590\nRadeon RX 590 Series|589\nRadeon RX Vega 56 8GB|589\nRadeon Pro 5600M|589\nRadeon Pro WX 9100|588\nRadeon Pro 5300|584\nRadeon(TM) R9 Fury Series|579\nRadeon RX 6800 XT 16GB|567\nRadeon Pro 5600M|567\nRadeon Pro W5500X|564\nRadeon(TM) RX 5500M|559\nRadeon HD 7870|556\nRadeon Pro W5500|554\nRadeon RX 5500M|550\nRadeon R9 290X Series|549\n66AF:F0|548\nRadeon Pro 5500 XT|547\nRadeon RX 580 Series|547\nRadeon RX 5500XT|547\nRadeon(TM) RX 580X|546\nRadeon Pro 5500 XT|545\nRadeon(TM) Pro W5500M|544\nRadeon Pro W5500X|544\nRadeon Pro W5500|541\nRadeonT RX 5300|537\nRadeon(TM) RX 570 Graphics|524\nRadeon Pro 5300|522\nRadeon(TM) RX 6500M|521\nRadeon RX Vega M GL|520\nASUS Radeon RX 570 Series|519\nASUS Radeon RX 580 Series|518\nRadeon(TM) RX 580|518\nRadeon(TM) Pro V7350x2|518\nRadeon(TM) RX 480 Graphics|516\nRadeon(TM) RX 570 Graphics|515\nRadeon RX 6400|513\nRadeon Pro 580X|513\nRadeon(TM) R9 390 Series|503\nRadeon Pro 5300|500\nRadeon RX 580 2048SP|500\nRadeon PRO W6400|500\nRadeon RX 570 Series|499\nRadeon PRO W6800X Duo|497\nRadeon Pro 580|494\nRadeon RX 5500 XT|493\nRadeon RX 6400|487\nRadeon Pro 580|485\nRadeon(TM) Pro WX 7100 Graphics|485\nRadeon(TM) R9 290X|478\nSapphire Radeon RX 580 Pulse|477\nRadeon RX 6700/6700 XT / 6800M|476\nRadeon(TM) RX 580|475\nRadeon RX 6700S|475\nRadeon R9 290X|470\nRadeon(TM) RX 470 Graphics|469\nRadeon R9 FURY / NANO Series|468\nRadeon Embedded E9560|467\nKamen Rider Black RX|466\nRadeon(TM) E9550|464\nRadeon(TM) RX 580 Graphics|463\nRadeon RX Vega 56/64|463\nRadeon(TM) RX 480|462\nRadeon RX 6800 XT|462\nRadeon RX 470 Series|461\nRadeon RX480|456\n66AF:F1|455\nRadeon Pro 480/575|455\nRadeon Embedded E9560|450\nRadeon FURY|450\nRadeon RX 5600 OEM/5600 XT / 5700/5700 XT|447\nRadeon RX 6600 XT|446\nRadeon HD 6800 Series|445\nRadeon Pro 570X|444\nRadeon(TM) RX 470 Graphics|443\nRadeon Pro 575X|443\nRadeon RX 470/480/570/570X/580/580X/590|443\nRadeon RX 6600|443\nRadeon RX Vega M GH Graphics|441\nRX 580|440\nRadeon RX 570|440\nRadeon Pro 570|440\nRadeon RX 590|437\nRadeon(TM) RX 470 Series|435\nRadeon RX 6900 XT|435\nRadeon FURY X|434\nRX 590|431\nRadeon Pro 5500M|430\n???|430\nRadeon(TM) RX 570|430\nRadeon RX 580|429\nRadeon HD 8xxx|426\nRadeon R9 290|425\nRadeon Pro 5500M|420\nRadeon Pro 580X|420\nRadeon RX 6700 XT|420\nRadeon RX 480|419\nRadeon R9 290/390|418\nRadeon Pro 580X|416\nRadeon(TM) Pro Duo|414\nEllesmere Radeon RX 570|411\nRadeon R9-290X|411\nRadeon Pro 580|411\nRadeon R9 200 Series|406\nRadeon RX 570|406\nRadeon Pro 470/570|404\nRadeon RX 6800M|404\nRadeon RX 5300M|400\nRadeon RX 580 Series (POLARIS10, DRM 3.40.0, 5.11.9-141-tkg-pds, LLVM 11.1.0)|399\nRadeon Pro 5300M|399\nRadeon R9 285|398\nRadeon RX 470|393\nRadeon Pro 575|392\nRadeon Pro 575X|391\nRadeon Pro WX 7100|387\nRadeon RX 6700M|386\nRadeon RX 470/480/570/570X/580/580X/590|382\nRadeon PRO W6600|376\nRadeon Polaris|374\nRadeon RX 6500 XT|374\nRadeon Pro Vega 20|371\nRadeon HD 7970|370\nRadeon Pro Vega 16|370\nRadeon RX 6800|369\nRadeon Pro Vega 64 OpenGL Engine|369\nRadeon(TM) R9 380 Series|367\nRadeon RX 5700XT|366\nFirePro W8100|366\nRadeon Pro Vega 64|365\nRadeon Pro 570|365\nRadeon Pro 570X|363\nRadeon Pro Vega 64 OpenGL Engine|362\nRadeon R9 280x|362\nRadeon R9 380|362\nRadeon R9 280x|361\nRadeon R9 280x|360\nRadeon Pro Vega 56|360\nR9 280X Dual-X|359\nRadeon Pro Vega 56 OpenGL Engine|356\nRadeon HD 7970|355\nRadeon HD 7970X/8970/R9 280X|354\nRadeon R9 285|353\nRadeon R9 380X|352\nRadeon RX 480|352\nRadeon RX 5700 XT Series|350\nASUS Radeon RX 470 Series|350\nRadeon Pro Vega 64|349\nRadeon R9 200 / HD 7900 Series|346\nASUS Radeon RX 470 Series|346\nRadeon Vega 56|346\nRadeon RX 580 Series (AMD POLARIS10 / DRM 3.15.0 / 4.12.0-1-amd64, LLVM 4.0.1)|343\nRadeon Pro Vega 20|343\nR9 380|341\nRadeon HD 7970|338\nRadeon RX 5700 XT|336\nRadeon D700|336\nAsus Radeon R9 280|334\nRadeon R9 285|334\nRadeon R9 M395X|332\nRadeon RX 5600 XT|332\nPowerColor Radeon R9 280|330\nRadeon R9 280|329\nFirePro W7100 Graphics Adapter|328\nRadeon R9 M295X Mac Edition|327\nASUS Radeon RX 5700|327\nRadeon R9 380|326\nRadeon Pro Vega 16|325\nRadeon R9 290X|325\nRadeon RX5600|324\nASUS Radeon RX 5500 XT|323\nRadeon R9 280|323\nRadeon HD 7950/8950 / R9 280|321\nRadeon R9 M395|319\nRadeon RX 6800/6800 XT / 6900 XT|318\nFirePro D700 (FireGL V)|318\nRadeon RX 5500/5500M / Pro 5500M|318\nMSI Radeon RX 6600 XT Gaming X|318\nFirePro W8000|315\nRadeon HD 7950|315\nRadeon Pro W5700|315\nFirePro W7170M|314\nRadeon PRO W6800|314\nRadeon RX 5500|313\nRadeon RX 580 Special Edition|312\nRadeonT RX 5500M|311\nRadeon R9 M395 (Bootcamp XG edition by bootcampdrivers.com)|311\nRadeon R9 360|309\nRadeon Pro WX 7100|307\nRadeon Pro WX 7100 Mobile|307\nRadeon RX 5700 XT 50th Anniversary|307\nR9 xxx|303\nRadeon RX 5700XT|302\nRadeon PRO W6400|301\nRadeon(TM) R9 370 Series|301\nRadeon RX 470/480/570/570X/580/580X/590|300\nRadeon(TM) PRO W6600M|298\nRadeon HD 8950|298\nRadeon R9 M395X|297\nRadeon R9 M395X|296\nRX Vega 64|296\nRadeon RX Vega 11 Graphics|295\nRadeon Pro 270X|294\nRadeon RX 580 2048SP|290\nRadeon HD 7950|290\nVideo Controller (VGA Compatible)|290\nRadeon(TM) R7 370 Series Graphics|290\nRadeon HD 7950|290\nAsus Radeon R9 270X|289\nRadeon RX 580X Series|288\nRadeon(TM) RX 5500M|285\nRadeon R9 270X|285\nRX xxx|285\nASUS R7 265 Series|281\nRadeon(TM) R9 270|280\n731F:C1|280\nRadeon R9 M395X|279\nRadeon(TM) R7 370 Series|279\nRadeon Pro V520 MxGPU|278\nRadeon R9 M395|277\nFirePro D700|277\nRadeon R9 270X|277\nRadeon(TM) R9 200 Series|276\nRadeon RX 5700|275\nRadeong 0.4 on AMD POLARIS10 (DRM 3.8.0 / 4.9.11-1-ARCH, LLVM 3.9.1)|274\nRadeon HD 7870 XT|274\nRadeon R9 390X|272\nRadeon(TM) RX 570 Graphics|272\nRadeon HD 7870 GHz Edition|271\nRadeon R9 390|270\nFirePro D700|269\nRadeon R9 M395|268\nRadeon R9 270|268\nRadeon RX 5700 / 5700 XT|267\nASUS R7 370 Series|267\nFirePro W7000|266\nRadeon(TM) Pro V7350x2|266\nRadeon(TM) RX 470 Series|266\nRadeon RX Vega 64 OpenGL Engine|266\nRadeon RX 5500M|265\nRadeon HD 7950/8950 OEM / R9 280|265\nRadeon Vega Frontier Edition OpenGL Engine|265\nRadeon 7950 x2|263\nRadeon R9 270|263\nRadeon VII|263\nRadeon HD 7xxx|262\nVideo Controller (VGA Compatible)|262\nRadeon(TM) RX 570|261\nRadeon RX 5500 XT|261\nRadeon R9 M295X|261\nFirePro W7000 (FireGL V) Graphics Adapter|260\nRadeon R9 M390|260\nRadeon HD 7870 GHz Edition|260\nRadeon R9 M390 (Bootcamp edition by bootcampdrivers.com)|260\nRadeon R9 370|259\nMetal|259\nRadeon HD 7870|259\nRadeon RX 470/570|258\nRadeon(TM) R9 370|257\nRadeon(TM) RX 460|257\nRadeon RX 560 Series|256\nRadeon R9 290|255\nRadeon(TM) RX 560 Series|255\nRadeon RX 5300M|254\nFirePro W7000|254\nRadeon R9 290X|253\n67EF:E7|253\nRadeon HD 7850|253\nRadeon(TM) RX 460 Graphics|253\nMSI Radeon RX 580|251\nRadeon R9 290/390|250\nFirePro W8100 (FireGL V)|249\nRadeon Pro WX 9100 OpenGL Engine|248\nRadeon(TM) RX 560|247\nRadeon(TM) RX 560 Series|247\nRadeon Pro Vega II Duo|247\nRadeon HD 7970M|246\nRadeon R9 290|245\nRadeon RX 5600M|245\nFirePro D300|245\nRadeon(TM) RX 5600M Series|244\nRadeon RX 590 Series|244\nRadeon R7 370 Series|244\nRadeon(TM) RX 560|243\nFirePro D300|243\nRadeon R9 390|243\nRadeon RX 470/480/570/570X/580/580X|243\nFirePro D300|243\nRadeon(TM) R7 370 Series|242\nRadeon R9 M390|241\nRadeon RX 560X Series|241\nFirePro D300|241\nRadeon RX 560|240\nRadeon R9 M290X|240\nGigabyte Vega 64 macOS Edition|239\nRadeon Pro 580|238\nRadeon Pro WX 4100|236\nRadeon Pro WX 7100 OpenGL Engine|236\nRadeon HD - FirePro D300|235\nFirePro D500|234\nRadeon Pro 580 OpenGL Engine|234\nRadeon(TM) E9260|234\nRadeon Pro WX 2100|233\nFirePro D500|232\nFirePro D500|232\nRadeon(TM) RX 6500 XT|232\nRadeon Pro 580X|231\nRadeon HD 7850|231\nRadeon Pro 575|231\nRadeon Pro Vega 64X|231\nASUS R9 270 Series|230\nRadeon Pro 450|230\nRadeon(TM) RX 560 Graphics|230\nRadeon R9 M290|229\nRadeon Pro 560X|228\nRadeon Pro 480/575|228\nPitcairn PRO Radeon HD 7850|228\nASUS Radeon RX 5700 XT|227\nRadeon HD 7870|227\nRadeon(TM) Pro WX 5100 Graphics|226\nRadeon R9 370X|225\nRadeon(TM) RX 480|224\nRadeon HD7970M|224\nFirePro S9000 (FireGL V)|223\nRadeon RX 550 640SP / RX 560/560X|222\nMSI / AMD RX 560 4G|222\nRadeon RX 570 OpenGL Engine|222\nMSI RX650|222\nRX 480|221\nMSI / AMD RX 560|221\nBaffin AMD Radeon RX 560|221\nMSI Baffin RX650|220\nRadeon Pro 5700 XT|220\nRadeon Pro 570|220\nRadeon Pro 575 OpenGL Engine|219\nAsus Radeon R9 270X|219\nRadeon RX RX 560|218\nRadeon RX 560 [Baffin]|218\nRX 460|218\nRadeon R9 370X|218\nRadeon(TM) Pro WX 4100|217\nASUS R9 390 Series|217\nRadeon Pro 5600M|217\nR9 xxx|217\nRadeon HD 7870 Series|217\nRadeon Pro RX 560|216\nR9 280X Dual-X|215\nRadeon Pro 570 OpenGL Engine|214\nRX 560|213\nRadeon Pro WX 5100|213\nFirePro D700|213\nRadeon(TM) R9 390 Series|213\nRadeon RX 480|212\nRadeon RX 560|212\nRadeon RX 5500/5500M / Pro 5500M|212\nRadeon RX 550 640SP / RX 560/560X|211\nRadeon R9 FURY / NANO Series|211\nSapphire Radeon RX 560|211\nRadeon RX 460|210\nRadeon RX550/550 Series|210\ninc. Radeon RX 480|209\nRadeon(TM) RX 550|208\nRadeon R9 M290X|206\nRadeon Pro 560 (Bootcamp XG edition by bootcampdrivers.com)|206\nRadeon RX460|206\nRadeon RX 550 Series|205\nCustom GPU 0405|204\nRadeon(TM) RX 460|204\nASUS AMD Radeon R9-990X|204\nRadeon Pro 555X|203\nRadeon RX 460/560|203\nRadeon HD 7970X/8970/R9 280X|202\nASUS Radeon RX 550 Series|201\nRadeon HD 8950|201\nFirePro D500 (FireGL V)|201\nRX 5700XT|200\nRadeon 550 Series|200\nRadeon HD 8470 + 7660D Dual Graphics|200\nRadeon HD 7990|200\nRadeon RX 560X|199\nRadeon RX Vega|199\nRadeon HD 7950 Series|198\nRadeon(TM) RX 540|197\nRadeon HD 6970|197\nRadeon HD 7970/8970 / R9 280X|197\nRadeon Navi14|197\nRadeon Pro 560|197\nRadeon RX 550|197\nRadeon R9 285|196\nRadeon Pro W5500|195\nRadeon Pro Vega 56|195\nRadeon Pro 460|195\nRadeon RX 470/480|194\nRadeon PRO Graphics|194\nRadeon(TM) RX550|194\nRadeon Pro 560X|193\nRadeon Pro 570X|192\n66AF:F1|192\nRadeon RX Vega M GH|190\nRadeon R9 M280X|190\nRadeon RX 460/560D / Pro 450/455/460/555/555X/560/560X|189\nRadeon R9 280,|188\nCustom GPU 0405|188\nRadeon HD 7790|187\nRadeon(TM) RX 480 Graphics|187\nRadeon Pro 455|186\nRadeon R9 260|186\nRadeon RX 580 Series|186\nRadeon HD 7950/8950 OEM / R9 280|186\nRadeon R9 290X|185\nRadeon R9 M290X|184\nRadeon(TM) R9 370 Series|184\nRadeon Pro 555|184\nRadeon R7 260X|184\nRadeon HD 6950|183\nFirePro W5000|183\nRadeon(TM) R9 390X|182\nR9 270X Devil|182\nRadeon(TM) RX 470 Graphics (AMD POLARIS10 / DRM 3.23.0 / 4.15.0-1-MANJARO, LLVM 5.0.0)|182\nRadeon R9 380|182\nRadeon(TM) Pro WX 9100|182\nRadeon(TM) R7 360 Series|181\nRadeon RX 570 Series|181\nRadeon(TM) R9 M470X|181\nRadeon(TM) R7 360 Series|181\nRadeon RX480|180\nRadeon R7 200 Series|180\nRadeon Pro WX 4150|180\nRadeon Pro WX 4100|179\nRadeon HD 8xxx|179\nASUS R9 295X2 Series|179\nRadeon R9 390X|178\nRadeon HD 5870|176\nRadeon Pro 560|176\nRadeon RX 580 OpenGL Engine|175\nRadeon HD 8950|175\nFirePro V(FireGL V) Graphics Adapter|175\nASUS Radeon RX 580 Series|174\nRadeon Pro WX 4100|174\nRadeon Pro 460|173\nRadeon HD 2600 XT|173\nRadeon Pro WX 4100|172\nRadeon HD 8280|172\nRadeon Pro 575|171\nRadeon Pro 555X|171\nRadeon Pro WX 4130/4150|170\nRadeon RX Vega M GH Graphics|170\nFirePro W5100|170\nRadeon(TM) PRO WX 8200|169\nRadeon Vega Frontier Edition|169\nRadeon Pro 555X|168\nFirePro D700|168\nRadeon HD 6990|167\nRadeon RX 470 OpenGL Engine|167\nRadeon HD 7870 XT|167\nRadeon RX 580|167\nRadeon Polaris|167\nFirePro V8800 (FireGL V)|166\nRadeon RX 550|165\nRadeon HD 6900 Series|165\nFirePro W9100 (FireGL V)|164\nRX 580|163\nRadeon(TM) RX 580X|163\nRadeon RX 550|163\nRadeon HD 6870|163\nRadeon R9 M395X OpenGL Engine|163\nRadeon(TM) R9 360|163\nRadeon(TM) HD 8490|162\nRadeon R9 M295X|162\nRadeon HD 7970M|162\nRadeon R9 M380|161\nFirePro W5100 (FireGL V) Graphics Adapter|161\nASUS HD7850 Series|161\nFirePro M6100 FireGL V|161\nRadeon Pro 455|160\nRadeon RX 460/560D / Pro 450/455/460/555/555X/560/560X|160\nRadeon R9 M395X|159\nRadeon RX 560X|159\nRadeon Pro 555|158\nRadeonT RX 560X|158\nRadeon Pro Vega 48|158\nASUS Radeon RX Vega|158\nRadeon Pro WX 9100|158\nRadeon Pro Vega 64|157\nPowered By QiongB A9999999999|157\nRadeon(TM) Pro Duo|157\nFirePro D700|157\nRadeon Pro WX 7100|156\nRadeon RX 460|156\nRadeon HD - FirePro D700 OpenGL Engine|156\nRadeon R9 M290X|156\nRadeon R9 M395 OpenGL Engine|155\nRadeon Pro SSG|155\nFirePro D300|155\nASUS R9 380 Series|155\nRadeon(TM) R9 Series|153\nRadeon RX 470/480/570/580|153\nFirePro W8000|153\nCezanne|153\nRadeon(TM) Graphics|153\nFirePro D300|153\nRadeon(TM) R9 Fury Series|153\nRadeon R9 M395|152\nRadeon RX 570|152\nRadeon R9 270X Series|152\nRadeon Pro 5300M|152\nR9 xxx|152\nRadeon Pro 555|152\nFirePro D500|151\nRadeon HD 5850|151\nFirePro D300|150\nRadeon(TM) R9 290X|150\n66AF:F0|149\nRadeon(TM) RX 560|149\nRadeon R9 M290|148\nRadeon Instinct MI25 MxGPU|148\nFirePro V7800 (FireGL) Graphics Adapter|148\nRadeon(TM) R9 M470|147\nAdvanced Micro Devices, Inc. [AMD/ATI] Fiji [Radeon R9 FURY / NANO Series]|147\nRadeon HD 5870 Series|147\nRadeon(TM) E9550|147\nRadeon HD 7850|147\nRadeon HD 7770|147\nRadeon Pro Vega 20|146\nRadeon R9 290/390|146\nRadeon Pro 450|146\nRadeon RX 560X Series|146\nRadeon HD 6850|146\nRadeon R9 270 1024SP|145\nASUS R9 280X Series|145\nRadeon Pro 450|145\nRadeon(TM) R9 390 Series|145\nFirePro V7900 (FireGL V)|145\nRadeon R9 370X|145\nRadeon(TM) RX 560 Series|144\nASUS R7 250X|144\nRadeon RX 480 OpenGL Engine|144\nRadeon R9 290X|144\nRadeon RX 550X|144\nRadeon(TM) RX 580|144\nASUS Radeon(TM) RX 470 Series|143\nBaffin Radeon RX 560|143\nRadeon R9 M295X (Bootcamp edition by bootcampdrivers.com)|143\nRadeon R9 M295X Mac Edition|143\nRadeon R7 Series / HD 9000 Series|142\nAdvanced Micro Devices [AMD] nee ATI Device|142\nRadeon(TM) Pro WX 7100 Graphics|142\nRadeon RX 640|142\nFirePro D500|141\nRadeon HD 7900 Series|141\nRadeon R9 290|141\nRadeon R7 250X|141\nRadeon(TM) RX Vega|140\nRadeon 630 Series|140\nFirePro W8100 Graphic Adapter|140\nRadeon R9 FURY / NANO Series|140\nRadeon R9 M390|140\nRadeon Pro WX 3100|140\nRadeon R9 290|140\nRadeon(TM) R9 370|140\nFirePro V7900|139\nRadeon HD 7970|139\nRadeon HD - FirePro D500 OpenGL Engine|139\nRadeon HD - FirePro D300 OpenGL Engine|139\nRadeon Pro 580|139\nRadeon HD 7770|139\nRadeon HD - FirePro D500 OpenGL Engine|139\nRadeon 540/540X/550/550X / RX 540X/550/550X|138\nFirePro S9050|138\nRadeon(TM) RX 480 Graphics|138\nRadeon(TM) R9 M390X|137\nRadeon Vega 64|137\nRadeon(TM) Graphics|137\nTonga PRO GL [FirePro W7100]|136\nHD7950 Martin Ver.|136\nRadeon HD 7990|135\nRadeon R9 280x|135\nRadeon RX550/550 Series|135\nHD7950 MARTIN REV.|134\nRadeon RX560|134\nRadeon R7 250X Series|134\nRadeon R9 M390 OpenGL Engine|134\nASUS R7 250X|134\nRadeon HD6870|134\nRadeon R9 270X|134\nRadeon Pro 5500 XT|134\nRadeon(TM) RX 480|133\nRadeon R9 270|133\nASUS HD7970 Series|133\nRadeon RX 540|133\nRadeon 500 Series|132\nRadeon HD 5970|132\nRadeon HD 7770 GHz Edition|132\nRadeon HD 5870|132\nRadeon 540X Series|132\nRadeon HD 6870 Series|132\nRadeon(TM) RX 470 Graphics|132\nRadeon HD - FirePro D300 OpenGL Engine|132\nRadeon HD 7xxx|131\nRadeon HD 5970|131\nRadeonT 540X|131\nRadeon R7 Graphics + R7 350 Dual Graphics|131\nRadeon R9 M295X Mac Edition / R9 380X|131\nFirepro M5100|131\nRadeon(TM) R9 M375X|131\nRadeon R9 280x|130\nRadeon(TM) RX 560X|130\nRadeon HD 6990|130\nRadeon Pro 5500M|130\nRadeon Pro WX 5100 OpenGL Engine|129\nRadeon R9 M395X (Bootcamp edition by bootcampdrivers.com)|129\nRadeon R9 M380|128\nFirePro W5170M|128\nRadeon R9 280|128\nFirePro W5000 (FireGL V)|128\nRadeon(TM) RX 5600M Series|128\nRadeon RX 560D|128\nFirePro D500 (FireGL V)|128\nRadeon(TM) Pro WX 5100 Graphics|128\nRadeon(TM) RX Vega 11 Graphics|128\nRadeon HD 7970|127\nRadeon R9 370|127\nRadeon HD 7770|127\nRadeon R9 M395X|126\nRadeon HD 7660D|126\nRadeon HD 8970|126\nRadeon R9 200 Series|126\nRadeon Pro WX 3200 Series|126\nRadeon HD 7800 Series|125\nRadeon R9 285/380|125\nRadeon R9 270X|124\nFirePro W2100|124\nFirePro W7170M|124\nRadeon HD 7870 GHz Edition|123\nRadeong 0.4 on AMD TONGA (DRM 3.1.0, LLVM 3.9.0)|123\nRadeon RX 460|123\nRadeon HD 5970 Series|123\nRadeon R9 M380|122\nRadeon R9 M395|122\nAsus Radeon R9 280|122\nRadeon HD 6850 Series|122\nRadeon(TM) RX 540|122\nRadeon HD 6900 Series|122\nDevice|122\n67DF:C4|121\nRadeon HD 6950|121\nFirePro D300 (FireGL V)|121\nRadeon RX 570|121\nRadeon HD 5850 Series|121\nRadeon HD 7870 XT|121\nRadeon HD 7950|121\nFirePro V7800 (FireGL) Graphics Adapter|121\nRadeon HD 6850|121\nRadeon HD 7950|120\nRadeon HD 7870 GHz Edition|120\nRadeon R7 370 / R9 270X/370X|120\nRadeon HD 6870|120\nRadeon Pro V340|120\nASUS Radeon RX 570 Series|119\nRadeon(TM) R7 370 Series Graphics|119\nRadeon(TM) RX 580 Graphics|119\nRadeon(TM) RX 470 Graphics|119\nRadeon HD 5870|119\nRadeon HD 7950/8950 / R9 280|119\nRadeon HD 6790|119\nRadeon(TM) RX580|119\nASUS ARES2|119\nRadeon(TM) R9 380 Series|118\nRadeon HD 7750|118\nRadeon Pro 560X|118\nRadeon R7 250E|118\nRadeon 550 Series|118\nRadeon RX 560|118\nRadeon Pro WX 5100|117\nRadeon R7 370 / R9 270X/370|117\nRadeon HD 7800 Series|117\nFirePro W5000 (FireGL V) Graphics Adapter|117\nRadeon HD 7750 Series|116\nRadeon HD 5870|116\nRadeon R7 450|115\nFirePro R5000|115\nRadeon R7 370 Series|115\nFirePro W9100|114\nRadeon R7 370 / R9 270/370|114\nRadeon(TM) 540 Graphics|114\nRadeon HD 6510 Series|114\nRadeon(TM) R7 370 Series|113\nSapphire Radeon HD6870|113\nFirepro M5100|113\nRadeon(TM) RX 550|113\nRadeon(TM) Pro Duo|113\nRadeon 540/540X/550/550X / RX 540X/550/550X|113\nRadeon Pro 570|112\nRadeon R9 280|112\nFirePro D700 (FireGL V)|112\n(ATI) FirePro M6000 (FireGL V) Mobility Pro Graphics|112\nRenoir|112\nRadeon 540X Series (POLARIS12, DRM 3.40.0, 5.10.56-1-MANJARO, LLVM 12.0.1)|112\nRadeon HD 6970|112\nRadeon HD 8770|112\nRadeon Pro WX3200 Graphics|112\nRadeon(TM) R9 270|111\nRadeon R9 270X|111\nRadeon R9 285|111\nRadeon HD 7800M Series|111\nRadeon(TM) R7 370 Series|111\nRadeon HD 7870M Series|111\nRadeon Pro 450/550|110\nRadeon HD 7000 series|110\nRadeon HD 7870|110\nRadeon Pro 555X|110\nRadeon RX590 GME|109\nFirePro S10000|109\nRadeon HD 7870M|109\nRadeon HD 5800 Series|109\nRadeon HD 6970M|108\nASUS HD7770 Series|108\nRadeon(TM) R9 M360|108\nRadeon(TM) RX 550X|107\nRadeon R9 285|107\nRadeon HD 6900M Series|107\nRadeon HD 7870 GHz Edition|107\nFirePro S7000|107\nRadeon R9 M370X|106\nRadeon Pro WX 4100|106\nRadeon HD 6800 Series|106\nRadeon HD 7750|106\nRadeon Pro 455 OpenGL Engine|106\nASUS R7 370 Series|106\nRadeon Pro 560|105\nRadeon HD 6870|105\nFirePro D300 (FireGL V)|105\nRadeon HD 6970M|105\nRadeon HD 7850|105\nRadeon(TM) R9 200 Series|104\nASUS HD7750 Series|104\nRadeon HD 6970M OpenGL Engine|104\nAsus Radeon R7 250|104\nRadeon R7 370 / R9 270X/370|104\nRadeon R9 M395X (Bootcamp XG edition by bootcampdrivers.com)|103\nRadeon(TM) RX 560|103\nRadeon RX Vega|103\nRadeon(TM) Pro W5500M|103\nRadeon R9 270|103\nRadeon Pro 560X|103\nRadeon HD 5850|103\nFirePro S7150|103\nRadeon(TM) RX 580|103\nRadeon(TM) R9 370 Series|103\nASUS Radeon(TM) RX 480 Series|102\nRadeon Graphics Processor|102\nRadeon R9 M370X|102\nFirePro W7100|102\nRadeon R9 M370X|101\nRadeon Pro 460 OpenGL Engine|101\nRadeon RX 580 Series|101\nRadeon 500 Series|100\nRadeon Pro 555|100\nRadeon(TM) Pro WX 4100|100\nAsus Radeon R7 260X|100\nRadeon(TM) RX Vega 10 Graphics|100\nRadeon HD 7790|99\nRadeon Pro 450 OpenGL Engine|99\nRadeon HD 7790/8770 / R7 360 / R9 260/360|99\nFirePro M4000 Mobility Pro Graphics|99\nRadeon HD 7970M|99\nRadeon R9 M270X|99\nRadeon RX 550|98\nRadeon HD 6850|98\nRadeon(TM) RX 460|98\nRadeon(TM) RX Vega11 Graphics|98\nRadeon(TM) RX 460 Graphics|98\nRadeon Pro 460|97\nRadeon HD 7800 Series|97\nMatrox C680 PCIe x16|97\nRadeon(TM) RX 550|97\nRadeon HD 5770|96\nRadeon HD 8670D + 7700 Dual Graphics|96\nRadeon HD 7790|96\nRadeon 630 Series|96\nRadeon RX 560 Series|96\nFirepro M6100|95\nRadeon HD 6700 Series|95\n67EF:E7|95\nRadeon(TM) Vega 10 Graphics|95\nRadeon HD 6900M Series|94\nRadeon Pro 455|94\nFirePro M4000|94\nRadeon R9 260|94\nFirePro W7000|94\nRadeon Instinct MI25|93\nRadeon HD 8870M|93\nRadeon(TM) Vega 11 Graphics|93\nRadeon Pro 450|93\nFirePro W5000|92\nRadeon HD 6770|92\nRadeon(TM) RX560|92\nRadeon(TM) Graphics|91\nASUS Radeon(TM) RX 460 Series|91\nRadeon(TM) Vega 8 Graphics|91\nRadeon(TM) Graphics|91\nFirePro W5100 Graphics Adapter|90\nRadeon(TM) Pro WX Series|90\nRenoir|90\nSTRATO XT (6646)|89\nRadeon(TM) Pro WX 4150 Graphics|89\nRadeon E8870MXM|89\nRadeon HD 8970M|89\nFirePro M6100 FireGL V|89\nRadeon HD 7770|89\nFirePro W5100 (FireGL V) Graphics Adapter|89\nRadeon HD 6970M|89\nRadeon Pro 460|88\nRadeon RX Vega 8 Graphics|88\nRadeon HD 7700 Series|88\nRadeon(TM) R9 M360|88\nASUS R7 265 Series|88\nRadeon RX Vega M GL Graphics|88\nASUS Radeon RX 550 Series|88\nRadeon R7 360 / R9 360|88\nRadeon HD 6950|86\nRadeon HD 6790|86\nRadeon Pro WX 2100|86\nASUS Radeon RX 560 Series|86\nRadeon HD 5750|86\nRadeon(TM) RX 640|86\nRadeon HD 8870M|85\nRadeon R7 260X|85\nRadeon Pro WX 7100|85\nRadeon(TM) R7 360 Series|85\nRadeon Infoshock鈩� RX 460 Graphics|85\nFirePro W5170M|85\nRadeon R9 M295X|85\nFirePro W8100|85\nRadeon HD 6750|85\nFirePro W5170M|85\nFirePro V5800 (FireGL) Graphics Adapter|84\nASUS R7 250X|84\n67E8:00|84\nRadeon(TM) RX 550X|84\nRadeon(TM) R7 350|84\nRadeon(TM) E9260|84\nRadeon Sky 500|84\nRadeon R9 M270X|83\nRadeon(TM) R9 350|83\nRadeon(TM) RX Vega 11 Graphics|83\nFirepro M6100|83\nRadeon R9 360|82\nFirePro V7900|82\nFirePro V5800 (FireGL V)|82\nRadeon HD 8830M|82\nRadeon Pro 450|82\nRadeon HD 8950|82\n6980:00|82\nFirePro W5100 (FireGL V)|81\nRadeon E8870|81\nRadeon HD 7750 Series|81\nRadeon HD 7850 / R7 265 / R9 270 1024SP|81\nFirePro鈩� W4190M|80\nRadeon HD 5770|80\nRadeon(TM) R7 360 Series|80\nFirePro M5100 FireGL V|80\nRadeon RX 470/480/580|80\nRadeon(TM) RX 460 Graphics|79\nRadeon HD 6700 Series|79\nMobility Radeon HD 5870|79\nRadeon R9 255|79\nRadeon 535 Series|79\nRadeon R9 M380 OpenGL Engine|78\nRadeon(TM) RX 550|78\nRadeon R9 M380|78\nRadeon R7 250X|78\nSaphire Radeon RX 580|78\nRadeong 0.4 on AMD BONAIRE (DRM 2.43.0, LLVM 3.8.0)|78\nRadeon HD 5000|78\nRadeon HD 5770|77\nRadeon RX 460|77\nFirePro W4300|77\nRadeon 530 Series|77\nRadeon(TM) 540X|77\nRadeon R9 M370X OpenGL Engine|77\nFirePro V5900 (FireGL V)|77\nRadeon Pro WX 4100|77\nSAPPHIRE HD 5770|77\nRadeon Pro WX 3100|76\nFirePro W5100|76\nRadeon(TM) Pro Graphics|76\nRadeon Pro WX 3100|76\n67FF:C8|76\nRadeon(TM) HD8970M|76\nFirepro M5100|76\nRadeon(TM) R9 M375X|75\nRadeon 550X Series|75\nRadeon R9 M390|75\nRadeon(TM) Vega 9 Graphics|75\nFirePro V5900 (FireGL V) Graphics Adapter|74\nRadeon HD 8570|74\nRadeon(TM) RX 475M|74\nRadeon HD 6770|74\nRadeon RX 550 Series|74\nRadeon RX 550|74\nFirePro M4000|74\nRadeon RX 460/560D / Pro 450/455/460/560|74\nRadeon Pro 560|74\nRadeon Vega Series / Radeon Vega Mobile Series|74\nRadeon Pro 455|74\nRadeon HD 7870M Series|74\nRadeon(TM) R7 430|74\nRadeon 620 Series|73\nRadeon HD 7770 GHz Edition|73\nRadeon HD 7770|73\nRadeon(TM) R9 360 Series|73\nRadeon HD 7770/8760 / R7 250X|73\nRadeon(TM) 530|73\n15DD Graphics|73\nRadeon RX Vega M GL Graphics|73\nRadeon(TM) R9 380|72\nRadeon(TM) 530 series|72\nRadeon R7 200 Series|72\nEmbedded Radeon E9171|72\nRadeon Pro WX3200 Graphics|71\nRadeon HD 8800M Series|71\nRadeon R9 M375|70\nRadeon HD 5770|70\nRadeon Pro 555|70\nRadeon R7 250E|70\nRadeon HD 7750|70\nRadeon Pro 555X|70\nRadeon(TM) Vega 8 Mobile Graphics|70\nRadeon(TM) R9 M380|69\nRadeon R7 260X/360|69\nBarco MXRT 7600 (WDDM)|69\nRadeon(TM) Vega 10 Graphics|69\nRadeon HD 7750|69\nRadeon R9 M370X|69\nRadeon(TM) R2E Graphics|69\nRadeon R9鈩� M370X|68\nFirePro V4900 (FireGL V)|68\nRadeon(TM) RX Vega11 Graphics|68\nRadeon HD 5770|68\nRadeon(TM) Renoir Graphics D1|68\nRadeon HD 7600 Series|67\nRadeon R5 340|67\nRadeon(TM) Vega 9 Graphics|67\nFirePro W4100 (FireGL V) Graphics Adapter|67\n694E:C0|67\n694C:C0|67\nRadeon R7 250|66\nRadeon HD 6750|66\nRAVEN (DRM 3.36.0, 5.6.5-AMD, LLVM 9.0.1)|66\nFirePro W600|66\nRadeon R9 255|66\nRadeon RX 470|66\nRadeon(TM) R7 250|66\nFirePro V5900|65\nRadeon(TM) 530|65\nRadeon Pro WX Vega M GL Graphics|65\nRadeon RX 470/480|65\nRadeon HD 5750|65\nRadeon R7 260X|65\nFirePro V5900 (FireGL V) Graphics Adapter|65\nFirePro W4100 Graphics Adapter|65\nRadeon HD 6700 Green Edition|65\nRadeon R9 M370X|65\nRadeon(TM) R7 350X|64\nRadeon(TM) R7 350X|64\nRadeon HD 7670|64\nRadeon R9 M200X Series|64\nRadeon R9 M370X|64\nRadeon HD 6670|63\nRadeon(TM) HD 8350|63\nRadeon 530X Series|63\nRadeon(TM) R9 360|63\nRadeon(TM) Pro WX 4150 Graphics|63\n67EF:C5|63\nRadeon R7 Graphics + R5 340 Dual Graphics|62\nRadeon HD 5670|62\nRadeon RX 470/570|62\nRadeon 530 Series|62\nRadeon R7 250 Series|62\nRadeon R7 430|62\nRadeon HD 6750 Graphics|62\nRadeon(TM) R9 M385X|62\nRadeon(TM) Vega 10 Mobile Graphics|62\nFirePro V5900 (FireGL V)|61\nFirePro V5800 (FireGL V)|61\nRadeon(TM) Vega 8 Graphics|61\nFirePro V4800 (FireGL V)|61\nRadeon HD 7600 Series|61\nRadeon(TM) Vega 6 Graphics|61\nRadeon(TM) R9 200 Series|61\nRadeon HD 8850M|61\nRadeon RX460|61\nRadeon R7 M460|61\nRadeon RX 640 Series|60\nRadeon 530|60\nRadeon HD 5600/5700|60\nRadeon HD 5750 Series|60\nRadeon R7 Graphics + R7 200 Dual Graphics|60\nRadeon R7 450|60\nFirePro V4900|60\nFirepro W6150M|60\nASUS R7 250 Series|60\nRadeon(TM) RX 560 Graphics|60\nRadeon(TM) R7 M370|59\nFirePro M4000 Mobility Pro Graphics|59\nRadeon R5 430|59\nRadeon R9 M275X|59\nFirePro V5800 (FireGL) Graphics Adapter|59\nMobility Radeon HD 5870|59\nRadeon(TM) R9 M385X|58\nRadeon HD 7750M|58\nRadeon HD 5670|58\nRadeon HD 8850M|58\nRadeon HD 7700M Series|58\nRadeon HD 8670D + R7 200 Dual Graphics|58\nRadeon R7 Series / HD 9000 Series|57\nRadeon HD 6730M/6770M|57\nRadeon(TM) 625|57\nRadeon(TM) R9 M385|57\nRadeon HD 5870M|56\nRadeon 610 Series|56\nFirePro W4100|56\nFirePro M6000 Mobility Pro Graphics|56\nRadeon RX 540 Series|56\nRadeon R7 240|56\nRadeon HD 7560D + HD 7700 Dual Graphics|56\nRadeon R9 M370X (Bootcamp XG edition by bootcampdrivers.com)|56\nFirePro V4900 (ATI FireGL)|55\nRadeon(TM) R7 M350|55\nFirePro M6000 Mobility Pro Graphics|55\n67FF:08|55\nRadeon HD 5750|55\nRadeon HD 7570|55\nRadeon(TM) Vega 11 Graphics|55\nRadeon R7 M460|55\nRadeon HD 5750 OpenGL Engine|55\nRadeon(TM) R7 M370|55\nRadeon HD 6730M/6770M/7690M XT|55\nRadeon E8860|55\nRadeon HD 8790M|54\nRadeon HD 6770M|54\nRadeon R7 M440|54\nRadeon(TM) R7 350|54\nRadeon(TM) R7 350X|54\nRadeon HD 7870 XT|54\nRadeon HD 7800M Series|54\nRadeon 520|54\nRadeon R7 M370|53\nFirePro W4150M FireGL V|53\n(ATI) FirePro M4000 (FireGL V) Mobility Pro Graphics|53\nRadeon R9 M200X Series|53\nRadeon HD 6700M/7700M/7900M Series|53\nRadeon(TM) 620|53\nPicasso|53\nRadeon(TM) RX Vega 10 Graphics|53\n67EF:CF|53\nRadeon(TM) Vega 3 Graphics|53\nRadeon R7 250|53\nFirePro W4190M|53\nRadeon(TM) Vega 8 Graphics|53\n694C:C0|52\nRadeon HD 5670 Series|52\nRadeon(TM) RX Vega 11 Graphics|52\nRadeon HD 6770M OpenGL Engine|52\nRadeon(TM) M535DX|52\nFirePro V4800 (FireGL V)|52\nRadeon R7 350 Series|52\nBarco MXRT 5600 (WDDM)|51\nRadeon 630|51\nFirePro V4900 (FireGL V)|51\nFirePro V4900 (FireGL V) Graphics Adapter|51\nRadeon(TM) Vega 3 Mobile Graphics|51\nRadeon 535 Series|51\nRadeon R7 Graphics|51\nRadeon HD 5670|51\nFirePro W4170M|50\nRadeon HD 8700M Series|50\nRadeon HD 8670 / R7 250/350|50\nPicasso|50\nFirePro V4800 (FireGL) Graphics Adapter|50\nMobility Radeon HD 5850|49\nOPAL XT/GL (6604)|49\nRadeon R5 M335|49\nMatrox C900 PCIe x16|49\nRadeon HD 7670|49\nRadeon HD 6750M|49\nRadeon(TM) 535|49\nRadeon 540X Series|49\nRadeon R9 M275|49\nRadeon(TM) RX 640|49\nRadeon HD 5700 Series|48\nRadeon R5 M230 Series|48\nFirepro M6100|48\nRadeon(TM) R9 M375|48\nRadeon R5 430|48\nRadeon(TM) R7 250|47\nRadeon R9 M265X|47\nRadeon HD 6730M/6770M|47\nRadeon HD 8670D|47\nRadeon R5 340|47\nRadeon 520|47\nRadeon(TM) 520|47\nFirePro V (FireGL V) Graphics Adapter|47\nFirePro M5100 FireGL V|46\nRadeon HD 6670|46\nRadeon R7 M260X|46\nRadeon HD 8550|46\nFirePro M4150|46\nRadeon HD 6670|46\nRadeon HD 7700 Series|46\nFirePro M4170|46\nRadeon HD 7570|46\nRadeon HD 8670D + HD 6670 Dual Graphics|45\n699F:C1|45\nRadeon R7 Graphics|45\nRadeon(TM) R7 M340|45\nFirePro W4170M (FireGL V)|45\nRadeon(TM) HD 8500M/8700M|45\nRadeon R7 M340|44\nFirePro M5950|44\nRadeon HD 8570D + R7 240 Dual Graphics|44\nRadeon HD 6770M|44\nRadeon HD 7730M|44\nRadeon HD 8790M|44\nRadeon HD 7750|44\nRadeon HD 8690A|44\nMobility Radeon HD 5730 / 6570M|44\nRadeon R9 A375|44\nRadeon(TM) R8 M445DX|43\nFirePro V (FireGL V) Graphics Adapter|43\nRadeon HD 7750/8740 / R7 250E|43\nFirePro V3900|43\nRadeon HD 7600A Series|43\nRadeon(TM) R7 200 Series Graphics|43\nRadeon R7 Graphics|43\nRadeon HD 6770M|43\nRadeon R7 M260 Series|43\nRadeon R7 M360|43\nRadeon HD 8970M|43\nRadeon(TM) Vega 6 Graphics|43\nRadeon HD 8570|42\nRadeon R7 M440|42\nRadeon HD 8670A/8670M/8750M|42\nMobility Radeon HD 5850|42\nRadeon HD 8750M|42\nEmbedded Radeon E9173|42\nRadeon(TM) R7 M440|42\nRadeon HD 8730M|42\nRadeon R7 240 + HD 8570D Dual Graphics|42\nFirePro V3900|42\nRadeon(TM) 535DX|42\nRadeon(TM) 520|42\nRadeon(TM) Vega 8 Mobile Graphics|42\nRadeon(TM) Vega 8 Graphics|42\nRadeon(TM) Vega 2 Graphics|42\nRadeon(TM) R9 M375|42\nRadeon(TM) R8 M445DX|41\nRadeon HD 6750M|41\nRadeonT 540X|41\nRadeon(TM) 530|41\nRadeon HD 7560D + HD 6670 Dual Graphics|41\nRadeon R7 240|41\nRadeon(TM) R7 M360|41\nRadeon R9 M280X|41\nRadeon HD 7520G + HD 7600M Dual Graphics|41\nRadeon(TM) R7 M445|41\nRadeon Vega 8 Mobile|40\nRadeon(TM) R9 255|40\nRadeon R7 M260X|40\nRadeon R8 M535DX|40\nRadeon R7 240/340|40\nRadeon(TM) R9 M375|40\nRadeon(TM) R7 Graphics|40\nRadeon(TM) R5 M420|40\nRadeon HD 6750M|40\nRadeon R9 M265X|40\nRadeon R7 M340|40\nRadeon HD 6570|40\nRadeon HD 7500/7600 Series|39\nRadeon R7 430|39\nFirePro W2100|39\nRadeon HD 7730M|39\nRadeon HD 8670D|39\nRadeon R5 M255|39\nRadeon HD 7560D + HD 6570 Dual Graphics|39\nRadeon RX Vega|39\nRadeon R7 240 Series|39\nRadeon(TM) R7 M445|39\nRadeon HD 6800M Series|39\nRadeon HD 8690M|39\nRadeon HD 7660D + HD 6570 Dual Graphics|39\nRadeon R7 M370|39\nRadeon(TM) HD 6650M|38\nRadeon R5 M435|38\nRadeon HD 6500 Series|38\nRadeon R7 Graphics|38\nFirePro M7820|38\nRadeon(TM) R8 M445DX Graphics|38\nRadeon HD 5570|38\nRadeon HD 8650G + 8750M Dual Graphics|38\nRadeon HD 8670A/8670M/8750M|38\nRadeon HD 6650M|38\nRadeon R7 M260 Series|38\nRadeon HD 7660G + 7600M Dual Graphics|38\nRadeon HD 7600M Series|38\nRadeon HD 7670M|37\nRadeon. HD 7670M|37\nRadeon(TM) R7 M265|37\nMobility Radeon HD 5000|37\nRadeon HD 7500M/7600M Series|37\nRadeon R5/R6/R7 Graphics|37\nRadeon R7 M270|37\nRadeon HD 8650G + HD 7600M Dual Graphics|37\nFirepro M5100|37\nRadeon HD 7730M|37\nRadeon HD 8570D|37\nRadeon(TM) HD 7650A Graphics|37\nRadeon R7 Graphics|37\nRadeon(TM) RX Vega 10 Graphics|37\nRadeon HD 7600A Series|36\nRadeon R7 M270|36\nRadeon HD 7660D + HD 6670 Dual Graphics|36\nRadeon HD 7570M/HD 7670M Graphics|36\nRadeon 6600M and 6700M Series|36\nRadeon R7 Graphics + R7 200 Dual Graphics|36\nRadeon HD 7570 Series|36\nRadeon HD 8750M|36\nRadeon HD 6550D|36\nFirePro M5950|36\nRadeon HD 7660G + 7600M Dual Graphics|36\nRadeon HD 6550D|36\nRadeon HD 7600M/7700M Series|36\nRadeon(TM) Vega 3 Graphics|36\nRadeon(TM) 625|36\nMobility Radeon HD 5570|36\nRadeon HD8730|36\nRadeon(TM) R9 M380|36\nRadeon(TM) R5 240|36\nRadeon HD 7650M|35\nRadeon HD 7560D|35\nRadeon HD 8690M|35\nRadeon HD 8650G + 8750M Dual Graphics|35\nRadeon HD 8650G + HD 8750M Dual Graphics|35\nRadeon HD 8650G + HD 8570M Dual Graphics|35\nRadeon HD 6570|35\nRadeon HD 7650M|35\nRadeon HD 6630M/6650M/6750M/7670M/7690M|35\nRadeon HD 6500 Series|35\nRadeon(TM) 520|35\nRadeon HD 8570D|35\nRadeon HD 7600M Series|35\nRadeon R7 Graphics|35\nRadeon HD 7660G + 8670M Dual Graphics|35\nRadeon R7 200 Series|35\nRadeon HD 6630M/6650M/6750M/7670M/7690M|35\nRadeon R7 M265|35\nRadeon HD 8650G + HD 8750M Dual Graphics|35\nRadeon HD 8650G + 8670M Dual Graphics|35\nRadeon R7 Graphics|34\nRadeon HD 6630M Series|34\nRadeon(TM) 520|34\nRadeon HD 7660D|34\nASUS R7 240 Series|34\nRadeon R9 M280X|34\nRadeon(TM) R5 340|34\nRadeon HD 8550G + 8600/8700M Dual Graphics|34\nRadeon R7 Graphics|34\nRadeon(TM) HD 8500M/8700M|34\nRadeon HD 7660G + HD 7600M Dual Graphics|34\nRadeon HD 7670M|34\nRadeon(TM) R5 M430|34\nRadeon HD 8650G + 8500M Dual Graphics|34\nRadeon(TM) R5 340X|34\nRadeon(TM) R5 230 series|34\nRadeon HD 8550|34\nFirePro W2100 (FireGL V)|34\nFirepro M4100 FireGL V|34\nRadeon HD 6550D|34\nRadeon HD 6630M|34\nRadeon(TM) R9 M375|34\nRadeon HD 5670 OpenGL Engine|33\nRadeon HD 5670|33\nRadeon R7 Graphics|33\nRadeon HD 7660G|33\nRadeon HD 5570|33\nRadeon HD 7550M/7650M Graphics|33\nRadeon HD 7660D|33\nRadeon HD 7560D|33\nRadeon HD 7560D|33\nRadeon R5 M445 Series|33\nRadeon R5 M315|33\nRadeon HD 8570D|33\nRadeon R7 M265|33\nRadeon HD 7640G + HD 7500/7600 Dual Graphics|33\nRadeon R7 Graphics|33\nRadeon HD 8500M Series|33\nMobility Radeon HD 5000|33\nRadeon(TM) R7 M360|33\nFirepro M4100|33\nRadeon(TM) Vega 10 Graphics|32\nRadeon HD 7500M/7600M Series|32\nRadeon HD 8550G + HD 8600/8700M Dual Graphics|32\nRadeon HD 7660G|32\nRadeon HD 7350|32\nRadeon HD 8470D + HD 6450 Dual Graphics|32\nRadeon R7 Graphics|32\nRadeon HD 8730M|32\nRadeon HD 7640G + HD 7400M Dual Graphics|32\nRadeon HD 8690A|32\nRadeon HD 8650G + 8600/8700M Dual Graphics|32\nRadeon R7|32\nRadeon(TM) Vega 11 Graphics|32\nRadeon(TM) Vega 8 Graphics|32\nRadeon R5 M200 Series|32\nRadeon(TM) R5 M335|32\nRadeon(TM) R5 M430|32\nRadeon HD 8550G + HD 8570M Dual Graphics|32\nRadeon HD 7650M Series|32\nRadeon R7 250 Series|32\nRadeon(TM) R7 M460|32\nRadeon HD 6550D|32\nRadeon HD 7660G + HD 7600M Dual Graphics|32\nRadeon(TM) Vega 3 Graphics|32\nRadeon HD 8470D|32\nRadeon R8 M365DX|31\nMadison [Mobility Radeon HD 5650/5750 / 6530M/6550M]|31\nRadeon HD 6630M/6650M/6750M/7670M/7690M|31\nRadeon R7 Graphics|31\nRadeon E6760|31\nRadeon R7 Graphics|31\nRadeon(TM) Vega 8 Graphics|31\nRadeon(TM) R5 M330|31\nRadeon HD 8670A/8670M/8690M|31\nRadeon R7 A360|31\nRadeon HD 8650G + HD 8600M Dual Graphics|31\nRadeon R5 M200 / HD 8500M Series|31\nRadeon(TM) R8 M435DX|30\nRadeon HD 7640G + HD 7670M Dual Graphics|30\nRadeon(TM) Vega 10 Mobile Graphics|30\nRadeon R7 Graphics|30\nRadeon Pro 450/550|30\nRadeon HD 8800M Series|30\nRadeon HD 8470D|30\nRadeon HD 7660D|30\nRadeon HD 8610G + HD 8600M Dual Graphics|30\nRadeon HD 7660G + 7670M Dual Graphics|30\nRadeon(TM) Vega 8 Mobile Graphics|30\nRadeon 610 Series|30\nRadeon(TM) R5 M330|30\nRadeon HD 7660G|30\nRadeon HD 7640G|30\nRadeon R8 M365DX|30\nRadeon HD 8550G|29\nRadeon HD 7540D|29\nRadeon HD 7640G|29\nRadeon HD 8650G|29\nRadeon(TM) R7 Graphics|29\nRadeon(TM) RX Vega 11 Graphics|29\nRadeon HD 6650M|29\nRadeon HD 7660G|29\nRadeon 6600M and 6700M Series|29\nRadeon HD 7640G + HD 7400M Dual Graphics|29\nRadeon(TM) R5 340X|29\nRadeon R5 435|29\nRadeon HD 6500M/5600/5700 Series|29\nFirepro M4100 FireGL V|29\nRadeon R7 Graphics|29\nRadeon(TM) 535|29\nRadeon R7 240 Series|29\nRadeon(TM) R7|29\nRadeon HD 8550G + 8500M Dual Graphics|28\nRadeon(TM) 530|28\nRadeon HD 5650 Series|28\nRadeon HD 7570M|28\nRadeon HD 7570M|28\nASUS R7 240 Series|28\nRadeon HD 6570|28\nRadeon(TM) Vega 8 Graphics|28\nRadeon E8860|28\nRadeon(TM) 530 series|28\nRadeon(TM) R5 M315|28\nRadeon HD 5500 Series|28\nRadeon HD 8610G + HD 8670M Dual Graphics|28\nRadeon(TM) R6|28\nRadeon R9 M275X|28\nRadeon HD 8550G + R5 M230 Dual Graphics|28\nRadeon HD 8470D|28\nRadeon HD 8670D|28\nRadeon HD 7620G|28\nRadeon(TM) R8 M350DX|28\nRadeon HD 8470D|27\nRadeon(TM) R8 M445DX|27\nRadeon(TM) R7 Graphics|27\nRadeon(TM) R5 Graphics|27\nRadeon(TM) R7 M340|27\nRadeon(TM) R6 Graphics|27\nRadeon R6 Graphics|27\nRadeon R5 M230 Series|27\nRadeon HD 8650G|27\nRadeon HD 7480D|27\nRadeon(TM) R8 M445DX Graphics|27\nRadeon(TM) R6 Graphics|27\nRadeon R7 Graphics|27\nRadeon R6|27\nRadeon R5 M255|27\nRadeon(TM) Vega 3 Graphics|27\nRadeon 550X|27\nRadeon(TM) Vega 3 Graphics|27\nRadeon HD 7500/7600 Series|27\nRadeon HD 8650G|27\nRadeon HD 5500 Series|27\nRadeon HD 7610M|27\nRadeon Instinct MI25 MxGPU|27\nRadeon(TM) HD8530M|27\nRadeon R7 M260|27\nRadeon(TM) R8 M445DX|27\nRadeon R7 Graphics|26\nRadeon HD 8500M|26\nRadeon(TM) R7 M260DX|26\nRadeon HD 8410G|26\nRadeon HD 8670A/8670M/8690M|26\nRadeon(TM) R7 M360|26\nRadeon(TM) R7 M360|26\nRadeon HD 8670D|26\nRadeon R9 M275|26\nRadeon HD 7640G|26\nRadeon(TM) R7 Graphics|26\nMxGPU|26\nRadeon HD 8370D|26\nRadeon HD 6620G|25\nRadeon HD 7560D|25\nRadeon HD 8570 / R5 430 / R7 240/340 / Radeon 520|25\nRadeon R4 Graphics|25\nRadeon R6 Graphics|25\nRadeon R7 Graphics|25\nRadeon(TM) 535DX|25\nRadeon(TM) 540 Graphics|25\nRadeon(TM) R5 M330|25\nRadeon HD 6530D|25\nRadeon R6 Graphics|25\nRadeon HD 8510G|25\nRadeon HD 6620G|25\nRadeon R7 M360|24\nRadeon(TM) R6 Graphics|24\nRadeon R7 M260|24\nRadeon HD 8610G + HD 8600M Dual Graphics|24\nRadeon(TM) R6 Graphics|24\nRadeon R5 M200 / HD 8500M Series|24\nRadeon R7 Graphics|24\nRadeon HD 7600G|24\nRadeon R7 Graphics|24\nRadeon HD 6620G|24\nRadeon R5 M330|24\nRadeon(TM) R5 240|24\nRadeon(TM) HD 6620G|24\nFirePro V3800 (FireGL V)|24\nRadeon HD 6520G|24\nRadeon R7 Graphics|24\nRadeon HD 7520G|24\nRadeon(TM) R6 Graphics|24\nRadeon(TM) R7 M260|24\nRadeon RX 540 Series|24\nRadeon(TM) R5 M320|24\nRadeon HD 8500M|23\nRadeon R5 M230|23\nRadeon HD 8670M|23\nRadeon HD 8550G + HD 8750M Dual Graphics|23\nRadeon HD 8600M Series (HAINAN, DRM 3.40.0, 5.11.13-arch1-1, LLVM 11.1.0)|23\nRadeon HD 8550G|23\nRadeon R5 M240|23\nRadeon R5 M240 Series|23\nRadeon HD 7540D|23\nRadeon(TM) R5 M430|23\nRadeon R5 Graphics|23\nRadeon(TM) R5 M430|23\nRadeon R6 Graphics|23\nRadeon HD 7520G|23\nRadeon R7 Graphics|23\nRadeon HD 8610G|22\nFirePro 3800 (FireGL) Graphics Adapter|22\nRadeon HD 7570M/HD 7670M Graphics|22\nRadeon HD 7480D|22\nRadeon(TM) R7 Graphics|22\nRadeon HD 8650G + HD 8600M Dual Graphics|22\nRadeon(TM) Vega 6 Graphics|22\nRadeon R7 Graphics|22\nRadeon R5 Graphics|22\nRadeon HD 7660G + HD 8600M Dual Graphics|22\nFirePro M2000|22\nRadeon R7 Graphics|22\nRadeon HD 7870M|22\nRadeon R5 M335|22\nRadeon R5|22\nRadeon HD 8500M Series|22\nRadeon(TM) HD 8490|22\nRadeon HD 8670M|22\nRadeon HD 7660G + HD 7670M Dual Graphics|22\nRadeon 7500M/7600M Series|22\nRadeon R5 Graphics|21\nRadeon(TM) R4 Graphics|21\nRadeon HD 8490|21\nRadeon HD 8490|21\nRadeon R7 Graphics|21\nRadeon HD 8570M|21\nRadeon(TM) R5 M320|21\nRadeon R2|21\nRadeon HD 6530D|21\nRadeon(TM) HD 6470M|21\nMxGPU|21\nRadeon HD 7000 series|21\nRadeon HD 7470|21\nRadeon(TM) R8 M350DX|21\nRadeon R7 Graphics|21\nRadeon HD 7520G + HD 7400M Dual Graphics|21\nRadeon(TM) R5 M335|21\nRadeon HD 7400G|21\nRadeon HD 7640G + HD 8500M Dual Graphics|21\nRadeon HD 7000 series|21\nRadeon(TM) R5 Graphics|20\nRadeon(TM) R7 M520 (R17M-M1-30)|20\nRadeon HD 8470|20\nRadeon HD 7480D|20\nRadeon HD 6400M/7400M Series|20\nRadeon(TM) R3 Graphics|20\nRadeon R6 M255DX|20\nRadeon HD 8370D|20\nRadeon R5 Graphics|20\nRadeon R7 Graphics|20\nRadeon HD 6410D|20\nRadeon(TM) R5 Graphics|20\nRadeon R5 M330|20\nRadeon R7 M260DX|20\nRadeon(TM) R5 Graphics|20\nRadeon HD 7480D|20\nRadeon HD 6470M|20\nRadeon Hybrid (Blocked)|20\nRadeon(TM) R7 Graphics|20\nRadeon(TM) R6 M340DX|20\nRadeon R5 235|20\nRadeon HD 7520G|19\nRadeon(TM) R6 M255DX|19\nRadeon R5 M240|19\nRadeon(TM) R3 Graphics|19\nRadeon R7E Graphics|19\nRadeon R5 M200 Series|19\nRadeon HD 7470|19\nRadeon HD 7640G + 8500M Dual Graphics|19\nRadeon(TM) R5 M330|19\nRadeon HD 6470M|19\nRadeon R3 Graphics|19\nRadeon HD 8400E|19\nRadeon HD 7640G + HD 8570M Dual Graphics|19\nRadeon HD 8400|19\nRadeon HD 8400 / R3 Series|19\nRadeon R5 Graphics|19\nRadeon(TM) R7 M265|19\nRadeon R5 M230|19\nRadeon R5 Graphics|19\nRadeon HD 7620G|19\nRadeon R5 Graphics|19\nRadeon(TM) HD 6470M|19\nRadeon HD 7480D|18\nRadeon R7 Graphics|18\nRadeon(TM) R5 Graphics|18\nRadeon HD 8550G|18\nRadeon HD 8370D|18\nRadeon R5 Graphics|18\nRadeon(TM) HD 7450|18\nRadeon HD 6530D|18\nRadeon HD 8570M|18\nRadeon R6 Graphics|18\nRadeon HD 7650A|18\nRadeon HD 8450G|18\nRadeon HD 8550G + R5 M230 Dual Graphics|18\nRadeon HD 7640G + 7470M Dual Graphics|18\nRadeon HD 8370D|18\nRadeon HD 7400M Series|18\nRadeon HD 8670D + R5 200 Dual Graphics|17\nRadeon HD 7500G|17\nRadeon HD 7790|17\nRadeon HD 7450M|17\nRadeon(TM) HD 7450A Graphics|17\nRadeon(TM) R5 Graphics|17\nRadeon(TM) R6 Graphics|17\nRadeon(TM) R4 Graphics|17\nRadeon HD 8650G + HD 8500M Dual Graphics|17\nRadeon HD 7400M Series|17\nRadeon HD 8450G|17\nRadeon HD 6520G|17\nRadeon HD 8470D|17\nRadeon(TM) R5 Graphics|17\nRadeon(TM) R4E Graphics|17\nRadeon HD 8330|17\nRadeon HD 8400|17\nRadeon(TM) HD 8510G|17\nRadeon(TM) R5 Graphics|17\nRadeon HD 8650G|17\nRadeon HD 6490M|17\nRadeon R7 Graphics|16\nRadeon HD 6400 Series|16\nRadeon HD 8510G|16\nRadeon HD 7400 Series|16\nRadeon HD 7400 Series|16\nRadeon(TM) HD 8510G|16\nRadeon HD 6370D|16\nRadeon HD 7420G|16\nRadeon HD 7520G + HD 7600M Dual Graphics|16\nRadeon R9 260|16\nRadeon HD 7640G + 7600M Dual Graphics|16\nRadeon HD 7470M|16\nRadeon(TM) R2 Graphics|16\nRADEON HD 6450|16\nRadeon(TM) R1E Graphics|16\nRadeon R5 Graphics|16\nRadeon HD 7420G|16\nRadeon(TM) R4 Graphics|16\nRadeon(TM) R4 Graphics|16\nRadeon(TM) R4 Graphics|16\nRadeon HD 7480D|16\nRadeon HD 6490M|15\nRADEON HD 6450|15\nRadeon(TM) HD 8610G|15\nRadeon(TM) HD 8610G|15\nRadeon HD 8610G + 8600M Dual Graphics|15\nRadeon HD 7350|15\nRadeon(TM) HD 6480G|15\nRadeon HD 8650G + 8600M Dual Graphics|15\nRadeon HD 8570D|15\nRadeon HD 6370M|15\nMobility Radeon HD 5000 Series|15\nRadeon R2 Graphics|15\nRadeon HD 8240 / R3 Series|15\nRadeon HD 8650G + R5 M200 Dual Graphics|15\nRadeon HD 8400E|15\nRadeon(TM) R4 Graphics|15\nRadeon R5 Graphics|15\nRadeon HD 8610G|15\nRadeon HD 8650G + HD 8500M Dual Graphics|15\nRadeon(TM) R7 M260|15\nASUS EAH6450 Series|15\nRadeon R3 Graphics|15\nRadeon(TM) R6 M340DX|15\nRadeon R6E Graphics|15\nRadeon R5 Graphics|15\nRadeon R2 Series|14\nRadeon HD 6450/7450/8450/R5 230|14\nRadeon HD 8200 / R3 Series|14\nRadeon(TM) R3 Graphics|14\nRadeon R5 230|14\nRadeon(TM) HD 8510G|14\nRadeon(TM) R4 Graphics|14\nRadeon R5 M435|14\nRadeon HD 8240|14\nASUS R5 230 Series|14\nFirePro M2000|14\nRadeon HD 7500G|14\nRadeon HD 7450|14\nRADEON HD 6450|14\nRadeon HD 8400E|14\nRADEON HD 6350|14\nRadeon HD 6480G|14\nRadeon(TM) R5E Graphics|14\nCARRIZO 9874|14\nMobility Radeon HD 5000 Series|14\nRadeon HD 6630M|14\nRadeon HD 6370M|14\nRadeon HD 8400 / R3 Series|14\nRadeon(TM) R2 Graphics|14\nASUS EAH6450 Series|14\nRadeon HD 7470M|13\nMobility Radeon HD 5470|13\nMobility Radeon HD 5400 Series|13\nRadeon(TM) R5E Graphics|13\nRadeon(TM) R2 Graphics|13\nRadeon HD 6540|13\nRadeon HD 7450|13\nRadeon HD 5450|13\nRadeon HD 8600M Series|13\nRadeon HD 8400 / R3 Series|13\nKaveri|13\nRadeon(TM) HD 6480G|13\nRadeon HD 5400 Series|13\nRadeon HD 8330|13\nRADEON HD 6350|13\nRadeon R4/R5 Graphics|13\nRadeon HD 7600G +鈩� HD Dual Graphics|13\nRadeon R3 Graphics|13\nASUS R5 230 Series|13\nRadeon(TM) R7 Graphics|13\nRadeon HD 7620G|13\nRadeon HD 8250|13\nRadeon(TM) R7 Graphics|12\nRadeon HD 6450/7450/8450 / R5 230|12\nRadeon HD 6480G|12\nRadeon(TM) R7 Graphics|12\nRadeon HD 5450 Series|12\nRadeon HD 8400 / R3 Series|12\nRadeon(TM) HD 6400 Series|12\nRadeon(TM) R4 Graphics|12\nRADEON HD5450|12\nRadeon R5 Graphics|12\nRadeon R5 Graphics|12\nRadeon(TM) R6 Graphics|12\nRadeon(TM) R4 Graphics|12\nRadeon(TM) R2 Graphics|12\nRadeon HD 8210|12\nRadeon R5 230|12\nRadeon R3 Graphics|12\nFirePro 2270|12\nRadeon(TM) R2E Graphics|12\nRadeon HD 8400 / R3 Series|12\nRadeon HD 8350G|12\nRadeon HD 8400|12\nRadeon R2 Graphics|12\nRadeon HD 8210 Graphics|12\nRadeon E6460|12\nRadeon(TM) HD 8280E|12\nRadeon R2 Graphics|11\nRadeon HD 8450G + HD 8750M Dual Graphics|11\nRadeon HD 8330|11\nRadeon HD 5470|11\nRadeon HD 7600G + 7500M/7600M Dual Graphics|11\nRadeon R5 220|11\nRadeon HD 8200 / R3 Series|11\nRadeon HD 8240|11\nRadeon HD 8400 / R3 Series|11\nRadeon HD 8200 / R3 Series|11\nRadeon HD 5450|11\nRadeon(TM) 620|11\nRadeon(TM) Vega 8 Mobile Graphics|11\nRadeon HD 6530D|11\nRadeon(TM) HD 6520G|11\nRadeon HD 6300M Series|11\nASUS EAH5450|11\nRadeon R5 220|11\nRadeon HD 8250|11\nRadeon HD 7340|11\nRadeon HD 7340M|11\nRadeon HD 8210|11\nRadeon HD 7700 Series|10\nRadeon HD 6380G|10\nRadeon HD 5400 Series|10\nRadeon HD 8240|10\nRadeon HD 7640G + 7670M Dual Graphics|10\nRadeon(TM) R6 Graphics|10\nASUS EAH5450 Series|10\nRadeon HD 6320|10\nRadeon HD 7340G|10\nRadeon HD 6410D|10\nRadeon HD 7340|10\nRadeon HD 6320|10\nRadeon(TM) R2 Graphics|10\nRadeon HD 8180|9\nMobility Radeon HD 5430|9\nRadeon R2 Graphics|9\nRadeon R2 Series|9\nRadeon HD 8210|9\nFirePro 2270|9\nRadeon R2E Graphics|9\nRadeon HD 7340|9\nRadeon HD 6320|9\nRadeon HD 7310|9\nRadeon HD 6310|9\nRadeon R7 Graphics|9\nRadeon HD 7310|8\nRadeon HD 8250|8\nRadeon HD 8180|8\nRadeon HD 6630M|8\nRadeon HD 6230|8\nRadeon HD 6320|8\nRadeon HD 6400M Series|8\nRadeon HD 7290 Graphics|7\nRadeon HD 6290|7\nRadeon HD 6310|7\nRadeon HD 8180|7\nASUS EAH5450 Series|7\nRadeon(TM) R2 Graphics|6\nRadeon HD 6310|6\nRadeon HD 7500G|6\nRadeon HD 8240 / R3 Series|6\nRadeon HD 6250|6\nRadeon HD 6380G|6\nRadeon HD 6300M Series|5\nRadeon HD 7310|5\nRadeon R3 Graphics|5\nRadeon(TM) R6 Graphics|5\nRadeon HD 6250|5\nRadeon HD 6290|5\nRadeon HD 6250|5\nRadeon HD 7290 Graphics|4\nRadeon HD 5000/6000/7350/8350 Series|3\nRadeon RX Vega 56 OpenGL Engine|-1\nFirePro V4800 (FireGL) Graphics Adapter|-1\nRadeon HD 7670M|-1\nRadeon HD 8570D|-1\n7340:C5|-1\nRadeon HD 8550G|-1\nRadeon R5 Graphics|-1\nASUS R7 360 Series|-1\nBonaire [FirePro W5100]|-1\nRadeon HD 6380G|-1\nRadeon R7 Graphics|-1\nFireGL V8650|-1\nFirePro S7150|-1\nFirePro V3900 (FireGL V)|-1\nFirePro V7800 (FireGL V)|-1\nFirePro W4100 Graphics Adapter|-1\nFirePro W4170M (FireGL V)|-1\nGigabyte Radeon RX 580|-1\nMobility FireGL V5700|-1\nMobility Radeon 4100|-1\nMobility Radeon HD 2400|-1\nMobility Radeon HD 2400 XT|-1\nMobility Radeon HD 2600|-1\nMobility Radeon HD 2600 XT|-1\nMobility Radeon HD 3200|-1\nMobility Radeon HD 3400 Series|-1\nMobility Radeon HD 3430|-1\nMobility Radeon HD 3470|-1\nMobility Radeon HD 3650|-1\nMobility Radeon HD 4200 Series|-1\nMobility Radeon HD 4250|-1\nMobility Radeon HD 4300 Series|-1\nMobility Radeon HD 4500 Series|-1\nMobility Radeon HD 4500/5100 Series|-1\nMobility Radeon HD 4650|-1\nMobility Radeon HD 4670|-1\nMobility Radeon HD 4850|-1\nR9 270X Devil|-1\nRX 560X|-1\nRadeon|-1\nRadeon(TM) HD8530M|-1\nRadeon 3000|-1\nRadeon 3100 Graphics|-1\nRadeon HD 2400 PRO|-1\nRadeon HD 2400 XT|-1\nRadeon HD 2600 Pro|-1\nRadeon HD 2600 XT|-1\nRadeon HD 2900 GT|-1\nRadeon HD 3200 Graphics|-1\nRadeon HD 3300|-1\nRadeon HD 3450|-1\nRadeon HD 3470|-1\nRadeon HD 3600 Series|-1\nRadeon HD 3650|-1\nRadeon HD 3850|-1\nRadeon HD 3870|-1\nRadeon HD 3870 X2|-1\nRadeon HD 4200|-1\nRadeon HD 4250|-1\nRadeon HD 4290|-1\nRadeon HD 4300/4500 Series|-1\nRadeon HD 4550|-1\nRadeon HD 4600 Series|-1\nRadeon HD 4650|-1\nRadeon HD 4670|-1\nRadeon HD 4830|-1\nRadeon HD 4850|-1\nRadeon HD 4870|-1\nRadeon HD 4890|-1\nRadeon HD 5670 640SP Edition|-1\nRadeon HD 5800 Series|-1\nRadeon HD 5850|-1\nRadeon HD 6490M|-1\nRadeon HD 6730M/6770M|-1\nRadeon HD 6750|-1\nRadeon HD 6800M Series|-1\nRadeon HD 7540D + HD 6670 Dual Graphics|-1\nRadeon HD 7700M Series|-1\nRadeon HD 7800 Series|-1\nRadeon HD 8350|-1\nRadeon HD 8370D|-1\nRadeon HD 8600/8700M|-1\nRadeon Pro WX Vega M GL Graphics|-1\nRadeon R5 200 Series|-1\nRadeon R7 A370|-1\nRadeon R9 200 Series|-1\nRadeon R9 290X/390X|-1\nRadeon R9 380X|-1\nRadeon RX 480|-1\nRadeon RX 550X|-1\nRadeon RX 6650M|-1\nRadeon RX6600XT|-1\nRadeon(TM) R8 M435DX|-1\nRadeon(TM) R9 290X|-1\nRadeon(TM) RX540|-1\ninc. Radeon HD 7970|-1\nRadeong 0.4 on AMD CAPE VERDE (DRM 2.43.0, LLVM 3.7.0)|-1\nRadeong 0.4 on AMD CAPE VERDE (DRM 3.9.0 / 4.9.0-rc1+, LLVM 4.0.0)|-1\nRadeong 0.4 on AMD FIJI (DRM 3.2.0 / 4.7.0-rc5+, LLVM 4.0.0)|-1\nRadeong 0.4 on AMD TAHITI (DRM 2.43.0, LLVM 3.9.0)|-1\n";function hP(e){return e===nP.Intel?lP:e===nP.Nvidia?uP:e===nP.Amd?IP:""}var CP=[],dP=[],EP=[];function fP(e){if(e===nP.Intel&&CP.length)return CP;if(e===nP.Nvidia&&dP.length)return dP;if(e===nP.Amd&&EP.length)return EP;try{var A=function(e,A){var t,n;return t=A===nP.Intel?Jp(n=e.split("\n")).call(n,(function(e){return"Intel(R) ".concat(e)})):e.split("\n"),Jp(t).call(t,(function(e){return e.split("|")}))}(hP(e),e);return e===nP.Intel&&(CP=A),e===nP.Nvidia&&(dP=A),e===nP.Amd&&(EP=A),A}catch(P7){}return[]}function BP(e){if(!e)return 0;var A,t=fP(e.vendor);return A=function(e,A){var t=jv(e).call(e,(function(e){return e[0]===A.model}));t.length||(t=jv(e).call(e,(function(e){return e[0]===A.backupModel}))),t.length||A.vendor!==nP.Intel||/^Intel(R)/.test(A.model)||(t=jv(e).call(e,(function(e){return e[0]==="Intel(R) "+A.model})));var n="-1";if(t.length){var r=t[0][1];n="-1"===r?"0":r}return Uv(n)}(t,e),0===A?0:-1===A?-1:tD(gP(A).toFixed(2))}var QP,pP,vP="",yP=function(){function e(){GE(this,e)}return NE(e,null,[{key:"getGPUVendor",value:function(){return vP||(vP=function(){try{var e=localStorage.getItem(cP)||"";if(e)return e;var A,t=document.createElement("canvas").getContext("webgl");if(t)return(e=(A=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(A.UNMASKED_RENDERER_WEBGL):"")&&localStorage.setItem(cP,e),e}catch(P7){}return""}())}},{key:"parseVendor",value:function(A){try{var t=iP(A||e.getGPUVendor());return Ff(Ff({},t),{},{score:BP(t)})}catch(P7){}return null}}]),e}(),mP=void 0!==sY?sY:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function DP(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wP=function(e){return e&&e.Math==Math&&e},RP=wP("object"==(void 0===sY?"undefined":wc(sY))&&sY)||wP("object"==("undefined"==typeof window?"undefined":wc(window))&&window)||wP("object"==("undefined"==typeof self?"undefined":wc(self))&&self)||wP("object"==wc(mP)&&mP)||function(){return this}()||mP||Function("return this")(),kP=function(e){try{return!!e()}catch(A){return!0}},SP=!kP((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")})),MP=SP,GP=Function.prototype,_P=GP.apply,bP=GP.call,TP="object"==("undefined"==typeof Reflect?"undefined":wc(Reflect))&&uY||(MP?bP.bind(_P):function(){return bP.apply(_P,arguments)}),FP=SP,NP=Function.prototype,LP=NP.call,UP=FP&&NP.bind.bind(LP,LP),KP=FP?UP:function(e){return function(){return LP.apply(e,arguments)}},xP=KP,YP=xP({}.toString),PP=xP(Xp("")),HP=function(e){return PP(YP(e),8,-1)},JP=HP,OP=KP,zP=function(e){if("Function"===JP(e))return OP(e)},jP="object"==("undefined"==typeof document?"undefined":wc(document))&&document.all,XP={all:jP,IS_HTMLDDA:void 0===jP&&void 0!==jP},qP=XP.all,VP=XP.IS_HTMLDDA?function(e){return"function"==typeof e||e===qP}:function(e){return"function"==typeof e},WP={},ZP=!kP((function(){return 7!=Iy({},1,{get:function(){return 7}})[1]})),$P=SP,eH=Function.prototype.call,AH=$P?eH.bind(eH):function(){return eH.apply(eH,arguments)},tH={},nH={}.propertyIsEnumerable,rH=cy,iH=rH&&!nH.call({1:2},1);tH.f=iH?function(e){var A=rH(this,e);return!!A&&A.enumerable}:nH;var oH,aH,sH=function(e,A){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:A}},gH=kP,cH=HP,lH=Object,uH=KP("".split),IH=gH((function(){return!lH("z").propertyIsEnumerable(0)}))?function(e){return"String"==cH(e)?uH(e,""):lH(e)}:lH,hH=function(e){return null==e},CH=hH,dH=TypeError,EH=function(e){if(CH(e))throw dH("Can't call method on "+e);return e},fH=IH,BH=EH,QH=function(e){return fH(BH(e))},pH=VP,vH=XP.all,yH=XP.IS_HTMLDDA?function(e){return"object"==wc(e)?null!==e:pH(e)||e===vH}:function(e){return"object"==wc(e)?null!==e:pH(e)},mH={},DH=mH,wH=RP,RH=VP,kH=function(e){return RH(e)?e:void 0},SH=function(e,A){return arguments.length<2?kH(DH[e])||kH(wH[e]):DH[e]&&DH[e][A]||wH[e]&&wH[e][A]},MH=KP({}.isPrototypeOf),GH="undefined"!=typeof navigator&&String(navigator.userAgent)||"",_H=RP,bH=GH,TH=_H.process,FH=_H.Deno,NH=TH&&TH.versions||FH&&FH.version,LH=NH&&NH.v8;LH&&(aH=(oH=LH.split("."))[0]>0&&oH[0]<4?1:+(oH[0]+oH[1])),!aH&&bH&&(!(oH=bH.match(/Edge\/(\d+)/))||oH[1]>=74)&&(oH=bH.match(/Chrome\/(\d+)/))&&(aH=+oH[1]);var UH=aH,KH=UH,xH=kP,YH=RP.String,PH=!!gy&&!xH((function(){var e=hy();return!YH(e)||!(Object(e)instanceof hy)||!hy.sham&&KH&&KH<41})),HH=PH&&!hy.sham&&"symbol"==wc(Cy),JH=SH,OH=VP,zH=MH,jH=Object,XH=HH?function(e){return"symbol"==wc(e)}:function(e){var A=JH("Symbol");return OH(A)&&zH(A.prototype,jH(e))},qH=String,VH=function(e){try{return qH(e)}catch(A){return"Object"}},WH=VP,ZH=VH,$H=TypeError,eJ=function(e){if(WH(e))return e;throw $H(ZH(e)+" is not a function")},AJ=eJ,tJ=hH,nJ=function(e,A){var t=e[A];return tJ(t)?void 0:AJ(t)},rJ=AH,iJ=VP,oJ=yH,aJ=TypeError,sJ={exports:{}},gJ=RP,cJ=Iy,lJ=function(e,A){try{cJ(gJ,e,{value:A,configurable:!0,writable:!0})}catch(t){gJ[e]=A}return A},uJ="__core-js_shared__",IJ=RP[uJ]||lJ(uJ,{}),hJ=IJ;(sJ.exports=function(e,A){return hJ[e]||(hJ[e]=void 0!==A?A:{})})("versions",[]).push({version:"3.31.1",mode:"pure",copyright:"漏 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var CJ=sJ.exports,dJ=EH,EJ=Object,fJ=function(e){return EJ(dJ(e))},BJ=fJ,QJ=KP({}.hasOwnProperty),pJ=Object.hasOwn||function(e,A){return QJ(BJ(e),A)},vJ=KP,yJ=0,mJ=Math.random(),DJ=vJ(1..toString),wJ=function(e){return"Symbol("+(void 0===e?"":e)+")_"+DJ(++yJ+mJ,36)},RJ=CJ,kJ=pJ,SJ=wJ,MJ=PH,GJ=HH,_J=RP.Symbol,bJ=RJ("wks"),TJ=GJ?_J.for||_J:_J&&_J.withoutSetter||SJ,FJ=function(e){return kJ(bJ,e)||(bJ[e]=MJ&&kJ(_J,e)?_J[e]:TJ("Symbol."+e)),bJ[e]},NJ=AH,LJ=yH,UJ=XH,KJ=nJ,xJ=function(e,A){var t,n;if("string"===A&&iJ(t=e.toString)&&!oJ(n=rJ(t,e)))return n;if(iJ(t=e.valueOf)&&!oJ(n=rJ(t,e)))return n;if("string"!==A&&iJ(t=e.toString)&&!oJ(n=rJ(t,e)))return n;throw aJ("Can't convert object to primitive value")},YJ=TypeError,PJ=FJ("toPrimitive"),HJ=function(e,A){if(!LJ(e)||UJ(e))return e;var t,n=KJ(e,PJ);if(n){if(void 0===A&&(A="default"),t=NJ(n,e,A),!LJ(t)||UJ(t))return t;throw YJ("Can't convert object to primitive value")}return void 0===A&&(A="number"),xJ(e,A)},JJ=XH,OJ=function(e){var A=HJ(e,"string");return JJ(A)?A:A+""},zJ=yH,jJ=RP.document,XJ=zJ(jJ)&&zJ(jJ.createElement),qJ=function(e){return XJ?jJ.createElement(e):{}},VJ=qJ,WJ=!ZP&&!kP((function(){return 7!=Iy(VJ("div"),"a",{get:function(){return 7}}).a})),ZJ=ZP,$J=AH,eO=tH,AO=sH,tO=QH,nO=OJ,rO=pJ,iO=WJ,oO=cy;WP.f=ZJ?oO:function(e,A){if(e=tO(e),A=nO(A),iO)try{return oO(e,A)}catch(t){}if(rO(e,A))return AO(!$J(eO.f,e,A),e[A])};var aO=kP,sO=VP,gO=/#|\.prototype\./,cO=function(e,A){var t=uO[lO(e)];return t==hO||t!=IO&&(sO(A)?aO(A):!!A)},lO=cO.normalize=function(e){return String(e).replace(gO,".").toLowerCase()},uO=cO.data={},IO=cO.NATIVE="N",hO=cO.POLYFILL="P",CO=cO,dO=eJ,EO=SP,fO=zP(zP.bind),BO=function(e,A){return dO(e),void 0===A?e:EO?fO(e,A):function(){return e.apply(A,arguments)}},QO={},pO=ZP&&kP((function(){return 42!=Iy((function(){}),"prototype",{value:42,writable:!1}).prototype})),vO=yH,yO=String,mO=TypeError,DO=function(e){if(vO(e))return e;throw mO(yO(e)+" is not an object")},wO=ZP,RO=WJ,kO=pO,SO=DO,MO=OJ,GO=TypeError,_O=Iy,bO=cy,TO="enumerable",FO="configurable",NO="writable";QO.f=wO?kO?function(e,A,t){if(SO(e),A=MO(A),SO(t),"function"==typeof e&&"prototype"===A&&"value"in t&&NO in t&&!t[NO]){var n=bO(e,A);n&&n[NO]&&(e[A]=t.value,t={configurable:FO in t?t[FO]:n[FO],enumerable:TO in t?t[TO]:n[TO],writable:!1})}return _O(e,A,t)}:_O:function(e,A,t){if(SO(e),A=MO(A),SO(t),RO)try{return _O(e,A,t)}catch(n){}if("get"in t||"set"in t)throw GO("Accessors not supported");return"value"in t&&(e[A]=t.value),e};var LO=QO,UO=sH,KO=ZP?function(e,A,t){return LO.f(e,A,UO(1,t))}:function(e,A,t){return e[A]=t,e},xO=RP,YO=TP,PO=zP,HO=VP,JO=WP.f,OO=CO,zO=mH,jO=BO,XO=KO,qO=pJ,VO=function(e){var A=function A(t,n,r){if(this instanceof A){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return YO(e,this,arguments)};return A.prototype=e.prototype,A},WO=function(e,A){var t,n,r,i,o,a,s,g,c,l=e.target,u=e.global,I=e.stat,h=e.proto,C=u?xO:I?xO[l]:(xO[l]||{}).prototype,d=u?zO:zO[l]||XO(zO,l,{})[l],E=d.prototype;for(i in A)n=!(t=OO(u?i:l+(I?".":"#")+i,e.forced))&&C&&qO(C,i),a=d[i],n&&(s=e.dontCallGetSet?(c=JO(C,i))&&c.value:C[i]),o=n&&s?s:A[i],n&&wc(a)==wc(o)||(g=e.bind&&n?jO(o,xO):e.wrap&&n?VO(o):h&&HO(o)?PO(o):o,(e.sham||o&&o.sham||a&&a.sham)&&XO(g,"sham",!0),XO(d,i,g),h&&(qO(zO,r=l+"Prototype")||XO(zO,r,{}),XO(zO[r],i,o),e.real&&E&&(t||!E[i])&&XO(E,i,o)))},ZO=HP,$O=Array.isArray||function(e){return"Array"==ZO(e)},ez=Math.ceil,Az=Math.floor,tz=IY||function(e){var A=+e;return(A>0?Az:ez)(A)},nz=tz,rz=function(e){var A=+e;return A!=A||0===A?0:nz(A)},iz=rz,oz=Math.min,az=function(e){return e>0?oz(iz(e),9007199254740991):0},sz=function(e){return az(e.length)},gz=TypeError,cz=function(e){if(e>9007199254740991)throw gz("Maximum allowed index exceeded");return e},lz=OJ,uz=QO,Iz=sH,hz=function(e,A,t){var n=lz(A);n in e?uz.f(e,n,Iz(0,t)):e[n]=t},Cz={};Cz[FJ("toStringTag")]="z";var dz="[object z]"===String(Cz),Ez=dz,fz=VP,Bz=HP,Qz=FJ("toStringTag"),pz=Object,vz="Arguments"==Bz(function(){return arguments}()),yz=Ez?Bz:function(e){var A,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,A){try{return e[A]}catch(t){}}(A=pz(e),Qz))?t:vz?Bz(A):"Object"==(n=Bz(A))&&fz(A.callee)?"Arguments":n},mz=VP,Dz=IJ,wz=KP(Function.toString);mz(Dz.inspectSource)||(Dz.inspectSource=function(e){return wz(e)});var Rz=Dz.inspectSource,kz=KP,Sz=kP,Mz=VP,Gz=yz,_z=Rz,bz=function(){},Tz=[],Fz=SH("Reflect","construct"),Nz=/^\s*(?:class|function)\b/,Lz=kz(Nz.exec),Uz=!Nz.exec(bz),Kz=function(e){if(!Mz(e))return!1;try{return Fz(bz,Tz,e),!0}catch(A){return!1}},xz=function(e){if(!Mz(e))return!1;switch(Gz(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return Uz||!!Lz(Nz,_z(e))}catch(A){return!0}};xz.sham=!0;var Yz=!Fz||Sz((function(){var e;return Kz(Kz.call)||!Kz(Object)||!Kz((function(){e=!0}))||e}))?xz:Kz,Pz=$O,Hz=Yz,Jz=yH,Oz=FJ("species"),zz=Array,jz=function(e){var A;return Pz(e)&&(A=e.constructor,(Hz(A)&&(A===zz||Pz(A.prototype))||Jz(A)&&null===(A=A[Oz]))&&(A=void 0)),void 0===A?zz:A},Xz=function(e,A){return new(jz(e))(0===A?0:A)},qz=kP,Vz=UH,Wz=FJ("species"),Zz=function(e){return Vz>=51||!qz((function(){var A=[];return(A.constructor={})[Wz]=function(){return{foo:1}},1!==A[e](Boolean).foo}))},$z=WO,ej=kP,Aj=$O,tj=yH,nj=fJ,rj=sz,ij=cz,oj=hz,aj=Xz,sj=Zz,gj=UH,cj=FJ("isConcatSpreadable"),lj=gj>=51||!ej((function(){var e=[];return e[cj]=!1,xf(e).call(e)[0]!==e})),uj=function(e){if(!tj(e))return!1;var A=e[cj];return void 0!==A?!!A:Aj(e)};$z({target:"Array",proto:!0,arity:1,forced:!lj||!sj("concat")},{concat:function(e){var A,t,n,r,i,o=nj(this),a=aj(o,0),s=0;for(A=-1,n=arguments.length;Aa;)if((r=i[a++])!=r)return!0}else for(;o>a;a++)if((e||a in i)&&i[a]===t)return e||a||0;return!e&&-1}},Dj={includes:mj(!0),indexOf:mj(!1)},wj={},Rj=KP,kj=pJ,Sj=QH,Mj=zp(Dj),Gj=wj,_j=Rj([].push),bj=function(e,A){var t,n=Sj(e),r=0,i=[];for(t in n)!kj(Gj,t)&&kj(n,t)&&_j(i,t);for(;A.length>r;)kj(n,t=A[r++])&&(~Mj(i,t)||_j(i,t));return i},Tj=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Fj=bj,Nj=Tj,Lj=jp||function(e){return Fj(e,Nj)},Uj=ZP,Kj=pO,xj=QO,Yj=DO,Pj=QH,Hj=Lj;dj.f=Uj&&!Kj?uy:function(e,A){Yj(e);for(var t,n=Pj(A),r=Hj(A),i=r.length,o=0;i>o;)xj.f(e,t=r[o++],n[t]);return e};var Jj,Oj=SH("document","documentElement"),zj=wJ,jj=CJ("keys"),Xj=function(e){return jj[e]||(jj[e]=zj(e))},qj=DO,Vj=dj,Wj=Tj,Zj=wj,$j=Oj,eX=qJ,AX="prototype",tX="script",nX=Xj("IE_PROTO"),rX=function(){},iX=function(e){return"<"+tX+">"+e+""},oX=function(e){e.write(iX("")),e.close();var A=e.parentWindow.Object;return e=null,A},aX=function(){try{Jj=new ActiveXObject("htmlfile")}catch(A){}aX="undefined"!=typeof document?document.domain&&Jj?oX(Jj):function(){var e,A=eX("iframe"),t="java"+tX+":";return A.style.display="none",$j.appendChild(A),A.src=String(t),(e=A.contentWindow.document).open(),e.write(iX("document.F=Object")),e.close(),e.F}():oX(Jj);for(var e=Wj.length;e--;)delete aX[AX][Wj[e]];return aX()};Zj[nX]=!0;var sX=Object.create||function(e,A){var t;return null!==e?(rX[AX]=qj(e),t=new rX,rX[AX]=null,t[nX]=e):t=aX(),void 0===A?t:Vj.f(t,A)},gX={},cX=bj,lX=Tj,uX=xf(lX).call(lX,"length","prototype");gX.f=fY||function(e){return cX(e,uX)};var IX={},hX=Qj,CX=sz,dX=hz,EX=Array,fX=Math.max,BX=function(e,A,t){for(var n=CX(e),r=hX(A,n),i=hX(void 0===t?n:t,n),o=EX(fX(i-r,0)),a=0;rf;f++)if((a||f in C)&&(I=d(u=C[f],f,h),e))if(A)Q[f]=I;else if(I)switch(e){case 3:return!0;case 5:return u;case 6:return f;case 2:pq(Q,u)}else switch(e){case 4:return!1;case 7:pq(Q,u)}return i?-1:n||r?r:Q}},yq={forEach:vq(0),map:vq(1),filter:vq(2),some:vq(3),every:vq(4),find:vq(5),findIndex:vq(6),filterReject:vq(7)},mq=WO,Dq=RP,wq=AH,Rq=KP,kq=ZP,Sq=PH,Mq=kP,Gq=pJ,_q=MH,bq=DO,Tq=QH,Fq=OJ,Nq=Cj,Lq=sH,Uq=sX,Kq=Lj,xq=gX,Yq=IX,Pq=DX,Hq=WP,Jq=QO,Oq=dj,zq=tH,jq=RX,Xq=SX,qq=CJ,Vq=wj,Wq=wJ,Zq=FJ,$q=MX,eV=KX,AV=JX,tV=$X,nV=Cq,rV=yq.forEach,iV=Xj("hidden"),oV="Symbol",aV="prototype",sV=nV.set,gV=nV.getterFor(oV),cV=Object[aV],lV=Dq.Symbol,uV=lV&&lV[aV],IV=Dq.TypeError,hV=Dq.QObject,CV=Hq.f,dV=Jq.f,EV=Yq.f,fV=zq.f,BV=Rq([].push),QV=qq("symbols"),pV=qq("op-symbols"),vV=qq("wks"),yV=!hV||!hV[aV]||!hV[aV].findChild,mV=kq&&Mq((function(){return 7!=Uq(dV({},"a",{get:function(){return dV(this,"a",{value:7}).a}})).a}))?function(e,A,t){var n=CV(cV,A);n&&delete cV[A],dV(e,A,t),n&&e!==cV&&dV(cV,A,n)}:dV,DV=function(e,A){var t=QV[e]=Uq(uV);return sV(t,{type:oV,tag:e,description:A}),kq||(t.description=A),t},wV=function e(A,t,n){A===cV&&e(pV,t,n),bq(A);var r=Fq(t);return bq(n),Gq(QV,r)?(n.enumerable?(Gq(A,iV)&&A[iV][r]&&(A[iV][r]=!1),n=Uq(n,{enumerable:Lq(0,!1)})):(Gq(A,iV)||dV(A,iV,Lq(1,{})),A[iV][r]=!0),mV(A,r,n)):dV(A,r,n)},RV=function(e,A){var t;bq(e);var n=Tq(A),r=xf(t=Kq(n)).call(t,GV(n));return rV(r,(function(A){kq&&!wq(kV,n,A)||wV(e,A,n[A])})),e},kV=function(e){var A=Fq(e),t=wq(fV,this,A);return!(this===cV&&Gq(QV,A)&&!Gq(pV,A))&&(!(t||!Gq(this,A)||!Gq(QV,A)||Gq(this,iV)&&this[iV][A])||t)},SV=function(e,A){var t=Tq(e),n=Fq(A);if(t!==cV||!Gq(QV,n)||Gq(pV,n)){var r=CV(t,n);return!r||!Gq(QV,n)||Gq(t,iV)&&t[iV][n]||(r.enumerable=!0),r}},MV=function(e){var A=EV(Tq(e)),t=[];return rV(A,(function(e){Gq(QV,e)||Gq(Vq,e)||BV(t,e)})),t},GV=function(e){var A=e===cV,t=EV(A?pV:Tq(e)),n=[];return rV(t,(function(e){!Gq(QV,e)||A&&!Gq(cV,e)||BV(n,QV[e])})),n};Sq||(jq(uV=(lV=function(){if(_q(uV,this))throw IV("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?Nq(arguments[0]):void 0,A=Wq(e);return kq&&yV&&mV(cV,A,{configurable:!0,set:function e(t){this===cV&&wq(e,pV,t),Gq(this,iV)&&Gq(this[iV],A)&&(this[iV][A]=!1),mV(this,A,Lq(1,t))}}),DV(A,e)})[aV],"toString",(function(){return gV(this).tag})),jq(lV,"withoutSetter",(function(e){return DV(Wq(e),e)})),zq.f=kV,Jq.f=wV,Oq.f=RV,Hq.f=SV,xq.f=Yq.f=MV,Pq.f=GV,$q.f=function(e){return DV(Zq(e),e)},kq&&Xq(uV,"description",{configurable:!0,get:function(){return gV(this).description}})),mq({global:!0,constructor:!0,wrap:!0,forced:!Sq,sham:!Sq},{Symbol:lV}),rV(Kq(vV),(function(e){eV(e)})),mq({target:oV,stat:!0,forced:!Sq},{useSetter:function(){yV=!0},useSimple:function(){yV=!1}}),mq({target:"Object",stat:!0,forced:!Sq,sham:!kq},{create:function(e,A){return void 0===A?Uq(e):RV(Uq(e),A)},defineProperty:wV,defineProperties:RV,getOwnPropertyDescriptor:SV}),mq({target:"Object",stat:!0,forced:!Sq},{getOwnPropertyNames:MV}),AV(),tV(lV,oV),Vq[iV]=!0;var _V=PH&&!!BY&&!!QY,bV=WO,TV=SH,FV=pJ,NV=Cj,LV=CJ,UV=_V,KV=LV("string-to-symbol-registry"),xV=LV("symbol-to-string-registry");bV({target:"Symbol",stat:!0,forced:!UV},{for:function(e){var A=NV(e);if(FV(KV,A))return KV[A];var t=TV("Symbol")(A);return KV[A]=t,xV[t]=A,t}});var YV=WO,PV=pJ,HV=XH,JV=VH,OV=_V,zV=CJ("symbol-to-string-registry");YV({target:"Symbol",stat:!0,forced:!OV},{keyFor:function(e){if(!HV(e))throw TypeError(JV(e)+" is not a symbol");if(PV(zV,e))return zV[e]}});var jV=KP(Xp([])),XV=$O,qV=VP,VV=HP,WV=Cj,ZV=KP([].push),$V=WO,eW=SH,AW=TP,tW=AH,nW=KP,rW=kP,iW=VP,oW=XH,aW=jV,sW=function(e){if(qV(e))return e;if(XV(e)){for(var A=e.length,t=[],n=0;n=A.length?(e.target=void 0,YZ(void 0,!0)):YZ("keys"==t?n:"values"==t?A[n]:[n,A[n]],!1)}),"values"),UZ.Arguments=UZ.Array;var OZ={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},zZ=RP,jZ=yz,XZ=KO,qZ=bW,VZ=FJ("toStringTag");for(var WZ in OZ){var ZZ=zZ[WZ],$Z=ZZ&&ZZ.prototype;$Z&&jZ($Z)!==VZ&&XZ($Z,VZ,WZ),qZ[WZ]=qZ.Array}var e$=_W,A$=FJ,t$=QO.f,n$=A$("metadata"),r$=Function.prototype;void 0===r$[n$]&&t$(r$,n$,{value:null}),KX("dispose"),KX("metadata");var i$=e$;KX("asyncDispose");var o$=KP,a$=SH("Symbol"),s$=a$.keyFor,g$=o$(a$.prototype.valueOf),c$=a$.isRegisteredSymbol||function(e){try{return void 0!==s$(g$(e))}catch(A){return!1}};WO({target:"Symbol",stat:!0},{isRegisteredSymbol:c$});for(var l$=CJ,u$=SH,I$=KP,h$=XH,C$=FJ,d$=u$("Symbol"),E$=d$.isWellKnownSymbol,f$=u$("Object","getOwnPropertyNames"),B$=I$(d$.prototype.valueOf),Q$=l$("wks"),p$=0,v$=f$(d$),y$=v$.length;p$=a?e?"":void 0:(n=_$(i,o))<55296||n>56319||o+1===a||(r=_$(i,o+1))<56320||r>57343?e?G$(i,o):n:e?b$(i,o,o+2):r-56320+(n-55296<<10)+65536}},F$={codeAt:T$(!1),charAt:T$(!0)},N$=F$.charAt,L$=Cj,U$=Cq,K$=FZ,x$=NZ,Y$="String Iterator",P$=U$.set,H$=U$.getterFor(Y$);K$(String,"String",(function(e){P$(this,{type:Y$,string:L$(e),index:0})}),(function(){var e,A=H$(this),t=A.string,n=A.index;return n>=t.length?x$(void 0,!0):(e=N$(t,n),A.index+=e.length,x$(e,!1))}));var J$=DP(MX.f("iterator"));function O$(e){return(O$="function"==typeof w$&&"symbol"==wc(J$)?function(e){return wc(e)}:function(e){return e&&"function"==typeof w$&&e.constructor===w$&&e!==w$.prototype?"symbol":wc(e)})(e)}var z$=fJ,j$=Lj;WO({target:"Object",stat:!0,forced:kP((function(){j$(1)}))},{keys:function(e){return j$(z$(e))}});var X$=zv(mH.Object),q$=DP(X$),V$=DP(mH.Object.getOwnPropertySymbols),W$=WO,Z$=jv(yq);W$({target:"Array",proto:!0,forced:!Zz("filter")},{filter:function(e){return Z$(this,e,arguments.length>1?arguments[1]:void 0)}});var $$=mH,e0=function(e){return $$[e+"Prototype"]},A0=jv(e0("Array")),t0=MH,n0=A0,r0=Array.prototype,i0=function(e){var A=jv(e);return e===r0||t0(r0,e)&&A===jv(r0)?n0:A},o0=i0,a0=DP(o0),s0={exports:{}},g0=WO,c0=kP,l0=QH,u0=WP.f,I0=ZP;g0({target:"Object",stat:!0,forced:!I0||c0((function(){u0(1)})),sham:!I0},{getOwnPropertyDescriptor:function(e,A){return u0(l0(e),A)}});var h0=mH.Object,C0=s0.exports=function(e,A){return h0.getOwnPropertyDescriptor(e,A)};h0.getOwnPropertyDescriptor.sham&&(C0.sham=!0);var d0=DP(s0.exports),E0=$O,f0=TypeError,B0=cy,Q0=ZP&&!function(){if(void 0!==this)return!0;try{Iy([],"length",{writable:!1}).length=1}catch(P7){return P7 instanceof TypeError}}(),p0=Q0?function(e,A){if(E0(e)&&!B0(e,"length").writable)throw f0("Cannot set read only .length");return e.length=A}:function(e,A){return e.length=A},v0=WO,y0=fJ,m0=sz,D0=p0,w0=cz,R0=kP((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Iy([],"length",{writable:!1}).push()}catch(P7){return P7 instanceof TypeError}}();v0({target:"Array",proto:!0,arity:1,forced:R0},{push:function(e){var A=y0(this),t=m0(A),n=arguments.length;w0(t+n);for(var r=0;r1?arguments[1]:void 0)};WO({target:"Array",proto:!0,forced:[].forEach!=L0},{forEach:L0});var U0=e0("Array").forEach,K0=yz,x0=pJ,Y0=MH,P0=U0,H0=Array.prototype,J0={DOMTokenList:!0,NodeList:!0},O0=function(e){var A=e.forEach;return e===H0||Y0(H0,e)&&A===H0.forEach||x0(J0,K0(e))?P0:A},z0=O0,j0=DP(z0),X0=SH,q0=gX,V0=DX,W0=DO,Z0=KP(xf([])),$0=X0("Reflect","ownKeys")||function(e){var A=q0.f(W0(e)),t=V0.f;return t?Z0(A,t(e)):A},e1=$0,A1=QH,t1=WP,n1=hz;WO({target:"Object",stat:!0,sham:!ZP},{getOwnPropertyDescriptors:function(e){for(var A,t,n=A1(e),r=t1.f,i=e1(n),o={},a=0;i.length>a;)void 0!==(t=r(n,A=i[a++]))&&n1(o,A,t);return o}});var r1=DP(mH.Object.getOwnPropertyDescriptors),i1={exports:{}},o1=WO,a1=ZP,s1=dj.f;o1({target:"Object",stat:!0,forced:uy!==s1,sham:!a1},{defineProperties:s1});var g1=mH.Object,c1=i1.exports=function(e,A){return g1.defineProperties(e,A)};g1.defineProperties.sham&&(c1.sham=!0);var l1=DP(i1.exports),u1={exports:{}},I1=WO,h1=ZP,C1=QO.f;I1({target:"Object",stat:!0,forced:Iy!==C1,sham:!h1},{defineProperty:C1});var d1=mH.Object,E1=u1.exports=function(e,A,t){return d1.defineProperty(e,A,t)};d1.defineProperty.sham&&(E1.sham=!0);var f1=u1.exports,B1=DP(f1),Q1=DP(MX.f("toPrimitive"));function p1(e){var A=function(e,A){if("object"!==O$(e)||null===e)return e;var t=e[Q1];if(void 0!==t){var n=t.call(e,A||"default");if("object"!==O$(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(e)}(e,"string");return"symbol"===O$(A)?A:String(A)}function v1(e,A,t){return(A=p1(A))in e?B1(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function y1(e,A){var t=q$(e);if(V$){var n=V$(e);A&&(n=a0(n).call(n,(function(A){return d0(e,A).enumerable}))),b0(t).apply(t,n)}return t}function m1(e){for(var A=1;Ai;i++)if((a=E(e[i]))&&D2(G2,a))return a;return new M2(!1)}n=w2(e,r)}for(s=u?e.next:n.next;!(g=Q2(s,n)).done;){try{a=E(g.value)}catch(f){k2(n,"throw",f)}if("object"==wc(a)&&a&&D2(G2,a))return a}return new M2(!1)},b2=Cj,T2=WO,F2=MH,N2=XW,L2=QZ,U2=function(e,A,t){for(var n=N1(A),r=U1.f,i=L1.f,o=0;o2&&P2(n,arguments[2]);var i=[];return J2(A,X2,{that:i}),x2(n,"errors",i),n};L2?L2(q2,j2):U2(q2,j2,{name:!0});var V2=q2.prototype=K2(j2.prototype,{constructor:Y2(1,q2),message:Y2(1,""),name:Y2(1,"AggregateError")});T2({global:!0,constructor:!0,arity:2},{AggregateError:q2});var W2,Z2,$2,e5,A5="undefined"!=typeof process&&"process"==HP(process),t5=SH,n5=SX,r5=ZP,i5=FJ("species"),o5=function(e){var A=t5(e);r5&&A&&!A[i5]&&n5(A,i5,{configurable:!0,get:function(){return this}})},a5=MH,s5=TypeError,g5=function(e,A){if(a5(A,e))return e;throw s5("Incorrect invocation")},c5=Yz,l5=VH,u5=TypeError,I5=function(e){if(c5(e))return e;throw u5(l5(e)+" is not a constructor")},h5=DO,C5=I5,d5=hH,E5=FJ("species"),f5=function(e,A){var t,n=h5(e).constructor;return void 0===n||d5(t=h5(n)[E5])?A:C5(t)},B5=TypeError,Q5=function(e,A){if(e=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(a&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&t.call(r,"finallyLoc")&&this.prev=0;--A){var t=this.tryEntries[A];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),y(t),l}},catch:function(e){for(var A=this.tryEntries.length-1;A>=0;--A){var t=this.tryEntries[A];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var r=n.arg;y(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,A,t){return this.delegate={iterator:D(e),resultName:A,nextLoc:t},"next"===this.method&&(this.arg=void 0),l}},e}function Q8(e,A,t,n,r,i,o){try{var a=e[i](o),s=a.value}catch(g){return void t(g)}a.done?A(s):x6.resolve(s).then(n,r)}function p8(e){return function(){var A=this,t=arguments;return new x6((function(n,r){var i=e.apply(A,t);function o(e){Q8(i,n,r,o,a,"next",e)}function a(e){Q8(i,n,r,o,a,"throw",e)}o(void 0)}))}}function v8(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")}function y8(e,A){for(var t=0;tr;)for(var a,s=K8(arguments[r++]),g=i?P8(F8(s),i(s)):F8(s),c=g.length,l=0;c>l;)a=g[l++],_8&&!b8(o,s,a)||(t[a]=s[a]);return t}:x8;WO({target:"Object",stat:!0,arity:2,forced:sy!==H8},{assign:H8});var J8=DP(mH.Object.assign),O8=xf(e0("Array")),z8=MH,j8=O8,X8=Array.prototype,q8=function(e){var A=xf(e);return e===X8||z8(X8,e)&&A===xf(X8)?j8:A},V8=DP(q8),W8=DP(o0),Z8=WO,$8=Jp(yq);Z8({target:"Array",proto:!0,forced:!Zz("map")},{map:function(e){return $8(this,e,arguments.length>1?arguments[1]:void 0)}});var e7=Jp(e0("Array")),A7=MH,t7=e7,n7=Array.prototype,r7=function(e){var A=Jp(e);return e===n7||A7(n7,e)&&A===Jp(n7)?t7:A},i7=DP(r7),o7=WO,a7=PT(Dj);o7({target:"Array",proto:!0,forced:kP((function(){var e;return!PT(e=Array(1)).call(e)}))},{includes:function(e){return a7(this,e,arguments.length>1?arguments[1]:void 0)}});var s7=PT(e0("Array")),g7=yH,c7=HP,l7=FJ("match"),u7=function(e){var A;return g7(e)&&(void 0!==(A=e[l7])?!!A:"RegExp"==c7(e))},I7=TypeError,h7=FJ("match"),C7=WO,d7=function(e){if(u7(e))throw I7("The method doesn't accept regular expressions");return e},E7=EH,f7=Cj,B7=function(e){var A=/./;try{"/./"[e](A)}catch(t){try{return A[h7]=!1,"/./"[e](A)}catch(n){}}return!1},Q7=KP(zp(""));C7({target:"String",proto:!0,forced:!B7("includes")},{includes:function(e){return!!~Q7(f7(E7(this)),f7(d7(e)),arguments.length>1?arguments[1]:void 0)}});var p7=PT(e0("String")),v7=MH,y7=s7,m7=p7,D7=Array.prototype,w7=String.prototype,R7=function(e){var A=PT(e);return e===D7||v7(D7,e)&&A===PT(D7)?y7:"string"==typeof e||e===w7||v7(w7,e)&&A===PT(w7)?m7:A},k7=DP(R7);function S7(e){return function(A){var t;return null==A?void 0:k7(t=A.split("?")[0].toLowerCase()).call(t,e)}}var M7=S7(".m3u8"),G7=S7(".mp4"),_7=S7(".flv"),b7=S7(".sdp"),T7=S7(".mpd");function F7(e,A){try{"object"===("undefined"==typeof window?"undefined":O$(window))&&window.localStorage&&window.localStorage.setItem(e,A)}catch(t){}}function N7(e){try{return"object"===("undefined"==typeof window?"undefined":O$(window))&&window.localStorage?window.localStorage.getItem(e):null}catch(A){return null}}function L7(e){return e.replace(/[A-Z]/g,(function(e){return"_".concat(e.toLowerCase())}))}function U7(e){if(!e||"[object Object]"!==Object.prototype.toString.call(e))return{};var A={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[L7(t)]=e[t]);return A}RY({__proto__:null,camelToSnake:L7,convertToSnakeCase:U7,getLocalStorage:N7,getStreamType:function(e){return M7(e)?"hls":_7(e)?"flv":b7(e)?"rtm":G7(e)?"mp4":T7(e)?"dash":"unknown"},isDash:T7,isFlv:_7,isHls:M7,isMp4:G7,isRtm:b7,removeLocalStorage:function(e){try{return"object"===("undefined"==typeof window?"undefined":O$(window))&&window.localStorage?window.localStorage.removeItem(e):null}catch(A){return null}},setLocalStorage:F7});var K7=WO,x7=Date,Y7=KP(x7.prototype.getTime);K7({target:"Date",stat:!0},{now:function(){return Y7(new x7)}});var P7,H7=DP(mH.Date.now),J7=((P7=J7||{}).VOD="VOD",P7.LIVE="LIVE",P7),O7=function(e){return e.CN="cn",e.SG="sg",e.US="us",e}(O7||{}),z7=function(e){return e.MP4="mp4",e.DASH="dash",e}(z7||{}),j7=function(e){return e.h265="h265",e.adaptRange="adaptRange",e.preload="preload",e.rtmAdaptiveBuffer="rtmAdaptiveBuffer",e}(j7||{}),X7={info:3,warn:2,error:1},q7=function(){function e(A,t){var n=this;v8(this,e),v1(this,"logger",void 0),v1(this,"level",void 0),v1(this,"customLogger",void 0),this.level=null==t?void 0:t.level,this.customLogger=null==t?void 0:t.logger,this.logger=function(e,t){var r,i,o,a;try{a="0.0.0-feat-rtm-jb-20250716120923"}catch(y){a="--"}for(var s,g,c,l,u,I,h,C,d,E,f,B=V8(r=V8(i="[".concat(A,"][")).call(i,a,"][")).call(r,t,"]"),Q=arguments.length,p=new Array(Q>2?Q-2:0),v=2;v=X7[e]||"undefined"!=typeof window&&n._checkOpenLog())&&(null===(d=window.console)||void 0===d||null===(E=d[e])||void 0===E||E.call.apply(E,V8(f=[d,B]).call(f,p)))}}return m8(e,[{key:"update",value:function(e){var A=e||{},t=A.logger,n=A.level;this.updateLevel(n),this.updateLogger(t)}},{key:"info",value:function(e){for(var A,t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;rthis.serviceStrategyConfig.local_cache_expired_at)||this.serviceStrategyConfig.cache_key!==(null===(e=this.serviceStrategyConfigLoader)||void 0===e?void 0:e.getCacheKey())}}]),e}(),t9=KP,n9=eJ,r9=yH,i9=pJ,o9=jV,a9=SP,s9=Function,g9=t9(xf([])),c9=t9([].join),l9={},u9=a9?s9.bind:function(e){var A=n9(this),t=A.prototype,n=o9(arguments,1),r=function t(){var r=g9(n,o9(arguments));return this instanceof t?function(e,A,t){if(!i9(l9,A)){for(var n=[],r=0;r0&&(r+=A)})),r=0===r?1:r;for(var i=0;i1e3)try{e.off("timeupdate",i);var o=e.video.getVideoPlaybackQuality();localStorage.setItem("player_".concat(A,"_fps"),o.totalVideoFrames-n+"")}catch(s){}}else if(r.bufferLength>1){var a=e.video.getVideoPlaybackQuality();n=a.totalVideoFrames,t=H7()}}else e.off("timeupdate",i)})))}},{key:"bufferLength",get:function(){var e=this._player.getBufferedRange();if(!this._player.video)return 0;var A=this._player.video.currentTime,t=e[1]-Math.max(e[0],A);return Math.max(0,t)}}]),t}(),W9=WO,Z9=Math.log,$9=Math.LN2;W9({target:"Math",stat:!0},{log2:function(e){return Z9(e)/$9}});var eee=DP(mH.Math.log2),Aee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){var A=navigator.hardwareConcurrency,t=0;if(A>0){var n=eee(A);t=n<=2?3*n:n<=3?1.6*(n-2)+6:.523*(n-3)+7.6}e({score:t,origin:A})}))}}]),e}(),tee=new Aee,nee=Math.log,ree=Math.LOG10E,iee=MY||function(e){return nee(e)*ree};WO({target:"Math",stat:!0},{log10:iee});var oee=DP(mH.Math.log10),aee=Y9,see=function(e,A,t){return function(e,A,t){A in e?aee(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==O$(A)?A+"":A,t),t},gee=function(){function e(){v8(this,e),see(this,"_worker"),see(this,"_getScoreCallback",(function(){}))}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){try{var A=new Image;A.src="//lf6-cdn-tos.douyinstatic.com/obj/venus/pc-theme/spring/20230411-162827.jpeg",A.onload=function(){var t=H7();"function"==typeof A.decode?A.decode().then((function(){var A=1e3/(H7()-t),n=0;if(A>0){var r=oee(A);n=r<=1?6*r:r<=2?1.6*(r-1)+6:2.4*(r-2)+7.6}e({score:n,origin:A})})):e({score:0,origin:-1})}}catch(t){e({score:0,origin:-1})}}))}}]),e}(),cee=new gee,lee=fJ,uee=Qj,Iee=sz,hee=function(e){for(var A=lee(this),t=Iee(A),n=arguments.length,r=uee(n>1?arguments[1]:void 0,t),i=n>2?arguments[2]:void 0,o=void 0===i?t:uee(i,t);o>r;)A[r++]=e;return A};WO({target:"Array",proto:!0},{fill:hee});var Cee=ZT(e0("Array")),dee=MH,Eee=Cee,fee=Array.prototype,Bee=function(e){var A=ZT(e);return e===fee||dee(fee,e)&&A===ZT(fee)?Eee:A},Qee=DP(Bee),pee=function(){function e(){v8(this,e)}return m8(e,[{key:"_getOrigin",value:function(){var e=new Uint8Array(3686400);Qee(e).call(e,8);var A=performance.now();return 1e3/(performance.now()-A)}},{key:"getScore",value:function(){var e=this;return new D8((function(A){A({score:0,origin:e._getOrigin()})}))}}]),e}(),vee=new pee,yee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){e({score:0,origin:navigator.deviceMemory})}))}}]),e}(),mee=new yee,Dee=function(){function e(){v8(this,e)}return m8(e,[{key:"getScore",value:function(){return new D8((function(e){var A,t=null==(A=null==navigator?void 0:navigator.connection)?void 0:A.downlink,n=0;t>0&&t<1e6&&(n=t<1?60*t:t<5?.4*(t-1)+6.01:.02*(t-5)+7.61),e({score:n,origin:t})}))}}]),e}(),wee=new Dee,Ree=eJ,kee=fJ,See=IH,Mee=sz,Gee=TypeError,_ee=function(e){return function(A,t,n,r){Ree(t);var i=kee(A),o=See(i),a=Mee(i),s=e?a-1:0,g=e?-1:1;if(n<2)for(;;){if(s in o){r=o[s],s+=g;break}if(s+=g,e?s<0:a<=s)throw Gee("Reduce of empty array with no initial value")}for(;e?s>=0:a>s;s+=g)s in o&&(r=t(r,o[s],s,i));return r}},bee={left:_ee(!1),right:_ee(!0)}.left;WO({target:"Array",proto:!0,forced:!A5&&UH>79&&UH<83||!F0("reduce")},{reduce:function(e){var A=arguments.length;return bee(this,e,A,A>1?arguments[1]:void 0)}});var Tee=wF(e0("Array")),Fee=MH,Nee=Tee,Lee=Array.prototype,Uee=function(e){var A=wF(e);return e===Lee||Fee(Lee,e)&&A===wF(Lee)?Nee:A},Kee=DP(Uee),xee=function(){function e(){v8(this,e)}return m8(e,[{key:"_getBandwidth",value:function(){var e;if(!performance.getEntries)return-1;var A=W8(e=performance.getEntries()).call(e,(function(e){var A=e.initiatorType,t=e.decodedBodySize;return"img"===A&&t>0})),t=Kee(A).call(A,(function(e,A){return e+1e3*A.decodedBodySize/(A.responseEnd-A.responseStart)}),0);return A.length?t/A.length/1024:0}},{key:"getScore",value:function(){var e=this;return new D8((function(A,t){try{var n=e._getBandwidth(),r=0;n>0&&n<1e6&&(r=n<1?60*performance_speed:n<5?.4*(performance_speed-1)+6.01:.02*(performance_speed-5)+7.61),A({score:r,origin:n})}catch(i){A({score:0,origin:-1})}}))}}]),e}(),Yee=new xee,Pee=function(e){return e.H264="h264",e.H265="h265",e}(Pee||{}),Hee=Y9,Jee=function(e,A,t){return function(e,A,t){A in e?Hee(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==O$(A)?A+"":A,t),t},Oee=function(){function e(A){v8(this,e),Jee(this,"_origin"),Jee(this,"_codec"),this._codec=A}return m8(e,[{key:"_getOrigin",value:function(){try{var e=localStorage.getItem("player_".concat(this._codec,"_fps"))||-1;return Number(e)}catch(A){return-1}}},{key:"getScore",value:function(){var e=this;return new D8((function(A){var t=e._origin||e._getOrigin(),n=0;t>0&&t<=120&&(n=t<=30?.2*t:t<=60?.0533*(t-30)+6:.04*(t-60)+7.6),A({score:n,origin:t})}))}}]),e}(),zee={plugins:{cpu:{cls:O9,factor:8,plugins:{cpu_core_number:{factor:4,instance:tee},decodeImg:{factor:3,instance:cee}}},memory:{cls:z9,factor:0,plugins:{copy:{factor:5,instance:vee},usage:{factor:5,instance:mee}}},net:{cls:j9,factor:9,plugins:{downlink:{factor:5,instance:wee},performance:{factor:4,instance:Yee}}},render:{cls:V9,factor:0,plugins:{avc:{factor:5,instance:new(function(e){p9(t,Oee);var A=x9(t);function t(e){return v8(this,t),A.call(this,e)}return m8(t)}())(Pee.H264)},hevc:{factor:5,instance:new(function(e){p9(t,Oee);var A=x9(t);function t(e){return v8(this,t),A.call(this,e)}return m8(t)}())(Pee.H265)}}}}},jee=function(e){p9(t,J9);var A=x9(t);function t(e){return v8(this,t),A.call(this,J8({},zee,e))}return m8(t,[{key:"setPlayer",value:function(e,A){var t,n;(null==(t=this.options.plugins.render)?void 0:t.instance)&&(null==(n=this.options.plugins.render)||n.instance.setPlayer(e,A))}}]),t}(),Xee="\t\n\v\f\r 聽釟€鈥€鈥佲€傗€冣€勨€呪€嗏€団€堚€夆€娾€仧銆€\u2028\u2029\ufeff",qee=EH,Vee=Cj,Wee=Xee,Zee=KP("".replace),$ee=RegExp("^["+Wee+"]+"),eAe=RegExp("(^|[^"+Wee+"])["+Wee+"]+$"),AAe=function(e){return function(A){var t=Vee(qee(A));return 1&e&&(t=Zee(t,$ee,"")),2&e&&(t=Zee(t,eAe,"$1")),t}},tAe={start:AAe(1),end:AAe(2),trim:AAe(3)},nAe=KW.PROPER,rAe=kP,iAe=Xee,oAe=WO,aAe=lD(tAe),sAe=function(e){return rAe((function(){return!!iAe[e]()||"鈥嬄呩爭"!=="鈥嬄呩爭"[e]()||nAe&&iAe[e].name!==e}))};oAe({target:"String",proto:!0,forced:sAe("trim")},{trim:function(){return aAe(this)}});var gAe=lD(e0("String")),cAe=MH,lAe=gAe,uAe=String.prototype,IAe=function(e){var A=lD(e);return"string"==typeof e||e===uAe||cAe(uAe,e)&&A===lD(uAe)?lAe:A},hAe=DP(IAe),CAe=/ANGLE\s+\((?:[^,]+,\s+)?([^,/]+)?(?:[^,]*)(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,dAe=/ANGLE\s+\((?:[^,]+,\s+)?([^,]+)?(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,EAe="OpenGL Engine",fAe="Unknow",BAe=4318,QAe=32902,pAe=4098,vAe=function(e){return e.CpuDeriver="CpuDeriver",e.Intel="Intel",e.Nvidia="NVIDIA",e.Amd="AMD",e.Apple="Apple",e[e.Unknow=fAe]="Unknow",e}(vAe||{});function yAe(e){return"NVIDIA"===e?BAe:"AMD"===e?pAe:"Intel"===e?QAe:0}function mAe(e){var A,t,n,r,i=function(e){var A=/(SwiftShader|Intel|NVIDIA|AMD|Radeon|Apple)/.exec(e);return A?"Radeon"===A[0]?"AMD":"SwiftShader"===A[0]?"CpuDeriver":A[0]:vAe.Unknow}(e);return i===vAe.Unknow||"CpuDeriver"===i?{vendor:i,vendorId:0,model:fAe,backupModel:fAe,api:fAe}:/^ANGLE/.test(e)?function(e,A){var t,n,r,i,o,a=fAe,s=fAe,g=fAe;return"Intel"!==e&&"NVIDIA"!==e||(t=CAe.exec(A)),"AMD"!==e&&"Apple"!==e||(t=dAe.exec(A)),(null==t?void 0:t[1])&&(null==t?void 0:t[2])&&(a=hAe(n=t[1].replace(/(AMD|NVIDIA)/,"")).call(n),g=hAe(r=t[2]).call(r)),s="Intel"===e?a=hAe(i=a.split(EAe)[0]).call(i):hAe(o=a.split(EAe)[0]).call(o),{vendor:e,vendorId:yAe(e),model:a,backupModel:s,api:g}}(i,e):"Intel"===i?{vendor:i,vendorId:yAe(i),model:hAe(n=e.split(EAe)[0]).call(n),backupModel:hAe(r=e.split(EAe)[0]).call(r),api:fAe}:{vendor:i,vendorId:yAe(i),model:hAe(A=e.replace(/(AMD|NVIDIA)/,"")).call(A),backupModel:hAe(t=e.split(EAe)[0].replace(/(AMD|NVIDIA)/,"")).call(t),api:fAe}}var DAe=RP,wAe=kP,RAe=KP,kAe=Cj,SAe=lD(tAe),MAe=Xee,GAe=DAe.parseInt,_Ae=DAe.Symbol,bAe=_Ae&&_Ae.iterator,TAe=/^[+-]?0x/i,FAe=RAe(TAe.exec),NAe=8!==GAe(MAe+"08")||22!==GAe(MAe+"0x16")||bAe&&!wAe((function(){GAe(Object(bAe))}))?function(e,A){var t=SAe(kAe(e));return GAe(t,A>>>0||(FAe(TAe,t)?16:10))}:GAe;WO({global:!0,forced:Uv!=NAe},{parseInt:NAe});var LAe=DP(mH.parseInt),UAe=RP,KAe=kP,xAe=KP,YAe=Cj,PAe=lD(tAe),HAe=Xee,JAe=xAe("".charAt),OAe=UAe.parseFloat,zAe=UAe.Symbol,jAe=zAe&&zAe.iterator,XAe=1/OAe(HAe+"-0")!=-1/0||jAe&&!KAe((function(){OAe(Object(jAe))}))?function(e){var A=PAe(YAe(e)),t=OAe(A);return 0===t&&"-"==JAe(A,0)?-0:t}:OAe;WO({global:!0,forced:tD!=XAe},{parseFloat:XAe});var qAe=DP(mH.parseFloat),VAe="g_ven";function WAe(e,A){var t,n;return t=A===vAe.Intel?i7(n=e.split("\n")).call(n,(function(e){return"Intel(R) ".concat(e)})):e.split("\n"),i7(t).call(t,(function(e){return e.split("|")}))}function ZAe(e){return 0===e?0:-1===e?-1:qAe(eee(e).toFixed(2))}var $Ae={AMD_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_am.txt",INTEL_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_int.txt",NVIDIA_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_nvi.txt"},ete=[],Ate=[],tte=[];function nte(){return(nte=p8(B8().mark((function e(A){var t,n,r;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A!==vAe.Intel){e.next=4;break}if(!ete.length){e.next=3;break}return e.abrupt("return",ete);case 3:t=$Ae.INTEL_PATH;case 4:if(A!==vAe.Nvidia){e.next=8;break}if(!Ate.length){e.next=7;break}return e.abrupt("return",Ate);case 7:t=$Ae.NVIDIA_PATH;case 8:if(A!==vAe.Amd){e.next=12;break}if(!tte.length){e.next=11;break}return e.abrupt("return",tte);case 11:t=$Ae.AMD_PATH;case 12:if(t){e.next=14;break}return e.abrupt("return",D8.resolve([]));case 14:return e.prev=14,e.next=17,fetch(t).then((function(e){return e.text()}));case 17:return n=e.sent,r=WAe(n,A),A===vAe.Intel&&(ete=r),A===vAe.Nvidia&&(Ate=r),A===vAe.Amd&&(tte=r),e.abrupt("return",r);case 25:e.prev=25,e.t0=e.catch(14);case 27:return e.abrupt("return",[]);case 28:case"end":return e.stop()}}),e,null,[[14,25]])})))).apply(this,arguments)}function rte(e){return e?function(e){return nte.apply(this,arguments)}(e.vendor).then((function(A){return function(e,A){var t=W8(e).call(e,(function(e){return e[0]===A.model}));t.length||(t=W8(e).call(e,(function(e){return e[0]===A.backupModel}))),t.length||A.vendor!==vAe.Intel||/^Intel(R)/.test(A.model)||(t=W8(e).call(e,(function(e){return e[0]==="Intel(R) "+A.model})));var n="-1";if(t.length){var r=t[0][1];n="-1"===r?"0":r}return LAe(n)}(A,e)})).then(ZAe):D8.resolve(0)}var ite="";function ote(){return ite||(ite=function(){try{var e=localStorage.getItem(VAe)||"";if(e)return e;var A,t=document.createElement("canvas").getContext("webgl");if(t)return(e=(A=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(A.UNMASKED_RENDERER_WEBGL):"")&&localStorage.setItem(VAe,e),e}catch(n){}return""}())}function ate(e){var A;try{A=mAe(e||ste.getGPUVendor())}catch(t){return null}return A}var ste=function(){function e(){v8(this,e)}return m8(e,null,[{key:"getGPUVendor",value:function(){return ote()}},{key:"parseVendorAsync",value:function(e){var A=ate(e);return A?rte(A).then((function(e){return m1(m1({},A||{}),{},{score:e})})).catch((function(){return null})):D8.resolve(null)}}]),e}();function gte(){var e=!1;if("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)return e;if(e=MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"')){var A=ate();e=!!A&&A.vendor!==vAe.CpuDeriver}return e}var cte=DP(R1),lte=DP(_1),ute=DP(V6),Ite=DP(E8),hte=WO,Cte=qf(yq),dte=!0;"find"in[]&&qf(pP=Array(1)).call(pP,(function(){dte=!1})),hte({target:"Array",proto:!0,forced:dte},{find:function(e){return Cte(this,e,arguments.length>1?arguments[1]:void 0)}});var Ete=qf(e0("Array")),fte=MH,Bte=Ete,Qte=Array.prototype,pte=function(e){var A=qf(e);return e===Qte||fte(Qte,e)&&A===qf(Qte)?Bte:A},vte=DP(pte),yte=yq.some;WO({target:"Array",proto:!0,forced:!F0("some")},{some:function(e){return yte(this,e,arguments.length>1?arguments[1]:void 0)}});var mte=e0("Array").some,Dte=MH,wte=mte,Rte=Array.prototype,kte=function(e){var A=e.some;return e===Rte||Dte(Rte,e)&&A===Rte.some?wte:A},Ste=DP(kte),Mte=WO,Gte=zP,_te=zp(Dj),bte=F0,Tte=Gte(zp([])),Fte=!!Tte&&1/Tte([1],1,-0)<0;Mte({target:"Array",proto:!0,forced:Fte||!bte("indexOf")},{indexOf:function(e){var A=arguments.length>1?arguments[1]:void 0;return Fte?Tte(this,e,A)||0:_te(this,e,A)}});var Nte=zp(e0("Array")),Lte=MH,Ute=Nte,Kte=Array.prototype,xte=function(e){var A=zp(e);return e===Kte||Lte(Kte,e)&&A===zp(Kte)?Ute:A},Yte=DP(xte),Pte=VH,Hte=TypeError,Jte=WO,Ote=fJ,zte=Qj,jte=rz,Xte=sz,qte=p0,Vte=cz,Wte=Xz,Zte=hz,$te=function(e,A){if(!delete e[A])throw Hte("Cannot delete property "+Pte(A)+" of "+Pte(e))},ene=Zz("splice"),Ane=Math.max,tne=Math.min;Jte({target:"Array",proto:!0,forced:!ene},{splice:function(e,A){var t,n,r,i,o,a,s=Ote(this),g=Xte(s),c=zte(e,g),l=arguments.length;for(0===l?t=n=0:1===l?(t=0,n=g-c):(t=l-2,n=tne(Ane(jte(A),0),g-c)),Vte(g+t-n),r=Wte(s,n),i=0;ig-n+t;i--)$te(s,i-1)}else if(t>n)for(i=g-n;i>c;i--)a=i+t-1,(o=i+n-1)in s?s[a]=s[o]:$te(s,a);for(i=0;i0&&t[1]||""}},{key:"getSecondMatch",value:function(e,A){var t=A.match(e);return t&&t.length>1&&t[2]||""}},{key:"matchAndReturnConst",value:function(e,A,t){if(e.test(A))return t}},{key:"getWindowsVersionName",value:function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}},{key:"getMacOSVersionName",value:function(e){var A,t,n=i7(A=sne(t=e.split(".")).call(t,0,2)).call(A,(function(e){return LAe(e,10)||0}));if(n.push(0),10===n[0])switch(n[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}},{key:"getAndroidVersionName",value:function(e){var A,t,n=i7(A=sne(t=e.split(".")).call(t,0,2)).call(A,(function(e){return LAe(e,10)||0}));if(n.push(0),!(1===n[0]&&n[1]<5))return 1===n[0]&&n[1]<6?"Cupcake":1===n[0]&&n[1]>=6?"Donut":2===n[0]&&n[1]<2?"Eclair":2===n[0]&&2===n[1]?"Froyo":2===n[0]&&n[1]>2?"Gingerbread":3===n[0]?"Honeycomb":4===n[0]&&n[1]<1?"Ice Cream Sandwich":4===n[0]&&n[1]<4?"Jelly Bean":4===n[0]&&n[1]>=4?"KitKat":5===n[0]?"Lollipop":6===n[0]?"Marshmallow":7===n[0]?"Nougat":8===n[0]?"Oreo":9===n[0]?"Pie":void 0}},{key:"getVersionPrecision",value:function(e){return e.split(".").length}},{key:"compareVersions",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.getVersionPrecision(A),i=e.getVersionPrecision(t),o=Math.max(r,i),a=0,s=i7(e).call(e,[A,t],(function(A){var t,n=o-e.getVersionPrecision(A),r=A+new Array(n+1).join(".0");return ute(t=i7(e).call(e,r.split("."),(function(e){return new Array(20-e.length).join("0")+e}))).call(t)}));for(n&&(a=o-Math.min(r,i)),o-=1;o>=a;){if(s[0][o]>s[1][o])return 1;if(s[0][o]===s[1][o]){if(o===a)return 0;o-=1}else if(s[0][o]1?i-1:0),a=1;a=3},describe:function(){return{type:lne.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:lne.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:lne.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:lne.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:lne.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:lne.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:lne.tv}}}],Bne=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:Ine.Blink};var A=hne.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:Ine.EdgeHTML,version:A}}},{test:[/trident/i],describe:function(e){var A={name:Ine.Trident},t=hne.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){return e.test(/presto/i)},describe:function(e){var A={name:Ine.Presto},t=hne.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){var A=e.test(/gecko/i),t=e.test(/like gecko/i);return A&&!t},describe:function(e){var A={name:Ine.Gecko},t=hne.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:Ine.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var A={name:Ine.WebKit},t=hne.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}}],Qne=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(v8(this,e),null==A||""===A)throw new Error("UserAgent parameter can't be empty");this._ua=A,this.parsedResult={},!0!==t&&this.parse()}return m8(e,[{key:"getUA",value:function(){return this._ua}},{key:"test",value:function(e){return e.test(this._ua)}},{key:"parseBrowser",value:function(){var e=this;this.parsedResult.browser={};var A=vte(hne).call(hne,dne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.browser=A.describe(this.getUA())),this.parsedResult.browser}},{key:"getBrowser",value:function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}},{key:"getBrowserName",value:function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}},{key:"getBrowserVersion",value:function(){return this.getBrowser().version}},{key:"getOS",value:function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}},{key:"parseOS",value:function(){var e=this;this.parsedResult.os={};var A=vte(hne).call(hne,Ene,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.os=A.describe(this.getUA())),this.parsedResult.os}},{key:"getOSName",value:function(e){var A=this.getOS().name;return e?String(A).toLowerCase()||"":A||""}},{key:"getOSVersion",value:function(){return this.getOS().version}},{key:"getPlatform",value:function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}},{key:"getPlatformType",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],A=this.getPlatform().type;return e?String(A).toLowerCase()||"":A||""}},{key:"parsePlatform",value:function(){var e=this;this.parsedResult.platform={};var A=vte(hne).call(hne,fne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.platform=A.describe(this.getUA())),this.parsedResult.platform}},{key:"getEngine",value:function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}},{key:"getEngineName",value:function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}},{key:"parseEngine",value:function(){var e=this;this.parsedResult.engine={};var A=vte(hne).call(hne,Bne,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return Ste(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.engine=A.describe(this.getUA())),this.parsedResult.engine}},{key:"parse",value:function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}},{key:"getResult",value:function(){return hne.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var A=this,t={},n=0,r={},i=0,o=R8(e);if(w8(o).call(o,(function(A){var o=e[A];"string"==typeof o?(r[A]=o,i+=1):"object"===O$(o)&&(t[A]=o,n+=1)})),n>0){var a=R8(t),s=vte(hne).call(hne,a,(function(e){return A.isOS(e)}));if(s){var g=this.satisfies(t[s]);if(void 0!==g)return g}var c=vte(hne).call(hne,a,(function(e){return A.isPlatform(e)}));if(c){var l=this.satisfies(t[c]);if(void 0!==l)return l}}if(i>0){var u=R8(r),I=vte(hne).call(hne,u,(function(e){return A.isBrowser(e,!0)}));if(void 0!==I)return this.compareVersion(r[I])}}},{key:"isBrowser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),r=hne.getBrowserTypeByAlias(n);return A&&r&&(n=r.toLowerCase()),n===t}},{key:"compareVersion",value:function(e){var A=[0],t=e,n=!1,r=this.getBrowserVersion();if("string"==typeof r)return">"===e[0]||"<"===e[0]?(t=e.substr(1),"="===e[1]?(n=!0,t=e.substr(2)):A=[],">"===e[0]?A.push(1):A.push(-1)):"="===e[0]?t=e.substr(1):"~"===e[0]&&(n=!0,t=e.substr(1)),Yte(A).call(A,hne.compareVersions(r,t,n))>-1}},{key:"isOS",value:function(e){return this.getOSName(!0)===String(e).toLowerCase()}},{key:"isPlatform",value:function(e){return this.getPlatformType(!0)===String(e).toLowerCase()}},{key:"isEngine",value:function(e){return this.getEngineName(!0)===String(e).toLowerCase()}},{key:"is",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.isBrowser(e,A)||this.isOS(e)||this.isPlatform(e)}},{key:"some",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return Ste(A).call(A,(function(A){return e.is(A)}))}}]),e}(),pne=function(){function e(){v8(this,e)}return m8(e,null,[{key:"getParser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof e)throw new Error("UserAgent should be a string");return new Qne(e,A)}},{key:"parse",value:function(e){return new Qne(e).getResult()}},{key:"BROWSER_MAP",get:function(){return cne}},{key:"ENGINE_MAP",get:function(){return Ine}},{key:"OS_MAP",get:function(){return une}},{key:"PLATFORMS_MAP",get:function(){return lne}}]),e}(),vne=function(){function e(A){v8(this,e),v1(this,"featureList",void 0),v1(this,"videoType",void 0),this.videoType=A.type||J7.VOD,this.featureList=m1(m1(m1(m1({deviceId:null==A?void 0:A.deviceId,userId:null==A?void 0:A.userId,playerVersion:null==A?void 0:A.playerVersion},this.initSync()),this.getGPUInfo()),this.getLocalDeviceMarkInfo()),this.getH265FeatureList())}var A;return m8(e,[{key:"initSync",value:function(){return m1({},this.getBrowserInfo())}},{key:"updateFeatureList",value:function(e){return this.featureList=m1(m1({},this.featureList),e)}},{key:"getFeatureList",value:function(){return this.featureList}},{key:"getH265FeatureList",value:function(){return{isHevcSupported:gte()}}},{key:"getLocalDeviceMarkInfo",value:function(){var e=N7(this.videoType===J7.LIVE?W7:V7),A={cpuScore:-1,netScore:-1,renderScore:-1};if(!e)return A;try{var t=JSON.parse(e);return{cpuScore:t.cpuScore,netScore:t.netScore,renderScore:t.renderScore}}catch(n){}return A}},{key:"getDeviceMarkInfoAsync",value:(A=p8(B8().mark((function e(){var A,t,n,r,i,o;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=new jee({}),e.next=3,A.getScore();case 3:if(e.t0=e.sent,e.t0){e.next=6;break}e.t0={};case 6:return t=e.t0,n=t.cpu,r=t.net,i=t.render,o={cpuScore:(null==n?void 0:n.score)||-1,netScore:(null==r?void 0:r.score)||-1,renderScore:(null==i?void 0:i.score)||-1},F7(this.videoType===J7.LIVE?W7:V7,G8(o)),this.updateFeatureList(o),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"getBrowserInfo",value:function(){var e=pne.getParser(navigator.userAgent);return{browserVersion:e.getBrowserVersion(),browserName:e.getBrowserName(),cpuCore:navigator.hardwareConcurrency,osName:e.getOSName(),osVersion:e.getOSVersion(),platformType:e.getPlatformType(),engineName:e.getEngineName()}}},{key:"getGPUInfo",value:function(){try{var e=yP.parseVendor(),A=yP.getGPUVendor(),t=k7(A).call(A,"SwiftShader");return{gpuScore:(null==e?void 0:e.score)||-1,isCloseGPU:t}}catch(n){return{gpuScore:-1,isCloseGPU:!1}}}}]),e}(),yne={exports:{}},mne=kP((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);_Y(e)&&Iy(e,"a",{value:8})}})),Dne=yH,wne=HP,Rne=mne,kne=_Y,Sne=kP((function(){kne(1)}))||Rne?function(e){return!!Dne(e)&&(!Rne||"ArrayBuffer"!=wne(e))&&(!kne||kne(e))}:kne,Mne=!kP((function(){return _Y(KY({}))})),Gne=WO,_ne=KP,bne=wj,Tne=yH,Fne=pJ,Nne=QO.f,Lne=gX,Une=IX,Kne=Sne,xne=Mne,Yne=!1,Pne=wJ("meta"),Hne=0,Jne=function(e){Nne(e,Pne,{value:{objectID:"O"+Hne++,weakData:{}}})},One=yne.exports={enable:function(){One.enable=function(){},Yne=!0;var e=Lne.f,A=_ne(Cv([])),t={};t[Pne]=1,e(t).length&&(Lne.f=function(t){for(var n=e(t),r=0,i=n.length;r1?arguments[1]:void 0);A=A?A.next:t.first;)for(n(A.value,A.key,this);A&&A.removed;)A=A.previous},has:function(e){return!!s(this,e)}}),ure(i,t?{get:function(e){var A=s(this,e);return A&&A.value},set:function(e,A){return a(this,0===e?0:e,A)}}:{add:function(e){return a(this,e=0===e?0:e,e)}}),Qre&&lre(i,"size",{configurable:!0,get:function(){return o(this).size}}),r},setStrong:function(e,A,t){var n=A+" Iterator",r=yre(A),i=yre(n);Ere(e,A,(function(e,A){vre(this,{type:n,target:e,state:r(e),kind:A,last:void 0})}),(function(){for(var e=i(this),A=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?fre("keys"==A?t.key:"values"==A?t.value:[t.key,t.value],!1):(e.target=void 0,fre(void 0,!0))}),t?"entries":"values",!t,!0),Bre(A)}},Dre=function(e,A,t){var n,r=-1!==zp(e).call(e,"Map"),i=-1!==zp(e).call(e,"Weak"),o=r?"set":"add",a=Xne[e],s=a&&a.prototype,g={};if(ire&&ere(a)&&(i||s.forEach&&!Vne((function(){var e;PK(e=new a).call(e).next()})))){var c=(n=A((function(A,t){ore($ne(A,c),{type:e,collection:new a}),null!=t&&Zne(t,A[o],{that:A,AS_ENTRIES:r})}))).prototype,l=are(e);rre(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(e){var A="add"==e||"set"==e;!(e in s)||i&&"clear"==e||Wne(c,e,(function(t,n){var r=l(this).collection;if(!A&&i&&!Are(t))return"get"==e&&void 0;var o=r[e](0===t?0:t,n);return A?this:o}))})),i||nre(c,"size",{configurable:!0,get:function(){return l(this).collection.size}})}else n=t.getConstructor(A,e,r,o),qne.enable();return tre(n,e,!1,!0),g[e]=n,jne({global:!0,forced:!0},g),i||t.setStrong(n,e,r),n};Dre("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),mre);var wre=mH.Map,Rre=BO,kre=AH,Sre=eJ,Mre=I5,Gre=hH,_re=_2,bre=[].push,Tre=function(e){var A,t,n,r,i=arguments.length,o=i>1?arguments[1]:void 0;return Mre(this),(A=void 0!==o)&&Sre(o),Gre(e)?new this:(t=[],A?(n=0,r=Rre(o,i>2?arguments[2]:void 0),_re(e,(function(e){kre(bre,t,r(e,n++))}))):_re(e,bre,{that:t}),new this(t))};WO({target:"Map",stat:!0,forced:!0},{from:Tre});var Fre=jV,Nre=function(){return new this(Fre(arguments))};WO({target:"Map",stat:!0,forced:!0},{of:Nre});var Lre=VH,Ure=function(e){if("object"==wc(e)&&"size"in e&&"has"in e&&"get"in e&&"set"in e&&"delete"in e&&"entries"in e)return e;throw TypeError(Lre(e)+" is not a map")},Kre=function(e,A){return 1==A?function(A,t){return A[e](t)}:function(A,t,n){return A[e](t,n)}},xre=SH("Map"),Yre={Map:xre,set:Kre("set",2),get:Kre("get",1),has:Kre("has",1),remove:Kre("delete",1),proto:xre.prototype},Pre=Ure,Hre=Yre.remove;WO({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,A=Pre(this),t=!0,n=0,r=arguments.length;n1?arguments[1]:void 0);return!1!==$re(A,(function(e,n){if(!t(e,n,A))return!1}),!0)}});var eie=BO,Aie=Ure,tie=Vre,nie=Yre.Map,rie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var A=Aie(this),t=eie(e,arguments.length>1?arguments[1]:void 0),n=new nie;return tie(A,(function(e,r){t(e,r,A)&&rie(n,r,e)})),n}});var iie=BO,oie=Ure,aie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var A=oie(this),t=iie(e,arguments.length>1?arguments[1]:void 0),n=aie(A,(function(e,n){if(t(e,n,A))return{value:e}}),!0);return n&&n.value}});var sie=BO,gie=Ure,cie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var A=gie(this),t=sie(e,arguments.length>1?arguments[1]:void 0),n=cie(A,(function(e,n){if(t(e,n,A))return{key:n}}),!0);return n&&n.key}});var lie=WO,uie=eJ,Iie=EH,hie=_2,Cie=Yre.Map,die=Yre.has,Eie=Yre.get,fie=Yre.set,Bie=KP([].push);lie({target:"Map",stat:!0,forced:!0},{groupBy:function(e,A){Iie(e),uie(A);var t=new Cie,n=0;return hie(e,(function(e){var r=A(e,n++);die(t,r)?Bie(Eie(t,r),e):fie(t,r,[e])})),t}});var Qie=function(e,A){return e===A||e!=e&&A!=A},pie=Ure,vie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===vie(pie(this),(function(A){if(Qie(A,e))return!0}),!0)}});var yie=AH,mie=_2,Die=VP,wie=eJ,Rie=Yre.Map;WO({target:"Map",stat:!0,forced:!0},{keyBy:function(e,A){var t=new(Die(this)?this:Rie);wie(A);var n=wie(t.set);return mie(e,(function(e){yie(n,t,A(e),e)})),t}});var kie=Ure,Sie=Vre;WO({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var A=Sie(kie(this),(function(A,t){if(A===e)return{key:t}}),!0);return A&&A.key}});var Mie=BO,Gie=Ure,_ie=Vre,bie=Yre.Map,Tie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var A=Gie(this),t=Mie(e,arguments.length>1?arguments[1]:void 0),n=new bie;return _ie(A,(function(e,r){Tie(n,t(e,r,A),e)})),n}});var Fie=BO,Nie=Ure,Lie=Vre,Uie=Yre.Map,Kie=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var A=Nie(this),t=Fie(e,arguments.length>1?arguments[1]:void 0),n=new Uie;return Lie(A,(function(e,r){Kie(n,r,t(e,r,A))})),n}});var xie=Ure,Yie=_2,Pie=Yre.set;WO({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var A=xie(this),t=arguments.length,n=0;n1?arguments[1]:void 0);return!0===qie(A,(function(e,n){if(t(e,n,A))return!0}),!0)}});var Vie=eJ,Wie=Ure,Zie=TypeError,$ie=Yre.get,eoe=Yre.has,Aoe=Yre.set;WO({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,A){var t=Wie(this),n=arguments.length;Vie(A);var r=eoe(t,e);if(!r&&n<3)throw Zie("Updating absent value");var i=r?$ie(t,e):Vie(n>2?arguments[2]:void 0)(e,t);return Aoe(t,e,A(i,e,t)),t}});var toe=AH,noe=eJ,roe=VP,ioe=DO,ooe=TypeError,aoe=function(e,A){var t,n=ioe(this),r=noe(n.get),i=noe(n.has),o=noe(n.set),a=arguments.length>2?arguments[2]:void 0;if(!roe(A)&&!roe(a))throw ooe("At least one callback required");return toe(i,n,e)?(t=toe(r,n,e),roe(A)&&(t=A(t),toe(o,n,e,t))):roe(a)&&(t=a(),toe(o,n,e,t)),t};WO({target:"Map",proto:!0,real:!0,forced:!0},{upsert:aoe}),WO({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:aoe});var soe=DP(wre),goe=DO,coe=f2,loe=BO,uoe=AH,Ioe=fJ,hoe=function(e,A,t,n){try{return n?A(goe(t)[0],t[1]):A(t)}catch(r){coe(e,"throw",r)}},Coe=A2,doe=Yz,Eoe=sz,foe=hz,Boe=h2,Qoe=a2,poe=Array,voe=function(e){var A=Ioe(e),t=doe(this),n=arguments.length,r=n>1?arguments[1]:void 0,i=void 0!==r;i&&(r=loe(r,n>2?arguments[2]:void 0));var o,a,s,g,c,l,u=Qoe(A),I=0;if(!u||this===poe&&Coe(u))for(o=Eoe(A),a=t?new this(o):poe(o);o>I;I++)l=i?r(A[I],I):A[I],foe(a,I,l);else for(c=(g=Boe(A,u)).next,a=t?new this:[];!(s=uoe(c,g)).done;I++)l=i?hoe(g,r,[s.value,I],!0):s.value,foe(a,I,l);return a.length=I,a},yoe=WO,moe=voe,Doe=!P3((function(e){nm(e)}));yoe({target:"Array",stat:!0,forced:Doe},{from:moe});var woe=DP(mH.Array.from),Roe=jY(e0("Array")),koe=yz,Soe=pJ,Moe=MH,Goe=Roe,_oe=Array.prototype,boe={DOMTokenList:!0,NodeList:!0},Toe=function(e){var A=jY(e);return e===_oe||Moe(_oe,e)&&A===jY(_oe)||Soe(boe,koe(e))?Goe:A},Foe=DP(Toe),Noe=function(){function e(A){v8(this,e),v1(this,"ctx",void 0),v1(this,"strategyMap",new soe),this.ctx=A}return m8(e,[{key:"registerStrategy",value:function(e){var A;return!(null==e||null===(A=e.Strategy)||void 0===A||!A.strategyName||(this.strategyMap.get(e.Strategy.strategyName)||this.strategyMap.set(e.Strategy.strategyName,{inst:new e.Strategy({ctx:this.ctx,config:e.config,strategyName:e.Strategy.strategyName,strategyCenter:this})}),0))}},{key:"getStrategyInstByName",value:function(e){var A;return e&&null!==(A=this.strategyMap.get(e))&&void 0!==A&&A.inst?this.strategyMap.get(e).inst:null}},{key:"getStrategyList",value:function(){var e,A;return i7(e=woe(Foe(A=this.strategyMap).call(A))).call(e,(function(e){return e.inst}))}},{key:"getStrategyByName",value:function(e){return e&&this.strategyMap.get(e)?this.strategyMap.get(e):null}},{key:"registerAlgorithm",value:function(){}},{key:"getStrategyInstByNameAsync",value:function(){}},{key:"loadStrategySrcAsync",value:function(){}}]),e}(),Loe=function(){function e(A){v8(this,e),v1(this,"inst",void 0),this.inst=A.inst}return m8(e,[{key:"getInst",value:function(){return this.inst}},{key:"getPlayerConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.playerConfig}},{key:"getStrategyConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.strategyConfig}}]),e}(),Uoe=function(){function e(){v8(this,e),v1(this,"players",void 0),this.players=new soe}return m8(e,[{key:"get",value:function(e){return this.players.get(e)}},{key:"addPlayer",value:function(e,A){return!(!e||this.players.get(e)||(this.players.set(e,new Loe(A)),0))}},{key:"getPlayerList",value:function(){var e;return woe(Foe(e=this.players).call(e))}},{key:"removePlayer",value:function(e){return!(!e||!this.players.get(e)||(this.players.delete(e),0))}}]),e}();!function(){function e(A){v8(this,e),v1(this,"strategyCenter",void 0),v1(this,"ctx",void 0),v1(this,"config",void 0),v1(this,"player",void 0),v1(this,"strategyName",void 0),this.ctx=A.ctx,this.config=A.config,this.strategyName=A.strategyName,this.strategyCenter=A.strategyCenter,this.player=null}m8(e,[{key:"getStrategyConfig",value:function(){return this.config}},{key:"setPlayerInst",value:function(e){this.player=e.getInst()}},{key:"beforePlayerCreate",value:function(e){}},{key:"onPlayerEvent",value:function(e,A){}},{key:"onGlobalEvent",value:function(e,A){}}])}();var Koe=function(){function e(A){v8(this,e),v1(this,"tracker",void 0),v1(this,"_tea",void 0),v1(this,"ctx",void 0),v1(this,"options",void 0),this.ctx=A.cxt,this.options=A,this.initTracker(A),this.bindABVersion()}return m8(e,[{key:"bindTrackerABVersion",value:function(e){var A,t,n,r=this;!this._tea&&e&&null!==(A=this.options)&&void 0!==A&&null!==(A=A.trackInfo)&&void 0!==A&&A.enableABVersion&&(this._tea=e,null===(t=this._tea)||void 0===t||null===(n=t.filterEvent)||void 0===n||n.call(t,(function(e){var A,t;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(t=w8(A))||void 0===t||t.call(A,(function(e){var A,t,n,i=((null===(A=r.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;!i||!e||null!==(t=e.ab_sdk_version)&&void 0!==t&&k7(t).call(t,i)||(e.ab_sdk_version=e.ab_sdk_version?V8(n="".concat(e.ab_sdk_version,",")).call(n,i):"".concat(i))})),e})))}},{key:"track",value:function(e,A){var t,n;"function"==typeof this.tracker?this.tracker(e,A):null===(t=this.tracker)||void 0===t||null===(n=t.event)||void 0===n||n.call(t,e,A)}},{key:"initTracker",value:function(e){var A,t;if(k7(A=[J7.LIVE,J7.VOD]).call(A,e.type)&&null!==(t=e.trackInfo)&&void 0!==t&&t.Collector&&"undefined"!=typeof window){var n="__vestrategy_".concat(e.type,"_tracker__");if(!window[n]){this.tracker=window[n]=new e.trackInfo.Collector("".concat(e.type,"_tracker")),this.tracker.init({app_id:e.appId,channel:e.channel||O7.CN,log:!1,disable_sdk_monitor:!0});var r=m1({play_type:e.type===J7.VOD?0:1,line_app_id:e.lineAppId,line_user_id:e.lineUserId},U7(this.ctx.featureCenter.getFeatureList()));return this.tracker.config(m1(m1({},r),{},{user_unique_id:e.lineUserId,disable_auto_pv:!0})),void this.tracker.start()}this.tracker=window[n]}}},{key:"bindABVersion",value:function(){var e,A,t=this;this.tracker&&(null===(e=this.tracker)||void 0===e||null===(A=e.filterEvent)||void 0===A||A.call(e,(function(e){var A,n;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(n=w8(A))||void 0===n||n.call(A,(function(e){var A,n=((null===(A=t.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;n&&e&&(e.ab_sdk_version="".concat(n))})),e})))}}]),e}();WO({target:"Array",stat:!0},{isArray:$O});var xoe,Yoe=DP(mH.Array.isArray),Poe=function(e){return e.Equal="锛�",e.NotEqual="鈮�",e.Greater=">",e.GreaterOrEqual="鈮�",e.Less="<",e.LessOrEqual="鈮�",e}(Poe||{}),Hoe=(v1(xoe={},"锛�",{validate:function(e,A){var t;return Yoe(Foe(e))?k7(t=Foe(e)).call(t,A):Foe(e)===A}}),v1(xoe,"鈮�",{validate:function(e,A){var t;return Yoe(Foe(e))?!k7(t=Foe(e)).call(t,A):Foe(e)!==A}}),v1(xoe,">",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&A>Foe(e)}}),v1(xoe,"鈮�",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&A>=Foe(e)}}),v1(xoe,"<",{validate:function(e,A){return!Yoe(Foe(e))&&"boolean"!=typeof Foe(e)&&Aa;)t=r[a++],Xoe&&!(i?t in n:eae(n,t))||Aae(s,e?[t,n[t]]:n[t]);return s}},rae={entries:nae(!0),values:nae(!1)},iae=WO,oae=jY(rae);iae({target:"Object",stat:!0},{values:function(e){return oae(e)}});var aae=DP(jY(mH.Object)),sae=zv(e0("Array")),gae=yz,cae=pJ,lae=MH,uae=sae,Iae=Array.prototype,hae={DOMTokenList:!0,NodeList:!0},Cae=function(e){var A=zv(e);return e===Iae||lae(Iae,e)&&A===zv(Iae)||cae(hae,gae(e))?uae:A},dae=DP(Cae),Eae={exports:{}};!function(e,A){var t="__lodash_hash_undefined__",n=9007199254740991,r="[object Arguments]",i="[object AsyncFunction]",o="[object Function]",a="[object GeneratorFunction]",s="[object Null]",g="[object Object]",c="[object Proxy]",l="[object Undefined]",u=/^\[object .+?Constructor\]$/,I=/^(?:0|[1-9]\d*)$/,h={};h["[object Float32Array]"]=h["[object Float64Array]"]=h["[object Int8Array]"]=h["[object Int16Array]"]=h["[object Int32Array]"]=h["[object Uint8Array]"]=h["[object Uint8ClampedArray]"]=h["[object Uint16Array]"]=h["[object Uint32Array]"]=!0,h[r]=h["[object Array]"]=h["[object ArrayBuffer]"]=h["[object Boolean]"]=h["[object DataView]"]=h["[object Date]"]=h["[object Error]"]=h[o]=h["[object Map]"]=h["[object Number]"]=h[g]=h["[object RegExp]"]=h["[object Set]"]=h["[object String]"]=h["[object WeakMap]"]=!1;var C,d,E,f="object"==O$(mP)&&mP&&mP.Object===Object&&mP,B="object"==("undefined"==typeof self?"undefined":O$(self))&&self&&self.Object===Object&&self,Q=f||B||Function("return this")(),p=A&&!A.nodeType&&A,v=p&&e&&!e.nodeType&&e,y=v&&v.exports===p,m=y&&f.process,D=function(){try{return v&&v.require&&v.require("util").types||m&&m.binding&&m.binding("util")}catch(e){}}(),w=D&&D.isTypedArray,R=Array.prototype,k=Function.prototype,S=Object.prototype,M=Q["__core-js_shared__"],G=k.toString,_=S.hasOwnProperty,b=(C=/[^.]+$/.exec(M&&dae(M)&&dae(M).IE_PROTO||""))?"Symbol(src)_1."+C:"",T=S.toString,F=G.call(Object),N=RegExp("^"+G.call(_).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),L=y?Q.Buffer:void 0,U=Q.Symbol,K=Q.Uint8Array,x=(L&&L.allocUnsafe,d=lte,E=Object,function(e){return d(E(e))}),Y=cte,P=S.propertyIsEnumerable,H=sne(R),J=U?U.toStringTag:void 0,O=function(){try{var e=le(Object,"defineProperty");return e({},"",{}),e}catch(A){}}(),z=L?L.isBuffer:void 0,j=Math.max,X=H7,q=le(Q,"Map"),V=le(Object,"create"),W=function(){function e(){}return function(A){if(!we(A))return{};if(Y)return Y(A);e.prototype=A;var t=new e;return e.prototype=void 0,t}}();function Z(e){var A=-1,t=null==e?0:e.length;for(this.clear();++A-1},$.prototype.set=function(e,A){var t=this.__data__,n=re(t,e);return n<0?(++this.size,t.push([e,A])):t[n][1]=A,this},ee.prototype.clear=function(){this.size=0,this.__data__={hash:new Z,map:new(q||$),string:new Z}},ee.prototype.delete=function(e){var A=ce(this,e).delete(e);return this.size-=A?1:0,A},ee.prototype.get=function(e){return ce(this,e).get(e)},ee.prototype.has=function(e){return ce(this,e).has(e)},ee.prototype.set=function(e,A){var t=ce(this,e),n=t.size;return t.set(e,A),this.size+=t.size==n?0:1,this},Ae.prototype.clear=function(){this.__data__=new $,this.size=0},Ae.prototype.delete=function(e){var A=this.__data__,t=A.delete(e);return this.size=A.size,t},Ae.prototype.get=function(e){return this.__data__.get(e)},Ae.prototype.has=function(e){return this.__data__.has(e)},Ae.prototype.set=function(e,A){var t=this.__data__;if(t instanceof $){var n=t.__data__;if(!q||n.length<199)return n.push([e,A]),this.size=++t.size,this;t=this.__data__=new ee(n)}return t.set(e,A),this.size=t.size,this};function oe(e){return null==e?void 0===e?l:s:J&&J in Object(e)?function(e){var A=_.call(e,J),t=e[J];try{e[J]=void 0;var n=!0}catch(i){}var r=T.call(e);return n&&(A?e[J]=t:delete e[J]),r}(e):(A=e,T.call(A));var A}function ae(e){return Re(e)&&oe(e)==r}function se(e,A,t,n,r){e!==A&&function(e,A,t){for(var n=-1,r=Object(e),i=t(e),o=i.length;o--;){var a=i[++n];if(!1===A(r[a],a,r))break}}(A,(function(i,o){if(r||(r=new Ae),we(i))!function(e,A,t,n,r,i,o){var a=he(e,t),s=he(A,t),c=o.get(s);if(c)te(e,t,c);else{var l,u,I,h,C,d,E=i?i(a,s,t+"",e,A,o):void 0,f=void 0===E;if(f){var B=pe(s),Q=!B&&ye(s),p=!B&&!Q&&ke(s);E=s,B||Q||p?pe(a)?E=a:Re(d=a)&&ve(d)?E=function(e,A){var t=-1,n=e.length;for(A||(A=Array(n));++t-1&&e%1==0&&e0){if(++de>=800)return arguments[0]}else de=0;return Ce.apply(void 0,arguments)});function Be(e,A){return e===A||e!=e&&A!=A}var Qe=ae(function(){return arguments}())?ae:function(e){return Re(e)&&_.call(e,"callee")&&!P.call(e,"callee")},pe=Yoe;function ve(e){return null!=e&&De(e.length)&&!me(e)}var ye=z||function(){return!1};function me(e){if(!we(e))return!1;var A=oe(e);return A==o||A==a||A==i||A==c}function De(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}function we(e){var A=O$(e);return null!=e&&("object"==A||"function"==A)}function Re(e){return null!=e&&"object"==O$(e)}var ke=w?function(e){return function(A){return e(A)}}(w):function(e){return Re(e)&&De(e.length)&&!!h[oe(e)]};function Se(e){return ve(e)?function(e,A){var t=pe(e),n=!t&&Qe(e),r=!t&&!n&&ye(e),i=!t&&!n&&!r&&ke(e),o=t||n||r||i,a=o?function(e,A){for(var t=-1,n=Array(e);++t1?A[n-1]:void 0,i=n>2?A[2]:void 0;for(r=Me.length>3&&"function"==typeof r?(n--,r):void 0,i&&function(e,A,t){if(!we(t))return!1;var n=O$(A);return!!("number"==n?ve(t)&&ue(A,t.length):"string"==n&&A in t)&&Be(t[A],e)}(A[0],A[1],i)&&(r=n<3?void 0:r,n=1),e=Object(e);++t0;)e[n]=e[--n];n!==i++&&(e[n]=t)}return e},wae=function(e,A,t,n){for(var r=A.length,i=t.length,o=0,a=0;o0?arguments[0]:void 0));_ae||(this.size=PK(e).length)},Lse=Nse.prototype;if(Nae(Lse,{append:function(e,A){var t=rse(this);Zae(arguments.length,2),Bse(PK(t),{key:jae(e),value:jae(A)}),_ae||this.length++,t.updateURL()},delete:function(e){for(var A=rse(this),t=Zae(arguments.length,1),n=PK(A),r=jae(e),i=t<2?void 0:arguments[1],o=void 0===i?i:jae(i),a=0;aA.key?1:-1})),e.updateURL()},forEach:function(e){for(var A,t=PK(rse(this)),n=Hae(e,arguments.length>1?arguments[1]:void 0),r=0;r1?xse(arguments[1]):{})}}),Yae(gse)){var Yse=function(e){return xae(this,lse),new gse(e,arguments.length>1?xse(arguments[1]):{})};lse.constructor=Yse,Yse.prototype=lse,kae({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Yse})}}var Pse,Hse={URLSearchParams:Nse,getState:rse},Jse=KP,Ose=2147483647,zse=/[^\0-\u007E]/,jse=/[.\u3002\uFF0E\uFF61]/g,Xse="Overflow: input needs wider integers to process",qse=RangeError,Vse=Jse(jse.exec),Wse=Math.floor,Zse=String.fromCharCode,$se=Jse("".charCodeAt),ege=Jse([].join),Age=Jse([].push),tge=Jse("".replace),nge=Jse("".split),rge=Jse("".toLowerCase),ige=function(e){return e+22+75*(e<26)},oge=function(e,A,t){var n=0;for(e=t?Wse(e/700):e>>1,e+=Wse(e/A);e>455;)e=Wse(e/35),n+=36;return Wse(n+36*e/(e+38))},age=function(e){var A,t,n=[],r=(e=function(e){for(var A=[],t=0,n=e.length;t=55296&&r<=56319&&t=i&&tWse((Ose-o)/l))throw qse(Xse);for(o+=(c-i)*l,i=c,A=0;AOse)throw qse(Xse);if(t==i){for(var u=o,I=36;;){var h=I<=a?1:I>=a+26?26:I-a;if(u?@[\\\]^|]/,oce=/[\0\t\n\r #/:<>?@[\\\]^|]/,ace=/^[\u0000-\u0020]+/,sce=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,gce=/[\t\n\r]/g,cce=function(e){var A,t,n,r;if("number"==typeof e){for(A=[],t=0;t<4;t++)Xge(A,e%256),e=Fge(e/256);return Kge(A,".")}if("object"==wc(e)){for(A="",n=function(e){for(var A=null,t=1,n=null,r=0,i=0;i<8;i++)0!==e[i]?(r>t&&(A=n,t=r),n=null,r=0):(null===n&&(n=i),++r);return r>t&&(A=n,t=r),A}(e),t=0;t<8;t++)r&&0===e[t]||(r&&(r=!1),n===t?(A+=t?":":"::",r=!0):(A+=xge(e[t],16),t<7&&(A+=":")));return"["+A+"]"}return e},lce={},uce=fge({},lce,{" ":1,'"':1,"<":1,">":1,"`":1}),Ice=fge({},uce,{"#":1,"?":1,"{":1,"}":1}),hce=fge({},Ice,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Cce=function(e,A){var t=pge(e,0);return t>32&&t<127&&!Ege(A,e)?e:encodeURIComponent(e)},dce={ftp:21,file:null,http:80,https:443,ws:80,wss:443},Ece=function(e,A){var t;return 2==e.length&&Uge(Zge,Lge(e,0))&&(":"==(t=Lge(e,1))||!A&&"|"==t)},fce=function(e){var A;return e.length>1&&Ece(zge(e,0,2))&&(2==e.length||"/"===(A=Lge(e,2))||"\\"===A||"?"===A||"#"===A)},Bce=function(e){return"."===e||"%2e"===jge(e)},Qce=function(e){return".."===(e=jge(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},pce={},vce={},yce={},mce={},Dce={},wce={},Rce={},kce={},Sce={},Mce={},Gce={},_ce={},bce={},Tce={},Fce={},Nce={},Lce={},Uce={},Kce={},xce={},Yce={},Pce=function e(A,t,n){var r,i,o,a=yge(A);if(t){if(i=this.parse(a))throw bge(i);this.searchParams=null}else{if(void 0!==n&&(r=new e(n,!0)),i=this.parse(a,null,r))throw bge(i);(o=Gge(new Mge)).bindURL(this),this.searchParams=o}};Pce.prototype={type:"URL",parse:function(e,A,t){var n,r,i,o,a=this,s=A||pce,g=0,c="",l=!1,u=!1,I=!1;for(e=yge(e),A||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=Hge(e,ace,""),e=Hge(e,sce,"$1")),e=Hge(e,gce,""),n=Bge(e);g<=n.length;){switch(r=n[g],s){case pce:if(!r||!Uge(Zge,r)){if(A)return qge;s=yce;continue}c+=jge(r),s=vce;break;case vce:if(r&&(Uge($ge,r)||"+"==r||"-"==r||"."==r))c+=jge(r);else{if(":"!=r){if(A)return qge;c="",s=yce,g=0;continue}if(A&&(a.isSpecial()!=Ege(dce,c)||"file"==c&&(a.includesCredentials()||null!==a.port)||"file"==a.scheme&&!a.host))return;if(a.scheme=c,A)return void(a.isSpecial()&&dce[a.scheme]==a.port&&(a.port=null));c="","file"==a.scheme?s=Tce:a.isSpecial()&&t&&t.scheme==a.scheme?s=mce:a.isSpecial()?s=kce:"/"==n[g+1]?(s=Dce,g++):(a.cannotBeABaseURL=!0,Pge(a.path,""),s=Kce)}break;case yce:if(!t||t.cannotBeABaseURL&&"#"!=r)return qge;if(t.cannotBeABaseURL&&"#"==r){a.scheme=t.scheme,a.path=Qge(t.path),a.query=t.query,a.fragment="",a.cannotBeABaseURL=!0,s=Yce;break}s="file"==t.scheme?Tce:wce;continue;case mce:if("/"!=r||"/"!=n[g+1]){s=wce;continue}s=Sce,g++;break;case Dce:if("/"==r){s=Mce;break}s=Uce;continue;case wce:if(a.scheme=t.scheme,r==Pse)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query=t.query;else if("/"==r||"\\"==r&&a.isSpecial())s=Rce;else if("?"==r)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query="",s=xce;else{if("#"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.path.length--,s=Uce;continue}a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=Qge(t.path),a.query=t.query,a.fragment="",s=Yce}break;case Rce:if(!a.isSpecial()||"/"!=r&&"\\"!=r){if("/"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,s=Uce;continue}s=Mce}else s=Sce;break;case kce:if(s=Sce,"/"!=r||"/"!=Lge(c,g+1))continue;g++;break;case Sce:if("/"!=r&&"\\"!=r){s=Mce;continue}break;case Mce:if("@"==r){l&&(c="%40"+c),l=!0,i=Bge(c);for(var h=0;h65535)return Wge;a.port=a.isSpecial()&&E===dce[a.scheme]?null:E,c=""}if(A)return;s=Lce;continue}return Wge}c+=r;break;case Tce:if(a.scheme="file","/"==r||"\\"==r)s=Fce;else{if(!t||"file"!=t.scheme){s=Uce;continue}if(r==Pse)a.host=t.host,a.path=Qge(t.path),a.query=t.query;else if("?"==r)a.host=t.host,a.path=Qge(t.path),a.query="",s=xce;else{if("#"!=r){fce(Kge(Qge(n,g),""))||(a.host=t.host,a.path=Qge(t.path),a.shortenPath()),s=Uce;continue}a.host=t.host,a.path=Qge(t.path),a.query=t.query,a.fragment="",s=Yce}}break;case Fce:if("/"==r||"\\"==r){s=Nce;break}t&&"file"==t.scheme&&!fce(Kge(Qge(n,g),""))&&(Ece(t.path[0],!0)?Pge(a.path,t.path[0]):a.host=t.host),s=Uce;continue;case Nce:if(r==Pse||"/"==r||"\\"==r||"?"==r||"#"==r){if(!A&&Ece(c))s=Uce;else if(""==c){if(a.host="",A)return;s=Lce}else{if(o=a.parseHost(c))return o;if("localhost"==a.host&&(a.host=""),A)return;c="",s=Lce}continue}c+=r;break;case Lce:if(a.isSpecial()){if(s=Uce,"/"!=r&&"\\"!=r)continue}else if(A||"?"!=r)if(A||"#"!=r){if(r!=Pse&&(s=Uce,"/"!=r))continue}else a.fragment="",s=Yce;else a.query="",s=xce;break;case Uce:if(r==Pse||"/"==r||"\\"==r&&a.isSpecial()||!A&&("?"==r||"#"==r)){if(Qce(c)?(a.shortenPath(),"/"==r||"\\"==r&&a.isSpecial()||Pge(a.path,"")):Bce(c)?"/"==r||"\\"==r&&a.isSpecial()||Pge(a.path,""):("file"==a.scheme&&!a.path.length&&Ece(c)&&(a.host&&(a.host=""),c=Lge(c,0)+":"),Pge(a.path,c)),c="","file"==a.scheme&&(r==Pse||"?"==r||"#"==r))for(;a.path.length>1&&""===a.path[0];)Jge(a.path);"?"==r?(a.query="",s=xce):"#"==r&&(a.fragment="",s=Yce)}else c+=Cce(r,Ice);break;case Kce:"?"==r?(a.query="",s=xce):"#"==r?(a.fragment="",s=Yce):r!=Pse&&(a.path[0]+=Cce(r,lce));break;case xce:A||"#"!=r?r!=Pse&&("'"==r&&a.isSpecial()?a.query+="%27":a.query+="#"==r?"%23":Cce(r,lce)):(a.fragment="",s=Yce);break;case Yce:r!=Pse&&(a.fragment+=Cce(r,uce))}g++}},parseHost:function(e){var A,t,n;if("["==Lge(e,0)){if("]"!=Lge(e,e.length-1))return Vge;if(!(A=function(e){var A,t,n,r,i,o,a,s=[0,0,0,0,0,0,0,0],g=0,c=null,l=0,u=function(){return Lge(e,l)};if(":"==u()){if(":"!=Lge(e,1))return;l+=2,c=++g}for(;u();){if(8==g)return;if(":"!=u()){for(A=t=0;t<4&&Uge(rce,u());)A=16*A+Tge(u(),16),l++,t++;if("."==u()){if(0==t)return;if(l-=t,g>6)return;for(n=0;u();){if(r=null,n>0){if(!("."==u()&&n<4))return;l++}if(!Uge(ece,u()))return;for(;Uge(ece,u());){if(i=Tge(u(),10),null===r)r=i;else{if(0==r)return;r=10*r+i}if(r>255)return;l++}s[g]=256*s[g]+r,2!=++n&&4!=n||g++}if(4!=n)return;break}if(":"==u()){if(l++,!u())return}else if(u())return;s[g++]=A}else{if(null!==c)return;l++,c=++g}}if(null!==c)for(o=g-c,g=7;0!=g&&o>0;)a=s[g],s[g--]=s[c+o-1],s[c+--o]=a;else if(8!=g)return;return s}(zge(e,1,-1))))return Vge;this.host=A}else if(this.isSpecial()){if(e=vge(e),Uge(ice,e))return Vge;if(null===(A=function(e){var A,t,n,r,i,o,a,s=Oge(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(A=s.length)>4)return e;for(t=[],n=0;n1&&"0"==Lge(r,0)&&(i=Uge(Ace,r)?16:8,r=zge(r,8==i?1:2)),""===r)o=0;else{if(!Uge(10==i?nce:8==i?tce:rce,r))return e;o=Tge(r,i)}Pge(t,o)}for(n=0;n=Nge(256,5-A))return null}else if(o>255)return null;for(a=Yge(t),n=0;n1?arguments[1]:void 0,n=kge(A,new Pce(e,!1,t));gge||(A.href=n.serialize(),A.origin=n.getOrigin(),A.protocol=n.getProtocol(),A.username=n.getUsername(),A.password=n.getPassword(),A.host=n.getHost(),A.hostname=n.getHostname(),A.port=n.getPort(),A.pathname=n.getPathname(),A.search=n.getSearch(),A.searchParams=n.getSearchParams(),A.hash=n.getHash())},Jce=Hce.prototype,Oce=function(e,A){return{get:function(){return Sge(this)[e]()},set:A&&function(e){return Sge(this)[A](e)},configurable:!0,enumerable:!0}};if(gge&&(Cge(Jce,"href",Oce("serialize","setHref")),Cge(Jce,"origin",Oce("getOrigin")),Cge(Jce,"protocol",Oce("getProtocol","setProtocol")),Cge(Jce,"username",Oce("getUsername","setUsername")),Cge(Jce,"password",Oce("getPassword","setPassword")),Cge(Jce,"host",Oce("getHost","setHost")),Cge(Jce,"hostname",Oce("getHostname","setHostname")),Cge(Jce,"port",Oce("getPort","setPort")),Cge(Jce,"pathname",Oce("getPathname","setPathname")),Cge(Jce,"search",Oce("getSearch","setSearch")),Cge(Jce,"searchParams",Oce("getSearchParams")),Cge(Jce,"hash",Oce("getHash","setHash"))),hge(Jce,"toJSON",(function(){return Sge(this).serialize()}),{enumerable:!0}),hge(Jce,"toString",(function(){return Sge(this).serialize()}),{enumerable:!0}),_ge){var zce=_ge.createObjectURL,jce=_ge.revokeObjectURL;zce&&hge(Hce,"createObjectURL",uge(zce,_ge)),jce&&hge(Hce,"revokeObjectURL",uge(jce,_ge))}mge(Hce,"URL"),sge({global:!0,constructor:!0,forced:!cge,sham:!gge},{URL:Hce});var Xce=WO,qce=kP,Vce=Q5,Wce=Cj,Zce=vae,$ce=SH("URL");Xce({target:"URL",stat:!0,forced:!(Zce&&qce((function(){$ce.canParse()})))},{canParse:function(e){var A=Vce(arguments.length,1),t=Wce(e),n=A<2||void 0===arguments[1]?void 0:Wce(arguments[1]);try{return!!new $ce(t,n)}catch(r){return!1}}});var ele=DP(mH.URL),Ale=pJ,tle=AH,nle=yH,rle=DO,ile=function(e){return void 0!==e&&(Ale(e,"value")||Ale(e,"writable"))},ole=WP,ale=XW;WO({target:"Reflect",stat:!0},{get:function e(A,t){var n,r,i=arguments.length<3?A:arguments[2];return rle(A)===i?A[t]:(n=ole.f(A,t))?ile(n)?n.value:void 0===n.get?void 0:tle(n.get,i):nle(r=ale(A))?e(r,t,i):void 0}});var sle=DP(mH.Reflect.get);function gle(){var e;return gle="undefined"!=typeof Reflect&&sle?B9(e=sle).call(e):function(e,A,t){var n=function(e,A){for(;!Object.prototype.hasOwnProperty.call(e,A)&&null!==(e=L9(e)););return e}(e,A);if(n){var r=d0(n,A);return r.get?r.get.call(arguments.length<3?e:t):r.value}},gle.apply(this,arguments)}function cle(e,A,t){var n;return(cle=U9()?B9(n=N9).call(n):function(e,A,t){var n=[null];b0(n).apply(n,A);var r=new(B9(Function).apply(e,n));return t&&Q9(r,t.prototype),r}).apply(null,arguments)}var lle=RP;WO({global:!0,forced:lle.globalThis!==lle},{globalThis:lle});var ule,Ile,hle,Cle,dle,Ele,fle=DP(RP),Ble=(null===(ule=void 0!==fle?fle:void 0)||void 0===ule?void 0:ule.crypto)||(null===(Ile="undefined"!=typeof global?global:void 0)||void 0===Ile?void 0:Ile.crypto)||(null===(hle="undefined"!=typeof window?window:void 0)||void 0===hle?void 0:hle.crypto)||(null===(Cle="undefined"!=typeof self?self:void 0)||void 0===Cle?void 0:Cle.crypto)||(null===(dle="undefined"!=typeof frames?frames:void 0)||void 0===dle||null===(dle=dle[0])||void 0===dle?void 0:dle.crypto);Ele=Ble?function(e){for(var A=[],t=0;t>16)&n)<<16)+(A=18e3*(65535&A)+(A>>16)&n)&n;return e/=4294967296,(e+=.5)*(Math.random()>.5?1:-1)}},r=0;r0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4*n.length;v8(this,t),e=A.call(this);var i=n;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),(i instanceof Int8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)&&(i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),i instanceof Uint8Array){for(var o=i.byteLength,a=[],s=0;s>>2]|=i[s]<<24-s%4*8;e.words=a,e.sigBytes=o}else e.words=n,e.sigBytes=r;return e}return m8(t,[{key:"toString",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:vle).stringify(this)}},{key:"concat",value:function(e){var A=this.words,t=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i>>2]>>>24-i%4*8&255;A[n+i>>>2]|=o<<24-(n+i)%4*8}else for(var a=0;a>>2]=t[a>>>2];return this.sigBytes+=r,this}},{key:"clamp",value:function(){var e=this.words,A=this.sigBytes;e[A>>>2]&=4294967295<<32-A%4*8,e.length=Math.ceil(A/4)}},{key:"clone",value:function(){var e,A=gle(L9(t.prototype),"clone",this).call(this);return A.words=Ite(e=this.words).call(e,0),A}}]),t}();v1(ple,"random",Ele);var vle={stringify:function(e){for(var A=e.words,t=e.sigBytes,n=[],r=0;r>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var A=e.length,t=[],n=0;n>>3]|=LAe(e.substr(n,2),16)<<24-n%8*4;return new ple(t,A/2)}},yle=function(e){for(var A=e.length,t=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new ple(t,A)},mle=function(e){return yle(unescape(encodeURIComponent(e)))},Dle=function(e){p9(t,Qle);var A=x9(t);function t(){var e;return v8(this,t),(e=A.call(this))._minBufferSize=0,e}return m8(t,[{key:"reset",value:function(){this._data=new ple,this._nDataBytes=0}},{key:"_append",value:function(e){var A,t=e;"string"==typeof t&&(t=mle(t)),V8(A=this._data).call(A,t),this._nDataBytes+=t.sigBytes}},{key:"_process",value:function(e){var A,t=this._data,n=this.blockSize,r=t.words,i=t.sigBytes,o=i/(4*n),a=(o=e?Math.ceil(o):Math.max((0|o)-this._minBufferSize,0))*n,s=Math.min(4*a,i);if(a){for(var g=0;gs&&(o=i.finalize(n)),o.clamp();var g=o.clone();r._oKey=g;var c=o.clone();r._iKey=c;for(var l=g.words,u=c.words,I=0;I>>31}var c=(n<<5|n>>>27)+a+kle[s];c+=s<20?1518500249+(r&i|~r&o):s<40?1859775393+(r^i^o):s<60?(r&i|r&o|i&o)-1894007588:(r^i^o)-899497514,a=o,o=i,i=r<<30|r>>>2,r=n,n=c}t[0]=t[0]+n|0,t[1]=t[1]+r|0,t[2]=t[2]+i|0,t[3]=t[3]+o|0,t[4]=t[4]+a|0}},{key:"_doFinalize",value:function(){var e=this._data,A=e.words,t=8*this._nDataBytes,n=8*e.sigBytes;return A[n>>>5]|=128<<24-n%32,A[14+(n+64>>>9<<4)]=Math.floor(t/4294967296),A[15+(n+64>>>9<<4)]=t,e.sigBytes=4*A.length,this._process(),this._hash}},{key:"clone",value:function(){var e=gle(L9(t.prototype),"clone",this).call(this);return e._hash=this._hash.clone(),e}}]),t}();wle._createHelper(Sle);var Mle,Gle=wle._createHmacHelper(Sle);!function(e,A,t){function n(e,A){var t=Uv(Xp(e).call(e,A,A+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=Uv(Xp(e).call(e,A+2,A+4),16)]):(t=(63&t)<<16,[3,t+=Uv(Xp(e).call(e,A+2,A+6),16)])}var r,i=0,o=[],a=[];for(r=0;r<4;++r)i+=(3&Uv(Xp(e).call(e,8+2*r,10+2*r),16))<<2*r;var s=Uv(Xp(e).call(e,16,24),16),g=2*Uv(Xp(e).call(e,32,40),16);for(r=40;r0;--c)u=u.p;C[++h]=u[l];break;case 29:g=(o[A]<<8)+o[A+1],A+=2,c=a[g],C[h]=C[h][c];break;case 43:for(c=o[A++],l=o[A++],u=E;c>0;--c)u=u.p;u[l]=C[h--];break;case 53:g=o[A++],c=C[h--],(l=function e(){var A=e._v;return(0,e._u)(A[0],arguments,A[1],A[2],this)})._v=[c,g,E],l._u=e,C[++h]=l;break;case 50:for(c=C[h--],l=null;u=f.pop();)if(2===u[0]||3===u[0]){l=u;break}if(l)A=l[2],l[0]=0,f.push(l);else{if(!d)return c;A=d[1],i=d[2],E=d[3],f=d[4],C[++h]=c,d=d[0]}break;case 26:h-=g=o[A++],l=Xp(C).call(C,h+1,h+g+1),c=C[h--],u=C[h--],c._u===e?(c=c._v,d=[d,A,i,E,f],A=c[0],null==u&&(u=function(){return this}()),i=u,(E=xf(s=[l]).call(s,l)).length=Math.min(c[1],g)+1,E.p=c[2],f=[]):(I=c.apply(u,l),C[++h]=I);break;case 49:c=C[h],C[++h]=c;break;default:throw new Error("ioe")}}catch(B){for(;(g=f.pop())&&!g[0];);if(!g){e:for(;d;){for(c=d[4];g=c.pop();)if(g[0])break e;d=d[0]}if(!d)throw B;A=d[1],i=d[2],E=d[3],f=d[4],d=d[0]}1===(c=g[0])?(A=g[2],g[0]=0,f.push(g),C[++h]=B):2===c?(A=g[2],g[0]=0,f.push(g)):(A=g[3],g[0]=2,f.push(g),C[++h]=B)}}(s,[],0,A,t)}("504B0101d6ff48f400000028f44afcd4000000343e4802004800014800024800034800043b0004311d00001b00011a011b00021a02311d00031a0032410000000035042b01012a32000404646167600128203f3964627e6c7b63667d376f6766743f7c7f3f783e3f64793960366037647e6a087a615d7a7c676069",{get 0(){return Gle},get 1(){return Mle},set 1(e){Mle=e}},void 0);var _le,ble=function(){function e(A,t){var n,r,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:O7.CN;v8(this,e),v1(this,"appId",void 0),v1(this,"ctx",void 0),v1(this,"host",void 0),v1(this,"needSignature",!0),v1(this,"region",void 0),v1(this,"scene",void 0),v1(this,"ext",void 0),this.scene=(n={},v1(n,J7.LIVE,1),v1(n,J7.VOD,0),n)[t.videoType],this.ext=m1({userId:null!==(r=t.featureCenter.getFeatureList().userId)&&void 0!==r?r:"",playerVerson:null!==(i=t.featureCenter.getFeatureList().playerVersion)&&void 0!==i?i:""},this.getConfigType(t.strategies)),this.appId=A,this.ctx=t,this.region=o,this.host=this.getHostByRegion()}return m8(e,[{key:"getConfigType",value:function(e){var A;if(!e)return{};var t={};return w8(A=R8(e)).call(A,(function(A){var n=e[A];n&&(t["".concat(A,"_id")]="object"===O$(n)&&n.configId?n.configId:"default")})),t}},{key:"getCacheKey",value:function(){return G8([this.appId,this.ctx.cacheKey,this.ctx.featureCenter.getH265FeatureList().isHevcSupported,this.ctx.featureCenter.getBrowserInfo(),this.ctx.featureCenter.getFeatureList().deviceId])}},{key:"fetch",value:function(e){function A(){return e.apply(this,arguments)}return A.toString=function(){return e.toString()},A}(p8(B8().mark((function e(){var A,t,n,r,i,o,a;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(this.generateUrl(),{mode:"cors"});case 3:if((A=e.sent).ok){e.next=6;break}throw new Error("Network response was not OK");case 6:return e.next=8,A.json();case 8:return t=e.sent,n=t.data,r=n.custom_settings.web,i=n.general_settings,o=i.use_local_cache,a=i.local_cache_expire,e.abrupt("return",m1(m1({},r),{},{use_local_cache:o,local_cache_expired_at:a>0?H7()+1e3*a:void 0,cache_key:this.getCacheKey()}));case 17:throw e.prev=17,e.t0=e.catch(0),e.t0;case 20:case"end":return e.stop()}}),e,this,[[0,17]])}))))},{key:"getHostByRegion",value:function(){var e;return(null===(e={cn:{settingsHost:"vod-settings.volcvod.com"}}[this.region])||void 0===e?void 0:e.settingsHost)||"vod-settings.volcvod.com"}},{key:"generateSearchParams",value:function(e){if(e.searchParams.set("module","web"),e.searchParams.set("aid",String(this.appId)),e.searchParams.set("region",this.region),e.searchParams.set("web_support_hardware_decode_bytevc1",String(this.ctx.featureCenter.getH265FeatureList().isHevcSupported)),e.searchParams.set("web_os",this.ctx.featureCenter.getBrowserInfo().osName),e.searchParams.set("web_os_version",this.ctx.featureCenter.getBrowserInfo().osVersion),e.searchParams.set("web_platform",this.ctx.featureCenter.getBrowserInfo().platformType),e.searchParams.set("web_browser",this.ctx.featureCenter.getBrowserInfo().browserName),e.searchParams.set("web_browser_version",this.ctx.featureCenter.getBrowserInfo().browserVersion),e.searchParams.set("web_cpu_core",String(this.ctx.featureCenter.getBrowserInfo().cpuCore)),e.searchParams.set("web_scene",String(this.scene)),e.searchParams.set("web_ext",G8(this.ext)),e.searchParams.set("device_id",this.ctx.featureCenter.getFeatureList().deviceId),this.needSignature){var A=H7();e.searchParams.set("timestamp",String(A));var t=Mle(this.appId,this.ctx.featureCenter.getFeatureList().deviceId,this.ctx.featureCenter.getBrowserInfo().browserName,A);e.searchParams.set("signature",t)}return e}},{key:"generateUrl",value:function(){return this.generateSearchParams(new ele("https://".concat(this.host,"/vod/settings/v1")))}}]),e}(),Tle=new q7("VeStrategy"),Fle=(v1(_le={},J7.VOD,joe),v1(_le,J7.LIVE,Bae),_le),Nle=function(){function e(A){v8(this,e),v1(this,"ctx",void 0),v1(this,"configPreparePromise",void 0),v1(this,"isStrategyStarted",!1);var t=new vne(A),n=new A9(A,new ble(A.appId,{featureCenter:t,cacheKey:A.cacheKey,strategies:A.strategies,videoType:A.type||J7.VOD}));Tle.update(A.log),this.ctx={dataCenter:n,featureCenter:t,playerManager:new Uoe,tracker:new Koe({trackInfo:A.tracker,type:A.type||J7.VOD,lineAppId:A.appId,lineUserId:A.deviceId,appId:A.type===J7.VOD?577780:579013,channel:A.region,cxt:{dataCenter:n,featureCenter:t}})},this.prepare(!0)}var A,t,n,r,i;return m8(e,[{key:"start",value:(i=p8(B8().mark((function e(){var A,t=this;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isStrategyStarted){e.next=2;break}return e.abrupt("return");case 2:if(this.isStrategyStarted=!0,Tle.info("Start"),this.ctx.tracker.track("strategy_start",{}),this.ctx.featureCenter.getFeatureList().deviceId){e.next=13;break}return e.next=8,this.getTeaToken();case 8:if(e.t0=e.sent,e.t0){e.next=11;break}e.t0={};case 11:A=e.t0,this.ctx.featureCenter.updateFeatureList({deviceId:A.user_unique_id||A.web_id||""});case 13:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),this.configPreparePromise.then((function(){return t.prepare(!1)})),e.abrupt("return",this.configPreparePromise);case 16:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateFeatures",value:(r=p8(B8().mark((function e(A){var t,n,r;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A&&null!==(t=this.ctx)&&void 0!==t&&null!==(t=t.featureCenter)&&void 0!==t&&t.updateFeatureList){e.next=2;break}return e.abrupt("return");case 2:if(r=null===(n=this.ctx.featureCenter.getFeatureList())||void 0===n?void 0:n.deviceId,this.ctx.featureCenter.updateFeatureList(m1({},A)),!A.deviceId||A.deviceId===r){e.next=6;break}return e.abrupt("return",this.reloadConfig());case 6:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"reloadConfig",value:(n=p8(B8().mark((function e(){return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),e.abrupt("return",this.configPreparePromise);case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getTeaToken",value:(t=p8(B8().mark((function e(){var A=this;return B8().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new D8((function(e){var t,n,r;if("function"==typeof(null===(t=A.ctx.tracker)||void 0===t||null===(t=t.tracker)||void 0===t?void 0:t.getToken))return A.ctx.tracker.tracker.getToken((function(A){return e(A)}));var i=((null===(n=A.ctx.tracker)||void 0===n||null===(n=n.tracker)||void 0===n||null===(r=n.getConfig)||void 0===r?void 0:r.call(n))||{}).user;return e(void 0===i?{}:i)})));case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"prepare",value:function(e){var A,t=this,n=this.ctx.dataCenter.getInitStrategyConfig()||{},r=this.ctx.dataCenter.getServiceStrategyConfig()||{};w8(A=R8(n)).call(A,(function(A){var i,o,a,s,g,c,l;(null===(i=n[A])||void 0===i?void 0:i.disabled)||(null==r||null===(o=r[A])||void 0===o?void 0:o.disabled)||null===(a=n[A])||void 0===a||null===(a=a.Strategy)||void 0===a||null===(s=a[e?"prepareBeforeStarted":"prepareAfterStarted"])||void 0===s||s.call(a,{ctx:t.ctx,Strategy:null===(g=n[A])||void 0===g?void 0:g.Strategy,config:m1(m1({},null===(c=n[A])||void 0===c?void 0:c.config),null==r||null===(l=r[A])||void 0===l?void 0:l.config)})}))}}],[{key:"init",value:function(A){if(Tle.update(null==A?void 0:A.log),null!=A&&A.appId){var t,n={};A.strategies&&w8(t=R8(A.strategies)).call(t,(function(e){var t,r;null!==(t=A.strategies)&&void 0!==t&&t[e]&&"object"===O$(null===(r=A.strategies)||void 0===r?void 0:r[e])&&(n[e]=A.strategies[e])}));var r=m1(m1({},A),{},{strategies:n,type:A.type||J7.VOD});if(Tle.info("Init",r),r.type===J7.VOD||r.type===J7.LIVE)return r.type===J7.VOD?(e._vodInst=e._vodInst||new e(r),e._vodInst.ctx.tracker.track("strategy_init",{}),e._vodInst):(e._liveInst=e._liveInst||new e(r),e._liveInst.ctx.tracker.track("strategy_init",{}),e._liveInst);Tle.error("Init Invalid Strategy Type=".concat(A.type))}else Tle.error("Init without appId",A)}},{key:"bootstrap",value:function(A){var t;return null===(t=e.init(A))||void 0===t?void 0:t.start()}},{key:"inst",value:function(){var A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:J7.VOD;return A===J7.VOD?e._vodInst:A===J7.LIVE?e._liveInst:null}},{key:"recLive",value:function(A,t){return e.rec(A,t,J7.LIVE)}},{key:"recAsync",value:(A=p8(B8().mark((function A(t,n){var r,i,o=arguments;return B8().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(r=o.length>2&&void 0!==o[2]?o[2]:J7.VOD,i=e.inst(r||J7.VOD),Tle.info("recAsync",i,n,r),null!=i&&i.configPreparePromise){A.next=6;break}return Tle.error("VeStrategyNotInitOrStart"),A.abrupt("return",{plugins:[],pluginConfiguration:{},result:{}});case 6:return A.next=8,i.configPreparePromise;case 8:return A.abrupt("return",e.rec(t,n,r));case 9:case"end":return A.stop()}}),A)}))),function(e,t){return A.apply(this,arguments)})},{key:"rec",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:J7.VOD;try{return e._rec(A,t,n)}catch(o){var r;Tle.error("VeStrategyRecError");var i=e.inst(n);return null==i||null===(r=i.ctx)||void 0===r||null===(r=r.tracker)||void 0===r||r.track("strategy_js_error",{type:n,option:G8(null!=A?A:{}),common_config:G8(null!=t?t:{})}),{plugins:[],pluginConfiguration:{},result:{}}}}},{key:"reportABInfo",value:function(A){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:J7.VOD;J7.VOD!==r?J7.LIVE!==r||null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.tracker)||void 0===t||t.bindTrackerABVersion(A):null===(n=e._vodInst)||void 0===n||null===(n=n.ctx)||void 0===n||null===(n=n.tracker)||void 0===n||n.bindTrackerABVersion(A)}},{key:"getServiceConfig",value:function(){var A,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:J7.VOD;return J7.VOD===n?(null===(A=e._vodInst)||void 0===A||null===(A=A.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}:J7.LIVE===n&&(null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.dataCenter)||void 0===t?void 0:t.getServiceStrategyConfig())||{}}},{key:"apply",value:function(A,t,n){var r,i;if(!A||!t)return A;var o=(null==n?void 0:n.type)||J7.VOD;if(o===J7.VOD&&null!==(r=e._vodInst)&&void 0!==r&&r.ctx){var a,s=(null==n?void 0:n.Adapter)||(null===(a=e._vodInst.ctx.dataCenter.getAppConfig())||void 0===a||null===(a=a.adapter)||void 0===a?void 0:a.Adapter)||Fle[J7.VOD];return s&&(A=(new s).apply(A,t)),A}if(o===J7.LIVE&&null!==(i=e._liveInst)&&void 0!==i&&i.ctx){var g,c=(null==n?void 0:n.Adapter)||(null===(g=e._liveInst.ctx.dataCenter.getAppConfig())||void 0===g||null===(g=g.adapter)||void 0===g?void 0:g.Adapter)||Fle[J7.LIVE];return c&&(A=(new c).apply(A,t)),A}return A}},{key:"_rec",value:function(A,t){var n,r,i,o,a,s,g,c,l,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:J7.VOD,I=e.inst(u||J7.VOD);if(Tle.info("rec",I,t,u),!I)return Tle.error("VeStrategyNotInit"),{plugins:[],pluginConfiguration:{},result:{}};var h=new Noe(I.ctx),C=I.ctx.dataCenter.getServiceStrategyConfig()||{},d=I.ctx.dataCenter.getInitStrategyConfig()||{},E={plugins:[zoe],pluginConfiguration:v1({},zoe.pluginName,{}),result:{settings:{options:null!==(n=null===(r=C.settings)||void 0===r?void 0:r.config)&&void 0!==n?n:{}}},strategyPluginKeys:zoe.pluginName};w8(i=R8(d)).call(i,(function(e){var t,n=d[e],r=C[e],i=null==A?void 0:A[e];if(null!=n&&n.disabled||null!=r&&r.disabled||null!=i&&i.disabled)Tle.warn("StrategyDisabled",n,r,i);else{var o,a,s=m1(m1(m1({},n),i),{},{config:J8({},null==n?void 0:n.config,null==r?void 0:r.config,null==i?void 0:i.config)});(null===(t=s.Strategy)||void 0===t?void 0:t.strategyName)===e?h.registerStrategy(s):Tle.warn("StrategyNameIllegal",V8(o="".concat(null===(a=s.Strategy)||void 0===a?void 0:a.strategyName,"!==")).call(o,e))}})),w8(o=h.getStrategyList()).call(o,(function(e){var A,n,r;try{var i;r=(null==e||null===(i=e.getRecommendation)||void 0===i?void 0:i.call(e,t))||{plugins:[],pluginConfiguration:{},result:{}}}catch(o){return Tle.error("StrategyRecommendError",o),void I.ctx.tracker.track("strategy_exe_error",{strategy_name:null==e?void 0:e.strategyName})}E.plugins=V8(A=E.plugins).call(A,r.plugins||[]),E.pluginConfiguration=m1(m1({},E.pluginConfiguration),r.pluginConfiguration),E.result=m1(m1({},E.result),{},v1({},e.strategyName,m1({_strategyConfig:null===(n=e.getStrategyConfig)||void 0===n?void 0:n.call(e)},r.result)))}));var f=I.ctx.dataCenter.getAppConfig();w8(a=R8(E.pluginConfiguration)).call(a,(function(e){E.pluginConfiguration[e]=m1(m1({},E.pluginConfiguration[e]),{},{ctx:I.ctx,strategyCenter:h,videoType:null==f?void 0:f.type})})),Tle.info("StrategyRecommendResult",E);var B=null!==(s=E.result)&&void 0!==s?s:{};return E.strategyKeys=W8(g=R8(B)).call(g,(function(e){var A;return"object"===O$(B[e])&&(null===(A=B[e])||void 0===A?void 0:A.enable)})).join("|"),E.strategyPluginKeys=null===(c=E.plugins)||void 0===c||null===(l=i7(c))||void 0===l||null===(l=l.call(c,(function(e){return null==e?void 0:e.pluginName})))||void 0===l?void 0:l.join("|"),I.ctx.tracker.track("strategy_rec_info",{strategy_keys:E.strategyKeys,strategy_plugin_keys:E.strategyPluginKeys,strategy_info:G8(E.result)}),E}}]),e}();v1(Nle,"_vodInst",void 0),v1(Nle,"_liveInst",void 0);var Lle=["Strategy","disabled","config"];function Ule(e){if(!e||"boolean"==typeof e)return{config:{}};e.Strategy,e.disabled;var A=e.config,t=Af(e,Lle);return Ff(Ff({},e),{},{config:Ff(Ff({},t),null!=A?A:{})})}var Kle,xle,Yle=function(){function e(A){var t,n=this;GE(this,e),LE(this,"config",void 0),LE(this,"tea",void 0),LE(this,"Collector",void 0),LE(this,"_loadPlugin",void 0),LE(this,"webId",void 0),LE(this,"status",0),LE(this,"initPromise",void 0),LE(this,"_strategyWrappers",{}),this.tea=A.tea,this.Collector=A.Collector,this._loadPlugin=A.loadPlugin,null===(t=A.strategies)||void 0===t||t.forEach((function(e){n._strategyWrappers[e.strategyKey]=new e(n)}))}var A,t,n,r,i,o;return NE(e,[{key:"preload",get:function(){return this._strategyWrappers.preload}},{key:"h265",get:function(){return this._strategyWrappers.h265}},{key:"rtmAdaptiveBuffer",get:function(){return this._strategyWrappers.rtmAdaptiveBuffer}},{key:"init",value:(o=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.initPromise||(this.initPromise=this.initOnce(A)),e.abrupt("return",this.initPromise);case 2:case"end":return e.stop()}}),e,this)}))),function(e){return o.apply(this,arguments)})},{key:"apply",value:function(e,A){var t;return null===(t=this.config)||void 0===t||null===(t=t.Module)||void 0===t?void 0:t.apply(e,A,this.config)}},{key:"prepare",value:function(){return this.initPromise||Op.resolve(this.isReady())}},{key:"getDeviceId",value:function(){var e;return null===(e=this.config)||void 0===e?void 0:e.deviceId}},{key:"isReady",value:function(){return 2===this.status}},{key:"getStrategyRecommendations",value:function(){var e,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;return this.isReady()?(null===(e=this.config)||void 0===e||null===(e=e.Module)||void 0===e?void 0:e.rec(A,t,J7.LIVE))||{}:{plugins:[],pluginConfiguration:{}}}},{key:"getStrategyRecommendationsAsync",value:(i=aE(iE().mark((function e(){var A,t,n,r,i=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=i.length>0&&void 0!==i[0]?i[0]:void 0,n=i.length>1&&void 0!==i[1]?i[1]:void 0,this.isReady()){e.next=4;break}return e.abrupt("return",{plugins:[],pluginConfiguration:{}});case 4:return e.next=6,null===(A=this.config)||void 0===A||null===(A=A.Module)||void 0===A?void 0:A.recAsync(t,n);case 6:return r=e.sent,e.abrupt("return",r);case 8:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"fetchWebId",value:(r=aE(iE().mark((function e(){var A,t,n=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(A=this.config)||void 0===A||!A.deviceId){e.next=2;break}return e.abrupt("return",Op.resolve(null===(t=this.config)||void 0===t?void 0:t.deviceId));case 2:return e.abrupt("return",new Op((function(e){var A;return null!==(A=n.tea)&&void 0!==A&&A.getToken?n.tea.getToken((function(A){e(null==A?void 0:A.web_id)})):e("default_web_id")})).then((function(e){return n.config&&(n.config.deviceId=e),n.webId})));case 3:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"fetchVeStrategy",value:(n=aE(iE().mark((function e(){var A,t=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null===(A=this.config)||void 0===A||!A.Module){e.next=2;break}return e.abrupt("return");case 2:return e.abrupt("return",this._loadPlugin("vestrategy").then((function(e){t.config&&e&&(t.config.Module=e)})));case 3:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"fetchStrategies",value:(t=aE(iE().mark((function e(){var A,t,n,r=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n={},null!==(A=this.config)&&void 0!==A&&A.strategies){e.next=3;break}return e.abrupt("return",n);case 3:return e.next=5,Op.all(Jp(t=jp(this.config.strategies)).call(t,function(){var e=aE(iE().mark((function e(A){var t,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=null===(t=r.config)||void 0===t||null===(t=t.strategies)||void 0===t?void 0:t[A]){e.next=3;break}return e.abrupt("return");case 3:if(!0===i&&(i={}),o=i.Strategy){e.next=9;break}return e.next=8,r._loadPlugin(A);case 8:o=e.sent;case 9:n[A]=Ff(Ff({},i),{},{Strategy:o}),n[A]=Ule(n[A]);case 11:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}()));case 5:return this.config.strategies=n,e.abrupt("return",n);case 7:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"initOnce",value:(A=aE(iE().mark((function e(A){var t,n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A&&A.appId){e.next=2;break}return e.abrupt("return");case 2:return this.status=1,this.config=A,e.prev=4,e.next=7,Op.all([this.fetchWebId(),this.fetchVeStrategy()]);case 7:return e.next=9,this.fetchStrategies();case 9:e.next=13;break;case 11:e.prev=11,e.t0=e.catch(4);case 13:if(t=this.config,n=t.appId,r=t.deviceId,i=t.Module,o=t.syncWaitSettings,!(n&&r&&i)){e.next=24;break}if(!o){e.next=20;break}return e.next=18,i.bootstrap(Ff(Ff({},this.config),{},{tracker:{Collector:this.Collector,enableABVersion:!1}}));case 18:e.next=21;break;case 20:i.bootstrap(Ff(Ff({},this.config),{},{tracker:{Collector:this.Collector,enableABVersion:!1}}));case 21:this.status=2,e.next=25;break;case 24:this.status=3;case 25:return e.abrupt("return",this.isReady());case 26:case"end":return e.stop()}}),e,this,[[4,11]])}))),function(e){return A.apply(this,arguments)})}]),e}(),Ple=(Kle="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href,aE(iE().mark((function e(){var A,t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y,m,D,w,R,k,S,M,G,_,b,T,F,N,L,U,K,x,Y,P,H,J,O,z,j,X,q,V,W,Z,$,ee,Ae,te,ne,re,ie,oe,ae,se,ge,ce,le,ue,Ie,he,Ce,de,Ee,fe,Be,Qe,pe,ve,ye,me,De,we,Re,ke,Se,Me,Ge,_e,be,Te,Fe,Ne,Le,Ue,Ke,xe,Ye,Pe,He,Je,Oe,ze,je,Xe,qe,Ve,We,Ze,$e,eA=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if($e=function(){function e(){var e;t.calledRun=!0,R||(L(),U(),n(t),null===(e=t.onRuntimeInitialized)||void 0===e||e.call(t),t.noInitialRun||Ze(),K())}x>0?Y=$e:(N(),x>0?Y=$e:t.setStatus?(t.setStatus("Running..."),setTimeout((function(){setTimeout((function(){return t.setStatus("")}),1),e()}),1)):e())},Ze=function(){var e=Xe;try{var A=e(0,0);return Ke(A,!0),A}catch(P7){return xe(P7)}},ke=function(e,A,t){if(A=Re(A),!we(e))return 28;var n;if(0===e)n=me();else{if(!De)return 52;n=ye()}var r=Math.round(1e3*n*1e3);return b[t>>3]=BigInt(r),0},te=function(){return(te=aE(iE().mark((function e(){var A,n,i,o,a,s;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=function(e){return n(e.instance)},n=function(e,A){return je=e.exports,w=je.i,F(),H("wasm-instantiate"),je},P("wasm-instantiate"),o=ee(),!t.instantiateWasm){e.next=6;break}return e.abrupt("return",new Op((function(e,A){t.instantiateWasm(o,(function(A,t){n(A,t),e(A.exports)}))})));case 6:return null!==(A=O)&&void 0!==A||(O=z()),e.prev=7,e.next=10,Z(D,O,o);case 10:return a=e.sent,s=i(a),e.abrupt("return",s);case 15:return e.prev=15,e.t0=e.catch(7),r(e.t0),e.abrupt("return",Op.reject(e.t0));case 19:case"end":return e.stop()}}),e,null,[[7,15]])})))).apply(this,arguments)},Ae=function(){return te.apply(this,arguments)},ee=function(){return{a:ze}},$=function(){return($=aE(iE().mark((function e(A,t,n){var r,i;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A||"function"!=typeof WebAssembly.instantiateStreaming||T(t)||s){e.next=13;break}return e.prev=1,r=fetch(t,{credentials:"same-origin"}),e.next=5,WebAssembly.instantiateStreaming(r,n);case 5:return i=e.sent,e.abrupt("return",i);case 9:e.prev=9,e.t0=e.catch(1),m("wasm streaming compile failed: ".concat(e.t0)),m("falling back to ArrayBuffer instantiation");case 13:return e.abrupt("return",V(t,n));case 14:case"end":return e.stop()}}),e,null,[[1,9]])})))).apply(this,arguments)},Z=function(e,A,t){return $.apply(this,arguments)},W=function(){return(W=aE(iE().mark((function e(A,t){var n,r;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,X(A);case 3:return n=e.sent,e.next=6,WebAssembly.instantiate(n,t);case 6:return r=e.sent,e.abrupt("return",r);case 10:e.prev=10,e.t0=e.catch(0),m("failed to asynchronously prepare wasm: ".concat(e.t0)),J(e.t0);case 14:case"end":return e.stop()}}),e,null,[[0,10]])})))).apply(this,arguments)},V=function(e,A){return W.apply(this,arguments)},q=function(){return(q=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(D){e.next=10;break}return e.prev=1,e.next=4,E(A);case 4:return t=e.sent,e.abrupt("return",new Uint8Array(t));case 8:e.prev=8,e.t0=e.catch(1);case 10:return e.abrupt("return",j(A));case 11:case"end":return e.stop()}}),e,null,[[1,8]])})))).apply(this,arguments)},X=function(e){return q.apply(this,arguments)},j=function(e){if(e==O&&D)return new Uint8Array(D);if(f)return f(e);throw"both async and sync fetching of the wasm failed"},z=function(){return t.locateFile?d("ttlicense2.wasm"):new Xb("data:application/wasm;base64,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QRBqJAALOwECf0EBIAAgAEEBTRshAQNAAkAgARAuIgANAEGc2wEoAgAiAkUNACACEQoADAELCyAARQRAEE4LIAALIwEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgggACgCBGtBAnULJQEBfyMAQRBrIgEkACABIAA2AgwgASgCDEEUahAYIAFBEGokAAu7CgIFfw9+IwBB4ABrIgUkACAEQv///////z+DIQwgAiAEhUKAgICAgICAgIB/gyEKIAJC////////P4MiDUIgiCEOIARCMIinQf//AXEhBwJAAkAgAkIwiKdB//8BcSIJQf//AWtBgoB+TwRAIAdB//8Ba0GBgH5LDQELIAFQIAJC////////////AIMiC0KAgICAgIDA//8AVCALQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQoMAgsgA1AgBEL///////////8AgyICQoCAgICAgMD//wBUIAJCgICAgICAwP//AFEbRQRAIARCgICAgICAIIQhCiADIQEMAgsgASALQoCAgICAgMD//wCFhFAEQCACIAOEUARAQoCAgICAgOD//wAhCkIAIQEMAwsgCkKAgICAgIDA//8AhCEKQgAhAQwCCyADIAJCgICAgICAwP//AIWEUARAIAEgC4RCACEBUARAQoCAgICAgOD//wAhCgwDCyAKQoCAgICAgMD//wCEIQoMAgsgASALhFAEQEIAIQEMAgsgAiADhFAEQEIAIQEMAgsgC0L///////8/WARAIAVB0ABqIAEgDSABIA0gDVAiBht5IAZBBnStfKciBkEPaxBfQRAgBmshBiAFKQNYIg1CIIghDiAFKQNQIQELIAJC////////P1YNACAFQUBrIAMgDCADIAwgDFAiCBt5IAhBBnStfKciCEEPaxBfIAYgCGtBEGohBiAFKQNIIQwgBSkDQCEDCyADQg+GIgtCgID+/w+DIgIgAUIgiCIEfiIQIAtCIIgiEyABQv////8PgyIBfnwiD0IghiIRIAEgAn58IgsgEVStIAIgDUL/////D4MiDX4iFSAEIBN+fCIRIAxCD4YiEiADQjGIhEL/////D4MiAyABfnwiFCAPIBBUrUIghiAPQiCIhHwiDyACIA5CgIAEhCIMfiIWIA0gE358Ig4gEkIgiEKAgICACIQiAiABfnwiECADIAR+fCIS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DGoQ6AEiAEEEaiACEOgBGiADQRBqJAAgAAsiAQF/IwBBEGsiAiAANgIMIAIgATYCCCACKAIMIAIoAghxCwsAIAAoAgAQowXACyQBAX8jAEEQayICIAA2AgwgAiABNgIIIAIoAgwgAigCCDYCAAsKACAAKAIAEJoFCwsAIAAgASACEKkFCzwBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIAIoAgggAigCCCACKAIIEFBqEP4FIAJBEGokAAsGABCvCAALQQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBA5IAIoAggQOSACKAIIEMUCahD+BSACQRBqJAALyQMBBH8jAEEQayIEJAAgBCAANgIMIAQgAToACwJAIAQoAgwiAxDSAkEBEDwEQEEYECohBSAELQALwCEBIAMoAiQQFSgCACEAIwBBEGsiAiQAIAIgBTYCDCACIAM2AgggAiABOgAHIAIgADYCACACKAIMIgAgAigCABBkIABBuMMANgIAIABBCGogAigCCBCBAiAAIAIoAgggAi0AB8AQdjoAFCACQRBqJAAgAygCJBAVIAU2AgAMAQsCQCADENICQQgQPARAQRgQKiEBIAQtAAvAIQUgAygCJBAVKAIAIQAjAEEQayICJAAgAiABNgIMIAIgAzYCCCACIAU6AAcgAiAANgIAIAIoAgwiACACKAIAEGQgAEGUxAA2AgAgAEEIaiACKAIIEIECIAAgAigCCCACLQAHwBCJAToAFCACQRBqJAAMAQtBDBAqIQEgBC0AC8AhBSADKAIkEBUoAgAhACMAQRBrIgIkACACIAE2AgwgAiAFOgALIAIgADYCBCACKAIMIgAgAigCBBBkIABB8MQANgIAIAAgAi0ACzoACCACQRBqJAALIAMoAiQQFSABNgIACyADIAMoAiQQFSgCADYCJCAEQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAYIAFBEGokAAueAQEDfyMAQRBrIgIkACACIAA2AgggAiABNgIEIAIoAgQhASMAQRBrIgAkACAAIAJBCGo2AgwgACABNgIIIAAgACgCCBAMNgIEIAAoAgwhAyAAKAIEIQQjAEEQayIBJAAgASADNgIIIAEgBDYCBCABKAIIIAEoAgQQhQcgAUEQaiQAIABBEGokACACIAIoAgg2AgwgAigCDCACQRBqJAALmgEBAX8jAEGgwABrIgIkACACQachNgKcQCACQQI2AphAIAIgADYClEAgAkEQaiIAQQBBgMAA/AsAIAIgATYCCCAAIAIoApxAEPkCIAIgAigCnEAQUDYCDCAAQe8iEPkCIAIgABBQNgIMIAIoAgwgAGpBgMAAIAIoAgxrIAIoApRAIAIoAggQtwIaIABBiDMQ+QIgAkGgwABqJAALIwEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgQgACgCAGtBDG0LGwEBfyAAEFQEQCAAKAIAIAAQuwEaEN8CCyAAC64CAQJ/IwBBIGsiAiQAIAIgADYCGCACIAE2AhQCQCACKAIYIAIoAhRGBEAgAkEANgIcDAELIAIoAhQoAghFBEAgAigCGBAXIAJBADYCHAwBCyACIAIoAhQoAgRBAWs2AgwDQAJAIAIoAgxFDQAgAigCFCgCCCACKAIMQQJ0aigCAA0AIAIgAigCDEEBazYCDAwBCwsgAiACKAIMQQFqNgIMIAIoAhggAigCFCgCADYCACACIAIoAhggAigCDBB0IgA2AhAgAEUEQCACKAIYKAIIIQAgAigCGCgCBEECdCIBBEAgAEEAIAH8CwALIAIoAhgoAgghACACKAIUKAIIIQEgAigCDEECdCIDBEAgACABIAP8CgAACwsgAiACKAIQNgIcCyACKAIcIAJBIGokAAtfAQF/IwBBEGsiAiQAIAIgAToADyAAEAkaAkAgABBUBEAgACgCACEBIABBARBTDAELIAAhASAAQQEQXgsgASACQQ9qEGEgAkEAOgAOIAFBAWogAkEOahBhIAJBEGokAAtiAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIQIjAEEQayIAJAAgACACNgIMIAAgAUELajYCCCAAIAFBCmo2AgQgACgCDCIDEIkHIAMQ2wIgAEEQaiQAIAJBABAeIAFBEGokAAskAQF/IAAoAgAhAiAAIAE2AgAgAgRAIAIgABCIAigCABECAAsLBQAQQgALDQAgACgCABCiBRogAAt9AQN/AkACQCAAIgFBA3FFDQAgAS0AAEUEQEEADwsDQCABQQFqIgFBA3FFDQEgAS0AAA0ACwwBCwNAIAEiAkEEaiEBQYCChAggAigCACIDayADckGAgYKEeHFBgIGChHhGDQALA0AgAiIBQQFqIQIgAS0AAA0ACwsgASAAawsNACAAKAIAEJkFGiAACyUBAX8jAEEQayIBJAAgASAANgIMIAEoAgwQGCgCACABQRBqJAALCQAgACABNgIECwoAIAAtAAtBB3YLIwEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAgRSABQRBqJAALGwEBfyMAQRBrIgEgADYCDCABKAIMKAIEQTRrCxEAIAAgASAAKAIAKAIcEQMAC3UBAX4gACABIAR+IAIgA358IANCIIgiAiABQiCIIgR+fCADQv////8PgyIDIAFC/////w+DIgF+IgVCIIggAyAEfnwiA0IgiHwgASACfiADQv////8Pg3wiAUIgiHw3AwggACAFQv////8PgyABQiCGhDcDAAvBAQEDfyAALQAAQSBxRQRAAkAgACgCECIDBH8gAwUgABC/BQ0BIAAoAhALIAAoAhQiBGsgAkkEQCAAIAEgAiAAKAIkEQQAGgwBCwJAAkAgAkUgACgCUEEASHINACACIQMDQCABIANqIgVBAWstAABBCkcEQCADQQFrIgMNAQwCCwsgACABIAMgACgCJBEEACADSQ0CIAIgA2shAiAAKAIUIQQMAQsgASEFCyAEIAUgAhDdASAAIAAoAhQgAmo2AhQLCwslAQF/IwBBEGsiASQAIAEgADYCDCABKAIMECwoAgAgAUEQaiQACw4AIABB0ABqEC5B0ABqC0QBAX8jAEEQayIFJAAgBSACNgIMIAUgBDYCCCAFQQRqIAVBDGoQlwEgACABIAMgBSgCCBC3AiEAEJYBIAVBEGokACAAC6EBAQJ/AkAgABAJRSACIAFrQQVIcg0AIAEgAhDoAiACQQRrIQQgABAPIgIgABAJaiEFAkADQAJAIAIsAAAhACABIARPDQAgAEEATCAAQf8ATnJFBEAgASgCACACLAAARw0DCyABQQRqIQEgAiAFIAJrQQFKaiECDAELCyAAQQBMIABB/wBOcg0BIAIsAAAgBCgCAEEBa0sNAQsgA0EENgIACwslACAAIAAtAAtBgAFxIAFB/wBxcjoACyAAIAAtAAtB/wBxOgALC1ABAX4CQCADQcAAcQRAIAEgA0FAaq2GIQJCACEBDAELIANFDQAgAiADrSIEhiABQcAAIANrrYiEIQIgASAEhiEBCyAAIAE3AwAgACACNwMIC2kBAX8j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QQA6AA4gAEEOahDPAgJAAkAgAC0AD0EBcUUNACAAKAIUIAFGDQAgACgCFCAAKAIQEB4MAQsgACgCFEEAEB4LAkAgARBtQQFxDQAgACgCFCABRg0AIAEgARCeARAeCyAAQSBqJAAgBEEQaiQACxEAIAAgASAAKAIAKAIsEQMAC8kJAgR/BH4jAEHwAGsiBiQAIARC////////////AIMhCQJAAkAgAVAiBSACQv///////////wCDIgpCgICAgICAwP//AH1CgICAgICAwICAf1QgClAbRQRAIANCAFIgCUKAgICAgIDA//8AfSILQoCAgICAgMCAgH9WIAtCgICAgICAwICAf1EbDQELIAUgCkKAgICAgIDA//8AVCAKQoCAgICAgMD//wBRG0UEQCACQoCAgICAgCCEIQQgASEDDAILIANQIAlCgICAgICAwP//AFQgCUKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCEEDAILIAEgCkKAgICAgIDA//8AhYRQBEBCgICAgICA4P//ACACIAEgA4UgAiAEhUKAgICAgICAgIB/hYRQIgUbIQRCACABIAUbIQMMAgsgAyAJQoCAgICAgMD//wCFhFANASABIAqEUARAIAMgCYRCAFINAiABIAODIQMgAiAEgyEEDAILIAMgCYRQRQ0AIAEhAyACIQQMAQsgAyABIAEgA1QgCSAKViAJIApRGyIIGyEKIAQgAiAIGyIMQv///////z+DIQkgAiAEIAgbIgtCMIinQf//AXEhByAMQjCIp0H//wFxIgVFBEAgBkHgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQQ9rEF8gBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAtC////////P4MhASAHBH4gAQUgBkHQAGogAyABIAMgASABUCIHG3kgB0EGdK18pyIHQQ9rEF9BECAHayEHIAYpA1AhAyAGKQNYC0IDhiADQj2IhEKAgICAgICABIQhASAJQgOGIApCPYiEIAIgBIUhBAJ+IANCA4YiAiAFIAdGDQAaIAUgB2siB0H/AEsEQEIAIQFCAQwBCyAGQUBrIAIgAUGAASAHaxBfIAZBMGogAiABIAcQ8AEgBikDOCEBIAYpAzAgBikDQCAGKQNIhEIAUq2ECyEJQoCAgICAgIAEhCELIApCA4YhCgJAIARCAFMEQEIAIQNCACEEIAkgCoUgASALhYRQDQIgCiAJfSECIAsgAX0gCSAKVq19IgRC/////////wNWDQEgBkEgaiACIAQgAiAEIARQIgcbeSAHQQZ0rXynQQxrIgcQXyAFIAdrIQUgBikDKCEEIAYpAyAhAgwBCyAJIAp8IgIgCVStIAEgC3x8IgRCgICAgICAgAiDUA0AIAlCAYMgBEI/hiACQgGIhIQhAiAFQQFqIQUgBEIBiCEECyAMQoCAgICAgICAgH+DIQMgBUH//wFOBEAgA0KAgICAgIDA//8AhCEEQgAhAwwBC0EAIQcCQCAFQQBKBEAgBSEHDAELIAZBEGogAiAEIAVB/wBqEF8gBiACIARBASAFaxDwASAGKQMAIAYpAxAgBikDGIRCAFKthCECIAYpAwghBAsgBEI9hiACQgOIhCEBIARCA4hC////////P4MgB61CMIaEIAOEIQQCQAJAIAKnQQdxIgVBBEcEQCAEIAEgASAFQQRLrXwiA1atfCEEDAELIAQgASABIAFCAYN8IgNWrXwhBAwBCyAFRQ0BCwsgACADNwMAIAAgBDcDCCAGQfAAaiQACwQAQQALgQEBAn8CQAJAIAJBBE8EQCAAIAFyQQNxDQEDQCAAKAIAIAEoAgBHDQIgAUEEaiEBIABBBGohACACQQRrIgJBA0sNAAsLIAJFDQELA0AgAC0AACIDIAEtAAAiBEYEQCABQQFqIQEgAEEBaiEAIAJBAWsiAg0BDAILCyADIARrDwtBAAv9AQECfyMAQRBrIgIkACACIAA2AgggAiABNgIEAkAgAigCBEGQzgBLBEAgAkFzNgIMDAELIAIoAggoAgQgAigCBEkEQCACIAIoAgRBAnQQLiIANgIAIABFBEAgAkFzNgIMDAILIAIoAgAhACACKAIEQQJ0IgEEQCAAQQAgAfwLAAsgAigCCCgCCCIBBEAgAigCACEAIAIoAggoAgRBAnQiAwRAIAAgASAD/AoAAAsgAigCCCgCCCACKAIIKAIEQQJ0ELsCIAIoAggoAggQEAsgAigCCCACKAIENgIEIAIoAgggAigCADYCCAsgAkEANgIMCyACKAIMIAJBEGokAAseAQF/IwBBEGsiAyAANgIMIAMgATYCCCADIAI2AgQLbAECfyMAQRBrIgIkACACIAA2AgwgAiABOgALIAIoAgwoAgQhASACLQALwCEDIwBBEGsiACQAIAAgATYCDCAAIAM6AAsgACgCDCIBIAAtAAvAIAEoAgAoAhQRAwDAIABBEGokAMAgAkEQaiQAC0wBAX8gAUEBayICQRBNBH8gAkECdEHsvQFqKAIABUHLGAshAiAAEMAEIgBBpMIBNgIAIABBBGogAhCeByAAIAE2AgggAEG8tQE2AgALYwAgAigCBEGwAXEiAkEgRgRAIAEPCwJAIAJBEEcNAAJAAkAgAC0AACICQStrDgMAAQABCyAAQQFqDwsgAkEwRyABIABrQQJIcg0AIAAtAAFBIHJB+ABHDQAgAEECaiEACyAACwkAIAAQDxDFAwt+AgJ/AX4jAEEQayIDJAAgAAJ+IAFFBEBCAAwBCyADIAEgAUEfdSICcyACayICrUIAIAJnIgJB0QBqEF8gAykDCEKAgICAgIDAAIVBnoABIAJrrUIwhnwgAUGAgICAeHGtQiCGhCEEIAMpAwALNwMAIAAgBDcDCCADQRBqJAAL7QEBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIYKAIANgIMAkAgAygCGCgCACADKAIUKAIAbEEASgRAIAMoAhggAygCFBC6AkEATgRAIAMgAygCHCADKAIYIAMoAhQQmgIiADYCECAADQIgAygCHCADKAIMNgIADAILIAMgAygCHCADKAIUIAMoAhgQmgIiADYCECAADQEgAygCHEEAIAMoAgxrNgIADAELIAMgAygCHCADKAIYIAMoAhQQzAUiADYCECAADQAgAygCHCADKAIMNgIACyADKAIQIANBIGokAAsvAQF/IwBBEGsiASQAIAEgADYCDEEQEFsiACABKAIMEPYFGiAAQbzPAEHmABAAAAstACACRQRAIAAoAgQgASgCBEYPCyAAIAFGBEBBAQ8LIAAoAgQgASgCBBC9AUULLgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBAeIAJBEGokAAsuACAAIAAoAghBgICAgHhxIAFB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIICwkAIAAgATYCAAsjAQF/IAJBAE4EfyAAKAIIIAJBAnRqKAIAIAFxQQBHBSADCwvOAwEBfyMAQSBrIgIkACACIAA2AhggAiABNgIUIAJBADYCBCACIAIoAhRBBXY2AgwgAiACKAIUQR9xNgIIAkACQCACKAIYKAIEIgAgAigCDE8EQCAAIAIoAgxHDQEgAigCCEUNAQsgAiACKAIYQQAQkgE2AhwMAQsgAigCDARAIAJBADYCEANAIAIoAhAgAigCGCgCBCACKAIMa09FBEAgAigCGCgCCCIAIAIoAhBBAnRqIAIoAhAgAigCDGpBAnQgAGooAgA2AgAgAiACKAIQQQFqNgIQDAELCwNAIAIoAhAgAigCGCgCBE9FBEAgAigCGCgCCCACKAIQQQJ0akEANgIAIAIgAigCEEEBajYCEAwBCwsLIAIoAggEQCACIAIoAhgoAgQ2AhADQCACKAIQBEAgAiACKAIYKAIIIAIoAhBBAWtBAnRqKAIAQSAgAigCCGt0NgIAIAIoAhgoAgggAigCEEEBa0ECdGoiACAAKAIAIAIoAgh2NgIAIAIoAhgoAgggAigCEEEBa0ECdGoiACACKAIEIAAoAgByNgIAIAIgAigCADYCBCACIAIoAhBBAWs2AhAMAQsLCyACQQA2AhwLIAIoAhwgAkEgaiQACzoBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBAUEAEKoBIAAgAjQCCDcDACACQRBqJAAL0AIBBn8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAggiATYCDCABIAIoAgRBABCqAQJAAkACQAJAAkACQAJAIAIoAgQOCAYAAAECBAMDBQsgAUIANwMADAULIAFEAAAAAAAAAAA5AwAMBAsgAUHczwA2AgAMAwtBDBAqIQcjAEEQayIFJAAgBSAHNgIMIAUoAgwhBCAFQQtqIgMQqQMjAEEQayIAJAAgACAENgIMIAAgAzYCCCAAKAIMIgRBBGohBiMAQRBrIgMkACADIAY2AgwgAygCDCIGENoFIAYQ2wIgA0EQaiQAIABBADYCBCAEQQhqIABBBGogACgCCBCvAyAEEN4BIQMgBBAMIAM2AgAgAEEQaiQAIAVBEGokACABIAc2AgAMAgsgAUEAOgAADAELQboYQd0OQYYWQagYEAEACyACKAIMIAJBEGokAAvWCAMFfwF+AXwjAEGwAWsiAyQAIAMgADYCrAEgAyABNgKoAQJAAkACQAJAAkACQAJAAkAgAygCqAEiAS0ACA4GAAMEBQECBgsgAEGVMxAiDAYLIAEoAgBFBEAgAEGVMxAiDAYLIAEtAAlBAXEgASgCACADQaQBaiADQaABahDDAiADKAKgASECIAMoAqQBIQQjAEEQayIBJAAgASAANgIMIAEgAjYCCCABIAQ2AgQgASgCDCIAIAFBA2ogAUECahDQAiAAIAEoAgggASgCBBCzAyABQRBqJAAMBQsgAEHzFkG6GCABLQAAQQFxGxAiDAQLIAEpAwAhByMAQUBqIgEkACABIAA2AjwgASAHNwMwIAEgAUEpajYCDAJAIAEpAzBCgICAgICAgICAf1EEQEKAgICAgICAgIB/IAFBDGoQgQMgASABKAIMQQFrIgI2AgwgAkEtOgAADAELAkAgASkDMEIAUwRAQgAgASkDMH0gAUEMahCBAyABIAEoAgxBAWsiAjYCDCACQS06AAAMAQsgASkDMCABQQxqEIEDCwsgASgCDCABQRBqSQRAQYQOQd0OQfIgQfUVEAEACyAAIAEoAgwQIiABQUBrJAAMAwsgASkDACEHIwBBQGoiASQAIAEgADYCPCABIAc3AzAgASABQRBqIgJBGWo2AgwgASkDMCABQQxqEIEDIAIgASgCDEsEQEGEDkHdDkH6IEH1FRABAAsgACABKAIMECIgAUFAayQADAILIAErAwAhCCMAQRBrIgQkACAEIAA2AgwgBCAIOQMAIAQrAwAhCCMAQeAAayIBJAAgASAANgJcIAEgCDkDUCABQQA6AE8gAUERNgJIIAFBfzYCHCABIAEoAkg2AhAgAUEWaiIFQQZBgxYgAUEQahCRARojAEEQayICIAErA1A5AwgCQCACKQMIQv///////////wCDQoCAgICAgID4/wBUBEAgASABKwNQOQMAIAEgAUEgaiICQSQgBSABEJEBNgIcAkAgAkGUMBDjBQ0AIAJB4hsQ4wUNACACQZcjEPkCCwwBCwJAIAErA1AgASsDUGIEQCABIAFBIGpBJEHrIUG1EyABLQBPQQFxG0EAEJEBNgIcDAELAkAgASsDUEQAAAAAAAAAAGMEQCABIAFBIGpBJEGNCEHxIiABLQBPQQFxG0EAEJEBNgIcDAELIAEgAUEgakEkQY4IQfIiIAEtAE9BAXEbQQAQkQE2AhwLCwsgASgCHEEASARAQZojQd0OQaohQfUVEAEACyABQSBqIgUgASgCHGohBiMAQRBrIgIgBTYCDCACIAY2AggDQCACKAIMIAIoAghJBEAgAigCDC0AAEEsRgRAIAIoAgxBLjoAAAsgAiACKAIMQQFqNgIMDAELCyAAIAUQIiABQeAAaiQAIARBEGokAAwBCyADQRRqIgAQbCAAQZUVEGsgA0EIaiIBIAAQaiABEHwACyADQbABaiQACzABAX8jAEEQayICJAAgAiAANgIMIAIgAToACyACKAIMIAItAAvAEN0CIAJBEGokAAvoAgEBfyMAQUBqIgIkACACIAA2AjwgAiABNgI4IAIoAjwiACgCCCAAEBMoAgBGBEACQCAAKAIEIAAoAgBLBEAgAiAAKAIEIAAoAgBrQQJ1NgI0IAIgAigCNEEBakECbTYCNCAAIAAoAgQgACgCCCAAKAIEQQAgAigCNGtBAnRqENUDNgIIIAAgACgCBEEAIAIoAjRrQQJ0ajYCBAwBCyACIAAQEygCACAAKAIAa0ECdUEBdDYCLCACQQE2AiggAiACQSxqIAJBKGoQbigCADYCMCACQRRqIgEgAigCMCACKAIwQQJ2IAAQExCtASACQRBqIAAoAgQQPiACQQxqIAAoAggQPiABIAIoAhAgAigCDBCRAyAAIAEQEiAAQQRqIAFBBGoQEiAAQQhqIAFBCGoQEiAAEBMgARATEBIgARCsAQsLIAAQEyAAKAIIEAwgAigCOBDhASAAIAAoAghBBGo2AgggAkFAayQACzcBAX8jAEEQayIDIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIgAgAygCCDYCACAAIAMoAgQ2AgQLJAEBfyMAQRBrIgIgADYCDCACIAE6AAsgAi0AC0EYIgB0IAB1CwwAIAAgASgCADYCAAsHACAAEB0aCxEAIAAgASABKAIAKAIUEQEACw8AIAAgACgCACgCEBEAAAt1AQJ/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEBIAIoAgghAyMAQRBrIgAkACAAIAE2AgggACADNgIEAn8gAEEPaiAAKAIEIAAoAggQ7ARBAXEEQCAAKAIEDAELIAAoAggLIABBEGokACACQRBqJAALBwAgABAJRQsTACAAIAEgAiAAKAIAKAIMEQQACyYBAX8jAEEQayIEJAAgBCADNgIMIAAgASACIAMQtwIgBEEQaiQAC5sBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIMQQEQdCIANgIEIABFBEAgAigCDCgCCCEAIAIoAgwoAgRBAnQiAQRAIABBACAB/AsACyACKAIMKAIIAn8gAigCCEEASARAQQAgAigCCGsMAQsgAigCCAs2AgAgAigCDCACKAIIQR91QQFyNgIACyACKAIEIAJBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQEygCACAAKAIAa0ECdSABQRBqJAALdgEDfyMAQRBrIgIkACACIAA2AgwgAigCDCIAIQEgACgCBEEEaiEDIwBBEGsiACQAIAAgATYCDCAAIAM2AgggACgCCCEDIwBBEGsiASAAKAIMNgIIIAEgAzYCBCABKAIIIAEoAgQ2AgQgAEEQaiQAIAJBEGokAAsYAQF/IwBBEGsiASAANgIMIAEoAgwoAhALEgAgACgCACIABEAgABD9BBoLCxEAIAAgASgCABD9BDYCACAAC0UBAX8gACgCACECIAEQMyEAIAJBCGoiARDMASAASwR/IAEgABCFAigCAEEARwVBAAtFBEAQQgALIAJBCGogABCFAigCAAtBAQF/IAAgATcDcCAAIAAoAiwgACgCBCICa6w3A3ggACABUCABIAAoAggiACACa6xZcgR/IAAFIAIgAadqCzYCaAvZAQEBfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCEAJAIAMoAhBBABBoQQBIBEAgA0F2NgIcDAELIANBACADKAIYIAMoAhQgAygCEBDJBSIANgIMAkAgAA0AA0AgAygCGEEAEGhBAEgEQCADIAMoAhggAygCGCADKAIQEPIBIgA2AgwgAEUNAQwCCwsDQCADKAIYIAMoAhAQYkEATgRAIAMgAygCGCADKAIYIAMoAhAQeyIANgIMIABFDQELCwsgAyADKAIMNgIcCyADKAIcIANBIGokAAtHAQJ/IwBBEGsiASQAIAEgADYCDCABKAIMIQIjAEEQayIAJAAgACACNgIMIAAoAgwQCkEQahAMIABBEGokABBFIAFBEGokAAvcAwEDfyMAQaABayIDJAAgAyAANgKcASADIAE2ApgBIAMoApwBIQEgAygCmAFBAEgEQCADQQxqIgAQbCAAQa4WEGsgAyAAEGogAxB8AAsgAygCmAEhAiMAQZACayIAJAAg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LQAADAELQQALOgAHDAELCyAALQAHQS5GBEAgASAAKAIIIgI2AkQgAAJ/IAIgASgCQEkEQCAAIAAoAggiAkEBajYCCCACLQAADAELQQALOgAHA0AgAC0AB8AiAkEwTgR/IAJBOUwFQQALQQFxBEAgASAAKAIIIgI2AkQgAAJ/IAIgASgCQEkEQCAAIAAoAggiAkEBajYCCCACLQAADAELQQALOgAHDAELCwsCQCAALQAHQeUARwRAIAAtAAdBxQBHDQELIAEgACgCCCICNgJEIAACfyACIAEoAkBJBEAgACAAKAIIIgJBAWo2AgggAi0AAAwBC0EACzoABwJAIAAtAAdBK0cEQCAALQAHQS1HDQELIAEgACgCCCICNgJEIAACfyACIAEoAkBJBEAgACAAKAIIIgJBAWo2AgggAi0AAAwBC0EACzoABwsDQCAALQAHwCICQTBOBH8gAkE5TAVBAAtBAXEEQCABIAAoAggiAjYCRCAAAn8gAiABKAJASQRAIAAgACgCCCICQQFqNgIIIAItAAAMAQtBAAs6AAcMAQsLCwwHCyADKAIIQQc2AgAgAyAFQfQWQQMQhARBAXE6AAYMBgsgAygCCEEINgIAIAMgBUG7GEEEEIQEQQFxOgAGDAULIAMoAghBCTYCACADIAVBthNBAxCEBEEBcToABgwECyADKAIIQQo2AgAMAwsgAygCCEELNgIADAILIAMoAghBADYCAAwBCyADQQA6AAYLIAMtAAZBAXFFBEAgAygCCEENNgIACyADKAIIIAUoAkQ2AgggA0EQaiQAQQELKQEBfyMAQRBrIgEkACABIAA2AgwgASgCDBAYLQALQf8AcSABQRBqJAALIgEBfyMAQRBrIgEgADYCDCABKAIMIgAoAgAgACgCBDYCBAvcAQECfyMAQRBrIgMkACADIAA2AgggAyABOgAHIAMgAjYCACADKAIIKAIEIQEgAygCACECIAMtAAfAIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ6AAcgACgCDCEBAn8gAC0AB8AiAkGAAUkEQCABKAIIIAJBAnRqKAIAIAAoAghxQQBHDAELQQALIQEgAEEQaiQAAkAgAUEBcQRAIANBAToADwwBCyADIAMtAAdB3wBGBH8gAygCAEGACHFBAEcFQQALQQFxOgAPCyADLQAPQQFxIANB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aiQACywBAX8jAEEQayICIAA2AgwgAiABNgIIIAIoAgwiACACKAIIIAAoAlByNgJQCyMBAX8jAEEQayIBIAA2AgwgASgCDCIAKAIEIAAoAgBrQQN1CycBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABAMGiABQRBqJAAgAAufBAEGfyMAQTBrIgckACAHIAA2AiwgByABNgIoIAcgAjYCJCAHIAM2AiAgByAENgIcIAcgBTYCGCAHIAY6ABcgBygCLCEJQQgQKiIAIAkoAiQQFSgCABDlAiAHQRBqIgogABC0AiAJKAIkEBVBADYCAEEkECohCyAJKAIUIQwgBygCIBAVKAIAIQYgChBSIQUgBygCHCEEIAcoAhghAyAHLQAXQQFxIQIgBygCKCEBIAcoAiQhACMAQTBrIggkACAIIAs2AiwgCCAMNgIoIAggBjYCJCAIIAU2AiAgCCAENgIcIAggAzYCGCAIIAI6ABcgCCABNgIQIAggADYCDCAIKAIsIgAgCCgCJCAIKAIgEKsGIABBoMkANgIAIAAgCCgCEDYCDCAAIAgoAgw2AhAgACAIKAIoNgIUIAAgCCgCHDYCGCAAIAgoAhg2AhwgACAILQAXQQFxOgAgIAhBMGokACAHQQxqIgIgCxC0AiAHKAIgEBVBADYCACAKELUBGkEIECohASACEFIhACMAQRBrIgMkACADIAE2AgwgAyAANgIIIAMoAgwiACADKAIIELgEIABBnMoANgIAIANBEGokACAJKAIkEBUgATYCACACEFIhASMAQRBrIgAgATYCDCAJIAAoAgxBCGooAgA2AiQgAhC1ASEAIAcoAiAQFSAANgIAIAkgCSgCFEEBajYCFCACEL8DIAoQvwMgB0EwaiQACygBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABChARogAUEQaiQAIAALOgEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMIgAQGCgCADYCCCAAEBhBADYCACABKAIIIAFBEGokAAu1AwEDfyMAQRBrIggkACAIIAI2AgggCCABNgIMIAhBBGoiASADEBsgARBlIQkgARAZIARBADYCAEEAIQECQANAIAYgB0YgAXINAQJAIAhBDGogCEEIahAjDQACQCAJIAYoAgAQigJBJUYEQCAGQQRqIAdGDQJBACECAn8CQCAJIAYoAgQQigIiAUHFAEYNAEEEIQogAUH/AXFBMEYNACABDAELIAZBCGogB0YNA0EIIQogASECIAkgBigCCBCKAgshASAIIAAgCCgCDCAIKAIIIAMgBCAFIAEgAiAAKAIAKAIkEQwANgIMIAYgCmpBBGohBgwBCyAJQQEgBigCABCQAQRAA0AgByAGQQRqIgZHBEAgCUEBIAYoAgAQkAENAQsLA0AgCEEMaiIBIAhBCGoQIw0CIAlBASABED8QkAFFDQIgARBRGgwACwALIAkgCEEMaiIBED8QVyAJIAYoAgAQV0YEQCAGQQRqIQYgARBRGgwBCyAEQQQ2AgALIAQoAgAhAQwBCwsgBEEENgIACyAIQQxqIAhBCGoQIwRAIAQgBCgCAEECcjYCAAsgCCgCDCAIQRBqJAALtwMBA38jAEEQayIIJAAgCCACNgIIIAggATYCDCAIQQRqIgEgAxAbIAEQZiEJIAEQGSAEQQA2AgBBACEBAkADQCAGIAdGIAFyDQECQCAIQQxqIAhBCGoQHw0AAkAgCSAGLAAAEIsCQSVGBEAgBkEBaiAHRg0CQQAhAgJ/AkAgCSAGLAABEIsCIgFBxQBGDQBBASEKIAFB/wFxQTBGDQAgAQwBCyAGQQJqIAdGDQNBAiEKIAEhAiAJIAYsAAIQiwILIQEgCCAAIAgoAgwgCCgCCCADIAQgBSABIAIgACgCACgCJBEMADYCDCAGIApqQQFqIQYMAQsgCUEBIAYsAAAQgQEEQANAIAcgBkEBaiIGRwRAIAlBASAGLAAAEIEBDQELCwNAIAhBDGoiASAIQQhqEB8NAiAJQQEgARA9EIEBRQ0CIAEQTxoMAAsACyAJIAhBDGoiARA9EO8CIAkgBiwAABDvAkYEQCAGQQFqIQYgARBPGgwBCyAEQQQ2AgALIAQoAgAhAQwBCwsgBEEENgIACyAIQQxqIAhBCGoQHwRAIAQgBCgCAEECcjYCAAsgCCgCDCAIQRBqJAALsQEBA38jAEEQayIHJAACQAJAIABFDQAgBCgCDCEGIAIgAWtBAnUiCEEASgRAIAAgASAIEJUCIAhHDQELIAYgAyABa0ECdSIBa0EAIAEgBkgbIgFBAEoEQCAAIAdBBGogASAFEOQEIgUQDyABEJUCIQYgBRBJGiABIAZHDQELIAMgAmtBAnUiAUEASgRAIAAgAiABEJUCIAFHDQELIAQQ5gQMAQtBACEACyAHQRBqJAAgAAuoAQEDfyMAQRBrIgckAAJAAkAgAEUNACAEKAIMIQYgAiABayIIQQBKBEAgACABIAgQlQIgCEcNAQsgBiADIAFrIgFrQQAgASAGSBsiAUEASgRAIAAgB0EEaiABIAUQ5wQiBRAPIAEQlQIhBiAFEAgaIAEgBkcNAQsgAyACayIBQQBKBEAgACACIAEQlQIgAUcNAQsgBBDmBAwBC0EAIQALIAdBEGokACAACxYAIAAgASACIAMgACgCACgCMBEJABoLDgAgACgCCEH/////B3ELfwECfyMAQRBrIgIkACAAEFQEQCAAKAIAIAAQuwEaEJICCyABEAkaIAEQVCEDIAAgASgCCDYCCCAAIAEpAgA3AgAgAUEAEF4gAkEAOgAPIAEgAkEPahBhAkAgACABRiIBIANyRQ0ACyAAEFQgAXJFBEAgABDsARoLIAJBEGokAAtKAQJ/AkAgAC0AACICRSACIAEtAAAiA0dyDQADQCABLQABIQMgAC0AASICRQ0BIAFBAWohASAAQQFqIQAgAiADRg0ACwsgAiADawvYAwEBfyMAQTBrIgUkACAFIAA2AiwgBSABNgIoIAUgAjYCJCAFIAM2AiAgBSAENgIcIAUoAhwoAgghACAFKAIcKAIEQQJ0IgEEQCAAQQAgAfwLAAsgBSAFKAIcKAIINgIEIAUgBSgCJCgCBDYCFCAFAn8gBSgCKCgCBCIAIAUoAhRJBEAgAAwBCyAFKAIUCzYCECAFQQA2AhgDQCAFKAIYIAUoAhRPRQRAIAUgBSgCLCgCCCAFKAIYQQJ0aigCADYCDCAFIAUoAiAgBSgCBCgCACAFKAIMIAUoAigoAggoAgBsamw2AgggBSgCECAFKAIoKAIIIAUoAgQgBSgCDBDlAyAFKAIUIAUoAiQoAgggBSgCBCAFKAIIEOUDIAUoAgwhACAFIAUoAgQiAUEEajYCBCABIAA2AgAgBSgCBCAFKAIUQQFqQQJ0akEANgIAIAUgBSgCGEEBajYCGAwBCwsgBSgCLCgCCCEAIAUoAgQhASAFKAIUQQFqQQJ0IgIEQCAAIAEgAvwKAAALAkAgBSgCLCAFKAIkELoCQQBOBEAgBSgCFCAFKAIkKAIIIAUoAiwoAggQ5gMMAQsgBSgCFCAFKAIsKAIIIAUoAhwoAggQ5gMLIAVBMGokAAskAQF/IwBBEGsiAiABNgIMIAIgADYCCCACKAIIIAIoAgw2AgALJAEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCDCACKAIINgIQC9cBAQJ/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIMIgEtAAg2AgQgASACKAIILQAIOgAIIAIoAgggAi0ABDoACCACKAIIIQMjAEEQayIAIAE2AgwgACADNgIIIAAgACgCDCkDADcDACAAKAIMIAAoAggpAwA3AwAgACgCCCAAKQMANwMAIAIgAS0ACUEBcTYCACABIAIoAggvAQhBgAJxIAEvAQhB//0DcXI7AQggAigCCCIAIAAvAQhB/31xIAIvAQBBAXFBCHRyOwEIIAJBEGokAAskAQF/IwBBEGsiAiAANgIMIAIgATYCCCACKAIMIAIoAgg2AhQLUwEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMIgAQWiAAKAIQakEBazYCCCAAEBEgASgCCEHOAG5BAnRqKAIAIAEoAghBzgBwQTRsaiABQRBqJAALRwEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIAn8gAigCCCACKAIMIgAQSEkEQCAAIAIoAggQNwwBCyAAQQxqCyACQRBqJAALSgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgghASMAQRBrIgAgAigCDDYCCCAAIAE2AgQgACgCBCAAKAIIayACQRBqJAALHgEBfyMAQRBrIgEgADYCDCABKAIMIgBBADYCACAACzEBAX8jAEEQayIDJAAgAyABNgIMIAMgAjYCCCAAIAMoAgwgAygCCBDsAiADQRBqJAALtAEBAn8jAEEQayICJAAgAiAANgIIIAIgATYCBAJAIAIoAgQQsQZBAXEEQCACIAIoAgQ2AgAgAigCCCEBIAIoAgAhAyMAQRBrIgAkACAAIAE2AgwgACADNgIIIAAoAgwgACgCCBCjByEBIABBEGokACACIAE2AgwMAQsgAigCCCEBIwBBEGsiACQAIAAgATYCDCAAKAIMECohASAAQRBqJAAgAiABNgIMCyACKAIMIAJBEGokAAsqAQJ/QQQQWyIAEMAEIgFB+MABNgIAIAFBjMEBNgIAIABB4MEBQQgQAAALGwEBfyMAQRBrIgEkACABIAA2AgxB6gsQ8wYACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABC0ARogABAQIAFBEGokAAsQACAAKAIEIAAoAgBrQQJ1CxYAIAAQVARAIAAgARBTDwsgACABEF4LDAAgAEGChoAgNgAACxkBAX8jAEEQayIBIAA2AgwgASgCDEHwB3ELEQAgABAPIAAQCUECdGoQxQMLLwEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwgAigCCBDqBCACQRBqJAALqgEBAX8CQCADQYAQcUUNACACRSADQcoAcSIEQQhGIARBwABGcnINACAAQSs6AAAgAEEBaiEACyADQYAEcQRAIABBIzoAACAAQQFqIQALA0AgAS0AACIEBEAgACAEOgAAIABBAWohACABQQFqIQEMAQsLIAACf0HvACADQcoAcSIBQcAARg0AGkHYAEH4ACADQYCAAXEbIAFBCEYNABpB5ABB9QAgAhsLOgAACw0AIAAoAgAgASgCAEYLDgAgABAPIAAQCWoQxQMLDwAgACAAKAIAKAIMEQAACxYAIAAgASACIAMgACgCACgCIBEJABoLEQAgACABIAEoAgAoAhwRAQALEQAgACABIAEoAgAoAhgRAQALcgECfyAAQYDhADYCACAAKAIcBEAgACgCKCEBA0AgAQRAQQAgACABQQFrIgFBAnQiAiAAKAIkaigCACAAKAIgIAJqKAIAEQUADAELCyAAQRxqEBkgACgCIBAQIAAoAiQQECAAKAIwEBAgACgCPBAQCyAACyABAX8jAEEQayIBIAA2AgwgASgCDCIAKAIAIAAoAgRGCwQAIAALEAAgAEEgRiAAQQlrQQVJcguFBAECfyACQYAETwRAIAIEQCAAIAEgAvwKAAALDwsgACACaiEDAkAgACABc0EDcUUEQAJAIABBA3FFBEAgACECDAELIAJFBEAgACECDAELIAAhAgNAIAIgAS0AADoAACABQQFqIQEgAkEBaiICQQNxRQ0BIAIgA0kNAAsLIANBfHEhAAJAIANBwABJDQAgAiAAQUBqIgRLDQADQCACIAEoAgA2AgAgAiABKAIENgIEIAIgASgCCDYCCCACIAEoAgw2AgwgAiABKAIQNgIQIAIgASgCFDYCFCACIAEoAhg2AhggAiABKAIcNgIcIAIgASgCIDYCICACIAEoAiQ2AiQgAiABKAIoNgIoIAIgASgCLDYCLCACIAEoAjA2AjAgAiABKAI0NgI0IAIgASgCODYCOCACIAEoAjw2AjwgAUFAayEBIAJBQGsiAiAETQ0ACwsgACACTQ0BA0AgAiABKAIANgIAIAFBBGohASACQQRqIgIgAEkNAAsMAQsgA0EESQRAIAAhAgwBCyADQQRrIgQgAEkEQCAAIQIMAQsgACECA0AgAiABLQAAOgAAIAIgAS0AAToAASACIAEtAAI6AAIgAiABLQADOgADIAFBBGohASACQQRqIgIgBE0NAAsLIAIgA0kEQANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIANHDQALCwsnAQF/IwBBEGsiASQAIAEgADYCDCABKAIMQQRqEBgQDCABQRBqJAALVQEBfyMAQRBrIgEgADYCCAJAIAEoAggiACgCRCAAKAJARgRAIAFBADoADwwBCyAAIAAoAkQiAEEBajYCRCABIAAtAAA6AA8LIAEtAA9BGCIAdCAAdQsjAQF/IwBBEGsiASAANgIMIAEoAgwiACgCBCAAKAIAa0ECdQtkAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgghASADKAIEIQIjAEEQayIAIAMoAgw2AgwgACABNgIIIAAgAjYCBCAAKAIIIAAoAgQoAgA2AgAgA0EQaiQAC6EBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE6AAsCQCACKAIMIgAtAFlBAXEEQCACIABBCGogAi0AC0EYIgF0IAF1EHY6AAogAEEUaiACQQpqEJ8CDAELAkAgAC0AWkEBcQRAIAIgAEEIaiACLQALQRgiAXQgAXUQiQE6AAkgAEEUaiACQQlqEJ8CDAELIABBFGogAkELahCfAgsLIAJBEGokAAtZAQN/IwBBEGsiASQAIAEgADYCDCABKAIMIgNBHGohAiMAQRBrIgAkACAAIAI2AgwgAEEIaiICIAAoAgwQPiACEO0GIABBEGokACADQRBqEPwGIAFBEGokAAsjAQF/IwBBEGsiASQAIAEgADYCDCABQQxqEMIEIAFBEGokAAsLACAAIAEgAhDDBAthAQF/IwBBEGsiAiQAIAIgADYCDAJAIAAgAUYNAANAIAIgAUEBayIBNgIIIAAgAU8NASACKAIMIAIoAggQ2QQgAiACKAIMQQFqIgA2AgwgAigCCCEBDAALAAsgAkEQaiQAC3UBAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCAAKAIEQQJ0QQQQrwEgAEEQaiQAIANBEGokAAsOACAAIAEoAgA2AgAgAAsZAQF/IAEQjgUhAiAAIAE2AgQgACACNgIACyQAIABBC08EfyAAQQhqQXhxIgAgAEEBayIAIABBC0YbBUEKCwskAQJ/IwBBEGsiAiQAIAAgARDxAiEDIAJBEGokACABIAAgAxsLCwAgAC0AC0H/AHELBwAgACABRgsIACAAQf8BcQsiAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEBkgAUEQaiQAC1ABAX4CQCADQcAAcQRAIAIgA0FAaq2IIQFCACECDAELIANFDQAgAkHAACADa62GIAEgA60iBIiEIQEgAiAEiCECCyAAIAE3AwAgACACNwMIC9sBAgF/An5BASEEAkAgAEIAUiABQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AURsNACACQgBSIANC////////////AIMiBkKAgICAgIDA//8AViAGQoCAgICAgMD//wBRGw0AIAAgAoQgBSAGhIRQBEBBAA8LIAEgA4NCAFkEQCAAIAJUIAEgA1MgASADURsEQEF/DwsgACAChSABIAOFhEIAUg8LIAAgAlYgASADVSABIANRGwRAQX8PCyAAIAKFIAEgA4WEQgBSIQQLIAQL7QEBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAyADKAIYKAIANgIMAkAgAygCGCgCACADKAIUKAIAbEEASARAIAMoAhggAygCFBC6AkEATgRAIAMgAygCHCADKAIYIAMoAhQQmgIiADYCECAADQIgAygCHCADKAIMNgIADAILIAMgAygCHCADKAIUIAMoAhgQmgIiADYCECAADQEgAygCHEEAIAMoAgxrNgIADAELIAMgAygCHCADKAIYIAMoAhQQzAUiADYCECAADQAgAygCHCADKAIMNgIACyADKAIQIANBIGokAAvcAwEBfyMAQSBrIgIkACACIAA2AhwgAiABNgIYIAJBADYCBCACIAIo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AgggAiACQQhqIAJBFGoQbigCADYCHAsgAigCHCACQSBqJAALLAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEPgCIABBADoACCABQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBBIIAFBEGokAAskAQF/IwBBEGsiASQAIAEgADYCCCABKAIIELIBGiABQRBqJAALVwEBfyMAQSBrIgUkACAFIAA2AhwgBSABNgIYIAUgAjYCFCAFIAM2AhAgBSAENgIMIAUoAhwgBSgCGEF/IAUoAhQgBSgCECAFKAIMQQEQswEgBUEgaiQAC60BAQN/IwBBEGsiAiQAIAIgAToADwJAAkACfyAAEFQiBEUEQEEKIQEgABDsAQwBCyAAELsBQQFrIQEgACgCBAsiAyABRgRAIAAgAUEBIAEgARDCAyAAEA8aDAELIAAQDxogBA0AIAAhASAAIANBAWoQXgwBCyAAKAIAIQEgACADQQFqEFMLIAEgA2oiACACQQ9qEGEgAkEAOgAOIABBAWogAkEOahBhIAJBEGokAAvwAgECfyMAQSBrIgMkACADIAA2AhggAyABNgIUIAMgAjYCECADIAMoAhg2AgggAyADKAIYNgIEIAMoAgQQwgYhASADIAMoAhQ2AgAgAygCABDCBiECIAMoAhAhBCMAQSBrIgAkACAAIAE2AhggACACNgIUIAAgBDYCECAAIANBD2o2AgwgACAAKAIYIAAoAhAtAADAIAAoAhQgACgCGGsQ+AQ2AggCQCAAKAIIBEAgACAAKAIINgIcDAELIAAgACgCFDYCHAsgACgCHCEBIABBIGokACADKAIIIQIjAEEQayIAJAAgACACNgIIIAAgATYCBCAAIAAoAgg2AgAgACgCACECIAAoAgQhBCMAQRBrIgEkACABIAI2AgggASAENgIEIAEgAUEIaiICIAEoAgQgAhCdBGsQmgM2AgwgASgCDCECIAFBEGokACAAIAI2AgwgACgCDCEBIABBEGokACADIAE2AhwgAygCHCADQSBqJAALCQAgAEEEEJEFCwsAIAQgAjYCAEEDC4ABAQJ/IwBBEGsiAiQAIAAQVARAIAAoAgAgABC7ARoQ3wILIAEQCRogARBUIQMgACABKAIINgIIIAAgASkCADcCACABQQAQXiACQQA2AgwgASACQQxqEIoBAkAg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QCAAIANBCGoQ8QIhAQsgA0EQaiQAIAELMwEBfyMAQRBrIgMkACAAEAkaIAAgAhDNASADQQA6AA8gASACaiADQQ9qEGEgA0EQaiQACwcAIABBAkkLtgIBA38jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBQQwQKiECIAMoAggQFSgCACEEIAMoAgQQFSgCACEFIwBBEGsiACQAIAAgAjYCDCAAIAQ2AgggACAFNgIEIAAoAgwiBCAAKAIIIAAoAgQQqwYgBEHgygA2AgAgAEEQaiQAIAMoAggQFSACNgIAIAMoAgQQFUEANgIAQQgQKiIAIAEoAiQQFSgCABDlAiADKAIEEBUgADYCACABKAIkEBVBADYCAEEIECohAiADKAIEEBUoAgAhBCMAQRBrIgAkACAAIAI2AgwgACAENgIIIAAoAgwiBCAAKAIIELgEIARBoMsANgIAIABBEGokACABKAIkEBUgAjYCACABIAMoAgQQFSgCADYCJCADQRBqJAALBABBBAsTACAAIAEoAgAiADYCACAAEMYHCx0AIABBBGoQyQRBf0YEQCAAIAAoAgAoAggRAgALC7cCAQF/IwBBMGsiAyQAIAMgATYCKCADIAI2AiQgAyAANgIgIAMgAygCICIAKAIkNgIcIAMgAygCKDYCFCADIAMoAiQ2AhAgAyAAIAMoAhQgAygCEBCoBzYCGCADQRhqIANBKGoQGkEBcQRAELYDAAsgAyADKAIYNgIoA0BBACEBIANBKGoiAiADQSRqEA5BAXEEfyACEAotAABBGCIBdCABdUH8AEYFIAELQQFxBEAgAyAAKAIkNgIMIAMgA0EoaiIBEAsoAgA2AgQgAyADKAIkNgIAIAMgACADKAIEIAMoAgAQqAc2AgggAyADKAIINgIYIANBGGogARAaQQFxBEAQtgMACyAAIAMoAhwgAygCDBC6AyADIAMoAhg2AigMAQsLIAMgAygCKDYCLCADKAIsIANBMGokAAt1AQN/IwBBEGsiAiQAIAIgADYCDCACKAIMIQEjAEEQayIAJAAgACABNgIMIABBADYCCCAAIAAoAgwiARAYKAIANgIEIAAoAgghAyABEBggAzYCACAAKAIEBEAgARAYIAAoAgQQjwcLIABBEGokACACQRBqJAALGgEBf0EBIQEgABBUBH8gABC7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QQRqIQIgAQ0BDAILCyABQQFqIQgLIAgLIQEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCDEEANgIACx8BAX8jAEEQayIDJAAgACABIAIQoQQgA0EQaiQAIAALFwAgACACNgIcIAAgATYCFCAAIAE2AhgLtAMBBX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgAygCHCEAIAMoAhghASADKAIUIQIjAEEQayIEJAAgBCAANgIMIAQgATYCCCAEIAI2AgQgBCgCDCEBIAQoAgghAiAEKAIEIQUjAEEwayIAJAAgACABNgIsIAAgAjYCKCAAIAU2AiQgAEEcaiAAKAIsIAAoAigQoAIgACgCHCEBIAAoAiAhBSAAKAIkEEUhBiMAQRBrIgIkACACIABBE2o2AgwgAiABNgIIIAIgBTYCBCACIAY2AgAgAigCCCEFIAIoAgQhBiACKAIAIQcjAEEgayIBJAAgASAFNgIcIAEgBjYCGCABIAc2AhQgASABKAIYIAEoAhxrQQJ1NgIQIAEoAhQgASgCHCABKAIQEJoGIAEgASgCFCABKAIQQQJ0ajYCDCAAQRRqIAFBGGogAUEMahDHASABQSBqJAAgAkEQaiQAIAAgACgCLCAAKAIUEJsGNgIMIAAgACgCJCAAKAIYEI0ENgIIIANBDGogAEEMaiAAQQhqEMcBIABBMGokACAEQRBqJAAgAygCECADQSBqJAALDQAgAEEEahDZARogAAsNACAAQQhqENkBGiAACygBAn8jAEEQayICJAAgASgCACAAKAIASCEDIAJBEGokACABIAAgAxsLEAAgACABNwMIIABCADcDAAsCAAsUACAAQdTZADYCACAAQQRqEBkgAAvyAwICfgV/IwBBIGsiBSQAIAFC////////P4MhAgJ+IAFCMIhC//8BgyIDpyIEQYH4AGtB/Q9NBEAgAkIEhiAAQjyIhCECIARBgPgAa60hAwJAIABC//////////8PgyIAQoGAgICAgICACFoEQCACQgF8IQIMAQsgAEKAgICAgICAgAhSDQAgAkIBgyACfCECC0IAIAIgAkL/////////B1YiBBshACAErSADfAwBCyAAIAKEUCADQv//AVJyRQRAIAJCBIYgAEI8iIRCgICAgICAgASEIQBC/w8MAQsgBEH+hwFLBEBCACEAQv8P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dDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgC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KAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAkxJajYCUCAEIAQoAkggBCgCVGo2AlQgBCAEKAJQIAQoAlQgBCgCSElqNgJQIAQgBCgCbCAEKAJUajYCVCAEIAQoAlAgBCgCVCAEKAJsSWo2AlAgBCAEKAJ0KAIAIAQoAlRqNgJUIAQgBCgCUCAEKAJUIAQoAnQoAgBJajYCUCAEIAQoAlA2AmwgBCgCVCEAIAQgBCgCdCIBQQRqNgJ0IAEgADYCACAEIAQoAngoAgBB//8DcTYCZCAEIAQoAngoAgBBEHY2AmAgBCAEKAJ4QQRqNgJ4IAQgBCgCZCAEKAJYbDYCTCAEIAQoAmQgBCgCXGw2AlQgBCAEKAJgIAQoAlxsNgJIIAQgBCgCYCAEKAJYbDYCUCAEIAQoAlAgBCgCTEEQdmo2AlAgBCAEKAJQIAQoAkhBEHZqNgJQIAQgBCgCTEEQdDYCTCAEIAQoAkhBEHQ2AkggBCAEKAJMIAQoAlRqNgJUIAQg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NgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ4KAIAQf//A3E2AkQgBCAEKAJ4KAIAQRB2NgJAIAQgBCgCeEEEajYCeCAEIAQoAkQgBCgCOGw2AiwgBCAEKAJEIAQoAjxsNgI0IAQgBCgCQCAEKAI8bDYCKCAEIAQoAkAgBCgCOGw2AjAgBCAEKAIwIAQoAixBEHZqNgIwIAQgBCgCMCAEKAIoQRB2ajYCMCAEIAQoAixBEHQ2AiwgBCAEKAIoQRB0NgIoIAQgBCgCLCAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAIsSWo2AjAgBCAEKAIoIAQoAjRqNgI0IAQgBCgCMCAEKAI0IAQoAihJajYCMCAEIAQoAmwgBCgCNGo2AjQgBCAEKAIwIAQoAjQgBCgCbElqNgIwIAQgBCgCdCgCACAEKAI0ajYCNCAEIAQoAjAgBCgCNCAEKAJ0KAIASWo2AjAgBCAEKAIwNgJsIAQoAjQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ8QQhrNgJ8DAELCwNAIAQoAnwEQCAEIAQoAnBB//8DcTYCHCAEIAQoAnBBEHY2AhggBCAEKAJ4KAIAQf//A3E2AiQgBCAEKAJ4KAIAQRB2NgIgIAQgBCgCeEEEajYCeCAEIAQoAiQgBCgCGGw2AgwgBCAEKAIkIAQoAhxsNgIUIAQgBCgCICAEKAIcbDYCCCAEIAQoAiAgBCgCGGw2AhAgBCAEKAIQIAQoAgxBEHZqNgIQIAQgBCgCECAEKAIIQRB2ajYCECAEIAQoAgxBEHQ2AgwgBCAEKAIIQRB0NgIIIAQgBCgCDCAEKAIUajYCFCAEIAQoAhAgBCgCFCAEKAIMSWo2AhAgBCAEKAIIIAQoAhRqNgIUIAQgBCgCECAEKAIUIAQoAghJajYCECAEIAQoAmwgBCgCFGo2AhQgBCAEKAIQIAQoAhQgBCgCbElqNgIQIAQgBCgCdCgCACAEKAIUajYCFCAEIAQoAhAgBCgCFCAEKAJ0KAIASWo2AhAgBCAEKAIQNgJsIAQoAhQhACAEIAQoAnQiAUEEajYCdCABIAA2AgAgBCAEKAJ8QQFrNgJ8DAELCyAEIAQoAmhBAWo2AmgDQCAEKAJ0IgAgBCgCbCAAKAIAajYCACAEIAQoAnQoAgAgBCgCbEk2AmwgBCAEKAJ0QQRqNgJ0IAQoAmwNAAsLnAIBAX8jAEEgayIDIAA2AhwgAyABNgIYIAMgAjYCFCADQQA2AgwgA0EANgIQA0AgAygCECADKAIcT0UEQCADIAMoAhQoAgAgAygCDEk2AgggAygCFCIAIAAoAgAgAygCDGs2AgAgAyADKAIIIAMoAhQoAgAgAygCGCgCAElqNgIMIAMoAhQiACAAKAIAIAMoAhgoAgBrNgIAIAMgAygCEEEBajYCECADIAMoAhhBBGo2AhggAyADKAIUQQRqNgIUDAELCwNAIAMoAgwEQCADIAMoAhQoAgAgAygCDEk2AgggAygCFCIAIAAoAgAgAygCDGs2AgAgAyADKAIINgIMIAMgAygCEEEBajYCECADIAMoAhRBBGo2AhQMAQsLC+QBAQF/IwBBEGsiASQAIAEgADYCCAJAAkAgASgCCCgCEARAIAEoAggoAhwNAQsgAUGA/H42AgwMAQsCQCABKAIIKAIQKAIAQQFxBEAgASgCCCgCHCgCAEEBcQ0BCyABQYD8fjYCDAwBCwJAIAEoAghBCGoQ9AFBgAFPBEAgASgCCEEIahD0AUGAwABNDQELIAFBgPx+NgIMDAELAkAgASgCCEEUahD0AUECTwRAIAEoAghBFGogASgCCEEIahBiQQBIDQELIAFBgPx+NgIMDAELIAFBADYCDAsgASgCDCABQRBqJAALTQEBfyMAQRBrIgEkACABIAA2AgggASABKAIINgIEIwBBEGsiACABKAIENgIIIAAgACgCCDYCDCABIAAoAgw2AgwgASgCDCABQRBqJAALQAEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCAAIAMoAgggAygCBCIAIAAQUBC/BBBnIANBEGokAAt1AQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEAIAIoAggEQCAAIAIoAggoAgAQ6gMgACACKAIIKAIEEOoDIAIgABDvAzYCBCACKAIEIAIoAghBEGoQ7AMQ1gUgAigCBCACKAIIENUFCyACQRBqJAALJgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBDeASgCACABQRBqJAALIgEBfyMAQRBrIgEkACABIAA2AgwgASgCDBBFIAFBEGokAAtAAQF/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgwgAygCCCADKAIEEEUQ1wVBAXEgA0EQaiQAC24BAX8jAEEQayICJAAgAiAANgIIIAIgATYCBCACIAIoAggQIDYCAAJAIAIoAgAgAigCBBAgRwRAIAJBADoADwwBCyACIAIoAggQOSACKAIEEDkgAigCABDkA0U6AA8LIAItAA9BAXEgAkEQaiQACyUBAX8jAEEQayIBJAAgASAANgIMIAEoAgxBBGoQGCABQRBqJAALRQEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjYCBCADKAIMIgAgAygCCCADKAIEIAAoAgAoAjARBAAgA0EQaiQACzABAX8jAEEQayIBJAAgASAANgIMIAFBgAg2AgggASgCDCABKAIIEJkGIAFBEGokAAsuAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgBBCGoQJRogABC+AhogAUEQaiQAC5MTAQl/IwBBIGsiByQAIAcgATYCGCAHIAA2AhQgByACNgIQIAcoAhQhACAHIAcoAhg2AgggBygCCCEBIAcoAhAh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ADYCDCACIAE6AAsgAigCDCIAQQVBABCqASAAIAItAAtBAXE6AAAgAkEQaiQAIAAL2AEBAn8jAEHAAWsiAiQAIAIgADYCvAEgAiABNgK4ASACKAK4AUH6////B0sEQCACQSxqIgAQbCAAQboUEGsgAkEgaiIBIAAQaiABEHwACyACIAIoArgBQQVqNgIcIAIgAigCHBAuNgIYIAIoAhhFBEAgAkEMaiIAQd0MECIgABCGBAALIAIoAhggAigCuAE2AgAgAigCGCEAIAIoArwBIQEgAigCuAEiAwRAIABBBGogASAD/AoAAAsgAigCGCACKAIcQQFrakEAOgAAIAIoAhggAkHAAWokAAvOAQEBfyMAQTBrIgIkACACIAA2AiggAiABNgIkAkAgAigCKCIAKAIARQRAIAIgACgCBCACKAIkKAIERjoALwwBCyACIAAoAgRBAnY2AiAgAiACKAIkKAIEQQJ2NgIcIAIoAiAgAigCHEcEQCACQQA6AC8MAQsCQCAAKAIABEAgAigCJCgCAA0BCyACQRBqIgBBnB4QIiAAEHwACyACIAAoAgAgAigCJCgCACACKAIgEHM2AgwgAiACKAIMRToALwsgAi0AL0EBcSACQTBqJAALKQEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwQECACQRBqJAALMwEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAQcTOADYCACAAQQRqEAgaIAFBEGokACAAC1wBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIQEjAEEQayIAIAIoAgwiAzYCDCAAIAE2AgggACgCDCIBIAAoAggoAgA2AgAgAUEAOgAEIAJBEGokACADC2sBBH8jAEEQayICJAAgAiAANgIMIAIoAgwiBCEBIwBBEGsiACQAIAAgATYCDCAAKAIMIQMjAEEQayIBJAAgASADNgIMIAEoAgwQxgEaIAFBEGokACADQQE6AAQgAEEQaiQAIAJBEGokACAEC4IBAQR/IwBBEGsiAiQAIAIgADYCDCACKAIMIgMhASMAQRBrIgAkACAAIAE2AgwgAEG43gA2AgggACgCDCIBIAAoAggiBCgCADYCACABKAIAQQxrKAIAIAFqIAQoAgw2AgAgAUEEahCNAxogAEEQaiQAIANBOGoQ2QEaIAJBEGokACAD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EGsiAiQAIAIgBDYCDCACIAk2AgggAigCDCIEKAIAIAIoAgggBCgCBBDnASACQRBqJAALIAFBEGokACAIQRBqJAAgBRCsAQsLIABB0ABqJAALIAdBARAeIAMoAhQgA0EMaiIBIAcQjgYgARARIAMoAhgQ4QEgBxAsIgAgACgCAEEBajYCACADQSBqJAAgBkEQaiQAC7QCAQN/IwBBEGsiAyQAIAMgADYCDCADKAIMIQEjAEEgayIAJAAgACABNgIcIAAgACgCHCIBEFo2AhggACABKAIQNgIUIAAgARAsNgIQIAAgARBaIAEoAhBqQQFrNgIMIAAoAhAgARARIAAoAgxBCnZBAnRqKAIAIAAoAgxB/wdxQQJ0ahAMEH4gARAsIgIgAigCAEEBazYCACABIAAoAhggACgCFBB1IwBBEGsiAiQAIAIgATYCCCACQQE6AAcCQAJAIAIoAggiARDfBUECSQRAIAItAAdBAXENASABEN8FRQ0BCyABIAEQK0EBa0EAEHUgARAsIAEQ+AEoAgBBgAgQ5wEgARDHAiACQQE6AA8MAQsgAkEAOgAPCyACLQAPGiACQRBqJAAgAEEgaiQAIANBEGokAAs5AQF/IwBBEGsiAiQAIAIgADYCCCACIAE2AgQgAiACKAIIEDkgAigCBGo2AgwgAigCDCACQRBqJAALYwEBfyMAQRBrIgIkACACIAE2AgwgAiACKAIMIgEQESABKAIQQZIBbkECdGo2AgggACACKAIIIAEQ+QFBAXEEf0EABSACKAIIKAIAIAEoAhBBkgFwQRxsagsQiAEgAkEQaiQAC2QBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQEgAigCCCEDIwBBEGsiACQAIAAgATYCDCAAIAM2AgggACgCDCAAKAIIIAAoAgwQDGtBfHFqIABBEGokACACQRBqJAALbAEDfyMAQRBrIgEkACABIAA2AgggASABKAIIIgA2AgwjAEEQayICJAAgAiAANgIMIAIoAgwiAyADKAIEEJUGIAJBEGokACAAKAIABEAgABATIAAoAgAgABCTARDnAQsgASgCDBogAUEQaiQAC14BA38jAEEQayIBJAAgASAANgIMIAEoAgwhAiMAQRBrIgAkACAAIAI2AgwgACgCDCIDECsEfyADECtBzgBsQQFrBUEACyAAQRBq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IAAgC0GMBGoQH0UEQCAAED1B/wFxIAIgChAWLQAARg0BCyAFIAUoAgBBBHI2AgBBACEADAMLIAAQTxogCkEBaiEKDAALAAtBASEAIA8oAgAgCygCZEYNAEEAIQAgC0EANgIQIBEgDygCACALKAJkIAtBEGoQXSALKAIQBEAgBSAFKAIAQQRyNgIADAELQQEhAAsgEBAIGiANEAgaIA4QCBogDBAIGiAREAgaIA8QOgwDCyACIQELIANBAWohAwwACwALIAtBkARqJAAgAAsMACAAQQFBLRDkBBoLDAAgAEEBQS0Q5wQaCwoAIAEgAGtBAnULHAEBfyAALQAAIQIgACABLQAAOgAAIAEgAjoAAAtlAQF/IwBBEGsiBiQAIAZBADoADyAGIAU6AA4gBiAEOgANIAZBJToADCAFBEAgBkENaiAGQQ5qENkECyACIAEgASACKAIAEI8FIAZBDGogAyAAKAIAEIEFIAFqNgIAIAZBEGokAAtCACABIAIgAyAEQQQQogEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEO4CIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwsnAQF/IwBBEGsiASQAIAEgADYCDCABKAIMQZDPARCYASABQRBqJAALQAAgAiADIABBCGogACgCCCgCABEAACIAIABBqAFqIAUgBEEAEO4CIABrIgBBpwFMBEAgASAAQQxtQQdvNgIACwtCACABIAIgAyAEQQQQowEhASADLQAAQQRxRQRAIAAgAUHQD2ogAUHsDmogASABQeQASRsgAUHFAEgbQewOazYCAAsLQAAgAiADIABBCGogACgCCCgCBBEAACIAIABBoAJqIAUgBEEAEPACIABrIgBBnwJMBEAgASAAQQxtQQxvNgIACwtAACACIAMgAEEIaiAAKAIIKAIAEQAAIgAgAEGoAWogBSAEQQAQ8AIgAGsiAEGnAUwEQCABIABBDG1BB282AgALCwQAQQILRAEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwoAgAgAigCCBCqAiEAIAIoAgwgADYCACACKAIMGiACQRBqJAAL2gEBBX8jAEEQayIHJAAjAEEQ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////A0siBRshAkGBgX9BgIF/IAUbIANqIQMMAQsgACAHhFAgCEL//wFSckUEQCAHQhmIp0GAgIACciECQf8BIQMMAQsgA0H+gAFLBEBB/wEhAwwBC0GA/wBBgf8AIAhQIgUbIgYgA2siAkHwAEoEQEEAIQJBACEDDAELIARBEGogACAHIAdCgICAgICAwACEIAUbIgdBgAEgAmsQXyAEIAAgByACEPABIAQpAwgiAEIZiKchAgJAIAQpAwAgAyAGRyAEKQMQIAQpAxiEQgBSca2EIgdQIABC////D4MiAEKAgIAIVCAAQoCAgAhRG0UEQCACQQFqIQIMAQsgByAAQoCAgAiFhEIAUg0AIAJBAXEgAmohAgsgAkGAgIAEcyACIAJB////A0siAxshAgsgBEEgaiQAIAFCIIinQYCAgIB4cSADQRd0ciACcr4LkQIBB38jAEEQayIDJAAgAyAANgIIIAMgAygCCCIANgIMIAAoAgQEQCAAKAIEIQAjAEEQayIFJAAgBSAANgIMIAUoAgwhACMAQRBrIgEkACABIAA2AggjAEEQayICIAEoAggiBkEEajYCDCACKAIMIQQgAkF/NgIIIAQgAigCCCIHIAQoAgAiBGo2AgAgAiAEIAdqNgIEAkAgAigCBEF/RgRAIAYgBigCACgCCBECACABQQE6AA8MAQsgAUEAOgAPCyABLQAPQQFxIAFBEGokAEEBcQRAAkAgAEEIaiIBKAIABEAgARDJBEF/Rw0BCyAAIAAoAgAoAhARAgALCyAFQRBqJAALIAMoAgwaIANBEGokAAuqDwIFfw9+IwBB0AJrIgUkACAEQv///////z+DIQogAkL///////8/gyELIAIgBIVCgICAgICAgICAf4MhDCAEQjCIp0H//wFxIQgCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAIQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIg1CgICAgICAwP//AFQgDUKAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEMDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQwgAyEBDAILIAEgDUKAgICAgIDA//8AhYRQBEAgAyACQoCAgICAgMD//wCFhFAEQEIAIQFCgICAgICA4P//ACEMDAMLIAxCgICAgICAwP//AIQhDEIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQEIAIQEMAgsgASANhFAEQEKAgICAgIDg//8AIAwgAiADhFAbIQxCACEBDAILIAIgA4RQBEAgDEKAgICAgIDA//8AhCEMQgAhAQwCCyANQv///////z9YBEAgBUHAAmogASALIAEgCyALUCIGG3kgBkEGdK18pyIGQQ9rEF9BECAGayEGIAUpA8gCIQsgBSkDwAIhAQsgAkL///////8/Vg0AIAVBsAJqIAMgCiADIAogClAiBxt5IAdBBnStfKciB0EPaxBfIAYgB2pBEGshBiAFKQO4AiEKIAUpA7ACIQMLIAVBoAJqIApCgICAgICAwACEIhJCD4YgA0IxiIQiAkIAQoCAgICw5ryC9QAgAn0iBEIAEFggBUGQAmpCACAFKQOoAn1CACAEQgAQWCAFQYACaiAFKQOYAkIBhiAFKQOQAkI/iIQiBEIAIAJCABBYIAVB8AFqIARCAEIAIAUpA4gCfUIAEFggBUHgAWogBSkD+AFCAYYgBSkD8AFCP4iEIgRCACACQgAQWCAFQdABaiAEQgBCACAFKQPoAX1CABBYIAVBwAFqIAUpA9gBQgGGIAUpA9ABQj+IhCIEQgAgAkIAEFggBUGwAWogBEIAQgAgBSkDyAF9QgAQWCAFQaABaiACQgAgBSkDuAFCAYYgBSkDsAFCP4iEQgF9IgJCABBYIAVBkAFqIANCD4ZCACACQgAQWCAFQfAAaiACQgBCACAFKQOoASAFKQOgASINIAUpA5gBfCIEIA1UrXwgBEIBVq18fUIAEFggBUGAAWpCASAEfUIAIAJCABBYIAYgCSAIa2ohBgJ/IAUpA3AiE0IBhiIOIAUpA4gBIg9CAYYgBSkDgAFCP4iEfCIQQufsAH0iFEIgiCICIAtCgICAgICAwACEIhVCAYYiFkIgiCIEfiIRIAFCAYYiDUIgiCIKIBAgFFatIA4gEFatIAUpA3hCAYYgE0I/iIQgD0I/iHx8fEIBfSITQiCIIhB+fCIOIBFUrSAOIA4gE0L/////D4MiEyABQj+IIhcgC0IBhoRC/////w+DIgt+fCIOVq18IAQgEH58IAQgE34iESALIBB+fCIPIBFUrUIghiAPQiCIhHwgDiAOIA9CIIZ8Ig5WrXwgDiAOIBRC/////w+DIhQgC34iESACIAp+fCIPIBFUrSAPIA8gEyANQv7///8PgyIRfnwiD1atfHwiDlatfCAOIAQgFH4iGCAQIBF+fCIEIAIgC358IgsgCiATfnwiEEIgiCALIBBWrSAEIBhUrSAEIAtWrXx8QiCGhHwiBCAOVK18IAQgDyACIBF+IgIgCiAUfnwiCkIgiCACIApWrUIghoR8IgIgD1StIAIgEEIghnwgAlStfHwiAiAEVK18IgRC/////////wBYBEAgFiAXhCEVIAVB0ABqIAIgBCADIBIQWCABQjGGIAUpA1h9IAUpA1AiAUIAUq19IQpCACABfSELIAZB/v8AagwBCyAFQeAAaiAEQj+GIAJCAYiEIgIgBEIBiCIEIAMgEhBYIAFCMIYgBSkDaH0gBSkDYCINQgBSrX0hCkIAIA19IQsgASENIAZB//8AagsiBkH//wFOBEAgDEKAgICAgIDA//8AhCEMQgAhAQwBCwJ+IAZBAEoEQCAKQgGGIAtCP4iEIQEgBEL///////8/gyAGrUIwhoQhCiALQgGGDAELIAZBj39MBEBCACEBDAILIAVBQGsgAiAEQQEgBmsQ8AEgBUEwaiANIBUgBkHwAGoQXyAFQSBqIAMgEiAFKQNAIgIgBSkDSCIKEFggBSkDOCAFKQMoQgGGIAUpAyAiAUI/iIR9IAUpAzAiBCABQgGGIg1UrX0hASAEIA19CyEEIAVBEGogAyASQgNCABBYIAUgAyASQgVCABBYIAogAiACIAMgBCACQgGDIgR8IgNUIAEgAyAEVK18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDIQhDAsgACABNwMAIAAgDDcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKD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BEGAA2ogFyAWQgBCgICAgICAgP8/EC0gBCkDkAMgBCkDmANCgICAgICAgLjAABCuBSEDIAQpA4gDIBYgA0EATiICGyEWIAQpA4ADIBcgAhshFyAVIBhCAEIAEPEBIQEgFCACIA5qIg5B7gBqTgRAIAggBiAJRyADQQBIcnEgAUEAR3FFDQELQYzFAUHEADYCAAsgBEHwAmogFyAWIA4QtQUgBCkD+AIhFSAEKQPwAgshFiAMIBU3AyggDCAWNwMgIARBkMYAaiQAIAwpAyghFSAMKQMgIRYMAgtCACEWDAELQgAhFQsgACAWNwMAIAAgFTcDCCAMQTBqJAALwwYCBH8DfiMAQYABayIFJAACQAJAAkAgAyAEQgBCABDxAUUNAAJ/IARC////////P4MhCgJ/IARCMIinQf//AXEiB0H//wFHBEBBBCAHDQEaQQJBAyADIAqEUBsMAgsgAyAKhFALC0UNACACQjCIpyIIQf//AXEiBkH//wFHDQELIAVBEGogASACIAMgBBAtIAUgBSkDECICIAUpAxgiASACIAEQrQUgBSkDCCECIAUpAwAhBAwBCyABIAJC////////////AIMiCiADIARC////////////AIMiCRDxAUEATARAIAEgCiADIAkQ8QEEQCABIQQMAgsgBUHwAGogASACQgBCABAtIAUpA3ghAiAFKQNwIQQMAQsgBEIwiKdB//8BcSEHIAYEfiABBSAFQeAAaiABIApCAEKAgICAgIDAu8AAEC0gBSkDaCIKQjCIp0H4AGshBiAFKQNgCyEEIAdFBEAgBUHQAGogAyAJQgBCgICAgICAwLvAABAtIAUpA1giCUIwiKdB+ABrIQcgBSkDUCEDCyAJQv///////z+DQoCAgICAgMAAhCELIApC////////P4NCgICAgICAwACEIQogBiAHSgRAA0ACfiAKIAt9IAMgBFatfSIJQgBZBEAgCSAEIAN9IgSEUARAIAVBIGogASACQgBCABAtIAUpAyghAiAFKQMgIQQMBQsgCUIBhiAEQj+IhAwBCyAKQgGGIARCP4iECyEKIARCAYYhBCAGQQFrIgYgB0oNAAsgByEGCwJAIAogC30gAyAEVq19IglCAFMEQCAKIQkMAQsgCSAEIAN9IgSEQgBSDQAgBUEwaiABIAJCAEIAEC0gBSkDOCECIAUp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QQAQaEEATARAIANBfDYCfAwBCyADQdQAahAkIANByABqECQgA0E8ahAkIANBMGoQJCADQeAAaiIBECQgA0EkahAkIANBGGoQJCADQQxqECQgAxAkIAMgASADKAJ0IAMoAnAQ+gIiADYCbAJAIAANACABQQEQaARAIANBdDYCbAwBCyADIANB1ABqIgEgAygCdCADKAJwEJoBIgA2AmwgAA0AIAMgA0HIAGogARBKIgA2AmwgAA0AIAMgA0EkaiADKAJwEEoiADYCbCAADQAgAyADQRhqIAMoAnAQSiIANgJsIAANACADIANBPGpBARCSASIANgJsIAANACADIANBMGpBABCSASIANgJsIAANACADIANBDGpBABCSASIANgJsIAANACADIANBARCSASIANgJsIAANAANAA0AgAygCUCgCAEEBcUUEQCADIANByABqQQEQggEiADYCbCAADQMCQCADKAJEKAIAQQFxRQRAIAMoAjgoAgBBAXFFDQELIAMgA0E8aiIAIAAgA0EkahDyASIANgJsIAANBCADIANBMGoiACAAIANB1ABqEHsiADYCbCAADQQLIAMgA0E8akEBEIIBIgA2AmwgAA0DIAMgA0EwakEBEIIBIgA2AmwgAEUNAQwDCwsDQCADKAIgKAIAQQFxRQRAIAMgA0EYakEBEIIBIgA2AmwgAA0DAkAgAygCFCgCAEEBcUUEQCADKAIIKAIAQQFxRQ0BCyADIANBDGoiACAAIANBJGoQ8gEiADYCbCAADQQgAyADIAMgA0HUAGoQeyIANgJsIAANBAsgAyADQQxqQQEQggEiADYCbCAADQMgAyADQQEQggEiADYCbCAARQ0BDAMLCwJAIANByABqIgAgA0EYaiIBEGJBAE4EQCADIAAgACABEHsiADYCbCAADQMgAyADQTxqIgAgACADQQxqEHsiADYCbCAADQMgAyADQTBqIgAgACADEHsiADYCbAwBCyADIANBGGoiACAAIANByABqEHsiADYCbCAADQIgAyADQQxqIgAgACADQTxqEHsiADYCbCAADQIgAyADIAMgA0EwahB7IgA2AmwLIAANASADQcgAakEAEGgNAAsDQCADQQxqIgBBABBoQQBIBEAgAyAAIAAgAygCcBDyASIANgJsIABFDQEMAgsLA0AgA0EMaiIAIAMoAnAQYkEATgRA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IwBBEGsiASAAKwMAOQMIIAFBADYCBCABQX82AgAgASsDCCABKAIEt2YEfyABKwMIIAEoAgC4ZQVBAAtBAXFFBEAgAkGsAWoiARBsIAFBvhoQayACQaABaiIAIAEQagwFCyACIAArAwD8AzYC7AQMAwsgAkEANgLsBAwCCyACIAAtAABBAXE2AuwEDAELIAJBFGoiARBsIAFB2iQQayACQQhqIgAgARBqDAELIAIoAuwEIAJB8ARqJAAPCyAAEHwAC+0BAgJ+A38jAEEQayIDJAAgAyAAOQMIAnwgAysDCCIAvSIBQjSIp0H/D3EiBEH/B2shBQJAIARBswhPBEAgAyAAOQMAIAFC/////////weDUEUgBUGACEZxDQEgAUKAgICAgICAgIB/g78MAgsgBEH+B00EQCADIAFCgICAgICAgICAf4M3AwAgAAwCCyABIAWtIgKGQv////////8Hg1AEQCADIAA5AwAgAUKAgICAgICAgIB/g78MAgsgA0KAgICAgICAeCAChyABgyIBNwMAIAAgAb+hIQALIAALRAAAAAAAAAAAYSADQRBqJAALPgEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwiAEEEQQAQqgEgACACKAIIEAo2AgAgAkEQaiQAIAALKgEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAIAAoAgAQ+wQgAUEQaiQAC1EBAX8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCIAQQRBARCqASAAIAMoAgggAygCBCADKAIIaxD4AzYCACADQRBqJAAgAAs8AQF/IwBBEGsiAiQAIAIgADYCDCACIAE5AwAgAigCDCIAQQNBABCqASAAIAIrAwA5AwAgAkEQaiQAIAALPAEBfyMAQRBrIgIkACACIAA2AgwgAiABNwMAIAIoAgwiAEECQQAQqgEgACACKQMANwMAIAJBEGokACAACzwBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBAkEAEKoBIAAgAjUCCDcDACACQRBqJAAgAAsiAQF/IwBBEGsiASAANgIMIAEoAgwiACAAKAIAQQRqNgIAC2kBAX8jAEEQayIEIAA2AgwgBCABNgIIIAQgAjYCBCAEIAM2AgAgBCgCDCIAIAQoAgg2AgAgACAEKAIAQQNx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jAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIQEgAigCDCIAQQA2AhQgACABNgIYIABBADYCDCAAQoKggIDgADcCBCAAIAFFNgIQIABBIGpBAEEo/AsAIABBHGoQyAQgAEEANgJIIwBBEGsiASAAQcwAajYCDCABKAIMQQA6AAQgAkEQaiQAC0oBAn8jAEEQayIBJAAgASAANgIMIwBBEGsiACABKAIMIgI2AgwgACgCDCIAQYDhADYCACAAQQA2AhwgAkG02wA2AgAgAUEQaiQACxgBAX8jAEEQayIBIAA2AgwgASgCDCkDAAuEBgECfyMAQSBrIgIkACACIAA2AhwgAiABNgIYAkAgAigCGBDFAkUEQCAAQZUzECIMAQsgAiACKAIYECA2AhQgAkEANgIQIAJBADYCDCACQQA2AgggAkEAOgAAIAAQTANAIAIgAigCFCIBQQFrNgIUAn9BACABRQ0AGkEAIAIoAhggAigCCBCLBC0AAEE9Rg0AGiACKAIYIAIoAggQiwQtAAAhAyMAQRBrIgEkACABIAM6AA8Cf0EBIAEtAA8iA0Ewa0EKSSADQSByQeEAa0EaSXINABpBASABLQAPQStGDQAaIAEtAA9BL0YLIAFBEGokAEEBcQtBAXEEQCACKAIYIAIoAggQiwQtAAAhASACIAIoAhAiA0EBajYCECACQQRqIANqIAE6AAAgAiACKAIIQQFqNgIIIAIoAhBBBEYEQCACQQA2AhADQCACKAIQQQRIBEAgAigCECACQQRqai0AAMAQmwdB/wFxIQEgAigCECACQQRqaiABOgAAIAIgAigCEEEBajYCEAwBCwsgAiACLQAEQQJ0IAItAAVBMHFBBHZqOgABIAIgAi0ABUEPcUEEdCACLQAGQTxxQQJ2ajoAAiACIAItAAcgAi0ABkEDcUEGdGo6AAMgAkEANgIQA0AgAigCEEEDSARAIAAgAigCECACQQFqai0AAMAQhgEgAiACKAIQQQFqNgIQDAELCyACQQA2AhALDAELCyACKAIQBEAgAkEANgIMA0AgAigCDCACKAIQSARAIAIoAgwgAkEEamotAADAEJsHQf8BcSEBIAIoAgwgAkEEamogAToAACACIAIoAgxBAWo2AgwMAQsLIAIgAi0ABEECdCACLQAFQTBxQQR2ajoAASACIAItAAVB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AUEAOgADIAECfyABLQADQQFxBEAgASgCBEEIawwBCyABKAIEQQF2QQhrCzYCDAsgASgCDCABQRBqJAALSwECfyMAQRBrIgEkACABIAA2AgwgASABKAIMNgIIIAEoAgghAiMAQRBrIgAkACAAIAI2AgwgAEEMahCdBCAAQRBqJAAgAUEQaiQACy0BAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABANKAIAIAAoAgBrIAFBEGokAAtWAQJ/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEBIAIoAgghAyMAQRBrIgAkACAAIAE2AgwgACADNgIIIAAoAggQogQgAEEQaiQAIAJBEGokAAt1AQJ/IwBBEGsiAyQAIAMgADYCDCADIAE2AgggAyACNgIEIAMoAgwhASADKAIIIQIgAygCBCEEIwBBEGsiACQAIAAgATYCDCAAIAI2AgggACAENgIEIAAoAgggACgCBEEYbEEEEK8BIABBEGokACADQRBqJAALMAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEA0oAgAgACgCAGtBGG0gAUEQaiQAC3UBAn8jAEEQayIDJAAgAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCEBIAMoAgghAiADKAIEIQQjAEEQayIAJAAgACABNgIMIAAgAjYCCCAAIAQ2AgQgACgCCCAAKAIEQQF0QQEQrwEgAEEQaiQAIANBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQDSgCACAAKAIAa0EBdSABQRBqJAALVgECfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwhASACKAIIIQMjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAKAIIEAgaIABBEGokACACQRBqJAALTQEBfyMAQRBrIgMkACADIAA2AgwgAyABNgIIIAMgAjoAByADKAIMIgAgA0EGaiADQQVqENACIAAgAygCCCADLQAHwBCaByADQRBqJAALxAIBAn8jAEEQayIEJAAgBCAANgIMIAQgATYCCCAEIAI2AgQgBCADNgIAIAQoAgghAiAEKAIEIQMgBCgCACEFIwBBQGoiASQAIAEgADYCLCABIAI2AiggASADNgIkIAEgBTYCICABQQA6AB8gASgCKCABQRBqIgIgASgCJCABKAIgEJ4CIAFBADoADygCCCEDIAIQOSEFIAIQOSACECBqIQIgASAANgI8IAEgAzYCOCABIAU2AjQgASACNgIwIAAgASgCOCICIAEoAjQgASgCMCACKAIAKAIQEQYAAkACQAJAIAAQIEEBaw4MAgEBAQEBAQEBAQEAAQsgAEEDECktAAAhAiAAQQsQKSACOgAADAELIAAQ/AELIAFBAToADyABLQAPQQFxRQRAIAAQCBoLIAFBEGoQCBogAUFAayQAIARBEGokAAueAQECfyMAQTBrIgQkACAEIAA2AhwgBCABNgIYIAQgAjYCFCAEIAM2AhAgBCgCGCAEQQRqIgUgBCgCFCAEKAIQEJ4CKAIIIQEgBRA5IQIgBRA5IAUQIGohAyAEIAA2AiwgBCABNgIoIAQgAjYCJCAEIAM2AiAgACAEKAIoIgAgBCgCJCAEKAIgIAAoAgAoAhARBgAgBRAIGiAEQTBqJAALPQEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAgwiACADKAIILQAAOgAAIAAgAygCBC0AADoAAQuCAgEHfyMAQRBrIgIkACACIAA2AgwgAkEIaiIAIAIoAgwQPiMAQRBrIgQkACAEIAA2AgwgBCgCDCIBKAIAKAIABEAgASgCACEAIwBBEGsiBSQAIAUgADYCDCAFKAIMIgAhAyAAKAIAIQYjAEEQayIAJAAgACADNgIMIAAgBjYCCCAAIAAoAgwiAygCBDYCBANAIAAoAgggACgCBEcEQCADEA0gACAAKAIEQQFrIgc2AgQgBxAMEH4MAQsLIAMgACgCCDYCBCAAQRBqJAAgBUEQaiQAIAEoAgAQMSABKAIAEA0gASgCACgCACABKAIAEMMGEKMECyAEQRBqJAAgAkEQaiQAC88GAQl/IwBBEGsiCSQAIAkgADYCDCAJKAIMIgdBoMcANgIAIwBBEGsiAiQAIAIgB0HEAGo2AgwgAkEIaiIAIAIoAgwQPiMAQRBrIgQkACAEIAA2AgwgBCgCDCIBKAIAKAIABEAgASgCACEAIwBBEGsiBSQAIAUgADYCDCAFKAIMIgAhAyAAKAIAIQYjAEEQayIAJAAgACADNgIMIAAgBjYCCCAAIAAoAgwiAygCBDYCBANAIAAoAgggACgCBEcEQCADEA0gACAAKAIEQQxrIgg2AgQgCBAMEMkGDAELCyADIAAoAgg2AgQgAEEQaiQAIAVBEGokACABKAIAEDEgASgCABANIAEoAgAoAgAgASgCABCjAhDXAgsgBEEQaiQAIAJBEGokACMAQRBrIgIkACACIAdBOGo2AgwgAkEIaiIAIAIoAgwQPiMAQRBrIgQkACAEIAA2AgwgBCgCDCIBKAIAKAIABEAgASgCACEAIwBBEGsiBSQAIAUgADYCDCAFKAIMIgAhAyAAKAIAIQYjAEEQayIAJAAgACADNgIMIAAgBjYCCCAAIAAoAgwiAygCBDYCBANAIAAoAgggACgCBEcEQCADEA0gACAAKAIEQQJrIgg2AgQgCBAMEH4MAQsLIAMgACgCCDYCBCAAQRBqJAAgBUEQaiQAIAEoAgAQMSABKAIAEA0gASgCACgCACABKAIAEMgGEMcGCyAEQRBqJAAgAkEQaiQAIwBBEGsiAiQAIAIgB0EsajYCDCACQQhqIgAgAigCDBA+IwBBEGsiBCQAIAQgADYCDCAEKAIMIgEoAgAoAgAEQCABKAIAIQAjAEEQayIFJAAgBSAANgIMIAUoAgwiACEDIAAoAgAhBiMAQRBrIgAkACAAIAM2AgwgACAGNgIIIAAgACgCDCIDKAIENgIEA0AgACgCCCAAKAIERwRAIAMQDSAAIAAoAgRBGGsiCDYCBCAIEAwQxAYMAQsLIAMgACgCCDYCBCAAQRBqJAAgBUEQaiQAIAEoAgAQMSABKAIAEA0gASgCACgCACABKAIAEMYGEMUGCyAEQRBqJAAgAkEQaiQAIAdBIGoQzgYgB0EUahDOBiAHQQhqEO8BIAcQoQEaIAlBEGokACAHCzkBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiAEGIxgA2AgAgAEEIahDvASAAEKEBGiABQRBqJAAgAAs5AQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgBBsMUANgIAIABBCGoQ7wEgABChARogAUEQaiQAIAALOQEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAQZTEADYCACAAQQhqEO8BIAAQoQEaIAFBEGokACAACzkBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiAEG4wwA2AgAgAEEIahDvASAAEKEBGiABQRBqJAAgAAssAQF/IwBBEGsiASQAIAEgADYCDCABKAIMEBgoAghB/////wdxIAFBEGokAAu1AwEEfyMAQRBrIgQkACAEIAA2AgwgBCABNgIIAkAgBCgCDCIDENICQQEQPARAQRgQKiEFIAQoAgghASADKAIkEBUoAgAhACMAQRBrIgIkACACIAU2AgwgAiADNgIIIAIgATYCBCACIAA2AgAgAigCDCIAIAIoAgAQZCAAQbDFADYCACAAQQhqIAIoAggQgQIgACACKAIENgIUIAJBEGokACADKAIkEBUgBTYCAAwBCwJAIAMQ0gJBCBA8BEBBGBAqIQEgBCgCCCEFIAMoAiQQFSgCACEAIwBBEGsiAiQAIAIgATYCDCACIAM2AgggAiAFNgIEIAIgADYCACACKAIMIgAgAigCABBkIABBiMYANgIAIABBCGogAigCCBCBAiAAIAIoAgQ2AhQgAkEQaiQADAELQQwQKiEBIAQoAgghBSADKAIkEBUoAgAhACMAQRBrIgIkACACIAE2AgwgAiAFNgIIIAIgADYCBCACKAIMIgAgAigCBBBkIABB5MYANgIAIAAgAigCCDYCCCACQRBqJAALIAMoAiQQFSABNgIACyADIAMoAiQQFSgCADYCJCAEQRBqJAALGQEBf0EMEFsiAEEFEHcgAEHIvQFBBhAAAAvECgEBfyMAQTBrIgQkACAEIAE2AiggBCACNgIkIAQgADYCICAEIAM2AhwgBCgCICEAAkAgBEEoaiIBIARBJGoQDkEBcQRAIARBGGoQxgEaIARBADYCFAJAAkACQAJAAkACQAJAAkACQAJAAkAgARAKLAAAQTBrDkkICQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkFCQkACQkJCQkJCQEJCQkCCQMGBAkHCQsCQCAEKAIcBEAgBCgCHEEMQRgiAHQgAHUQSwwBCyAAQQxBGCIAdCAAdRBECyAEQShqEAsaDAkLAkAgBCgCHARAIAQoAhxBCkEYIgB0IAB1EEsMAQsgAEEKQRgiAHQgAHUQRAsgBEEoahALGgwICwJAIAQoAhwEQCAEKAIcQQ1BGCIAdCAAdRBLDAELIABBDUEYIgB0IAB1EEQLIARBKGoQCxoMBwsCQCAEKAIcBEAgBCgCHEEJQRgiAHQgAHUQSwwBCyAAQQlBGCIAdCAAdRBECyAEQShqEAsaDAYLAkAgBCgCHARAIAQoAhxBC0EYIgB0IAB1EEsMAQsgAEELQRgiAHQgAHUQRAsgBEEoahALGgwFCyAEIAQoAig2AgggBCAEKAIIQQEQRjYCDCAEIAQoAgw2AhgCQCAEQRhqIgIgBEEkahAOQQFxBEACQCACEAotAABBGCIBdCABdUHBAE4EQCACEAotAABBGHQgAXVB2gBMDQELIARBGGoiAhAKLQAAQRh0IAF1QeEASA0JIAIQCi0AAEEYdCABdUH6AEoNCQsCQCAEKAIcBEAgBEEYahAKLQAAQRgiAHQgAHVBIG8hACAEKAIcIABBGCIAdCAAdRBLDAELIAAgBEEYahAKLQAAQRgiAHQgAHVBIG9BGHQgAHUQRAsgBCAEQRhqEAsoAgA2AigMAQsMBwsMBAsgBEEoaiIBEAsaIAEgBEEkahAaQQFxBEAMBgsgBCAAIARBKGoQCi0AAEEYIgF0IAF1QRAQ/QE2AhAgBCgCEEF/RgRADAYLIAQgBCgCECAEKAIUQQR0ajYCFCAEQShqIgEQCxogASAEQSRqEBpBAXEEQAwGCyAEIAAgBEEoahAKLQAAQRgiAXQgAXVBEBD9ATYCECAEKAIQQX9GBEAMBgsgBCAEKAIQIAQoAhRBBHRqNgIUCyAEQShqIgEQCxogASAEQSRqEBpBAXEEQAwFCyAEIAAgBEEoahAKLQAAQRgiAXQgAXVBEBD9ATYCECAEKAIQQX9GBEAMBQsgBCAEKAIQIAQoAhRBBHRqNgIUIARBKGoiARALGiABIARBJGoQGkEBcQRADAULIAQgACAEQShqEAotAABBGCIBdCABdUEQEP0BNgIQIAQoAhBBf0YEQAwFCyAEIAQoAhAgBCgCFEEEdGo2AhQCQCAEKAIcBEAgBCgCHCAEKAIUQRgiAHQgAHUQSwwBCyAAIAQoAhRBGCIAdCAAdRBECyAEQShqEAsaDAILAkAgBCgCHARAIAQoAhxBAEEYIgB0IAB1EEsMAQsgAEEAQRgiAHQgAHUQRAsgBEEoahALGgwBCwJAIARBKGoiAhAKLQAAQRgiAXQgAXVB3wBGDQMgACACEAotAABBGHQgAXVB4AAQoAFBAXENAwJAIAQoAhwEQCACEAotAAAhACAEKAIcIABBGCIAdCAAdRBLDAELIAAgBEEoahAKLQAAQRgiAHQgAHUQRAsgBEEoahALGgwACwsLIAQgBCgCKDYCLCAEKAIsIARBMGokAA8LENMCAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAgACgCABDgBiABQRBqJAAL+AMBBX8jAEEQayIFJAAgBSABNgIMIAUgAjYCCCAFIAM2AgQgBSgCDCECIAUoAgghAyAFKAIEIQQjAEEwayIBJAAgASACNgIsIAEgAzYCKCABIAQ2AiQgAUEcaiABKAIsIAEoAigQoAIgASgCHCECIAEoAiAhAyABKAIkEEUhBiMAQRBrIgQkACAEIAFBE2o2AgwgBCACNgIIIAQgAzYCBCAEIAY2AgAgBCgCCCEDIAQoAgQhBiAEKAIAIQcjAEEgayICJAAgAiADNgIcIAIgBjYCGCACIAc2AhQgAiACKAIYIAIoAhxrQQN1NgIQIAIoAhwhBiACKAIQIQcjAEEQayIDIAIoAhQ2AgwgAyAGNgIIIAMgBzYCBCADIAMoAgQ2AgAgAygCAARAIAMoAgwhBiADKAIIIQcgAygCAEEDdCIIBEAgBiAHIAj8CgAACwsgAygCDBogAiACKAIUIAIoAhBBA3RqNgIMIAFBFGogAkEYaiACQQxqEMcBIAJBIGokACAEQRBqJAAgASgCLCEDIAEoAhQhBCMAQRBrIgIkACACIAM2AgwgAiAENgIIIAIoAgwgAigCCBCkBCEDIAJBEGokACABIAM2AgwgASABKAIkIAEoAhgQpAQ2AgggACABQQxqIAFBCGoQxwEgAUEwaiQAIAVBEGokAAtFAQF/IwBBIGsiAyQAIAMgADYCHCADIAE2AhggAyACNgIUIANBDGogAygCHCADKAIYIAMoAhQQ2QYgAygCECADQSBqJAALfAEBfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgggAigCDCIAEOMGSwRAIAAQygEACyACIAAQDSACKAIIEOIGIAAgAigCADYCACAAIAIoAgA2AgQgACgCACACKAIEQQN0aiEBIAAQDSABNgIAIABBABAeIAJBEGokAAv7AwEFfyMAQRBrIgUkACAFIAE2AgwgBSACNgIIIAUgAzYCBCAFKAIMIQIgBSgCCCEDIAUoAgQhBCMAQTBrIgEkACABIAI2AiwgASADNgIoIAEgBDYCJCABQRxqIAEoAiwgASgCKBCgAiABKAIcIQIgASgCICEDIAEoAiQQRSEGIwBBEGsiBCQAIAQgAUETajYCDCAEIAI2AgggBCADNgIEIAQgBjYCACAEKAIIIQMgBCgCBCEGIAQoAgAhByMAQSBrIgIkACACIAM2AhwgAiAGNgIYIAIgBzYCFCACIAIoAhggAigCHGtBDG02AhAgAigCHCEGIAIoAhAhByMAQRBrIgMgAigCFDYCDCADIAY2AgggAyAHNgIEIAMgAygCBDYCACADKAIABEAgAygCDCEGIAMoAgghByADKAIAQQxsQQNrIggEQCAGIAcgCPwKAAALCyADKAIMGiACIAIoAhQgAigCEEEMbGo2AgwgAUEUaiACQRhqIAJBDGoQxwEgAkEgaiQAIARBEGokACABKAIsIQMgASgCFCEEIwBBEGsiAiQAIAIgAzYCDCACIAQ2AgggAigCDCACKAIIEKYEIQMgAkEQaiQAIAEgAzYCDCABIAEoAiQgASgCGBCmBDYCCCAAIAFBDGogAUEIahDHASABQTBqJAAgBUEQaiQAC0UBAX8jAEEgayIDJAAgAyAANgIcIAMgATYCGCADIAI2AhQgA0EMaiADKAIcIAMoAhggAygCFBDcBiADKAIQIANBIGokAAsaAQF/IwBBEGsiASAANgIMIAEoAgxBAToABAtYAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIINgIEIwBBEGsiASACKAIENgIMIAEgADYCCCABKAIIIgAgASgCDDYCACAAQQA6AAQgAkEQaiQAC2kBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACIAIoAgwiACgCBDYCBANAIAIoAgggAigCBEZFBEAgABANIAIgAigCBEE0ayIDNgIEIAMQDBChAgwBCwsgACACKAIINgIEIAJBEGokAAsuAQF/IwBBEGsiASQAIAEgADYCDCMAQRBrIAEoAgw2AgxB/////wEgAUEQaiQAC4MBAQJ/IwBBEGsiAyQAIAMgATYCDCADIAI2AgggAygCDCECIAMoAgghBCMAQRBrIgEkACABIAI2AgwgASAENgIIIAEoAgggASgCDBDhBksEQBDJAQALIAEoAghBA3RBBBDIASECIAFBEGokACAAIAI2AgAgACADKAIINgIEIANBEGokAAtFAQF/IwBBEGsiASQAIAEgADYCDCABIAEoAgwQDRDhBjYCCCABQf////8HNgIEIAFBCGogAUEEahCOASgCACABQRBqJAALVgECfyMAQRBrIgIkACACIAA2AgwgAiABNgIIIAIoAgwhASACKAIIIQMjAEEQayIAJAAgACABNgIMIAAgAzYCCCAAKAIIEPgCIABBEGokACACQRBqJAALUAEBfyMAQRBrIgMgADYCDCADIAE2AgggAyACNgIEIAMoAgwiACADKAIINgIAIAAgAygCCCgCBDYCBCAAIAMoAggoAgQgAygCBEEDdGo2AggLlQEBAX8jAEEgayICJAAgAiAANgIYIAIgATYCFCACIAIoAhgiABDjBjYCECACKAIUIAIoAhBLBEAgABDKAQALIAIgABCkAzYCDAJAIAIoAgwgAigCEEEBdk8EQCACIAIoAhA2AhwMAQsgAiACKAIMQQF0NgIIIAIgAkEIaiACQRRqEG4oAgA2AhwLIAIoAhwgAkEgaiQACzABAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABATKAIAIAAoAgBrQQxtIAFBEGokAAtQAQF/IwBBEGsiAyAANgIMIAMgATYCCCADIAI2AgQgAygCDCIAIAMoAggoAgA2AgAgACADKAIIKAIAIAMoAgRBDGxqNgIEIAAgAygCCDYCCAvqAQEHfyMAQRBrIgQkACAEIAA2AgggBCAEKAIIIgA2AgwjAEEQayIFJAAgBSAANgIMIAUoAgwiAiEDIAIoAgQhASMAQRBrIgIkACACIAM2AgwgAiABNgIIIAIoAgwhASACKAIIIQYjAEEQayIDJAAgAyABNgIIIAMgBjYCBCADKAIIIQEDQCADKAIEIAEoAghHBEAgARAyIAEgASgCCEEMayIHNgIIIAcQDBB+DAELCyADQRBqJAAgAkEQaiQAIAVBEGokACAAKAIABEAgABAyIAAoAgAgABDnBhDXAgsgBCgCDBogBEEQaiQAC2gBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACIAIoAgwiACgCBDYCBANAIAIoAgggAigCBEZFBEAgABANIAIgAigCBEEIayIDNgIEIAMQDBB+DAELCyAAIAIoAgg2AgQgAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACAAKAIAEOoGIAFBEGokAAtUAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAoAgAoAgAEQCAAKAIAEPUGIAAoAgAQMSAAKAIAEA0gACgCACgCACAAKAIAEKMCENcCCyABQRBqJAALVAEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAKAIAKAIABEAgACgCABDrBiAAKAIAEDEgACgCABANIAAoAgAoAgAgACgCABCkAxCqBAsgAUEQaiQAC0QBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIIIAIoAgwQ7wZLBEAQyQEACyACKAIIQTRsQQQQyAEgAkEQaiQACy0BAX8jAEEQayIBJAAgASAANgIMIwBBEGsgASgCDDYCDEHEnbEnIAFBEGokAAswAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQDSgCACAAKAIAa0E0bSABQRBqJAALnwEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIgBBADYCACAAQQA2AgQgAkEANgIEIABBCGogAkEEaiACKAIIEA0QqAMgACACKAIIKAIANgIAIAAgAigCCCgCBDYCBCACKAIIEA0oAgAhASAAEA0gATYCACACKAIIEA1BADYCACACKAIIQQA2AgQgAigCCEEANgIAIAJBEGokAAtEAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAiACKAIMIgAQsQE2AgQgACACKAIIEOoGIAAgAigCBBAeIAJBEGokAAt3AQR/IwBBEGsiASQAIAEgADYCDEEIEFshAiABKAIMIQEjAEEQayIAJAAgACACNgIMIAAgATYCCCAAKAIIIQEgACgCDCIDEMAEIgRBkMIBNgIAIARBBGogARCeByADQdTCATYCACAAQRBqJAAgAkHgwgFBBxAAAAsuAQF/IwBBEGsiASQAIAEgADYCDCMAQRBrIAEoAgw2AgxB1arVqgEgAUEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiACAAKAIAEPgGIAFBEGokAAuDAQECfyMAQRBrIgMkACADIAE2AgwgAyACNgIIIAMoAgwhAiADKAIIIQQjAEEQayIBJAAgASACNgIMIAEgBDYCCCABKAIIIAEoAgwQ9AZLBEAQyQEACyABKAIIQQxsQQQQyAEhAiABQRBqJAAgACACNgIAIAAgAygCCDYCBCADQRBqJAALRQEBfyMAQRBrIgEkACABIAA2AgwgASABKAIMEA0Q9AY2AgggAUH/////BzYCBCAB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FCADIBhCgJTr3AOAIhk3AwggAyAYIBlCgJTr3AN+fT4CECAAIAMpAxA3AzAgACADKQMINwMoQQALIANBIGokAARAQYzFASgCABoQQgALIABBGGogAEEoahD0AiEHIAAgACgCMEHoB202AgwgACAANAIMNwMQIwBBIGsiAyQAIwBBEGsiCCQAIwBBEGsiCiQAIwBBEGsiBCQAIAQgBykDAELAhD1+NwMAIARBCGogBBD0AikDACEYIARBEGokACAKQRBqJAAgCCAYNwMIIAMgCCkDCDcDCCAIQRBqJAAgAykDCCEYIAMgACkDEDcDACADIBggAykDAHw3AxAgA0EYaiADQRBqEPQCKQMAIRggA0EgaiQAIAAgGDcDICAAQThqIABBIGoQ9AIpAwAhGCAAQUBrJAAgAiAYNwMIIwBBEGsiACACQQhqNgIEIAAgACgCBCkDADcDCCACIAApAwg3AxAjAEEQayIDJAAgAyACQRBqNgIEIAMoAgQhBCMAQSBrIgAkACAAIANBA2o2AhQgACAENgIQIAAgACgCEBCMBkLAhD1/NwMIIwBBEGsiBCAAQRhqNgIMIAQgAEEIajYCCCAEKAIMIAQoAggpAwA3AwAgACkDGCEYIABBIGokACADIBg3AwggAykDCCEYIANBEGokACACIBg3AxggAkEYahCMBiEYIAJBIGokACABIBg3A7AGAkACQAJAIAUQ2gFBAXENACMAQRBrIgAkACAAIAFBqAZqIgM2AgwgACAFQShqNgIIAkAgACgCCCICLQAIQQZrQQFNBEAgAigCAARAIAAgAigCABCHAzYCBCADIABBBGoQ/AMaDAILCyADEP0DGgsgAEEQaiQAA0AjAEEQayIAJAAgACABQaAGaiICNgIMIAAgBUEoaiIHNgIIAkAgACgCCCIDLQAIQQZrQQFNBEAgAygCAARAIAAgAygCABD3ATYCBCACIABBBGoQ/AMaDAILCyACEP0DGgsgAEEQaiQAIwBBEGsiAyQAIAMgAUGoBmoiBDYCDCADIAI2AgggAygCDCECIAMoAgghCCMAQRBrIgAkACAAIAI2AgggACAINgIEAkAgACgCCCIILQAEQQFxBEAgACAAKAIELQAEQQFxOgAPDAELIAAoAgQhCiMAQRBrIgIkACACIAg2AgwgAiAKNgIIIAIoAgwgAigCCBC/AkEB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AAsgA0EANgIEIANBADYCCCABKAIMGiABQRBqJAAgBBAQCyACQRBqJAALIABBEGokACAFQRBqJAALIAZBpAFqEAgaCyAGQYACahAIGgsjAEEQayIAJAAgACAGQZACajYCDCAAKAIMKAIAGiAAQRBqJAAgBkGUAmoQCBogBkGwAmokACAMEAgaIBMQCBogDhA1IA4QCBogDEEwaiQACyIBAX8jAEEQayIBJAAgASAANgIMQdjEARAIGiABQRBqJAALIwEBfyMAQRBrIgEkACABIAA2AgxB8MMBEJYGGiABQRBqJAALmAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIAEtAABBGCIBdCABdUUNACACKAIIQZ14NgIAIAIoAggiASABKAIIQQFqNgIIIAAQESEAIAIoAgggADYCKAwBCyACKAIIQZ94NgIAIAIoAghBADYCKAsgAkEQaiQAC2EBAX8jAEEQayIDJAAgAyAANgIMIAMgAToACyADIAI2AgQgAygCDCEAIAMoAgRBnng2AgACQCADLQALQQFxBEAgABAvIQAMAQsgABARIQALIAMoAgQgADYCKCADQRBqJAALIgEBfyMAQRBrIgIgADYCDCACIAE2AgggAigCCEGgeDYCAAtAAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCACKAIIQaF4NgIAEBEhACACKAIIIAA2AiggAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABCUBBogABAQIAFBEGokAAt+AQF/IwBBEGsiAyQAIAMgADYCDCADIAE6AAsgAyACNgIEIAMoAgwhACADKAIEQZ54NgIAAkAgAC0AIEEBcSADLQALQQFxRwRAIAAQESEBIAMoAgQgATYCKCAAIAMoAgQQkwQMAQsgABAvIQAgAygCBCAANgIoCyADQRBqJAAL5gMBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQCACKAIIKAIAQaF4RgRAIAIoAghBHGogACgCFBDOAiIDKAIAQQFqIQEgAyABNgIAIAIgASAAKAIQSToAByACIAIoAghBHGogACgCFBDOAigCACAAKAIMTzoABgJAIAItAAdBAXFFDQAgAi0ABkEBcUUN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AigCDGotAABBGCIBdCABdRCJAUEYdCABdSADIAIoAhgoAgggAigCDGotAABBGHQgAXUQiQFBGHQgAXVHDQQgAiACKAIMQQFqNgIMDAELCyACKAIYQZ54NgIAIAIoAhgiASACKAIQIAEoAghqNgIIIAAQESEAIAIoAhggADYCKAwBCyACKAIYQZ94NgIAIAIoAhhBADYCKAsMAQsgAigCGEGfeDYCACACKAIYQQA2AigLIAJBIGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0AYaIAAQECABQRBqJAAL1gIBAn8jAEEgayICJAAgAiAANgIcIAIgATYCGCACIAIoAhhBEGogAigCHCIAKAIUQQFrEDc2AhQCQAJAIAIoAhQtAAhBAXFFDQAgAiACKAIUKAIEIAIoAhQoAgBrNgIQAkAgAigCECACKAIYKAIMIAIoAhgoAghrTARAIAJBADYCDANAIAIoAgwgAigCEEgEQCAAQQhqIgMgAigCFCgCACACKAIMai0AAEEYIgF0IAF1EHZBGHQgAXUgAyACKAIYKAIIIAIoAgxqLQAAQRh0IAF1EHZBGHQgAXVHDQQgAiACKAIMQQFqNgIMDAELCyACKAIYQZ54NgIAIAIoAhgiASACKAIQIAEoAghqNgIIIAAQESEAIAIoAhggADYCKAwBCyACKAIYQZ94NgIAIAIoAhhBADYCKAsMAQsgAigCGEGfeDYCACACKAIYQQA2AigLIAJBIGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0QYaIAAQECABQRBqJAALowEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIAEtAABBGCIBdCABdSAALQAIQRh0IAF1Rw0AIAIoAghBnXg2AgAgAigCCCIBIAEoAghBAWo2AgggABARIQAgAigCCCAANgIoDAELIAIoAghBn3g2AgAgAigCCEEANgIoCyACQRBqJAALsQEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIABBCGogAS0AAEEYIgF0IAF1EIkBQRh0IAF1IAAtABRBGHQgAXVHDQAgAigCCEGdeDYCACACKAIIIgEgASgCCEEBajYCCCAAEBEhACACKAIIIAA2AigMAQsgAigCCEGfeDYCACACKAIIQQA2AigLIAJBEGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQ0gYaIAAQECABQRBqJAALsAEBAX8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQACQAJAIAIoAggoAggiASACKAIIKAIMRg0AIABBCGogAS0AAEEYIgF0IAF1EHZBGHQgAXUgAC0AFEEYdCABdUcNACACKAIIQZ14NgIAIAIoAggiASABKAIIQQFqNgIIIAAQESEAIAIoAgggADYCKAwBCyACKAIIQZ94NgIAIAIoAghBADYCKAsgAkEQaiQACyoBAX8jAEEQayIBJAAgASAANgIMIAEoAgwiABDTBhogABAQIAFBEGokAAv4AgECfyMAQdAAayICJAAgAiAANgJMIAIgATYCSCACKAJMIQAgAkEQaiIBEIIHIAEgAEEIahCVAUEBaiACKAJIKAIIIAIoAkgoAgxBABCBB0EAIQEgAiAAQQhqIAIoAkgoAgggAigCSCgCDCACQRBqIAIoAkgoAixBwAAQqgJBgCAQgAcQPCACKAJILQAwQQFxBH8gAigCSCgCCCACKAJIKAIERgUgAQtBAXEQ/wZBAXE6AA8CQCACLQAPQQFxIAAtADRBAXFHBEAgAigCSEGeeDYCACAAEBEhASACKAJIIAE2AiggAkEBNgIIA0AgAigCCCACQRBqIgEQ2gJPRQRAIAEgAigCCBA3IQEgAigCSEEQaiAAKAIwIAIoAghqQQFrEDciAyABKQIANwIAIANBCCIDaiABIANqLQAAOgAAIAIgAigCCEEBajYCCAwBCwsMAQsgAigCSEGfeDYCACACKAJIQQA2AigLIAJBEGoQswQgAkHQAGokAAsqAQF/IwBBEGsiASQAIAEgADYCDCABKAIMIgAQgwcaIAAQECABQRBqJAALsgQBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQAgAkEAOgAHIAIoAggoAgwiASACKAIIKAIERwRAAkAgAigCCCgCCCABRgRAIAIoAggoAixBCBA8RQRAIAIgAigCCCgCCEEBay0AADoABkEBIQEgAiACLQAGQRgiA3QgA3VB3wBHBH8gAEEIaiACLQAGQRgiAXQgAXVB4AAQoAEFIAELQQFxOgAHCwwBCwJAAkAgAigCCCgCCCACKAIIKAIERw0AIAIoAggoAixBgAEQPA0AIAIoAggoAixBBBA8RQRAIAIgAigCCCgCCC0AADoABUEBIQEgAiACLQAFQRgiA3QgA3VB3wBHBH8gAEEIaiACLQAFQRgiAXQgAXVB4AAQoAEFIAELQQFxOgAHCwwBCyACIAIoAggoAghBAWstAAA6AAQgAiACKAIIKAIILQAAOgADQQEhASACIAItAARBGCIDdCADdUHfAEcEfyAAQQhqIAItAARBGCIBdCABdUHgABCgAQUgAQtBAXE6AAJBASEBIAIgAi0AA0EYdCADdUHfAEcEfyAAQQhqIAItAANBGCIBdCABdUHgABCgAQUgAQtBAXE6AAEgAiACLQACQQFxIAItAAFBAXFHOgAHCwsLAkAgAi0AB0EBcSAALQAUQQFxRwRAIAIoAghBnng2AgAgABARIQAgAigCCCAANgIoDAELIAIoAghBn3g2AgAgAigCCEEANgIoCyACQRBqJAALKgEBfyMAQRBrIgEkACABIAA2AgwgASgCDCIAEIQHGiAAEBAgAUEQaiQAC8wBAQF/IwBBEGsiAiQAIAIgADYCDCACIAE2AgggAigCDCEAAkACQCACKAIIKAIIIAIoAggoAgxHDQAgAigCCCgCLEECEDwNACACKAIIQZ54NgIAIAAQESEAIAIoAgggADYCKAwBCwJAAkAgAC0ACEEBcUUNACACKAIIKAIILQAAQRgiAXQgAXUQhwdBAXFFDQAgAigCCEGeeDYCACAAEBEhACACKAIIIAA2AigMAQsgAigCCEGfeDYCACACKAIIQQA2AigLCyACQRBqJAALlQIBAn8jAEEQayICJAAgAiAANgIMIAIgATYCCCACKAIMIQECQAJAIAIoAggtADBBAXFFDQAgAigCCCgCCCACKAIIKAIERw0AIAIoAggoAixBARA8DQAgAigCCEGeeDYCACABEBEhACACKAIIIAA2AigMAQsCQAJAIAEtAAhBAXFFDQAgAigCCC0AMEEBcQ0AIAIoAggoAgghAyMAQRBrIgAkACAAIAM2AgwgAEEBNgIIIABBDGpBACAAKAIIaxCGByAAKAIMIABBEGokAC0AAMAQhwdBAXFFDQAgAigCCEGeeDYCACABEBEhACACKAIIIAA2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IQEMAQsLIAELQAADQCABIAJHBEAgASABLAAAIgBBAE4Ef0GQ8gAoAgAgASwAAEECdGooAgAFIAALOgAAIAFBAWohAQwBCwsgAQseACABQQBOBH9BkPIAKAIAIAFBAnRqKAIABSABC8ALQAADQCABIAJHBEAgASABLAAAIgBBAE4Ef0GE5gAoAgAgASwAAEECdGooAgAFIAALOgAAIAFBAWohAQwBCwsgAQseACABQQBOBH9BhOYAKAIAIAFBAnRqKAIABSABC8ALCQAgABDCBxAQCzUAA0AgASACRkUEQCAEIAEoAgAiACADIABBgAFJGzoAACAEQQFqIQQgAUEEaiEBDAELCyABCw4AIAEgAiABQYABSRvACyoAA0AgASACRkUEQCADIAEsAAA2AgAgA0EEaiEDIAFBAWohAQwBCwsgAQtBAANAIAEgAkcEQCABIAEoAgAiAEH/AE0Ef0GQ8gAoAgAgASgCAEECdGooAgAFIAALNgIAIAFBBGohAQwBCwsgAQseACABQf8ATQR/QZDyACgCACABQQJ0aigCAAUgAQsLQQADQCABIAJHBEAgASABKAIAIgBB/wBNBH9BhOYAKAIAIAEoAgBBAnRqKAIABSAACzYCACABQQRqIQEMAQsLIAELHgAgAUH/AE0Ef0GE5gAoAgAgAUECdGooAgAFIAELCzoAA0ACQCACIANGDQAgAigCACIAQf8ASw0AIABBAnRB4IABaigCACABcUUNACACQQRqIQIMAQsLIAILOgADQAJAIAIgA0YNACACKAIAIgBB/wBNBEAgAEECdEHggAFqKAIAIAFxDQELIAJBBGohAgwBCwsgAgtJAQF/A0AgASACRkUEQEEAIQAgAyABKAIAIgRB/wBNBH8gBEECdEHggAFqKAIABSAACzYCACADQQRqIQMgAUEEaiEBDAELCyABCyUAQQAhACACQf8ATQR/IAJBAnRB4IABaigCACABcUEARwUgAAsLDwAgACAAKAIAKAIEEQIACwkAIAAQxwcQEAvBAQAjAEEQayIDJAACQCAFEFRFBEAgACAFKAIINgIIIAAgBSkCADcCACAAEOwBGgwBCyAFKAIAIQIgBSgCBCEFIwBBEGsiBCQAAkACQAJAIAUQuQMEQCAAIQEgACAFEF4MAQsgBUH3////A0sNASAEQQhqIAUQpwJBAWoQpgIg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cwByaWdodC1wYXJlbnRoZXNpcwBsZWZ0LXBhcmVudGhlc2lzAEZlYXR1cmVzAE1vZHVsZXMAbGljZW5zZSBtRWRpdGlvbiBsTW9kdWxlTjolcwAlczolZDogJXMAZm91cgBBcHIAdmVjdG9yAG1vbmV5X2dldCBlcnJvcgBleHBlY3RpbmcgYW5vdGhlciBcdSB0b2tlbiB0byBiZWdpbiB0aGUgc2Vjb25kIGhhbGYgb2YgYSB1bmljb2RlIHN1cnJvZ2F0ZSBwYWlyAGxvd2VyAHVwcGVyAGluIEpzb246OlZhbHVlOjpkdXBsaWNhdGVBbmRQcmVmaXhTdHJpbmdWYWx1ZSgpOiBGYWlsZWQgdG8gYWxsb2NhdGUgc3RyaW5nIHZhbHVlIGJ1ZmZlcgBpbiBKc29uOjpWYWx1ZTo6ZHVwbGljYXRlU3RyaW5nVmFsdWUoKTogRmFpbGVkIHRvIGFsbG9jYXRlIHN0cmluZyB2YWx1ZSBidWZmZXIAY3VycmVudCA+PSBidWZmZXIARXhwaXJlQnVmZmVyAE9jdG9iZXIATm92ZW1iZXIAU2VwdGVtYmVyAERlY2VtYmVyAGlvc19iYXNlOjpjbGVhcgBNYXIAcQAvVXNlcnMvYnl0ZWRhbmNlL0RvY3VtZW50cy/ngrnmkq0vdHRsaWNlbnNlMi9QYW5kb3JhL3R0bGljZW5zZTIvc3JjL21haW4vam5pL3NvdXJjZS91dGlsL2pzb25jcHAuY3BwAC9lbXNkay9lbXNjcmlwdGVuL3N5c3RlbS9saWIvbGliY3h4YWJpL3NyYy9wcml2YXRlX3R5cGVpbmZvLmNwcABmdWxsLXN0b3AAU2VwACVJOiVNOiVTICVwAHR3bwB6ZXJvAFN1bgBKdW4AY2FycmlhZ2UtcmV0dXJuAHNlbWljb2xvbgByc2FFbmNyeXB0aW9uAHN0ZDo6ZXhjZXB0aW9uAHByZW1pdW1fZWRpdGlvbgBlbnRlcnByaXNlX2VkaXRpb24Abm9uZV9lZGl0aW9uAHN0YW5kYXJkX2VkaXRpb24ARWRpdGlvbgBNaXNzaW5nICcsJyBvciAnXScgaW4gYXJyYXkgZGVjbGFyYXRpb24ATWlzc2luZyAnLCcgb3IgJ30nIGluIG9iamVjdCBkZWNsYXJhdGlvbgA6IG5vIGNvbnZlcnNpb24ARmlsZVZlcnNpb24ATW9uAFdpbGRjYXJkRG9tYWluAHBlcmNlbnQtc2lnbgBwbHVzLXNpZ24AZXF1YWxzLXNpZ24AbnVtYmVyLXNpZ24AZG9sbGFyLXNpZ24AbGVzcy10aGFuLXNpZ24AZ3JlYXRlci10aGFuLXNpZ24Ac2V2ZW4AaHlwaGVuAG5hbgBKYW4AYWxudW0ASnVsAGNudHJsAHN0b3VsbABudWxsAEFwcmlsAENoYW5uZWwAYXN0ZXJpc2sAcXVlc3Rpb24tbWFyawBxdW90YXRpb24tbWFyawBleGNsYW1hdGlvbi1tYXJrAGJsYW5rAGoARnJpAGJhZF9hcnJheV9uZXdfbGVuZ3RoAGJhY2tzbGFzaABncmFwaABNYXJjaABBdWcAaW4gSnNvbjo6VmFsdWU6OmR1cGxpY2F0ZUFuZFByZWZpeFN0cmluZ1ZhbHVlKCk6IGxlbmd0aCB0b28gYmlnIGZvciBwcmVmaXhpbmcAYmFzaWNfc3RyaW5nAFR5cGUgaXMgbm90IGNvbnZlcnRpYmxlIHRvIHN0cmluZwBFbXB0eSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAEJhZCBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nAHZhbHVlVG9TdHJpbmcAJSUuJWRnAGluZgAwMTIzNDU2Nzg5YWJjZGVmACUuMExmACVMZgBzaXplAGluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKGludCBpbmRleCk6IGluZGV4IGNhbm5vdCBiZSBuZWdhdGl2ZQBmaXZlAHRydWUAflZhbHVlAGluIEpzb246OlZhbHVlOjpvcGVyYXRvcltdKEFycmF5SW5kZXgpOiByZXF1aXJlcyBhcnJheVZhbHVlAGluIEpzb246OlZhbHVlOjpyZXNvbHZlUmVmZXJlbmNlKGtleSwgZW5kKTogcmVxdWlyZXMgb2JqZWN0VmFsdWUAaW4gSnNvbjo6VmFsdWU6OmFzQ1N0cmluZygpOiByZXF1aXJlcyBzdHJpbmdWYWx1ZQBUdWUAbGljZW5zZQBmYWxzZQB1bmRlcnNjb3JlAFVua25vd24gZXJyb3IgdHlwZQBUeXBlAEp1bmUAb25lAG5pbmUAbmV3bGluZQBsb3ctbGluZQB2ZXJ0aWNhbC1saW5lAFN0YXJ0VGltZQBFeHBpcmVUaW1lAE1pc3NpbmcgJ30nIG9yIG9iamVjdCBtZW1iZXIgbmFtZQBNaXNzaW5nICc6JyBhZnRlciBvYmplY3QgbWVtYmVyIG5hbWUAUGFja2FnZU5hbWUAYXBvc3Ryb3BoZQBMYXJnZXN0SW50IG91dCBvZiBVSW50IHJhbmdlAExhcmdlc3RVSW50IG91dCBvZiBVSW50IHJhbmdlAGRvdWJsZSBvdXQgb2YgVUludCByYW5nZQBMYXJnZXN0SW50IG91dCBvZiBJbnQgcmFuZ2UATGFyZ2VzdFVJbnQgb3V0IG9mIEludCByYW5nZQBkb3VibGUgb3V0IG9mIEludCByYW5nZQA6IG91dCBvZiByYW5nZQB0aHJlZQB0aWxkZQByaWdodC1icmFjZQBsZWZ0LWJyYWNlAGJhY2tzcGFjZQBwZXJpb2QAYW1wZXJzYW5kACUwKmxsZAAlKmxsZABjaGVjayBmaWxlVmVyc2lvbiBmYWlsZWQhIHRtcEZpbGVWZXJzaW9uOiVsbGQsZmlsZVZlcnNpb246JWxsZABtRmVhdHVyZXNbal0uTmFtZTolcywgbUZlYXR1cmVzW2pdLlN0YXJ0VGltZTolbGxkAGZlYXR1cmU6JXMgZXhwaXJlZCwgcGxlYXNlIHVwZGF0ZSEgY3VycmVudFRpbWU6JWxsZCxleHBpcmVUaW1lOiVsbGQAbW9kdWxlOiVzIGV4cGlyZWQsIHBsZWFzZSB1cGRhdGUhIGN1cnJlbnRUaW1lOiVsbGQsZXhwaXJlVGltZTolbGxkACslbGxkACUrLjRsZABsb2NhbGUgbm90IHN1cHBvcnRlZABhc3NlcnQganNvbiBmYWlsZWQAbXV0ZXggbG9jayBmYWlsZWQAY2xvY2tfZ2V0dGltZShDTE9DS19SRUFMVElNRSkgZmFpbGVkAGZvcm0tZmVlZABXZWQAYWRkZGRkZGRkZABCdW5kbGVJZABMaWNlbnNlSW5mb1slZF0tLS0tLS0+IGlkOiVzLCBmZWF0dXJlX25hbWU6JXMsIGZlYXR1cmVfZXhwaXJlX3Q6JWxsZCwgZmVhdHVyZV9zdGF0dXM6JWQATGljZW5zZUluZm9bJWRdLS0tLS0tPiBpZDolcywgbW9kdWxlX25hbWU6JXMsIG1vZHVsZV9leHBpcmVfdDolbGxkLCBtb2RsZV9zdGF0dXM6JWQAbGljZW5zZSBzaXplOiVkACVZLSVtLSVkAG1MaWNlbnNlU3RhdHVzWyVzXSA9PSAlZABzdGQ6OmJhZF9hbGxvYwBEZWMARmViAHZlcnRpY2FsLXRhYgBjb21tYQBhbHBoYQBjb2xsZWN0Q29tbWVudHNfAFtMSUNFTlNFX0xPR10AWgAlYSAlYiAlZCAlSDolTTolUyAlWQBQT1NJWABXAFYAVQBUACVIOiVNOiVTAFIAUQBQAE8ATmFOAE5BTgBQTQBBTQAlSDolTQBOVUwATENfQUxMAEsASgBBU0NJSQBIAExBTkcASU5GAEUAUHJvYy1UeXBlOiA0LEVOQ1JZUFRFRABDAEIAUlNBAGNhdGNoaW5nIGEgY2xhc3Mgd2l0aG91dCBhbiBvYmplY3Q/AG9wZXJhdG9yPT0AOgAtMWUrOTk5OQAwMTIzNDU2Nzg5AEMuVVRGLTgAMTI3LjAuMC4xAC4wAGxlbiA+PSAwAGxhc3RWYWx1ZV8gIT0gMABBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvAGluIEpzb246OlZhbHVlOjpzZXRDb21tZW50KCk6IENvbW1lbnRzIG11c3Qgc3RhcnQgd2l0aCAvAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBtaXNtYXRjaGVkIHsgYW5kIH0uAFZhbHVlIGlzIG5vdCBjb252ZXJ0aWJsZSB0byBVSW50LgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gSW50LgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCBjaGFyYWN0ZXIgcmFuZ2UsIHN1Y2ggYXMgW2ItYV0gaW4gbW9zdCBlbmNvZGluZ3MuAGFkZGl0aW9uYWwgc2l4IGNoYXJhY3RlcnMgZXhwZWN0ZWQgdG8gcGFyc2UgdW5pY29kZSBzdXJyb2dhdGUgcGFpci4AJyBpcyBub3QgYSBudW1iZXIuAEFuIGVtcHR5IHJlZ2V4IGlzIG5vdCBhbGxvd2VkIGluIHRoZSBQT1NJWCBncmFtbWFyLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCByYW5nZSBpbiBhIHt9IGV4cHJlc3Npb24uAFRoZSBwYXJzZXIgZGlkIG5vdCBjb25zdW1lIHRoZSBlbnRpcmUgcmVndWxhciBleHByZXNzaW9uLgBPbmUgb2YgKj8reyB3YXMgbm90IHByZWNlZGVkIGJ5IGEgdmFsaWQgcmVndWxhciBleHByZXNzaW9uLgBUaGUgY29tcGxleGl0eSBvZiBhbiBhdHRlbXB0ZWQgbWF0Y2ggYWdhaW5zdCBhIHJlZ3VsYXIgZXhwcmVzc2lvbiBleGNlZWRlZCBhIHByZS1zZXQgbGV2ZWwuAEEgdmFsaWQgSlNPTiBkb2N1bWVudCBtdXN0IGJlIGVpdGhlciBhbiBhcnJheSBvciBhbiBvYmplY3QgdmFsdWUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGVzY2FwZWQgY2hhcmFjdGVyLCBvciBhIHRyYWlsaW5nIGVzY2FwZS4AVGhlcmUgd2FzIGluc3VmZmljaWVudCBtZW1vcnkgdG8gY29udmVydCB0aGUgZXhwcmVzc2lvbiBpbnRvIGEgZmluaXRlIHN0YXRlIG1hY2hpbmUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGNvbGxhdGluZyBlbGVtZW50IG5hbWUuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBhbiBpbnZhbGlkIGNoYXJhY3RlciBjbGFzcyBuYW1lLgBWYWx1ZSBpcyBub3QgY29udmVydGlibGUgdG8gZG91YmxlLgBUaGVyZSB3YXMgaW5zdWZmaWNpZW50IG1lbW9yeSB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgcmVndWxhciBleHByZXNzaW9uIGNvdWxkIG1hdGNoIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIHNlcXVlbmNlLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgYW4gaW52YWxpZCBiYWNrIHJlZmVyZW5jZS4AQW4gaW52YWxpZCByZWdleCBncmFtbWFyIGhhcyBiZWVuIHJlcXVlc3RlZC4AU3ludGF4IGVycm9yOiB2YWx1ZSwgb2JqZWN0IG9yIGFycmF5IGV4cGVjdGVkLgBCYWQgdW5pY29kZSBlc2NhcGUgc2VxdWVuY2UgaW4gc3RyaW5nOiBoZXhhZGVjaW1hbCBkaWdpdCBleHBlY3RlZC4AQmFkIHVuaWNvZGUgZXNjYXBlIHNlcXVlbmNlIGluIHN0cmluZzogZm91ciBkaWdpdHMgZXhwZWN0ZWQuAFRoZSBleHByZXNzaW9uIGNvbnRhaW5lZCBtaXNtYXRjaGVkIFsgYW5kIF0uAC4qLgBFeGNlZWRlZCBzdGFja0xpbWl0IGluIHJlYWRWYWx1ZSgpLgBUaGUgZXhwcmVzc2lvbiBjb250YWluZWQgbWlzbWF0Y2hlZCAoIGFuZCApLgAtLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQAtLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0ALioAKG51bGwpAF4oACcAJQApJABlcnJvciBjb250ZW50IG9yIHNpZ24gaXMgZW1wdHkhAGVycm9yIGxpY2Vuc2UgaXMgZW1wdHkhAGNvbnRlbnQgYmFzZTY0IGZhaWwhAHNpZ24gYmFzZTY0IGZhaWwhAGVycm9yIHBhY2thZ2VOYW1lOiVzLCBsaWNlbnNlUGFja2FnZU5hbWU6JXMgbm90IG1hdGNoIQBQdXJlIHZpcnR1YWwgZnVuY3Rpb24gY2FsbGVkIQBTaWduIGNvbXBhcmUgcGFzc2VkISEhAFNpZ24gY29tcGFyZSBmYWlsZWQhISEAS2V5IGlzIG5vdCBhbiBSU0Ega2V5CgBmYWlsZWQKICAhIHJzYV9wa2NzMV9kZWNyeXB0IHJldHVybmVkICVkCgBwYXNzZWQhCgAJACqGSIb3DQEBAQBBoDMLwgMtLS0tLUJFR0lOIFBVQkxJQyBLRVktLS0tLQpNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQTRNeUtKYjVuZTVCWGZHd2N3K09ZCjJoOWx1TEFTRFFKeWx3VklXcUljSVQ5Z3ZpN3pVdWNJcndWWXdqUmdOZmVmV1M0bkhodXZxUTErRlR5ZU9acFMKU1N1UG5IMEN4QVZyN1hRSEN6R3J4NWVBMnRHUXJoeTVCaktUa2o0Q2NXWUV1d2FEZG9BM05aTURoc0Z5NkZkYQpuWDRBU0RjekVrc0I2Ly9zNHNIOFF5NWtDbmw1b2h3TG1RbVRTdEtIT0QxN1hiM2ZzT2dXdVlLK3hVVEVPWkFUClRlRE9pOXF4QVkyMTBJd01vaW1mNFlkM0tWNytZN2lWZ1pTaDVXSkV5MmM2YXlDdjVnbXRaWElaQThvNFA0SjMKSHZCRlluNHZsODRETmljYVgxMEhCdkJ2VjRNUDQwOGhRZTdRWTNXUlN0UXhpa0dBUG9nN085VW5LT3VNNnhEcQptd0lEQVFBQgotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0AQaQ7C90VuB0AAAkAAAAKAAAACwAAAAwAAADAXwAAxB0AAOAdAABOU3QzX18yMTFfX2VuZF9zdGF0ZUljRUUAAAAAmF8AAOgdAABOU3QzX18yNl9fbm9kZUljRUUAAAAAAADgHQAADQAAAA4AAAAPAAAADAAAAAAAAAAwHgAAEAAAABEAAAASAAAAEwAAABQAAADAXwAAPB4AAHxaAABOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTlNfMTNfX2VtcHR5X3N0YXRlSWNFRU5TXzEwc2hhcmVkX3B0cklTMl9FMjdfX3NoYXJlZF9wdHJfZGVmYXVsdF9kZWxldGVJUzJfUzJfRUVOU185YWxsb2NhdG9ySVMyX0VFRUUAAAAAwF8AANAeAAAkHwAATlN0M19fMjEwc2hhcmVkX3B0cklOU18xM19fZW1wdHlfc3RhdGVJY0VFRTI3X19zaGFyZWRfcHRyX2RlZmF1bHRfZGVsZXRlSVMyX1MyX0VFAAAAmF8AACwfAABOU3QzX18yMTRkZWZhdWx0X2RlbGV0ZUlOU18xM19fZW1wdHlfc3RhdGVJY0VFRUUAAAAAAAAAAHgfAAAVAAAAFgAAABcAAAAMAAAAwF8AAIQfAACgHwAATlN0M19fMjEzX19lbXB0eV9zdGF0ZUljRUUAAMBfAACsHwAAzB8AAE5TdDNfXzIxNl9fb3duc19vbmVfc3RhdGVJY0VFAAAAwF8AANgfAADgHQAATlN0M19fMjE1X19oYXNfb25lX3N0YXRlSWNFRQAAAAAAAAAAoB8AABgAAAAZAAAADwAAAAwAAAAAAAAAzB8AABoAAAAbAAAADwAAAAwAAAAAAAAAQCAAABwAAAAdAAAAHgAAAAwAAADAXwAATCAAAKAfAABOU3QzX18yMjBfX2xfYW5jaG9yX211bHRpbGluZUljRUUAAAAAAAAAiCAAAB8AAAAgAAAAIQAAAAwAAADAXwAAlCAAAKAfAABOU3QzX18yMjBfX3JfYW5jaG9yX211bHRpbGluZUljRUUAAAAAAAAA0CAAACIAAAAjAAAAJAAAAAwAAADAXwAA3CAAAKAfAABOU3QzX18yMTVfX3dvcmRfYm91bmRhcnlJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAACghAAAlAAAAJgAAACcAAAAMAAAAwF8AADQhAACgHwAATlN0M19fMjExX19sb29rYWhlYWRJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAAHwhAAAoAAAAKQAAACoAAAAMAAAAwF8AAIghAACgHwAATlN0M19fMjIzX19tYXRjaF9hbnlfYnV0X25ld2xpbmVJY0VFAAAAAAAAAADIIQAAKwAAACwAAAAtAAAADAAAAMBfAADUIQAAoB8AAE5TdDNfXzIxOF9fbWF0Y2hfY2hhcl9pY2FzZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAAACQiAAAuAAAALwAAADAAAAAMAAAAwF8AADAiAACgHwAATlN0M19fMjIwX19tYXRjaF9jaGFyX2NvbGxhdGVJY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAAAAAAAAgCIAADEAAAAyAAAAMwAAAAwAAADAXwAAjCIAAKAfAABOU3QzX18yMTJfX21hdGNoX2NoYXJJY0VFAAAAAAAAAMAiAAA0AAAANQAAADYAAAAMAAAAwF8AAMwiAACgHwAATlN0M19fMjE2X19iYWNrX3JlZl9pY2FzZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAYIwAANwAAADgAAAA5AAAADAAAAMBfAAAkIwAAoB8AAE5TdDNfXzIxOF9fYmFja19yZWZfY29sbGF0ZUljTlNfMTJyZWdleF90cmFpdHNJY0VFRUUAAAAAAAAAAHQjAAA6AAAAOwAAADwAAAAMAAAAwF8AAIAjAACgHwAATlN0M19fMjEwX19iYWNrX3JlZkljRUUAAAAAALAjAAA9AAAAPgAAAD8AAAAMAAAAwF8AALwjAACgHwAATlN0M19fMjIwX19icmFja2V0X2V4cHJlc3Npb25JY05TXzEycmVnZXhfdHJhaXRzSWNFRUVFAD1dOl0uXQAAAAAAAAAUJAAAQAAAAEEAAABCAAAADAAAAMBfAAAgJAAAoB8AAE5TdDNfXzIyOF9fYmVnaW5fbWFya2VkX3N1YmV4cHJlc3Npb25JY0VFAAAAAAAAAGQkAABDAAAARAAAAEUAAAAMAAAAwF8AAHAkAACgHwAATlN0M19fMjI2X19lbmRfbWFya2VkX3N1YmV4cHJlc3Npb25JY0VFAAAAAACwJAAARgAAAEcAAABIAAAASQAAAMBfAAC8JAAA0CQAAE5TdDNfXzI2X19sb29wSWNFRQAAwF8AANwkAACgHwAATlN0M19fMjE3X19vd25zX3R3b19zdGF0ZXNJY0VFAAAAAAAA0CQAAEoAAABLAAAADwAAAAwAAAAAAAAALCUAAEwAAABNAAAATgAAAAwAAADAXwAAOCUAAMwfAABOU3QzX18yMTdfX3JlcGVhdF9vbmVfbG9vcEljRUUAAAAAAABwJQAATwAAAFAAAABRAAAAUgAAAMBfAAB8JQAA0CQAAE5TdDNfXzIxMV9fYWx0ZXJuYXRlSWNFRQAAAAAAAAAAsCUAAFMAAABUAAAAVQAAAAwAAADAXwAAvCUAAMwfAABOU3QzX18yMjFfX2VtcHR5X25vbl9vd25fc3RhdGVJY0VFAAAAAAAA+CUAAFYAAABXAAAAWAAAAAwAAADAXwAABCYAAKAfAABOU3QzX18yMTFfX21hdGNoX2FueUljRUUAAAAAmC+KQpFEN3HP+8C1pdu16VvCVjnxEfFZpII/ktVeHKuYqgfYAVuDEr6FMSTDfQxVdF2+cv6x3oCnBtybdPGbwcFpm+SGR77vxp3BD8yhDCRvLOktqoR0StypsFzaiPl2UlE+mG3GMajIJwOwx39Zv/ML4MZHkafVUWPKBmcpKRSFCrcnOCEbLvxtLE0TDThTVHMKZbsKanYuycKBhSxykqHov6JLZhqocItLwqNRbMcZ6JLRJAaZ1oU1DvRwoGoQFsGkGQhsNx5Md0gntbywNLMMHDlKqthOT8qcW/NvLmjugo90b2OleBR4yIQIAseM+v++kOtsUKT3o/m+8nhxxv////////9///////////8AAAAAAAAAgP///38AAAAAnCcAAG8AAAB0AAAAdQAAAAAAAAB4JwAAXwAAAHYAAAB1AAAAAAAAALwnAABmAAAAdwAAAHUAAADAXwAAhCcAAJwnAABONEpzb24xMlJ1bnRpbWVFcnJvckUAAADAXwAAqCcAAKxgAABONEpzb245RXhjZXB0aW9uRQAAAMBfAADIJwAAnCcAAE40SnNvbjEwTG9naWNFcnJvckUAAAAAAH9/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f39/f38+f39/PzQ1Njc4OTo7PD1/f39Af39/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBl/f39/f38aGxwdHh8gISIjJCUmJygpKissLS4vMDEyM39/f39/AQAAADwRAAB4AAAAeQAAAHoAAAB7AAAAfAAAAH0AAAB+AEGQ0QALEYwZAAAJAAAARwgAADwRAAABAEHA0QALQRkACwAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQAKChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZAEGR0gALIQ4AAAAAAAAAABkACw0ZGRkADQAAAgAJDgAAAAkADgAADgBBy9IACwEMAEHX0gALFRMAAAAAEwAAAAAJDAAAAAAADAAADABBhdMACwEQAEGR0wALFQ8AAAAEDwAAAAAJEAAAAAAAEAAAEABBv9MACwESAEHL0wALHhEAAAAAEQAAAAAJEgAAAAAAEgAAEgAAGgAAABoaGgBBgtQACw4aAAAAGhoaAAAAAAAACQBBs9QACwEUAEG/1AALFRcAAAAAFwAAAAAJFAAAAAAAFAAAFABB7dQACwEWAEH51AALqAwVAAAAABUAAAAACRYAAAAAABYAABYAADAxMjM0NTY3ODlBQkNERUbRdJ4AV529KoBwUg///z4nCgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUYAAAANQAAAHEAAABr////zvv//5K///8AAAAAAAAAAP////////////////////////////////////////////////////////////////8AAQIDBAUGBwgJ/////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAECBAcDBgUAAAAAAAAAAgAAwAMAAMAEAADABQAAwAYAAMAHAADACAAAwAkAAMAKAADACwAAwAwAAMANAADADgAAwA8AAMAQAADAEQAAwBIAAMATAADAFAAAwBUAAMAWAADAFwAAwBgAAMAZAADAGgAAwBsAAMAcAADAHQAAwB4AAMAfAADAAAAAswEAAMMCAADDAwAAwwQAAMMFAADDBgAAwwcAAMMIAADDCQAAwwoAAMMLAADDDAAAww0AANMOAADDDwAAwwAADLsBAAzDAgAMwwMADMMEAAzbAAAAAPQtAACDAAAAhAAAAIUAAACGAAAAhwAAAIgAAACJAAAAigAAAIsAAACMAAAAjQAAAI4AAACPAAAAkAAAAAgAAAAAAAAAMC4AAJEAAACSAAAA+P////j///8wLgAAkwAAAJQAAAAYLQAALC0AAAQAAAAAAAAAeC4AAJUAAACWAAAA/P////z///94LgAAlwAAAJgAAABILQAAXC0AAAAAAADALgAAmQAAAJoAAACFAAAAhgAAAJsAAACcAAAAiQAAAIoAAACLAAAAnQAAAI0AAACeAAAAjwAAAJ8AAAAAAAAAvC0AAKAAAAChAAAAwF8AAMgtAACIMAAATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUAAACYXwAA/C0AAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1ZkljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQAAAAAcYAAASC4AAAAAAAABAAAAvC0AAAP0//9OU3QzX18yMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAAAcYAAAkC4AAAAAAAABAAAAvC0AAAP0//9OU3QzX18yMTNiYXNpY19vc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAADAXwAAzC4AAPQtAABOU3QzX18yMTViYXNpY19zdHJpbmdidWZJY05TXzExY2hhcl90cmFpdHNJY0VFTlNfOWFsbG9jYXRvckljRUVFRQAAADgAAAAAAAAAcC8AAKIAAACj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",self.location).href},J=function(e){var A;null===(A=t.onAbort)||void 0===A||A.call(t,e),m(e="Aborted("+e+")"),R=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw r(n),n},H=function(e){var A;if(x--,null===(A=t.monitorRunDependencies)||void 0===A||A.call(t,x),0==x&&Y){var n=Y;Y=null,n()}},P=function(e){var A;x++,null===(A=t.monitorRunDependencies)||void 0===A||A.call(t,x)},K=function(){if(t.postRun)for("function"==typeof t.postRun&&(t.postRun=[t.postRun]);t.postRun.length;)oe(t.postRun.shift());re(ie)},U=function(){},L=function(){je.j()},N=function(){if(t.preRun)for("function"==typeof t.preRun&&(t.preRun=[t.preRun]);t.preRun.length;)se(t.preRun.shift());re(ae)},F=function(){var e=w.buffer;t.HEAP8=S=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAPU8=M=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAP32=G=new Int32Array(e),t.HEAPU32=_=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e),t.HEAP64=b=new BigInt64Array(e),t.HEAPU64=new BigUint64Array(e)},d=function(e){return t.locateFile?t.locateFile(e,C):C+e},t=eA.length>0&&void 0!==eA[0]?eA[0]:{},i=new Op((function(e,A){n=e,r=A})),o="object"==("undefined"==typeof window?"undefined":wc(window)),a="undefined"!=typeof WorkerGlobalScope,!(s="object"==("undefined"==typeof process?"undefined":wc(process))&&"object"==wc(process.versions)&&"string"==typeof process.versions.node&&"renderer"!=process.type)){e.next=35;break}return e.next=32,Promise.resolve().then((function(){return VtA}));case 32:g=e.sent,c=g.createRequire,l=c("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href);case 35:return u=sy({},t),I="./this.program",h=function(e,A){throw A},C="",s?(p=l("fs"),v=l("path"),yT(B="undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href).call(B,"data:")||(C=v.dirname(l("url").fileURLToPath("undefined"==typeof document&&"undefined"==typeof location?require("url").pathToFileURL(__filename).href:"undefined"==typeof document?location.href:document.currentScript&&document.currentScript.src||new URL("umd/veplayer.production.js",document.baseURI).href))+"/"),f=function(e){return e=T(e)?new Xb(e):e,p.readFileSync(e)},E=function(){var e=aE(iE().mark((function e(A){var t,n,r=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=!(r.length>1&&void 0!==r[1])||r[1],A=T(A)?new Xb(A):A,n=p.readFileSync(A,t?void 0:"utf8"),e.abrupt("return",n);case 4:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}(),!t.thisProgram&&process.argv.length>1&&(I=process.argv[1].replace(/\\/g,"/")),Xp(Q=process.argv).call(Q,2),h=function(e,A){throw process.exitCode=e,A}):(o||a)&&(a?C=self.location.href:"undefined"!=typeof document&&document.currentScript&&(C=document.currentScript.src),Kle&&(C=Kle),C=yT(C).call(C,"blob:")?"":Xp(C).call(C,0,SL(y=C.replace(/[?#].*/,"")).call(y,"/")+1),a&&(f=function(e){var A=new XMLHttpRequest;return A.open("GET",e,!1),A.responseType="arraybuffer",A.send(null),new Uint8Array(A.response)}),E=function(){var e=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!T(A)){e.next=2;break}return e.abrupt("return",new Op((function(e,t){var n=new XMLHttpRequest;n.open("GET",A,!0),n.responseType="arraybuffer",n.onload=function(){200==n.status||0==n.status&&n.response?e(n.response):t(n.status)},n.onerror=t,n.send(null)})));case 2:return e.next=4,fetch(A,{credentials:"same-origin"});case 4:if(!(t=e.sent).ok){e.next=7;break}return e.abrupt("return",t.arrayBuffer());case 7:throw new Error(t.status+" : "+t.url);case 8:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}()),t.print||console.log.bind(console),m=t.printErr||console.error.bind(console),sy(t,u),u=null,t.arguments&&t.arguments,t.thisProgram&&(I=t.thisProgram),D=t.wasmBinary,R=!1,T=function(e){return yT(e).call(e,"file://")},x=0,Y=null,ne=NE((function e(A){GE(this,e),LE(this,"name","ExitStatus"),this.message="Program terminated with exit(".concat(A,")"),this.status=A})),re=function(e){for(;e.length>0;)e.shift()(t)},ie=[],oe=function(e){return ie.unshift(e)},ae=[],se=function(e){return ae.unshift(e)},ge=function(e){for(var A=0,t=0;t=55296&&n<=57343?(A+=4,++t):A+=3}return A},ce=t.noExitRuntime||!0,le=function(e){return qe(e)},ue=function(){return We()},Ie=function(e,A,t,n){if(!(n>0))return 0;for(var r=t,i=t+n-1,o=0;o=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),a<=127){if(t>=i)break;A[t++]=a}else if(a<=2047){if(t+1>=i)break;A[t++]=192|a>>6,A[t++]=128|63&a}else if(a<=65535){if(t+2>=i)break;A[t++]=224|a>>12,A[t++]=128|a>>6&63,A[t++]=128|63&a}else{if(t+3>=i)break;A[t++]=240|a>>18,A[t++]=128|a>>12&63,A[t++]=128|a>>6&63,A[t++]=128|63&a}}return A[t]=0,t-r},he=function(e,A,t){return Ie(e,M,A,t)},Ce="undefined"!=typeof TextDecoder?new TextDecoder:void 0,de=function(e){for(var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=A+(arguments.length>2&&void 0!==arguments[2]?arguments[2]:NaN),n=A;e[n]&&!(n>=t);)++n;if(n-A>16&&e.buffer&&Ce)return Ce.decode(e.subarray(A,n));for(var r="";A>10,56320|1023&s)}}else r+=String.fromCharCode((31&i)<<6|o)}else r+=String.fromCharCode(i)}return r},Ee=function(e,A){return e?de(M,e,A):""},fe=function(e,A,t,n){return J("Assertion failed: ".concat(Ee(e),", at: ")+[A?Ee(A):"unknown filename",t,n?Ee(n):"unknown function"])},Be=function(){function e(A){GE(this,e),this.excPtr=A,this.ptr=A-24}return NE(e,[{key:"set_type",value:function(e){_[this.ptr+4>>2]=e}},{key:"get_type",value:function(){return _[this.ptr+4>>2]}},{key:"set_destructor",value:function(e){_[this.ptr+8>>2]=e}},{key:"get_destructor",value:function(){return _[this.ptr+8>>2]}},{key:"set_caught",value:function(e){e=e?1:0,S[this.ptr+12]=e}},{key:"get_caught",value:function(){return 0!=S[this.ptr+12]}},{key:"set_rethrown",value:function(e){e=e?1:0,S[this.ptr+13]=e}},{key:"get_rethrown",value:function(){return 0!=S[this.ptr+13]}},{key:"init",value:function(e,A){this.set_adjusted_ptr(0),this.set_type(e),this.set_destructor(A)}},{key:"set_adjusted_ptr",value:function(e){_[this.ptr+16>>2]=e}},{key:"get_adjusted_ptr",value:function(){return _[this.ptr+16>>2]}}]),e}(),Qe=function(e,A,t){throw new Be(e).init(A,t),e},pe=function(){return J("")},ve=function(e,A,t,n){var r=(new Date).getFullYear(),i=new Date(r,0,1),o=new Date(r,6,1),a=i.getTimezoneOffset(),s=o.getTimezoneOffset(),g=Math.max(a,s);_[e>>2]=60*g,G[A>>2]=Number(a!=s);var c=function(e){var A,t,n,r,i=e>=0?"-":"+",o=Math.abs(e),a=Om(A=String(Math.floor(o/60))).call(A,2,"0"),s=Om(t=String(o%60)).call(t,2,"0");return xf(n=xf(r="UTC".concat(i)).call(r,a)).call(n,s)},l=c(a),u=c(s);s=0&&e<=3},Re=function(e){return e<-9007199254740992||e>9007199254740992?NaN:Number(e)},Se=function(e){J("OOM")},Me=function(e){M.length,Se()},Ge={},_e=function(){return I||"./this.program"},be=function e(){if(!e.strings){var A={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:("object"==("undefined"==typeof navigator?"undefined":wc(navigator))&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",_:_e()};for(var t in Ge)void 0===Ge[t]?delete A[t]:A[t]=Ge[t];var n=[];for(var t in A){var r;n.push(xf(r="".concat(t,"=")).call(r,A[t]))}e.strings=n}return e.strings},Te=function(e,A){for(var t=0;t>2]=i,Te(n,i),t+=n.length+1})),0},Ne=function(e,A){var t=be();_[e>>2]=t.length;var n=0;return t.forEach((function(e){return n+=e.length+1})),_[A>>2]=n,0},Le=function(){return ce||!1},Ue=function(e){var A;k=e,Le()||(null===(A=t.onExit)||void 0===A||A.call(t,e),R=!0),h(e,new ne(e))},Ke=function(e,A){k=e,Ue(e)},xe=function(e){if(e instanceof ne||"unwind"==e)return k;h(1,e)},Ye=function(e){return t["_"+e]},Pe=function(e,A){S.set(e,A)},He=function(e){return Ve(e)},Je=function(e){var A=ge(e)+1,t=He(A);return he(e,t,A),t},Oe=function(e,A,t,n,r){var i={string:function(e){var A=0;return null!=e&&0!==e&&(A=Je(e)),A},array:function(e){var A=He(e.length);return Pe(e,A),A}},o=Ye(e),a=[],s=0;if(n)for(var g=0;g0;)t.preInit.pop()();return $e(),A=i,e.abrupt("return",A);case 120:case"end":return e.stop()}}),e)})))),Hle=Ple,Jle=function(e){return e.EDITION_STANDARD="standard_edition",e.EDITION_PREMIUM="premium_edition",e.EDITION_NONE="none_edition",e}(Jle||{}),Ole=function(e){return e.H265="h265",e.PRELOAD="preload",e.RTM="rtm",e.RTM_ADAPTIVE_BUFFER="rtmAdaptiveBuffer",e.ABR="abr",e.FLV_LOW_LATENCY="flvLowLatency",e}(Ole||{}),zle=function(e){return e[e.LICENSE_STATUS_INVALID=0]="LICENSE_STATUS_INVALID",e[e.LICENSE_STATUS_OK=1]="LICENSE_STATUS_OK",e[e.LICENSE_STATUS_EXPIRED=2]="LICENSE_STATUS_EXPIRED",e[e.LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH=401]="LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH",e[e.LICENSE_STATUS_ERROR_PARAM_MODULE_NAME=403]="LICENSE_STATUS_ERROR_PARAM_MODULE_NAME",e}(zle||{}),jle="__veplayer_license_info__",Xle=function(){function e(){GE(this,e),LE(this,"fetchOriginLicenseFlag",!1),LE(this,"fetchPromise",void 0),LE(this,"initModulePromise",void 0),LE(this,"_Module",void 0),LE(this,"logoPngBase64","data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAAA0CAYAAADc3zcIAAAACXBIWXMAACE4AAAhOAFFljFgAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAt7SURBVHgB7V3LbttIFr2S5SQTDMaajbPppBlgejmIF7NvZmfkAbu/oO0fGDtfEHk1SztfEPsLIsOJk82glS9oNdC7XoSdNDpoYwZQBuhJ/JA454pVUrFUpFgk9YinDkCILBVLNHlv3XNuFctE08TfwwZthd+Rg8OcoErTxRqF5NN2WCcHhznA9BwgMvoVcbRCDg5zgOk5wAV6fokerZODwxxgeg5QVRygQnfIwWEOMD0HUI0+BAVyOsBhDjAdB2BjD5UIQKTqAQeHmWFaEWDU2Hsxh3BwmAmm4wAm0Vuhr8nBYcaYjgOYRK/TAQ5zgMk7wCj/l3A6wGHmmEYESDZypwMcZozJO0DaoJfTAQ4zxuQdIG3Qy+kAhxnD3gHYYLdDP3PdMJXmOB3gMFPYO0AXlKZH32Xsuccbd9c5gMPsYO8AVVrrf3YzTGjLInJlew4OM0AeDRD12JUMPXcWkRu6COAwO9g5wHa4AoP1xNH4njvMlObMrikcHEqGnQPE+bo3ogPev/exef19G6N2OsBhRrBzgOoIpfFjR2H4lHq9x/19m0EupwMcZoQa2cGPHUVG3uzvc8/f63nYY3G82ef/IWXDHOuABw8eNOR+GIadFy9e7JHDpUF2B9gOYeAD/h9BFbndrk+VCu/V+87wD6tpDpEO2Ku0aI6wurrqwegfa8UzcYD19fX62dnZ9/K4UqkEcMa7VALg5D7lRK1WC5rNZqCX379/fxv3bkspOjw+Pt42tXHv3r2VarVa7/V6bE8byld7KP9BHqC9XWx92s1/P7YdcQ1tXENH/C6vOuKL+vybqdnK7A7QRaMVrUyO5O5VOriioTP8eG2XbBHpgBY5GPHp06f6wsKCRyWDjR+GknupmvPz833iiK8BxsmG6ilFS0ltoC4btl+p6AZGeyjX68pd7px83rm4uOCOoIVOwsP1+ErdO2oE1wGHa2Z3gGoipfGJaVCl4pO82G6Ol94r/Xbivevbt+tot0M3b7bIwSEB3W63zo4M43+qfWWK4AOgQwlsNIBvLGUd8P59W/D/CLdOKQdGxwyq1cfYOLS1qCQwlUCPMdAcSSE8D2Qoz9o26m+gvqfU35OhvCgErfGVotbz589bNIeAkR7gPrzGp0dxO2ihF/9ZOV6TFAjo4LtD3oEhr6QZehqyOYCJ/0uwDuh226SGr6VutH1YIAvU++MMe5V2/ygS1Rh3CDv05k2dbt8uxTDQS3CU+VY5DvBxm0oAHsj3asiGozFHbaTU/1aGcVG/ReU5u68ahaAOLb0S82dxnVlxB+2WuqwNePo+OoMGDY2/jbJvDFUbpvO5I1HpE/ZboDcHah042Jp63djfxLNvZXMAE/8ftATu/rG2Rte78fKbiAIfrpMVuv0eK3KA8/MVuDbv1fGUStMHuDkdjVd6VAI4suCGxso4a0RzDhFxGlnrC2Mr1QE4cnJnQMNn4UHMZs0h7uM+vxb7AbYniHQjiQpERI9oSM3Z6fgz2zhAdcyUhnMD5791RtaoKCG7WjXvF8eIUbLxUkGwSNXLqhF9c0gBUzWOnFSgI7py5UpzcXGRo3gL2xpnggziV52WP3gu2SJAWp5+6SKiOzqK64DhvpphKgiExsCQbWDjLWSsoBKenrHAcUAOVsA9e0KSBSQAz4+pnSePRRTrwOg/SEqJzxV0bANNxcfK+YP2xztAxP+THWD5wlxeRAdsBQGucvibfPEl6gAdyK8XjgCc9tMdAM429xFApA6fWpzi0eTAwpZ76pGXqJhOSl2AHl6lSyqa2OTYA1NSdpRHcIwtIbD7UPXBeAe4gPGnEaWvPiV/l1cHID2llZamAxAu2zpX5ywCjel1xqGnZsGGvxXQnAMC2COa3bvZnJmCE/4Zz0TSIN9Ujwe+srQF52gpbWzjmJ1nW6kWMGWSB+M1wMKYeTo3Urh+Xh1g4vyRkRYGuPpIrwzjLSUC6GVlpTQvO/T7xHxebhQJ28zAmMAmJzqUItX42Rl21N8bHwHG8f8kCsTIrwO+NJSzI+5RQbx69SrgXkGFGh4LQA/bATnkgohKfZiopQ5OYpyenrKYrjOFEtrLZLcdHndh4c30FJGgM+oAv/76DF3iDn3xRTs3/5fIqwP+A7qjC2tFxJSAgBQOiZu2RAWhDNDINgP6PMFzjEoZF8mLpKkZIl3KHN9Ty6Hh1mHYWXRMXYyNPOZECFPhuAP88gsPPPH0A56A1C7E/yXy6ICfrhH97Xe9tE7v3vklTYsIKH4Tjc5lyuywaDSN7uKGrqh1XQbIDrh/B9i+TKnSQa/tU3yyXJZ2WyLCe6bv4w7A3Jsfokw7LvT/pVEybmTg+DcQJX4kO/y2aC6PdECLiuNQGzkMTJVCQ9RBqOWykfpoo6m2iTB+SA6ZAQHbGFcH1OWZIdN2qOgvTnFzJqmN8h+gIfYl33/48OE6ytZFlsmTETvuAGH4tfiM0o67Bfi/xFcfif75J7ICRwAzStEBYk5/lnZGEgAVnvQn34FQcHR0tEmXA/W0GZQ6IDrbL1++bFJB6POoEn7rAFF50LGgk+kgg9cfA8A2mBrOTsKdEc/5wt8iy9gx9pU6Rg3gi886/fs67+fn/xLM5a/1kH6xePnstBrphsnqgFToU2sleMge3zUucYanbjOxDEa7T4YOwRa4r8/GJSPwW9zjx47HCeSUtlp4hneHVsn8PxoRjfCvK+k3wSbD85cMWkGHOQpEOmAKEIMoxmtAz7JNDpcCwwgg+b/EyWJ6b2vjAPOpAxIhev+NpO/5TSd1mN2hOBABbCnkrqrReEIcevVG1pPlKP3QAST/l3h7Nfnsq73sFIgxhzogDTD+Z1pRQPEsAg+z81tvnz3v59FT8OTMr1ZyJkbMxZkE/KwVDWnnJbIb0e7Ttprxx5mDn6SMkdmO8H5GOgBijB9u7Dc4RUcRN1bfcd1A3eD4+NhmLv1cwuZFGfzNHk0Gft6XWgRWQgvbWIim27Qji9T5/9sr6WfnGeHNowPMUahOJycTcQI2fhh7QysOOEWH7AOXB+oXXFdMzHIoCPHuRGCxxSCmP2Q+nzNIfF7Uzev8P43+MPI4QB4dwI741/+Oll9c+FRw8poOGDJTmpi45ZsqXrjuz1cBVdg0jFLy20zeZYgEs4RFaroPdfUHBp5LE21YU9KaOHty/F8ij9O8S7iOaM53KTpAmQ7s69/xxCqeOySPxWzDR9iNrXohIoGHgZedst4v/n8COpA3ZAl9jhC/pYZ2fLIAD4DWxN7KIAKUzf8lls/tdQBrAJMOoOL/WUass7MlUpq6oOJBk0foUUby29xTIRKYcuUbPG6Ah7CPAZYD5wjZgXvtkSUMLx/VTTNyx6Em5v94g5LfxkwQzTfDM8LNs7TsjhkcjUZpUKQDlpetaJBYA4f1wxobK48WGgZSAmQ6vgGlSWybNQGG1nm4nSOBp3zlcTRA2w04Ak+NeM3D8llFJl+bHLnUYXrfIG1BK7SVNq/GCI6G6BA2xlS7k3fwKQlygSsb4Br0l2LacpUIizb6I8FxQfnTH9LPWj6n3LiVxwHK0wHhmAWgeD4PxO5mlvz+0dFRc3V1tY1sgpE+iRfH18WkuKyzK3eTjMvwGqcXFljQygSOhlqmayrIMg9IBygnswBPKWrnaaeGOxuf73KymFyb+X9eCsSYUx3AMwbxsWO7bo7QB3fFSgmx91Q/UxSmlpMEjJ61gkclojbC/9NSoHnEb+z8+dEBguc3eVGmogtGiSU29nnGIYfmstfNmQbEsi7W6WX8rT/TFCDoq0fJ1/GBcqCGVMcB0qARX7yAYf4RBvp7goFepeLgAGMbCD5WRx2g17P+g5lr8qoQ2G1DzJaaRmUwLSIxwij1RtraQBi6f6KsaTNR8DqY4+rg/mQeERZtdpK0Es8SBZ3cV44L/Z28/KHang6x4Jk1/gen2mQhMoQueAAAAABJRU5ErkJggg=="),LE(this,"_needExemptions",!1),LE(this,"_licenseSupportModuleList",[]),this._init()}var A,t,n,r,i,o,a,s,g,c;return NE(e,[{key:"licenseSupportModuleList",get:function(){return this._licenseSupportModuleList}},{key:"_init",value:(c=aE(iE().mark((function e(){var A,t,n,r,i,o=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=function(){},console.log("license","_init"),this.initModulePromise=new Op((function(e){A=e})),e.prev=3,e.next=6,Hle();case 6:this._Module=e.sent,i=null===(t=(null===(n=window)||void 0===n?void 0:n.top)||window)||void 0===t||null===(t=t.location)||void 0===t?void 0:t.hostname,null!==(r=this._Module)&&void 0!==r&&r.calledRun?(this.initModule(i),console.log("license","initModule"),A()):this._Module.onRuntimeInitialized=function(){o.initModule(i),A()},e.next=16;break;case 11:e.prev=11,e.t0=e.catch(3),console.error("license module init failed"),A(),this._needExemptions=!0;case 16:case"end":return e.stop()}}),e,this,[[3,11]])}))),function(){return c.apply(this,arguments)})},{key:"initModule",value:(g=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:null===(t=this._Module)||void 0===t||t.ccall("init","null",["string"],[A]),this.checkLocalLicense();case 2:case"end":return e.stop()}}),e,this)}))),function(e){return g.apply(this,arguments)})},{key:"isWasmSupported",value:function(){return"object"===("undefined"==typeof WebAssembly?"undefined":wc(WebAssembly))&&"function"==typeof WebAssembly.instantiate}},{key:"setLicenseConfig",value:(s=aE(iE().mark((function e(A){var t,n,r,i=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if((n="string"==typeof(null==A?void 0:A.license)?null==A?void 0:A.license:null==A||null===(t=A.license)||void 0===t?void 0:t.mainUrl)&&(this.fetchOriginLicenseFlag=!0,this.fetchOrginUrl(n).then((function(e){i.fetchOriginLicenseFlag=!1})).catch((function(e){i.fetchOriginLicenseFlag=!1,console.error("Error fetching data:",e)}))),null==(r=null==A?void 0:A.license)||!r.content||null==r||!r.sign){e.next=7;break}return e.next=6,this.initModulePromise;case 6:this.nativeAddLicense(null==r?void 0:r.content,null==r?void 0:r.sign);case 7:case"end":return e.stop()}}),e,this)}))),function(e){return s.apply(this,arguments)})},{key:"checkLicense",value:(a=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.checkLicenseEdition();case 2:return A=e.sent,e.next=5,this.checkLicenseStatus();case 5:return t=e.sent,e.abrupt("return",{licenseCheckResult:A,licenseStatusResult:t});case 7:case"end":return e.stop()}}),e,this)}))),function(){return a.apply(this,arguments)})},{key:"checkLicenseEdition",value:(o=aE(iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve("premium_edition"));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeGetModuleEdition(),e.abrupt("return",Op.resolve(A));case 9:case"end":return e.stop()}}),e,this)}))),function(){return o.apply(this,arguments)})},{key:"checkLicenseStatus",value:(i=aE(iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve(1));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeCheckSDKAuth(),e.abrupt("return",Op.resolve(A));case 9:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"checkModuleList",value:(r=aE(iE().mark((function e(){var A,t,n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.initModulePromise;case 2:if(!this._needExemptions){e.next=4;break}return e.abrupt("return",Op.resolve(IU(Ole)));case 4:if(!this.fetchOriginLicenseFlag){e.next=7;break}return e.next=7,this.checkHttpLicenseStatus();case 7:return A=this.nativeGetModuleEdition(),t=this.nativeCheckSDKAuth(),n="premium_edition"===A&&1===t?IU(Ole):[],this._licenseSupportModuleList=n,e.abrupt("return",Op.resolve(n));case 12:case"end":return e.stop()}}),e,this)}))),function(){return r.apply(this,arguments)})},{key:"checkLicenseModuleAuth",value:(n=aE(iE().mark((function e(A,t){var n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,this.checkModuleList();case 2:return n=e.sent,e.abrupt("return",Op.resolve(null==n?void 0:PT(n).call(n,t)));case 4:case"end":return e.stop()}}),e,this)}))),function(e,A){return n.apply(this,arguments)})},{key:"addLogoIcon",value:function(e){var A=document.createElement("img");A.setAttribute("src",this.logoPngBase64),A.setAttribute("alt","ERROR_LICENSE_HAS_EXPIRED"),A.className="veplayer-logo",A.setAttribute("style","display: block !important; opacity: 1 !important"),e.appendChild(A)}},{key:"initObserver",value:function(e){var A=this,t=new MutationObserver((function(t){t.forEach((function(t){if("childList"===t.type&&t.removedNodes.length)t.removedNodes.forEach((function(t){(null==t?void 0:t.currentSrc)===A.logoPngBase64&&A.addLogoIcon(e)}));else if("attributes"===t.type){var n=t.target;(null==n?void 0:n.currentSrc)===A.logoPngBase64&&("src"===t.attributeName&&n.src!==A.logoPngBase64?n.src=A.logoPngBase64:"style"===t.attributeName&&("1"===n.style.opacity&&"block"==n.style.display||n.setAttribute("style","display: block !important; opacity: 1 !important")))}}))}));null==t||t.observe(e,{childList:!0,attributes:!0,attributeFilter:["src","style"],attributeOldValue:!0,subtree:!0})}},{key:"renderLogo",value:function(e){this.addLogoIcon(e),this.initObserver(e)}},{key:"fetchOrginUrl",value:(t=aE(iE().mark((function e(A){var t=this;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.fetchPromise){e.next=2;break}return e.abrupt("return",this.fetchPromise);case 2:return this.fetchPromise=fetch(A).then((function(e){if(!e.ok)throw new Error("Network response was not ok");return e.text()})).then((function(e){try{var A=JSON.parse(e),n={sign:null==A?void 0:A.Signature,content:null==A?void 0:A.Content,mainUrl:null==A?void 0:A.MainURL};return t.nativeAddLicense(null==n?void 0:n.content,null==n?void 0:n.sign),localStorage.setItem(jle,$b(n)),Op.resolve(A)}catch(WtA){throw new Error("Failed to parse JSON")}})).catch((function(e){return console.error("fetchLicenseFailed",e),Op.reject(e)})),e.abrupt("return",this.fetchPromise);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return t.apply(this,arguments)})},{key:"checkLocalLicense",value:function(){var e=localStorage.getItem(jle);if(e){var A=JSON.parse(e);this.nativeAddLicense(null==A?void 0:A.content,null==A?void 0:A.sign)}}},{key:"nativeAddLicense",value:function(e,A){try{var t;return null===(t=this._Module)||void 0===t?void 0:t.ccall("addLicense","string",["string","string"],[e,A])}catch(WtA){console.error("nativeAddLicense failed"),this._needExemptions=!0}}},{key:"nativeCheckSDKAuth",value:function(){var e;return null===(e=this._Module)||void 0===e?void 0:e.ccall("checkSDKAuth","number",["string"],["web_live_pull"])}},{key:"nativeGetModuleEdition",value:function(){var e;return null===(e=this._Module)||void 0===e?void 0:e.ccall("getModuleEdition","string",["string"],["web_live_pull"])}},{key:"checkHttpLicenseStatus",value:(A=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A=this.nativeGetModuleEdition(),t=this.nativeCheckSDKAuth(),"premium_edition"===A&&1===t){e.next=5;break}return e.next=5,this.fetchPromise;case 5:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})}]),e}(),qle=new Xle,Vle=Wk,Wle=function(e){return e[e.INVALID_PARAMETER=210]="INVALID_PARAMETER",e[e.EMPTY_RTM_FALLBACK_PARAMETER=211]="EMPTY_RTM_FALLBACK_PARAMETER",e[e.INVALID_LOGGER=220]="INVALID_LOGGER",e[e.BASE_LICENSE_RTM_NOT_SUPPORT=12101]="BASE_LICENSE_RTM_NOT_SUPPORT",e[e.LICENSE_EXPIRED_RTM=12201]="LICENSE_EXPIRED_RTM",e}(Wle||{}),Zle=Ff(Ff({},Wle),Xk),$le=Ff(Ff({},qk),{},(LE(xle={},210,{messageTextKey:"INVALID_PARAMETER",level:jk.Fatal}),LE(xle,211,{messageTextKey:"EMPTY_RTM_FALLBACK_PARAMETER",level:jk.Warn}),LE(xle,220,{messageTextKey:"INVALID_LOGGER",level:jk.Warn}),LE(xle,12101,{messageTextKey:"BASE_LICENSE_RTM_NOT_SUPPORT",level:jk.Fatal}),LE(xle,12201,{messageTextKey:"LICENSE_EXPIRED_RTM",level:jk.Fatal}),xle));function eue(e,A){return new Vle(Ff({errorCode:e},$le[e]),A)}var Aue=NaN,tue="[object Symbol]",nue=/^\s+|\s+$/g,rue=/^[-+]0x[0-9a-f]+$/i,iue=/^0b[01]+$/i,oue=/^0o[0-7]+$/i,aue=Uv,sue="object"==wc(r)&&r&&r.Object===Object&&r,gue="object"==("undefined"==typeof self?"undefined":wc(self))&&self&&self.Object===Object&&self,cue=sue||gue||Function("return this")(),lue=Object.prototype.toString,uue=Math.max,Iue=Math.min,hue=function(){return cue.Date.now()};function Cue(e){var A=wc(e);return!!e&&("object"==A||"function"==A)}function due(e){return"symbol"==wc(e)||function(e){return!!e&&"object"==wc(e)}(e)&&lue.call(e)==tue}function Eue(e){if("number"==typeof e)return e;if(due(e))return Aue;if(Cue(e)){var A="function"==typeof e.valueOf?e.valueOf():e;e=Cue(A)?A+"":A}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(nue,"");var t=iue.test(e);return t||oue.test(e)?aue(Xp(e).call(e,2),t?2:8):rue.test(e)?Aue:+e}var fue=function(e,A,t){var n,r,i,o,a,s,g=0,c=!1,l=!1,u=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function I(A){var t=n,i=r;return n=r=void 0,g=A,o=e.apply(i,t)}function h(e){var t=e-s;return void 0===s||t>=A||t<0||l&&e-g>=i}function C(){var e=hue();if(h(e))return d(e);a=setTimeout(C,function(e){var t=A-(e-s);return l?Iue(t,i-(e-g)):t}(e))}function d(e){return a=void 0,u&&n?I(e):(n=r=void 0,o)}function E(){var e=hue(),t=h(e);if(n=arguments,r=this,s=e,t){if(void 0===a)return function(e){return g=e,a=setTimeout(C,A),c?I(e):o}(s);if(l)return a=setTimeout(C,A),I(s)}return void 0===a&&(a=setTimeout(C,A)),o}return A=Eue(A)||0,Cue(t)&&(c=!!t.leading,i=(l="maxWait"in t)?uue(Eue(t.maxWait)||0,A):i,u="trailing"in t?!!t.trailing:u),E.cancel=function(){void 0!==a&&clearTimeout(a),g=0,n=s=r=a=void 0},E.flush=function(){return void 0===a?o:d(hue())},E},Bue=i(fue),Que=pu,pue=qt;Gt({target:"Object",stat:!0},{fromEntries:function(e){var A={};return Que(e,(function(e,t){pue(A,e,t)}),{AS_ENTRIES:!0}),A}});var vue=i(re.Object.fromEntries),yue=a.isFinite;Gt({target:"Number",stat:!0},{isFinite:Number.isFinite||function(e){return"number"==typeof e&&yue(e)}});var mue=i(re.Number.isFinite),Due=Gt,wue=wT,Rue=Math.abs;Due({target:"Number",stat:!0},{isSafeInteger:function(e){return wue(e)&&Rue(e)<=9007199254740991}});var kue=i(re.Number.isSafeInteger);Gt({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991});var Sue=i(9007199254740991);Gt({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Mue=i(Math.pow(2,-52));NB("Set",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),$B);var Gue=re.Set,_ue=Me,bue=function(e){if("object"==typeof e&&"size"in e&&"has"in e&&"add"in e&&"delete"in e&&"keys"in e)return e;throw TypeError(_ue(e)+" is not a set")},Tue=IQ,Fue=ge("Set"),Nue=Fue.prototype,Lue={Set:Fue,add:Tue("add",1),has:Tue("has",1),remove:Tue("delete",1),proto:Nue},Uue=mQ,Kue=function(e,A,t){return t?Uue(e.keys(),A):e.forEach(A)},xue=Kue,Yue=Lue.Set,Pue=Lue.add,Hue=function(e){var A=new Yue;return xue(e,(function(e){Pue(A,e)})),A},Jue=function(e){return e.size},Oue=Te,zue=it,jue=F,Xue=Ut,que=TypeError,Vue=Math.max,Wue=function(e,A,t,n){this.set=e,this.size=A,this.has=t,this.keys=n};Wue.prototype={getIterator:function(){return zue(jue(this.keys,this.set))},includes:function(e){return jue(this.has,this.set,e)}};var Zue=function(e){zue(e);var A=+e.size;if(A!=A)throw que("Invalid size");return new Wue(e,Vue(Xue(A),0),Oue(e.has),Oue(e.keys))},$ue=bue,eIe=Hue,AIe=Jue,tIe=Zue,nIe=Kue,rIe=mQ,iIe=Lue.has,oIe=Lue.remove,aIe=function(e){var A=$ue(this),t=tIe(e),n=eIe(A);return AIe(A)<=t.size?nIe(A,(function(e){t.includes(e)&&oIe(n,e)})):rIe(t.getIterator(),(function(e){iIe(A,e)&&oIe(n,e)})),n},sIe=function(){return!1},gIe=aIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{difference:gIe});var cIe=bue,lIe=Jue,uIe=Zue,IIe=Kue,hIe=mQ,CIe=Lue.Set,dIe=Lue.add,EIe=Lue.has,fIe=function(e){var A=cIe(this),t=uIe(e),n=new CIe;return lIe(A)>t.size?hIe(t.getIterator(),(function(e){EIe(A,e)&&dIe(n,e)})):IIe(A,(function(e){t.includes(e)&&dIe(n,e)})),n},BIe=fIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{intersection:BIe});var QIe=bue,pIe=Lue.has,vIe=Jue,yIe=Zue,mIe=Kue,DIe=mQ,wIe=au,RIe=function(e){var A=QIe(this),t=yIe(e);if(vIe(A)<=t.size)return!1!==mIe(A,(function(e){if(t.includes(e))return!1}),!0);var n=t.getIterator();return!1!==DIe(n,(function(e){if(pIe(A,e))return wIe(n,"normal",!1)}))},kIe=RIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{isDisjointFrom:kIe});var SIe=bue,MIe=Jue,GIe=Kue,_Ie=Zue,bIe=function(e){var A=SIe(this),t=_Ie(e);return!(MIe(A)>t.size)&&!1!==GIe(A,(function(e){if(!t.includes(e))return!1}),!0)},TIe=bIe;Gt({target:"Set",proto:!0,real:!0,forced:!sIe()},{isSubsetOf:TIe});var FIe=bue,NIe=Lue.has,LIe=Jue,UIe=Zue,KIe=mQ,xIe=au,YIe=function(e){var A=FIe(this),t=UIe(e);if(LIe(A)1?arguments[1]:void 0);return!1!==uhe(A,(function(e){if(!t(e,e,A))return!1}),!0)}});var Ihe=rn,hhe=AA,Che=X,dhe=hs,Ehe=CA("iterator"),fhe=Object,Bhe=M,Qhe=function(e){if(Che(e))return!1;var A=fhe(e);return void 0!==A[Ehe]||"@@iterator"in A||hhe(dhe,Ihe(A))},phe=ne,vhe=ge("Set"),yhe=function(e){return function(e){return phe(e)&&"number"==typeof e.size&&Bhe(e.has)&&Bhe(e.keys)}(e)?e:Qhe(e)?new vhe(e):e},mhe=F,Dhe=yhe,whe=aIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return mhe(whe,this,Dhe(e))}});var Rhe=$A,khe=bue,She=Kue,Mhe=Lue.Set,Ghe=Lue.add;Gt({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var A=khe(this),t=Rhe(e,arguments.length>1?arguments[1]:void 0),n=new Mhe;return She(A,(function(e){t(e,e,A)&&Ghe(n,e)})),n}});var _he=$A,bhe=bue,The=Kue;Gt({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var A=bhe(this),t=_he(e,arguments.length>1?arguments[1]:void 0),n=The(A,(function(e){if(t(e,e,A))return{value:e}}),!0);return n&&n.value}});var Fhe=F,Nhe=yhe,Lhe=fIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return Fhe(Lhe,this,Nhe(e))}});var Uhe=F,Khe=yhe,xhe=RIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return Uhe(xhe,this,Khe(e))}});var Yhe=F,Phe=yhe,Hhe=bIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return Yhe(Hhe,this,Phe(e))}});var Jhe=F,Ohe=yhe,zhe=YIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return Jhe(zhe,this,Ohe(e))}});var jhe=Gt,Xhe=B,qhe=bue,Vhe=Kue,Whe=Wn,Zhe=Xhe([].join),$he=Xhe([].push);jhe({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var A=qhe(this),t=void 0===e?",":Whe(e),n=[];return Vhe(A,(function(e){$he(n,e)})),Zhe(n,t)}});var eCe=$A,ACe=bue,tCe=Kue,nCe=Lue.Set,rCe=Lue.add;Gt({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var A=ACe(this),t=eCe(e,arguments.length>1?arguments[1]:void 0),n=new nCe;return tCe(A,(function(e){rCe(n,t(e,e,A))})),n}});var iCe=Te,oCe=bue,aCe=Kue,sCe=TypeError;Gt({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var A=oCe(this),t=arguments.length<2,n=t?void 0:arguments[1];if(iCe(e),aCe(A,(function(r){t?(t=!1,n=r):n=e(n,r,r,A)})),t)throw sCe("Reduce of empty set with no initial value");return n}});var gCe=$A,cCe=bue,lCe=Kue;Gt({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var A=cCe(this),t=gCe(e,arguments.length>1?arguments[1]:void 0);return!0===lCe(A,(function(e){if(t(e,e,A))return!0}),!0)}});var uCe=F,ICe=yhe,hCe=VIe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return uCe(hCe,this,ICe(e))}});var CCe=F,dCe=yhe,ECe=nhe;Gt({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return CCe(ECe,this,dCe(e))}});var fCe,BCe=i(ihe),QCe=mue||function(e){return"number"==typeof e&&isFinite(e)},pCe=kue||function(e){return"number"==typeof e&&Math.abs(e)<=vCe},vCe=Sue||9007199254740991,yCe=function(e){return e.NETWORK_ERROR="networkError",e.MEDIA_ERROR="mediaError",e.KEY_SYSTEM_ERROR="keySystemError",e.MUX_ERROR="muxError",e.OTHER_ERROR="otherError",e}({}),mCe=function(e){return e.KEY_SYSTEM_NO_KEYS="keySystemNoKeys",e.KEY_SYSTEM_NO_ACCESS="keySystemNoAccess",e.KEY_SYSTEM_NO_SESSION="keySystemNoSession",e.KEY_SYSTEM_NO_CONFIGURED_LICENSE="keySystemNoConfiguredLicense",e.KEY_SYSTEM_LICENSE_REQUEST_FAILED="keySystemLicenseRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED="keySystemServerCertificateRequestFailed",e.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED="keySystemServerCertificateUpdateFailed",e.KEY_SYSTEM_SESSION_UPDATE_FAILED="keySystemSessionUpdateFailed",e.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED="keySystemStatusOutputRestricted",e.KEY_SYSTEM_STATUS_INTERNAL_ERROR="keySystemStatusInternalError",e.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR="keySystemDestroyMediaKeysError",e.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR="keySystemDestroyCloseSessionError",e.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR="keySystemDestroyRemoveSessionError",e.MANIFEST_LOAD_ERROR="manifestLoadError",e.MANIFEST_LOAD_TIMEOUT="manifestLoadTimeOut",e.MANIFEST_PARSING_ERROR="manifestParsingError",e.MANIFEST_INCOMPATIBLE_CODECS_ERROR="manifestIncompatibleCodecsError",e.LEVEL_EMPTY_ERROR="levelEmptyError",e.LEVEL_LOAD_ERROR="levelLoadError",e.LEVEL_LOAD_TIMEOUT="levelLoadTimeOut",e.LEVEL_PARSING_ERROR="levelParsingError",e.LEVEL_SWITCH_ERROR="levelSwitchError",e.AUDIO_TRACK_LOAD_ERROR="audioTrackLoadError",e.AUDIO_TRACK_LOAD_TIMEOUT="audioTrackLoadTimeOut",e.SUBTITLE_LOAD_ERROR="subtitleTrackLoadError",e.SUBTITLE_TRACK_LOAD_TIMEOUT="subtitleTrackLoadTimeOut",e.FRAG_LOAD_ERROR="fragLoadError",e.FRAG_LOAD_TIMEOUT="fragLoadTimeOut",e.FRAG_DECRYPT_ERROR="fragDecryptError",e.FRAG_PARSING_ERROR="fragParsingError",e.FRAG_GAP="fragGap",e.REMUX_ALLOC_ERROR="remuxAllocError",e.KEY_LOAD_ERROR="keyLoadError",e.KEY_LOAD_TIMEOUT="keyLoadTimeOut",e.BUFFER_ADD_CODEC_ERROR="bufferAddCodecError",e.BUFFER_INCOMPATIBLE_CODECS_ERROR="bufferIncompatibleCodecsError",e.BUFFER_APPEND_ERROR="bufferAppendError",e.BUFFER_APPENDING_ERROR="bufferAppendingError",e.BUFFER_STALLED_ERROR="bufferStalledError",e.BUFFER_FULL_ERROR="bufferFullError",e.BUFFER_SEEK_OVER_HOLE="bufferSeekOverHole",e.BUFFER_NUDGE_ON_STALL="bufferNudgeOnStall",e.ASSET_LIST_LOAD_ERROR="assetListLoadError",e.ASSET_LIST_LOAD_TIMEOUT="assetListLoadTimeout",e.ASSET_LIST_PARSING_ERROR="assetListParsingError",e.INTERSTITIAL_ASSET_ITEM_ERROR="interstitialAssetItemError",e.INTERNAL_EXCEPTION="internalException",e.INTERNAL_ABORTED="aborted",e.ATTACH_MEDIA_ERROR="attachMediaError",e.UNKNOWN="unknown",e}({}),DCe=function(e){return e.MEDIA_ATTACHING="hlsMediaAttaching",e.MEDIA_ATTACHED="hlsMediaAttached",e.MEDIA_DETACHING="hlsMediaDetaching",e.MEDIA_DETACHED="hlsMediaDetached",e.MEDIA_ENDED="hlsMediaEnded",e.BUFFER_RESET="hlsBufferReset",e.BUFFER_CODECS="hlsBufferCodecs",e.BUFFER_CREATED="hlsBufferCreated",e.BUFFER_APPENDING="hlsBufferAppending",e.BUFFER_APPENDED="hlsBufferAppended",e.BUFFER_EOS="hlsBufferEos",e.BUFFERED_TO_END="hlsBufferedToEnd",e.BUFFER_FLUSHING="hlsBufferFlushing",e.BUFFER_FLUSHED="hlsBufferFlushed",e.MANIFEST_LOADING="hlsManifestLoading",e.MANIFEST_LOADED="hlsManifestLoaded",e.MANIFEST_PARSED="hlsManifestParsed",e.LEVEL_SWITCHING="hlsLevelSwitching",e.LEVEL_SWITCHED="hlsLevelSwitched",e.LEVEL_LOADING="hlsLevelLoading",e.LEVEL_LOADED="hlsLevelLoaded",e.LEVEL_UPDATED="hlsLevelUpdated",e.LEVEL_PTS_UPDATED="hlsLevelPtsUpdated",e.LEVELS_UPDATED="hlsLevelsUpdated",e.AUDIO_TRACKS_UPDATED="hlsAudioTracksUpdated",e.AUDIO_TRACK_SWITCHING="hlsAudioTrackSwitching",e.AUDIO_TRACK_SWITCHED="hlsAudioTrackSwitched",e.AUDIO_TRACK_LOADING="hlsAudioTrackLoading",e.AUDIO_TRACK_LOADED="hlsAudioTrackLoaded",e.AUDIO_TRACK_UPDATED="hlsAudioTrackUpdated",e.SUBTITLE_TRACKS_UPDATED="hlsSubtitleTracksUpdated",e.SUBTITLE_TRACKS_CLEARED="hlsSubtitleTracksCleared",e.SUBTITLE_TRACK_SWITCH="hlsSubtitleTrackSwitch",e.SUBTITLE_TRACK_LOADING="hlsSubtitleTrackLoading",e.SUBTITLE_TRACK_LOADED="hlsSubtitleTrackLoaded",e.SUBTITLE_TRACK_UPDATED="hlsSubtitleTrackUpdated",e.SUBTITLE_FRAG_PROCESSED="hlsSubtitleFragProcessed",e.CUES_PARSED="hlsCuesParsed",e.NON_NATIVE_TEXT_TRACKS_FOUND="hlsNonNativeTextTracksFound",e.INIT_PTS_FOUND="hlsInitPtsFound",e.FRAG_LOADING="hlsFragLoading",e.FRAG_LOAD_EMERGENCY_ABORTED="hlsFragLoadEmergencyAborted",e.FRAG_LOADED="hlsFragLoaded",e.FRAG_DECRYPTED="hlsFragDecrypted",e.FRAG_PARSING_INIT_SEGMENT="hlsFragParsingInitSegment",e.FRAG_PARSING_USERDATA="hlsFragParsingUserdata",e.FRAG_PARSING_METADATA="hlsFragParsingMetadata",e.FRAG_PARSED="hlsFragParsed",e.FRAG_BUFFERED="hlsFragBuffered",e.FRAG_CHANGED="hlsFragChanged",e.FPS_DROP="hlsFpsDrop",e.FPS_DROP_LEVEL_CAPPING="hlsFpsDropLevelCapping",e.MAX_AUTO_LEVEL_UPDATED="hlsMaxAutoLevelUpdated",e.ERROR="hlsError",e.DESTROYING="hlsDestroying",e.KEY_LOADING="hlsKeyLoading",e.KEY_LOADED="hlsKeyLoaded",e.LIVE_BACK_BUFFER_REACHED="hlsLiveBackBufferReached",e.BACK_BUFFER_REACHED="hlsBackBufferReached",e.STEERING_MANIFEST_LOADED="hlsSteeringManifestLoaded",e.ASSET_LIST_LOADING="hlsAssetListLoading",e.ASSET_LIST_LOADED="hlsAssetListLoaded",e.INTERSTITIALS_UPDATED="hlsInterstitialsUpdated",e.INTERSTITIALS_BUFFERED_TO_BOUNDARY="hlsInterstitialsBufferedToBoundary",e.INTERSTITIAL_ASSET_PLAYER_CREATED="hlsInterstitialAssetPlayerCreated",e.INTERSTITIAL_STARTED="hlsInterstitialStarted",e.INTERSTITIAL_ASSET_STARTED="hlsInterstitialAssetStarted",e.INTERSTITIAL_ASSET_ENDED="hlsInterstitialAssetEnded",e.INTERSTITIAL_ASSET_ERROR="hlsInterstitialAssetError",e.INTERSTITIAL_ENDED="hlsInterstitialEnded",e.INTERSTITIALS_PRIMARY_RESUMED="hlsInterstitialsPrimaryResumed",e.PLAYOUT_LIMIT_REACHED="hlsPlayoutLimitReached",e.EVENT_CUE_ENTER="hlsEventCueEnter",e}({}),wCe="audioTrack",RCe="subtitleTrack",kCe="main",SCe="audio",MCe="subtitle",GCe=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;GE(this,e),this.halfLife=void 0,this.alpha_=void 0,this.estimate_=void 0,this.totalWeight_=void 0,this.halfLife=A,this.alpha_=A?Math.exp(Math.log(.5)/A):0,this.estimate_=t,this.totalWeight_=n}return NE(e,[{key:"sample",value:function(e,A){var t=Math.pow(this.alpha_,e);this.estimate_=A*(1-t)+t*this.estimate_,this.totalWeight_+=e}},{key:"getTotalWeight",value:function(){return this.totalWeight_}},{key:"getEstimate",value:function(){if(this.alpha_){var e=1-Math.pow(this.alpha_,this.totalWeight_);if(e)return this.estimate_/e}return this.estimate_}}]),e}(),_Ce=function(){function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100;GE(this,e),this.defaultEstimate_=void 0,this.minWeight_=void 0,this.minDelayMs_=void 0,this.slow_=void 0,this.fast_=void 0,this.defaultTTFB_=void 0,this.ttfb_=void 0,this.defaultEstimate_=n,this.minWeight_=.001,this.minDelayMs_=50,this.slow_=new GCe(A),this.fast_=new GCe(t),this.defaultTTFB_=r,this.ttfb_=new GCe(A)}return NE(e,[{key:"update",value:function(e,A){var t=this.slow_,n=this.fast_,r=this.ttfb_;t.halfLife!==e&&(this.slow_=new GCe(e,t.getEstimate(),t.getTotalWeight())),n.halfLife!==A&&(this.fast_=new GCe(A,n.getEstimate(),n.getTotalWeight())),r.halfLife!==e&&(this.ttfb_=new GCe(e,r.getEstimate(),r.getTotalWeight()))}},{key:"sample",value:function(e,A){var t=(e=Math.max(e,this.minDelayMs_))/1e3,n=8*A/t;this.fast_.sample(t,n),this.slow_.sample(t,n)}},{key:"sampleTTFB",value:function(e){var A=e/1e3,t=Math.sqrt(2)*Math.exp(-Math.pow(A,2)/2);this.ttfb_.sample(t,Math.max(e,5))}},{key:"canEstimate",value:function(){return this.fast_.getTotalWeight()>=this.minWeight_}},{key:"getEstimate",value:function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_}},{key:"getEstimateTTFB",value:function(){return this.ttfb_.getTotalWeight()>=this.minWeight_?this.ttfb_.getEstimate():this.defaultTTFB_}},{key:"defaultEstimate",get:function(){return this.defaultEstimate_}},{key:"destroy",value:function(){}}]),e}();function bCe(e,A,t){return(A=function(e){var A=function(e,A){if("object"!=wc(e)||!e)return e;var t=e[rm];if(void 0!==t){var n=t.call(e,A||"default");if("object"!=wc(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(e)}(e,"string");return"symbol"==wc(A)?A:A+""}(A))in e?Iy(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function TCe(){return TCe=sy?sy.bind():function(e){for(var A=1;A0&&void 0!==arguments[0])||arguments[0]||!self.MediaSource)&&self.ManagedMediaSource||self.MediaSource||self.WebKitMediaSource}function YCe(e,A){var t=jp(e),n=jp(A),r=t.length,i=n.length;return!r||!i||r===i&&!t.some((function(e){return-1===zp(n).call(n,e)}))}var PCe={audio:{a3ds:1,"ac-3":.95,"ac-4":1,alac:.9,alaw:1,dra1:1,"dts+":1,"dts-":1,dtsc:1,dtse:1,dtsh:1,"ec-3":.9,enca:1,fLaC:.9,flac:.9,FLAC:.9,g719:1,g726:1,m4ae:1,mha1:1,mha2:1,mhm1:1,mhm2:1,mlpa:1,mp4a:1,"raw ":1,Opus:1,opus:1,samr:1,sawb:1,sawp:1,sevc:1,sqcp:1,ssmv:1,twos:1,ulaw:1},video:{avc1:1,avc2:1,avc3:1,avc4:1,avcp:1,av01:.8,drac:1,dva1:1,dvav:1,dvh1:.7,dvhe:.7,encv:1,hev1:.75,hvc1:.75,mjp2:1,mp4v:1,mvc1:1,mvc2:1,mvc3:1,mvc4:1,resv:1,rv60:1,s263:1,svc1:1,svc2:1,"vc-1":1,vp08:1,vp09:.9},text:{stpp:1,wvtt:1}};function HCe(e,A){var t,n=xCe(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]);return null!=(t=null==n?void 0:n.isTypeSupported(JCe(e,A)))&&t}function JCe(e,A){var t;return xf(t="".concat(A,"/mp4;codecs=")).call(t,e)}function OCe(e){var A;return wF(A=e.split(",")).call(A,(function(e,A){var t=PCe.video[A];return t?(2*t+e)/(e?3:2):(PCe.audio[A]+e)/(e?2:1)}),0)}var zCe={};var jCe=/flac|opus|mp4a\.40\.34/i;function XCe(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e.replace(jCe,(function(e){return function(e){var A=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(zCe[e])return zCe[e];for(var t={flac:["flac","fLaC","FLAC"],opus:["opus","Opus"],"mp4a.40.34":["mp3"]}[e],n=0;n4||-1!==zp(t=["ac-3","ec-3","alac","fLaC","Opus"]).call(t,e)))return e;if(A){var n=A.split(",");if(n.length>1){if(e)for(var r=n.length;r--;)if(n[r].substring(0,4)===e.substring(0,4))return n[r];return n[0]}}return A||e}function VCe(e){if(yT(e).call(e,"av01.")){for(var A=e.split("."),t=["0","111","01","01","01","0"],n=A.length;n>4&&n<10;n++)A[n]=t[n-4];return A.join(".")}return e}function WCe(e){var A=xCe(e)||{isTypeSupported:function(){return!1}};return{mpeg:A.isTypeSupported("audio/mpeg"),mp3:A.isTypeSupported('audio/mp4; codecs="mp3"'),ac3:A.isTypeSupported('audio/mp4; codecs="ac-3"')}}var ZCe={supported:!0,configurations:[],decodingInfoResults:[{supported:!0,powerEfficient:!0,smooth:!0}]},$Ce={};function ede(e,A,t){var n=e.videoCodec,r=e.audioCodec;if(!n&&!r||!t)return Op.resolve(ZCe);var i=[];if(n){var o,a={width:e.width,height:e.height,bitrate:Math.ceil(Math.max(.9*e.bitrate,e.averageBitrate)),framerate:e.frameRate||30},s=e.videoRange;"SDR"!==s&&(a.transferFunction=s.toLowerCase()),i.push.apply(i,Jp(o=n.split(",")).call(o,(function(e){return{type:"media-source",video:NCe(NCe({},a),{},{contentType:JCe(VCe(e),"video")})}})))}return r&&e.audioGroups&&e.audioGroups.forEach((function(e){var t;e&&(null==(t=A.groups[e])||t.tracks.forEach((function(A){if(A.groupId===e){var t,n=A.channels||"",o=tD(n);if(QCe(o)&&o>2)i.push.apply(i,Jp(t=r.split(",")).call(t,(function(e){return{type:"media-source",audio:{contentType:JCe(e,"audio"),channels:""+o}}})))}})))})),Op.all(Jp(i).call(i,(function(e){var A=function(e){var A=e.audio,t=e.video,n=t||A;if(n){var r,i,o,a,s,g,c,l=n.contentType.split('"')[1];if(t)return xf(r=xf(i=xf(o=xf(a=xf(s="r".concat(t.height,"x")).call(s,t.width,"f")).call(a,Math.ceil(t.framerate))).call(o,t.transferFunction||"sd","_")).call(i,l,"_")).call(r,Math.ceil(t.bitrate/1e5));if(A)return xf(g=xf(c="c".concat(A.channels)).call(c,A.spatialRendering?"s":"n","_")).call(g,l)}return""}(e);return $Ce[A]||($Ce[A]=t.decodingInfo(e))}))).then((function(e){return{supported:!e.some((function(e){return!e.supported})),configurations:i,decodingInfoResults:e}})).catch((function(e){return{supported:!1,configurations:i,decodingInfoResults:[],error:e}}))}var Ade=["NONE","TYPE-0","TYPE-1",null],tde=["SDR","PQ","HLG"],nde="",rde="YES",ide="v2";function ode(e){var A=e.canSkipUntil,t=e.canSkipDateRanges,n=e.age;return A&&n1&&void 0!==arguments[1]?arguments[1]:"--";if(e.length===A.length)return e===A;return yT(e).call(e,A)||yT(A).call(A,e)}(i,A.lang))&&(void 0===i||A.assocLang===o)&&(void 0===s||A.default===s)&&(void 0===g||A.forced===g)&&(void 0===a||function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",t=e.split(","),n=A.split(",");return t.length===n.length&&!t.some((function(e){return-1===zp(n).call(n,e)}))}(a,A.characteristics))&&(void 0===t||t(e,A))}function Cde(e,A){var t=e.audioCodec,n=e.channels;return!(void 0!==t&&(A.audioCodec||"").substring(0,4)!==t.substring(0,4)||void 0!==n&&n!==(A.channels||"2"))}function dde(e,A,t){for(var n=A;n>-1;n--)if(t(e[n]))return n;for(var r=A+1;r-1,M=n.getBwEstimate(),G=d.levels,_=G[h.level],b=Math.max(Q.loaded,Math.round(p*(h.bitrate||_.averageBitrate)/8)),T=S?v-k:v;T<1&&S&&(T=Math.min(v,8*Q.loaded/M));var F=S?1e3*Q.loaded/T:0,N=D/1e3,L=F?(b-Q.loaded)/F:8*b/M+N;if(!(L<=R)){var U,K=F?8*F:M,x=!0===(null==(u=n.hls.latestLevelDetails)?void 0:u.live),Y=n.hls.config.abrBandWidthUpFactor,P=Number.POSITIVE_INFINITY;for(U=h.level-1;U>y;U--){var H=G[U].maxBitrate,J=!G[U].details||x;if((P=n.getTimeToLoadFrag(N,K,p*H,J))=L||P>10*p)){S?n.bwEstimator.sample(v-Math.min(D,k),Q.loaded):n.bwEstimator.sampleTTFB(v);var O=G[U].maxBitrate;n.getBwEstimate()*Y>O&&n.resetEstimator(O);var z=n.findBestLevel(O,y,U,0,R,1,1);z>-1&&(U=z),n.warn(xf(e=xf(A=xf(t=xf(r=xf(i=xf(o=xf(a=xf(s=xf(g=xf(c=xf(l="Fragment ".concat(h.sn)).call(l,C?" part "+C.index:""," of level ")).call(c,h.level," is loading too slowly;\n Fragment duration: ")).call(g,h.duration.toFixed(3),"\n Time to underbuffer: ")).call(s,R.toFixed(3)," s\n Estimated load time for current fragment: ")).call(a,L.toFixed(3)," s\n Estimated load time for down switch fragment: ")).call(o,P.toFixed(3)," s\n TTFB estimate: ")).call(i,0|k," ms\n Current BW estimate: ")).call(r,QCe(M)?0|M:"Unknown"," bps\n New BW estimate: ")).call(t,0|n.getBwEstimate()," bps\n Switching to level ")).call(A,U," @ ")).call(e,0|O," bps")),d.nextLoadLevel=d.nextAutoLevel=U,n.clearTimer(),n.timer=self.setInterval((function(){if(n.clearTimer(),n.fragCurrent===h&&n.hls.loadLevel===U&&U>0){var e,A,t=n.getStarvationDelay();if(n.warn(xf(e=xf(A="Aborting inflight request ".concat(U>0?"and switching down":"","\n Fragment duration: ")).call(A,h.duration.toFixed(3)," s\n Time to underbuffer: ")).call(e,t.toFixed(3)," s")),h.abortRequests(),n.fragCurrent=n.partCurrent=null,U>y){var r=n.findBestLevel(n.hls.levels[y].bitrate,y,U,0,t,1,1);-1===r&&(r=y),n.hls.nextLoadLevel=n.hls.nextAutoLevel=r,n.resetEstimator(n.hls.levels[r].bitrate)}}}),1e3*P),d.trigger(DCe.FRAG_LOAD_EMERGENCY_ABORTED,{frag:h,part:C,stats:Q})}}}}}}},n.hls=e,n.bwEstimator=n.initEstimator(),n.registerListeners(),n}return NE(t,[{key:"resetEstimator",value:function(e){e&&(this.log("setting initial bwe to ".concat(e)),this.hls.config.abrEwmaDefaultEstimate=e),this.firstSelection=-1,this.bwEstimator=this.initEstimator()}},{key:"initEstimator",value:function(){var e=this.hls.config;return new _Ce(e.abrEwmaSlowVoD,e.abrEwmaFastVoD,e.abrEwmaDefaultEstimate)}},{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.FRAG_LOADING,this.onFragLoading,this),e.on(DCe.FRAG_LOADED,this.onFragLoaded,this),e.on(DCe.FRAG_BUFFERED,this.onFragBuffered,this),e.on(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.on(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(DCe.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.FRAG_LOADING,this.onFragLoading,this),e.off(DCe.FRAG_LOADED,this.onFragLoaded,this),e.off(DCe.FRAG_BUFFERED,this.onFragBuffered,this),e.off(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.off(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(DCe.MAX_AUTO_LEVEL_UPDATED,this.onMaxAutoLevelUpdated,this),e.off(DCe.ERROR,this.onError,this))}},{key:"destroy",value:function(){this.unregisterListeners(),this.clearTimer(),this.hls=this._abandonRulesCheck=null,this.fragCurrent=this.partCurrent=null}},{key:"onManifestLoading",value:function(e,A){this.lastLoadedFragLevel=-1,this.firstSelection=-1,this.lastLevelLoadSec=0,this.fragCurrent=this.partCurrent=null,this.onLevelsUpdated(),this.clearTimer()}},{key:"onLevelsUpdated",value:function(){this.lastLoadedFragLevel>-1&&this.fragCurrent&&(this.lastLoadedFragLevel=this.fragCurrent.level),this._nextAutoLevel=-1,this.onMaxAutoLevelUpdated(),this.codecTiers=null,this.audioTracksByGroup=null}},{key:"onMaxAutoLevelUpdated",value:function(){this.firstSelection=-1,this.nextAutoLevelKey=""}},{key:"onFragLoading",value:function(e,A){var t=A.frag;if(!this.ignoreFragment(t)){var n;if(!t.bitrateTest)this.fragCurrent=t,this.partCurrent=null!=(n=A.part)?n:null;this.clearTimer(),this.timer=self.setInterval(this._abandonRulesCheck,100)}}},{key:"onLevelSwitching",value:function(e,A){this.clearTimer()}},{key:"onError",value:function(e,A){if(!A.fatal)switch(A.details){case mCe.BUFFER_ADD_CODEC_ERROR:case mCe.BUFFER_APPEND_ERROR:this.lastLoadedFragLevel=-1,this.firstSelection=-1;break;case mCe.FRAG_LOAD_TIMEOUT:var t=A.frag,n=this.fragCurrent,r=this.partCurrent;if(t&&n&&t.sn===n.sn&&t.level===n.level){var i=performance.now(),o=r?r.stats:t.stats,a=i-o.loading.start,s=o.loading.first?o.loading.first-o.loading.start:-1;if(o.loaded&&s>-1){var g=this.bwEstimator.getEstimateTTFB();this.bwEstimator.sample(a-Math.min(g,s),o.loaded)}else this.bwEstimator.sampleTTFB(a)}}}},{key:"getTimeToLoadFrag",value:function(e,A,t,n){return e+t/A+(n?this.lastLevelLoadSec:0)}},{key:"onLevelLoaded",value:function(e,A){var t=this.hls.config,n=A.stats.loading,r=n.end-n.start;QCe(r)&&(this.lastLevelLoadSec=r/1e3),A.details.live?this.bwEstimator.update(t.abrEwmaSlowLive,t.abrEwmaFastLive):this.bwEstimator.update(t.abrEwmaSlowVoD,t.abrEwmaFastVoD)}},{key:"onFragLoaded",value:function(e,A){var t=A.frag,n=A.part,r=n?n.stats:t.stats;if(t.type===kCe&&this.bwEstimator.sampleTTFB(r.loading.first-r.loading.start),!this.ignoreFragment(t)){if(this.clearTimer(),t.level===this._nextAutoLevel&&(this._nextAutoLevel=-1),this.firstSelection=-1,this.hls.config.abrMaxWithRealBitrate){var i=n?n.duration:t.duration,o=this.hls.levels[t.level],a=(o.loaded?o.loaded.bytes:0)+r.loaded,s=(o.loaded?o.loaded.duration:0)+i;o.loaded={bytes:a,duration:s},o.realBitrate=Math.round(8*a/s)}if(t.bitrateTest){var g={stats:r,frag:t,part:n,id:t.type};this.onFragBuffered(DCe.FRAG_BUFFERED,g),t.bitrateTest=!1}else this.lastLoadedFragLevel=t.level}}},{key:"onFragBuffered",value:function(e,A){var t=A.frag,n=A.part,r=null!=n&&n.stats.loaded?n.stats:t.stats;if(!r.aborted&&!this.ignoreFragment(t)){var i=r.parsing.end-r.loading.start-Math.min(r.loading.first-r.loading.start,this.bwEstimator.getEstimateTTFB());this.bwEstimator.sample(i,r.loaded),r.bwEstimate=this.getBwEstimate(),t.bitrateTest?this.bitrateTestDelay=i/1e3:this.bitrateTestDelay=0}}},{key:"ignoreFragment",value:function(e){return e.type!==kCe||"initSegment"===e.sn}},{key:"clearTimer",value:function(){this.timer>-1&&(self.clearInterval(this.timer),this.timer=-1)}},{key:"firstAutoLevel",get:function(){var e,A=this.hls,t=A.maxAutoLevel,n=A.minAutoLevel,r=this.getBwEstimate(),i=this.hls.config.maxStarvationDelay,o=this.findBestLevel(r,n,t,0,i,1,1);if(o>-1)return o;var a=this.hls.firstLevel,s=Math.min(Math.max(a,n),t);return this.warn(xf(e="Could not find best starting auto level. Defaulting to first in playlist ".concat(a," clamped to ")).call(e,s)),s}},{key:"forcedAutoLevel",get:function(){return this.nextAutoLevelKey?-1:this._nextAutoLevel}},{key:"nextAutoLevel",get:function(){var e=this.forcedAutoLevel,A=this.bwEstimator.canEstimate(),t=this.lastLoadedFragLevel>-1;if(!(-1===e||A&&t&&this.nextAutoLevelKey!==this.getAutoLevelKey()))return e;var n=A&&t?this.getNextABRAutoLevel():this.firstAutoLevel;if(-1!==e){var r=this.hls.levels;if(r.length>Math.max(e,n)&&r[e].loadError<=r[n].loadError)return e}return this._nextAutoLevel=n,this.nextAutoLevelKey=this.getAutoLevelKey(),n},set:function(e){var A=this.hls,t=A.maxAutoLevel,n=A.minAutoLevel,r=Math.min(Math.max(e,n),t);this._nextAutoLevel!==r&&(this.nextAutoLevelKey="",this._nextAutoLevel=r)}},{key:"getAutoLevelKey",value:function(){var e;return xf(e="".concat(this.getBwEstimate(),"_")).call(e,this.getStarvationDelay().toFixed(2))}},{key:"getNextABRAutoLevel",value:function(){var e,A=this.fragCurrent,t=this.partCurrent,n=this.hls;if(n.levels.length<=1)return n.loadLevel;var r=n.maxAutoLevel,i=n.config,o=n.minAutoLevel,a=t?t.duration:A?A.duration:0,s=this.getBwEstimate(),g=this.getStarvationDelay(),c=i.abrBandWidthFactor,l=i.abrBandWidthUpFactor;if(g){var u=this.findBestLevel(s,o,r,g,0,c,l);if(u>=0)return u}var I=a?Math.min(a,i.maxStarvationDelay):i.maxStarvationDelay;if(!g){var h,C=this.bitrateTestDelay;if(C)I=(a?Math.min(a,i.maxLoadingDelay):i.maxLoadingDelay)-C,this.info(xf(h="bitrate test took ".concat(Math.round(1e3*C),"ms, set first fragment max fetchDuration to ")).call(h,Math.round(1e3*I)," ms")),c=l=1}var d=this.findBestLevel(s,o,r,g,I,c,l);if(this.info(xf(e="".concat(g?"rebuffering expected":"buffer is empty",", optimal quality level ")).call(e,d)),d>-1)return d;var E=n.levels[o],f=n.levels[n.loadLevel];return(null==E?void 0:E.bitrate)<(null==f?void 0:f.bitrate)?o:n.loadLevel}},{key:"getStarvationDelay",value:function(){var e=this.hls,A=e.media;if(!A)return 1/0;var t=A&&0!==A.playbackRate?Math.abs(A.playbackRate):1,n=e.mainForwardBufferInfo;return(n?n.len:0)/t}},{key:"getBwEstimate",value:function(){return this.bwEstimator.canEstimate()?this.bwEstimator.getEstimate():this.hls.config.abrEwmaDefaultEstimate}},{key:"findBestLevel",value:function(e,A,t,n,r,i,o){var a,s=this,g=n+r,c=this.lastLoadedFragLevel,l=-1===c?this.hls.firstLevel:c,u=this.fragCurrent,I=this.partCurrent,h=this.hls,C=h.levels,d=h.allAudioTracks,E=h.loadLevel,f=h.config;if(1===C.length)return 0;var B,Q=C[l],p=!(null==(a=this.hls.latestLevelDetails)||!a.live),v=-1===E||-1===c,y="SDR",m=(null==Q?void 0:Q.frameRate)||0,D=f.audioPreference,w=f.videoPreference,R=this.audioTracksByGroup||(this.audioTracksByGroup=function(e){return wF(e).call(e,(function(e,A){var t=e.groups[A.groupId];t||(t=e.groups[A.groupId]={tracks:[],channels:{2:0},hasDefault:!1,hasAutoSelect:!1}),t.tracks.push(A);var n=A.channels||"2";return t.channels[n]=(t.channels[n]||0)+1,t.hasDefault=t.hasDefault||A.default,t.hasAutoSelect=t.hasAutoSelect||A.autoselect,t.hasDefault&&(e.hasDefaultAudio=!0),t.hasAutoSelect&&(e.hasAutoSelectAudio=!0),e}),{hasDefaultAudio:!1,hasAutoSelectAudio:!1,groups:{}})}(d)),k=-1;if(v){if(-1!==this.firstSelection)return this.firstSelection;var S=this.codecTiers||(this.codecTiers=function(e,A,t,n){var r;return wF(r=Xp(e).call(e,t,n+1)).call(r,(function(e,t,n){if(!t.codecSet)return e;var r=t.audioGroups,i=e[t.codecSet];i||(e[t.codecSet]=i={minBitrate:1/0,minHeight:1/0,minFramerate:1/0,minIndex:n,maxScore:0,videoRanges:{SDR:0},channels:{2:0},hasDefaultAudio:!r,fragmentError:0}),i.minBitrate=Math.min(i.minBitrate,t.bitrate);var o=Math.min(t.height,t.width);return i.minHeight=Math.min(i.minHeight,o),i.minFramerate=Math.min(i.minFramerate,t.frameRate),i.minIndex=Math.min(i.minIndex,n),i.maxScore=Math.max(i.maxScore,t.score),i.fragmentError+=t.fragmentError,i.videoRanges[t.videoRange]=(i.videoRanges[t.videoRange]||0)+1,r&&r.forEach((function(e){if(e){var t=A.groups[e];t&&(i.hasDefaultAudio=i.hasDefaultAudio||A.hasDefaultAudio?t.hasDefault:t.hasAutoSelect||!A.hasDefaultAudio&&!A.hasAutoSelectAudio,jp(t.channels).forEach((function(e){i.channels[e]=(i.channels[e]||0)+t.channels[e]})))}})),e}),{})}(C,R,A,t)),M=function(e,A,t,n,r){for(var i=jp(e),o=null==n?void 0:n.channels,a=null==n?void 0:n.audioCodec,s=null==r?void 0:r.videoCodec,g=o&&2===Uv(o),c=!1,l=!1,u=1/0,I=1/0,h=1/0,C=1/0,d=0,E=[],f=cde(A,r),B=f.preferHDR,Q=f.allowedVideoRanges,p=function(){var A=e[i[v]];c||(c=A.channels[2]>0),u=Math.min(u,A.minHeight),I=Math.min(I,A.minFramerate),h=Math.min(h,A.minBitrate),jv(Q).call(Q,(function(e){return A.videoRanges[e]>0})).length>0&&(l=!0)},v=i.length;v--;)p();u=QCe(u)?u:0,I=QCe(I)?I:0;var y=Math.max(1080,u),m=Math.max(30,I);h=QCe(h)?h:t,t=Math.max(h,t),l||(A=void 0);var D=i.length>1;return{codecSet:wF(i).call(i,(function(A,n){var r=e[n];if(n===A)return A;if(E=l?jv(Q).call(Q,(function(e){return r.videoRanges[e]>0})):[],D){var i,u,I,h,f;if(r.minBitrate>t)return lde(n,xf(i="min bitrate of ".concat(r.minBitrate," > current estimate of ")).call(i,t)),A;if(!r.hasDefaultAudio)return lde(n,"no renditions with default or auto-select sound found"),A;if(a&&zp(n).call(n,a.substring(0,4))%5!=0)return lde(n,'audio codec preference "'.concat(a,'" not found')),A;if(o&&!g){if(!r.channels[o])return lde(n,xf(u="no renditions with ".concat(o," channel sound found (channels options: ")).call(u,jp(r.channels),")")),A}else if((!a||g)&&c&&0===r.channels[2])return lde(n,"no renditions with stereo sound found"),A;if(r.minHeight>y)return lde(n,xf(I="min resolution of ".concat(r.minHeight," > maximum of ")).call(I,y)),A;if(r.minFramerate>m)return lde(n,xf(h="min framerate of ".concat(r.minFramerate," > maximum of ")).call(h,m)),A;if(!E.some((function(e){return r.videoRanges[e]>0})))return lde(n,"no variants with VIDEO-RANGE of ".concat($b(E)," found")),A;if(s&&zp(n).call(n,s.substring(0,4))%5!=0)return lde(n,'video codec preference "'.concat(s,'" not found')),A;if(r.maxScore=OCe(A)||r.fragmentError>e[A].fragmentError)?A:(C=r.minIndex,d=r.maxScore,n)}),void 0),videoRanges:E,preferHDR:B,minFramerate:I,minBitrate:h,minIndex:C}}(S,y,e,D,w),G=M.codecSet,_=M.videoRanges,b=M.minFramerate,T=M.minBitrate,F=M.minIndex,N=M.preferHDR;k=F,B=G,y=N?_[_.length-1]:_[0],m=b,e=Math.max(e,T),this.log("picked start tier ".concat($b(M)))}else B=null==Q?void 0:Q.codecSet,y=null==Q?void 0:Q.videoRange;for(var L=I?I.duration:u?u.duration:0,U=this.bwEstimator.getEstimateTTFB()/1e3,K=[],x=function(){var A=C[Y],a=Y>l;if(!A)return"continue";if(f.useMediaCapabilities&&!A.supportedResult&&!A.supportedPromise){var u=navigator.mediaCapabilities;"function"!=typeof(null==u?void 0:u.decodingInfo)||!function(e,A,t,n,r,i){var o=e.audioCodec?e.audioGroups:null,a=null==i?void 0:i.audioCodec,s=null==i?void 0:i.channels,g=s?Uv(s):a?1/0:2,c=null;if(null!=o&&o.length)try{c=1===o.length&&o[0]?A.groups[o[0]].channels:wF(o).call(o,(function(e,t){if(t){var n=A.groups[t];if(!n)throw new Error("Audio track group ".concat(t," not found"));jp(n.channels).forEach((function(A){e[A]=(e[A]||0)+n.channels[A]}))}return e}),{2:0})}catch(WtA){return!0}return void 0!==e.videoCodec&&(e.width>1920&&e.height>1088||e.height>1920&&e.width>1088||e.frameRate>Math.max(n,30)||"SDR"!==e.videoRange&&e.videoRange!==t||e.bitrate>Math.max(r,8e6))||!!c&&QCe(g)&&jp(c).some((function(e){return Uv(e)>g}))}(A,R,y,m,e,D)&&"hvc1"!==(null==(H=A.videoCodec)?void 0:H.substring(0,4))?A.supportedResult=ZCe:(A.supportedPromise=ede(A,R,u),A.supportedPromise.then((function(e){if(s.hls){A.supportedResult=e;var t,n,r=s.hls.levels,i=zp(r).call(r,A);if(e.error)s.warn(xf(t=xf(n='MediaCapabilities decodingInfo error: "'.concat(e.error,'" for level ')).call(n,i," ")).call(t,$b(e)));else if(!e.supported){var o;s.warn(xf(o="Unsupported MediaCapabilities decodingInfo result for level ".concat(i," ")).call(o,$b(e))),i>-1&&r.length>1&&(s.log("Removing unsupported level ".concat(i)),s.hls.removeLevel(i),-1===s.hls.loadLevel&&(s.hls.nextLoadLevel=0))}}})))}if((B&&A.codecSet!==B||y&&A.videoRange!==y||a&&m>A.frameRate||!a&&m>0&&m=2*L&&0===r?A.averageBitrate:A.maxBitrate,S=s.getTimeToLoadFrag(U,h,w*Q,void 0===d);if(h>=w&&(Y===c||0===A.loadError&&0===A.fragmentError)&&(S<=U||!QCe(S)||p&&!s.bitrateTestDelay||S")).call(j,Y," adjustedbw(")).call(z,Math.round(h),")-bitrate=")).call(O,Math.round(h-w)," ttfb:")).call(J,U.toFixed(1)," avgDuration:")).call(x,Q.toFixed(1)," maxFetchDuration:")).call(N,g.toFixed(1)," fetchDuration:")).call(F,S.toFixed(1)," firstSelection:")).call(T,v," codecSet:")).call(b,A.codecSet," videoRange:")).call(_,A.videoRange," hls.loadLevel:")).call(G,E))}return v&&(s.firstSelection=Y),{v:Y}}},Y=t;Y>=A;Y--){var P,H,J=x();if("continue"!==J&&"object"===wc(J))return J.v}return-1}}]),t}(LCe),fde=function(e,A){for(var t=0,n=e.length-1,r=null,i=null;t<=n;){var o=A(i=e[r=(t+n)/2|0]);if(o>0)t=r+1;else{if(!(o<0))return i;n=r-1}}return null};function Bde(e,A){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,r=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.005,i=null;if(e){i=A[1+e.sn-A[0].sn]||null;var o=e.endDTS-t;o>0&&o<15e-7&&(t+=15e-7),i&&e.level!==i.level&&i.end<=e.end&&(i=A[2+e.sn-A[0].sn]||null)}else 0===t&&0===A[0].start&&(i=A[0]);if(i&&((!e||e.level===i.level)&&0===Qde(t,n,i)||function(e,A,t){if(A&&0===A.start&&A.level0){var n,r=wF(n=A.tagList).call(n,(function(e,A){return"INF"===A[0]&&(e+=tD(A[1])),e}),t);return e.start<=r}return!1}(i,e,Math.min(r,n))))return i;var a=fde(A,Qde.bind(null,t,n));return!a||a===e&&i?i:a}function Qde(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,t=arguments.length>2?arguments[2]:void 0;if(t.start<=e&&t.start+t.duration>e)return 0;var n=Math.min(A,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-n<=e?1:t.start-n>e&&t.start?-1:0}function pde(e,A,t){var n=1e3*Math.min(A,t.duration+(t.deltaPTS?t.deltaPTS:0));return(t.endProgramDateTime||0)-n>e}function vde(e,A){return fde(e,(function(e){return e.ccA?-1:0}))}function yde(e){switch(e.details){case mCe.FRAG_LOAD_TIMEOUT:case mCe.KEY_LOAD_TIMEOUT:case mCe.LEVEL_LOAD_TIMEOUT:case mCe.MANIFEST_LOAD_TIMEOUT:return!0}return!1}function mde(e,A){var t=yde(A);return e.default["".concat(t?"timeout":"error","Retry")]}function Dde(e,A){var t="linear"===e.backoff?1:Math.pow(2,A);return Math.min(t*e.retryDelayMs,e.maxRetryDelayMs)}function wde(e){return NCe(NCe({},e),{errorRetry:null,timeoutRetry:null})}function Rde(e,A,t,n){if(!e)return!1;var r=null==n?void 0:n.code,i=A499)}(r)||!!t);return e.shouldRetry?e.shouldRetry(e,A,t,n,i):i}var kde=0,Sde=2,Mde=3,Gde=5,_de=0,bde=1,Tde=2,Fde=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,"error-controller",e.logger)).hls=void 0,n.playlistError=0,n.penalizedRenditions={},n.hls=e,n.registerListeners(),n}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.ERROR,this.onError,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.LEVEL_UPDATED,this.onLevelUpdated,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.ERROR,this.onError,this),e.off(DCe.ERROR,this.onErrorOut,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.LEVEL_UPDATED,this.onLevelUpdated,this))}},{key:"destroy",value:function(){this.unregisterListeners(),this.hls=null,this.penalizedRenditions={}}},{key:"startLoad",value:function(e){}},{key:"stopLoad",value:function(){this.playlistError=0}},{key:"getVariantLevelIndex",value:function(e){return(null==e?void 0:e.type)===kCe?e.level:this.hls.loadLevel}},{key:"onManifestLoading",value:function(){this.playlistError=0,this.penalizedRenditions={}}},{key:"onLevelUpdated",value:function(){this.playlistError=0}},{key:"onError",value:function(e,A){var t;if(!A.fatal){var n=this.hls,r=A.context;switch(A.details){case mCe.FRAG_LOAD_ERROR:case mCe.FRAG_LOAD_TIMEOUT:case mCe.KEY_LOAD_ERROR:case mCe.KEY_LOAD_TIMEOUT:return void(A.errorAction=this.getFragRetryOrSwitchAction(A));case mCe.FRAG_PARSING_ERROR:if(null!=(t=A.frag)&&t.gap)return void(A.errorAction=Nde());case mCe.FRAG_GAP:case mCe.FRAG_DECRYPT_ERROR:return A.errorAction=this.getFragRetryOrSwitchAction(A),void(A.errorAction.action=Sde);case mCe.LEVEL_EMPTY_ERROR:case mCe.LEVEL_PARSING_ERROR:var i,o,a=A.parent===kCe?A.level:n.loadLevel;return void(A.details===mCe.LEVEL_EMPTY_ERROR&&null!=(i=A.context)&&null!=(o=i.levelDetails)&&o.live?A.errorAction=this.getPlaylistRetryOrSwitchAction(A,a):(A.levelRetry=!1,A.errorAction=this.getLevelSwitchAction(A,a)));case mCe.LEVEL_LOAD_ERROR:case mCe.LEVEL_LOAD_TIMEOUT:return void("number"==typeof(null==r?void 0:r.level)&&(A.errorAction=this.getPlaylistRetryOrSwitchAction(A,r.level)));case mCe.AUDIO_TRACK_LOAD_ERROR:case mCe.AUDIO_TRACK_LOAD_TIMEOUT:case mCe.SUBTITLE_LOAD_ERROR:case mCe.SUBTITLE_TRACK_LOAD_TIMEOUT:if(r){var s=n.levels[n.loadLevel];if(s&&(r.type===wCe&&s.hasAudioGroup(r.groupId)||r.type===RCe&&s.hasSubtitleGroup(r.groupId)))return A.errorAction=this.getPlaylistRetryOrSwitchAction(A,n.loadLevel),A.errorAction.action=Sde,void(A.errorAction.flags=bde)}return;case mCe.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED:var g=n.levels[n.loadLevel],c=null==g?void 0:g.attrs["HDCP-LEVEL"];return void(c?A.errorAction={action:Sde,flags:Tde,hdcpLevel:c}:this.keySystemError(A));case mCe.BUFFER_ADD_CODEC_ERROR:case mCe.REMUX_ALLOC_ERROR:case mCe.BUFFER_APPEND_ERROR:var l;if(!A.errorAction)A.errorAction=this.getLevelSwitchAction(A,null!=(l=A.level)?l:n.loadLevel);return;case mCe.INTERNAL_EXCEPTION:case mCe.BUFFER_APPENDING_ERROR:case mCe.BUFFER_FULL_ERROR:case mCe.LEVEL_SWITCH_ERROR:case mCe.BUFFER_STALLED_ERROR:case mCe.BUFFER_SEEK_OVER_HOLE:case mCe.BUFFER_NUDGE_ON_STALL:return void(A.errorAction=Nde())}A.type===yCe.KEY_SYSTEM_ERROR&&this.keySystemError(A)}}},{key:"keySystemError",value:function(e){var A=this.getVariantLevelIndex(e.frag);e.levelRetry=!1,e.errorAction=this.getLevelSwitchAction(e,A)}},{key:"getPlaylistRetryOrSwitchAction",value:function(e,A){var t=mde(this.hls.config.playlistLoadPolicy,e),n=this.playlistError++;if(Rde(t,n,yde(e),e.response))return{action:Gde,flags:_de,retryConfig:t,retryCount:n};var r=this.getLevelSwitchAction(e,A);return t&&(r.retryConfig=t,r.retryCount=n),r}},{key:"getFragRetryOrSwitchAction",value:function(e){var A,t,n=this.hls,r=this.getVariantLevelIndex(e.frag),i=n.levels[r],o=n.config,a=o.fragLoadPolicy,s=o.keyLoadPolicy,g=mde(yT(A=e.details).call(A,"key")?s:a,e),c=wF(t=n.levels).call(t,(function(e,A){return e+A.fragmentError}),0);if(i&&(e.details!==mCe.FRAG_GAP&&i.fragmentError++,Rde(g,c,yde(e),e.response)))return{action:Gde,flags:_de,retryConfig:g,retryCount:c};var l=this.getLevelSwitchAction(e,r);return g&&(l.retryConfig=g,l.retryCount=c),l}},{key:"getLevelSwitchAction",value:function(e,A){var t=this.hls;null==A&&(A=t.loadLevel);var n=this.hls.levels[A];if(n){var r,i,o=e.details;n.loadError++,o===mCe.BUFFER_APPEND_ERROR&&n.fragmentError++;var a=-1,s=t.levels,g=t.loadLevel,c=t.minAutoLevel,l=t.maxAutoLevel;t.autoLevelEnabled||(t.loadLevel=-1);for(var u=null==(r=e.frag)?void 0:r.type,I=(u===SCe&&o===mCe.FRAG_PARSING_ERROR||"audio"===e.sourceBufferName&&(o===mCe.BUFFER_ADD_CODEC_ERROR||o===mCe.BUFFER_APPEND_ERROR))&&s.some((function(e){var A=e.audioCodec;return n.audioCodec!==A})),h="video"===e.sourceBufferName&&(o===mCe.BUFFER_ADD_CODEC_ERROR||o===mCe.BUFFER_APPEND_ERROR)&&s.some((function(e){var A=e.codecSet,t=e.audioCodec;return n.codecSet!==A&&n.audioCodec===t})),C=null!=(i=e.context)?i:{},d=C.type,E=C.groupId,f=function(){var A=(B+g)%s.length;if(A!==g&&A>=c&&A<=l&&0===s[A].loadError){var t=s[A];if(o===mCe.FRAG_GAP&&u===kCe&&e.frag){var r=s[A].details;if(r){var i=Bde(e.frag,r.fragments,e.frag.start);if(null!=i&&i.gap)return"continue"}}else{if(d===wCe&&t.hasAudioGroup(E)||d===RCe&&t.hasSubtitleGroup(E))return"continue";if(u===SCe&&null!=(Q=n.audioGroups)&&Q.some((function(e){return t.hasAudioGroup(e)}))||u===MCe&&null!=(p=n.subtitleGroups)&&p.some((function(e){return t.hasSubtitleGroup(e)}))||I&&n.audioCodec===t.audioCodec||!I&&n.audioCodec!==t.audioCodec||h&&n.codecSet===t.codecSet)return"continue"}return a=A,"break"}},B=s.length;B--;){var Q,p,v=f();if("continue"!==v&&"break"===v)break}if(a>-1&&t.loadLevel!==a)return e.levelRetry=!0,this.playlistError=0,{action:Sde,flags:_de,nextAutoLevel:a}}return{action:Sde,flags:bde}}},{key:"onErrorOut",value:function(e,A){var t;switch(null==(t=A.errorAction)?void 0:t.action){case kde:break;case Sde:this.sendAlternateToPenaltyBox(A),A.errorAction.resolved||A.details===mCe.FRAG_GAP?/MediaSource readyState: ended/.test(A.error.message)&&(this.warn('MediaSource ended after "'.concat(A.sourceBufferName,'" sourceBuffer append error. Attempting to recover from media error.')),this.hls.recoverMediaError()):A.fatal=!0}A.fatal&&this.hls.stopLoad()}},{key:"sendAlternateToPenaltyBox",value:function(e){var A=this.hls,t=e.errorAction;if(t){var n=ux(t),r=t.hdcpLevel,i=t.nextAutoLevel;switch(n){case _de:this.switchLevel(e,i);break;case Tde:r&&(A.maxHdcpLevel=Ade[zp(Ade).call(Ade,r)-1],t.resolved=!0),this.warn('Restricting playback to HDCP-LEVEL of "'.concat(A.maxHdcpLevel,'" or lower'))}t.resolved||this.switchLevel(e,i)}}},{key:"switchLevel",value:function(e,A){var t;void 0!==A&&e.errorAction&&(this.warn(xf(t="switching to level ".concat(A," after ")).call(t,e.details)),this.hls.nextAutoLevel=A,e.errorAction.resolved=!0,this.hls.nextLoadLevel=this.hls.nextAutoLevel)}}]),t}(LCe);function Nde(e){var A={action:kde,flags:_de};return e&&(A.resolved=!0),A}var Lde="NOT_LOADED",Ude="APPENDING",Kde="PARTIAL",xde="OK",Yde=0,Pde=1,Hde=function(){function e(A,t,n){GE(this,e),this.subtle=void 0,this.aesIV=void 0,this.aesMode=void 0,this.subtle=A,this.aesIV=t,this.aesMode=n}return NE(e,[{key:"decrypt",value:function(e,A){switch(this.aesMode){case Yde:return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},A,e);case Pde:return this.subtle.decrypt({name:"AES-CTR",counter:this.aesIV,length:64},A,e);default:throw new Error("[AESCrypto] invalid aes mode ".concat(this.aesMode))}}}]),e}();function Jde(e,A,t){return Xp(Uint8Array.prototype)?Xp(e).call(e,A,t):new Uint8Array(Xp(Array.prototype).call(e,A,t))}var Ode=function(){function e(){GE(this,e),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.ksRows=0,this.keySize=0,this.keySchedule=void 0,this.invKeySchedule=void 0,this.initTable()}return NE(e,[{key:"uint8ArrayToUint32Array_",value:function(e){for(var A=new DataView(e),t=new Uint32Array(4),n=0;n<4;n++)t[n]=A.getUint32(4*n);return t}},{key:"initTable",value:function(){var e=this.sBox,A=this.invSBox,t=this.subMix,n=t[0],r=t[1],i=t[2],o=t[3],a=this.invSubMix,s=a[0],g=a[1],c=a[2],l=a[3],u=new Uint32Array(256),I=0,h=0,C=0;for(C=0;C<256;C++)u[C]=C<128?C<<1:C<<1^283;for(C=0;C<256;C++){var d=h^h<<1^h<<2^h<<3^h<<4;d=d>>>8^255&d^99,e[I]=d,A[d]=I;var E=u[I],f=u[E],B=u[f],Q=257*u[d]^16843008*d;n[I]=Q<<24|Q>>>8,r[I]=Q<<16|Q>>>16,i[I]=Q<<8|Q>>>24,o[I]=Q,Q=16843009*B^65537*f^257*E^16843008*I,s[d]=Q<<24|Q>>>8,g[d]=Q<<16|Q>>>16,c[d]=Q<<8|Q>>>24,l[d]=Q,I?(I=E^u[u[u[B^E]]],h^=u[u[h]]):I=h=1}}},{key:"expandKey",value:function(e){for(var A=this.uint8ArrayToUint32Array_(e),t=!0,n=0;n>8|e>>>24}},{key:"decrypt",value:function(e,A,t){for(var n,r,i,o,a,s,g,c,l,u,I,h,C,d,E=this.keySize+6,f=this.invKeySchedule,B=this.invSBox,Q=this.invSubMix,p=Q[0],v=Q[1],y=Q[2],m=Q[3],D=this.uint8ArrayToUint32Array_(t),w=D[0],R=D[1],k=D[2],S=D[3],M=new Int32Array(e),G=new Int32Array(M.length),_=this.networkToHostOrderSwap;A>>24]^v[s>>16&255]^y[g>>8&255]^m[255&c]^f[C],r=p[s>>>24]^v[g>>16&255]^y[c>>8&255]^m[255&a]^f[C+1],i=p[g>>>24]^v[c>>16&255]^y[a>>8&255]^m[255&s]^f[C+2],o=p[c>>>24]^v[a>>16&255]^y[s>>8&255]^m[255&g]^f[C+3],a=n,s=r,g=i,c=o,C+=4;n=B[a>>>24]<<24^B[s>>16&255]<<16^B[g>>8&255]<<8^B[255&c]^f[C],r=B[s>>>24]<<24^B[g>>16&255]<<16^B[c>>8&255]<<8^B[255&a]^f[C+1],i=B[g>>>24]<<24^B[c>>16&255]<<16^B[a>>8&255]<<8^B[255&s]^f[C+2],o=B[c>>>24]<<24^B[a>>16&255]<<16^B[s>>8&255]<<8^B[255&g]^f[C+3],G[A]=_(n^w),G[A+1]=_(o^R),G[A+2]=_(i^k),G[A+3]=_(r^S),w=l,R=u,k=I,S=h,A+=4}return G.buffer}}]),e}(),zde=function(){function e(A,t,n){GE(this,e),this.subtle=void 0,this.key=void 0,this.aesMode=void 0,this.subtle=A,this.key=t,this.aesMode=n}return NE(e,[{key:"expandKey",value:function(){var e=function(e){switch(e){case Yde:return"AES-CBC";case Pde:return"AES-CTR";default:throw new Error("[FastAESKey] invalid aes mode ".concat(e))}}(this.aesMode);return this.subtle.importKey("raw",this.key,{name:e},!1,["encrypt","decrypt"])}}]),e}();function jde(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("undefined"!=typeof TextDecoder){var t=new TextDecoder("utf-8").decode(e);if(A){var n=zp(t).call(t,"\0");return-1!==n?t.substring(0,n):t}return t.replace(/\0/g,"")}for(var r,i,o,a=e.length,s="",g=0;g>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:s+=String.fromCharCode(r);break;case 12:case 13:i=e[g++],s+=String.fromCharCode((31&r)<<6|63&i);break;case 14:i=e[g++],o=e[g++],s+=String.fromCharCode((15&r)<<12|(63&i)<<6|(63&o)<<0)}}return s}var Xde={hexDump:function(e){for(var A="",t=0;t>24,e[A+1]=t>>16&255,e[A+2]=t>>8&255,e[A+3]=255&t}function cEe(e,A){var t=[];if(!A.length)return t;for(var n=e.byteLength,r=0;r1?r+i:n;if(rEe(e.subarray(r+4,r+8))===A[0])if(1===A.length)t.push(e.subarray(r+8,o));else{var a=cEe(e.subarray(r+8,o),Xp(A).call(A,1));a.length&&tEe.apply(t,a)}r=o}return t}function lEe(e){var A=[],t=e[0],n=8,r=oEe(e,n);n+=4;var i=0,o=0;0===t?(i=oEe(e,n),o=oEe(e,n+4),n+=8):(i=aEe(e,n),o=aEe(e,n+8),n+=16),n+=2;var a=e.length+o,s=iEe(e,n);n+=2;for(var g=0;g>>31)return KCe.warn("SIDX has hierarchical references (not supported)"),null;var I=oEe(e,c);c+=4,A.push({referenceSize:u,subsegmentDuration:I,info:{duration:I/r,start:a,end:a+u-1}}),a+=u,n=c+=4}return{earliestPresentationTime:i,timescale:r,version:t,referencesCount:s,references:A}}function uEe(e){for(var A=[],t=cEe(e,["moov","trak"]),n=0;n7){var c=4;if(3!==g[c++])break;c=hEe(g,c),c+=2;var l=g[c++];if(128&l&&(c+=2),64&l&&(c+=g[c++]),4!==g[c++])break;c=hEe(g,c);var u=g[c++];if(64!==u)break;if(r+="."+CEe(u),c+=12,5!==g[c++])break;c=hEe(g,c);var I=g[c++],h=(248&I)>>3;31===h&&(h+=1+((7&I)<<3)+((224&g[c])>>5)),r+="."+h}break;case"hvc1":case"hev1":var C=cEe(t,["hvcC"])[0],d=C[1],E=["","A","B","C"][d>>6],f=31&d,B=oEe(C,2),Q=(32&d)>>5?"H":"L",p=C[12],v=C.subarray(6,12);r+="."+E+f,r+="."+B.toString(16).toUpperCase(),r+="."+Q+p;for(var y="",m=v.length;m--;){var D=v[m];if(D||y)y="."+D.toString(16).toUpperCase()+y}r+=y;break;case"dvh1":case"dvhe":var w=cEe(t,["dvcC"])[0],R=w[2]>>1&127,k=w[2]<<5&32|w[3]>>3&31;r+="."+dEe(R)+"."+dEe(k);break;case"vp09":var S=cEe(t,["vpcC"])[0],M=S[4],G=S[5],_=S[6]>>4&15;r+="."+dEe(M)+"."+dEe(G)+"."+dEe(_);break;case"av01":var b=cEe(t,["av1C"])[0],T=b[1]>>>5,F=31&b[1],N=b[2]>>>7?"H":"M",L=(64&b[2])>>6,U=(32&b[2])>>5,K=2===T&&L?U?12:10:L?10:8,x=(16&b[2])>>4,Y=(8&b[2])>>3,P=(4&b[2])>>2,H=3&b[2];r+="."+T+"."+dEe(F)+N+"."+dEe(K)+"."+x+"."+Y+P+H+"."+dEe(1)+"."+dEe(1)+"."+dEe(1)+".0"}return{codec:r,encrypted:i}}function hEe(e,A){for(var t=A+5;128&e[A++]&&A>1&63;return 39===t||40===t}return 6===(31&A)}function vEe(e,A,t,n){var r=yEe(e),i=0;i+=A;for(var o=0,a=0,s=0;i=r.length)break;o+=s=r[i++]}while(255===s);a=0;do{if(i>=r.length)break;a+=s=r[i++]}while(255===s);var g=r.length-i,c=i;if(ag){var l;KCe.error(xf(l="Malformed SEI payload. ".concat(a," is too small, only ")).call(l,g," bytes left to parse."));break}if(4===o){if(181===r[c++]){var u=iEe(r,c);if(c+=2,49===u){var I=oEe(r,c);if(c+=4,1195456820===I){var h=r[c++];if(3===h){var C=r[c++],d=64&C,E=d?2+3*(31&C):0,f=new Uint8Array(E);if(d){f[0]=C;for(var B=1;B16){for(var Q=[],p=0;p<16;p++){var v=r[c++].toString(16);Q.push(1==v.length?"0"+v:v),3!==p&&5!==p&&7!==p&&9!==p||Q.push("-")}for(var y=a-16,m=new Uint8Array(y),D=0;D0&&new DataView(i.buffer).setUint32(0,t.byteLength,!1),function(e){for(var A=arguments.length,t=new Array(A>1?A-1:0),n=1;n>24&255,a[1]=i>>16&255,a[2]=i>>8&255,a[3]=255&i,a.set(e,4),o=0,i=8;o>>24;if(0!==r&&1!==r)return{offset:t,size:A};var i=e.buffer,o=Xde.hexDump(new Uint8Array(i,t+12,16)),a=e.getUint32(28),s=null,g=null;if(0===r){if(A-321&&void 0!==arguments[1]?arguments[1]:{}).removePKCS7Padding,n=void 0===t||t;if(GE(this,e),this.logEnabled=!0,this.removePKCS7Padding=void 0,this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null,this.useSoftware=void 0,this.enableSoftwareAES=void 0,this.enableSoftwareAES=A.enableSoftwareAES,this.removePKCS7Padding=n,n)try{var r=self.crypto;r&&(this.subtle=r.subtle||r.webkitSubtle)}catch(P7){}this.useSoftware=!this.subtle}return NE(e,[{key:"destroy",value:function(){this.subtle=null,this.softwareDecrypter=null,this.key=null,this.fastAesKey=null,this.remainderData=null,this.currentIV=null,this.currentResult=null}},{key:"isSync",value:function(){return this.useSoftware}},{key:"flush",value:function(){var e=this.currentResult,A=this.remainderData;if(!e||A)return this.reset(),null;var t,n,r,i=new Uint8Array(e);return this.reset(),this.removePKCS7Padding?(n=(t=i).byteLength,(r=n&&new DataView(t.buffer).getUint8(n-1))?Jde(t,0,n-r):t):i}},{key:"reset",value:function(){this.currentResult=null,this.currentIV=null,this.remainderData=null,this.softwareDecrypter&&(this.softwareDecrypter=null)}},{key:"decrypt",value:function(e,A,t,n){var r=this;return this.useSoftware?new Op((function(i,o){var a=ArrayBuffer.isView(e)?e:new Uint8Array(e);r.softwareDecrypt(a,A,t,n);var s=r.flush();s?i(s.buffer):o(new Error("[softwareDecrypt] Failed to decrypt data"))})):this.webCryptoDecrypt(new Uint8Array(e),A,t,n)}},{key:"softwareDecrypt",value:function(e,A,t,n){var r=this.currentIV,i=this.currentResult,o=this.remainderData;if(n!==Yde||16!==A.byteLength)return KCe.warn("SoftwareDecrypt: can only handle AES-128-CBC"),null;this.logOnce("JS AES decrypt"),o&&(e=BEe(o,e),this.remainderData=null);var a=this.getValidChunk(e);if(!a.length)return null;r&&(t=r);var s=this.softwareDecrypter;s||(s=this.softwareDecrypter=new Ode),s.expandKey(A);var g=i;return this.currentResult=s.decrypt(a.buffer,0,t),this.currentIV=Jde(a,-16).buffer,g||null}},{key:"webCryptoDecrypt",value:function(e,A,t,n){var r=this;if(this.key!==A||!this.fastAesKey){if(!this.subtle)return Op.resolve(this.onWebCryptoError(e,A,t,n));this.key=A,this.fastAesKey=new zde(this.subtle,A,n)}return this.fastAesKey.expandKey().then((function(A){return r.subtle?(r.logOnce("WebCrypto AES decrypt"),new Hde(r.subtle,new Uint8Array(t),n).decrypt(e.buffer,A)):Op.reject(new Error("web crypto not initialized"))})).catch((function(i){var o;return KCe.warn(xf(o="[decrypter]: WebCrypto Error, disable WebCrypto API, ".concat(i.name,": ")).call(o,i.message)),r.onWebCryptoError(e,A,t,n)}))}},{key:"onWebCryptoError",value:function(e,A,t,n){var r=this.enableSoftwareAES;if(r){this.useSoftware=!0,this.logEnabled=!0,this.softwareDecrypt(e,A,t,n);var i=this.flush();if(i)return i.buffer}throw new Error("WebCrypto"+(r?" and softwareDecrypt":"")+": failed to decrypt data")}},{key:"getValidChunk",value:function(e){var A=e,t=e.length-e.length%16;return t!==e.length&&(A=Jde(e,0,t),this.remainderData=Jde(e,t)),A}},{key:"logOnce",value:function(e){this.logEnabled&&(KCe.log("[decrypter]: ".concat(e)),this.logEnabled=!1)}}]),e}(),REe=Math.pow(2,17),kEe=function(){function e(A){GE(this,e),this.config=void 0,this.loader=null,this.partLoadTimeout=-1,this.config=A}return NE(e,[{key:"destroy",value:function(){this.loader&&(this.loader.destroy(),this.loader=null)}},{key:"abort",value:function(){this.loader&&this.loader.abort()}},{key:"load",value:function(e,A){var t=this,n=e.url;if(!n)return Op.reject(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,error:new Error("Fragment does not have a ".concat(n?"part list":"url")),networkDetails:null}));this.abort();var r=this.config,i=r.fLoader,o=r.loader;return new Op((function(a,s){if(t.loader&&t.loader.destroy(),e.gap){if(e.tagList.some((function(e){return"GAP"===e[0]})))return void s(MEe(e));e.gap=!1}var g=t.loader=i?new i(r):new o(r),c=SEe(e);e.loader=g;var l=wde(r.fragLoadPolicy.default),u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:"initSegment"===e.sn?1/0:REe};e.stats=g.stats;var I={onSuccess:function(A,n,r,i){t.resetLoader(e,g);var o=A.data;r.resetIV&&e.decryptdata&&(e.decryptdata.iv=new Uint8Array(Xp(o).call(o,0,16)),o=Xp(o).call(o,16)),a({frag:e,part:null,payload:o,networkDetails:i})},onError:function(A,r,i,o){var a;t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,response:NCe({url:n,data:void 0},A),error:new Error(xf(a="HTTP Error ".concat(A.code," ")).call(a,A.text)),networkDetails:i,stats:o}))},onAbort:function(A,n,r){t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.INTERNAL_ABORTED,fatal:!1,frag:e,error:new Error("Aborted"),networkDetails:r,stats:A}))},onTimeout:function(A,n,r){t.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,error:new Error("Timeout after ".concat(u.timeout,"ms")),networkDetails:r,stats:A}))}};A&&(I.onProgress=function(t,n,r,i){return A({frag:e,part:null,payload:r,networkDetails:i})}),g.load(c,u,I)}))}},{key:"loadPart",value:function(e,A,t){var n=this;this.abort();var r=this.config,i=r.fLoader,o=r.loader;return new Op((function(a,s){if(n.loader&&n.loader.destroy(),e.gap||A.gap)s(MEe(e,A));else{var g=n.loader=i?new i(r):new o(r),c=SEe(e,A);e.loader=g;var l=wde(r.fragLoadPolicy.default),u={loadPolicy:l,timeout:l.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0,highWaterMark:REe};A.stats=g.stats,g.load(c,u,{onSuccess:function(r,i,o,s){n.resetLoader(e,g),n.updateStatsFromPart(e,A);var c={frag:e,part:A,payload:r.data,networkDetails:s};t(c),a(c)},onError:function(t,r,i,o){var a;n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_ERROR,fatal:!1,frag:e,part:A,response:NCe({url:c.url,data:void 0},t),error:new Error(xf(a="HTTP Error ".concat(t.code," ")).call(a,t.text)),networkDetails:i,stats:o}))},onAbort:function(t,r,i){e.stats.aborted=A.stats.aborted,n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.INTERNAL_ABORTED,fatal:!1,frag:e,part:A,error:new Error("Aborted"),networkDetails:i,stats:t}))},onTimeout:function(t,r,i){n.resetLoader(e,g),s(new GEe({type:yCe.NETWORK_ERROR,details:mCe.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e,part:A,error:new Error("Timeout after ".concat(u.timeout,"ms")),networkDetails:i,stats:t}))}})}}))}},{key:"updateStatsFromPart",value:function(e,A){var t=e.stats,n=A.stats,r=n.total;if(t.loaded+=n.loaded,r){var i=Math.round(e.duration/A.duration),o=Math.min(Math.round(t.loaded/r),i),a=(i-o)*Math.round(t.loaded/o);t.total=t.loaded+a}else t.total=Math.max(t.loaded,t.total);var s=t.loading,g=n.loading;s.start?s.first+=g.first-g.start:(s.start=g.start,s.first=g.first),s.end=g.end}},{key:"resetLoader",value:function(e,A){e.loader=null,this.loader===A&&(self.clearTimeout(this.partLoadTimeout),this.loader=null),A.destroy()}}]),e}();function SEe(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=t||e,r={frag:e,part:t,responseType:"arraybuffer",url:n.url,headers:{},rangeStart:0,rangeEnd:0},i=n.byteRangeStartOffset,o=n.byteRangeEndOffset;if(QCe(i)&&QCe(o)){var a,s=i,g=o;if("initSegment"===e.sn&&("AES-128"===(A=null==(a=e.decryptdata)?void 0:a.method)||"AES-256"===A)){var c=o-i;c%16&&(g=o+(16-c%16)),0!==i&&(r.resetIV=!0,s=i-16)}r.rangeStart=s,r.rangeEnd=g}return r}function MEe(e,A){var t=new Error("GAP ".concat(e.gap?"tag":"attribute"," found")),n={type:yCe.MEDIA_ERROR,details:mCe.FRAG_GAP,fatal:!1,frag:e,error:t,networkDetails:null};return A&&(n.part=A),(A||e).stats.aborted=!0,new GEe(n)}var GEe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,e.error.message)).data=void 0,n.data=e,n}return NE(t)}(zk(Error)),_Ee=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,e,n))._boundTick=void 0,r._tickTimer=null,r._tickInterval=null,r._tickCallCount=0,r._boundTick=r.tick.bind(Gk(r)),r}return NE(t,[{key:"destroy",value:function(){this.onHandlerDestroying(),this.onHandlerDestroyed()}},{key:"onHandlerDestroying",value:function(){this.clearNextTick(),this.clearInterval()}},{key:"onHandlerDestroyed",value:function(){}},{key:"hasInterval",value:function(){return!!this._tickInterval}},{key:"hasNextTick",value:function(){return!!this._tickTimer}},{key:"setInterval",value:function(e){return!this._tickInterval&&(this._tickCallCount=0,this._tickInterval=self.setInterval(this._boundTick,e),!0)}},{key:"clearInterval",value:function(){return!!this._tickInterval&&(self.clearInterval(this._tickInterval),this._tickInterval=null,!0)}},{key:"clearNextTick",value:function(){return!!this._tickTimer&&(self.clearTimeout(this._tickTimer),this._tickTimer=null,!0)}},{key:"tick",value:function(){this._tickCallCount++,1===this._tickCallCount&&(this.doTick(),this._tickCallCount>1&&this.tickImmediate(),this._tickCallCount=0)}},{key:"tickImmediate",value:function(){this.clearNextTick(),this._tickTimer=self.setTimeout(this._boundTick,0)}},{key:"doTick",value:function(){}}]),t}(LCe),bEe=NE((function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];GE(this,e),this.level=void 0,this.sn=void 0,this.part=void 0,this.id=void 0,this.size=void 0,this.partial=void 0,this.transmuxing={start:0,executeStart:0,executeEnd:0,end:0},this.buffering={audio:{start:0,executeStart:0,executeEnd:0,end:0},video:{start:0,executeStart:0,executeEnd:0,end:0},audiovideo:{start:0,executeStart:0,executeEnd:0,end:0}},this.level=A,this.sn=t,this.id=n,this.size=r,this.part=i,this.partial=o}));var TEe={length:0,start:function(){return 0},end:function(){return 0}},FEe=function(){function e(){GE(this,e)}return NE(e,null,[{key:"isBuffered",value:function(A,t){if(A)for(var n=e.getBuffered(A),r=n.length;r--;)if(t>=n.start(r)&&t<=n.end(r))return!0;return!1}},{key:"bufferInfo",value:function(A,t,n){if(A){var r=e.getBuffered(A);if(r.length){for(var i=[],o=0;oo&&(n[i-1].end=e[r].end):n.push(e[r])}else n.push(e[r])}else n=e;for(var a,s=0,g=A,c=A,l=0;l=u&&ASue?1/0:A}},{key:"hexadecimalInteger",value:function(e){if(this[e]){var A,t=Xp(A=this[e]||"0x").call(A,2);t=(1&t.length?"0":"")+t;for(var n=new Uint8Array(t.length/2),r=0;rSue?1/0:A}},{key:"decimalFloatingPoint",value:function(e){return tD(this[e])}},{key:"optionalFloat",value:function(e,A){var t=this[e];return t?tD(t):A}},{key:"enumeratedString",value:function(e){return this[e]}},{key:"enumeratedStringList",value:function(e,A){var t,n=this[e];return wF(t=n?n.split(/[ ,]+/):[]).call(t,(function(e,A){return e[A.toLowerCase()]=!0,e}),A)}},{key:"bool",value:function(e){return"YES"===this[e]}},{key:"decimalResolution",value:function(e){var A=UEe.exec(this[e]);if(null!==A)return{width:Uv(A[1],10),height:Uv(A[2],10)}}}],[{key:"parseAttrList",value:function(e,A){var t,n,r={};for(KEe.lastIndex=0;null!==(n=KEe.exec(e));){var i,o=lD(i=n[1]).call(i),a=n[2],s=0===zp(a).call(a,'"')&&SL(a).call(a,'"')===a.length-1,g=!1;if(s)a=Xp(a).call(a,1,-1);else switch(o){case"IV":case"SCTE35-CMD":case"SCTE35-IN":case"SCTE35-OUT":g=!0}if(A&&(s||g))a=LEe(A,a);else if(!g&&!s)switch(o){case"CLOSED-CAPTIONS":if("NONE"===a)break;case"ALLOWED-CPC":case"CLASS":case"ASSOC-LANGUAGE":case"AUDIO":case"BYTERANGE":case"CHANNELS":case"CHARACTERISTICS":case"CODECS":case"DATA-ID":case"END-DATE":case"GROUP-ID":case"ID":case"IMPORT":case"INSTREAM-ID":case"KEYFORMAT":case"KEYFORMATVERSIONS":case"LANGUAGE":case"NAME":case"PATHWAY-ID":case"QUERYPARAM":case"RECENTLY-REMOVED-DATERANGES":case"SERVER-URI":case"STABLE-RENDITION-ID":case"STABLE-VARIANT-ID":case"START-DATE":case"SUBTITLES":case"SUPPLEMENTAL-CODECS":case"URI":case"VALUE":case"VIDEO":case"X-ASSET-LIST":case"X-ASSET-URI":KCe.warn(xf(t="".concat(e,": attribute ")).call(t,o," is missing quotes"))}r[o]=a}return r}}]),e}(),YEe=function(){function e(A,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;if(GE(this,e),this.attr=void 0,this.tagAnchor=void 0,this.tagOrder=void 0,this._startDate=void 0,this._endDate=void 0,this._dateAtEnd=void 0,this._cue=void 0,this._badValueForSameId=void 0,this.tagAnchor=(null==t?void 0:t.tagAnchor)||null,this.tagOrder=null!=(n=null==t?void 0:t.tagOrder)?n:r,t){var i=t.attr;for(var o in i)if(Object.prototype.hasOwnProperty.call(A,o)&&A[o]!==i[o]){var a;KCe.warn(xf(a='DATERANGE tag attribute: "'.concat(o,'" does not match for tags with ID: "')).call(a,A.ID,'"')),this._badValueForSameId=o;break}A=TCe(new xEe({}),i,A)}if(this.attr=A,t?(this._startDate=t._startDate,this._cue=t._cue,this._endDate=t._endDate,this._dateAtEnd=t._dateAtEnd):this._startDate=new Date(A["START-DATE"]),"END-DATE"in this.attr){var s=(null==t?void 0:t.endDate)||new Date(this.attr["END-DATE"]);QCe(s.getTime())&&(this._endDate=s)}}return NE(e,[{key:"id",get:function(){return this.attr.ID}},{key:"class",get:function(){return this.attr.CLASS}},{key:"cue",get:function(){var e=this._cue;return void 0===e?this._cue=this.attr.enumeratedStringList(this.attr.CUE?"CUE":"X-CUE",{pre:!1,post:!1,once:!1}):e}},{key:"startTime",get:function(){var e,A=this.tagAnchor;return null===A||null===A.programDateTime?(KCe.warn(xf(e='Expected tagAnchor Fragment with PDT set for DateRange "'.concat(this.id,'": ')).call(e,A)),NaN):A.start+(this.startDate.getTime()-A.programDateTime)/1e3}},{key:"startDate",get:function(){return this._startDate}},{key:"endDate",get:function(){var e=this._endDate||this._dateAtEnd;if(e)return e;var A=this.duration;return null!==A?this._dateAtEnd=new Date(this._startDate.getTime()+1e3*A):null}},{key:"duration",get:function(){if("DURATION"in this.attr){var e=this.attr.decimalFloatingPoint("DURATION");if(QCe(e))return e}else if(this._endDate)return(this._endDate.getTime()-this._startDate.getTime())/1e3;return null}},{key:"plannedDuration",get:function(){return"PLANNED-DURATION"in this.attr?this.attr.decimalFloatingPoint("PLANNED-DURATION"):null}},{key:"endOnNext",get:function(){return this.attr.bool("END-ON-NEXT")}},{key:"isInterstitial",get:function(){return"com.apple.hls.interstitial"===this.class}},{key:"isValid",get:function(){return!!this.id&&!this._badValueForSameId&&QCe(this.startDate.getTime())&&(null===this.duration||this.duration>=0)&&(!this.endOnNext||!!this.class)&&(!this.attr.CUE||!this.cue.pre&&!this.cue.post||this.cue.pre!==this.cue.post)&&(!this.isInterstitial||"X-ASSET-URI"in this.attr||"X-ASSET-LIST"in this.attr)}}]),e}();function PEe(e){return"AES-128"===e||"AES-256"===e||"AES-256-CTR"===e}function HEe(e){switch(e){case"AES-128":case"AES-256":return Yde;case"AES-256-CTR":return Pde;default:throw new Error("invalid full segment method ".concat(e))}}function JEe(e){return Uint8Array.from(atob(e),(function(e){return e.charCodeAt(0)}))}function OEe(e){return Uint8Array.from(unescape(encodeURIComponent(e)),(function(e){return e.charCodeAt(0)}))}function zEe(e){var A,t,n=e.split(":"),r=null;if("data"===n[0]&&2===n.length){var i=n[1].split(";"),o=i[i.length-1].split(",");if(2===o.length){var a="base64"===o[0],s=o[1];a?(Cv(i).call(i,-1,1),r=JEe(s)):(A=OEe(s).subarray(0,16),(t=new Uint8Array(16)).set(A,16-A.length),r=t)}}return r}var jEe="undefined"!=typeof self?self:void 0,XEe="org.w3.clearkey",qEe="com.apple.fps",VEe="com.microsoft.playready",WEe="com.widevine.alpha",ZEe="org.w3.clearkey",$Ee="com.apple.streamingkeydelivery",efe="com.microsoft.playready",Afe="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed";function tfe(e){switch(e){case $Ee:return qEe;case efe:return VEe;case Afe:return WEe;case ZEe:return XEe}}var nfe="1077efecc0b24d02ace33c1e52e2fb4b",rfe="e2719d58a985b3c9781ab030af78d30e",ife="9a04f07998404286ab92e65be0885f95",ofe="edef8ba979d64acea3c827dcd51d21ed";function afe(e){return e===ofe?WEe:e===ife?VEe:e===nfe||e===rfe?XEe:void 0}function sfe(e){switch(e){case qEe:return $Ee;case VEe:return efe;case WEe:return Afe;case XEe:return ZEe}}function gfe(e){var A,t=e.drmSystems,n=e.widevineLicenseUrl,r=t?jv(A=[qEe,WEe,VEe,XEe]).call(A,(function(e){return!!t[e]})):[];return!r[WEe]&&n&&r.push(WEe),r}var cfe,lfe=null!=jEe&&null!=(cfe=jEe.navigator)&&cfe.requestMediaKeySystemAccess?self.navigator.requestMediaKeySystemAccess.bind(self.navigator):null;function ufe(e,A,t,n){var r;switch(e){case qEe:r=["cenc","sinf"];break;case WEe:case VEe:r=["cenc"];break;case XEe:r=["cenc","keyids"];break;default:throw new Error("Unknown key-system: ".concat(e))}return function(e,A,t,n){var r={initDataTypes:e,persistentState:n.persistentState||"optional",distinctiveIdentifier:n.distinctiveIdentifier||"optional",sessionTypes:n.sessionTypes||[n.sessionType||"temporary"],audioCapabilities:Jp(A).call(A,(function(e){return{contentType:"audio/mp4; codecs=".concat(e),robustness:n.audioRobustness||"",encryptionScheme:n.audioEncryptionScheme||null}})),videoCapabilities:Jp(t).call(t,(function(e){return{contentType:"video/mp4; codecs=".concat(e),robustness:n.videoRobustness||"",encryptionScheme:n.videoEncryptionScheme||null}}))};return[r]}(r,A,t,n)}function Ife(e){var A=new Uint16Array(e.buffer,e.byteOffset,e.byteLength/2),t=String.fromCharCode.apply(null,nm(A)),n=t.substring(zp(t).call(t,"<"),t.length),r=(new DOMParser).parseFromString(n,"text/xml").getElementsByTagName("KID")[0];if(r){var i=r.childNodes[0]?r.childNodes[0].nodeValue:r.getAttribute("VALUE");if(i){var o=JEe(i).subarray(0,16);return function(e){var A=function(e,A,t){var n=e[A];e[A]=e[t],e[t]=n};A(e,0,3),A(e,1,2),A(e,4,5),A(e,6,7)}(o),o}}return null}var hfe={},Cfe=function(){function e(A,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[1],i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:null;GE(this,e),this.uri=void 0,this.method=void 0,this.keyFormat=void 0,this.keyFormatVersions=void 0,this.encrypted=void 0,this.isCommonEncryption=void 0,this.iv=null,this.key=null,this.keyId=null,this.pssh=null,this.method=A,this.uri=t,this.keyFormat=n,this.keyFormatVersions=r,this.iv=i,this.encrypted=!!A&&"NONE"!==A,this.isCommonEncryption=this.encrypted&&!PEe(A)}return NE(e,[{key:"isSupported",value:function(){var e;if(this.method){if(PEe(this.method)||"NONE"===this.method)return!0;if("identity"===this.keyFormat)return"SAMPLE-AES"===this.method;switch(this.keyFormat){case $Ee:case Afe:case efe:case ZEe:return-1!==zp(e=["ISO-23001-7","SAMPLE-AES","SAMPLE-AES-CENC","SAMPLE-AES-CTR"]).call(e,this.method)}}return!1}},{key:"getDecryptData",value:function(A){if(!this.encrypted||!this.uri)return null;if(PEe(this.method)&&this.uri&&!this.iv){"number"!=typeof A&&(KCe.warn('missing IV for initialization segment with method="'.concat(this.method,'" - compliance issue')),A=0);var t=function(e){for(var A=new Uint8Array(16),t=12;t<16;t++)A[t]=e>>8*(15-t)&255;return A}(A);return new e(this.method,this.uri,"identity",this.keyFormatVersions,t)}var n=zEe(this.uri);if(n)switch(this.keyFormat){case Afe:this.pssh=n,n.length>=22&&(this.keyId=n.subarray(n.length-22,n.length-6));break;case efe:var r=new Uint8Array([154,4,240,121,152,64,66,134,171,146,230,91,224,136,95,149]);this.pssh=mEe(r,0,n),this.keyId=Ife(n);break;default:var i=n.subarray(0,16);if(16!==i.length){var o=new Uint8Array(16);o.set(i,16-i.length),i=o}this.keyId=i}if(!this.keyId||16!==this.keyId.byteLength){var a=hfe[this.uri];if(!a){var s=jp(hfe).length%Sue;a=new Uint8Array(16),new DataView(a.buffer,12,4).setUint32(0,s),hfe[this.uri]=a}this.keyId=a}return this}}],[{key:"clearKeyUriToKeyIdMap",value:function(){hfe={}}}]),e}();function dfe(e,A,t,n,r){var i=t[n];if(i){var o,a=i.programDateTime;if(A>=a||0===n)if(A<=a+1e3*(((null==(o=t[n+1])?void 0:o.start)||r)-i.start)){var s=t[n].sn-e.startSN,g=e.fragments;if(g.length>t.length)for(var c=(t[n+1]||g[g.length-1]).sn-e.startSN;c>s;c--){var l=g[c].programDateTime;if(A>=l&&Ae.sn?(r=t-e.start,n=e):(r=e.start-t,n=A),n.duration!==r&&n.setDuration(r)}else if(A.sn>e.sn){e.cc===A.cc&&e.minEndPTS?A.setStart(e.start+(e.minEndPTS-e.start)):A.setStart(e.start+e.duration)}else A.setStart(Math.max(e.start-A.duration,0))}function Bfe(e,A,t,n,r,i){n-t<=0&&(KCe.warn("Fragment should have a positive duration",A),n=t+A.duration,i=r+A.duration);var o=t,a=n,s=A.startPTS,g=A.endPTS;if(QCe(s)){var c=Math.abs(s-t);QCe(A.deltaPTS)?A.deltaPTS=Math.max(c,A.deltaPTS):A.deltaPTS=c,o=Math.max(t,s),t=Math.min(t,s),r=Math.min(r,A.startDTS),a=Math.min(n,g),n=Math.max(n,g),i=Math.max(i,A.endDTS)}var l=t-A.start;0!==A.start&&A.setStart(t),A.setDuration(n-A.start),A.startPTS=t,A.maxStartPTS=o,A.startDTS=r,A.endPTS=n,A.minEndPTS=a,A.endDTS=i;var u,I=A.sn;if(!e||Ie.endSN)return 0;var h=I-e.startSN,C=e.fragments;for(C[h]=A,u=h;u>0;u--)ffe(C[u],C[u-1]);for(u=h;u=0;i--){var o=r[i].initSegment;if(o){n=o;break}}e.fragmentHint&&delete e.fragmentHint.endPTS;var a,s=0;!function(e,A,t){for(var n,r,i=A.skippedSegments,o=Math.max(e.startSN,A.startSN)-A.startSN,a=(e.fragmentHint?1:0)+(i?A.endSN:Math.min(e.endSN,A.endSN))-A.startSN,s=A.startSN-e.startSN,g=A.fragmentHint?xf(n=A.fragments).call(n,A.fragmentHint):A.fragments,c=e.fragmentHint?xf(r=e.fragments).call(r,e.fragmentHint):e.fragments,l=o;l<=a;l++){var u=c[s+l],I=g[l];i&&!I&&u&&(I=A.fragments[l]=u),u&&I&&t(u,I)}}(e,A,(function(e,t){e.relurl&&(s=e.cc-t.cc),QCe(e.startPTS)&&QCe(e.endPTS)&&(t.setStart(t.startPTS=e.startPTS),t.startDTS=e.startDTS,t.maxStartPTS=e.maxStartPTS,t.endPTS=e.endPTS,t.endDTS=e.endDTS,t.minEndPTS=e.minEndPTS,t.setDuration(e.endPTS-e.startPTS),t.duration&&(a=t),A.PTSKnown=A.alignedSliding=!0),e.hasStreams&&(t.elementaryStreams=e.elementaryStreams),t.loader=e.loader,e.hasStats&&(t.stats=e.stats),e.initSegment&&(t.initSegment=e.initSegment,n=e.initSegment)}));var g=A.fragmentHint?xf(t=A.fragments).call(t,A.fragmentHint):A.fragments;if(n&&g.forEach((function(e){var A;!e||e.initSegment&&e.initSegment.relurl!==(null==(A=n)?void 0:A.relurl)||(e.initSegment=n)})),A.skippedSegments)if(A.deltaUpdateFailed=A.fragments.some((function(e){return!e})),A.deltaUpdateFailed){KCe.warn("[level-helper] Previous playlist missing segments skipped in delta playlist");for(var c=A.skippedSegments;c--;)A.fragments.shift();A.startSN=A.fragments[0].sn,A.startCC||(A.startCC=A.fragments[0].cc)}else{var l;A.canSkipDateRanges&&(A.dateRanges=function(e,A){var t=A.dateRanges,n=A.recentlyRemovedDateranges,r=TCe({},e);n&&n.forEach((function(e){delete r[e]}));var i=jp(r).length;i&&jp(t).forEach((function(e){var A=r[e],n=new YEe(t[e].attr,A);n.isValid?(r[e]=n,A||(n.tagOrder+=i)):KCe.warn('Ignoring invalid Playlist Delta Update DATERANGE tag: "'.concat($b(t[e].attr),'"'))}));return r}(e.dateRanges,A));var u=jv(l=e.fragments).call(l,(function(e){return e.rawProgramDateTime}));if(e.hasProgramDateTime&&!A.hasProgramDateTime)for(var I=1;I2&&void 0!==arguments[2])||arguments[2],n=A.startSN+A.skippedSegments-e.startSN,r=e.fragments,i=n>=0,o=0;if(i&&ne.startCC)}(A,e)){var t=Math.min(A.endCC,e.endCC),n=wfe(A.fragments,t),r=wfe(e.fragments,t);if(n&&r)KCe.log("Aligning playlist at start of dicontinuity sequence ".concat(t)),kfe(n.start-r.start,e)}}function Mfe(e,A){if(e.hasProgramDateTime&&A.hasProgramDateTime){var t=e.fragments,n=A.fragments;if(t.length&&n.length){var r,i,o=Math.min(A.endCC,e.endCC);A.startCCg.end){var I=s>u;(sa.lastCurrentTime&&(a.lastCurrentTime=s),!a.loadingParts)){var h,C=Math.max(g.end,s),d=a.shouldLoadParts(a.getLevelDetails(),C);if(d)a.log(xf(h="LL-Part loading ON after seeking to ".concat(s.toFixed(2)," with buffer @")).call(h,C.toFixed(2))),a.loadingParts=d}a.hls.hasEnoughToStart||g.len||(a.log("setting startPosition to ".concat(s," because of seek before start")),a.nextLoadPosition=a.startPosition=s),a.tickImmediate()},a.onMediaEnded=function(){a.log("setting startPosition to 0 because media ended"),a.startPosition=a.lastCurrentTime=0,a.triggerEnded()},a.playlistType=o,a.hls=e,a.fragmentLoader=new kEe(e.config),a.keyLoader=r,a.fragmentTracker=n,a.config=e.config,a.decrypter=new wEe(e.config),a}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(DCe.ERROR,this.onError,this)}},{key:"doTick",value:function(){this.onTickEnd()}},{key:"onTickEnd",value:function(){}},{key:"startLoad",value:function(e){}},{key:"stopLoad",value:function(){if(this.state!==_fe){this.fragmentLoader.abort(),this.keyLoader.abort(this.playlistType);var e=this.fragCurrent;null!=e&&e.loader&&(e.abortRequests(),this.fragmentTracker.removeFragment(e)),this.resetTransmuxer(),this.fragCurrent=null,this.fragPrevious=null,this.clearInterval(),this.clearNextTick(),this.state=_fe}}},{key:"startPositionValue",get:function(){var e=this.nextLoadPosition,A=this.startPosition;return-1===A&&e?e:A}},{key:"bufferingEnabled",get:function(){return this.buffering}},{key:"pauseBuffering",value:function(){this.buffering=!1}},{key:"resumeBuffering",value:function(){this.buffering=!0}},{key:"_streamEnded",value:function(e,A){var t=void 0!==this.config.timelineOffset,n=e.nextStart,r=n&&(!t||n1||0===i.start)return}else{var a;if(e.end<=i.start&&!1===(null==(a=A.details)?void 0:a.live))return;if(e.start>i.end&&i.nextEvent)return}}}this.startFragRequested=!0,this._loadFragForPlayback(e,A,t)}},{key:"_loadFragForPlayback",value:function(e,A,t){var n=this;this._doFragLoad(e,A,t,(function(e){var A,t,r,i=e.frag;if(n.fragContextChanged(i))return n.warn(xf(A=xf(t=xf(r="".concat(i.type," sn: ")).call(r,i.sn)).call(t,e.part?" part: "+e.part.index:""," of ")).call(A,n.fragInfo(i,!1,e.part),") was dropped during download.")),void n.fragmentTracker.removeFragment(i);i.stats.chunkCount++,n._handleFragmentLoadProgress(e)})).then((function(e){if(e){var A=n.state,t=e.frag;if(n.fragContextChanged(t))(A===Ffe||!n.fragCurrent&&A===Ufe)&&(n.fragmentTracker.removeFragment(t),n.state=bfe);else{var r,i,o;if("payload"in e)n.log(xf(r=xf(i=xf(o="Loaded ".concat(t.type," sn: ")).call(o,t.sn," of ")).call(i,n.playlistLabel()," ")).call(r,t.level)),n.hls.trigger(DCe.FRAG_LOADED,e);n._handleFragmentLoadComplete(e)}}})).catch((function(A){n.state!==_fe&&n.state!==Yfe&&(n.warn("Frag error: ".concat((null==A?void 0:A.message)||A)),n.resetFragmentLoading(e))}))}},{key:"clearTrackerIfNeeded",value:function(e){var A,t=this.fragmentTracker;if(t.getState(e)===Ude){var n=e.type,r=this.getFwdBufferInfo(this.mediaBuffer,n),i=Math.max(e.duration,r?r.len:this.config.maxBufferLength),o=this.backtrackFragment;(1===(o?e.sn-o.sn:0)||this.reduceMaxBufferLength(i,e.duration))&&t.removeFragment(e)}else 0===(null==(A=this.mediaBuffer)?void 0:A.buffered.length)?t.removeAllFragments():t.hasParts(e.type)&&(t.detectPartialFragments({frag:e,part:null,stats:e.stats,id:e.type}),t.getState(e)===Kde&&t.removeFragment(e))}},{key:"checkLiveUpdate",value:function(e){if(e.updated&&!e.live){var A=e.fragments[e.fragments.length-1];this.fragmentTracker.detectPartialFragments({frag:A,part:null,stats:A.stats,id:A.type})}e.fragments[0]||(e.deltaUpdateFailed=!0)}},{key:"waitForLive",value:function(e){var A=e.details;return(null==A?void 0:A.live)&&"EVENT"!==A.type&&(this.levelLastLoaded!==e||A.expired)}},{key:"flushMainBuffer",value:function(e,A){if(e-A){var t={startOffset:e,endOffset:A,type:arguments.length>2&&void 0!==arguments[2]?arguments[2]:null};this.hls.trigger(DCe.BUFFER_FLUSHING,t)}}},{key:"_loadInitSegment",value:function(e,A){var t=this;this._doFragLoad(e,A).then((function(e){var A=null==e?void 0:e.frag;if(!A||t.fragContextChanged(A)||!t.levels)throw new Error("init load aborted");return e})).then((function(e){var A=t.hls,n=e.frag,r=e.payload,i=n.decryptdata;if(r&&r.byteLength>0&&null!=i&&i.key&&i.iv&&PEe(i.method)){var o=self.performance.now();return t.decrypter.decrypt(new Uint8Array(r),i.key.buffer,i.iv.buffer,HEe(i.method)).catch((function(e){throw A.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:n}),e})).then((function(r){var i=self.performance.now();return A.trigger(DCe.FRAG_DECRYPTED,{frag:n,payload:r,stats:{tstart:o,tdecrypt:i}}),e.payload=r,t.completeInitSegmentLoad(e)}))}return t.completeInitSegmentLoad(e)})).catch((function(A){t.state!==_fe&&t.state!==Yfe&&(t.warn(A),t.resetFragmentLoading(e))}))}},{key:"completeInitSegmentLoad",value:function(e){if(!this.levels)throw new Error("init load aborted, missing levels");var A=e.frag.stats;this.state!==_fe&&(this.state=bfe),e.frag.data=new Uint8Array(e.payload),A.parsing.start=A.buffering.start=self.performance.now(),A.parsing.end=A.buffering.end=self.performance.now(),this.tick()}},{key:"fragContextChanged",value:function(e){var A=this.fragCurrent;return!e||!A||e.sn!==A.sn||e.level!==A.level}},{key:"fragBufferedComplete",value:function(e,A){var t,n,r,i,o=this.mediaBuffer?this.mediaBuffer:this.media;if(this.log(xf(t=xf(n=xf(r=xf(i="Buffered ".concat(e.type," sn: ")).call(i,e.sn)).call(r,A?" part: "+A.index:""," of ")).call(n,this.fragInfo(e,!1,A)," > buffer:")).call(t,o?Gfe(FEe.getBuffered(o)):"(detached)",")")),eEe(e)){var a;if(e.type!==MCe){var s=e.elementaryStreams;if(!jp(s).some((function(e){return!!s[e]})))return void(this.state=bfe)}var g=null==(a=this.levels)?void 0:a[e.level];null!=g&&g.fragmentError&&(this.log("Resetting level fragment error count of ".concat(g.fragmentError," on frag buffered")),g.fragmentError=0)}this.state=bfe}},{key:"_handleFragmentLoadComplete",value:function(e){var A=this.transmuxer;if(A){var t=e.frag,n=e.part,r=e.partsLoaded,i=!r||0===r.length||r.some((function(e){return!e})),o=new bEe(t.level,t.sn,t.stats.chunkCount+1,0,n?n.index:-1,!i);A.flush(o)}}},{key:"_handleFragmentLoadProgress",value:function(e){}},{key:"_doFragLoad",value:function(e,A){var t,n,r,i,o,a,s=this,g=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,c=arguments.length>3?arguments[3]:void 0;this.fragCurrent=e;var l=null==A?void 0:A.details;if(!this.levels||!l)throw new Error("frag load aborted, missing level".concat(l?"":" detail","s"));var u,I,h,C,d=null;!e.encrypted||null!=(a=e.decryptdata)&&a.key?!e.encrypted&&l.encryptedFragments.length&&this.keyLoader.loadClear(e,l.encryptedFragments):(this.log(xf(u=xf(I=xf(h=xf(C="Loading key for ".concat(e.sn," of [")).call(C,l.startSN,"-")).call(h,l.endSN,"], ")).call(I,this.playlistLabel()," ")).call(u,e.level)),this.state=Tfe,this.fragCurrent=e,d=this.keyLoader.load(e).then((function(e){if(!s.fragContextChanged(e.frag))return s.hls.trigger(DCe.KEY_LOADED,e),s.state===Tfe&&(s.state=bfe),e})),this.hls.trigger(DCe.KEY_LOADING,{frag:e}),null===this.fragCurrent&&(d=Op.reject(new Error("frag load aborted, context changed in KEY_LOADING"))));var E=this.fragPrevious;if(eEe(e)&&(!E||e.sn!==E.sn)){var f,B,Q=this.shouldLoadParts(A.details,e.end);if(Q!==this.loadingParts)this.log(xf(f=xf(B="LL-Part loading ".concat(Q?"ON":"OFF"," loading sn ")).call(B,null==E?void 0:E.sn,"->")).call(f,e.sn)),this.loadingParts=Q}if(g=Math.max(e.start,g||0),this.loadingParts&&eEe(e)){var p=l.partList;if(p&&c){g>e.end&&l.fragmentHint&&(e=l.fragmentHint);var v=this.getNextPart(p,e,g);if(v>-1){var y,m,D,w,R,k,S,M,G,_,b=p[v];return e=this.fragCurrent=b.fragment,this.log(xf(y=xf(m=xf(D=xf(w=xf(R=xf(k=xf(S=xf(M=xf(G="Loading ".concat(e.type," sn: ")).call(G,e.sn," part: ")).call(M,b.index," (")).call(S,v,"/")).call(k,p.length-1,") of ")).call(R,this.fragInfo(e,!1,b),") cc: ")).call(w,e.cc," [")).call(D,l.startSN,"-")).call(m,l.endSN,"], target: ")).call(y,tD(g.toFixed(3)))),this.nextLoadPosition=b.start+b.duration,this.state=Ffe,_=d?d.then((function(t){return!t||s.fragContextChanged(t.frag)?null:s.doFragPartsLoad(e,b,A,c)})).catch((function(e){return s.handleFragLoadError(e)})):this.doFragPartsLoad(e,b,A,c).catch((function(e){return s.handleFragLoadError(e)})),this.hls.trigger(DCe.FRAG_LOADING,{frag:e,part:b,targetBufferTime:g}),null===this.fragCurrent?Op.reject(new Error("frag load aborted, context changed in FRAG_LOADING parts")):_}if(!e.url||this.loadedEndOfParts(p,g))return Op.resolve(null)}}if(eEe(e)&&this.loadingParts)this.log("LL-Part loading OFF after next part miss @".concat(g.toFixed(2))),this.loadingParts=!1;else if(!e.url)return Op.resolve(null);this.log(xf(t=xf(n=xf(r=xf(i=xf(o="Loading ".concat(e.type," sn: ")).call(o,e.sn," of ")).call(i,this.fragInfo(e,!1),") cc: ")).call(r,e.cc," ")).call(n,l?"["+l.startSN+"-"+l.endSN+"]":"",", target: ")).call(t,tD(g.toFixed(3)))),QCe(e.sn)&&!this.bitrateTest&&(this.nextLoadPosition=e.start+e.duration),this.state=Ffe;var T,F=this.config.progressive;return T=F&&d?d.then((function(A){return!A||s.fragContextChanged(null==A?void 0:A.frag)?null:s.fragmentLoader.load(e,c)})).catch((function(e){return s.handleFragLoadError(e)})):Op.all([this.fragmentLoader.load(e,F?c:void 0),d]).then((function(e){var A=rF(e,1)[0];return!F&&A&&c&&c(A),A})).catch((function(e){return s.handleFragLoadError(e)})),this.hls.trigger(DCe.FRAG_LOADING,{frag:e,targetBufferTime:g}),null===this.fragCurrent?Op.reject(new Error("frag load aborted, context changed in FRAG_LOADING")):T}},{key:"doFragPartsLoad",value:function(e,A,t,n){var r=this;return new Op((function(i,o){var a,s=[],g=null==(a=t.details)?void 0:a.partList;!function A(a){r.fragmentLoader.loadPart(e,a,n).then((function(n){s[a.index]=n;var o=n.part;r.hls.trigger(DCe.FRAG_LOADED,n);var c=yfe(t.details,e.sn,a.index+1)||mfe(g,e.sn,a.index+1);if(!c)return i({frag:e,part:o,partsLoaded:s});A(c)})).catch(o)}(A)}))}},{key:"handleFragLoadError",value:function(e){if("data"in e){var A=e.data;e.data&&A.details===mCe.INTERNAL_ABORTED?this.handleFragLoadAborted(A.frag,A.part):this.hls.trigger(DCe.ERROR,A)}else this.hls.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.INTERNAL_EXCEPTION,err:e,error:e,fatal:!0});return null}},{key:"_handleTransmuxerFlush",value:function(e){var A=this.getCurrentContext(e);if(A&&this.state===Ufe){var t=A.frag,n=A.part,r=A.level,i=self.performance.now();t.stats.parsing.end=i,n&&(n.stats.parsing.end=i);var o,a=this.getLevelDetails(),s=a&&t.sn>a.endSN||this.shouldLoadParts(a,t.end);if(s!==this.loadingParts)this.log(xf(o="LL-Part loading ".concat(s?"ON":"OFF"," after parsing segment ending @")).call(o,t.end.toFixed(2))),this.loadingParts=s;this.updateLevelTiming(t,n,r,e.partial)}else this.fragCurrent||this.state===_fe||this.state===Yfe||(this.state=bfe)}},{key:"shouldLoadParts",value:function(e,A){if(this.config.lowLatencyMode){if(!e)return this.loadingParts;if(null!=e&&e.partList){var t,n,r=e.partList[0];if(A>=r.end+((null==(t=e.fragmentHint)?void 0:t.duration)||0))if((this.hls.hasEnoughToStart?(null==(n=this.media)?void 0:n.currentTime)||this.lastCurrentTime:this.getLoadPosition())>r.start-r.fragment.duration)return!0}}return!1}},{key:"getCurrentContext",value:function(e){var A,t,n=this.levels,r=this.fragCurrent,i=e.level,o=e.sn,a=e.part;if(null==n||!n[i])return this.warn(xf(A=xf(t="Levels object was unset while buffering fragment ".concat(o," of ")).call(t,this.playlistLabel()," ")).call(A,i,". The current chunk will not be buffered.")),null;var s=n[i],g=s.details,c=a>-1?yfe(g,o,a):null,l=c?c.fragment:function(e,A,t){if(!e)return null;var n=e.fragments[A-e.startSN];return n||((n=e.fragmentHint)&&n.sn===A?n:Ai&&this.flushMainBuffer(o,e.start)}else this.flushMainBuffer(0,e.start)}},{key:"getFwdBufferInfo",value:function(e,A){var t,n=this.getLoadPosition();if(!QCe(n))return null;var r=this.lastCurrentTime>n||null!=(t=this.media)&&t.paused?0:this.config.maxBufferHole;return this.getFwdBufferInfoAtPos(e,n,A,r)}},{key:"getFwdBufferInfoAtPos",value:function(e,A,t,n){var r=FEe.bufferInfo(e,A,n);if(0===r.len&&void 0!==r.nextStart){var i=this.fragmentTracker.getBufferedFrag(A,t);if(i&&(r.nextStart<=i.end||i.gap))return FEe.bufferInfo(e,A,Math.max(r.nextStart,n))}return r}},{key:"getMaxBufferLength",value:function(e){var A,t=this.config;return A=e?Math.max(8*t.maxBufferSize/e,t.maxBufferLength):t.maxBufferLength,Math.min(A,t.maxMaxBufferLength)}},{key:"reduceMaxBufferLength",value:function(e,A){var t=this.config,n=Math.max(Math.min(e-A,t.maxBufferLength),A),r=Math.max(e-3*A,t.maxMaxBufferLength/2,n);return r>=n&&(t.maxMaxBufferLength=r,this.warn("Reduce max buffer length to ".concat(r,"s")),!0)}},{key:"getAppendedFrag",value:function(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:kCe,n=null==(A=this.fragmentTracker)?void 0:A.getAppendedFrag(e,t);return n&&"fragment"in n?n.fragment:n}},{key:"getNextFragment",value:function(e,A){var t=A.fragments,n=t.length;if(!n)return null;var r=this.config,i=t[0].start,o=r.lowLatencyMode&&!!A.partList,a=null;if(A.live){var s,g=r.initialLiveManifestSize;if(nA}},{key:"getNextFragmentLoopLoading",value:function(e,A,t,n,r){var i=null;if(e.gap&&(i=this.getNextFragment(this.nextLoadPosition,A))&&!i.gap&&t.nextStart){var o=this.getFwdBufferInfoAtPos(this.mediaBuffer?this.mediaBuffer:this.media,t.nextStart,n,0);if(null!==o&&t.len+o.len>=r){var a,s=i.sn;if(this.loopSn!==s)this.log(xf(a='buffer full after gaps in "'.concat(n,'" playlist starting at sn: ')).call(a,s)),this.loopSn=s;return null}}return this.loopSn=void 0,i}},{key:"mapToInitFragWhenRequired",value:function(e){return null==e||!e.initSegment||null!=e&&e.initSegment.data||this.bitrateTest?e:e.initSegment}},{key:"getNextPart",value:function(e,A,t){for(var n=-1,r=!1,i=!0,o=0,a=e.length;o-1&&tt.start&&t.loaded}},{key:"getInitialLiveFragment",value:function(e,A){var t=this.fragPrevious,n=null;if(t){if(e.hasProgramDateTime&&(this.log("Live playlist, switching playlist, load frag with same PDT: ".concat(t.programDateTime)),n=function(e,A,t){if(null===A||!Array.isArray(e)||!e.length||!QCe(A))return null;if(A<(e[0].programDateTime||0))return null;if(A>=(e[e.length-1].endProgramDateTime||0))return null;t=t||0;for(var n=0;n=e.startSN&&r<=e.endSN){var i=A[r-e.startSN];t.cc===i.cc&&(n=i,this.log("Live playlist, switching playlist, load frag with next SN: ".concat(n.sn)))}n||(n=vde(A,t.cc))&&this.log("Live playlist, switching playlist, load frag with same CC: ".concat(n.sn))}}else{var o=this.hls.liveSyncPosition;null!==o&&(n=this.getFragmentAtPosition(o,this.bitrateTest?e.fragmentEnd:e.edge,e))}return n}},{key:"getFragmentAtPosition",value:function(e,A,t){var n,r,i=this.config,o=this.fragPrevious,a=t.fragments,s=t.endSN,g=t.fragmentHint,c=i.maxFragLookUpTolerance,l=t.partList,u=!!(this.loadingParts&&null!=l&&l.length&&g);(u&&g&&!this.bitrateTest&&l[l.length-1].fragment.sn===g.sn&&(a=xf(a).call(a,g),s=g.sn),eA-c||null!=(r=this.media)&&r.paused||!this.startFragRequested?0:c):n=a[a.length-1];if(n){var I=n.sn-t.startSN,h=this.fragmentTracker.getState(n);if((h===xde||h===Kde&&n.gap)&&(o=n),o&&n.sn===o.sn&&(!u||l[0].fragment.sn>n.sn||!t.live&&!u))if(o&&n.level===o.level){var C=a[I+1];n=n.sn")).call(s,e.startSN," fragments: ")).call(a,n)),c}return r}},{key:"waitForCdnTuneIn",value:function(e){return e.live&&e.canBlockReload&&e.partTarget&&e.tuneInGoal>Math.max(e.partHoldBack,3*e.partTarget)}},{key:"setStartPosition",value:function(e,A){var t=this.startPosition;if(t=0&&(t=this.nextLoadPosition),t}},{key:"handleFragLoadAborted",value:function(e,A){var t,n,r;this.transmuxer&&e.type===this.playlistType&&eEe(e)&&e.stats.aborted&&(this.warn(xf(t=xf(n=xf(r="Fragment ".concat(e.sn)).call(r,A?" part "+A.index:""," of ")).call(n,this.playlistLabel()," ")).call(t,e.level," was aborted")),this.resetFragmentLoading(e))}},{key:"resetFragmentLoading",value:function(e){this.fragCurrent&&(this.fragContextChanged(e)||this.state===Nfe)||(this.state=bfe)}},{key:"onFragmentOrKeyLoadError",value:function(e,A){if(A.chunkMeta&&!A.frag){var t=this.getCurrentContext(A.chunkMeta);t&&(A.frag=t.frag)}var n=A.frag;if(n&&n.type===e&&this.levels)if(this.fragContextChanged(n)){var r,i;this.warn(xf(r="Frag load error must match current frag to retry ".concat(n.url," > ")).call(r,null==(i=this.fragCurrent)?void 0:i.url))}else{var o=A.details===mCe.FRAG_GAP;o&&this.fragmentTracker.fragBuffered(n,!0);var a=A.errorAction,s=a||{},g=s.action,c=ux(s),l=s.retryCount,u=void 0===l?0:l,I=s.retryConfig,h=!!a&&!!I,C=h&&g===Gde,d=h&&!a.resolved&&c===bde;if(!C&&d&&eEe(n)&&!n.endList)this.resetFragmentErrors(e),this.treatAsGap(n),a.resolved=!0;else if((C||d)&&u.5;r&&this.reduceMaxBufferLength(n.len,(null==A?void 0:A.duration)||10);var i=!r;return i&&this.warn("Buffer full error while media.currentTime is not buffered, flush ".concat(t," buffer")),A&&(this.fragmentTracker.removeFragment(A),this.nextLoadPosition=A.start),this.resetLoadingState(),i}return!1}},{key:"resetFragmentErrors",value:function(e){e===SCe&&(this.fragCurrent=null),this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.state!==_fe&&(this.state=bfe)}},{key:"afterBufferFlushed",value:function(e,A,t){if(e){var n=FEe.getBuffered(e);this.fragmentTracker.detectEvictedFragments(A,n,t),this.state===xfe&&this.resetLoadingState()}}},{key:"resetLoadingState",value:function(){this.log("Reset loading state"),this.fragCurrent=null,this.fragPrevious=null,this.state!==_fe&&(this.state=bfe)}},{key:"resetStartWhenNotLoaded",value:function(e){if(!this.hls.hasEnoughToStart){this.startFragRequested=!1;var A=e?e.details:null;null!=A&&A.live?(this.log("resetting startPosition for live start"),this.startPosition=-1,this.setStartPosition(A,A.fragmentStart),this.resetLoadingState()):this.nextLoadPosition=this.startPosition}}},{key:"resetWhenMissingContext",value:function(e){var A,t;this.warn(xf(A=xf(t="The loading context changed while buffering fragment ".concat(e.sn," of ")).call(t,this.playlistLabel()," ")).call(A,e.level,". This chunk will not be buffered.")),this.removeUnbufferedFrags(),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState()}},{key:"removeUnbufferedFrags",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.fragmentTracker.removeFragmentsInRange(e,1/0,this.playlistType,!1,!0)}},{key:"updateLevelTiming",value:function(e,A,t,n){var r,i,o,a,s,g=this,c=t.details;if(c){if(!wF(r=jp(e.elementaryStreams)).call(r,(function(A,r){var i=e.elementaryStreams[r];if(i){var o,a,s=i.endPTS-i.startPTS;if(s<=0)return g.warn(xf(o=xf(a="Could not parse fragment ".concat(e.sn," ")).call(a,r," duration reliably (")).call(o,s,")")),A||!1;var l=n?0:Bfe(c,e,i.startPTS,i.endPTS,i.startDTS,i.endDTS);return g.hls.trigger(DCe.LEVEL_PTS_UPDATED,{details:c,level:t,drift:l,type:r,frag:e,start:i.startPTS,end:i.endPTS}),!0}return A}),!1)&&null===(null==(s=this.transmuxer)?void 0:s.error)){var l,u,I,h,C=new Error(xf(l=xf(u="Found no media in fragment ".concat(e.sn," of ")).call(u,this.playlistLabel()," ")).call(l,e.level," resetting transmuxer to fallback to playlist timing"));if(0===t.fragmentError&&this.treatAsGap(e,t),this.warn(C.message),this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!1,error:C,frag:e,reason:xf(I=xf(h="Found no media in msn ".concat(e.sn," of ")).call(h,this.playlistLabel(),' "')).call(I,t.url,'"')}),!this.hls)return;this.resetTransmuxer()}this.state=Kfe,this.log(xf(i=xf(o=xf(a="Parsed ".concat(e.type," sn: ")).call(a,e.sn)).call(o,A?" part: "+A.index:""," of ")).call(i,this.fragInfo(e,!1,A),")")),this.hls.trigger(DCe.FRAG_PARSED,{frag:e,part:A})}else this.warn("level.details undefined")}},{key:"playlistLabel",value:function(){return this.playlistType===kCe?"level":"track"}},{key:"fragInfo",value:function(e){var A,t,n,r,i,o,a,s=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],g=arguments.length>2?arguments[2]:void 0;return xf(A=xf(t=xf(n=xf(r=xf(i="".concat(this.playlistLabel()," ")).call(i,e.level," (")).call(r,g?"part":"frag",":[")).call(n,(null!=(o=s&&!g?e.startPTS:(g||e).start)?o:NaN).toFixed(3),"-")).call(t,(null!=(a=s&&!g?e.endPTS:(g||e).end)?a:NaN).toFixed(3),"]")).call(A,g&&"main"===e.type?"INDEPENDENT="+(g.independent?"YES":"NO"):"")}},{key:"treatAsGap",value:function(e,A){A&&A.fragmentError++,e.gap=!0,this.fragmentTracker.removeFragment(e),this.fragmentTracker.fragBuffered(e,!0)}},{key:"resetTransmuxer",value:function(){var e;null==(e=this.transmuxer)||e.reset()}},{key:"recoverWorkerError",value:function(e){"demuxerWorker"===e.event&&(this.fragmentTracker.removeAllFragments(),this.transmuxer&&(this.transmuxer.destroy(),this.transmuxer=null),this.resetStartWhenNotLoaded(this.levelLastLoaded),this.resetLoadingState())}},{key:"state",get:function(){return this._state},set:function(e){var A,t=this._state;t!==e&&(this._state=e,this.log(xf(A="".concat(t,"->")).call(A,e)))}}]),t}(_Ee),Ofe=function(){function e(){GE(this,e),this.chunks=[],this.dataLength=0}return NE(e,[{key:"push",value:function(e){this.chunks.push(e),this.dataLength+=e.length}},{key:"flush",value:function(){var e,A=this.chunks,t=this.dataLength;return A.length?(e=1===A.length?A[0]:function(e,A){for(var t=new Uint8Array(A),n=0,r=0;r0)return e.subarray(t,t+n)}function eBe(e,A){return 255===e[A]&&240==(246&e[A+1])}function ABe(e,A){return 1&e[A+1]?7:9}function tBe(e,A){return(3&e[A+3])<<11|e[A+4]<<3|(224&e[A+5])>>>5}function nBe(e,A){return A+1=e.length)return!1;var n=tBe(e,A);if(n<=t)return!1;var r=A+n;return r===e.length||nBe(e,r)}return!1}function iBe(e,A,t,n,r){if(!e.samplerate){var i=function(e,A,t,n){var r,i,o,a,s,g=A[t+2],c=g>>2&15;if(!(c>12)){var l=1+(g>>6&3),u=A[t+3]>>6&3|(1&g)<<2,I="mp4a.40."+l,h=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350][c],C=c;5!==l&&29!==l||(C-=3);var d=[l<<3|(14&C)>>1,(1&C)<<7|u<<3];return KCe.log(xf(r=xf(i=xf(o=xf(a=xf(s="manifest codec:".concat(n,", parsed codec:")).call(s,I,", channels:")).call(a,u,", rate:")).call(o,h," (ADTS object type:")).call(i,l," sampling index:")).call(r,c,")")),{config:d,samplerate:h,channelCount:u,codec:I,parsedCodec:I,manifestCodec:n}}var E=new Error("invalid ADTS sampling index:".concat(c));e.emit(DCe.ERROR,DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!0,error:E,reason:E.message})}(A,t,n,r);if(!i)return;TCe(e,i)}}function oBe(e){return 9216e4/e}function aBe(e,A,t,n,r){var i,o=n+r*oBe(e.samplerate),a=function(e,A){var t=ABe(e,A);if(A+t<=e.length){var n=tBe(e,A)-t;if(n>0)return{headerLength:t,frameLength:n}}}(A,t);if(a){var s=a.frameLength,g=a.headerLength,c=g+s,l=Math.max(0,t+c-A.length);l?(i=new Uint8Array(c-g)).set(A.subarray(t+g,A.length),0):i=A.subarray(t+g,t+c);var u={unit:i,pts:o};return l||e.samples.push(u),{sample:u,length:c,missing:l}}var I=A.length-t;return(i=new Uint8Array(I)).set(A.subarray(t,A.length),0),{sample:{unit:i,pts:o},length:I,missing:-1}}function sBe(e,A){return Wfe(e,A)&&Zfe(e,A+6)+10<=e.length-A}function gBe(e){return function(e,A,t,n){var r=(o=e,o instanceof ArrayBuffer?o:o.buffer),i=1;var o;"BYTES_PER_ELEMENT"in n&&(i=n.BYTES_PER_ELEMENT);var a=function(e){return e&&e.buffer instanceof ArrayBuffer&&void 0!==e.byteLength&&void 0!==e.byteOffset}(e)?e.byteOffset:0,s=(a+e.byteLength)/i,g=(a+A)/i,c=Math.floor(Math.max(0,Math.min(g,s))),l=Math.floor(Math.min(c+Math.max(t,0),s));return new n(r,c,l-c)}(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,arguments.length>2&&void 0!==arguments[2]?arguments[2]:1/0,Uint8Array)}function cBe(e,A){if(e<0)return-cBe(-e,A);var t=Math.pow(10,A);if(Math.abs(e*t%1-.5)>6&1&&(A+=hBe);for(var r=(A+=hBe)+n;A+CBe0&&void 0!==arguments[0]?arguments[0]:"",id:-1,pid:-1,inputTimeScale:arguments.length>1&&void 0!==arguments[1]?arguments[1]:9e4,sequenceNumber:-1,samples:[],dropped:0}}var pBe=function(){function e(){GE(this,e),this._audioTrack=void 0,this._id3Track=void 0,this.frameIndex=0,this.cachedData=null,this.basePTS=null,this.initPTS=null,this.lastPTS=null}return NE(e,[{key:"resetInitSegment",value:function(e,A,t,n){this._id3Track={type:"id3",id:3,pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0}}},{key:"resetTimeStamp",value:function(e){this.initPTS=e,this.resetContiguity()}},{key:"resetContiguity",value:function(){this.basePTS=null,this.lastPTS=null,this.frameIndex=0}},{key:"canParse",value:function(e,A){return!1}},{key:"appendFrame",value:function(e,A,t){}},{key:"demux",value:function(e,A){this.cachedData&&(e=BEe(this.cachedData,e),this.cachedData=null);var t,n=$fe(e,0),r=n?n.length:0,i=this._audioTrack,o=this._id3Track,a=n?fBe(n):void 0,s=e.length;for((null===this.basePTS||0===this.frameIndex&&QCe(a))&&(this.basePTS=vBe(a,A,this.initPTS),this.lastPTS=this.basePTS),null===this.lastPTS&&(this.lastPTS=this.basePTS),n&&n.length>0&&o.samples.push({pts:this.lastPTS,dts:this.lastPTS,data:n,type:BBe.audioId3,duration:Number.POSITIVE_INFINITY});rA.length)){var i=SBe(A,t);if(i&&t+i.frameLength<=A.length){var o=n+r*(9e4*i.samplesPerFrame/i.sampleRate),a={unit:A.subarray(t,t+i.frameLength),pts:o,dts:o};return e.config=[],e.channelCount=i.channelCount,e.samplerate=i.sampleRate,e.samples.push(a),{sample:a,length:i.frameLength,missing:0}}}}function SBe(e,A){var t=e[A+1]>>3&3,n=e[A+1]>>1&3,r=e[A+2]>>4&15,i=e[A+2]>>2&3;if(1!==t&&0!==r&&15!==r&&3!==i){var o=e[A+2]>>1&1,a=e[A+3]>>6,s=1e3*mBe[14*(3===t?3-n:3===n?3:4)+r-1],g=DBe[3*(3===t?0:2===t?1:2)+i],c=3===a?1:2,l=wBe[t][n],u=RBe[n],I=8*l*u,h=Math.floor(l*s/g+o)*u;if(null===yBe){var C=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);yBe=C?Uv(C[1]):0}return!!yBe&&yBe<=87&&2===n&&s>=224e3&&0===a&&(e[A+3]=128|e[A+3]),{sampleRate:g,channelCount:c,frameLength:h,samplesPerFrame:I}}}function MBe(e,A){return 255===e[A]&&224==(224&e[A+1])&&0!=(6&e[A+1])}function GBe(e,A){return A+10;){o[0]=e[A];var a=Math.min(n,8),s=8-a;i[0]=4278190080>>>24+s<>s,t=t?t<A.length)return-1;if(11!==A[t]||119!==A[t+1])return-1;var i=A[t+4]>>6;if(i>=3)return-1;var o=[48e3,44100,32e3][i],a=63&A[t+4],s=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*a+i];if(t+s>A.length)return-1;var g=A[t+6]>>5,c=0;2===g?c+=2:(1&g&&1!==g&&(c+=2),4&g&&(c+=2));var l=(A[t+6]<<8|A[t+7])>>12-c&1,u=[2,1,2,3,3,4,4,5][g]+l,I=A[t+5]>>3,h=7&A[t+5],C=new Uint8Array([i<<6|I<<1|h>>2,(3&h)<<6|g<<3|l<<2|a>>4,a<<4&224]),d=n+r*(1536/o*9e4),E=A.subarray(t,t+s);return e.config=C,e.channelCount=u,e.samplerate=o,e.samples.push({unit:E,pts:d}),s}var LBe=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"resetInitSegment",value:function(e,A,n,r){MF(Pk(t.prototype),"resetInitSegment",this).call(this,e,A,n,r),this._audioTrack={container:"audio/mpeg",type:"audio",id:2,pid:-1,sequenceNumber:0,segmentCodec:"mp3",samples:[],manifestCodec:A,duration:r,inputTimeScale:9e4,dropped:0}}},{key:"canParse",value:function(e,A){return function(e,A){return MBe(e,A)&&4<=e.length-A}(e,A)}},{key:"appendFrame",value:function(e,A,t){if(null!==this.basePTS)return kBe(e,A,t,this.basePTS,this.frameIndex)}}],[{key:"probe",value:function(e){if(!e)return!1;var A=$fe(e,0),t=(null==A?void 0:A.length)||0;if(A&&11===e[t]&&119===e[t+1]&&void 0!==fBe(A)&&TBe(e,t)<=16)return!1;for(var n=e.length;t8&&109===e[t+4]&&111===e[t+5]&&111===e[t+6]&&102===e[t+7])return!0;t=n>1?t+n:A}return!1}(e)}}]),e}();function xBe(e,A){return QCe(e.presentationTime)?e.presentationTime/e.timeScale:A+e.presentationTimeDelta/e.timeScale}var YBe=function(){function e(A,t,n){GE(this,e),this.keyData=void 0,this.decrypter=void 0,this.keyData=n,this.decrypter=new wEe(t,{removePKCS7Padding:!1})}return NE(e,[{key:"decryptBuffer",value:function(e){return this.decrypter.decrypt(e,this.keyData.key.buffer,this.keyData.iv.buffer,Yde)}},{key:"decryptAacSample",value:function(e,A,t){var n,r=this,i=e[A].unit;if(!(i.length<=16)){var o=i.subarray(16,i.length-i.length%16),a=Xp(n=o.buffer).call(n,o.byteOffset,o.byteOffset+o.length);this.decryptBuffer(a).then((function(n){var o=new Uint8Array(n);i.set(o,16),r.decrypter.isSync()||r.decryptAacSamples(e,A+1,t)}))}}},{key:"decryptAacSamples",value:function(e,A,t){for(;;A++){if(A>=e.length)return void t();if(!(e[A].unit.length<32)&&(this.decryptAacSample(e,A,t),!this.decrypter.isSync()))return}}},{key:"getAvcEncryptedData",value:function(e){for(var A=16*Math.floor((e.length-48)/160)+16,t=new Int8Array(A),n=0,r=32;r=e.length)return void n();for(var r=e[A].units;!(t>=r.length);t++){var i=r[t];if(!(i.data.length<=48||1!==i.type&&5!==i.type||(this.decryptAvcSample(e,A,t,n,i),this.decrypter.isSync())))return}}}}]),e}(),PBe=function(){function e(){GE(this,e),this.VideoSample=null}return NE(e,[{key:"createVideoSample",value:function(e,A,t){return{key:e,frame:!1,pts:A,dts:t,units:[],length:0}}},{key:"getLastNalUnit",value:function(e){var A,t,n=this.VideoSample;if(n&&0!==n.units.length||(n=e[e.length-1]),null!=(A=n)&&A.units){var r=n.units;t=r[r.length-1]}return t}},{key:"pushAccessUnit",value:function(e,A){if(e.units.length&&e.frame){if(void 0===e.pts){var t=A.samples,n=t.length;if(!n)return void A.dropped++;var r=t[n-1];e.pts=r.pts,e.dts=r.dts}A.samples.push(e)}}},{key:"parseNALu",value:function(e,A,t){var n,r,i=A.byteLength,o=e.naluState||0,a=o,s=[],g=0,c=-1,l=0;for(-1===o&&(c=0,l=this.getNALuType(A,0),o=0,g=1);g=0){var u={data:A.subarray(c,r),type:l};s.push(u)}else{var I=this.getLastNalUnit(e.samples);I&&(a&&g<=4-a&&I.state&&(I.data=I.data.subarray(0,I.data.byteLength-a)),r>0&&(I.data=BEe(I.data,A.subarray(0,r)),I.state=0))}g=0&&o>=0){var h={data:A.subarray(c,i),type:l,state:o};s.push(h)}if(0===s.length){var C=this.getLastNalUnit(e.samples);C&&(C.data=BEe(C.data,A))}return e.naluState=o,s}}]),e}(),HBe=function(){function e(A){GE(this,e),this.data=void 0,this.bytesAvailable=void 0,this.word=void 0,this.bitsAvailable=void 0,this.data=A,this.bytesAvailable=A.byteLength,this.word=0,this.bitsAvailable=0}return NE(e,[{key:"loadWord",value:function(){var e=this.data,A=this.bytesAvailable,t=e.byteLength-A,n=new Uint8Array(4),r=Math.min(4,A);if(0===r)throw new Error("no bytes available");n.set(e.subarray(t,t+r)),this.word=new DataView(n.buffer).getUint32(0),this.bitsAvailable=8*r,this.bytesAvailable-=r}},{key:"skipBits",value:function(e){var A;e=Math.min(e,8*this.bytesAvailable+this.bitsAvailable),this.bitsAvailable>e?(this.word<<=e,this.bitsAvailable-=e):(e-=this.bitsAvailable,e-=(A=e>>3)<<3,this.bytesAvailable-=A,this.loadWord(),this.word<<=e,this.bitsAvailable-=e)}},{key:"readBits",value:function(e){var A=Math.min(this.bitsAvailable,e),t=this.word>>>32-A;if(e>32&&KCe.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=A,this.bitsAvailable>0)this.word<<=A;else{if(!(this.bytesAvailable>0))throw new Error("no bits available");this.loadWord()}return(A=e-A)>0&&this.bitsAvailable?t<>>e))return this.word<<=e,this.bitsAvailable-=e,e;return this.loadWord(),e+this.skipLZ()}},{key:"skipUEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"skipEG",value:function(){this.skipBits(1+this.skipLZ())}},{key:"readUEG",value:function(){var e=this.skipLZ();return this.readBits(e+1)-1}},{key:"readEG",value:function(){var e=this.readUEG();return 1&e?1+e>>>1:-1*(e>>>1)}},{key:"readBoolean",value:function(){return 1===this.readBits(1)}},{key:"readUByte",value:function(){return this.readBits(8)}},{key:"readUShort",value:function(){return this.readBits(16)}},{key:"readUInt",value:function(){return this.readBits(32)}}]),e}(),JBe=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"parsePES",value:function(e,A,t,n){var r,i=this,o=this.parseNALu(e,t.data,n),a=this.VideoSample,s=!1;t.data=null,a&&o.length&&!e.audFound&&(this.pushAccessUnit(a,e),a=this.VideoSample=this.createVideoSample(!1,t.pts,t.dts)),o.forEach((function(n){var o,g;switch(n.type){case 1:var c=!1;r=!0;var l,u=n.data;if(s&&u.length>4){var I=i.readSliceType(u);2!==I&&4!==I&&7!==I&&9!==I||(c=!0)}if(c)null!=(l=a)&&l.frame&&!a.key&&(i.pushAccessUnit(a,e),a=i.VideoSample=null);a||(a=i.VideoSample=i.createVideoSample(!0,t.pts,t.dts)),a.frame=!0,a.key=c;break;case 5:r=!0,null!=(o=a)&&o.frame&&!a.key&&(i.pushAccessUnit(a,e),a=i.VideoSample=null),a||(a=i.VideoSample=i.createVideoSample(!0,t.pts,t.dts)),a.key=!0,a.frame=!0;break;case 6:r=!0,vEe(n.data,1,t.pts,A.samples);break;case 7:var h,C;r=!0,s=!0;var d=n.data,E=i.readSPS(d);if(!e.sps||e.width!==E.width||e.height!==E.height||(null==(h=e.pixelRatio)?void 0:h[0])!==E.pixelRatio[0]||(null==(C=e.pixelRatio)?void 0:C[1])!==E.pixelRatio[1]){e.width=E.width,e.height=E.height,e.pixelRatio=E.pixelRatio,e.sps=[d];for(var f=d.subarray(1,4),B="avc1.",Q=0;Q<3;Q++){var p=f[Q].toString(16);p.length<2&&(p="0"+p),B+=p}e.codec=B}break;case 8:r=!0,e.pps=[n.data];break;case 9:r=!0,e.audFound=!0,null!=(g=a)&&g.frame&&(i.pushAccessUnit(a,e),a=null),a||(a=i.VideoSample=i.createVideoSample(!1,t.pts,t.dts));break;case 12:r=!0;break;default:r=!1}a&&r&&a.units.push(n)})),n&&a&&(this.pushAccessUnit(a,e),this.VideoSample=null)}},{key:"getNALuType",value:function(e,A){return 31&e[A]}},{key:"readSliceType",value:function(e){var A=new HBe(e);return A.readUByte(),A.readUEG(),A.readUEG()}},{key:"skipScalingList",value:function(e,A){for(var t=8,n=8,r=0;r>>1}},{key:"ebsp2rbsp",value:function(e){for(var A=new Uint8Array(e.byteLength),t=0,n=0;n=2&&3===e[n]&&0===e[n-1]&&0===e[n-2]||(A[t]=e[n],t++);return new Uint8Array(A.buffer,0,t)}},{key:"pushAccessUnit",value:function(e,A){MF(Pk(t.prototype),"pushAccessUnit",this).call(this,e,A),this.initVPS&&(this.initVPS=null)}},{key:"readVPS",value:function(e){var A=new HBe(e);return A.readUByte(),A.readUByte(),A.readBits(4),A.skipBits(2),A.readBits(6),{numTemporalLayers:A.readBits(3)+1,temporalIdNested:A.readBoolean()}}},{key:"readSPS",value:function(e){var A,t,n,r,i=new HBe(this.ebsp2rbsp(e));i.readUByte(),i.readUByte(),i.readBits(4);var o=i.readBits(3);i.readBoolean();for(var a=i.readBits(2),s=i.readBoolean(),g=i.readBits(5),c=i.readUByte(),l=i.readUByte(),u=i.readUByte(),I=i.readUByte(),h=i.readUByte(),C=i.readUByte(),d=i.readUByte(),E=i.readUByte(),f=i.readUByte(),B=i.readUByte(),Q=i.readUByte(),p=[],v=[],y=0;y0)for(var m=o;m<8;m++)i.readBits(2);for(var D=0;D1&&i.readEG();for(var Y=0;Y0&&ce<16?(re=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2][ce-1],ie=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1][ce-1]):255===ce&&(re=i.readBits(16),ie=i.readBits(16))}if(i.readBoolean()&&i.readBoolean(),i.readBoolean())i.readBits(3),i.readBoolean(),i.readBoolean()&&(i.readUByte(),i.readUByte(),i.readUByte());if(i.readBoolean()&&(i.readUEG(),i.readUEG()),i.readBoolean(),i.readBoolean(),i.readBoolean(),(ge=i.readBoolean())&&(M+=i.readUEG(),G+=i.readUEG(),_+=i.readUEG(),b+=i.readUEG()),i.readBoolean())if(ae=i.readBits(32),se=i.readBits(32),i.readBoolean()&&i.readUEG(),i.readBoolean()){var le=i.readBoolean(),ue=i.readBoolean(),Ie=!1;(le||ue)&&((Ie=i.readBoolean())&&(i.readUByte(),i.readBits(5),i.readBoolean(),i.readBits(5)),i.readBits(4),i.readBits(4),Ie&&i.readBits(4),i.readBits(5),i.readBits(5),i.readBits(5));for(var he=0;he<=o;he++){var Ce=!1;(oe=i.readBoolean())||i.readBoolean()?i.readEG():Ce=i.readBoolean();var de=Ce?1:i.readUEG()+1;if(le)for(var Ee=0;Ee>we&1)<<31-we)>>>0;var Re=De.toString(16);1===g&&"2"===Re&&(Re="6");var ke=s?"H":"L";return{codecString:xf(A=xf(t=xf(n=xf(r="hvc1.".concat(ye)).call(r,g,".")).call(n,Re,".")).call(t,ke)).call(A,Q,".B0"),params:{general_tier_flag:s,general_profile_idc:g,general_profile_space:a,general_profile_compatibility_flags:[c,l,u,I],general_constraint_indicator_flags:[h,C,d,E,f,B],general_level_idc:Q,bit_depth:T+8,bit_depth_luma_minus8:T,bit_depth_chroma_minus8:F,min_spatial_segmentation_idc:ne,chroma_format_idc:w,frame_rate:{fixed:oe,fps:se/ae}},width:Be,height:Qe,pixelRatio:[re,ie]}}},{key:"readPPS",value:function(e){var A=new HBe(this.ebsp2rbsp(e));A.readUByte(),A.readUByte(),A.skipUEG(),A.skipUEG(),A.skipBits(2),A.skipBits(3),A.skipBits(2),A.skipUEG(),A.skipUEG(),A.skipEG(),A.skipBits(2),A.readBoolean()&&A.skipUEG(),A.skipEG(),A.skipEG(),A.skipBits(4);var t=A.readBoolean(),n=A.readBoolean(),r=1;return n&&t?r=0:n?r=3:t&&(r=2),{parallelismType:r}}},{key:"matchSPS",value:function(e,A){return String.fromCharCode.apply(null,e).substr(3)===String.fromCharCode.apply(null,A).substr(3)}}]),t}(PBe),zBe=188,jBe=function(){function e(A,t,n,r){GE(this,e),this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.sampleAes=null,this.pmtParsed=!1,this.audioCodec=void 0,this.videoCodec=void 0,this._pmtId=-1,this._videoTrack=void 0,this._audioTrack=void 0,this._id3Track=void 0,this._txtTrack=void 0,this.aacOverFlow=null,this.remainderData=null,this.videoParser=void 0,this.observer=A,this.config=t,this.typeSupported=n,this.logger=r,this.videoParser=null}return NE(e,[{key:"resetInitSegment",value:function(A,t,n,r){this.pmtParsed=!1,this._pmtId=-1,this._videoTrack=e.createTrack("video"),this._videoTrack.duration=r,this._audioTrack=e.createTrack("audio",r),this._id3Track=e.createTrack("id3"),this._txtTrack=e.createTrack("text"),this._audioTrack.segmentCodec="aac",this.aacOverFlow=null,this.remainderData=null,this.audioCodec=t,this.videoCodec=n}},{key:"resetTimeStamp",value:function(){}},{key:"resetContiguity",value:function(){var e=this._audioTrack,A=this._videoTrack,t=this._id3Track;e&&(e.pesData=null),A&&(A.pesData=null),t&&(t.pesData=null),this.aacOverFlow=null,this.remainderData=null}},{key:"demux",value:function(A,t){var n,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];r||(this.sampleAes=null);var o=this._videoTrack,a=this._audioTrack,s=this._id3Track,g=this._txtTrack,c=o.pid,l=o.pesData,u=a.pid,I=s.pid,h=a.pesData,C=s.pesData,d=null,E=this.pmtParsed,f=this._pmtId,B=A.length;if(this.remainderData&&(B=(A=BEe(this.remainderData,A)).length,this.remainderData=null),B>4>1){if((D=v+5+A[v+4])===v+zBe)continue}else D=v+4;switch(m){case c:if(y){if(l&&(n=$Be(l,this.logger))){if(null===this.videoParser)switch(o.segmentCodec){case"avc":this.videoParser=new JBe;break;case"hevc":this.videoParser=new OBe}null!==this.videoParser&&this.videoParser.parsePES(o,g,n,!1)}l={data:[],size:0}}l&&(l.data.push(A.subarray(D,v+zBe)),l.size+=v+zBe-D);break;case u:if(y){if(h&&(n=$Be(h,this.logger)))switch(a.segmentCodec){case"aac":this.parseAACPES(a,n);break;case"mp3":this.parseMPEGPES(a,n);break;case"ac3":this.parseAC3PES(a,n)}h={data:[],size:0}}h&&(h.data.push(A.subarray(D,v+zBe)),h.size+=v+zBe-D);break;case I:y&&(C&&(n=$Be(C,this.logger))&&this.parseID3PES(s,n),C={data:[],size:0}),C&&(C.data.push(A.subarray(D,v+zBe)),C.size+=v+zBe-D);break;case 0:y&&(D+=A[D]+1),f=this._pmtId=qBe(A,D);break;case f:y&&(D+=A[D]+1);var w,R,k=VBe(A,D,this.typeSupported,r,this.observer,this.logger);if((c=k.videoPid)>0&&(o.pid=c,o.segmentCodec=k.segmentVideoCodec),(u=k.audioPid)>0&&(a.pid=u,a.segmentCodec=k.segmentAudioCodec),(I=k.id3Pid)>0&&(s.pid=I),null!==d&&!E)this.logger.warn(xf(w=xf(R="MPEG-TS PMT found at ".concat(v," after unknown PID '")).call(R,d,"'. Backtracking to sync byte @")).call(w,Q," to parse all TS packets.")),d=null,v=Q-188;E=this.pmtParsed=!0;break;case 17:case 8191:break;default:d=m}}else p++;p>0&&WBe(this.observer,new Error("Found ".concat(p," TS packet/s that do not start with 0x47")),void 0,this.logger),o.pesData=l,a.pesData=h,s.pesData=C;var S={audioTrack:a,videoTrack:o,id3Track:s,textTrack:g};return i&&this.extractRemainingSamples(S),S}},{key:"flush",value:function(){var e,A=this.remainderData;return this.remainderData=null,e=A?this.demux(A,-1,!1,!0):{videoTrack:this._videoTrack,audioTrack:this._audioTrack,id3Track:this._id3Track,textTrack:this._txtTrack},this.extractRemainingSamples(e),this.sampleAes?this.decrypt(e,this.sampleAes):e}},{key:"extractRemainingSamples",value:function(e){var A,t=e.audioTrack,n=e.videoTrack,r=e.id3Track,i=e.textTrack,o=n.pesData,a=t.pesData,s=r.pesData;if(o&&(A=$Be(o,this.logger))){if(null===this.videoParser)switch(n.segmentCodec){case"avc":this.videoParser=new JBe;break;case"hevc":this.videoParser=new OBe}null!==this.videoParser&&(this.videoParser.parsePES(n,i,A,!0),n.pesData=null)}else n.pesData=o;if(a&&(A=$Be(a,this.logger))){switch(t.segmentCodec){case"aac":this.parseAACPES(t,A);break;case"mp3":this.parseMPEGPES(t,A);break;case"ac3":this.parseAC3PES(t,A)}t.pesData=null}else null!=a&&a.size&&this.logger.log("last AAC PES packet truncated,might overlap between fragments"),t.pesData=a;s&&(A=$Be(s,this.logger))?(this.parseID3PES(r,A),r.pesData=null):r.pesData=s}},{key:"demuxSampleAes",value:function(e,A,t){var n=this.demux(e,t,!0,!this.config.progressive),r=this.sampleAes=new YBe(this.observer,this.config,A);return this.decrypt(n,r)}},{key:"decrypt",value:function(e,A){return new Op((function(t){var n=e.audioTrack,r=e.videoTrack;n.samples&&"aac"===n.segmentCodec?A.decryptAacSamples(n.samples,0,(function(){r.samples?A.decryptAvcSamples(r.samples,0,0,(function(){t(e)})):t(e)})):r.samples&&A.decryptAvcSamples(r.samples,0,0,(function(){t(e)}))}))}},{key:"destroy",value:function(){this.observer&&this.observer.removeAllListeners(),this.config=this.logger=this.observer=null,this.aacOverFlow=this.videoParser=this.remainderData=this.sampleAes=null,this._videoTrack=this._audioTrack=this._id3Track=this._txtTrack=void 0}},{key:"parseAACPES",value:function(e,A){var t,n,r,i=0,o=this.aacOverFlow,a=A.data;if(o){this.aacOverFlow=null;var s=o.missing,g=o.sample.unit.byteLength;if(-1===s)a=BEe(o.sample.unit,a);else{var c=g-s;o.sample.unit.set(a.subarray(0,s),c),e.samples.push(o.sample),i=o.missing}}for(t=i,n=a.length;t0;)a+=r;else this.logger.warn("[tsdemuxer]: AC3 PES unknown PTS")}},{key:"parseID3PES",value:function(e,A){if(void 0!==A.pts){var t=TCe({},A,{type:this._videoTrack?BBe.emsg:BBe.audioId3,duration:Number.POSITIVE_INFINITY});e.samples.push(t)}else this.logger.warn("[tsdemuxer]: ID3 PES unknown PTS")}}],[{key:"probe",value:function(A,t){var n=e.syncOffset(A);return n>0&&t.warn("MPEG2-TS detected but first sync word found @ offset ".concat(n)),-1!==n}},{key:"syncOffset",value:function(e){for(var A=e.length,t=Math.min(940,A-zBe)+1,n=0;n1&&(0===i&&o>2||a+zBe>t))return i}n++}return-1}},{key:"createTrack",value:function(e,A){return{container:"video"===e||"audio"===e?"video/mp2t":void 0,type:e,id:nEe[e],pid:-1,inputTimeScale:9e4,sequenceNumber:0,samples:[],dropped:0,duration:"audio"===e?A:void 0}}}]),e}();function XBe(e,A){return((31&e[A+1])<<8)+e[A+2]}function qBe(e,A){return(31&e[A+10])<<8|e[A+11]}function VBe(e,A,t,n,r,i){var o={audioPid:-1,videoPid:-1,id3Pid:-1,segmentVideoCodec:"avc",segmentAudioCodec:"aac"},a=A+3+((15&e[A+1])<<8|e[A+2])-4;for(A+=12+((15&e[A+10])<<8|e[A+11]);A0)for(var c=A+5,l=g;l>2;){if(106===e[c])!0!==t.ac3?i.log("AC-3 audio found, not supported in this browser for now"):(o.audioPid=s,o.segmentAudioCodec="ac3");var u=e[c+1]+2;c+=u,l-=u}break;case 194:case 135:return WBe(r,new Error("Unsupported EC-3 in M2TS found"),void 0,i),o;case 36:-1===o.videoPid&&(o.videoPid=s,o.segmentVideoCodec="hevc",i.log("HEVC in M2TS found"))}A+=g+5}return o}function WBe(e,A,t,n){n.warn("parsing error: ".concat(A.message)),e.emit(DCe.ERROR,DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!1,levelRetry:t,error:A,reason:A.message})}function ZBe(e,A){A.log("".concat(e," with AES-128-CBC encryption found in unencrypted stream"))}function $Be(e,A){var t,n,r,i,o,a=0,s=e.data;if(!e||0===e.size)return null;for(;s[0].length<19&&s.length>1;)s[0]=BEe(s[0],s[1]),Cv(s).call(s,1,1);if(1===((t=s[0])[0]<<16)+(t[1]<<8)+t[2]){if((n=(t[4]<<8)+t[5])&&n>e.size-6)return null;var g=t[7];192&g&&(i=536870912*(14&t[9])+4194304*(255&t[10])+16384*(254&t[11])+128*(255&t[12])+(254&t[13])/2,64&g?i-(o=536870912*(14&t[14])+4194304*(255&t[15])+16384*(254&t[16])+128*(255&t[17])+(254&t[18])/2)>54e5&&(A.warn("".concat(Math.round((i-o)/9e4),"s delta between PTS and DTS, align them")),i=o):o=i);var c=(r=t[8])+9;if(e.size<=c)return null;e.size-=c;for(var l=new Uint8Array(e.size),u=0,I=s.length;uh){c-=h;continue}t=t.subarray(c),h-=c,c=0}l.set(t,a),a+=h}return n&&(n-=r+3),{data:l,pts:i,dts:o,len:n}}return null}var eQe=function(){function e(){GE(this,e)}return NE(e,null,[{key:"getSilentFrame",value:function(e,A){if("mp4a.40.2"===e){if(1===A)return new Uint8Array([0,200,0,128,35,128]);if(2===A)return new Uint8Array([33,0,73,144,2,25,0,35,128]);if(3===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,142]);if(4===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,128,44,128,8,2,56]);if(5===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,56]);if(6===A)return new Uint8Array([0,200,0,128,32,132,1,38,64,8,100,0,130,48,4,153,0,33,144,2,0,178,0,32,8,224])}else{if(1===A)return new Uint8Array([1,64,34,128,163,78,230,128,186,8,0,0,0,28,6,241,193,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(2===A)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94]);if(3===A)return new Uint8Array([1,64,34,128,163,94,230,128,186,8,0,0,0,0,149,0,6,241,161,10,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,94])}}}]),e}(),AQe=Math.pow(2,32)-1,tQe=function(){function e(){GE(this,e)}return NE(e,null,[{key:"init",value:function(){var A;for(A in e.types={avc1:[],avcC:[],hvc1:[],hvcC:[],btrt:[],dinf:[],dref:[],esds:[],ftyp:[],hdlr:[],mdat:[],mdhd:[],mdia:[],mfhd:[],minf:[],moof:[],moov:[],mp4a:[],".mp3":[],dac3:[],"ac-3":[],mvex:[],mvhd:[],pasp:[],sdtp:[],stbl:[],stco:[],stsc:[],stsd:[],stsz:[],stts:[],tfdt:[],tfhd:[],traf:[],trak:[],trun:[],trex:[],tkhd:[],vmhd:[],smhd:[]},e.types)e.types.hasOwnProperty(A)&&(e.types[A]=[A.charCodeAt(0),A.charCodeAt(1),A.charCodeAt(2),A.charCodeAt(3)]);var t=new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),n=new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0]);e.HDLR_TYPES={video:t,audio:n};var r=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]),i=new Uint8Array([0,0,0,0,0,0,0,0]);e.STTS=e.STSC=e.STCO=i,e.STSZ=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]),e.VMHD=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]),e.SMHD=new Uint8Array([0,0,0,0,0,0,0,0]),e.STSD=new Uint8Array([0,0,0,0,0,0,0,1]);var o=new Uint8Array([105,115,111,109]),a=new Uint8Array([97,118,99,49]),s=new Uint8Array([0,0,0,1]);e.FTYP=e.box(e.types.ftyp,o,s,o,a),e.DINF=e.box(e.types.dinf,e.box(e.types.dref,r))}},{key:"box",value:function(e){for(var A=8,t=arguments.length,n=new Array(t>1?t-1:0),r=1;r>24&255,a[1]=A>>16&255,a[2]=A>>8&255,a[3]=255&A,a.set(e,4),i=0,A=8;i>24&255,A>>16&255,A>>8&255,255&A,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))}},{key:"mdia",value:function(A){return e.box(e.types.mdia,e.mdhd(A.timescale,A.duration),e.hdlr(A.type),e.minf(A))}},{key:"mfhd",value:function(A){return e.box(e.types.mfhd,new Uint8Array([0,0,0,0,A>>24,A>>16&255,A>>8&255,255&A]))}},{key:"minf",value:function(A){return"audio"===A.type?e.box(e.types.minf,e.box(e.types.smhd,e.SMHD),e.DINF,e.stbl(A)):e.box(e.types.minf,e.box(e.types.vmhd,e.VMHD),e.DINF,e.stbl(A))}},{key:"moof",value:function(A,t,n){return e.box(e.types.moof,e.mfhd(A),e.traf(n,t))}},{key:"moov",value:function(A){for(var t,n,r=A.length,i=[];r--;)i[r]=e.trak(A[r]);return e.box.apply(null,xf(t=xf(n=[e.types.moov,e.mvhd(A[0].timescale,A[0].duration)]).call(n,i)).call(t,e.mvex(A)))}},{key:"mvex",value:function(A){for(var t,n=A.length,r=[];n--;)r[n]=e.trex(A[n]);return e.box.apply(null,xf(t=[e.types.mvex]).call(t,r))}},{key:"mvhd",value:function(A,t){t*=A;var n=Math.floor(t/(AQe+1)),r=Math.floor(t%(AQe+1)),i=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,A>>24&255,A>>16&255,A>>8&255,255&A,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return e.box(e.types.mvhd,i)}},{key:"sdtp",value:function(A){var t,n,r=A.samples||[],i=new Uint8Array(4+r.length);for(t=0;t>>8&255),s.push(255&a),s=xf(s).call(s,Xp(Array.prototype).call(o));for(i=0;i>>8&255),g.push(255&a),g=xf(g).call(g,Xp(Array.prototype).call(o));var c=e.box(e.types.avcC,new Uint8Array(xf(t=xf(n=xf(r=[1,s[3],s[4],s[5],255,224|A.sps.length]).call(r,s)).call(n,[A.pps.length])).call(t,g))),l=A.width,u=A.height,I=A.pixelRatio[0],h=A.pixelRatio[1];return e.box(e.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),c,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([I>>24,I>>16&255,I>>8&255,255&I,h>>24,h>>16&255,h>>8&255,255&h])))}},{key:"esds",value:function(e){var A,t=e.config;return new Uint8Array(xf(A=[0,0,0,0,3,25,0,1,0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2]).call(A,ME(t),[6,1,2]))}},{key:"audioStsd",value:function(e){var A=e.samplerate;return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,A>>8&255,255&A,0,0])}},{key:"mp4a",value:function(A){return e.box(e.types.mp4a,e.audioStsd(A),e.box(e.types.esds,e.esds(A)))}},{key:"mp3",value:function(A){return e.box(e.types[".mp3"],e.audioStsd(A))}},{key:"ac3",value:function(A){return e.box(e.types["ac-3"],e.audioStsd(A),e.box(e.types.dac3,A.config))}},{key:"stsd",value:function(A){return"audio"===A.type?"mp3"===A.segmentCodec&&"mp3"===A.codec?e.box(e.types.stsd,e.STSD,e.mp3(A)):"ac3"===A.segmentCodec?e.box(e.types.stsd,e.STSD,e.ac3(A)):e.box(e.types.stsd,e.STSD,e.mp4a(A)):"avc"===A.segmentCodec?e.box(e.types.stsd,e.STSD,e.avc1(A)):e.box(e.types.stsd,e.STSD,e.hvc1(A))}},{key:"tkhd",value:function(A){var t=A.id,n=A.duration*A.timescale,r=A.width,i=A.height,o=Math.floor(n/(AQe+1)),a=Math.floor(n%(AQe+1));return e.box(e.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,t>>24&255,t>>16&255,t>>8&255,255&t,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,a>>24,a>>16&255,a>>8&255,255&a,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,i>>8&255,255&i,0,0]))}},{key:"traf",value:function(A,t){var n=e.sdtp(A),r=A.id,i=Math.floor(t/(AQe+1)),o=Math.floor(t%(AQe+1));return e.box(e.types.traf,e.box(e.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),e.box(e.types.tfdt,new Uint8Array([1,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,o>>24,o>>16&255,o>>8&255,255&o])),e.trun(A,n.length+16+20+8+16+8+8),n)}},{key:"trak",value:function(A){return A.duration=A.duration||4294967295,e.box(e.types.trak,e.tkhd(A),e.mdia(A))}},{key:"trex",value:function(A){var t=A.id;return e.box(e.types.trex,new Uint8Array([0,0,0,0,t>>24,t>>16&255,t>>8&255,255&t,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))}},{key:"trun",value:function(A,t){var n,r,i,o,a,s,g=A.samples||[],c=g.length,l=12+16*c,u=new Uint8Array(l);for(t+=8+l,u.set(["video"===A.type?1:0,0,15,1,c>>>24&255,c>>>16&255,c>>>8&255,255&c,t>>>24&255,t>>>16&255,t>>>8&255,255&t],0),n=0;n>>24&255,i>>>16&255,i>>>8&255,255&i,o>>>24&255,o>>>16&255,o>>>8&255,255&o,a.isLeading<<2|a.dependsOn,a.isDependedOn<<6|a.hasRedundancy<<4|a.paddingValue<<1|a.isNonSync,61440&a.degradPrio,15&a.degradPrio,s>>>24&255,s>>>16&255,s>>>8&255,255&s],12+16*n);return e.box(e.types.trun,u)}},{key:"initSegment",value:function(A){e.types||e.init();var t=e.moov(A);return BEe(e.FTYP,t)}},{key:"hvc1",value:function(A){for(var t=A.params,n=[A.vps,A.sps,A.pps],r=new Uint8Array([1,t.general_profile_space<<6|(t.general_tier_flag?32:0)|t.general_profile_idc,t.general_profile_compatibility_flags[0],t.general_profile_compatibility_flags[1],t.general_profile_compatibility_flags[2],t.general_profile_compatibility_flags[3],t.general_constraint_indicator_flags[0],t.general_constraint_indicator_flags[1],t.general_constraint_indicator_flags[2],t.general_constraint_indicator_flags[3],t.general_constraint_indicator_flags[4],t.general_constraint_indicator_flags[5],t.general_level_idc,240|t.min_spatial_segmentation_idc>>8,255&t.min_spatial_segmentation_idc,252|t.parallelismType,252|t.chroma_format_idc,248|t.bit_depth_luma_minus8,248|t.bit_depth_chroma_minus8,0,Uv(t.frame_rate.fps),3|t.temporal_id_nested<<2|t.num_temporal_layers<<3|(t.frame_rate.fixed?64:0),n.length]),i=r.length,o=0;o>8,255&n[c][l].length]),i),i+=2,s.set(n[c][l],i),i+=n[c][l].length}var u=e.box(e.types.hvcC,s),I=A.width,h=A.height,C=A.pixelRatio[0],d=A.pixelRatio[1];return e.box(e.types.hvc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,I>>8&255,255&I,h>>8&255,255&h,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),u,e.box(e.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),e.box(e.types.pasp,new Uint8Array([C>>24,C>>16&255,C>>8&255,255&C,d>>24,d>>16&255,d>>8&255,255&d])))}}]),e}();tQe.types=void 0,tQe.HDLR_TYPES=void 0,tQe.STTS=void 0,tQe.STSC=void 0,tQe.STCO=void 0,tQe.STSZ=void 0,tQe.VMHD=void 0,tQe.SMHD=void 0,tQe.STSD=void 0,tQe.FTYP=void 0,tQe.DINF=void 0;var nQe=9e4;function rQe(e,A){var t=e*A*(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1);return arguments.length>3&&void 0!==arguments[3]&&arguments[3]?Math.round(t):t}function iQe(e){return rQe(e,1e3,1/nQe,arguments.length>1&&void 0!==arguments[1]&&arguments[1])}var oQe=null,aQe=null,sQe=function(){function e(A,t,n,r){if(GE(this,e),this.logger=void 0,this.observer=void 0,this.config=void 0,this.typeSupported=void 0,this.ISGenerated=!1,this._initPTS=null,this._initDTS=null,this.nextAvcDts=null,this.nextAudioPts=null,this.videoSampleDuration=null,this.isAudioContiguous=!1,this.isVideoContiguous=!1,this.videoTrackConfig=void 0,this.observer=A,this.config=t,this.typeSupported=n,this.logger=r,this.ISGenerated=!1,null===oQe){var i=(navigator.userAgent||"").match(/Chrome\/(\d+)/i);oQe=i?Uv(i[1]):0}if(null===aQe){var o=navigator.userAgent.match(/Safari\/(\d+)/i);aQe=o?Uv(o[1]):0}}return NE(e,[{key:"destroy",value:function(){this.config=this.videoTrackConfig=this._initPTS=this._initDTS=null}},{key:"resetTimeStamp",value:function(e){this.logger.log("[mp4-remuxer]: initPTS & initDTS reset"),this._initPTS=this._initDTS=e}},{key:"resetNextTimestamp",value:function(){this.logger.log("[mp4-remuxer]: reset next timestamp"),this.isVideoContiguous=!1,this.isAudioContiguous=!1}},{key:"resetInitSegment",value:function(){this.logger.log("[mp4-remuxer]: ISGenerated flag reset"),this.ISGenerated=!1,this.videoTrackConfig=void 0}},{key:"getVideoStartPts",value:function(e){var A=!1,t=e[0].pts,n=wF(e).call(e,(function(e,n){var r=n.pts,i=r-e;return i<-4294967296&&(A=!0,i=(r=gQe(r,t))-e),i>0?e:r}),t);return A&&this.logger.debug("PTS rollover detected"),n}},{key:"remux",value:function(e,A,t,n,r,i,o,a){var s,g,c,l,u,I,h=r,C=r,d=e.pid>-1,E=A.pid>-1,f=A.samples.length,B=e.samples.length>0,Q=o&&f>0||f>1;if((!d||B)&&(!E||Q)||this.ISGenerated||o){if(this.ISGenerated){var p,v,y,m,D=this.videoTrackConfig;(D&&(A.width!==D.width||A.height!==D.height||(null==(p=A.pixelRatio)?void 0:p[0])!==(null==(v=D.pixelRatio)?void 0:v[0])||(null==(y=A.pixelRatio)?void 0:y[1])!==(null==(m=D.pixelRatio)?void 0:m[1]))||!D&&Q||null===this.nextAudioPts&&B)&&this.resetInitSegment()}this.ISGenerated||(c=this.generateIS(e,A,r,i));var w,R=this.isVideoContiguous,k=-1;if(Q&&(k=function(e){for(var A=0;A0){var S,M;this.logger.warn(xf(S="[mp4-remuxer]: Dropped ".concat(k," out of ")).call(S,f," video samples due to a missing keyframe"));var G=this.getVideoStartPts(A.samples);A.samples=Xp(M=A.samples).call(M,k),A.dropped+=k,w=C+=(A.samples[0].pts-G)/A.inputTimeScale}else-1===k&&(this.logger.warn("[mp4-remuxer]: No keyframe found out of ".concat(f," video samples")),I=!1);if(this.ISGenerated){if(B&&Q){var _=this.getVideoStartPts(A.samples),b=(gQe(e.samples[0].pts,_)-_)/A.inputTimeScale;h+=Math.max(0,b),C+=Math.max(0,-b)}if(B){if(e.samplerate||(this.logger.warn("[mp4-remuxer]: regenerate InitSegment as audio detected"),c=this.generateIS(e,A,r,i)),g=this.remuxAudio(e,h,this.isAudioContiguous,i,E||Q||a===SCe?C:void 0),Q){var T=g?g.endPTS-g.startPTS:0;A.inputTimeScale||(this.logger.warn("[mp4-remuxer]: regenerate InitSegment as video detected"),c=this.generateIS(e,A,r,i)),s=this.remuxVideo(A,C,R,T)}}else Q&&(s=this.remuxVideo(A,C,R,0));s&&(s.firstKeyFrame=k,s.independent=-1!==k,s.firstKeyFramePTS=w)}}return this.ISGenerated&&this._initPTS&&this._initDTS&&(t.samples.length&&(u=cQe(t,r,this._initPTS,this._initDTS)),n.samples.length&&(l=lQe(n,r,this._initPTS))),{audio:g,video:s,initSegment:c,independent:I,text:l,id3:u}}},{key:"generateIS",value:function(e,A,t,n){var r,i,o,a=e.samples,s=A.samples,g=this.typeSupported,c={},l=this._initPTS,u=!l||n,I="audio/mp4";if(u&&(r=i=1/0),e.config&&a.length){switch(e.timescale=e.samplerate,e.segmentCodec){case"mp3":g.mpeg?(I="audio/mpeg",e.codec=""):g.mp3&&(e.codec="mp3");break;case"ac3":e.codec="ac-3"}c.audio={id:"audio",container:I,codec:e.codec,initSegment:"mp3"===e.segmentCodec&&g.mpeg?new Uint8Array(0):tQe.initSegment([e]),metadata:{channelCount:e.channelCount}},u&&(o=e.inputTimeScale,l&&o===l.timescale?u=!1:r=i=a[0].pts-Math.round(o*t))}if(A.sps&&A.pps&&s.length){if(A.timescale=A.inputTimeScale,c.video={id:"main",container:"video/mp4",codec:A.codec,initSegment:tQe.initSegment([A]),metadata:{width:A.width,height:A.height}},u)if(o=A.inputTimeScale,l&&o===l.timescale)u=!1;else{var h=this.getVideoStartPts(s),C=Math.round(o*t);i=Math.min(i,gQe(s[0].dts,h)-C),r=Math.min(r,h-C)}this.videoTrackConfig={width:A.width,height:A.height,pixelRatio:A.pixelRatio}}if(jp(c).length)return this.ISGenerated=!0,u?(this._initPTS={baseTime:r,timescale:o},this._initDTS={baseTime:i,timescale:o}):r=o=void 0,{tracks:c,initPTS:r,timescale:o}}},{key:"remuxVideo",value:function(e,A,t,n){var r,i,o=e.inputTimeScale,a=e.samples,s=[],g=a.length,c=this._initPTS,l=this.nextAvcDts,u=8,I=this.videoSampleDuration,h=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,d=!1;if(!t||null===l){var E=A*o,f=a[0].pts-gQe(a[0].dts,a[0].pts);oQe&&null!==l&&Math.abs(E-f-l)<15e3?t=!0:l=E-f}for(var B=c.baseTime*o/c.timescale,Q=0;Q0?Q-1:Q].dts&&(d=!0)}d&&qD(a).call(a,(function(e,A){var t=e.dts-A.dts,n=e.pts-A.pts;return t||n})),r=a[0].dts;var v=(i=a[a.length-1].dts)-r,y=v?Math.round(v/(g-1)):I||e.inputTimeScale/30;if(t){var m=r-l,D=m>y,w=m<-1;if(D||w){var R,k,S,M,G,_;if(D)this.logger.warn(xf(R=xf(k=xf(S="".concat((e.segmentCodec||"").toUpperCase(),": ")).call(S,iQe(m,!0)," ms (")).call(k,m,"dts) hole between fragments detected at ")).call(R,A.toFixed(3)));else this.logger.warn(xf(M=xf(G=xf(_="".concat((e.segmentCodec||"").toUpperCase(),": ")).call(_,iQe(-m,!0)," ms (")).call(G,m,"dts) overlapping between fragments detected at ")).call(M,A.toFixed(3)));if(!w||l>=a[0].pts||oQe){var b,T;r=l;var F=a[0].pts-m;if(D)a[0].dts=r,a[0].pts=F;else for(var N=!0,L=0;LF&&N);L++){var U=a[L].pts;if(a[L].dts-=m,a[L].pts-=m,L0?re.dts-a[ne-1].dts:y;if(ue=ne>0?re.pts-a[ne-1].pts:y,Ie.stretchShortVideoTrack&&null!==this.nextAudioPts){var Ce,de=Math.floor(Ie.maxBufferHole*o),Ee=(n?h+n*o:this.nextAudioPts)-re.pts;if(Ee>de)(I=Ee-he)<0?I=he:Z=!0,this.logger.log(xf(Ce="[mp4-remuxer]: It is approximately ".concat(Ee/90," ms to the next segment; using duration ")).call(Ce,I/90," ms for the last video frame."));else I=he}else I=he}var fe=Math.round(re.pts-re.dts);$=Math.min($,I),Ae=Math.max(Ae,I),ee=Math.min(ee,ue),te=Math.max(te,ue),s.push(new IQe(re.key,I,oe,fe))}if(s.length)if(oQe){if(oQe<70){var Be=ux(s[0]);Be.dependsOn=2,Be.isNonSync=0}}else if(aQe&&te-ee0&&(n&&Math.abs(d-C)<9e3||Math.abs(gQe(I[0].pts-E,d)-C)<20*s),I.forEach((function(e){e.pts=gQe(e.pts-E,d)})),!t||C<0){if(!(I=jv(I).call(I,(function(e){return e.pts>=0}))).length)return;C=0===r?0:n&&!u?Math.max(0,d):I[0].pts}if("aac"===e.segmentCodec)for(var f=this.config.maxAudioFramesDrift,B=0,Q=C;B=f*s&&D<1e4&&u){var w,R,k=Math.round(m/s);(Q=y-k*s)<0&&(k--,Q+=s),0===B&&(this.nextAudioPts=C=Q),this.logger.warn(xf(w=xf(R="[mp4-remuxer]: Injecting ".concat(k," audio frame @ ")).call(R,(Q/i).toFixed(3),"s due to ")).call(w,Math.round(1e3*m/i)," ms gap."));for(var S=0;S0))return;F+=h;try{_=new Uint8Array(F)}catch(q){return void this.observer.emit(DCe.ERROR,DCe.ERROR,{type:yCe.MUX_ERROR,details:mCe.REMUX_ALLOC_ERROR,fatal:!1,error:q,bytes:F,reason:"fail allocating audio mdat ".concat(F)})}c||(new DataView(_.buffer).setUint32(0,F),_.set(tQe.types.mdat,4))}_.set(x,h);var P=x.byteLength;h+=P,l.push(new IQe(!0,a,P,0)),T=Y}var H=l.length;if(H){var J=l[l.length-1];this.nextAudioPts=C=T+o*J.duration;var O=c?new Uint8Array(0):tQe.moof(e.sequenceNumber++,b/o,TCe({},e,{samples:l}));e.samples=[];var z=b/i,j=C/i,X={data1:O,data2:_,startPTS:z,endPTS:j,startDTS:z,endDTS:j,type:"audio",hasAudio:!0,hasVideo:!1,nb:H};return this.isAudioContiguous=!0,X}}}]),e}();function gQe(e,A){var t;if(null===A)return e;for(t=A4294967296;)e+=t;return e}function cQe(e,A,t,n){var r=e.samples.length;if(r){for(var i=e.inputTimeScale,o=0;o0;r||(n=cEe(A,["encv"])),n.forEach((function(e){cEe(r?e.subarray(28):e.subarray(78),["sinf"]).forEach((function(e){var A=EEe(e);if(A){var n,i,o=A.subarray(8,24);o.some((function(e){return 0!==e}))||(KCe.log(xf(n=xf(i="[eme] Patching keyId in 'enc".concat(r?"a":"v",">sinf>>tenc' box: ")).call(i,Xde.hexDump(o)," -> ")).call(n,Xde.hexDump(t))),A.set(t,8))}}))}))})),e}(e,n)),this.emitInitSegment=!0}},{key:"generateInitSegment",value:function(e){var A=this.audioCodec,t=this.videoCodec;if(null==e||!e.byteLength)return this.initTracks=void 0,void(this.initData=void 0);var n=this.initData=uEe(e);n.audio&&(A=CQe(n.audio,Wde)),n.video&&(t=CQe(n.video,Zde));var r={};n.audio&&n.video?r.audiovideo={container:"video/mp4",codec:A+","+t,initSegment:e,id:"main"}:n.audio?r.audio={container:"audio/mp4",codec:A,initSegment:e,id:"audio"}:n.video?r.video={container:"video/mp4",codec:t,initSegment:e,id:"main"}:this.logger.warn("[passthrough-remuxer.ts]: initSegment does not contain moov or trak boxes."),this.initTracks=r}},{key:"remux",value:function(e,A,t,n,r,i){var o,a,s=this.initPTS,g=this.lastEndTime,c={audio:void 0,video:void 0,text:n,id3:t,initSegment:void 0};QCe(g)||(g=this.lastEndTime=r||0);var l=A.samples;if(null==l||!l.length)return c;var u={initPTS:void 0,timescale:1},I=this.initData;if(null!=(o=I)&&o.length||(this.generateInitSegment(l),I=this.initData),null==(a=I)||!a.length)return this.logger.warn("[passthrough-remuxer.ts]: Failed to generate initSegment."),c;this.emitInitSegment&&(u.tracks=this.initTracks,this.emitInitSegment=!1);var h=function(e,A){for(var t=0,n=0,r=0,i=cEe(e,["moof","traf"]),o=0;or}(s,d,r,h)||u.timescale!==s.timescale&&i){var E,f;if(u.initPTS=d-r,s&&1===s.timescale)this.logger.warn(xf(E=xf(f="Adjusting initPTS @".concat(r," from ")).call(f,s.baseTime/s.timescale," to ")).call(E,u.initPTS));this.initPTS=s={baseTime:u.initPTS,timescale:1}}var B=e?d-s.baseTime/s.timescale:g,Q=B+h;!function(e,A,t){cEe(A,["moof","traf"]).forEach((function(A){cEe(A,["tfhd"]).forEach((function(n){var r=oEe(n,4),i=e[r];if(i){var o=i.timescale||9e4;cEe(A,["tfdt"]).forEach((function(e){var A=e[0],n=t*o;if(n){var r=oEe(e,4);if(0===A)r-=n,gEe(e,4,r=Math.max(r,0));else{r*=Math.pow(2,32),r+=oEe(e,8),r-=n,r=Math.max(r,0);var i=Math.floor(r/(AEe+1)),a=Math.floor(r%(AEe+1));gEe(e,4,i),gEe(e,8,a)}}}))}}))}))}(I,l,s.baseTime/s.timescale),h>0?this.lastEndTime=Q:(this.logger.warn("Duration parsed from mp4 should be greater than zero"),this.resetNextTimestamp());var p=!!I.audio,v=!!I.video,y="";p&&(y+="audio"),v&&(y+="video");var m={data1:l,startPTS:B,startDTS:B,endPTS:Q,endDTS:Q,type:y,hasAudio:p,hasVideo:v,nb:1,dropped:0};return c.audio="audio"===m.type?m:void 0,c.video="audio"!==m.type?m:void 0,c.initSegment=u,c.id3=cQe(t,r,s,s),n.samples.length&&(c.text=lQe(n,r,s)),c}}]),e}();function CQe(e,A){var t=null==e?void 0:e.codec;if(t&&t.length>4)return t;if(A===Wde){if("ec-3"===t||"ac-3"===t||"alac"===t)return t;if("fLaC"===t||"Opus"===t){return XCe(t,!1)}return KCe.warn('Unhandled audio codec "'.concat(t,'" in mp4 MAP')),t||"mp4a"}return KCe.warn('Unhandled video codec "'.concat(t,'" in mp4 MAP')),t||"avc1"}try{uQe=self.performance.now.bind(self.performance)}catch(ZtA){uQe=Date.now}var dQe=[{demux:KBe,remux:hQe},{demux:jBe,remux:sQe},{demux:bBe,remux:sQe},{demux:LBe,remux:sQe}];Cv(dQe).call(dQe,2,0,{demux:FBe,remux:sQe});var EQe=function(){function e(A,t,n,r,i,o){GE(this,e),this.asyncResult=!1,this.logger=void 0,this.observer=void 0,this.typeSupported=void 0,this.config=void 0,this.id=void 0,this.demuxer=void 0,this.remuxer=void 0,this.decrypter=void 0,this.probe=void 0,this.decryptionPromise=null,this.transmuxConfig=void 0,this.currentTransmuxState=void 0,this.observer=A,this.typeSupported=t,this.config=n,this.id=i,this.logger=o}return NE(e,[{key:"configure",value:function(e){this.transmuxConfig=e,this.decrypter&&this.decrypter.reset()}},{key:"push",value:function(e,A,t,n){var r=this,i=t.transmuxing;i.executeStart=uQe();var o=new Uint8Array(e),a=this.currentTransmuxState,s=this.transmuxConfig;n&&(this.currentTransmuxState=n);var g=n||a,c=g.contiguous,l=g.discontinuity,u=g.trackSwitch,I=g.accurateTimeOffset,h=g.timeOffset,C=g.initSegmentChange,d=s.audioCodec,E=s.videoCodec,f=s.defaultInitPts,B=s.duration,Q=s.initSegmentData,p=function(e,A){var t=null;e.byteLength>0&&null!=(null==A?void 0:A.key)&&null!==A.iv&&null!=A.method&&(t=A);return t}(o,A);if(p&&PEe(p.method)){var v=this.getDecrypter(),y=HEe(p.method);if(!v.isSync())return this.asyncResult=!0,this.decryptionPromise=v.webCryptoDecrypt(o,p.key.buffer,p.iv.buffer,y).then((function(e){var A=r.push(e,null,t);return r.decryptionPromise=null,A})),this.decryptionPromise;var m=v.softwareDecrypt(o,p.key.buffer,p.iv.buffer,y);if(t.part>-1){var D=v.flush();m=D?D.buffer:D}if(!m)return i.executeEnd=uQe(),fQe(t);o=new Uint8Array(m)}var w=this.needsProbing(l,u);if(w){var R=this.configureTransmuxer(o);if(R)return this.logger.warn("[transmuxer] ".concat(R.message)),this.observer.emit(DCe.ERROR,DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,fatal:!1,error:R,reason:R.message}),i.executeEnd=uQe(),fQe(t)}(l||u||C||w)&&this.resetInitSegment(Q,d,E,B,A),(l||C||w)&&this.resetInitialTimestamp(f),c||this.resetContiguity();var k=this.transmux(o,p,h,I,t);this.asyncResult=BQe(k);var S=this.currentTransmuxState;return S.contiguous=!0,S.discontinuity=!1,S.trackSwitch=!1,i.executeEnd=uQe(),k}},{key:"flush",value:function(e){var A=this,t=e.transmuxing;t.executeStart=uQe();var n=this.decrypter,r=this.currentTransmuxState,i=this.decryptionPromise;if(i)return this.asyncResult=!0,i.then((function(){return A.flush(e)}));var o=[],a=r.timeOffset;if(n){var s=n.flush();s&&o.push(this.push(s.buffer,null,e))}var g=this.demuxer,c=this.remuxer;if(!g||!c){t.executeEnd=uQe();var l=[fQe(e)];return this.asyncResult?Op.resolve(l):l}var u=g.flush(a);return BQe(u)?(this.asyncResult=!0,u.then((function(t){return A.flushRemux(o,t,e),o}))):(this.flushRemux(o,u,e),this.asyncResult?Op.resolve(o):o)}},{key:"flushRemux",value:function(e,A,t){var n,r,i,o,a=A.audioTrack,s=A.videoTrack,g=A.id3Track,c=A.textTrack,l=this.currentTransmuxState,u=l.accurateTimeOffset,I=l.timeOffset;this.logger.log(xf(n=xf(r=xf(i=xf(o="[transmuxer.ts]: Flushed ".concat(this.id," sn: ")).call(o,t.sn)).call(i,t.part>-1?" part: "+t.part:""," of ")).call(r,this.id===kCe?"level":"track"," ")).call(n,t.level));var h=this.remuxer.remux(a,s,g,c,I,u,!0,this.id);e.push({remuxResult:h,chunkMeta:t}),t.transmuxing.executeEnd=uQe()}},{key:"resetInitialTimestamp",value:function(e){var A=this.demuxer,t=this.remuxer;A&&t&&(A.resetTimeStamp(e),t.resetTimeStamp(e))}},{key:"resetContiguity",value:function(){var e=this.demuxer,A=this.remuxer;e&&A&&(e.resetContiguity(),A.resetNextTimestamp())}},{key:"resetInitSegment",value:function(e,A,t,n,r){var i=this.demuxer,o=this.remuxer;i&&o&&(i.resetInitSegment(e,A,t,n),o.resetInitSegment(e,A,t,r))}},{key:"destroy",value:function(){this.demuxer&&(this.demuxer.destroy(),this.demuxer=void 0),this.remuxer&&(this.remuxer.destroy(),this.remuxer=void 0)}},{key:"transmux",value:function(e,A,t,n,r){return A&&"SAMPLE-AES"===A.method?this.transmuxSampleAes(e,A,t,n,r):this.transmuxUnencrypted(e,t,n,r)}},{key:"transmuxUnencrypted",value:function(e,A,t,n){var r=this.demuxer.demux(e,A,!1,!this.config.progressive),i=r.audioTrack,o=r.videoTrack,a=r.id3Track,s=r.textTrack;return{remuxResult:this.remuxer.remux(i,o,a,s,A,t,!1,this.id),chunkMeta:n}}},{key:"transmuxSampleAes",value:function(e,A,t,n,r){var i=this;return this.demuxer.demuxSampleAes(e,A,t).then((function(e){return{remuxResult:i.remuxer.remux(e.audioTrack,e.videoTrack,e.id3Track,e.textTrack,t,n,!1,i.id),chunkMeta:r}}))}},{key:"configureTransmuxer",value:function(e){for(var A,t=this.config,n=this.observer,r=this.typeSupported,i=0,o=dQe.length;i1&&s.id===(null==E?void 0:E.stats.chunkCount),y=!B&&(1===Q||0===Q&&(1===p||v&&p<=0)),m=self.performance.now();(B||Q||0===r.stats.parsing.start)&&(r.stats.parsing.start=m),!i||!p&&y||(i.stats.parsing.start=m);var D=!(E&&(null==(c=r.initSegment)?void 0:c.url)===(null==(l=E.initSegment)?void 0:l.url)),w=new pQe(f,y,a,B,C,D);if(!y||f||D){var R,k,S,M,G,_,b,T,F,N,L;this.hls.logger.log(xf(R=xf(k=xf(S=xf(M=xf(G=xf(_=xf(b=xf(T=xf(F=xf(N=xf(L="[transmuxer-interface]: Starting new transmux session for ".concat(r.type," sn: ")).call(L,s.sn)).call(N,s.part>-1?" part: "+s.part:""," ")).call(F,this.id===kCe?"level":"track",": ")).call(T,s.level," id: ")).call(b,s.id,"\n discontinuity: ")).call(_,f,"\n trackSwitch: ")).call(G,B,"\n contiguous: ")).call(M,y,"\n accurateTimeOffset: ")).call(S,a,"\n timeOffset: ")).call(k,C,"\n initSegmentChange: ")).call(R,D));var U=new QQe(t,n,A,o,g);this.configureTransmuxer(U)}if(this.frag=r,this.part=i,this.workerContext)this.workerContext.worker.postMessage({instanceNo:I,cmd:"demux",data:e,decryptdata:d,chunkMeta:s,state:w},e instanceof ArrayBuffer?[e]:[]);else if(h){var K=h.push(e,d,s,w);BQe(K)?K.then((function(e){u.handleTransmuxComplete(e)})).catch((function(e){u.transmuxerError(e,s,"transmuxer-interface push error")})):this.handleTransmuxComplete(K)}}},{key:"flush",value:function(e){var A=this;e.transmuxing.start=self.performance.now();var t=this.instanceNo,n=this.transmuxer;if(this.workerContext)this.workerContext.worker.postMessage({instanceNo:t,cmd:"flush",chunkMeta:e});else if(n){var r=n.flush(e);BQe(r)?r.then((function(t){A.handleFlushResult(t,e)})).catch((function(t){A.transmuxerError(t,e,"transmuxer-interface flush error")})):this.handleFlushResult(r,e)}}},{key:"transmuxerError",value:function(e,A,t){this.hls&&(this.error=e,this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_PARSING_ERROR,chunkMeta:A,frag:this.frag||void 0,part:this.part||void 0,fatal:!1,error:e,err:e,reason:t}))}},{key:"handleFlushResult",value:function(e,A){var t=this;e.forEach((function(e){t.handleTransmuxComplete(e)})),this.onFlush(A)}},{key:"configureTransmuxer",value:function(e){var A=this.instanceNo,t=this.transmuxer;this.workerContext?this.workerContext.worker.postMessage({instanceNo:A,cmd:"configure",config:e}):t&&t.configure(e)}},{key:"handleTransmuxComplete",value:function(e){e.chunkMeta.transmuxing.end=self.performance.now(),this.onTransmuxComplete(e)}}]),e}();function mQe(e,A){if(e.length!==A.length)return!1;for(var t=0;t=A){var n=t.start,r=t.end,i=e.fragments;if(!t.relurl){var o=e.fragmentHint;o&&(i=xf(i).call(i,o))}return fde(i,(function(e){return e.ccA||e.start>=r?-1:0}))}return null}(A,t,e)||A&&vde(A.fragments,t)||e}},{key:"startLoad",value:function(e){if(!this.levels)return this.startPosition=e,void(this.state=_fe);var A=this.lastCurrentTime;this.stopLoad(),this.setInterval(100),A>0&&-1===e?(this.log("Override startPosition with lastCurrentTime @".concat(A.toFixed(3))),e=A,this.state=bfe):this.state=Lfe,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}},{key:"doTick",value:function(){switch(this.state){case bfe:this.doTickIdle();break;case Lfe:var e=this.levels,A=this.trackId,n=null==e?void 0:e[A],r=null==n?void 0:n.details;if(r&&!this.waitForLive(n)){if(this.waitForCdnTuneIn(r))break;this.state=Pfe}break;case Nfe:var i,o=performance.now(),a=this.retryDate;if(!a||o>=a||null!=(i=this.media)&&i.seeking){var s=this.levels,g=this.trackId;this.log("RetryDate reached, switch back to IDLE state"),this.resetStartWhenNotLoaded((null==s?void 0:s[g])||null),this.state=bfe}break;case Pfe:var c=this.waitingData;if(c){var l=c.frag,u=c.part,I=c.cache,h=c.complete,C=this.mainAnchor;if(void 0!==this.initPTS[l.cc]){this.waitingData=null,this.state=Ffe;var d={frag:l,part:u,payload:I.flush().buffer,networkDetails:null};this._handleFragmentLoadProgress(d),h&&MF(Pk(t.prototype),"_handleFragmentLoadComplete",this).call(this,d)}else if(C&&C.cc!==c.frag.cc){var E;this.log(xf(E="Waiting fragment cc (".concat(l.cc,") cancelled because video is at cc ")).call(E,C.cc)),this.nextLoadPosition=this.findSyncFrag(C).start,this.clearWaitingFragment()}}else this.state=bfe}this.onTickEnd()}},{key:"clearWaitingFragment",value:function(){var e=this.waitingData;e&&(this.hls.hasEnoughToStart||(this.startFragRequested=!1),this.fragmentTracker.removeFragment(e.frag),this.waitingData=null,this.state!==_fe&&(this.state=bfe))}},{key:"resetLoadingState",value:function(){this.clearWaitingFragment(),MF(Pk(t.prototype),"resetLoadingState",this).call(this)}},{key:"onTickEnd",value:function(){var e=this.media;null!=e&&e.readyState&&(this.lastCurrentTime=e.currentTime)}},{key:"doTickIdle",value:function(){var e,A=this.hls,t=this.levels,n=this.media,r=this.trackId,i=A.config;if(this.buffering&&(n||!this.startFragRequested&&i.startFragPrefetch)&&null!=t&&t[r]){var o=t[r],a=o.details;if(!a||this.waitForLive(o)||this.waitForCdnTuneIn(a))return this.state=Lfe,void(this.startFragRequested=!1);var s=this.mediaBuffer?this.mediaBuffer:this.media;this.bufferFlushed&&s&&(this.bufferFlushed=!1,this.afterBufferFlushed(s,Wde,SCe));var g=this.getFwdBufferInfo(s,SCe);if(null!==g){var c=this.bufferedTrack,l=this.switchingTrack;if(!l&&this._streamEnded(g,a))return A.trigger(DCe.BUFFER_EOS,{type:"audio"}),void(this.state=xfe);var u=g.len,I=A.maxBufferLength,h=a.fragments,C=h[0].start,d=this.getLoadPosition(),E=this.flushing?d:g.end;if(l&&n){var f=d;c&&!DQe(l.attrs,c.attrs)&&(E=f),a.PTSKnown&&fC||g.nextStart)&&(this.log("Alt audio track ahead of main track, seek to start of alt audio track"),n.currentTime=C+.05)}if(!(u>=I&&!l&&Ep.end){var v=this.fragmentTracker.getFragAtPos(E,kCe);v&&v.end>Q.end&&(p=v,this.mainFragLoading={frag:v,targetBufferTime:null})}if(B.start>p.end)return}this.loadFragment(B,o,E)}else this.bufferFlushed=!0}}}}},{key:"onMediaDetaching",value:function(e,A){this.bufferFlushed=this.flushing=!1,MF(Pk(t.prototype),"onMediaDetaching",this).call(this,e,A)}},{key:"onAudioTracksUpdated",value:function(e,A){var t=A.audioTracks;this.resetTransmuxer(),this.levels=Jp(t).call(t,(function(e){return new sde(e)}))}},{key:"onAudioTrackSwitching",value:function(e,A){var t=!!A.url;this.trackId=A.id;var n=this.fragCurrent;n&&(n.abortRequests(),this.removeUnbufferedFrags(n.start)),this.resetLoadingState(),t?(this.switchingTrack=A,this.flushAudioIfNeeded(A),this.state!==_fe&&(this.setInterval(100),this.state=bfe,this.tick())):(this.resetTransmuxer(),this.switchingTrack=null,this.bufferedTrack=A,this.clearInterval())}},{key:"onManifestLoading",value:function(){MF(Pk(t.prototype),"onManifestLoading",this).call(this),this.bufferFlushed=this.flushing=this.audioOnly=!1,this.resetItem(),this.trackId=-1}},{key:"onLevelLoaded",value:function(e,A){this.mainDetails=A.details;var t=this.cachedTrackLoadedData;t&&(this.cachedTrackLoadedData=null,this.hls.trigger(DCe.AUDIO_TRACK_LOADED,t))}},{key:"onAudioTrackLoaded",value:function(e,A){var t,n,r,i,o,a,s=this.levels,g=A.details,c=A.id,l=this.mainDetails;if(!l||l.expired||g.endCC>l.endCC)return this.cachedTrackLoadedData=A,void(this.state!==_fe&&(this.state=Lfe));if(s){this.log(xf(t=xf(n=xf(r=xf(i="Audio track ".concat(c," loaded [")).call(i,g.startSN,",")).call(r,g.endSN,"]")).call(n,g.lastPartSn?xf(o="[part-".concat(g.lastPartSn,"-")).call(o,g.lastPartIndex,"]"):"",",duration:")).call(t,g.totalduration));var u=s[c],I=0;if(g.live||null!=(a=u.details)&&a.live){if(this.checkLiveUpdate(g),g.deltaUpdateFailed)return;var h;if(u.details)I=this.alignPlaylists(g,u.details,null==(h=this.levelLastLoaded)?void 0:h.details);g.alignedSliding||(Sfe(g,l),g.alignedSliding||Mfe(g,l),I=g.fragmentStart)}u.details=g,this.levelLastLoaded=u,this.startFragRequested||this.setStartPosition(l,I),this.hls.trigger(DCe.AUDIO_TRACK_UPDATED,{details:g,id:c,groupId:A.groupId}),this.state!==Lfe||this.waitForCdnTuneIn(g)||(this.state=bfe),this.tick()}else this.warn("Audio tracks were reset while loading level ".concat(c))}},{key:"_handleFragmentLoadProgress",value:function(e){var A,t=e.frag,n=e.part,r=e.payload,i=this.config,o=this.trackId,a=this.levels;if(a){var s=a[o];if(s){var g=s.details;if(!g)return this.warn("Audio track details undefined on fragment load progress"),void this.removeUnbufferedFrags(t.start);var c=i.defaultAudioCodec||s.audioCodec||"mp4a.40.2",l=this.transmuxer;l||(l=this.transmuxer=new yQe(this.hls,SCe,this._handleTransmuxComplete.bind(this),this._handleTransmuxerFlush.bind(this)));var u=this.initPTS[t.cc],I=null==(A=t.initSegment)?void 0:A.data;if(void 0!==u){var h=n?n.index:-1,C=-1!==h,d=new bEe(t.level,t.sn,t.stats.chunkCount,r.byteLength,h,C);l.push(r,I,c,"",t,n,g.totalduration,!1,d,u)}else{var E,f,B,Q;this.log(xf(E=xf(f=xf(B=xf(Q="Unknown video PTS for cc ".concat(t.cc,", waiting for video PTS before demuxing audio frag ")).call(Q,t.sn," of [")).call(B,g.startSN," ,")).call(f,g.endSN,"],track ")).call(E,o)),(this.waitingData=this.waitingData||{frag:t,part:n,cache:new Ofe,complete:!1}).cache.push(new Uint8Array(r)),this.state!==_fe&&(this.state=Pfe)}}else this.warn("Audio track is undefined on fragment load progress")}else{var p;this.warn(xf(p="Audio tracks were reset while fragment load was in progress. Fragment ".concat(t.sn," of level ")).call(p,t.level," will not be buffered"))}}},{key:"_handleFragmentLoadComplete",value:function(e){this.waitingData?this.waitingData.complete=!0:MF(Pk(t.prototype),"_handleFragmentLoadComplete",this).call(this,e)}},{key:"onBufferReset",value:function(){this.mediaBuffer=null}},{key:"onBufferCreated",value:function(e,A){this.bufferFlushed=this.flushing=!1;var t=A.tracks.audio;t&&(this.mediaBuffer=t.buffer||null)}},{key:"onFragLoading",value:function(e,A){!this.audioOnly&&A.frag.type===kCe&&eEe(A.frag)&&(this.mainFragLoading=A,this.state===bfe&&this.tick())}},{key:"onFragBuffered",value:function(e,A){var t=A.frag,n=A.part;if(t.type===SCe)if(this.fragContextChanged(t)){var r,i,o,a;this.warn(xf(r=xf(i=xf(o=xf(a="Fragment ".concat(t.sn)).call(a,n?" p: "+n.index:""," of level ")).call(o,t.level," finished buffering, but was aborted. state: ")).call(i,this.state,", audioSwitch: ")).call(r,this.switchingTrack?this.switchingTrack.name:"false"))}else{if(eEe(t)){this.fragPrevious=t;var s=this.switchingTrack;s&&(this.bufferedTrack=s,this.switchingTrack=null,this.hls.trigger(DCe.AUDIO_TRACK_SWITCHED,NCe({},s)))}this.fragBufferedComplete(t,n),this.media&&this.tick()}else this.audioOnly||t.type!==kCe||t.elementaryStreams.video||t.elementaryStreams.audiovideo||(this.audioOnly=!0,this.mainFragLoading=null)}},{key:"onError",value:function(e,A){var n;if(A.fatal)this.state=Yfe;else switch(A.details){case mCe.FRAG_GAP:case mCe.FRAG_PARSING_ERROR:case mCe.FRAG_DECRYPT_ERROR:case mCe.FRAG_LOAD_ERROR:case mCe.FRAG_LOAD_TIMEOUT:case mCe.KEY_LOAD_ERROR:case mCe.KEY_LOAD_TIMEOUT:this.onFragmentOrKeyLoadError(SCe,A);break;case mCe.AUDIO_TRACK_LOAD_ERROR:case mCe.AUDIO_TRACK_LOAD_TIMEOUT:case mCe.LEVEL_PARSING_ERROR:A.levelRetry||this.state!==Lfe||(null==(n=A.context)?void 0:n.type)!==wCe||(this.state=bfe);break;case mCe.BUFFER_APPEND_ERROR:case mCe.BUFFER_FULL_ERROR:if(!A.parent||"audio"!==A.parent)return;if(A.details===mCe.BUFFER_APPEND_ERROR)return void this.resetLoadingState();this.reduceLengthAndFlushBuffer(A)&&(this.bufferedTrack=null,MF(Pk(t.prototype),"flushMainBuffer",this).call(this,0,Number.POSITIVE_INFINITY,"audio"));break;case mCe.INTERNAL_EXCEPTION:this.recoverWorkerError(A)}}},{key:"onBufferFlushing",value:function(e,A){A.type!==Zde&&(this.flushing=!0)}},{key:"onBufferFlushed",value:function(e,A){var t=A.type;if(t!==Zde){this.flushing=!1,this.bufferFlushed=!0,this.state===xfe&&(this.state=bfe);var n=this.mediaBuffer||this.media;n&&(this.afterBufferFlushed(n,t,SCe),this.tick())}}},{key:"_handleTransmuxComplete",value:function(e){var A,t="audio",n=this.hls,r=e.remuxResult,i=e.chunkMeta,o=this.getCurrentContext(i);if(o){var a=o.frag,s=o.part,g=o.level,c=g.details,l=r.audio,u=r.text,I=r.id3,h=r.initSegment;if(!this.fragContextChanged(a)&&c){if(this.state=Ufe,this.switchingTrack&&l&&this.completeAudioSwitch(this.switchingTrack),null!=h&&h.tracks){var C=a.initSegment||a;this._bufferInitSegment(g,h.tracks,C,i),n.trigger(DCe.FRAG_PARSING_INIT_SEGMENT,{frag:C,id:t,tracks:h.tracks})}if(l){var d=l.startPTS,E=l.endPTS,f=l.startDTS,B=l.endDTS;s&&(s.elementaryStreams[Wde]={startPTS:d,endPTS:E,startDTS:f,endDTS:B}),a.setElementaryStreamInfo(Wde,d,E,f,B),this.bufferFragmentData(l,a,s,i)}if(null!=I&&null!=(A=I.samples)&&A.length){var Q=TCe({id:t,frag:a,details:c},I);n.trigger(DCe.FRAG_PARSING_METADATA,Q)}if(u){var p=TCe({id:t,frag:a,details:c},u);n.trigger(DCe.FRAG_PARSING_USERDATA,p)}}else this.fragmentTracker.removeFragment(a)}else this.resetWhenMissingContext(i)}},{key:"_bufferInitSegment",value:function(e,A,t,n){var r,i;if(this.state===Ufe&&(A.video&&delete A.video,A.audiovideo&&delete A.audiovideo,A.audio)){var o=A.audio;o.id="audio";var a=e.audioCodec;this.log(xf(r=xf(i="Init audio buffer, container:".concat(o.container,", codecs[level/parsed]=[")).call(i,a,"/")).call(r,o.codec,"]")),a&&1===a.split(",").length&&(o.levelCodec=a),this.hls.trigger(DCe.BUFFER_CODECS,A);var s=o.initSegment;if(null!=s&&s.byteLength){var g={type:"audio",frag:t,part:null,chunkMeta:n,parent:t.type,data:s};this.hls.trigger(DCe.BUFFER_APPENDING,g)}this.tickImmediate()}}},{key:"loadFragment",value:function(e,A,n){var r,i=this.fragmentTracker.getState(e);if(this.switchingTrack||i===Lde||i===Kde)if(eEe(e))if(null!=(r=A.details)&&r.live&&!this.initPTS[e.cc]){var o,a;this.log(xf(o=xf(a="Waiting for video PTS in continuity counter ".concat(e.cc," of live stream before loading audio fragment ")).call(a,e.sn," of level ")).call(o,this.trackId)),this.state=Pfe;var s=this.mainDetails;s&&s.fragmentStart!==A.details.fragmentStart&&Mfe(A.details,s)}else MF(Pk(t.prototype),"loadFragment",this).call(this,e,A,n);else this._loadInitSegment(e,A);else this.clearTrackerIfNeeded(e)}},{key:"flushAudioIfNeeded",value:function(e){var A=this.media,n=this.bufferedTrack,r=null==n?void 0:n.attrs,i=e.attrs;A&&r&&(r.CHANNELS!==i.CHANNELS||n.name!==e.name||n.lang!==e.lang)&&(this.log("Switching audio track : flushing all audio"),MF(Pk(t.prototype),"flushMainBuffer",this).call(this,0,Number.POSITIVE_INFINITY,"audio"),this.bufferedTrack=null)}},{key:"completeAudioSwitch",value:function(e){var A=this.hls;this.flushAudioIfNeeded(e),this.bufferedTrack=e,this.switchingTrack=null,A.trigger(DCe.AUDIO_TRACK_SWITCHED,NCe({},e))}}]),t}(Jfe),kQe=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,n,e.logger)).hls=void 0,r.canLoad=!1,r.timer=-1,r.hls=e,r}return NE(t,[{key:"destroy",value:function(){this.clearTimer(),this.hls=this.log=this.warn=null}},{key:"clearTimer",value:function(){-1!==this.timer&&(self.clearTimeout(this.timer),this.timer=-1)}},{key:"startLoad",value:function(){this.canLoad=!0,this.loadPlaylist()}},{key:"stopLoad",value:function(){this.canLoad=!1,this.clearTimer()}},{key:"switchParams",value:function(e,A,t){var n=null==A?void 0:A.renditionReports;if(n){for(var r=-1,i=0;i=0&&l>A.partTarget&&(c+=1)}var u=t&&ode(t);return new ade(g,c>=0?c:void 0,u)}}}},{key:"loadPlaylist",value:function(e){this.clearTimer()}},{key:"loadingPlaylist",value:function(e,A){this.clearTimer()}},{key:"shouldLoadPlaylist",value:function(e){return this.canLoad&&!!e&&!!e.url&&(!e.details||e.details.live)}},{key:"getUrlWithDirectives",value:function(e,A){if(A)try{return A.addDirectives(e)}catch(WtA){this.warn("Could not construct new URL with HLS Delivery Directives: ".concat(WtA))}return e}},{key:"playlistLoaded",value:function(e,A,t){var n=A.details,r=A.stats,i=self.performance.now(),o=r.loading.first?Math.max(0,i-r.loading.first):0;n.advancedDateTime=Date.now()-o;var a=this.hls.config.timelineOffset;if(a!==n.appliedTimelineOffset){var s=Math.max(a||0,0);n.appliedTimelineOffset=s,n.fragments.forEach((function(e){e.start=e.playlistOffset+s}))}if(n.live||null!=t&&t.live){var g,c="levelInfo"in A?A.levelInfo:A.track;n.reloaded(t),t&&n.fragments.length>0&&Qfe(t,n),-1===n.requestScheduled&&(n.requestScheduled=r.loading.start);var l,u=this.hls.mainForwardBufferInfo,I=u?u.end-u.len:0,h=function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1/0,t=1e3*e.targetduration;if(e.updated){var n=e.fragments;if(n.length&&4*t>A){var r=1e3*n[n.length-1].duration;r0){if(y>3*n.targetduration)this.log("Playlist last advanced ".concat(v.toFixed(2),"s ago. Omitting segment and part directives.")),C=void 0,d=void 0;else if(null!=t&&t.tuneInGoal&&y-n.partTarget>t.tuneInGoal){var D,w;this.warn(xf(D=xf(w="CDN Tune-in goal increased from: ".concat(t.tuneInGoal," to: ")).call(w,m," with playlist age: ")).call(D,n.age)),m=0}else{var R,k,S,M,G=Math.floor(m/n.targetduration);if(C+=G,void 0!==d)d+=Math.round(m%n.targetduration/n.partTarget);this.log(xf(R=xf(k=xf(S=xf(M="CDN Tune-in age: ".concat(n.ageHeader,"s last advanced ")).call(M,v.toFixed(2),"s goal: ")).call(S,m," skip sn ")).call(k,G," to part ")).call(R,d))}n.tuneInGoal=m}if(l=this.getDeliveryDirectives(n,A.deliveryDirectives,C,d),E||!p)return n.requestScheduled=i,void this.loadingPlaylist(c,l)}else(n.canBlockReload||n.canSkipUntil)&&(l=this.getDeliveryDirectives(n,A.deliveryDirectives,C,d));l&&void 0!==C&&n.canBlockReload&&(n.requestScheduled=r.loading.first+Math.max(h-2*o,h/2)),this.scheduleLoading(c,l,n)}else this.clearTimer()}},{key:"scheduleLoading",value:function(e,A,t){var n,r=this,i=t||e.details;if(i){var o=self.performance.now(),a=i.requestScheduled;if(o>=a)this.loadingPlaylist(e,A);else{var s=a-o;this.log(xf(n="reload live playlist ".concat(e.name||e.bitrate+"bps"," in ")).call(n,Math.round(s)," ms")),this.clearTimer(),this.timer=self.setTimeout((function(){return r.loadingPlaylist(e,A)}),s)}}else this.loadingPlaylist(e,A)}},{key:"getDeliveryDirectives",value:function(e,A,t,n){var r=ode(e);return null!=A&&A.skip&&e.deltaUpdateFailed&&(t=A.msn,n=A.part,r=nde),new ade(t,n,r)}},{key:"checkRetry",value:function(e){var A=this,t=e.details,n=yde(e),r=e.errorAction,i=r||{},o=i.action,a=i.retryCount,s=void 0===a?0:a,g=i.retryConfig,c=!!r&&!!g&&(o===Gde||!r.resolved&&o===Sde);if(c){var l;if(s>=g.maxNumRetry)return!1;if(n&&null!=(l=e.context)&&l.deliveryDirectives){var u,I;this.warn(xf(u=xf(I="Retrying playlist loading ".concat(s+1,"/")).call(I,g.maxNumRetry,' after "')).call(u,t,'" without delivery-directives')),this.loadPlaylist()}else{var h,C,d,E=Dde(g,s);this.clearTimer(),this.timer=self.setTimeout((function(){return A.loadPlaylist()}),E),this.warn(xf(h=xf(C=xf(d="Retrying playlist loading ".concat(s+1,"/")).call(d,g.maxNumRetry,' after "')).call(C,t,'" in ')).call(h,E,"ms"))}e.levelRetry=!0,r.resolved=!0}return c}}]),t}(LCe),SQe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,e,"audio-track-controller")).tracks=[],n.groupIds=null,n.tracksInGroup=[],n.trackId=-1,n.currentTrack=null,n.selectDefaultTrack=!0,n.registerListeners(),n}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.on(DCe.LEVEL_LOADING,this.onLevelLoading,this),e.on(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(DCe.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.off(DCe.LEVEL_LOADING,this.onLevelLoading,this),e.off(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(DCe.AUDIO_TRACK_LOADED,this.onAudioTrackLoaded,this),e.off(DCe.ERROR,this.onError,this)}},{key:"destroy",value:function(){this.unregisterListeners(),this.tracks.length=0,this.tracksInGroup.length=0,this.currentTrack=null,MF(Pk(t.prototype),"destroy",this).call(this)}},{key:"onManifestLoading",value:function(){this.tracks=[],this.tracksInGroup=[],this.groupIds=null,this.currentTrack=null,this.trackId=-1,this.selectDefaultTrack=!0}},{key:"onManifestParsed",value:function(e,A){this.tracks=A.audioTracks||[]}},{key:"onAudioTrackLoaded",value:function(e,A){var t,n,r,i,o,a=A.id,s=A.groupId,g=A.details,c=this.tracksInGroup[a];if(c&&c.groupId===s){var l=c.details;c.details=A.details,this.log(xf(t=xf(n=xf(r=xf(i=xf(o="Audio track ".concat(a,' "')).call(o,c.name,'" lang:')).call(i,c.lang," group:")).call(r,s," loaded [")).call(n,g.startSN,"-")).call(t,g.endSN,"]")),a===this.trackId&&this.playlistLoaded(a,A,l)}else{var u,I;this.warn(xf(u=xf(I="Audio track with id:".concat(a," and group:")).call(I,s," not found in active group ")).call(u,null==c?void 0:c.groupId))}}},{key:"onLevelLoading",value:function(e,A){this.switchLevel(A.level)}},{key:"onLevelSwitching",value:function(e,A){this.switchLevel(A.level)}},{key:"switchLevel",value:function(e){var A=this.hls.levels[e];if(A){var t=A.audioGroups||null,n=this.groupIds,r=this.currentTrack;if(!t||(null==n?void 0:n.length)!==(null==t?void 0:t.length)||null!=t&&t.some((function(e){return-1===(null==n?void 0:zp(n).call(n,e))}))){var i,o;this.groupIds=t,this.trackId=-1,this.currentTrack=null;var a=jv(i=this.tracks).call(i,(function(e){return!t||-1!==zp(t).call(t,e.groupId)}));if(a.length)this.selectDefaultTrack&&!a.some((function(e){return e.default}))&&(this.selectDefaultTrack=!1),a.forEach((function(e,A){e.id=A}));else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=a;var s=this.hls.config.audioPreference;if(!r&&s){var g=Ide(s,a,Cde);if(g>-1)r=a[g];else{var c=Ide(s,this.tracks);r=this.tracks[c]}}var l=this.findTrackId(r);-1===l&&r&&(l=this.findTrackId(null));var u={audioTracks:a};this.log(xf(o="Updating audio tracks, ".concat(a.length," track(s) found in group(s): ")).call(o,null==t?void 0:t.join(","))),this.hls.trigger(DCe.AUDIO_TRACKS_UPDATED,u);var I=this.trackId;if(-1!==l&&-1===I)this.setAudioTrack(l);else if(a.length&&-1===I){var h,C,d=new Error(xf(h="No audio track selected for current audio group-ID(s): ".concat(null==(C=this.groupIds)?void 0:C.join(",")," track count: ")).call(h,a.length));this.warn(d.message),this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.AUDIO_TRACK_LOAD_ERROR,fatal:!0,error:d})}}}}},{key:"onError",value:function(e,A){var t;!A.fatal&&A.context&&(A.context.type!==wCe||A.context.id!==this.trackId||this.groupIds&&-1===zp(t=this.groupIds).call(t,A.context.groupId)||this.checkRetry(A))}},{key:"allAudioTracks",get:function(){return this.tracks}},{key:"audioTracks",get:function(){return this.tracksInGroup}},{key:"audioTrack",get:function(){return this.trackId},set:function(e){this.selectDefaultTrack=!1,this.setAudioTrack(e)}},{key:"setAudioOption",value:function(e){var A=this.hls;if(A.config.audioPreference=e,e){var t=this.allAudioTracks;if(this.selectDefaultTrack=!1,t.length){var n=this.currentTrack;if(n&&hde(e,n,Cde))return n;var r=Ide(e,this.tracksInGroup,Cde);if(r>-1){var i=this.tracksInGroup[r];return this.setAudioTrack(r),i}if(n){var o=A.loadLevel;-1===o&&(o=A.firstAutoLevel);var a=function(e,A,t,n,r){var i=A[n],o=wF(A).call(A,(function(e,A,t){var n=A.uri;return(e[n]||(e[n]=[])).push(t),e}),{})[i.uri];o.length>1&&(n=Math.max.apply(Math,o));var a=i.videoRange,s=i.frameRate,g=i.codecSet.substring(0,4),c=dde(A,n,(function(A){if(A.videoRange!==a||A.frameRate!==s||A.codecSet.substring(0,4)!==g)return!1;var n=A.audioGroups,i=jv(t).call(t,(function(e){return!n||-1!==zp(n).call(n,e.groupId)}));return Ide(e,i,r)>-1}));return c>-1?c:dde(A,n,(function(A){var n=A.audioGroups,i=jv(t).call(t,(function(e){return!n||-1!==zp(n).call(n,e.groupId)}));return Ide(e,i,r)>-1}))}(e,A.levels,t,o,Cde);if(-1===a)return null;A.nextLoadLevel=a}if(e.channels||e.audioCodec){var s=Ide(e,t);if(s>-1)return t[s]}}}return null}},{key:"setAudioTrack",value:function(e){var A,t,n,r,i=this.tracksInGroup;if(e<0||e>=i.length)this.warn("Invalid audio track id: ".concat(e));else{this.selectDefaultTrack=!1;var o=this.currentTrack,a=i[e],s=a.details&&!a.details.live;if(!(e===this.trackId&&a===o&&s||(this.log(xf(A=xf(t=xf(n=xf(r="Switching to audio-track ".concat(e,' "')).call(r,a.name,'" lang:')).call(n,a.lang," group:")).call(t,a.groupId," channels:")).call(A,a.channels)),this.trackId=e,this.currentTrack=a,this.hls.trigger(DCe.AUDIO_TRACK_SWITCHING,NCe({},a)),s))){var g=this.switchParams(a.url,null==o?void 0:o.details,a.details);this.loadPlaylist(g)}}}},{key:"findTrackId",value:function(e){for(var A=this.tracksInGroup,t=0;t":xf(e=xf(A="\n".concat(this.list("video"),"\n")).call(A,this.list("audio"),"\n")).call(e,this.list("audiovideo"),"}")}},{key:"list",value:function(e){var A,t,n,r;return null!=(n=this.queues)&&n[e]||null!=(r=this.tracks)&&r[e]?xf(A=xf(t="".concat(e,": (")).call(t,this.listSbInfo(e),") ")).call(A,this.listOps(e)):""}},{key:"listSbInfo",value:function(e){var A,t,n,r=null==(n=this.tracks)?void 0:n[e],i=null==r?void 0:r.buffer;return i?xf(A=xf(t="SourceBuffer".concat(i.updating?" updating":"")).call(t,r.ended?" ended":"")).call(A,r.ending?" ending":""):"none"}},{key:"listOps",value:function(e){var A,t;return(null==(t=this.queues)?void 0:Jp(A=t[e]).call(A,(function(e){return e.label})).join(", "))||""}}]),e}(),GQe=/(avc[1234]|hvc1|hev1|dvh[1e]|vp09|av01)(?:\.[^.,]+)+/,_Qe="HlsJsTrackRemovedError",bQe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,e)).name=_Qe,n}return NE(t)}(zk(Error)),TQe=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r,i;return GE(this,t),(r=A.call(this,"buffer-controller",e.logger)).hls=void 0,r.fragmentTracker=void 0,r.details=null,r._objectUrl=null,r.operationQueue=null,r.bufferCodecEventsTotal=0,r.media=null,r.mediaSource=null,r.lastMpegAudioChunk=null,r.blockedAudioAppend=null,r.lastVideoAppendEnd=0,r.appendSource=void 0,r.transferData=void 0,r.overrides=void 0,r.appendErrors={audio:0,video:0,audiovideo:0},r.tracks={},r.sourceBuffers=[[null,null],[null,null]],r._onEndStreaming=function(e){var A;r.hls&&"open"===(null==(A=r.mediaSource)?void 0:A.readyState)&&r.hls.pauseBuffering()},r._onStartStreaming=function(e){r.hls&&r.hls.resumeBuffering()},r._onMediaSourceOpen=function(e){var A=Gk(r),t=A.media,n=A.mediaSource;e&&r.log("Media source opened"),t&&n&&(t.removeEventListener("emptied",r._onMediaEmptied),r.updateDuration(),r.hls.trigger(DCe.MEDIA_ATTACHED,{media:t,mediaSource:n}),n.removeEventListener("sourceopen",r._onMediaSourceOpen),null!==r.mediaSource&&r.checkPendingTracks())},r._onMediaSourceClose=function(){r.log("Media source closed")},r._onMediaSourceEnded=function(){r.log("Media source ended")},r._onMediaEmptied=function(){var e,A=Gk(r),t=A.mediaSrc,n=A._objectUrl;t!==n&&r.error(xf(e="Media element src was set while attaching MediaSource (".concat(n," > ")).call(e,t,")"))},r.hls=e,r.fragmentTracker=n,r.appendSource=(i=xCe(e.config.preferManagedMediaSource),"undefined"!=typeof self&&i===self.ManagedMediaSource),r.initTracks(),r.registerListeners(),r}return NE(t,[{key:"hasSourceTypes",value:function(){return jp(this.tracks).length>0}},{key:"destroy",value:function(){this.unregisterListeners(),this.details=null,this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.transferData=this.overrides=void 0,this.operationQueue&&(this.operationQueue.destroy(),this.operationQueue=null),this.hls=this.fragmentTracker=null,this._onMediaSourceOpen=this._onMediaSourceClose=null,this._onMediaSourceEnded=null,this._onStartStreaming=this._onEndStreaming=null}},{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.on(DCe.BUFFER_RESET,this.onBufferReset,this),e.on(DCe.BUFFER_APPENDING,this.onBufferAppending,this),e.on(DCe.BUFFER_CODECS,this.onBufferCodecs,this),e.on(DCe.BUFFER_EOS,this.onBufferEos,this),e.on(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this),e.on(DCe.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(DCe.FRAG_PARSED,this.onFragParsed,this),e.on(DCe.FRAG_CHANGED,this.onFragChanged,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.off(DCe.BUFFER_RESET,this.onBufferReset,this),e.off(DCe.BUFFER_APPENDING,this.onBufferAppending,this),e.off(DCe.BUFFER_CODECS,this.onBufferCodecs,this),e.off(DCe.BUFFER_EOS,this.onBufferEos,this),e.off(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this),e.off(DCe.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(DCe.FRAG_PARSED,this.onFragParsed,this),e.off(DCe.FRAG_CHANGED,this.onFragChanged,this),e.off(DCe.ERROR,this.onError,this)}},{key:"transferMedia",value:function(){var e=this,A=this.media,t=this.mediaSource;if(!A)return null;var n={};if(this.operationQueue){var r=this.isUpdating();r||this.operationQueue.removeBlockers();var i,o,a=this.isQueued();if(r||a)this.warn(xf(i=xf(o="Transfering MediaSource with".concat(a?" operations in queue":"")).call(o,r?" updating SourceBuffer(s)":""," ")).call(i,this.operationQueue));this.operationQueue.destroy()}var s=this.transferData;return!this.sourceBufferCount&&s&&s.mediaSource===t?TCe(n,s.tracks):this.sourceBuffers.forEach((function(A){var t=rF(A,1)[0];t&&(n[t]=TCe({},e.tracks[t]),e.removeBuffer(t)),A[0]=A[1]=null})),{media:A,mediaSource:t,tracks:n}}},{key:"initTracks",value:function(){this.sourceBuffers=[[null,null],[null,null]],this.tracks={},this.resetQueue(),this.resetAppendErrors(),this.lastMpegAudioChunk=this.blockedAudioAppend=null,this.lastVideoAppendEnd=0}},{key:"onManifestLoading",value:function(){this.bufferCodecEventsTotal=0,this.details=null}},{key:"onManifestParsed",value:function(e,A){var t,n=2;(A.audio&&!A.video||!A.altAudio)&&(n=1),this.bufferCodecEventsTotal=n,this.log("".concat(n," bufferCodec event(s) expected.")),null!=(t=this.transferData)&&t.mediaSource&&this.sourceBufferCount&&n&&this.bufferCreated()}},{key:"onMediaAttaching",value:function(e,A){var t=this.media=A.media,n=xCe(this.appendSource);if(this.transferData=this.overrides=void 0,t&&n){var r=!!A.mediaSource;(r||A.overrides)&&(this.transferData=A,this.overrides=A.overrides);var i=this.mediaSource=A.mediaSource||new n;if(this.assignMediaSource(i),r)this._objectUrl=t.src,this.attachTransferred();else{var o=this._objectUrl=Xb.createObjectURL(i);if(this.appendSource)try{t.removeAttribute("src");var a=self.ManagedMediaSource;t.disableRemotePlayback=t.disableRemotePlayback||a&&i instanceof a,FQe(t),function(e,A){var t=self.document.createElement("source");t.type="video/mp4",t.src=A,e.appendChild(t)}(t,o),t.load()}catch(WtA){t.src=o}else t.src=o}t.addEventListener("emptied",this._onMediaEmptied)}}},{key:"assignMediaSource",value:function(e){var A,t,n;this.log(xf(A="".concat((null==(t=this.transferData)?void 0:t.mediaSource)===e?"transferred":"created"," media source: ")).call(A,null==(n=e.constructor)?void 0:n.name)),e.addEventListener("sourceopen",this._onMediaSourceOpen),e.addEventListener("sourceended",this._onMediaSourceEnded),e.addEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(e.addEventListener("startstreaming",this._onStartStreaming),e.addEventListener("endstreaming",this._onEndStreaming))}},{key:"attachTransferred",value:function(){var e=this,A=this.media,t=this.transferData;if(t&&A){var n=this.tracks,r=t.tracks,i=r?jp(r):null,o=i?i.length:0,a=function(){e.media&&e.mediaSourceOpenOrEnded&&e._onMediaSourceOpen()};if(r&&i&&o){var s,g;if(!this.tracksReady)return this.hls.config.startFragPrefetch=!0,void this.log("attachTransferred: waiting for SourceBuffer track info");if(this.log(xf(s=xf(g="attachTransferred: (bufferCodecEventsTotal ".concat(this.bufferCodecEventsTotal,")\nrequired tracks: ")).call(g,$b(n,(function(e,A){return"initSegment"===e?void 0:A})),";\ntransfer tracks: ")).call(s,$b(r,(function(e,A){return"initSegment"===e?void 0:A})),"}")),!YCe(r,n)){var c,l,u;t.mediaSource=null,t.tracks=void 0;var I,h=A.currentTime,C=this.details,d=Math.max(h,(null==C?void 0:C.fragments[0].start)||0);return d-h>1?void this.log(xf(I="attachTransferred: waiting for playback to reach new tracks start time ".concat(h," -> ")).call(I,d)):(this.warn(xf(c=xf(l=xf(u='attachTransferred: resetting MediaSource for incompatible tracks ("'.concat(jp(r),'"->"')).call(u,jp(n),'") start time: ')).call(l,d," currentTime: ")).call(c,h)),this.onMediaDetaching(DCe.MEDIA_DETACHING,{}),this.onMediaAttaching(DCe.MEDIA_ATTACHING,t),void(A.currentTime=d))}this.transferData=void 0,i.forEach((function(A){var t=A,n=r[t];if(n){var i=n.buffer;if(i){var o=e.fragmentTracker,a=n.id;if(o.hasFragments(a)||o.hasParts(a)){var s=FEe.getBuffered(i);o.detectEvictedFragments(t,s,a,null,!0)}var g=NQe(t),c=[t,i];e.sourceBuffers[g]=c,i.updating&&e.operationQueue&&e.operationQueue.prependBlocker(t),e.trackSourceBuffer(t,n)}}})),a(),this.bufferCreated()}else this.log("attachTransferred: MediaSource w/o SourceBuffers"),a()}}},{key:"mediaSourceOpenOrEnded",get:function(){var e,A=null==(e=this.mediaSource)?void 0:e.readyState;return"open"===A||"ended"===A}},{key:"onMediaDetaching",value:function(e,A){var t=this,n=!!A.transferMedia;this.transferData=this.overrides=void 0;var r=this.media,i=this.mediaSource,o=this._objectUrl;if(i){if(this.log("media source ".concat(n?"transferring":"detaching")),n)this.sourceBuffers.forEach((function(e){var A=rF(e,1)[0];A&&t.removeBuffer(A)})),this.resetQueue();else{if(this.mediaSourceOpenOrEnded){var a="open"===i.readyState;try{for(var s=i.sourceBuffers,g=s.length;g--;)a&&s[g].abort(),i.removeSourceBuffer(s[g]);a&&i.endOfStream()}catch(ZtA){this.warn("onMediaDetaching: ".concat(ZtA.message," while calling endOfStream"))}}this.sourceBufferCount&&this.onBufferReset()}i.removeEventListener("sourceopen",this._onMediaSourceOpen),i.removeEventListener("sourceended",this._onMediaSourceEnded),i.removeEventListener("sourceclose",this._onMediaSourceClose),this.appendSource&&(i.removeEventListener("startstreaming",this._onStartStreaming),i.removeEventListener("endstreaming",this._onEndStreaming)),this.mediaSource=null,this._objectUrl=null}r&&(r.removeEventListener("emptied",this._onMediaEmptied),n||(o&&Xb.revokeObjectURL(o),this.mediaSrc===o?(r.removeAttribute("src"),this.appendSource&&FQe(r),r.load()):this.warn("media|source.src was changed by a third party - skip cleanup")),this.media=null),this.hls.trigger(DCe.MEDIA_DETACHED,A)}},{key:"onBufferReset",value:function(){var e=this;this.sourceBuffers.forEach((function(A){var t=rF(A,1)[0];t&&e.resetBuffer(t)})),this.initTracks()}},{key:"resetBuffer",value:function(e){var A,t=null==(A=this.tracks[e])?void 0:A.buffer;if(this.removeBuffer(e),t)try{var n;null!=(n=this.mediaSource)&&n.sourceBuffers.length&&this.mediaSource.removeSourceBuffer(t)}catch(ZtA){this.warn("onBufferReset ".concat(e),ZtA)}delete this.tracks[e]}},{key:"removeBuffer",value:function(e){this.removeBufferListeners(e),this.sourceBuffers[NQe(e)]=[null,null];var A=this.tracks[e];A&&(A.buffer=void 0)}},{key:"resetQueue",value:function(){this.operationQueue&&this.operationQueue.destroy(),this.operationQueue=new MQe(this.tracks)}},{key:"onBufferCodecs",value:function(e,A){var t,n=this,r=this.tracks,i=jp(A);this.log(xf(t='BUFFER_CODECS: "'.concat(i,'" (current SB count ')).call(t,this.sourceBufferCount,")"));var o,a="audiovideo"in A&&(r.audio||r.video)||r.audiovideo&&("audio"in A||"video"in A),s=!a&&this.sourceBufferCount&&this.media&&i.some((function(e){return!r[e]}));a||s?this.warn(xf(o='Unsupported transition between "'.concat(jp(r),'" and "')).call(o,i,'" SourceBuffers')):(i.forEach((function(e){var t,i,o,a=A[e],s=a.id,g=a.codec,c=a.levelCodec,l=a.container,u=a.metadata,I=r[e],h=null==(t=n.transferData)||null==(i=t.tracks)?void 0:i[e],C=null!=h&&h.buffer?h:I,d=(null==C?void 0:C.pendingCodec)||(null==C?void 0:C.codec),E=null==C?void 0:C.levelCodec,f=!C||!!n.hls.config.assetPlayerId;I||(I=r[e]={buffer:void 0,listeners:[],codec:g,container:l,levelCodec:c,metadata:u,id:s});var B,Q=qCe(d,E),p=null==Q?void 0:Q.replace(GQe,"$1"),v=qCe(g,c),y=null==(o=v)?void 0:o.replace(GQe,"$1");v&&(p!==y||f)&&("audio"===Xp(e).call(e,0,5)&&(v=XCe(v,n.appendSource)),n.log(xf(B="switching codec ".concat(d," to ")).call(B,v)),v!==(I.pendingCodec||I.codec)&&(I.pendingCodec=v),I.container=l,n.appendChangeType(e,l,v))})),(this.tracksReady||this.sourceBufferCount)&&(A.tracks=this.sourceBufferTracks),this.sourceBufferCount||this.mediaSourceOpenOrEnded&&this.checkPendingTracks())}},{key:"sourceBufferTracks",get:function(){var e,A=this;return wF(e=jp(this.tracks)).call(e,(function(e,t){var n=A.tracks[t];return e[t]={id:n.id,container:n.container,codec:n.codec,levelCodec:n.levelCodec},e}),{})}},{key:"appendChangeType",value:function(e,A,t){var n,r=this,i=xf(n="".concat(A,";codecs=")).call(n,t),o={label:"change-type=".concat(i),execute:function(){var n=r.tracks[e];if(n){var o,a=n.buffer;if(null!=a&&a.changeType)r.log(xf(o="changing ".concat(e," sourceBuffer type to ")).call(o,i)),a.changeType(i),n.codec=t,n.container=A}r.shiftAndExecuteNext(e)},onStart:function(){},onComplete:function(){},onError:function(A){r.warn("Failed to change ".concat(e," SourceBuffer type"),A)}};this.append(o,e,this.isPending(this.tracks[e]))}},{key:"blockAudio",value:function(e){var A,t=this,n=e.start,r=n+.05*e.duration;if(!(!0===(null==(A=this.fragmentTracker.getAppendedFrag(n,kCe))?void 0:A.gap))){var i={label:"block-audio",execute:function(){var e,A=t.tracks.video;(t.lastVideoAppendEnd>r||null!=A&&A.buffer&&FEe.isBuffered(A.buffer,r)||!0===(null==(e=t.fragmentTracker.getAppendedFrag(r,kCe))?void 0:e.gap))&&(t.blockedAudioAppend=null,t.shiftAndExecuteNext("audio"))},onStart:function(){},onComplete:function(){},onError:function(e){t.warn("Error executing block-audio operation",e)}};this.blockedAudioAppend={op:i,frag:e},this.append(i,"audio",!0)}}},{key:"unblockAudio",value:function(){var e=this.blockedAudioAppend,A=this.operationQueue;e&&A&&(this.blockedAudioAppend=null,A.unblockAudio(e.op))}},{key:"onBufferAppending",value:function(e,A){var t=this,n=this.tracks,r=A.data,i=A.type,o=A.parent,a=A.frag,s=A.part,g=A.chunkMeta,c=g.buffering[i],l=a.sn,u=self.performance.now();c.start=u;var I=a.stats.buffering,h=s?s.stats.buffering:null;0===I.start&&(I.start=u),h&&0===h.start&&(h.start=u);var C=n.audio,d=!1;"audio"===i&&"audio/mpeg"===(null==C?void 0:C.container)&&(d=!this.lastMpegAudioChunk||1===g.id||this.lastMpegAudioChunk.sn!==g.sn,this.lastMpegAudioChunk=g);var E=this.tracks.video,f=null==E?void 0:E.buffer;if(f&&"initSegment"!==l){var B=s||a,Q=this.blockedAudioAppend;if("audio"!==i||"main"===o||this.blockedAudioAppend){if("video"===i){var p=B.end;if(Q){var v=Q.frag.start;(p>v||p=.1)t.log(xf(n=xf(o="Updating audio SourceBuffer timestampOffset to ".concat(w," (delta: ")).call(o,a,") sn: ")).call(n,l,")")),A.timestampOffset=w}}}t.appendExecutor(r,i)},onStart:function(){},onComplete:function(){var e=self.performance.now();c.executeEnd=c.end=e,0===I.first&&(I.first=e),h&&0===h.first&&(h.first=e);var A={};t.sourceBuffers.forEach((function(e){var t=rF(e,2),n=t[0],r=t[1];n&&(A[n]=FEe.getBuffered(r))})),t.appendErrors[i]=0,"audio"===i||"video"===i?t.appendErrors.audiovideo=0:(t.appendErrors.audio=0,t.appendErrors.video=0),t.hls.trigger(DCe.BUFFER_APPENDED,{type:i,frag:a,part:s,chunkMeta:g,parent:a.type,timeRanges:A})},onError:function(e){var A,n={type:yCe.MEDIA_ERROR,parent:a.type,details:mCe.BUFFER_APPEND_ERROR,sourceBufferName:i,frag:a,part:s,chunkMeta:g,error:e,err:e,fatal:!1};if(e.code===DOMException.QUOTA_EXCEEDED_ERR)n.details=mCe.BUFFER_FULL_ERROR;else if(e.code!==DOMException.INVALID_STATE_ERR||!t.mediaSourceOpenOrEnded||null!=(A=t.media)&&A.error)if(e.name===_Qe)0===t.sourceBufferCount?n.errorAction=Nde(!0):++t.appendErrors[i];else{var r,o,c=++t.appendErrors[i];t.warn(xf(r=xf(o="Failed ".concat(c,"/")).call(o,t.hls.config.appendErrorMaxRetry,' times to append segment in "')).call(r,i,'" sourceBuffer')),c>=t.hls.config.appendErrorMaxRetry&&(n.fatal=!0)}else n.errorAction=Nde(!0);t.hls.trigger(DCe.ERROR,n)}};this.append(R,i,this.isPending(this.tracks[i]))}},{key:"getFlushOp",value:function(e,A,t){var n,r,i=this;return this.log(xf(n=xf(r='queuing "'.concat(e,'" remove ')).call(r,A,"-")).call(n,t)),{label:"remove",execute:function(){i.removeExecutor(e,A,t)},onStart:function(){},onComplete:function(){i.hls.trigger(DCe.BUFFER_FLUSHED,{type:e})},onError:function(n){var r,o;i.warn(xf(r=xf(o="Failed to remove ".concat(A,"-")).call(o,t,' from "')).call(r,e,'" SourceBuffer'),n)}}}},{key:"onBufferFlushing",value:function(e,A){var t=this,n=A.type,r=A.startOffset,i=A.endOffset;n?this.append(this.getFlushOp(n,r,i),n):this.sourceBuffers.forEach((function(e){var A=rF(e,1)[0];A&&t.append(t.getFlushOp(A,r,i),A)}))}},{key:"onFragParsed",value:function(e,A){var t=this,n=A.frag,r=A.part,i=[],o=r?r.elementaryStreams:n.elementaryStreams;o[$de]?i.push("audiovideo"):(o[Wde]&&i.push("audio"),o[Zde]&&i.push("video"));var a,s;0===i.length&&this.warn(xf(a=xf(s="Fragments must have at least one ElementaryStreamType set. type: ".concat(n.type," level: ")).call(s,n.level," sn: ")).call(a,n.sn));this.blockBuffers((function(){var e=self.performance.now();n.stats.buffering.end=e,r&&(r.stats.buffering.end=e);var A=r?r.stats:n.stats;t.hls.trigger(DCe.FRAG_BUFFERED,{frag:n,part:r,stats:A,id:n.type})}),i)}},{key:"onFragChanged",value:function(e,A){this.trimBuffers()}},{key:"bufferedToEnd",get:function(){var e=this;return this.sourceBufferCount>0&&!this.sourceBuffers.some((function(A){var t,n,r=rF(A,1)[0];return r&&(!(null!=(t=e.tracks[r])&&t.ended)||(null==(n=e.tracks[r])?void 0:n.ending))}))}},{key:"onBufferEos",value:function(e,A){var t,n=this;this.sourceBuffers.forEach((function(e){var t=rF(e,1)[0];if(t){var r=n.tracks[t];A.type&&A.type!==t||(r.ending=!0,r.ended||(r.ended=!0,n.log("".concat(t," buffer reached EOS"))))}}));var r=!1!==(null==(t=this.overrides)?void 0:t.endOfStream);this.sourceBufferCount>0&&!this.sourceBuffers.some((function(e){var A,t=rF(e,1)[0];return t&&!(null!=(A=n.tracks[t])&&A.ended)}))&&(this.log("Queueing EOS"),this.blockUntilOpen((function(){if(n.sourceBuffers.forEach((function(e){var A=rF(e,1)[0];if(null!==A){var t=n.tracks[A];t&&(t.ending=!1)}})),r){var e=n.mediaSource;if(!e||"open"!==e.readyState)return void(e&&n.log("Could not call mediaSource.endOfStream(). mediaSource.readyState: ".concat(e.readyState)));n.log("Calling mediaSource.endOfStream()"),e.endOfStream()}n.hls.trigger(DCe.BUFFERED_TO_END,void 0)})))}},{key:"onLevelUpdated",value:function(e,A){var t=A.details;t.fragments.length&&(this.details=t,this.updateDuration())}},{key:"updateDuration",value:function(){var e=this,A=this.getDurationAndRange();A&&this.blockUntilOpen((function(){return e.updateMediaSource(A)}))}},{key:"onError",value:function(e,A){if(A.details===mCe.BUFFER_APPEND_ERROR&&A.frag){var t,n=null==(t=A.errorAction)?void 0:t.nextAutoLevel;QCe(n)&&n!==A.frag.level&&this.resetAppendErrors()}}},{key:"resetAppendErrors",value:function(){this.appendErrors={audio:0,video:0,audiovideo:0}}},{key:"trimBuffers",value:function(){var e=this.hls,A=this.details,t=this.media;if(t&&null!==A&&this.sourceBufferCount){var n=e.config,r=t.currentTime,i=A.levelTargetDuration,o=A.live&&null!==n.liveBackBufferLength?n.liveBackBufferLength:n.backBufferLength;if(QCe(o)&&o>=0){var a=Math.max(o,i),s=Math.floor(r/i)*i-a;this.flushBackBuffer(r,i,s)}if(QCe(n.frontBufferFlushThreshold)&&n.frontBufferFlushThreshold>0){var g=Math.max(n.maxBufferLength,n.frontBufferFlushThreshold),c=Math.max(g,i),l=Math.floor(r/i)*i+c;this.flushFrontBuffer(r,i,l)}}}},{key:"flushBackBuffer",value:function(e,A,t){var n=this;this.sourceBuffers.forEach((function(r){var i=rF(r,2),o=i[0],a=i[1];if(a){var s=FEe.getBuffered(a);if(s.length>0&&t>s.start(0)){var g;n.hls.trigger(DCe.BACK_BUFFER_REACHED,{bufferEnd:t});var c=n.tracks[o];if(null!=(g=n.details)&&g.live)n.hls.trigger(DCe.LIVE_BACK_BUFFER_REACHED,{bufferEnd:t});else if(null!=c&&c.ended&&s.end(s.length-1)-e<2*A)return void n.log("Cannot flush ".concat(o," back buffer while SourceBuffer is in ended state"));n.hls.trigger(DCe.BUFFER_FLUSHING,{startOffset:0,endOffset:t,type:o})}}}))}},{key:"flushFrontBuffer",value:function(e,A,t){var n=this;this.sourceBuffers.forEach((function(r){var i=rF(r,2),o=i[0],a=i[1];if(a){var s=FEe.getBuffered(a),g=s.length;if(g<2)return;var c=s.start(g-1),l=s.end(g-1),u=n.tracks[o];if(t>c||e>=c&&e<=l)return;if(null!=u&&u.ended&&e-l<2*A)return void n.log("Cannot flush ".concat(o," front buffer while SourceBuffer is in ended state"));n.hls.trigger(DCe.BUFFER_FLUSHING,{startOffset:c,endOffset:1/0,type:o})}}))}},{key:"getDurationAndRange",value:function(){var e,A=this.details,t=this.mediaSource;if(!A||!this.media||"open"!==(null==t?void 0:t.readyState))return null;var n=A.edge;if(A.live&&this.hls.config.liveDurationInfinity){if(t.duration=1/0,A.fragments.length&&A.live&&t.setLiveSeekableRange){var r=Math.max(0,A.fragmentStart);return{duration:1/0,start:r,end:Math.max(r,n)}}return{duration:1/0}}var i=null==(e=this.overrides)?void 0:e.duration;if(i)return{duration:i};var o=this.media.duration;return n>(QCe(t.duration)?t.duration:0)&&n>o||!QCe(o)?{duration:n}:null}},{key:"updateMediaSource",value:function(e){var A,t,n=e.duration,r=e.start,i=e.end,o=this.mediaSource;this.media&&o&&"open"===o.readyState&&(o.duration!==n&&(QCe(n)&&this.log("Updating MediaSource duration to ".concat(n.toFixed(3))),o.duration=n),void 0!==r&&void 0!==i&&(this.log(xf(A=xf(t="MediaSource duration is set to ".concat(o.duration,". Setting seekable range to ")).call(t,r,"-")).call(A,i,".")),o.setLiveSeekableRange(r,i)))}},{key:"tracksReady",get:function(){var e=this.pendingTrackCount;return e>0&&(e>=this.bufferCodecEventsTotal||this.isPending(this.tracks.audiovideo))}},{key:"checkPendingTracks",value:function(){var e,A,t=this.bufferCodecEventsTotal,n=this.pendingTrackCount,r=this.tracks;if(this.log(xf(e=xf(A="checkPendingTracks (pending: ".concat(n," codec events expected: ")).call(A,t,") ")).call(e,$b(r))),this.tracksReady){var i,o=null==(i=this.transferData)?void 0:i.tracks;o&&jp(o).length?this.attachTransferred():(this.createSourceBuffers(),this.bufferCreated())}}},{key:"bufferCreated",value:function(){var e=this;if(this.sourceBufferCount){var A={};this.sourceBuffers.forEach((function(t){var n=rF(t,2),r=n[0],i=n[1];if(r){var o=e.tracks[r];A[r]={buffer:i,container:o.container,codec:o.codec,levelCodec:o.levelCodec,id:o.id,metadata:o.metadata}}})),this.hls.trigger(DCe.BUFFER_CREATED,{tracks:A}),this.log("SourceBuffers created. Running queue: ".concat(this.operationQueue)),this.sourceBuffers.forEach((function(A){var t=rF(A,1)[0];e.executeNext(t)}))}else{var t=new Error("could not create source buffer for media codec(s)");this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.BUFFER_INCOMPATIBLE_CODECS_ERROR,fatal:!0,error:t,reason:t.message})}}},{key:"createSourceBuffers",value:function(){var e=this.tracks,A=this.sourceBuffers,t=this.mediaSource;if(!t)throw new Error("createSourceBuffers called when mediaSource was null");for(var n in e){var r=n,i=e[r];if(this.isPending(i)){var o,a,s,g=this.getTrackCodec(i,r),c=xf(o="".concat(i.container,";codecs=")).call(o,g);i.codec=g,this.log(xf(a=xf(s="creating sourceBuffer(".concat(c,")")).call(s,this.currentOp(r)?" Queued":""," ")).call(a,$b(i)));try{var l=t.addSourceBuffer(c),u=NQe(r),I=[r,l];A[u]=I,i.buffer=l}catch(WtA){this.error("error while trying to add sourceBuffer: ".concat(WtA.message)),this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.BUFFER_ADD_CODEC_ERROR,fatal:!1,error:WtA,sourceBufferName:r,mimeType:c});break}this.trackSourceBuffer(r,i)}}}},{key:"getTrackCodec",value:function(e,A){var t=qCe(e.codec,e.levelCodec);return t?"audio"===Xp(A).call(A,0,5)?XCe(t,this.appendSource):t:""}},{key:"trackSourceBuffer",value:function(e,A){var t=this,n=A.buffer;if(n){var r=this.getTrackCodec(A,e);this.tracks[e]={buffer:n,codec:r,container:A.container,levelCodec:A.levelCodec,metadata:A.metadata,id:A.id,listeners:[]},this.addBufferListener(e,"updatestart",this.onSBUpdateStart),this.addBufferListener(e,"updateend",this.onSBUpdateEnd),this.addBufferListener(e,"error",this.onSBUpdateError),this.appendSource&&this.addBufferListener(e,"bufferedchange",(function(e,A){var n=A.removedRanges;null!=n&&n.length&&t.hls.trigger(DCe.BUFFER_FLUSHED,{type:e})}))}}},{key:"mediaSrc",get:function(){var e,A,t=(null==(e=this.media)||null==(A=e.querySelector)?void 0:A.call(e,"source"))||this.media;return null==t?void 0:t.src}},{key:"onSBUpdateStart",value:function(e){var A=this.currentOp(e);A&&A.onStart()}},{key:"onSBUpdateEnd",value:function(e){var A;if("closed"!==(null==(A=this.mediaSource)?void 0:A.readyState)){var t=this.currentOp(e);t&&(t.onComplete(),this.shiftAndExecuteNext(e))}else this.resetBuffer(e)}},{key:"onSBUpdateError",value:function(e,A){var t,n,r=new Error(xf(t="".concat(e," SourceBuffer error. MediaSource readyState: ")).call(t,null==(n=this.mediaSource)?void 0:n.readyState));this.error("".concat(r),A),this.hls.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.BUFFER_APPENDING_ERROR,sourceBufferName:e,error:r,fatal:!1});var i=this.currentOp(e);i&&i.onError(r)}},{key:"removeExecutor",value:function(e,A,t){var n=this.media,r=this.mediaSource,i=this.tracks[e],o=null==i?void 0:i.buffer;if(!n||!r||!o)return this.warn("Attempting to remove from the ".concat(e," SourceBuffer, but it does not exist")),void this.shiftAndExecuteNext(e);var a,s,g=QCe(n.duration)?n.duration:1/0,c=QCe(r.duration)?r.duration:1/0,l=Math.max(0,A),u=Math.min(t,g,c);u>l&&(!i.ending||i.ended)?(i.ended=!1,this.log(xf(a=xf(s="Removing [".concat(l,",")).call(s,u,"] from the ")).call(a,e," SourceBuffer")),o.remove(l,u)):this.shiftAndExecuteNext(e)}},{key:"appendExecutor",value:function(e,A){var t=this.tracks[A],n=null==t?void 0:t.buffer;if(!n)throw new bQe("Attempting to append to the ".concat(A," SourceBuffer, but it does not exist"));t.ending=!1,t.ended=!1,n.appendBuffer(e)}},{key:"blockUntilOpen",value:function(e){this.isUpdating()||this.isQueued()?this.blockBuffers(e):e()}},{key:"isUpdating",value:function(){return this.sourceBuffers.some((function(e){var A=rF(e,2),t=A[0],n=A[1];return t&&n.updating}))}},{key:"isQueued",value:function(){var e=this;return this.sourceBuffers.some((function(A){var t=rF(A,1)[0];return t&&!!e.currentOp(t)}))}},{key:"isPending",value:function(e){return!!e&&!e.buffer}},{key:"blockBuffers",value:function(e){var A=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.sourceBufferTypes;if(!t.length)return this.log("Blocking operation requested, but no SourceBuffers exist"),void Op.resolve().then(e);var n=this.operationQueue,r=Jp(t).call(t,(function(e){return A.appendBlocker(e)}));t.length>1&&!!this.blockedAudioAppend&&this.unblockAudio(),Op.all(r).then((function(r){n===A.operationQueue&&(e(),A.stepOperationQueue(t))}))}},{key:"stepOperationQueue",value:function(e){var A=this;e.forEach((function(e){var t,n=null==(t=A.tracks[e])?void 0:t.buffer;n&&!n.updating&&A.shiftAndExecuteNext(e)}))}},{key:"append",value:function(e,A,t){this.operationQueue&&this.operationQueue.append(e,A,t)}},{key:"appendBlocker",value:function(e){if(this.operationQueue)return this.operationQueue.appendBlocker(e)}},{key:"currentOp",value:function(e){return this.operationQueue?this.operationQueue.current(e):null}},{key:"executeNext",value:function(e){e&&this.operationQueue&&this.operationQueue.executeNext(e)}},{key:"shiftAndExecuteNext",value:function(e){this.operationQueue&&this.operationQueue.shiftAndExecuteNext(e)}},{key:"pendingTrackCount",get:function(){var e,A=this;return wF(e=jp(this.tracks)).call(e,(function(e,t){return e+(A.isPending(A.tracks[t])?1:0)}),0)}},{key:"sourceBufferCount",get:function(){var e;return wF(e=this.sourceBuffers).call(e,(function(e,A){return e+(rF(A,1)[0]?1:0)}),0)}},{key:"sourceBufferTypes",get:function(){var e,A;return jv(e=Jp(A=this.sourceBuffers).call(A,(function(e){return rF(e,1)[0]}))).call(e,(function(e){return!!e}))}},{key:"addBufferListener",value:function(e,A,t){var n=this.tracks[e];if(n){var r=n.buffer;if(r){var i=t.bind(this,e);n.listeners.push({event:A,listener:i}),r.addEventListener(A,i)}}}},{key:"removeBufferListeners",value:function(e){var A=this.tracks[e];if(A){var t=A.buffer;t&&(A.listeners.forEach((function(e){t.removeEventListener(e.event,e.listener)})),A.listeners.length=0)}}}]),t}(LCe);function FQe(e){var A=e.querySelectorAll("source");Xp([]).call(A).forEach((function(A){e.removeChild(A)}))}function NQe(e){return"audio"===e?1:0}var LQe=function(){function e(A){GE(this,e),this.hls=void 0,this.autoLevelCapping=void 0,this.firstLevel=void 0,this.media=void 0,this.restrictedLevels=void 0,this.timer=void 0,this.clientRect=void 0,this.streamController=void 0,this.hls=A,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.firstLevel=-1,this.media=null,this.restrictedLevels=[],this.timer=void 0,this.clientRect=null,this.registerListeners()}return NE(e,[{key:"setStreamController",value:function(e){this.streamController=e}},{key:"destroy",value:function(){this.hls&&this.unregisterListener(),this.timer&&this.stopCapping(),this.media=null,this.clientRect=null,this.hls=this.streamController=null}},{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.on(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.on(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.on(DCe.BUFFER_CODECS,this.onBufferCodecs,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this)}},{key:"unregisterListener",value:function(){var e=this.hls;e.off(DCe.FPS_DROP_LEVEL_CAPPING,this.onFpsDropLevelCapping,this),e.off(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.off(DCe.LEVELS_UPDATED,this.onLevelsUpdated,this),e.off(DCe.BUFFER_CODECS,this.onBufferCodecs,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this)}},{key:"onFpsDropLevelCapping",value:function(e,A){var t=this.hls.levels[A.droppedLevel];this.isLevelAllowed(t)&&this.restrictedLevels.push({bitrate:t.bitrate,height:t.height,width:t.width})}},{key:"onMediaAttaching",value:function(e,A){this.media=A.media instanceof HTMLVideoElement?A.media:null,this.clientRect=null,this.timer&&this.hls.levels.length&&this.detectPlayerSize()}},{key:"onManifestParsed",value:function(e,A){var t=this.hls;this.restrictedLevels=[],this.firstLevel=A.firstLevel,t.config.capLevelToPlayerSize&&A.video&&this.startCapping()}},{key:"onLevelsUpdated",value:function(e,A){this.timer&&QCe(this.autoLevelCapping)&&this.detectPlayerSize()}},{key:"onBufferCodecs",value:function(e,A){this.hls.config.capLevelToPlayerSize&&A.video&&this.startCapping()}},{key:"onMediaDetaching",value:function(){this.stopCapping(),this.media=null}},{key:"detectPlayerSize",value:function(){if(this.media){if(this.mediaHeight<=0||this.mediaWidth<=0)return void(this.clientRect=null);var e=this.hls.levels;if(e.length){var A,t,n,r,i=this.hls,o=this.getMaxLevel(e.length-1);if(o!==this.autoLevelCapping)i.logger.log(xf(A=xf(t=xf(n=xf(r="Setting autoLevelCapping to ".concat(o,": ")).call(r,e[o].height,"p@")).call(n,e[o].bitrate," for media ")).call(t,this.mediaWidth,"x")).call(A,this.mediaHeight));i.autoLevelCapping=o,i.autoLevelEnabled&&i.autoLevelCapping>this.autoLevelCapping&&this.streamController&&this.streamController.nextLevelSwitch(),this.autoLevelCapping=i.autoLevelCapping}}}},{key:"getMaxLevel",value:function(A){var t=this,n=this.hls.levels;if(!n.length)return-1;var r=jv(n).call(n,(function(e,n){return t.isLevelAllowed(e)&&n<=A}));return this.clientRect=null,e.getMaxLevelByMediaSize(r,this.mediaWidth,this.mediaHeight)}},{key:"startCapping",value:function(){this.timer||(this.autoLevelCapping=Number.POSITIVE_INFINITY,self.clearInterval(this.timer),this.timer=self.setInterval(this.detectPlayerSize.bind(this),1e3),this.detectPlayerSize())}},{key:"stopCapping",value:function(){this.restrictedLevels=[],this.firstLevel=-1,this.autoLevelCapping=Number.POSITIVE_INFINITY,this.timer&&(self.clearInterval(this.timer),this.timer=void 0)}},{key:"getDimensions",value:function(){if(this.clientRect)return this.clientRect;var e=this.media,A={width:0,height:0};if(e){var t=e.getBoundingClientRect();A.width=t.width,A.height=t.height,A.width||A.height||(A.width=t.right-t.left||e.width||0,A.height=t.bottom-t.top||e.height||0)}return this.clientRect=A,A}},{key:"mediaWidth",get:function(){return this.getDimensions().width*this.contentScaleFactor}},{key:"mediaHeight",get:function(){return this.getDimensions().height*this.contentScaleFactor}},{key:"contentScaleFactor",get:function(){var e=1;if(!this.hls.config.ignoreDevicePixelRatio)try{e=self.devicePixelRatio}catch(P7){}return Math.min(e,this.hls.config.maxDevicePixelRatio)}},{key:"isLevelAllowed",value:function(e){return!this.restrictedLevels.some((function(A){return e.bitrate===A.bitrate&&e.width===A.width&&e.height===A.height}))}}],[{key:"getMaxLevelByMediaSize",value:function(e,A,t){if(null==e||!e.length)return-1;for(var n,r,i=e.length-1,o=Math.max(A,t),a=0;a=o||s.height>=o)&&(n=s,!(r=e[a+1])||n.width!==r.width||n.height!==r.height)){i=a;break}}return i}}]),e}(),UQe={MANIFEST:"m",AUDIO:"a",VIDEO:"v",MUXED:"av",INIT:"i",CAPTION:"c",TIMED_TEXT:"tt",KEY:"k",OTHER:"o"},KQe={DASH:"d",HLS:"h",SMOOTH:"s",OTHER:"o"},xQe={OBJECT:"CMCD-Object",REQUEST:"CMCD-Request",SESSION:"CMCD-Session",STATUS:"CMCD-Status"},YQe=(LE(fCe={},xQe.OBJECT,["br","d","ot","tb"]),LE(fCe,xQe.REQUEST,["bl","dl","mtp","nor","nrr","su"]),LE(fCe,xQe.SESSION,["cid","pr","sf","sid","st","v"]),LE(fCe,xQe.STATUS,["bs","rtp"]),fCe),PQe=NE((function e(A,t){GE(this,e),Array.isArray(A)&&(A=Jp(A).call(A,(function(A){return A instanceof e?A:new e(A)}))),this.value=A,this.params=t})),HQe="Dict";function JQe(e,A,t,n){var r,i;return new Error(xf(r=xf(i="failed to ".concat(e,' "')).call(i,function(e){return Array.isArray(e)?$b(e):e instanceof Up?"Map{}":e instanceof BCe?"Set{}":"object"===wc(e)?$b(e):String(e)}(A),'" as ')).call(r,t),{cause:n})}function OQe(e,A,t){return JQe("serialize",e,A,t)}var zQe=NE((function e(A){GE(this,e),this.description=A})),jQe="Bare Item",XQe="Boolean";var qQe="Byte Sequence";function VQe(e){if(!1===ArrayBuffer.isView(e))throw OQe(e,qQe);return":".concat((A=e,btoa(String.fromCharCode.apply(String,ME(A)))),":");var A}var WQe="Integer";function ZQe(e){if(function(e){return e<-999999999999999||99999999999999912)throw OQe(e,$Qe);var t=A.toString();return PT(t).call(t,".")?t:"".concat(t,".0")}var Ape="String",tpe=/[\x00-\x1f\x7f]+/;var npe="Token";function rpe(e){var A,t,n=(A=e).description||Xp(t=A.toString()).call(t,7,-1);if(!1===/^([a-zA-Z*])([!#$%&'*+\-.^_`|~\w:/]*)$/.test(n))throw OQe(n,npe);return n}function ipe(e){switch(wc(e)){case"number":if(!QCe(e))throw OQe(e,jQe);return RT(e)?ZQe(e):epe(e);case"string":return function(e){if(tpe.test(e))throw OQe(e,Ape);return'"'.concat(e.replace(/\\/g,"\\\\").replace(/"/g,'\\"'),'"')}(e);case"symbol":return rpe(e);case"boolean":return function(e){if("boolean"!=typeof e)throw OQe(e,XQe);return e?"?1":"?0"}(e);case"object":if(e instanceof Date)return function(e){return"@".concat(ZQe(e.getTime()/1e3))}(e);if(e instanceof Uint8Array)return VQe(e);if(e instanceof zQe)return rpe(e);default:throw OQe(e,jQe)}}var ope="Key";function ape(e){if(!1===/^[a-z*][a-z0-9\-_.*]*$/.test(e))throw OQe(e,ope);return e}function spe(e){var A;return null==e?"":Jp(A=hF(e)).call(A,(function(e){var A,t=rF(e,2),n=t[0],r=t[1];return!0===r?";".concat(ape(n)):xf(A=";".concat(ape(n),"=")).call(A,ipe(r))})).join("")}function gpe(e){var A;return e instanceof PQe?xf(A="".concat(ipe(e.value))).call(A,spe(e.params)):ipe(e)}function cpe(e){var A,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{whitespace:!0};if("object"!==wc(e))throw OQe(e,HQe);var n=e instanceof Up?PK(e).call(e):hF(e),r=(null==t?void 0:t.whitespace)?" ":"";return Jp(A=nm(n)).call(A,(function(e){var A=rF(e,2),t=A[0],n=A[1];n instanceof PQe==!1&&(n=new PQe(n));var r=ape(t);return!0===n.value?r+=spe(n.params):(r+="=",Array.isArray(n.value)?r+=function(e){var A,t;return xf(A="(".concat(Jp(t=e.value).call(t,gpe).join(" "),")")).call(A,spe(e.params))}(n):r+=gpe(n)),r})).join(",".concat(r))}var lpe=function(e){return Math.round(e)},upe=function(e){return 100*lpe(e/100)},Ipe={br:lpe,d:lpe,bl:upe,dl:upe,mtp:upe,nor:function(e,A){return(null==A?void 0:A.baseUrl)&&(e=function(e,A){var t,n,r=new Xb(e),i=new Xb(A);if(r.origin!==i.origin)return e;for(var o=Xp(t=r.pathname.split("/")).call(t,1),a=Xp(n=i.pathname.split("/")).call(n,1,-1);o[0]===a[0];)o.shift(),a.shift();for(;a.length;)a.shift(),o.unshift("..");return o.join("/")}(e,A.baseUrl)),encodeURIComponent(e)},rtp:upe,tb:lpe};function hpe(e,A){var t,n={};if(null==e||"object"!==wc(e))return n;var r=qD(t=jp(e)).call(t),i=TCe({},Ipe,null==A?void 0:A.formatters),o=null==A?void 0:jv(A);return r.forEach((function(t){if(!(null==o?void 0:o(t))){var r=e[t],a=i[t];a&&(r=a(r,A)),"v"===t&&1===r||"pr"==t&&1===r||function(e){return"number"==typeof e?QCe(e):null!=e&&""!==e&&!1!==e}(r)&&(function(e){return"ot"===e||"sf"===e||"st"===e}(t)&&"string"==typeof r&&(r=new zQe(r)),n[t]=r)}})),n}function Cpe(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e?function(e,A){return cpe(e,A)}(hpe(e,A),TCe({whitespace:!1},A)):""}function dpe(e,A,t){return TCe(e,function(e){var A,t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r={};if(!e)return r;var i=hF(e),o=xf(A=hF(YQe)).call(A,hF((null==n?void 0:n.customHeaderMap)||{})),a=wF(i).call(i,(function(e,A){var t,n,r=rF(A,2),i=r[0],a=r[1],s=(null===(t=qf(o).call(o,(function(e){var A;return PT(A=e[1]).call(A,i)})))||void 0===t?void 0:t[0])||xQe.REQUEST;return null!==(n=e[s])&&void 0!==n||(e[s]={}),e[s][i]=a,e}),{});return wF(t=hF(a)).call(t,(function(e,A){var t=rF(A,2),r=t[0],i=t[1];return e[r]=Cpe(i,n),e}),r)}(A,t))}var Epe="CMCD";var fpe=/CMCD=[^&#]+/;function Bpe(e,A,t){var n,r,i=function(e){if(!e)return"";var A=Cpe(e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{});return"".concat(Epe,"=").concat(encodeURIComponent(A))}(A,t);if(!i)return e;if(fpe.test(e))return e.replace(fpe,i);var o=PT(e).call(e,"?")?"&":"?";return xf(n=xf(r="".concat(e)).call(r,o)).call(n,i)}var Qpe=function(){function e(A){var t=this;GE(this,e),this.hls=void 0,this.config=void 0,this.media=void 0,this.sid=void 0,this.cid=void 0,this.useHeaders=!1,this.includeKeys=void 0,this.initialized=!1,this.starved=!1,this.buffering=!0,this.audioBuffer=void 0,this.videoBuffer=void 0,this.onWaiting=function(){t.initialized&&(t.starved=!0),t.buffering=!0},this.onPlaying=function(){t.initialized||(t.initialized=!0),t.buffering=!1},this.applyPlaylistData=function(e){try{t.apply(e,{ot:UQe.MANIFEST,su:!t.initialized})}catch(WtA){t.hls.logger.warn("Could not generate manifest CMCD data.",WtA)}},this.applyFragmentData=function(e){try{var A=e.frag,n=e.part,r=t.hls.levels[A.level],i=t.getObjectType(A),o={d:1e3*(n||A).duration,ot:i};i!==UQe.VIDEO&&i!==UQe.AUDIO&&i!=UQe.MUXED||(o.br=r.bitrate/1e3,o.tb=t.getTopBandwidth(i)/1e3,o.bl=t.getBufferLength(i));var a=n?t.getNextPart(n):t.getNextFrag(A);null!=a&&a.url&&a.url!==A.url&&(o.nor=a.url),t.apply(e,o)}catch(WtA){t.hls.logger.warn("Could not generate segment CMCD data.",WtA)}},this.hls=A;var n=this.config=A.config,r=n.cmcd;null!=r&&(n.pLoader=this.createPlaylistLoader(),n.fLoader=this.createFragmentLoader(),this.sid=r.sessionId||A.sessionId,this.cid=r.contentId,this.useHeaders=!0===r.useHeaders,this.includeKeys=r.includeKeys,this.registerListeners())}return NE(e,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(DCe.MEDIA_DETACHED,this.onMediaDetached,this),e.on(DCe.BUFFER_CREATED,this.onBufferCreated,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(DCe.MEDIA_DETACHED,this.onMediaDetached,this),e.off(DCe.BUFFER_CREATED,this.onBufferCreated,this)}},{key:"destroy",value:function(){this.unregisterListeners(),this.onMediaDetached(),this.hls=this.config=this.audioBuffer=this.videoBuffer=null,this.onWaiting=this.onPlaying=this.media=null}},{key:"onMediaAttached",value:function(e,A){this.media=A.media,this.media.addEventListener("waiting",this.onWaiting),this.media.addEventListener("playing",this.onPlaying)}},{key:"onMediaDetached",value:function(){this.media&&(this.media.removeEventListener("waiting",this.onWaiting),this.media.removeEventListener("playing",this.onPlaying),this.media=null)}},{key:"onBufferCreated",value:function(e,A){var t,n;this.audioBuffer=null==(t=A.tracks.audio)?void 0:t.buffer,this.videoBuffer=null==(n=A.tracks.video)?void 0:n.buffer}},{key:"createData",value:function(){var e;return{v:1,sf:KQe.HLS,sid:this.sid,cid:this.cid,pr:null==(e=this.media)?void 0:e.playbackRate,mtp:this.hls.bandwidthEstimate/1e3}}},{key:"apply",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};TCe(A,this.createData());var t=A.ot===UQe.INIT||A.ot===UQe.VIDEO||A.ot===UQe.MUXED;this.starved&&t&&(A.bs=!0,A.su=!0,this.starved=!1),null==A.su&&(A.su=this.buffering);var n,r=this.includeKeys;r&&(A=wF(n=jp(A)).call(n,(function(e,t){return PT(r).call(r,t)&&(e[t]=A[t]),e}),{}));var i={baseUrl:e.url};this.useHeaders?(e.headers||(e.headers={}),dpe(e.headers,A,i)):e.url=Bpe(e.url,A,i)}},{key:"getNextFrag",value:function(e){var A,t=null==(A=this.hls.levels[e.level])?void 0:A.details;if(t){var n=e.sn-t.startSN;return t.fragments[n+1]}}},{key:"getNextPart",value:function(e){var A,t,n=e.index,r=e.fragment,i=null==(A=this.hls.levels[r.level])||null==(t=A.details)?void 0:t.partList;if(i)for(var o=r.sn,a=i.length-1;a>=0;a--){var s=i[a];if(s.index===n&&s.fragment.sn===o)return i[a+1]}}},{key:"getObjectType",value:function(e){var A=e.type;return"subtitle"===A?UQe.TIMED_TEXT:"initSegment"===e.sn?UQe.INIT:"audio"===A?UQe.AUDIO:"main"===A?this.hls.audioTracks.length?UQe.VIDEO:UQe.MUXED:void 0}},{key:"getTopBandwidth",value:function(e){var A,t=0,n=this.hls;if(e===UQe.AUDIO)A=n.audioTracks;else{var r,i=n.maxAutoLevel,o=i>-1?i+1:n.levels.length;A=Xp(r=n.levels).call(r,0,o)}var a,s=UL(A);try{for(s.s();!(a=s.n()).done;){var g=a.value;g.bitrate>t&&(t=g.bitrate)}}catch(ZtA){s.e(ZtA)}finally{s.f()}return t>0?t:NaN}},{key:"getBufferLength",value:function(e){var A=this.media,t=e===UQe.AUDIO?this.audioBuffer:this.videoBuffer;return t&&A?1e3*FEe.bufferInfo(t,A.currentTime,this.config.maxBufferHole).len:NaN}},{key:"createPlaylistLoader",value:function(){var e=this.config.pLoader,A=this.applyPlaylistData,t=e||this.config.loader;return function(){function e(A){GE(this,e),this.loader=void 0,this.loader=new t(A)}return NE(e,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}},{key:"destroy",value:function(){this.loader.destroy()}},{key:"abort",value:function(){this.loader.abort()}},{key:"load",value:function(e,t,n){A(e),this.loader.load(e,t,n)}}]),e}()}},{key:"createFragmentLoader",value:function(){var e=this.config.fLoader,A=this.applyFragmentData,t=e||this.config.loader;return function(){function e(A){GE(this,e),this.loader=void 0,this.loader=new t(A)}return NE(e,[{key:"stats",get:function(){return this.loader.stats}},{key:"context",get:function(){return this.loader.context}},{key:"destroy",value:function(){this.loader.destroy()}},{key:"abort",value:function(){this.loader.abort()}},{key:"load",value:function(e,t,n){A(e),this.loader.load(e,t,n)}}]),e}()}}]),e}(),ppe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,"content-steering",e.logger)).hls=void 0,n.loader=null,n.uri=null,n.pathwayId=".",n._pathwayPriority=null,n.timeToLoad=300,n.reloadTimer=-1,n.updated=0,n.started=!1,n.enabled=!0,n.levels=null,n.audioTracks=null,n.subtitleTracks=null,n.penalizedPathways={},n.hls=e,n.registerListeners(),n}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.on(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.off(DCe.ERROR,this.onError,this))}},{key:"pathways",value:function(){var e;return wF(e=this.levels||[]).call(e,(function(e,A){return-1===zp(e).call(e,A.pathwayId)&&e.push(A.pathwayId),e}),[])}},{key:"pathwayPriority",get:function(){return this._pathwayPriority},set:function(e){this.updatePathwayPriority(e)}},{key:"startLoad",value:function(){if(this.started=!0,this.clearTimeout(),this.enabled&&this.uri){if(this.updated){var e=1e3*this.timeToLoad-(performance.now()-this.updated);if(e>0)return void this.scheduleRefresh(this.uri,e)}this.loadSteeringManifest(this.uri)}}},{key:"stopLoad",value:function(){this.started=!1,this.loader&&(this.loader.destroy(),this.loader=null),this.clearTimeout()}},{key:"clearTimeout",value:function(){-1!==this.reloadTimer&&(self.clearTimeout(this.reloadTimer),this.reloadTimer=-1)}},{key:"destroy",value:function(){this.unregisterListeners(),this.stopLoad(),this.hls=null,this.levels=this.audioTracks=this.subtitleTracks=null}},{key:"removeLevel",value:function(e){var A=this.levels;A&&(this.levels=jv(A).call(A,(function(A){return A!==e})))}},{key:"onManifestLoading",value:function(){this.stopLoad(),this.enabled=!0,this.timeToLoad=300,this.updated=0,this.uri=null,this.pathwayId=".",this.levels=this.audioTracks=this.subtitleTracks=null}},{key:"onManifestLoaded",value:function(e,A){var t=A.contentSteering;null!==t&&(this.pathwayId=t.pathwayId,this.uri=t.uri,this.started&&this.startLoad())}},{key:"onManifestParsed",value:function(e,A){this.audioTracks=A.audioTracks,this.subtitleTracks=A.subtitleTracks}},{key:"onError",value:function(e,A){var t=A.errorAction;if((null==t?void 0:t.action)===Sde&&ux(t)===bde){var n,r,i,o,a,s=this.levels,g=this._pathwayPriority,c=this.pathwayId;if(A.context){var l=A.context,u=l.groupId,I=l.pathwayId,h=l.type;u&&s?c=this.getPathwayForGroupId(u,h,c):I&&(c=I)}if(c in this.penalizedPathways||(this.penalizedPathways[c]=performance.now()),!g&&s&&(g=this.pathways()),g&&g.length>1&&(this.updatePathwayPriority(g),t.resolved=this.pathwayId!==c),!t.resolved)this.warn(xf(n=xf(r=xf(i=xf(o=xf(a="Could not resolve ".concat(A.details,' ("')).call(a,A.error.message,'") with content-steering for Pathway: ')).call(o,c," levels: ")).call(i,s?s.length:s," priorities: ")).call(r,$b(g)," penalized: ")).call(n,$b(this.penalizedPathways)))}}},{key:"filterParsedLevels",value:function(e){this.levels=e;var A,t,n=this.getLevelsForPathway(this.pathwayId);if(0===n.length){var r,i=e[0].pathwayId;this.log(xf(r="No levels found in Pathway ".concat(this.pathwayId,'. Setting initial Pathway to "')).call(r,i,'"')),n=this.getLevelsForPathway(i),this.pathwayId=i}n.length!==e.length&&this.log(xf(A=xf(t="Found ".concat(n.length,"/")).call(t,e.length,' levels in Pathway "')).call(A,this.pathwayId,'"'));return n}},{key:"getLevelsForPathway",value:function(e){var A;return null===this.levels?[]:jv(A=this.levels).call(A,(function(A){return e===A.pathwayId}))}},{key:"updatePathwayPriority",value:function(e){var A;this._pathwayPriority=e;var t=this.penalizedPathways,n=performance.now();jp(t).forEach((function(e){n-t[e]>3e5&&delete t[e]}));for(var r=0;r0){this.log('Setting Pathway to "'.concat(i,'"')),this.pathwayId=i,Dfe(A),this.hls.trigger(DCe.LEVELS_UPDATED,{levels:A});var s=this.hls.levels[o];if(a&&s&&this.levels){var g;if(s.attrs["STABLE-VARIANT-ID"]!==a.attrs["STABLE-VARIANT-ID"]&&s.bitrate!==a.bitrate)this.log(xf(g="Unstable Pathways change from bitrate ".concat(a.bitrate," to ")).call(g,s.bitrate));this.hls.nextLoadLevel=o}break}}}}},{key:"getPathwayForGroupId",value:function(e,A,t){for(var n,r=xf(n=this.getLevelsForPathway(t)).call(n,this.levels||[]),i=0;i1&&void 0!==arguments[1]?arguments[1]:1e3*this.timeToLoad;this.clearTimeout(),this.reloadTimer=self.setTimeout((function(){var t,n=null==(t=A.hls)?void 0:t.media;!n||n.ended?A.scheduleRefresh(e,1e3*A.timeToLoad):A.loadSteeringManifest(e)}),t)}}]),t}(LCe);function vpe(e,A,t,n){e&&jp(A).forEach((function(r){var i,o=Jp(i=jv(e).call(e,(function(e){return e.groupId===r}))).call(i,(function(e){var i=TCe({},e);return i.details=void 0,i.attrs=new xEe(i.attrs),i.url=i.attrs.URI=ype(e.url,e.attrs["STABLE-RENDITION-ID"],"PER-RENDITION-URIS",t),i.groupId=i.attrs["GROUP-ID"]=A[r],i.attrs["PATHWAY-ID"]=n,i}));e.push.apply(e,ME(o))}))}function ype(e,A,t,n){var r,i=n.HOST,o=n.PARAMS,a=n[t];A&&(r=null==a?void 0:a[A])&&(e=r);var s,g=new Xb(e);(i&&!r&&(g.host=i),o)&&qD(s=jp(o)).call(s).forEach((function(e){e&&g.searchParams.set(e,o[e])}));return g.href}var mpe=function(e){Yk(t,e);var A=Jk(t);function t(e){var n;return GE(this,t),(n=A.call(this,"eme",e.logger)).hls=void 0,n.config=void 0,n.media=null,n.keyFormatPromise=null,n.keySystemAccessPromises={},n._requestLicenseFailureCount=0,n.mediaKeySessions=[],n.keyIdToKeySessionPromise={},n.setMediaKeysQueue=t.CDMCleanupPromise?[t.CDMCleanupPromise]:[],n.onMediaEncrypted=function(e){var A,t=e.initDataType,r=e.initData,i=xf(A='"'.concat(e.type,'" event: init data type: "')).call(A,t,'"');if(n.debug(i),null!==r){var o,a;if("sinf"===t&&n.getLicenseServerUrl(qEe)){var s=rEe(new Uint8Array(r));try{var g=EEe(JEe(JSON.parse(s).sinf));if(!g)throw new Error("'schm' box missing or not cbcs/cenc with schi > tenc");o=g.subarray(8,24),a=qEe}catch(WtA){var c;return void n.warn(xf(c="".concat(i," Failed to parse sinf: ")).call(c,WtA))}}else if(n.getLicenseServerUrl(WEe)){var l=function(e){var A=[];if(e instanceof ArrayBuffer)for(var t=e.byteLength,n=0;n+32-1}))[0];if(!I){var h;if(0===l.length||l.some((function(e){return!e.systemId})))n.warn("".concat(i," contains incomplete or invalid pssh data"));else n.log(xf(h="ignoring ".concat(i," for ")).call(h,Jp(l).call(l,(function(e){return afe(e.systemId)})).join(",")," pssh data in favor of playlist keys"));return}if(a=afe(I.systemId),0===I.version&&I.data)if(a===WEe){var C=I.data.length-22;o=I.data.subarray(C,C+16)}else a===VEe&&(o=Ife(I.data))}if(a&&o){for(var d=Xde.hexDump(o),E=Gk(n),f=E.keyIdToKeySessionPromise,B=E.mediaKeySessions,Q=f[d],p=function(){var e,A=B[v],i=A.decryptdata;if(!i.keyId)return"continue";var a=Xde.hexDump(i.keyId);return d===a||-1!==zp(e=i.uri.replace(/-/g,"")).call(e,d)?(Q=f[a],i.pssh||(delete f[a],i.pssh=new Uint8Array(r),i.keyId=o,(Q=f[d]=Q.then((function(){return n.generateRequestWithPreferredKeySession(A,t,r,"encrypted-event-key-match")}))).catch((function(e){return n.handleError(e)}))),"break"):void 0},v=0;v0)for(var i,o=0,a=r.length;o in key message");return OEe(atob(I))}},{key:"setupLicenseXHR",value:function(e,A,t,n){var r=this,i=this.config.licenseXhrSetup;return i?Op.resolve().then((function(){if(!t.decryptdata)throw new Error("Key removed");return i.call(r.hls,e,A,t,n)})).catch((function(o){if(!t.decryptdata)throw o;return e.open("POST",A,!0),i.call(r.hls,e,A,t,n)})).then((function(t){return e.readyState||e.open("POST",A,!0),{xhr:e,licenseChallenge:t||n}})):(e.open("POST",A,!0),Op.resolve({xhr:e,licenseChallenge:n}))}},{key:"requestLicense",value:function(e,A){var t=this,n=this.config.keyLoadPolicy.default;return new Op((function(r,i){var o=t.getLicenseServerUrlOrThrow(e.keySystem);t.log("Sending license request to URL: ".concat(o));var a=new XMLHttpRequest;a.responseType="arraybuffer",a.onreadystatechange=function(){if(!t.hls||!e.mediaKeysSession)return i(new Error("invalid state"));if(4===a.readyState)if(200===a.status){t._requestLicenseFailureCount=0;var s=a.response;t.log("License received ".concat(s instanceof ArrayBuffer?s.byteLength:s));var g=t.config.licenseResponseCallback;if(g)try{s=g.call(t.hls,a,o,e)}catch(WtA){t.error(WtA)}r(s)}else{var c=n.errorRetry,l=c?c.maxNumRetry:0;if(t._requestLicenseFailureCount++,t._requestLicenseFailureCount>l||a.status>=400&&a.status<500){var u,I;i(new Dpe({type:yCe.KEY_SYSTEM_ERROR,details:mCe.KEY_SYSTEM_LICENSE_REQUEST_FAILED,fatal:!0,networkDetails:a,response:{url:o,data:void 0,code:a.status,text:a.statusText}},xf(u=xf(I="License Request XHR failed (".concat(o,"). Status: ")).call(I,a.status," (")).call(u,a.statusText,")")))}else{var h=l-t._requestLicenseFailureCount+1;t.warn("Retrying license request, ".concat(h," attempts left")),t.requestLicense(e,A).then(r,i)}}},e.licenseXhr&&e.licenseXhr.readyState!==XMLHttpRequest.DONE&&e.licenseXhr.abort(),e.licenseXhr=a,t.setupLicenseXHR(a,o,e,A).then((function(A){var n=A.xhr,r=A.licenseChallenge;e.keySystem==VEe&&(r=t.unpackPlayReadyKeyMessage(n,r)),n.send(r)}))}))}},{key:"onMediaAttached",value:function(e,A){if(this.config.emeEnabled){var t=A.media;this.media=t,t.removeEventListener("encrypted",this.onMediaEncrypted),t.removeEventListener("waitingforkey",this.onWaitingForKey),t.addEventListener("encrypted",this.onMediaEncrypted),t.addEventListener("waitingforkey",this.onWaitingForKey)}}},{key:"onMediaDetached",value:function(){var e,A,n=this,r=this.media,i=this.mediaKeySessions;r&&(r.removeEventListener("encrypted",this.onMediaEncrypted),r.removeEventListener("waitingforkey",this.onWaitingForKey),this.media=null),this._requestLicenseFailureCount=0,this.setMediaKeysQueue=[],this.mediaKeySessions=[],this.keyIdToKeySessionPromise={},Cfe.clearKeyUriToKeyIdMap();var o=i.length;t.CDMCleanupPromise=Op.all(xf(e=Jp(i).call(i,(function(e){return n.removeSession(e)}))).call(e,null==r||null==(A=r.setMediaKeys(null))?void 0:A.catch((function(e){var A;n.log("Could not clear media keys: ".concat(e)),null==(A=n.hls)||A.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,fatal:!1,error:new Error("Could not clear media keys: ".concat(e))})})))).then((function(){o&&(n.log("finished closing key sessions and clearing media keys"),i.length=0)})).catch((function(e){var A;n.log("Could not close sessions and clear media keys: ".concat(e)),null==(A=n.hls)||A.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close sessions and clear media keys: ".concat(e))})}))}},{key:"onManifestLoading",value:function(){this.keyFormatPromise=null}},{key:"onManifestLoaded",value:function(e,A){var t=A.sessionKeys;if(t&&this.config.emeEnabled&&!this.keyFormatPromise){var n=wF(t).call(t,(function(e,A){return-1===zp(e).call(e,A.keyFormat)&&e.push(A.keyFormat),e}),[]);this.log("Selecting key-system from session-keys ".concat(n.join(", "))),this.keyFormatPromise=this.getKeyFormatPromise(n)}}},{key:"removeSession",value:function(e){var A=this,t=e.mediaKeysSession,n=e.licenseXhr;if(t){var r;this.log("Remove licenses and keys and close session ".concat(t.sessionId)),e._onmessage&&(t.removeEventListener("message",e._onmessage),e._onmessage=void 0),e._onkeystatuseschange&&(t.removeEventListener("keystatuseschange",e._onkeystatuseschange),e._onkeystatuseschange=void 0),n&&n.readyState!==XMLHttpRequest.DONE&&n.abort(),e.mediaKeysSession=e.decryptdata=e.licenseXhr=void 0;var i,o=zp(r=this.mediaKeySessions).call(r,e);if(o>-1)Cv(i=this.mediaKeySessions).call(i,o,1);return t.remove().catch((function(e){var t;A.log("Could not remove session: ".concat(e)),null==(t=A.hls)||t.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,fatal:!1,error:new Error("Could not remove session: ".concat(e))})})).then((function(){return t.close()})).catch((function(e){var t;A.log("Could not close session: ".concat(e)),null==(t=A.hls)||t.trigger(DCe.ERROR,{type:yCe.OTHER_ERROR,details:mCe.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,fatal:!1,error:new Error("Could not close session: ".concat(e))})}))}}}]),t}(LCe);mpe.CDMCleanupPromise=void 0;var Dpe=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,n)).data=void 0,e.error||(e.error=new Error(n)),r.data=e,e.err=e.error,r}return NE(t)}(zk(Error)),wpe=function(){function e(A){GE(this,e),this.hls=void 0,this.isVideoPlaybackQualityAvailable=!1,this.timer=void 0,this.media=null,this.lastTime=void 0,this.lastDroppedFrames=0,this.lastDecodedFrames=0,this.streamController=void 0,this.hls=A,this.registerListeners()}return NE(e,[{key:"setStreamController",value:function(e){this.streamController=e}},{key:"registerListeners",value:function(){this.hls.on(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this)}},{key:"unregisterListeners",value:function(){this.hls.off(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),this.hls.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this)}},{key:"destroy",value:function(){this.timer&&clearInterval(this.timer),this.unregisterListeners(),this.isVideoPlaybackQualityAvailable=!1,this.media=null}},{key:"onMediaAttaching",value:function(e,A){var t=this.hls.config;if(t.capLevelOnFPSDrop){var n=A.media instanceof self.HTMLVideoElement?A.media:null;this.media=n,n&&"function"==typeof n.getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),self.clearInterval(this.timer),this.timer=self.setInterval(this.checkFPSInterval.bind(this),t.fpsDroppedMonitoringPeriod)}}},{key:"onMediaDetaching",value:function(){this.media=null}},{key:"checkFPS",value:function(e,A,t){var n=performance.now();if(A){if(this.lastTime){var r=n-this.lastTime,i=t-this.lastDroppedFrames,o=A-this.lastDecodedFrames,a=1e3*i/r,s=this.hls;if(s.trigger(DCe.FPS_DROP,{currentDropped:i,currentDecoded:o,totalDroppedFrames:t}),a>0&&i>s.config.fpsDroppedMonitoringThreshold*o){var g=s.currentLevel;s.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: "+g),g>0&&(-1===s.autoLevelCapping||s.autoLevelCapping>=g)&&(g-=1,s.trigger(DCe.FPS_DROP_LEVEL_CAPPING,{level:g,droppedLevel:s.currentLevel}),s.autoLevelCapping=g,this.streamController.nextLevelSwitch())}}this.lastTime=n,this.lastDroppedFrames=t,this.lastDecodedFrames=A}}},{key:"checkFPSInterval",value:function(){var e=this.media;if(e)if(this.isVideoPlaybackQualityAvailable){var A=e.getVideoPlaybackQuality();this.checkFPS(e,A.totalVideoFrames,A.droppedVideoFrames)}else this.checkFPS(e,e.webkitDecodedFrameCount,e.webkitDroppedFrameCount)}}]),e}();function Rpe(e,A){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues&&!e.cues.getCueById(A.id))try{if(e.addCue(A),!e.cues.getCueById(A.id))throw new Error("addCue is failed for: ".concat(A))}catch(ZtA){KCe.debug("[texttrack-utils]: ".concat(ZtA));try{var n=new self.TextTrackCue(A.startTime,A.endTime,A.text);n.id=A.id,e.addCue(n)}catch(r){KCe.debug("[texttrack-utils]: Legacy TextTrackCue fallback failed: ".concat(r))}}"disabled"===t&&(e.mode=t)}function kpe(e,A){var t=e.mode;if("disabled"===t&&(e.mode="hidden"),e.cues)for(var n=e.cues.length;n--;)A&&e.cues[n].removeEventListener("enter",A),e.removeCue(e.cues[n]);"disabled"===t&&(e.mode=t)}function Spe(e,A,t,n){var r=e.mode;if("disabled"===r&&(e.mode="hidden"),e.cues&&e.cues.length>0)for(var i=function(e,A,t){var n=[],r=function(e,A){if(Ae[t].endTime)return-1;var n=0,r=t;for(;n<=r;){var i=Math.floor((r+n)/2);if(Ae[i].startTime&&n-1)for(var i=r,o=e.length;i=A&&a.endTime<=t)n.push(a);else if(a.startTime>t)return n}return n}(e.cues,A,t),o=0;o-1&&this.toggleTrackModes()}},{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.on(DCe.LEVEL_LOADING,this.onLevelLoading,this),e.on(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.on(DCe.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(DCe.ERROR,this.onError,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_PARSED,this.onManifestParsed,this),e.off(DCe.LEVEL_LOADING,this.onLevelLoading,this),e.off(DCe.LEVEL_SWITCHING,this.onLevelSwitching,this),e.off(DCe.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(DCe.ERROR,this.onError,this)}},{key:"onMediaAttached",value:function(e,A){this.media=A.media,this.media&&(this.queuedDefaultTrack>-1&&(this.subtitleTrack=this.queuedDefaultTrack,this.queuedDefaultTrack=-1),this.useTextTrackPolling=!(this.media.textTracks&&"onchange"in this.media.textTracks),this.useTextTrackPolling?this.pollTrackChange(500):this.media.textTracks.addEventListener("change",this.asyncPollTrackChange))}},{key:"pollTrackChange",value:function(e){self.clearInterval(this.subtitlePollingInterval),this.subtitlePollingInterval=self.setInterval(this.onTextTracksChanged,e)}},{key:"onMediaDetaching",value:function(e,A){var t=this.media;if(t){var n=!!A.transferMedia;if(self.clearInterval(this.subtitlePollingInterval),this.useTextTrackPolling||t.textTracks.removeEventListener("change",this.asyncPollTrackChange),this.trackId>-1&&(this.queuedDefaultTrack=this.trackId),this.subtitleTrack=-1,this.media=null,!n)Mpe(t.textTracks).forEach((function(e){kpe(e)}))}}},{key:"onManifestLoading",value:function(){this.tracks=[],this.groupIds=null,this.tracksInGroup=[],this.trackId=-1,this.currentTrack=null,this.selectDefaultTrack=!0}},{key:"onManifestParsed",value:function(e,A){this.tracks=A.subtitleTracks}},{key:"onSubtitleTrackLoaded",value:function(e,A){var t,n,r,i,o,a=A.id,s=A.groupId,g=A.details,c=this.tracksInGroup[a];if(c&&c.groupId===s){var l=c.details;c.details=A.details,this.log(xf(t=xf(n=xf(r=xf(i=xf(o="Subtitle track ".concat(a,' "')).call(o,c.name,'" lang:')).call(i,c.lang," group:")).call(r,s," loaded [")).call(n,g.startSN,"-")).call(t,g.endSN,"]")),a===this.trackId&&this.playlistLoaded(a,A,l)}else{var u,I;this.warn(xf(u=xf(I="Subtitle track with id:".concat(a," and group:")).call(I,s," not found in active group ")).call(u,null==c?void 0:c.groupId))}}},{key:"onLevelLoading",value:function(e,A){this.switchLevel(A.level)}},{key:"onLevelSwitching",value:function(e,A){this.switchLevel(A.level)}},{key:"switchLevel",value:function(e){var A=this.hls.levels[e];if(A){var t=A.subtitleGroups||null,n=this.groupIds,r=this.currentTrack;if(!t||(null==n?void 0:n.length)!==(null==t?void 0:t.length)||null!=t&&t.some((function(e){return-1===(null==n?void 0:zp(n).call(n,e))}))){var i,o;this.groupIds=t,this.trackId=-1,this.currentTrack=null;var a=jv(i=this.tracks).call(i,(function(e){return!t||-1!==zp(t).call(t,e.groupId)}));if(a.length)this.selectDefaultTrack&&!a.some((function(e){return e.default}))&&(this.selectDefaultTrack=!1),a.forEach((function(e,A){e.id=A}));else if(!r&&!this.tracksInGroup.length)return;this.tracksInGroup=a;var s=this.hls.config.subtitlePreference;if(!r&&s){this.selectDefaultTrack=!1;var g=Ide(s,a);if(g>-1)r=a[g];else{var c=Ide(s,this.tracks);r=this.tracks[c]}}var l=this.findTrackId(r);-1===l&&r&&(l=this.findTrackId(null));var u={subtitleTracks:a};this.log(xf(o="Updating subtitle tracks, ".concat(a.length,' track(s) found in "')).call(o,null==t?void 0:t.join(","),'" group-id')),this.hls.trigger(DCe.SUBTITLE_TRACKS_UPDATED,u),-1!==l&&-1===this.trackId&&this.setSubtitleTrack(l)}}}},{key:"findTrackId",value:function(e){for(var A=this.tracksInGroup,t=this.selectDefaultTrack,n=0;n-1){var r=this.tracksInGroup[n];return this.setSubtitleTrack(n),r}if(t)return null;var i=Ide(e,A);if(i>-1)return A[i]}}return null}},{key:"loadPlaylist",value:function(e){MF(Pk(t.prototype),"loadPlaylist",this).call(this),this.shouldLoadPlaylist(this.currentTrack)&&this.scheduleLoading(this.currentTrack,e)}},{key:"loadingPlaylist",value:function(e,A){var n,r,i,o,a,s;MF(Pk(t.prototype),"loadingPlaylist",this).call(this,e,A);var g=e.id,c=e.groupId,l=this.getUrlWithDirectives(e.url,A),u=e.details,I=null==u?void 0:u.age;this.log(xf(n=xf(r=xf(i=xf(o=xf(a=xf(s="Loading subtitle ".concat(g,' "')).call(s,e.name,'" lang:')).call(a,e.lang," group:")).call(o,c)).call(i,void 0!==(null==A?void 0:A.msn)?" at sn "+A.msn+" part "+A.part:"")).call(r,I&&u.live?" age "+I.toFixed(1)+(u.type&&" "+u.type||""):""," ")).call(n,l)),this.hls.trigger(DCe.SUBTITLE_TRACK_LOADING,{url:l,id:g,groupId:c,deliveryDirectives:A||null,track:e})}},{key:"toggleTrackModes",value:function(){var e=this.media;if(e){var A,t,n=Mpe(e.textTracks),r=this.currentTrack;if(r)if(!(A=jv(n).call(n,(function(e){return wQe(r,e)}))[0]))this.warn(xf(t='Unable to find subtitle TextTrack with name "'.concat(r.name,'" and language "')).call(t,r.lang,'"'));if(Xp([]).call(n).forEach((function(e){"disabled"!==e.mode&&e!==A&&(e.mode="disabled")})),A){var i=this.subtitleDisplay?"showing":"hidden";A.mode!==i&&(A.mode=i)}}}},{key:"setSubtitleTrack",value:function(e){var A,t,n=this.tracksInGroup;if(this.media)if(e<-1||e>=n.length||!QCe(e))this.warn("Invalid subtitle track id: ".concat(e));else{this.selectDefaultTrack=!1;var r=this.currentTrack,i=n[e]||null;if(this.trackId=e,this.currentTrack=i,this.toggleTrackModes(),i){var o=!!i.details&&!i.details.live;if(e!==this.trackId||i!==r||!o){this.log("Switching to subtitle-track ".concat(e)+(i?xf(A=xf(t=' "'.concat(i.name,'" lang:')).call(t,i.lang," group:")).call(A,i.groupId):""));var a=i.id,s=i.groupId,g=void 0===s?"":s,c=i.name,l=i.type,u=i.url;this.hls.trigger(DCe.SUBTITLE_TRACK_SWITCH,{id:a,groupId:g,name:c,type:l,url:u});var I=this.switchParams(i.url,null==r?void 0:r.details,i.details);this.loadPlaylist(I)}}else this.hls.trigger(DCe.SUBTITLE_TRACK_SWITCH,{id:e})}else this.queuedDefaultTrack=e}}]),t}(kQe);function _pe(e){for(var A=5381,t=e.length;t;)A=33*A^e.charCodeAt(--t);return(A>>>0).toString()}var bpe=.02,Tpe=function(e){return e[e.Point=0]="Point",e[e.Range=1]="Range",e}({});function Fpe(e,A,t){var n,r;return xf(n=xf(r="".concat(e.identifier,"-")).call(r,t+1,"-")).call(n,_pe(A))}var Npe=function(){function e(A,t){GE(this,e),this.base=void 0,this._duration=null,this._timelineStart=null,this.appendInPlaceDisabled=void 0,this.appendInPlaceStarted=void 0,this.dateRange=void 0,this.hasPlayed=!1,this.cumulativeDuration=0,this.resumeOffset=NaN,this.playoutLimit=NaN,this.restrictions={skip:!1,jump:!1},this.snapOptions={out:!1,in:!1},this.assetList=[],this.assetListLoader=void 0,this.assetListResponse=null,this.resumeAnchor=void 0,this.error=void 0,this.base=t,this.dateRange=A,this.setDateRange(A)}return NE(e,[{key:"setDateRange",value:function(e){this.dateRange=e,this.resumeOffset=e.attr.optionalFloat("X-RESUME-OFFSET",this.resumeOffset),this.playoutLimit=e.attr.optionalFloat("X-PLAYOUT-LIMIT",this.playoutLimit),this.restrictions=e.attr.enumeratedStringList("X-RESTRICT",this.restrictions),this.snapOptions=e.attr.enumeratedStringList("X-SNAP",this.snapOptions)}},{key:"reset",value:function(){var e;null==(e=this.assetListLoader)||e.destroy(),this.assetListLoader=this.error=void 0}},{key:"isAssetPastPlayoutLimit",value:function(e){if(e>=this.assetList.length)return!0;var A=this.playoutLimit;return!(e<=0||isNaN(A))&&this.assetList[e].startOffset>A}},{key:"findAssetIndex",value:function(e){var A;return zp(A=this.assetList).call(A,e)}},{key:"identifier",get:function(){return this.dateRange.id}},{key:"startDate",get:function(){return this.dateRange.startDate}},{key:"startTime",get:function(){var e=this.dateRange.startTime;if(this.snapOptions.out){var A=this.dateRange.tagAnchor;if(A)return Lpe(e,A)}return e}},{key:"startOffset",get:function(){return this.cue.pre?0:this.startTime}},{key:"resumptionOffset",get:function(){var e=this.resumeOffset,A=QCe(e)?e:this.duration;return this.cumulativeDuration+A}},{key:"resumeTime",get:function(){var e=this.startOffset+this.resumptionOffset;if(this.snapOptions.in){var A=this.resumeAnchor;if(A)return Lpe(e,A)}return e}},{key:"appendInPlace",get:function(){return!this.appendInPlaceDisabled&&!(this.cue.once||this.cue.pre||0!==this.startTime&&!this.snapOptions.out||!(isNaN(this.playoutLimit)&&isNaN(this.resumeOffset)||this.resumeOffset&&this.duration&&Math.abs(this.resumeOffset-this.duration)":e.cue.post?"":"")).call(t,e.timelineStart.toFixed(2),"-")).call(A,e.resumeTime.toFixed(2),"]");var e,A,t,n}}]),e}();function Lpe(e,A){return e-A.start=e&&i.hls.trigger(DCe.PLAYOUT_LIMIT_REACHED,{})};var o=this.hls=new A(t);this.interstitial=n,this.assetItem=r;var a=r.uri;try{a=Upe(a,o.sessionId).href}catch(WtA){}o.loadSource(a);var s=function(){i.hasDetails=!0};o.once(DCe.LEVEL_LOADED,s),o.once(DCe.AUDIO_TRACK_LOADED,s),o.once(DCe.SUBTITLE_TRACK_LOADED,s),o.on(DCe.MEDIA_ATTACHING,(function(e,A){var t=A.media;i.removeMediaListeners(),i.mediaAttached=t;var n,o,a=i.interstitial;a.playoutLimit&&(i.playoutOffset=(null==(o=a.assetList[zp(n=a.assetList).call(n,r)])?void 0:o.startOffset)||0,t.addEventListener("timeupdate",i.checkPlayout))}))}return NE(e,[{key:"destroyed",get:function(){var e;return!(null!=(e=this.hls)&&e.userConfig)}},{key:"assetId",get:function(){return this.assetItem.identifier}},{key:"interstitialId",get:function(){return this.assetItem.parentIdentifier}},{key:"media",get:function(){return this.hls.media}},{key:"bufferedEnd",get:function(){var e=this.media||this.mediaAttached;if(!e)return 0;var A=FEe.bufferInfo(e,e.currentTime,.001);return this.getAssetTime(A.end)}},{key:"currentTime",get:function(){var e=this.media||this.mediaAttached;return e?this.getAssetTime(e.currentTime):0}},{key:"duration",get:function(){var e,A=null==(e=this.assetItem)?void 0:e.duration;return A||0}},{key:"remaining",get:function(){var e=this.duration;return e?Math.max(0,e-this.currentTime):0}},{key:"timelineOffset",get:function(){return this.hls.config.timelineOffset||0},set:function(e){var A=this.timelineOffset;if(e!==A){var t=e-A;if(Math.abs(t)>1/9e4){if(this.hasDetails)throw new Error("Cannot set timelineOffset after playlists are loaded");this.hls.config.timelineOffset=e}}}},{key:"getAssetTime",value:function(e){var A=this.timelineOffset,t=this.duration;return Math.min(Math.max(0,e-A),t)}},{key:"removeMediaListeners",value:function(){var e=this.mediaAttached;e&&e.removeEventListener("timeupdate",this.checkPlayout)}},{key:"destroy",value:function(){this.removeMediaListeners(),this.hls.destroy(),this.hls=this.interstitial=null,this.tracks=this.mediaAttached=this.checkPlayout=null}},{key:"attachMedia",value:function(e){this.hls.attachMedia(e)}},{key:"detachMedia",value:function(){this.removeMediaListeners(),this.hls.detachMedia()}},{key:"resumeBuffering",value:function(){this.hls.resumeBuffering()}},{key:"pauseBuffering",value:function(){this.hls.pauseBuffering()}},{key:"transferMedia",value:function(){return this.hls.transferMedia()}},{key:"on",value:function(e,A,t){this.hls.on(e,A)}},{key:"once",value:function(e,A,t){this.hls.once(e,A)}},{key:"off",value:function(e,A,t){this.hls.off(e,A)}},{key:"toString",value:function(){var e,A;return xf(e=xf(A="HlsAssetPlayer: ".concat(Kpe(this.assetItem)," ")).call(A,this.hls.sessionId," ")).call(e,this.interstitial.appendInPlace?"append-in-place":"")}}]),e}(),Ype=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,"interstitials-sched",n)).onScheduleUpdate=void 0,r.eventMap={},r.events=null,r.items=null,r.durations={primary:0,playout:0,integrated:0},r.onScheduleUpdate=e,r}return NE(t,[{key:"destroy",value:function(){this.reset(),this.onScheduleUpdate=null}},{key:"reset",value:function(){this.eventMap={},this.setDurations(0,0,0),this.events&&this.events.forEach((function(e){return e.reset()})),this.events=this.items=null}},{key:"duration",get:function(){var e=this.items;return e?e[e.length-1].end:0}},{key:"length",get:function(){return this.items?this.items.length:0}},{key:"getEvent",value:function(e){return e&&this.eventMap[e]||null}},{key:"hasEvent",value:function(e){return e in this.eventMap}},{key:"findItemIndex",value:function(e,A){if(e.event)return this.findEventIndex(e.event.identifier);var t=-1;e.nextEvent?t=this.findEventIndex(e.nextEvent.identifier)-1:e.previousEvent&&(t=this.findEventIndex(e.previousEvent.identifier)+1);var n=this.items;if(n)for(n[t]||(void 0===A&&(A=e.start),t=this.findItemIndexAtTime(A));t>=0&&null!=(r=n[t])&&r.event;){var r;t--}return t}},{key:"findItemIndexAtTime",value:function(e,A){var t=this.items;if(t)for(var n=0;nr.start&&e1)for(var r=0;ro&&A1&&void 0!==arguments[1]?arguments[1]:[],t=this.events||[];if(t.length||A.length||this.length<2){var n=this.items,r=this.parseSchedule(t,e);(A.length||(null==n?void 0:n.length)!==r.length||r.some((function(e,A){return Math.abs(e.playout.start-n[A].playout.start)>.005||Math.abs(e.playout.end-n[A].playout.end)>.005})))&&(this.items=r,this.onScheduleUpdate(A,n))}}},{key:"parseDateRanges",value:function(e,A){for(var t=[],n=jp(e),r=0;r.033){var v=o,y=a;a+=p;var m=i;i+=p;var D={previousEvent:e[n-1]||null,nextEvent:A,start:v,end:v+p,playout:{start:m,end:i},integrated:{start:y,end:a}};t.push(D)}else p>0&&c&&(c.cumulativeDuration+=p,t[t.length-1].end=u)}g&&(f=E),A.timelineStart=E;var w=a;a+=h;var R=i;i+=I,t.push({event:A,start:E,end:f,playout:{start:R,end:i},integrated:{start:w,end:a}})}var k=A.resumeTime;o=g||k>r?r:k})),obpe?(this.log(xf(t=xf(n='"'.concat(e.identifier,'" resumption ')).call(n,o," not aligned with estimated timeline end ")).call(t,a)),!1):A?!jp(A).some((function(t){var n,r,a,s=A[t].details,g=s.edge;if(o>g)return i.log(xf(n=xf(r=xf(a='"'.concat(e.identifier,'" resumption ')).call(a,o," past ")).call(r,t," playlist end ")).call(n,g)),!0;var c,l,u=Bde(null,s.fragments,o);if(!u)return i.log(xf(c=xf(l='"'.concat(e.identifier,'" resumption ')).call(l,o," does not align with any fragments in ")).call(c,t," playlist")),!0;var I,h,C,d,E,f,B="audio"===t?.175:0;return!(Math.abs(u.start-o)0&&t.searchParams.set("_HLS_start_offset",""+Math.round(1e3*o)/1e3)}var a=this.hls.config,s=new(0,a.loader)(a),g={responseType:"json",url:t.href},c=a.interstitialAssetListLoadPolicy.default,l={loadPolicy:c,timeout:c.maxLoadTimeMs,maxRetry:0,retryDelay:0,maxRetryDelay:0},u={onSuccess:function(A,t,r,i){var o=A.data,a=null==o?void 0:o.ASSETS;if(Array.isArray(a))e.assetListResponse=o,n.hls.trigger(DCe.ASSET_LIST_LOADED,{event:e,assetListResponse:o,networkDetails:i});else{var s=n.assignAssetListError(e,mCe.ASSET_LIST_PARSING_ERROR,new Error("Invalid interstitial asset list"),r.url,t,i);n.hls.trigger(DCe.ERROR,s)}},onError:function(A,t,r,i){var o,a,s=n.assignAssetListError(e,mCe.ASSET_LIST_LOAD_ERROR,new Error(xf(o=xf(a="Error loading X-ASSET-LIST: HTTP status ".concat(A.code," ")).call(a,A.text," (")).call(o,t.url,")")),t.url,i,r);n.hls.trigger(DCe.ERROR,s)},onTimeout:function(A,t,r){var i=n.assignAssetListError(e,mCe.ASSET_LIST_LOAD_TIMEOUT,new Error("Timeout loading X-ASSET-LIST (".concat(t.url,")")),t.url,A,r);n.hls.trigger(DCe.ERROR,i)}};return s.load(g,l,u),this.hls.trigger(DCe.ASSET_LIST_LOADING,{event:e}),s}},{key:"assignAssetListError",value:function(e,A,t,n,r,i){return e.error=t,{type:yCe.NETWORK_ERROR,details:A,fatal:!1,interstitial:e,url:n,error:t,networkDetails:i,stats:r}}}]),e}();function Jpe(e){null==e||e.play().catch()}var Ope=function(e){Yk(t,e);var A=Jk(t);function t(e,n){var r;return GE(this,t),(r=A.call(this,"interstitials",e.logger)).HlsPlayerClass=void 0,r.hls=void 0,r.assetListLoader=void 0,r.mediaSelection=null,r.altSelection=null,r.media=null,r.detachedData=null,r.requiredTracks=null,r.manager=null,r.playerQueue=[],r.bufferedPos=-1,r.timelinePos=-1,r.schedule=void 0,r.playingItem=null,r.bufferingItem=null,r.waitingItem=null,r.playingAsset=null,r.bufferingAsset=null,r.shouldPlay=!1,r.onPlay=function(){r.shouldPlay=!0},r.onPause=function(){r.shouldPlay=!1},r.onSeeking=function(){var e=r.currentTime;if(void 0!==e&&!r.playbackDisabled){var A=e-r.timelinePos;if(!(Math.abs(A)<1/7056e5)){var t=A<=-.01;r.timelinePos=e,r.bufferedPos=e,r.checkBuffer();var n=r.playingItem;if(n)if(t&&e=n.end){var i,o=r.schedule.findItemIndexAtTime(r.timelinePos);if(!r.isInterstitial(n)&&null!=(i=r.media)&&i.paused&&(r.shouldPlay=!1),!t){var a=r.findItemIndex(n);if(o>a){var s=r.schedule.findJumpRestrictedIndex(a+1,o);if(s>a)return void r.setSchedulePosition(s)}}r.setSchedulePosition(o)}else{var g=r.playingAsset;if(g){var c=g.timelineStart,l=g.duration||0;(t&&e=c+l)&&r.setScheduleToAssetAtTime(e,g)}else if(r.playingLastItem&&r.isInterstitial(n)){var u=n.event.assetList[0];u&&(r.playingItem=null,r.setScheduleToAssetAtTime(e,u))}}}}},r.onTimeupdate=function(){var e=r.currentTime;if(void 0!==e&&!r.playbackDisabled&&e>r.timelinePos){e>r.bufferedPos&&r.checkBuffer(),r.timelinePos=e;var A=r.playingItem;if(A&&!r.playingLastItem){if(e>=A.end){r.timelinePos=A.end;var t=r.findItemIndex(A);r.setSchedulePosition(t+1)}var n=r.playingAsset;if(n)e>=n.timelineStart+(n.duration||0)&&r.setScheduleToAssetAtTime(e,n)}}},r.onScheduleUpdate=function(e,A){var t,n,i=r.schedule,o=r.playingItem,a=i.events||[],s=i.items||[],g=i.durations,c=Jp(e).call(e,(function(e){return e.identifier})),l=!(!a.length&&!c.length);l&&(!1===r.hls.config.interstitialAppendInPlace&&a.forEach((function(e){return e.appendInPlace=!1})),r.log(xf(t=xf(n="INTERSTITIALS_UPDATED (".concat(a.length,"): ")).call(n,a,"\nSchedule: ")).call(t,Jp(s).call(s,(function(e){return Ppe(e)})))));c.length&&r.log("Removed events ".concat(c)),r.playerQueue.forEach((function(e){if(e.interstitial.appendInPlace){var A=e.assetItem.timelineStart,t=e.timelineOffset-A;if(t)try{e.timelineOffset=A}catch(P7){var n,i,o;if(Math.abs(t)>bpe)r.warn(xf(n=xf(i=xf(o="".concat(P7,' ("')).call(o,e.assetId,'" ')).call(i,e.timelineOffset,"->")).call(n,A,")"))}}})),o&&!o.event&&(r.playingItem=r.updateItem(o,r.timelinePos));var u=r.bufferingItem;if(u&&(u.event?r.updateItem(u)||(r.bufferingItem=null,r.clearInterstitial(u.event,null)):r.bufferingItem=r.updateItem(u,r.bufferedPos)),r.waitingItem=r.updateItem(r.waitingItem),e.forEach((function(e){e.assetList.forEach((function(e){r.clearAssetPlayer(e.identifier,null)}))})),l||A){if(r.hls.trigger(DCe.INTERSTITIALS_UPDATED,{events:Xp(a).call(a,0),schedule:Xp(s).call(s,0),durations:g,removedIds:c}),r.isInterstitial(o)&&PT(c).call(c,o.event.identifier))return r.warn('Interstitial "'.concat(o.event.identifier,'" removed while playing')),void r.primaryFallback(o.event);r.checkBuffer()}},r.hls=e,r.HlsPlayerClass=n,r.assetListLoader=new Hpe(e),r.schedule=new Ype(r.onScheduleUpdate,e.logger),r.registerListeners(),r}return NE(t,[{key:"registerListeners",value:function(){var e=this.hls;e.on(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.on(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.on(DCe.LEVEL_UPDATED,this.onLevelUpdated,this),e.on(DCe.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.on(DCe.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.on(DCe.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(DCe.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.on(DCe.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.on(DCe.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.on(DCe.BUFFER_APPENDED,this.onBufferAppended,this),e.on(DCe.BUFFER_FLUSHED,this.onBufferFlushed,this),e.on(DCe.BUFFERED_TO_END,this.onBufferedToEnd,this),e.on(DCe.MEDIA_ENDED,this.onMediaEnded,this),e.on(DCe.ERROR,this.onError,this),e.on(DCe.DESTROYING,this.onDestroying,this)}},{key:"unregisterListeners",value:function(){var e=this.hls;e&&(e.off(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(DCe.MEDIA_ATTACHED,this.onMediaAttached,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.LEVEL_UPDATED,this.onLevelUpdated,this),e.off(DCe.AUDIO_TRACK_SWITCHING,this.onAudioTrackSwitching,this),e.off(DCe.AUDIO_TRACK_UPDATED,this.onAudioTrackUpdated,this),e.off(DCe.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(DCe.SUBTITLE_TRACK_UPDATED,this.onSubtitleTrackUpdated,this),e.off(DCe.EVENT_CUE_ENTER,this.onInterstitialCueEnter,this),e.off(DCe.ASSET_LIST_LOADED,this.onAssetListLoaded,this),e.off(DCe.BUFFER_CODECS,this.onBufferCodecs,this),e.off(DCe.BUFFER_APPENDED,this.onBufferAppended,this),e.off(DCe.BUFFER_FLUSHED,this.onBufferFlushed,this),e.off(DCe.BUFFERED_TO_END,this.onBufferedToEnd,this),e.off(DCe.MEDIA_ENDED,this.onMediaEnded,this),e.off(DCe.ERROR,this.onError,this),e.off(DCe.DESTROYING,this.onDestroying,this))}},{key:"startLoad",value:function(){this.resumeBuffering()}},{key:"stopLoad",value:function(){this.pauseBuffering()}},{key:"resumeBuffering",value:function(){this.playerQueue.forEach((function(e){return e.resumeBuffering()}))}},{key:"pauseBuffering",value:function(){this.playerQueue.forEach((function(e){return e.pauseBuffering()}))}},{key:"destroy",value:function(){this.unregisterListeners(),this.stopLoad(),this.assetListLoader&&this.assetListLoader.destroy(),this.emptyPlayerQueue(),this.clearScheduleState(),this.schedule&&this.schedule.destroy(),this.media=this.detachedData=this.mediaSelection=this.requiredTracks=this.altSelection=this.manager=null,this.hls=this.HlsPlayerClass=this.schedule=this.log=null,this.assetListLoader=null,this.onPlay=this.onPause=this.onSeeking=this.onTimeupdate=null,this.onScheduleUpdate=null}},{key:"onDestroying",value:function(){var e=this.primaryMedia;e&&this.removeMediaListeners(e)}},{key:"removeMediaListeners",value:function(e){e.removeEventListener("play",this.onPlay),e.removeEventListener("pause",this.onPause),e.removeEventListener("seeking",this.onSeeking),e.removeEventListener("timeupdate",this.onTimeupdate)}},{key:"onMediaAttaching",value:function(e,A){var t=this.media=A.media;this.removeMediaListeners(t),t.addEventListener("seeking",this.onSeeking),t.addEventListener("timeupdate",this.onTimeupdate),t.addEventListener("play",this.onPlay),t.addEventListener("pause",this.onPause)}},{key:"onMediaAttached",value:function(e,A){var t=this.playingItem,n=this.detachedData;if(this.detachedData=null,null===t)this.checkStart();else if(!n){this.clearScheduleState();var r=this.findItemIndex(t);this.setSchedulePosition(r)}}},{key:"clearScheduleState",value:function(){this.playingItem=this.bufferingItem=this.waitingItem=this.playingAsset=this.bufferingAsset=null}},{key:"onMediaDetaching",value:function(e,A){var t=!!A.transferMedia,n=this.media;if(this.media=null,!t&&(n&&this.removeMediaListeners(n),this.detachedData)){var r=this.getBufferingPlayer();r&&(this.playingAsset=null,this.bufferingAsset=null,this.bufferingItem=null,this.waitingItem=null,this.detachedData=null,r.detachMedia()),this.shouldPlay=!1}}},{key:"interstitialsManager",get:function(){if(!this.manager){if(!this.hls||!this.schedule.events)return null;var e=this,A=function(){return e.bufferingItem||e.waitingItem},t=function(){return e.playingItem||e.waitingItem},n=function(A){return A?e.getAssetPlayer(A.identifier):A},r=function(A,t,r,i,a){if(A){var s=A[t].start,g=A.event;if(g){if("playout"===t||g.timelineOccupancy!==Tpe.Point){var c=n(r);(null==c?void 0:c.interstitial)===g&&(s+=c.assetItem.startOffset+c[a])}}else s+=("bufferedPos"===i?o():e[i])-A.start;return s}return 0},i=function(A,t){if(0!==A&&"primary"!==t&&e.schedule.length){var n,r=e.schedule.findItemIndexAtTime(A),i=null==(n=e.schedule.items)?void 0:n[r];if(i)return A+(i[t].start-i.start)}return A},o=function(){var A=e.bufferedPos;return A===Number.MAX_VALUE?a("primary"):A},a=function(A){var t;return null!=(t=e.primaryDetails)&&t.live?e.primaryDetails.edge:e.schedule.durations[A]},s=function(A,i){var o,a,s,g=t();if(null==g||null==(a=g.event)||!a.restrictions.skip){e.log(xf(o="seek to ".concat(A,' "')).call(o,i,'"'));var c=t(),l=e.schedule.findItemIndexAtTime(A,i),u=null==(s=e.schedule.items)?void 0:s[l],I=null==c?void 0:c.event,h=null==I?void 0:I.appendInPlace,C=c&&e.itemsMatch(c,u);if(c&&(h||C)){var d=n(e.playingAsset),E=(null==d?void 0:d.media)||e.hls.media;if(E){var f=A-("primary"===i?E.currentTime:r(c,i,e.playingAsset,"timelinePos","currentTime")),B=E.currentTime+f;if(B>=0&&(!d||h||B<=d.duration))return void(E.currentTime=B)}}if(u){var Q=A;if("primary"!==i){var p=A-u[i].start;Q=u.start+p}var v=!e.isInterstitial(u);if(e.isInterstitial(c)||!v&&!u.event.appendInPlace){if(c){var y=e.findItemIndex(c);if(l>y){var m=e.schedule.findJumpRestrictedIndex(y+1,l);if(m>y)return void e.setSchedulePosition(m)}var D=0;if(v)e.timelinePos=Q;else{var w,R=null==u||null==(w=u.event)?void 0:w.assetList;if(R)for(var k=A-(u[i]||u).start,S=R.length;S--;){var M=R[S];if(M.duration&&k>=M.startOffset&&k0?A:0},get duration(){return a("primary")},get seekableStart(){var A;return(null==(A=e.primaryDetails)?void 0:A.fragmentStart)||0},seekTo:function(e){return s(e,"primary")}},playout:{get bufferedEnd(){return r(A(),"playout",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return r(t(),"playout",e.playingAsset,"timelinePos","currentTime")},get duration(){return a("playout")},get seekableStart(){var A;return i((null==(A=e.primaryDetails)?void 0:A.fragmentStart)||0,"playout")},seekTo:function(e){return s(e,"playout")}},integrated:{get bufferedEnd(){return r(A(),"integrated",e.bufferingAsset,"bufferedPos","bufferedEnd")},get currentTime(){return r(t(),"integrated",e.playingAsset,"timelinePos","currentTime")},get duration(){return a("integrated")},get seekableStart(){var A;return i((null==(A=e.primaryDetails)?void 0:A.fragmentStart)||0,"integrated")},seekTo:function(e){return s(e,"integrated")}},skip:function(){var A=t(),n=null==A?void 0:A.event;if(n&&!n.restrictions.skip){var r=e.findItemIndex(A);if(n.appendInPlace){var i=A.playout.start+A.event.duration;s(i+.001,"playout")}else e.advanceAfterAssetEnded(n,r,1/0)}}}}return this.manager}},{key:"playingLastItem",get:function(){var e,A=this.playingItem;if(!this.playbackStarted||!A)return!1;var t=null==(e=this.schedule)?void 0:e.items;return this.itemsMatch(A,t?t[t.length-1]:null)}},{key:"playbackStarted",get:function(){return null!==this.playingItem}},{key:"currentTime",get:function(){var e,A,t;if(null!==this.mediaSelection){var n=this.waitingItem||this.playingItem;if(!this.isInterstitial(n)||n.event.appendInPlace){var r=this.media;!r&&null!=(e=this.bufferingItem)&&null!=(A=e.event)&&A.appendInPlace&&(r=this.primaryMedia);var i=null==(t=r)?void 0:t.currentTime;if(void 0!==i&&QCe(i))return i}}}},{key:"primaryMedia",get:function(){var e;return this.media||(null==(e=this.detachedData)?void 0:e.media)||null}},{key:"isInterstitial",value:function(e){return!(null==e||!e.event)}},{key:"retreiveMediaSource",value:function(e,A){var t=this.getAssetPlayer(e);t&&this.transferMediaFromPlayer(t,A)}},{key:"transferMediaFromPlayer",value:function(e,A){var t=e.interstitial.appendInPlace,n=e.media;if(t&&n===this.primaryMedia){var r;if(!A||this.isInterstitial(A)&&!A.event.appendInPlace)return void(A&&n&&(this.detachedData={media:n}));var i=e.transferMedia();this.log(xf(r="transfer MediaSource from ".concat(e," ")).call(r,$b(i))),this.bufferingAsset=null,this.detachedData=i}else A&&n&&(this.shouldPlay||(this.shouldPlay=!n.paused))}},{key:"transferMediaTo",value:function(e,A){var t,n,r,i,o,a,s=null,g=this.hls,c=e!==g,l=c&&e.interstitial.appendInPlace,u=null==(i=this.detachedData)?void 0:i.mediaSource;if(g.media&&l)s=g.transferMedia(),this.detachedData=s,a="Primary";else if(u){var I=this.getBufferingPlayer();I&&(s=I.transferMedia()),a="".concat(I)}else a="";this.log(xf(t=xf(n="transferring to ".concat(c?e:"Primary","\nMediaSource ")).call(n,$b(s)," from ")).call(t,a)),s||(u?(s=this.detachedData,this.log("using detachedData: MediaSource ".concat($b(s)))):this.detachedData&&this.hls.media!==A||(this.hls.detachMedia(),this.detachedData={media:A}));var h=s&&"mediaSource"in s&&"closed"!==(null==(o=s.mediaSource)?void 0:o.readyState),C=h&&s?s:A;if(this.log(xf(r="".concat(h?"transfering MediaSource":"attaching media"," to ")).call(r,c?e:"Primary")),C===s){var d=c&&e.assetId===this.schedule.assetIdAtEnd;C.overrides={duration:this.schedule.duration,endOfStream:!c||d,cueRemoval:!1}}e.attachMedia(C)}},{key:"onInterstitialCueEnter",value:function(){this.onTimeupdate()}},{key:"checkStart",value:function(){var e=this.schedule,A=e.events;if(A&&!this.playbackDisabled){-1===this.bufferedPos&&(this.bufferedPos=0);var t=this.timelinePos,n=this.waitingItem;if(-1===t){var r=this.hls.startPosition;if(this.timelinePos=r,A.length&&A[0].cue.pre){var i=e.findEventIndex(A[0].identifier);this.setSchedulePosition(i)}else if(r>=0||!this.primaryLive){var o=this.timelinePos=r>0?r:0,a=e.findItemIndexAtTime(o);this.setSchedulePosition(a)}}else if(n&&!this.playingItem){var s=e.findItemIndex(n);this.setSchedulePosition(s)}}}},{key:"advanceAfterAssetEnded",value:function(e,A,t){var n=t+1;if(e.isAssetPastPlayoutLimit(n)||e.assetList[n].error){var r=this.schedule.items;if(r){var i=A+1;if(i>=r.length)return void this.setSchedulePosition(-1);this.setSchedulePosition(i)}}else this.setSchedulePosition(A,n)}},{key:"setScheduleToAssetAtTime",value:function(e,A){var t=this.schedule,n=A.parentIdentifier,r=t.getEvent(n);if(r){var i=t.findEventIndex(n),o=t.findAssetIndex(r,e);this.setSchedulePosition(i,o)}}},{key:"setSchedulePosition",value:function(e,A){var t,n=this,r=this.schedule.items;if(r&&!this.playbackDisabled){this.log(xf(t="setSchedulePosition ".concat(e,", ")).call(t,A));var i=e>=0?r[e]:null,o=this.primaryMedia,a=this.playingItem,s=this.playingLastItem;if(this.isInterstitial(a)){var g,c,l=a.event,u=this.playingAsset,I=null==u?void 0:u.identifier,h=I?this.getAssetPlayer(I):null;if(h&&I&&(!this.eventItemsMatch(a,i)||void 0!==A&&I!==(null==(g=l.assetList)?void 0:g[A].identifier))){var C,d;this.playingAsset=null;var E=l.findAssetIndex(u);this.log(xf(C=xf(d="INTERSTITIAL_ASSET_ENDED ".concat(E+1,"/")).call(d,l.assetList.length," ")).call(C,Kpe(u))),this.hls.trigger(DCe.INTERSTITIAL_ASSET_ENDED,{asset:u,assetListIndex:E,event:l,schedule:Xp(r).call(r,0),scheduleIndex:e,player:h}),this.retreiveMediaSource(I,i),h.media&&!this.detachedData&&h.detachMedia(),this.clearAssetPlayer(I,i)}if(!this.eventItemsMatch(a,i))if(this.playingItem=null,this.log(xf(c="INTERSTITIAL_ENDED ".concat(l," ")).call(c,Ppe(a))),l.hasPlayed=!0,this.hls.trigger(DCe.INTERSTITIAL_ENDED,{event:l,schedule:Xp(r).call(r,0),scheduleIndex:e}),this.clearInterstitial(l,i),l.cue.once){if(this.updateSchedule(),i){var f=this.schedule.findItemIndex(i);this.setSchedulePosition(f,A)}return}}var B=this.playerQueue;if(B.length&&B.forEach((function(A){var t=A.interstitial,r=n.schedule.findEventIndex(t.identifier);(re+1)&&n.clearInterstitial(t,i)})),this.isInterstitial(i)){this.timelinePos=Math.min(Math.max(this.timelinePos,i.start),i.end);var Q=i.event;void 0===A&&(A=this.schedule.findAssetIndex(Q,this.timelinePos));var p,v=this.waitingItem,y=this.preloadAssets(Q,A);if(y||this.setBufferingItem(i),!this.eventItemsMatch(i,a||v))this.waitingItem=i,this.log(xf(p="INTERSTITIAL_STARTED ".concat(Ppe(i)," ")).call(p,Q.appendInPlace?"append in place":"")),this.hls.trigger(DCe.INTERSTITIAL_STARTED,{event:Q,schedule:Xp(r).call(r,0),scheduleIndex:e});var m=Q.assetList.length;if(0===m&&!Q.assetListResponse)return void this.log("Waiting for ASSET-LIST to complete loading ".concat(Q));if(Q.assetListLoader&&(Q.assetListLoader.destroy(),Q.assetListLoader=void 0),!o)return void this.log("Waiting for attachMedia to start Interstitial ".concat(Q));this.waitingItem=null,this.playingItem=i;var D,w,R=Q.assetList[A];if(!R){var k=r[e+1],S=this.media;return k&&S&&!this.isInterstitial(k)&&S.currentTime=e.end)&&(r=this.getPrimaryResumption(e,A),this.timelinePos=r),this.attachPrimary(r,e)}if(t){var i=this.schedule.items;i&&(this.log("resumed ".concat(Ppe(e))),this.hls.trigger(DCe.INTERSTITIALS_PRIMARY_RESUMED,{schedule:Xp(i).call(i,0),scheduleIndex:A}),this.checkBuffer())}}},{key:"getPrimaryResumption",value:function(e,A){var t=e.start;if(this.primaryLive){var n=this.primaryDetails;if(0===A)return this.hls.startPosition;if(n&&(tn.edge))return this.hls.liveSyncPosition||-1}return t}},{key:"isAssetBuffered",value:function(e){var A=this.getAssetPlayer(e.identifier);return null!=A&&A.hls?A.hls.bufferedToEnd:FEe.bufferInfo(this.primaryMedia,this.timelinePos,0).end+1>=e.timelineStart+(e.duration||0)}},{key:"attachPrimary",value:function(e,A,t){A?this.setBufferingItem(A):this.bufferingItem=null,this.bufferingAsset=null;var n=this.primaryMedia;if(n){var r=this.hls;r.media?this.checkBuffer():(this.transferMediaTo(r,n),t&&this.startLoadingPrimaryAt(e,t)),t||(this.timelinePos=e,this.startLoadingPrimaryAt(e,t))}}},{key:"startLoadingPrimaryAt",value:function(e,A){this.hls.loadingEnabled&&this.hls.startLoad(e,A)}},{key:"onManifestLoading",value:function(){this.stopLoad(),this.schedule.reset(),this.emptyPlayerQueue(),this.clearScheduleState(),this.shouldPlay=!1,this.bufferedPos=this.timelinePos=-1,this.mediaSelection=this.altSelection=this.manager=this.requiredTracks=null,this.hls.off(DCe.BUFFER_CODECS,this.onBufferCodecs,this),this.hls.on(DCe.BUFFER_CODECS,this.onBufferCodecs,this)}},{key:"onLevelUpdated",value:function(e,A){if(-1!==A.level){var t=this.hls.levels[A.level],n=NCe(NCe({},this.mediaSelection||this.altSelection),{},{main:t});this.mediaSelection=n,this.schedule.parseInterstitialDateRanges(n),!this.playingItem&&this.schedule.items&&this.checkStart()}}},{key:"onAudioTrackUpdated",value:function(e,A){var t=this.hls.audioTracks[A.id],n=this.mediaSelection;if(n){var r=NCe(NCe({},n),{},{audio:t});this.mediaSelection=r}else this.altSelection=NCe(NCe({},this.altSelection),{},{audio:t})}},{key:"onSubtitleTrackUpdated",value:function(e,A){var t=this.hls.subtitleTracks[A.id],n=this.mediaSelection;if(n){var r=NCe(NCe({},n),{},{subtitles:t});this.mediaSelection=r}else this.altSelection=NCe(NCe({},this.altSelection),{},{subtitles:t})}},{key:"onAudioTrackSwitching",value:function(e,A){var t=ude(A);this.playerQueue.forEach((function(e){return e.hls.setAudioOption(A)||e.hls.setAudioOption(t)}))}},{key:"onSubtitleTrackSwitch",value:function(e,A){var t=ude(A);this.playerQueue.forEach((function(e){return e.hls.setSubtitleOption(A)||-1!==A.id&&e.hls.setSubtitleOption(t)}))}},{key:"onBufferCodecs",value:function(e,A){var t=A.tracks;t&&(this.requiredTracks=t)}},{key:"onBufferAppended",value:function(e,A){this.checkBuffer()}},{key:"onBufferFlushed",value:function(e,A){var t=this.playingItem;if(t&&t!==this.bufferingItem&&!this.isInterstitial(t)){var n=this.timelinePos;this.bufferedPos=n,this.setBufferingItem(t)}}},{key:"onBufferedToEnd",value:function(e){var A=this.schedule.events;if(this.bufferedPose))if(1===A.length&&this.itemsMatch(A[0],r))this.bufferedPos=e;else{var i=this.playingItem,o=this.findItemIndex(i),a=n.findItemIndexAtTime(e);if(this.bufferedPos=r.end&&(a=c),c-o>1&&!1===(null==r||null==(s=r.event)?void 0:s.appendInPlace))return;if(this.bufferedPos=e,a>g&&a>o)this.bufferedToItem(l);else{var u=this.primaryDetails;this.primaryLive&&u&&e>u.edge-u.targetduration&&l.start1&&void 0!==arguments[1]?arguments[1]:0,t=this.setBufferingItem(e);if(!this.playbackDisabled)if(this.isInterstitial(e))this.bufferedToEvent(e,A);else if(null!==t){this.bufferingAsset=null;var n=this.detachedData;if(n)if(n.mediaSource){this.attachPrimary(e.start,e,!0)}else this.preloadPrimary(e);else this.preloadPrimary(e)}}},{key:"preloadPrimary",value:function(e){var A=this.findItemIndex(e),t=this.getPrimaryResumption(e,A);this.startLoadingPrimaryAt(t)}},{key:"bufferedToEvent",value:function(e,A){var t=e.event,n=0===t.assetList.length&&!t.assetListLoader,r=t.cue.once;if(n||!r){var i=this.preloadAssets(t,A);if(null!=i&&i.interstitial.appendInPlace){var o=t.assetList[A],a=this.primaryMedia;o&&a&&this.bufferAssetPlayer(i,a)}}}},{key:"preloadAssets",value:function(e,A){var t=e.assetList.length,n=0===t&&!e.assetListLoader,r=e.cue.once;if(n){var i,o;this.log(xf(i=xf(o="Load interstitial asset ".concat(A+1,"/")).call(o,t," ")).call(i,e));var a=e.timelineStart;e.appendInPlace&&this.flushFrontBuffer(a);var s=e.assetUrl;if(s)return this.createAsset(e,0,0,a,e.duration,s);var g=0;!this.playingItem&&this.primaryLive&&-1===(g=this.hls.startPosition)&&(g=this.hls.liveSyncPosition||0);var c=this.assetListLoader.loadAssetList(e,g);c&&(e.assetListLoader=c)}else if(!r&&t){for(var l=A;l1){var u=A.duration;u&&lc)n.log(xf(a=xf(s='Interstitial asset "'.concat(d,'" duration change ')).call(s,c," > ")).call(a,g)),A.duration=g,n.updateSchedule()}};C.on(DCe.LEVEL_UPDATED,(function(e,A){var t=A.details;return E(t)})),C.on(DCe.LEVEL_PTS_UPDATED,(function(e,A){var t=A.details;return E(t)}));C.on(DCe.BUFFER_CODECS,(function e(A,t){var r=n.getAssetPlayer(d);if(r&&t.tracks){r.off(DCe.BUFFER_CODECS,e),r.tracks=t.tracks;var i=n.primaryMedia;n.bufferingAsset===r.assetItem&&i&&!r.media&&n.bufferAssetPlayer(r,i)}}));C.on(DCe.BUFFERED_TO_END,(function t(r){var i,o=n.getAssetPlayer(d);if(n.log("buffered to end of asset ".concat(o)),o){o.off(DCe.BUFFERED_TO_END,t);var a=n.schedule.findEventIndex(e.identifier),s=e.findAssetIndex(A),g=s+1,c=null==(i=n.schedule.items)?void 0:i[a];if(n.isInterstitial(c))if(-1===s||e.isAssetPastPlayoutLimit(g)||e.assetList[g].error){var l,u=null==(l=n.schedule.items)?void 0:l[a+1];u&&n.bufferedToItem(u)}else n.bufferedToItem(c,s+1)}}));var f=function(A){return function(){if(n.getAssetPlayer(d)){n.shouldPlay=!0;var t=n.schedule.findEventIndex(e.identifier);n.advanceAfterAssetEnded(e,t,A)}}};return C.once(DCe.MEDIA_ENDED,f(t)),C.once(DCe.PLAYOUT_LIMIT_REACHED,f(1/0)),C.on(DCe.ERROR,(function(A,r){var i;n.handleAssetItemError(r,e,n.schedule.findEventIndex(e.identifier),t,xf(i="Asset player error ".concat(r.error," ")).call(i,e))})),C.on(DCe.DESTROYING,(function(){if(n.getAssetPlayer(d)){var A=new Error("Asset player destroyed unexpectedly ".concat(d)),r={fatal:!0,type:yCe.OTHER_ERROR,details:mCe.INTERSTITIAL_ASSET_ITEM_ERROR,error:A};n.handleAssetItemError(r,e,n.schedule.findEventIndex(e.identifier),t,A.message)}})),this.hls.trigger(DCe.INTERSTITIAL_ASSET_PLAYER_CREATED,{asset:A,assetListIndex:t,event:e,player:C}),C}},{key:"clearInterstitial",value:function(e,A){var t=this;e.assetList.forEach((function(e){t.clearAssetPlayer(e.identifier,A)})),e.appendInPlaceStarted=!1}},{key:"clearAssetPlayer",value:function(e,A){if(null!==A){var t=this.getAssetPlayerQueueIndex(e);if(-1!==t){var n,r;this.log(xf(n='clearAssetPlayer "'.concat(e,'" toSegment: ')).call(n,A?Ppe(A):A));var i=this.playerQueue[t];this.transferMediaFromPlayer(i,A),Cv(r=this.playerQueue).call(r,t,1),i.destroy()}}}},{key:"emptyPlayerQueue",value:function(){for(var e;e=this.playerQueue.pop();)e.destroy();this.playerQueue=[]}},{key:"startAssetPlayer",value:function(e,A,t,n,r){var i,o,a=e.interstitial,s=e.assetItem,g=e.assetId,c=a.assetList.length,l=this.playingAsset;(this.playingAsset=s,l&&l.identifier===g)||(l&&(this.clearAssetPlayer(l.identifier,t[n]),delete l.error),this.log(xf(i=xf(o="INTERSTITIAL_ASSET_STARTED ".concat(A+1,"/")).call(o,c," ")).call(i,e)),this.hls.trigger(DCe.INTERSTITIAL_ASSET_STARTED,{asset:s,assetListIndex:A,event:a,schedule:Xp(t).call(t,0),scheduleIndex:n,player:e}));e.media||this.bufferAssetPlayer(e,r)}},{key:"bufferAssetPlayer",value:function(e,A){var t,n,r=e.interstitial,i=e.assetItem,o=e.assetId,a=this.schedule.findEventIndex(r.identifier),s=null==(t=this.schedule.items)?void 0:t[a];if(s){this.setBufferingItem(s),this.bufferingAsset=i;var g=this.getBufferingPlayer();if(g!==e){var c=(null==g?void 0:g.tracks)||(null==(n=this.detachedData)?void 0:n.tracks)||this.requiredTracks;if(r.appendInPlace&&i!==this.playingAsset){if(!e.tracks)return;if(c&&!YCe(c,e.tracks)){var l,u,I=new Error(xf(l=xf(u='Asset "'.concat(o,"\" SourceBuffer tracks ('")).call(u,jp(e.tracks),"') are not compatible with primary content tracks ('")).call(l,jp(c),"')")),h={fatal:!0,type:yCe.OTHER_ERROR,details:mCe.INTERSTITIAL_ASSET_ITEM_ERROR,error:I},C=r.findAssetIndex(i);return void this.handleAssetItemError(h,r,a,C,I.message)}}this.transferMediaTo(e,A)}}}},{key:"handleAssetItemError",value:function(e,A,t,n,r){if(e.details!==mCe.BUFFER_STALLED_ERROR){var i=A.assetList[n]||null,o=null;if(i){var a=this.getAssetPlayerQueueIndex(i.identifier);o=this.playerQueue[a]||null}var s=this.schedule.items,g=TCe({},e,{fatal:!1,errorAction:Nde(!0),asset:i,assetListIndex:n,event:A,schedule:s,scheduleIndex:t,player:o});if(this.warn("Asset item error: ".concat(e.error)),this.hls.trigger(DCe.INTERSTITIAL_ASSET_ERROR,g),e.fatal){var c=new Error(r);i&&(this.playingAsset!==i&&this.clearAssetPlayer(i.identifier,null),i.error=c),A.assetList.some((function(e){return!e.error}))?A.appendInPlace&&(A.error=c):A.error=c,this.primaryFallback(A)}}}},{key:"primaryFallback",value:function(e){var A=e.timelineStart,t=this.playingItem||this.waitingItem;if(this.updateSchedule(),t){var n,r,i,o;this.log(xf(n=xf(r=xf(i=xf(o='Fallback to primary from event "'.concat(e.identifier,'" start: ')).call(o,A," pos: ")).call(i,this.timelinePos," playing: ")).call(r,t?Ppe(t):""," error: ")).call(n,e.error)),e.appendInPlace&&(e.appendInPlace=!1,this.attachPrimary(A,null),this.flushFrontBuffer(A));var a=this.timelinePos;-1===a&&(a=this.hls.startPosition);var s=this.updateItem(t,a);if(!this.itemsMatch(t,s)){var g=this.schedule.findItemIndexAtTime(a);this.setSchedulePosition(g)}}else this.checkStart()}},{key:"onAssetListLoaded",value:function(e,A){var t,n=this,r=A.event,i=r.identifier,o=A.assetListResponse.ASSETS;if(this.schedule.hasEvent(i)){var a=r.timelineStart,s=0;o.forEach((function(e,A){var t=tD(e.DURATION);n.createAsset(r,A,s,a+s,t,e.URI),s+=t})),r.duration=s;var g=this.waitingItem,c=(null==g?void 0:g.event.identifier)===i;this.updateSchedule();var l=null==(t=this.bufferingItem)?void 0:t.event;if(c){var u,I=this.schedule.findEventIndex(i),h=null==(u=this.schedule.items)?void 0:u[I];h&&this.setBufferingItem(h),this.setSchedulePosition(I)}else if((null==l?void 0:l.identifier)===i&&l.appendInPlace){var C=r.assetList[0],d=this.getAssetPlayer(C.identifier),E=this.primaryMedia;C&&d&&E&&this.bufferAssetPlayer(d,E)}}}},{key:"onError",value:function(e,A){switch(A.details){case mCe.ASSET_LIST_PARSING_ERROR:case mCe.ASSET_LIST_LOAD_ERROR:case mCe.ASSET_LIST_LOAD_TIMEOUT:var t=A.interstitial;t&&this.primaryFallback(t)}}}]),t}(LCe),zpe=function(e){Yk(t,e);var A=Jk(t);function t(e,n,r){var i;return GE(this,t),(i=A.call(this,e,n,r,"subtitle-stream-controller",MCe)).currentTrackId=-1,i.tracksBuffered=[],i.mainDetails=null,i.registerListeners(),i}return NE(t,[{key:"onHandlerDestroying",value:function(){this.unregisterListeners(),MF(Pk(t.prototype),"onHandlerDestroying",this).call(this),this.mainDetails=null}},{key:"registerListeners",value:function(){MF(Pk(t.prototype),"registerListeners",this).call(this);var e=this.hls;e.on(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.on(DCe.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.on(DCe.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.on(DCe.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.on(DCe.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.on(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this)}},{key:"unregisterListeners",value:function(){MF(Pk(t.prototype),"unregisterListeners",this).call(this);var e=this.hls;e.off(DCe.LEVEL_LOADED,this.onLevelLoaded,this),e.off(DCe.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(DCe.SUBTITLE_TRACK_SWITCH,this.onSubtitleTrackSwitch,this),e.off(DCe.SUBTITLE_TRACK_LOADED,this.onSubtitleTrackLoaded,this),e.off(DCe.SUBTITLE_FRAG_PROCESSED,this.onSubtitleFragProcessed,this),e.off(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this)}},{key:"startLoad",value:function(e){this.stopLoad(),this.state=bfe,this.setInterval(500),this.nextLoadPosition=this.startPosition=this.lastCurrentTime=e,this.tick()}},{key:"onManifestLoading",value:function(){MF(Pk(t.prototype),"onManifestLoading",this).call(this),this.mainDetails=null}},{key:"onMediaDetaching",value:function(e,A){this.tracksBuffered=[],MF(Pk(t.prototype),"onMediaDetaching",this).call(this,e,A)}},{key:"onLevelLoaded",value:function(e,A){this.mainDetails=A.details}},{key:"onSubtitleFragProcessed",value:function(e,A){var t=A.frag,n=A.success;if(eEe(t)&&(this.fragPrevious=t),this.state=bfe,n){var r=this.tracksBuffered[this.currentTrackId];if(r){for(var i,o=t.start,a=0;a=r[a].start&&o<=r[a].end){i=r[a];break}var s=t.start+t.duration;i?i.end=s:(i={start:o,end:s},r.push(i)),this.fragmentTracker.fragBuffered(t),this.fragBufferedComplete(t,null),this.media&&this.tick()}}}},{key:"onBufferFlushing",value:function(e,A){var t=A.startOffset,n=A.endOffset;if(0===t&&n!==Number.POSITIVE_INFINITY){var r=n-1;if(r<=0)return;A.endOffsetSubtitles=Math.max(0,r),this.tracksBuffered.forEach((function(e){for(var A=0;A=g.length)&&u){this.log(xf(t=xf(n=xf(r=xf(i="Subtitle track ".concat(l," loaded [")).call(i,c.startSN,",")).call(r,c.endSN,"]")).call(n,c.lastPartSn?xf(o="[part-".concat(c.lastPartSn,"-")).call(o,c.lastPartIndex,"]"):"",",duration:")).call(t,c.totalduration)),this.mediaBuffer=this.mediaBufferTimeRanges;if(c.live||null!=(a=u.details)&&a.live){var I=this.mainDetails;if(c.deltaUpdateFailed||!I)return;var h,C=I.fragments[0];if(u.details)0===this.alignPlaylists(c,u.details,null==(h=this.levelLastLoaded)?void 0:h.details)&&C&&vfe(c,C.start);else c.hasProgramDateTime&&I.hasProgramDateTime?(Mfe(c,I),c.fragmentStart):C&&vfe(c,C.start)}if(u.details=c,this.levelLastLoaded=u,l===s)if(this.hls.trigger(DCe.SUBTITLE_TRACK_UPDATED,{details:c,id:l,groupId:A.groupId}),this.tick(),c.live&&!this.fragCurrent&&this.media&&this.state===bfe)Bde(null,c.fragments,this.media.currentTime,0)||(this.warn("Subtitle playlist not aligned with playback"),u.details=void 0)}}else this.warn("Subtitle tracks were reset while loading level ".concat(l))}},{key:"_handleFragmentLoadComplete",value:function(e){var A=this,t=e.frag,n=e.payload,r=t.decryptdata,i=this.hls;if(!this.fragContextChanged(t)&&n&&n.byteLength>0&&null!=r&&r.key&&r.iv&&PEe(r.method)){var o=performance.now();this.decrypter.decrypt(new Uint8Array(n),r.key.buffer,r.iv.buffer,HEe(r.method)).catch((function(e){throw i.trigger(DCe.ERROR,{type:yCe.MEDIA_ERROR,details:mCe.FRAG_DECRYPT_ERROR,fatal:!1,error:e,reason:e.message,frag:t}),e})).then((function(e){var A=performance.now();i.trigger(DCe.FRAG_DECRYPTED,{frag:t,payload:e,stats:{tstart:o,tdecrypt:A}})})).catch((function(e){var t;A.warn(xf(t="".concat(e.name,": ")).call(t,e.message)),A.state=bfe}))}}},{key:"doTick",value:function(){if(this.media){if(this.state===bfe){var e=this.currentTrackId,A=this.levels,t=null==A?void 0:A[e];if(!t||!A.length||!t.details)return;if(this.waitForLive(t))return;var n=this.config,r=this.getLoadPosition(),i=FEe.bufferedInfo(this.tracksBuffered[this.currentTrackId]||[],r,n.maxBufferHole),o=i.end,a=i.len,s=t.details;if(a>this.hls.maxBufferLength+s.levelTargetDuration)return;var g=s.fragments,c=g.length,l=s.edge,u=null,I=this.fragPrevious;if(ol-h?0:h;!(u=Bde(I,g,Math.max(g[0].start,o),C))&&I&&I.start>>=0)>n-1)throw new DOMException(xf(r=xf(i="Failed to execute '".concat(e,"' on 'TimeRanges': The index provided (")).call(i,t,") is greater than the maximum bound (")).call(r,n,")"));return A[t][e]};this.buffered={get length(){return A.length},end:function(e){return t("end",e,A.length)},start:function(e){return t("start",e,A.length)}}})),Xpe={42:225,92:233,94:237,95:243,96:250,123:231,124:247,125:209,126:241,127:9608,128:174,129:176,130:189,131:191,132:8482,133:162,134:163,135:9834,136:224,137:32,138:232,139:226,140:234,141:238,142:244,143:251,144:193,145:201,146:211,147:218,148:220,149:252,150:8216,151:161,152:42,153:8217,154:9473,155:169,156:8480,157:8226,158:8220,159:8221,160:192,161:194,162:199,163:200,164:202,165:203,166:235,167:206,168:207,169:239,170:212,171:217,172:249,173:219,174:171,175:187,176:195,177:227,178:205,179:204,180:236,181:210,182:242,183:213,184:245,185:123,186:125,187:92,188:94,189:95,190:124,191:8764,192:196,193:228,194:214,195:246,196:223,197:165,198:164,199:9475,200:197,201:229,202:216,203:248,204:9487,205:9491,206:9495,207:9499},qpe=function(e){return String.fromCharCode(Xpe[e]||e)},Vpe=15,Wpe=100,Zpe={17:1,18:3,21:5,22:7,23:9,16:11,19:12,20:14},$pe={17:2,18:4,21:6,22:8,23:10,19:13,20:15},eve={25:1,26:3,29:5,30:7,31:9,24:11,27:12,28:14},Ave={25:2,26:4,29:6,30:8,31:10,27:13,28:15},tve=["white","green","blue","cyan","red","yellow","magenta","black","transparent"],nve=function(){function e(){GE(this,e),this.time=null,this.verboseLevel=0}return NE(e,[{key:"log",value:function(e,A){if(this.verboseLevel>=e){var t,n,r="function"==typeof A?A():A;KCe.log(xf(t=xf(n="".concat(this.time," [")).call(n,e,"] ")).call(t,r))}}}]),e}(),rve=function(e){for(var A=[],t=0;tWpe&&(this.logger.log(3,"Too large cursor position "+this.pos),this.pos=Wpe)}},{key:"moveCursor",value:function(e){var A=this.pos+e;if(e>1)for(var t=this.pos+1;t=144&&this.backSpace();var t=qpe(e);this.pos>=Wpe?this.logger.log(0,(function(){return"Cannot insert "+e.toString(16)+" ("+t+") at position "+A.pos+". Skipping it!"})):(this.chars[this.pos].setChar(t,this.currPenState),this.moveCursor(1))}},{key:"clearFromPos",value:function(e){var A;for(A=e;A0&&(t=e?"["+A.join(" | ")+"]":A.join("\n")),t}},{key:"getTextAndFormat",value:function(){return this.rows}}]),e}(),gve=function(){function e(A,t,n){GE(this,e),this.chNr=void 0,this.outputFilter=void 0,this.mode=void 0,this.verbose=void 0,this.displayedMemory=void 0,this.nonDisplayedMemory=void 0,this.lastOutputScreen=void 0,this.currRollUpRow=void 0,this.writeScreen=void 0,this.cueStartTime=void 0,this.logger=void 0,this.chNr=A,this.outputFilter=t,this.mode=null,this.verbose=0,this.displayedMemory=new sve(n),this.nonDisplayedMemory=new sve(n),this.lastOutputScreen=new sve(n),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.logger=n}return NE(e,[{key:"reset",value:function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.outputFilter.reset(),this.currRollUpRow=this.displayedMemory.rows[14],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}},{key:"getHandler",value:function(){return this.outputFilter}},{key:"setHandler",value:function(e){this.outputFilter=e}},{key:"setPAC",value:function(e){this.writeScreen.setPAC(e)}},{key:"setBkgData",value:function(e){this.writeScreen.setBkgData(e)}},{key:"setMode",value:function(e){e!==this.mode&&(this.mode=e,this.logger.log(2,(function(){return"MODE="+e})),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=e)}},{key:"insertChars",value:function(e){for(var A=this,t=0;t=46,A.italics)A.foreground="white";else{var t=Math.floor(e/2)-16;A.foreground=["white","green","blue","cyan","red","yellow","magenta"][t]}this.logger.log(2,"MIDROW: "+$b(A)),this.writeScreen.setPen(A)}},{key:"outputDataUpdate",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],A=this.logger.time;null!==A&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue(this.cueStartTime,A,this.lastOutputScreen),e&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue(),this.cueStartTime=this.displayedMemory.isEmpty()?null:A):this.cueStartTime=A,this.lastOutputScreen.copy(this.displayedMemory))}},{key:"cueSplitAtTime",value:function(e){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,e,this.displayedMemory),this.cueStartTime=e))}}]),e}(),cve=function(){function e(A,t,n){GE(this,e),this.channels=void 0,this.currentChannel=0,this.cmdHistory={a:null,b:null},this.logger=void 0;var r=this.logger=new nve;this.channels=[null,new gve(A,t,r),new gve(A+1,n,r)]}return NE(e,[{key:"getHandler",value:function(e){return this.channels[e].getHandler()}},{key:"setHandler",value:function(e,A){this.channels[e].setHandler(A)}},{key:"addData",value:function(e,A){var t=this;this.logger.time=e;for(var n=function(e){var n=127&A[e],r=127&A[e+1],i=!1,o=null;if(0===n&&0===r)return"continue";t.logger.log(3,(function(){return"["+rve([A[e],A[e+1]])+"] -> ("+rve([n,r])+")"}));var a=t.cmdHistory;if(n>=16&&n<=31){if(function(e,A,t){return t.a===e&&t.b===A}(n,r,a))return lve(null,null,a),t.logger.log(3,(function(){return"Repeated command ("+rve([n,r])+") is dropped"})),"continue";lve(n,r,t.cmdHistory),(i=t.parseCmd(n,r))||(i=t.parseMidrow(n,r)),i||(i=t.parsePAC(n,r)),i||(i=t.parseBackgroundAttributes(n,r))}else lve(null,null,a);if(!i&&(o=t.parseChars(n,r))){var s=t.currentChannel;if(s&&s>0)t.channels[s].insertChars(o);else t.logger.log(2,"No channel found yet. TEXT-MODE?")}i||o||t.logger.log(2,(function(){return"Couldn't parse cleaned data "+rve([n,r])+" orig: "+rve([A[e],A[e+1]])}))},r=0;r=32&&A<=47)&&!((23===e||31===e)&&A>=33&&A<=35))return!1;var t=20===e||21===e||23===e?1:2,n=this.channels[t];return 20===e||21===e||28===e||29===e?32===A?n.ccRCL():33===A?n.ccBS():34===A?n.ccAOF():35===A?n.ccAON():36===A?n.ccDER():37===A?n.ccRU(2):38===A?n.ccRU(3):39===A?n.ccRU(4):40===A?n.ccFON():41===A?n.ccRDC():42===A?n.ccTR():43===A?n.ccRTD():44===A?n.ccEDM():45===A?n.ccCR():46===A?n.ccENM():47===A&&n.ccEOC():n.ccTO(A-32),this.currentChannel=t,!0}},{key:"parseMidrow",value:function(e,A){var t=0;if((17===e||25===e)&&A>=32&&A<=47){if((t=17===e?1:2)!==this.currentChannel)return this.logger.log(0,"Mismatch channel in midrow parsing"),!1;var n=this.channels[t];return!!n&&(n.ccMIDROW(A),this.logger.log(3,(function(){return"MIDROW ("+rve([e,A])+")"})),!0)}return!1}},{key:"parsePAC",value:function(e,A){var t;if(!((e>=17&&e<=23||e>=25&&e<=31)&&A>=64&&A<=127)&&!((16===e||24===e)&&A>=64&&A<=95))return!1;var n=e<=23?1:2;t=A>=64&&A<=95?1===n?Zpe[e]:eve[e]:1===n?$pe[e]:Ave[e];var r=this.channels[n];return!!r&&(r.setPAC(this.interpretPAC(t,A)),this.currentChannel=n,!0)}},{key:"interpretPAC",value:function(e,A){var t,n={color:null,italics:!1,indent:null,underline:!1,row:e};return t=A>95?A-96:A-64,n.underline=1==(1&t),t<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(t/2)]:t<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((t-16)/2),n}},{key:"parseChars",value:function(e,A){var t,n,r=null,i=null;(e>=25?(t=2,i=e-8):(t=1,i=e),i>=17&&i<=19)?(n=17===i?A+80:18===i?A+112:A+144,this.logger.log(2,(function(){return"Special char '"+qpe(n)+"' in channel "+t})),r=[n]):e>=32&&e<=127&&(r=0===A?[e]:[e,A]);return r&&this.logger.log(3,(function(){return"Char codes = "+rve(r).join(",")})),r}},{key:"parseBackgroundAttributes",value:function(e,A){var t;if(!((16===e||24===e)&&A>=32&&A<=47)&&!((23===e||31===e)&&A>=45&&A<=47))return!1;var n={};16===e||24===e?(t=Math.floor((A-32)/2),n.background=tve[t],A%2==1&&(n.background=n.background+"_semi")):45===A?n.background="transparent":(n.foreground="black",47===A&&(n.underline=!0));var r=e<=23?1:2;return this.channels[r].setBkgData(n),!0}},{key:"reset",value:function(){for(var e=0;e1?A-1:0),n=1;n100)throw new Error("Position must be between 0 and 100.");B=e,this.hasBeenReset=!0}})),Iy(a,"positionAlign",r({},s,{get:function(){return Q},set:function(e){var A=n(e);if(!A)throw new SyntaxError("An invalid or illegal string was specified.");Q=A,this.hasBeenReset=!0}})),Iy(a,"size",r({},s,{get:function(){return p},set:function(e){if(e<0||e>100)throw new Error("Size must be between 0 and 100.");p=e,this.hasBeenReset=!0}})),Iy(a,"align",r({},s,{get:function(){return v},set:function(e){var A=n(e);if(!A)throw new SyntaxError("An invalid or illegal string was specified.");v=A,this.hasBeenReset=!0}})),a.displayState=void 0}return i.prototype.getCueAsHTML=function(){return self.WebVTT.convertCueToDOMTree(self,this.text)},i}(),Ive=function(){function e(){GE(this,e)}return NE(e,[{key:"decode",value:function(e,A){if(!e)return"";if("string"!=typeof e)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(e))}}]),e}();function hve(e){function A(e,A,t,n){return 3600*(0|e)+60*(0|A)+(0|t)+tD(n||0)}var t=e.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);return t?tD(t[2])>59?A(t[2],t[3],0,t[4]):A(t[1],t[2],t[3],t[4]):null}var Cve=function(){function e(){GE(this,e),this.values=Object.create(null)}return NE(e,[{key:"set",value:function(e,A){this.get(e)||""===A||(jY(this)[e]=A)}},{key:"get",value:function(e,A,t){return t?this.has(e)?jY(this)[e]:A[t]:this.has(e)?jY(this)[e]:A}},{key:"has",value:function(e){return e in jY(this)}},{key:"alt",value:function(e,A,t){for(var n=0;n=0&&t<=100)return this.set(e,t),!0}return!1}}]),e}();function dve(e,A,t,n){var r=n?e.split(n):[e];for(var i in r)if("string"==typeof r[i]){var o=r[i].split(t);if(2===o.length)A(o[0],o[1])}}var Eve=new uve(0,0,""),fve="middle"===Eve.align?"middle":"center";function Bve(e,A,t){var n=e;function r(){var A=hve(e);if(null===A)throw new Error("Malformed timestamp: "+n);return e=e.replace(/^[^\sa-zA-Z-]+/,""),A}function i(){e=e.replace(/^\s+/,"")}if(i(),A.startTime=r(),i(),"--\x3e"!==Xp(e).call(e,0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+n);e=Xp(e).call(e,3),i(),A.endTime=r(),i(),function(e,A){var n=new Cve;dve(e,(function(e,A){var r;switch(e){case"region":for(var i=t.length-1;i>=0;i--)if(t[i].id===A){n.set(e,t[i].region);break}break;case"vertical":n.alt(e,A,["rl","lr"]);break;case"line":r=A.split(","),n.integer(e,r[0]),n.percent(e,r[0])&&n.set("snapToLines",!1),n.alt(e,r[0],["auto"]),2===r.length&&n.alt("lineAlign",r[1],["start",fve,"end"]);break;case"position":r=A.split(","),n.percent(e,r[0]),2===r.length&&n.alt("positionAlign",r[1],["start",fve,"end","line-left","line-right","auto"]);break;case"size":n.percent(e,A);break;case"align":n.alt(e,A,["start",fve,"end","left","right"])}}),/:/,/\s/),A.region=n.get("region",null),A.vertical=n.get("vertical","");var r=n.get("line","auto");"auto"===r&&-1===Eve.line&&(r=-1),A.line=r,A.lineAlign=n.get("lineAlign","start"),A.snapToLines=n.get("snapToLines",!0),A.size=n.get("size",100),A.align=n.get("align",fve);var i=n.get("position","auto");"auto"===i&&50===Eve.position&&(i="start"===A.align||"left"===A.align?0:"end"===A.align||"right"===A.align?100:50),A.position=i}(e,A)}function Qve(e){return e.replace(//gi,"\n")}var pve=function(){function e(){GE(this,e),this.state="INITIAL",this.buffer="",this.decoder=new Ive,this.regionList=[],this.cue=null,this.oncue=void 0,this.onparsingerror=void 0,this.onflush=void 0}return NE(e,[{key:"parse",value:function(e){var A=this;function t(){var e=A.buffer,t=0;for(e=Qve(e);t2&&void 0!==arguments[2]?arguments[2]:0;return Xp(e).call(e,t,t+A.length)===A};function mve(e,A,t){return _pe(e.toString())+_pe(A.toString())+_pe(t)}function Dve(e,A,t,n,r,i,o){var a,s,g=new pve,c=lD(a=jde(new Uint8Array(e))).call(a).replace(vve,"\n").split("\n"),l=[],u=A?function(e){return rQe(e,nQe,1/(arguments.length>1&&void 0!==arguments[1]?arguments[1]:1))}(A.baseTime,A.timescale):0,I="00:00.000",h=0,C=0,d=!0;g.oncue=function(e){var i,o=t[n],a=t.ccOffset,g=(h-u)/9e4;if(null!=o&&o.new&&(void 0!==C?a=t.ccOffset=o.start:function(e,A,t){var n=e[A],r=e[n.prevCC];if(!r||!r.new&&n.new)return e.ccOffset=e.presentationOffset=n.start,void(n.new=!1);for(;null!=(i=r)&&i.new;){var i;e.ccOffset+=n.start-r.start,n.new=!1,r=e[(n=r).prevCC]}e.presentationOffset=t}(t,n,g)),g){if(!A)return void(s=new Error("Missing initPTS for VTT MPEGTS"));a=g-t.presentationOffset}var c=e.endTime-e.startTime,I=gQe(9e4*(e.startTime+a-C),9e4*r)/9e4;e.startTime=Math.max(I,0),e.endTime=Math.max(I+c,0);var d=lD(i=e.text).call(i);e.text=decodeURIComponent(encodeURIComponent(d)),e.id||(e.id=mve(e.startTime,e.endTime,d)),e.endTime>0&&l.push(e)},g.onparsingerror=function(e){s=e},g.onflush=function(){s?o(s):i(l)},c.forEach((function(e){if(d){if(yve(e,"X-TIMESTAMP-MAP=")){d=!1,Xp(e).call(e,16).split(",").forEach((function(e){yve(e,"LOCAL:")?I=Xp(e).call(e,6):yve(e,"MPEGTS:")&&(h=Uv(Xp(e).call(e,7)))}));try{C=function(e){var A=Uv(Xp(e).call(e,-3)),t=Uv(Xp(e).call(e,-6,-4)),n=Uv(Xp(e).call(e,-9,-7)),r=e.length>9?Uv(e.substring(0,zp(e).call(e,":"))):0;if(!(QCe(A)&&QCe(t)&&QCe(n)&&QCe(r)))throw Error("Malformed X-TIMESTAMP-MAP: Local:".concat(e));return A+=1e3*t,A+=6e4*n,A+36e5*r}(I)/1e3}catch(WtA){s=WtA}return}""===e&&(d=!1)}g.parse(e+"\n")})),g.flush()}var wve="stpp.ttml.im1t",Rve=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,kve=/^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,Sve={left:"start",center:"center",right:"end",start:"start",end:"end"};function Mve(e,A,t,n){var r=cEe(new Uint8Array(e),["mdat"]);if(0!==r.length){var i=Jp(r).call(r,(function(e){return jde(e)})),o=function(e,A){return rQe(e,A,1/(arguments.length>2&&void 0!==arguments[2]?arguments[2]:1),arguments.length>3&&void 0!==arguments[3]&&arguments[3])}(A.baseTime,1,A.timescale);try{i.forEach((function(e){return t(function(e,A){var t,n,r=(new DOMParser).parseFromString(e,"text/xml"),i=r.getElementsByTagName("tt")[0];if(!i)throw new Error("Invalid ttml");var o={frameRate:30,subFrameRate:1,frameRateMultiplier:0,tickRate:0},a=wF(t=jp(o)).call(t,(function(e,A){return e[A]=i.getAttribute("ttp:".concat(A))||o[A],e}),{}),s="preserve"!==i.getAttribute("xml:space"),g=_ve(Gve(i,"styling","style")),c=_ve(Gve(i,"layout","region")),l=Gve(i,"body","[begin]");return jv(n=Jp([]).call(l,(function(e){var t=bve(e,s);if(!t||!e.hasAttribute("begin"))return null;var n=Nve(e.getAttribute("begin"),a),r=Nve(e.getAttribute("dur"),a),i=Nve(e.getAttribute("end"),a);if(null===n)throw Fve(e);if(null===i){if(null===r)throw Fve(e);i=n+r}var o=new uve(n-A,i-A,t);o.id=mve(o.startTime,o.endTime,o.text);var l=function(e,A,t){var n="http://www.w3.org/ns/ttml#styling",r=null,i=["displayAlign","textAlign","color","backgroundColor","fontSize","fontFamily"],o=null!=e&&e.hasAttribute("style")?e.getAttribute("style"):null;o&&t.hasOwnProperty(o)&&(r=t[o]);return wF(i).call(i,(function(t,i){var o=Tve(A,n,i)||Tve(e,n,i)||Tve(r,n,i);return o&&(t[i]=o),t}),{})}(c[e.getAttribute("region")],g[e.getAttribute("style")],g),u=l.textAlign;if(u){var I=Sve[u];I&&(o.lineAlign=I),o.align=u}return TCe(o,l),o}))).call(n,(function(e){return null!==e}))}(e,o))}))}catch(WtA){n(WtA)}}else n(new Error("Could not parse IMSC1 mdat"))}function Gve(e,A,t){var n=e.getElementsByTagName(A)[0];return n?Xp([]).call(n.querySelectorAll(t)):[]}function _ve(e){return wF(e).call(e,(function(e,A){var t=A.getAttribute("xml:id");return t&&(e[t]=A),e}),{})}function bve(e,A){var t;return wF(t=Xp([]).call(e.childNodes)).call(t,(function(e,t,n){var r,i;return"br"===t.nodeName&&n?e+"\n":null!=(r=t.childNodes)&&r.length?bve(t,A):A?e+lD(i=t.textContent).call(i).replace(/\s+/g," "):e+t.textContent}),"")}function Tve(e,A,t){return e&&e.hasAttributeNS(A,t)?e.getAttributeNS(A,t):null}function Fve(e){return new Error("Could not parse ttml timestamp ".concat(e))}function Nve(e,A){if(!e)return null;var t=hve(e);return null===t&&(Rve.test(e)?t=function(e,A){var t=Rve.exec(e),n=(0|t[4])+(0|t[5])/A.subFrameRate;return 3600*(0|t[1])+60*(0|t[2])+(0|t[3])+n/A.frameRate}(e,A):kve.test(e)&&(t=function(e,A){var t=kve.exec(e),n=Number(t[1]);switch(t[2]){case"h":return 3600*n;case"m":return 60*n;case"ms":return 1e3*n;case"f":return n/A.frameRate;case"t":return n/A.tickRate}return n}(e,A))),t}var Lve=function(){function e(A,t){GE(this,e),this.timelineController=void 0,this.cueRanges=[],this.trackName=void 0,this.startTime=null,this.endTime=null,this.screen=null,this.timelineController=A,this.trackName=t}return NE(e,[{key:"dispatchCue",value:function(){null!==this.startTime&&(this.timelineController.addCues(this.trackName,this.startTime,this.endTime,this.screen,this.cueRanges),this.startTime=null)}},{key:"newCue",value:function(e,A,t){(null===this.startTime||this.startTime>e)&&(this.startTime=e),this.endTime=A,this.screen=t,this.timelineController.createCaptionsTrack(this.trackName)}},{key:"reset",value:function(){this.cueRanges=[],this.startTime=null}}]),e}(),Uve=function(){function e(A){GE(this,e),this.hls=void 0,this.media=null,this.config=void 0,this.enabled=!0,this.Cues=void 0,this.textTracks=[],this.tracks=[],this.initPTS=[],this.unparsedVttFrags=[],this.captionsTracks={},this.nonNativeCaptionsTracks={},this.cea608Parser1=void 0,this.cea608Parser2=void 0,this.lastCc=-1,this.lastSn=-1,this.lastPartIndex=-1,this.prevCC=-1,this.vttCCs={ccOffset:0,presentationOffset:0,0:{start:0,prevCC:-1,new:!0}},this.captionsProperties=void 0,this.hls=A,this.config=A.config,this.Cues=A.config.cueHandler,this.captionsProperties={textTrack1:{label:this.config.captionsTextTrack1Label,languageCode:this.config.captionsTextTrack1LanguageCode},textTrack2:{label:this.config.captionsTextTrack2Label,languageCode:this.config.captionsTextTrack2LanguageCode},textTrack3:{label:this.config.captionsTextTrack3Label,languageCode:this.config.captionsTextTrack3LanguageCode},textTrack4:{label:this.config.captionsTextTrack4Label,languageCode:this.config.captionsTextTrack4LanguageCode}},A.on(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),A.on(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),A.on(DCe.MANIFEST_LOADING,this.onManifestLoading,this),A.on(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),A.on(DCe.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),A.on(DCe.FRAG_LOADING,this.onFragLoading,this),A.on(DCe.FRAG_LOADED,this.onFragLoaded,this),A.on(DCe.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),A.on(DCe.FRAG_DECRYPTED,this.onFragDecrypted,this),A.on(DCe.INIT_PTS_FOUND,this.onInitPtsFound,this),A.on(DCe.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),A.on(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this)}return NE(e,[{key:"destroy",value:function(){var e=this.hls;e.off(DCe.MEDIA_ATTACHING,this.onMediaAttaching,this),e.off(DCe.MEDIA_DETACHING,this.onMediaDetaching,this),e.off(DCe.MANIFEST_LOADING,this.onManifestLoading,this),e.off(DCe.MANIFEST_LOADED,this.onManifestLoaded,this),e.off(DCe.SUBTITLE_TRACKS_UPDATED,this.onSubtitleTracksUpdated,this),e.off(DCe.FRAG_LOADING,this.onFragLoading,this),e.off(DCe.FRAG_LOADED,this.onFragLoaded,this),e.off(DCe.FRAG_PARSING_USERDATA,this.onFragParsingUserdata,this),e.off(DCe.FRAG_DECRYPTED,this.onFragDecrypted,this),e.off(DCe.INIT_PTS_FOUND,this.onInitPtsFound,this),e.off(DCe.SUBTITLE_TRACKS_CLEARED,this.onSubtitleTracksCleared,this),e.off(DCe.BUFFER_FLUSHING,this.onBufferFlushing,this),this.hls=this.config=this.media=null,this.cea608Parser1=this.cea608Parser2=void 0}},{key:"initCea608Parsers",value:function(){var e=new Lve(this,"textTrack1"),A=new Lve(this,"textTrack2"),t=new Lve(this,"textTrack3"),n=new Lve(this,"textTrack4");this.cea608Parser1=new cve(1,e,A),this.cea608Parser2=new cve(3,t,n)}},{key:"addCues",value:function(e,A,t,n,r){for(var i,o,a,s,g=!1,c=r.length;c--;){var l=r[c],u=(i=l[0],o=l[1],a=A,s=t,Math.min(o,s)-Math.max(i,a));if(u>=0&&(l[0]=Math.min(l[0],A),l[1]=Math.max(l[1],t),g=!0,u/(t-A)>.5))return}if(g||r.push([A,t]),this.config.renderTextTracksNatively){var I=this.captionsTracks[e];this.Cues.newCue(I,A,t,n)}else{var h=this.Cues.newCue(null,A,t,n);this.hls.trigger(DCe.CUES_PARSED,{type:"captions",cues:h,track:e})}}},{key:"onInitPtsFound",value:function(e,A){var t=this,n=A.frag,r=A.id,i=A.initPTS,o=A.timescale,a=this.unparsedVttFrags;r===kCe&&(this.initPTS[n.cc]={baseTime:i,timescale:o}),a.length&&(this.unparsedVttFrags=[],a.forEach((function(e){t.onFragLoaded(DCe.FRAG_LOADED,e)})))}},{key:"getExistingTrack",value:function(e,A){var t=this.media;if(t)for(var n=0;nn.cc||s.trigger(DCe.SUBTITLE_FRAG_PROCESSED,{success:!1,frag:n,error:A})}))}else o.push(e)}},{key:"_fallbackToIMSC1",value:function(e,A){var t=this,n=this.tracks[e.level];n.textCodec||Mve(A,this.initPTS[e.cc],(function(){n.textCodec=wve,t._parseIMSC1(e,A)}),(function(){n.textCodec="wvtt"}))}},{key:"_appendCues",value:function(e,A){var t=this.hls;if(this.config.renderTextTracksNatively){var n=this.textTracks[A];if(!n||"disabled"===n.mode)return;e.forEach((function(e){return Rpe(n,e)}))}else{var r=this.tracks[A];if(!r)return;var i=r.default?"default":"subtitles"+A;t.trigger(DCe.CUES_PARSED,{type:"subtitles",cues:e,track:i})}}},{key:"onFragDecrypted",value:function(e,A){A.frag.type===MCe&&this.onFragLoaded(DCe.FRAG_LOADED,A)}},{key:"onSubtitleTracksCleared",value:function(){this.tracks=[],this.captionsTracks={}}},{key:"onFragParsingUserdata",value:function(e,A){if(this.enabled&&this.config.enableCEA708Captions){var t=A.frag,n=A.samples;if(t.type!==kCe||"NONE"!==this.closedCaptionsForLevel(t))for(var r=0;r=16?a--:a++;var h=Qve(lD(s).call(s)),C=mve(A,t,h);null!=e&&null!=(u=e.cues)&&u.getCueById(C)||((i=new c(A,t,h)).id=C,i.line=l+1,i.align="left",i.position=10+Math.min(80,10*Math.floor(8*a/32)),g.push(i))}return e&&g.length&&(qD(g).call(g,(function(e,A){return"auto"===e.line||"auto"===A.line?0:e.line>8&&A.line>8?A.line-e.line:e.line-A.line})),g.forEach((function(A){return Rpe(e,A)}))),g}},Jve=/^age:\s*[\d.]+\s*$/im,Ove=function(){function e(A){GE(this,e),this.xhrSetup=void 0,this.requestTimeout=void 0,this.retryTimeout=void 0,this.retryDelay=void 0,this.config=null,this.callbacks=null,this.context=null,this.loader=null,this.stats=void 0,this.xhrSetup=A&&A.xhrSetup||null,this.stats=new Vde,this.retryDelay=0}return NE(e,[{key:"destroy",value:function(){this.callbacks=null,this.abortInternal(),this.loader=null,this.config=null,this.context=null,this.xhrSetup=null}},{key:"abortInternal",value:function(){var e=this.loader;self.clearTimeout(this.requestTimeout),self.clearTimeout(this.retryTimeout),e&&(e.onreadystatechange=null,e.onprogress=null,4!==e.readyState&&(this.stats.aborted=!0,e.abort()))}},{key:"abort",value:function(){var e;this.abortInternal(),null!=(e=this.callbacks)&&e.onAbort&&this.callbacks.onAbort(this.stats,this.context,this.loader)}},{key:"load",value:function(e,A,t){if(this.stats.loading.start)throw new Error("Loader can only be used once.");this.stats.loading.start=self.performance.now(),this.context=e,this.config=A,this.callbacks=t,this.loadInternal()}},{key:"loadInternal",value:function(){var e=this,A=this.config,t=this.context;if(A&&t){var n=this.loader=new self.XMLHttpRequest,r=this.stats;r.loading.first=0,r.loaded=0,r.aborted=!1;var i=this.xhrSetup;i?Op.resolve().then((function(){if(e.loader===n&&!e.stats.aborted)return i(n,t.url)})).catch((function(A){if(e.loader===n&&!e.stats.aborted)return n.open("GET",t.url,!0),i(n,t.url)})).then((function(){e.loader!==n||e.stats.aborted||e.openAndSendXhr(n,t,A)})).catch((function(A){e.callbacks.onError({code:n.status,text:A.message},t,n,r)})):this.openAndSendXhr(n,t,A)}}},{key:"openAndSendXhr",value:function(e,A,t){e.readyState||e.open("GET",A.url,!0);var n=A.headers,r=t.loadPolicy,i=r.maxTimeToFirstByteMs,o=r.maxLoadTimeMs;if(n)for(var a in n)e.setRequestHeader(a,n[a]);A.rangeEnd&&e.setRequestHeader("Range","bytes="+A.rangeStart+"-"+(A.rangeEnd-1)),e.onreadystatechange=this.readystatechange.bind(this),e.onprogress=this.loadprogress.bind(this),e.responseType=A.responseType,self.clearTimeout(this.requestTimeout),t.timeout=i&&QCe(i)?i:o,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),t.timeout),e.send()}},{key:"readystatechange",value:function(){var e=this.context,A=this.loader,t=this.stats;if(e&&A){var n=A.readyState,r=this.config;if(!t.aborted&&n>=2&&(0===t.loading.first&&(t.loading.first=Math.max(self.performance.now(),t.loading.start),r.timeout!==r.loadPolicy.maxLoadTimeMs&&(self.clearTimeout(this.requestTimeout),r.timeout=r.loadPolicy.maxLoadTimeMs,this.requestTimeout=self.setTimeout(this.loadtimeout.bind(this),r.loadPolicy.maxLoadTimeMs-(t.loading.first-t.loading.start)))),4===n)){self.clearTimeout(this.requestTimeout),A.onreadystatechange=null,A.onprogress=null;var i=A.status,o="text"===A.responseType?A.responseText:null;if(i>=200&&i<300){var a=null!=o?o:A.response;if(null!=a){t.loading.end=Math.max(self.performance.now(),t.loading.first);var s="arraybuffer"===A.responseType?a.byteLength:a.length;if(t.loaded=t.total=s,t.bwEstimate=8e3*t.total/(t.loading.end-t.loading.first),!this.callbacks)return;var g=this.callbacks.onProgress;if(g&&g(t,e,a,A),!this.callbacks)return;var c={url:A.responseURL,data:a,code:i};return void this.callbacks.onSuccess(c,t,e,A)}}var l,u=r.loadPolicy.errorRetry;if(Rde(u,t.retry,!1,{url:e.url,data:void 0,code:i}))this.retry(u);else KCe.error(xf(l="".concat(i," while loading ")).call(l,e.url)),this.callbacks.onError({code:i,text:A.statusText},e,A,t)}}}},{key:"loadtimeout",value:function(){if(this.config){var e=this.config.loadPolicy.timeoutRetry;if(Rde(e,this.stats.retry,!0))this.retry(e);else{var A;KCe.warn("timeout while loading ".concat(null==(A=this.context)?void 0:A.url));var t=this.callbacks;t&&(this.abortInternal(),t.onTimeout(this.stats,this.context,this.loader))}}}},{key:"retry",value:function(e){var A,t,n,r,i=this.context,o=this.stats;this.retryDelay=Dde(e,o.retry),o.retry++,KCe.warn(xf(A=xf(t=xf(n=xf(r="".concat(status?"HTTP Status "+status:"Timeout"," while loading ")).call(r,null==i?void 0:i.url,", retrying ")).call(n,o.retry,"/")).call(t,e.maxNumRetry," in ")).call(A,this.retryDelay,"ms")),this.abortInternal(),this.loader=null,self.clearTimeout(this.retryTimeout),this.retryTimeout=self.setTimeout(this.loadInternal.bind(this),this.retryDelay)}},{key:"loadprogress",value:function(e){var A=this.stats;A.loaded=e.loaded,e.lengthComputable&&(A.total=e.total)}},{key:"getCacheAge",value:function(){var e=null;if(this.loader&&Jve.test(this.loader.getAllResponseHeaders())){var A=this.loader.getResponseHeader("age");e=A?tD(A):null}return e}},{key:"getResponseHeader",value:function(e){return this.loader&&new RegExp("^".concat(e,":\\s*[\\d.]+\\s*$"),"im").test(this.loader.getAllResponseHeaders())?this.loader.getResponseHeader(e):null}}]),e}();NCe(NCe({autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,ignoreDevicePixelRatio:!1,maxDevicePixelRatio:Number.POSITIVE_INFINITY,preferManagedMediaSource:!0,initialLiveManifestSize:1,maxBufferLength:30,backBufferLength:1/0,frontBufferFlushThreshold:1/0,maxBufferSize:6e7,maxBufferHole:.1,highBufferWatchdogPeriod:2,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveSyncOnStallIncrease:1,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,maxLiveSyncPlaybackRate:1,liveDurationInfinity:!1,liveBackBufferLength:null,maxMaxBufferLength:600,enableWorker:!0,workerPath:null,enableSoftwareAES:!0,startLevel:void 0,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:Ove,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,licenseXhrSetup:void 0,licenseResponseCallback:void 0,abrController:Ede,bufferController:TQe,capLevelController:LQe,errorController:Fde,fpsController:wpe,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrEwmaDefaultEstimateMax:5e6,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0,emeEnabled:!1,widevineLicenseUrl:void 0,drmSystems:{},drmSystemOptions:{},requestMediaKeySystemAccessFunc:lfe,testBandwidth:!0,progressive:!1,lowLatencyMode:!0,cmcd:void 0,enableDateRangeMetadataCues:!0,enableEmsgMetadataCues:!0,enableEmsgKLVMetadata:!1,enableID3MetadataCues:!0,enableInterstitialPlayback:!0,interstitialAppendInPlace:!0,interstitialLiveLookAhead:10,useMediaCapabilities:!0,certLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:null,errorRetry:null}},keyLoadPolicy:{default:{maxTimeToFirstByteMs:8e3,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"},errorRetry:{maxNumRetry:8,retryDelayMs:1e3,maxRetryDelayMs:2e4,backoff:"linear"}}},manifestLoadPolicy:{default:{maxTimeToFirstByteMs:1/0,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},playlistLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:2,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},fragLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:12e4,timeoutRetry:{maxNumRetry:4,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:6,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},steeringManifestLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:2e4,timeoutRetry:{maxNumRetry:2,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:1,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},interstitialAssetListLoadPolicy:{default:{maxTimeToFirstByteMs:1e4,maxLoadTimeMs:3e4,timeoutRetry:{maxNumRetry:0,retryDelayMs:0,maxRetryDelayMs:0},errorRetry:{maxNumRetry:0,retryDelayMs:1e3,maxRetryDelayMs:8e3}}},manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3},{cueHandler:Hve,enableWebVTT:!0,enableIMSC1:!0,enableCEA708Captions:!0,captionsTextTrack1Label:"English",captionsTextTrack1LanguageCode:"en",captionsTextTrack2Label:"Spanish",captionsTextTrack2LanguageCode:"es",captionsTextTrack3Label:"Unknown CC",captionsTextTrack3LanguageCode:"",captionsTextTrack4Label:"Unknown CC",captionsTextTrack4LanguageCode:"",renderTextTracksNatively:!0}),{},{subtitleStreamController:zpe,subtitleTrackController:Gpe,timelineController:Uve,audioStreamController:RQe,audioTrackController:SQe,emeController:mpe,cmcdController:Qpe,contentSteeringController:ppe,interstitialsController:Ope}),function(){var e=function(){if("undefined"!=typeof self)return self.VTTCue||self.TextTrackCue}();try{e&&new e(0,Number.POSITIVE_INFINITY,"")}catch(P7){return Number.MAX_VALUE}Number.POSITIVE_INFINITY}();var zve=vue(Jp(Yve=hF(DCe)).call(Yve,(function(e){var A=rF(e,2),t=A[0],n=A[1];return["HLS_".concat(t),n]}))),jve=Ff(Ff(Ff({},eF),zve),{},{TIME_SHIFT_CHANGE:"timeShiftChange",REFRESH_CLICK:"refreshClick"});function Xve(){return(new DOMParser).parseFromString('',"image/svg+xml").firstChild}var qve=FR.POSITIONS,Vve=function(e){Yk(t,e);var A=Jk(t);function t(){return GE(this,t),A.apply(this,arguments)}return NE(t,[{key:"afterCreate",value:function(){this.config.disable||(this.appendChild(".xgplayer-icon",this.icons.refresh),this._initEvents())}},{key:"registerIcons",value:function(){return{refresh:{icon:Xve,class:"xgplayer-refresh-svg"}}}},{key:"destroy",value:function(){this.unbind(["touchend","click"],this._handleRefresh)}},{key:"render",value:function(){var e=this.player.config.i18nManager;return'\n \n
\n
\n
'.concat(e.getText("REFRESH"),"
\n
\n ")}},{key:"_handleRefresh",value:function(e){var A=this.player;if(A){var t,n;if(e.preventDefault(),e.stopPropagation(),A.addClass("xgplayer-is-enter"),A.pause(),A)A.emit(jve.REFRESH_CLICK),null===(t=this.player)||void 0===t||null===(t=t.config)||void 0===t||null===(t=t.veplayer)||void 0===t||t.retry(),null===(n=this.player)||void 0===n||null===(n=n.plugins)||void 0===n||null===(n=n.error)||void 0===n||n.hideError();A.once(vw,(function(){A.removeClass("xgplayer-is-enter")}))}}},{key:"_initEvents",value:function(){this._handleRefresh=Bue(this._handleRefresh.bind(this),200);var e="mobile"===cw.device?"touchend":"click";this.bind(e,this._handleRefresh),this.show()}}],[{key:"pluginName",get:function(){return"refresh"}},{key:"defaultConfig",get:function(){return{position:qve.CONTROLS_LEFT,index:1,disable:!1}}}]),t}(FR),Wve=function(e){Yk(t,e);var A=Jk(t);function t(){var e,n;GE(this,t);for(var r=arguments.length,i=new Array(r),o=0;o\n \n '}},{key:"_tick",value:function(){var e=this;clearTimeout(this._pollTimer),this._renderPanel(),this._pollTimer=window.setTimeout((function(){e._tick()}),this.config.interval)}},{key:"_getStats",value:function(){var e;return null===(e=this._playPlugin)||void 0===e?void 0:e.getStats()}},{key:"_getPanelData",value:function(){var e,A,t,n,r,i=this._getStats()||{},o="".concat(this._streamType,"_live"),a=this._playPlugin.softDecode,s=[(e=Ff(Ff({},i),{},{format:o}),{rows:[{key:"format",labelTextKey:"FORMAT",value:null!==(A=null==e?void 0:e.format)&&void 0!==A?A:"-"},{key:"fps",labelTextKey:"FPS",value:Zve(e.fps,(function(e){return"".concat(e," fps")}))},{key:"bitrate",labelTextKey:"BITRATE",value:Zve(e.bitrate,(function(e){return"".concat((e/1e3).toFixed(2)," kbps")}))},{key:"gop",labelTextKey:"GOP",value:Zve(e.gop,(function(e){return"".concat(e," frames")}))},{key:"resolution",labelTextKey:"RESOLUTION",value:xf(t="".concat(Zve(e.width)," * ")).call(t,Zve(e.height))},{key:"encodeType",labelTextKey:"ENCODE_TYPE",value:null!==(n=e.encodeType)&&void 0!==n?n:"-"},{key:"bufferEnd",labelTextKey:"BUFFER_END",value:Zve(Number(null===(r=e.bufferEnd)||void 0===r?void 0:r.toFixed(2)))},{key:"currentTime",labelTextKey:"CURRENT_TIME",value:Zve(e.currentTime,(function(e){return e.toFixed(4)+"s"}))}]})];return a&&s.push(function(e){return{titleTextKey:"DECODE_INFO",rows:[{key:"decodeEfficiency",labelTextKey:"DECODE_EFFICIENCY",value:Zve(e.decodeFps,(function(e){return e+" frames/s"}))},{key:"decodeCost",labelTextKey:"DECODE_COST",value:Zve(e.decodeFps,(function(e){return(e?(1e3/e).toFixed():0)+"ms"}))}]}}(i)),s}},{key:"_renderPanel",value:function(){var e=this,A=this._getPanelData(),t=this.root;t&&(t.innerHTML="",A.forEach((function(A){e._renderGroup(t,A)})))}},{key:"_renderGroup",value:function(e,A){var t=this,n=A.title,r=A.titleTextKey,i=A.rows,o=this.player.config.i18nManager;if(n||r){var a,s=this._genTitleDom(null!==(a=o.getText(r))&&void 0!==a?a:n);e.appendChild(s)}i.forEach((function(A){var n=t._genRowDom(A);e.appendChild(n)}))}},{key:"_genTitleDom",value:function(e){var A=nw.createDom("xg-live-panel","",void 0,"veplayer-live-panel-row"),t=nw.createDom("xg-live-panel",e,void 0,"veplayer-live-panel-row-title");return A.appendChild(t),A}},{key:"_genRowDom",value:function(e){var A=this.player.config.i18nManager,t=nw.createDom("veplayer-live-panel-row","",void 0,"veplayer-live-panel-row"),n=nw.createDom("xg-live-panel",A.getText(e.labelTextKey),void 0,"veplayer-live-panel-row-label");t.appendChild(n);var r=nw.createDom("xg-live-panel",e.value);return t.appendChild(r),t}}],[{key:"pluginName",get:function(){return"infoPanel"}},{key:"defaultConfig",get:function(){return{visible:!1,interval:500}}}]),t}(FR),Aye="https://www.volcengine.com/docs/6469/138655#鏃ュ織涓婃姤",tye=Ff(Ff({},MU),{},{INVALID_PARAMETER:"The imported parameter is empty, please pass in necessary parameters such as the stream address or check if the license is valid",INVALID_LOGGER:"Log options not configured correctly. Please refer to this document ".concat(Aye," to configure the logs."),EMPTY_RTM_FALLBACK_PARAMETER:"Fallback URL for RTM is not configured. Please set enableFallback: false to disable fallback, or configure fallbackUrl for FLV and HLS formats based on the browser environment.",FORMAT:"format",FPS:"fps",BITRATE:"bitrate",GOP:"gop",RESOLUTION:"resolution",ENCODE_TYPE:"encodeType",BUFFER_END:"bufferEnd",CURRENT_TIME:"currentTime",DECODE_EFFICIENCY:"efficiency",DECODE_COST:"cost",DECODE_INFO:"decodeInfo",REFRESH:"refresh",BASE_LICENSE_RTM_NOT_SUPPORT:"Professional license is required to play RTM stream",LICENSE_EXPIRED_RTM:"license has expired, RTM stream is not supported, please update license and try again"}),nye=Ff(Ff({},GU),{},{INVALID_PARAMETER:"鍏ュ弬涓虹┖鎴栨棤鏁堬紝璇蜂紶鍏ユ祦鍦板潃绛夊繀瑕佸弬鏁版垨妫€鏌� License 鏄惁閰嶇疆姝g‘",INVALID_LOGGER:"鏈纭厤缃川閲忔棩蹇楀弬鏁�, 璇峰弬鑰� ".concat(Aye," 閰嶇疆"),EMPTY_RTM_FALLBACK_PARAMETER:"鏈厤缃� RTM 闄嶇骇鍦板潃 fallbackUrl锛岃璁剧疆 enableFallback: false 鍙栨秷闄嶇骇鎴栨牴鎹祻瑙堝櫒鐜閰嶇疆 FLV銆丠LS 鏍煎紡闄嶇骇鍦板潃",FORMAT:"鏍煎紡",FPS:"甯х巼",BITRATE:"鐮佺巼",GOP:"GOP",RESOLUTION:"瑙嗛鍒嗚鲸鐜�",ENCODE_TYPE:"缂栫爜鏂瑰紡",BUFFER_END:"Buffer 姘翠綅",CURRENT_TIME:"鎾斁杩涘害",DECODE_EFFICIENCY:"瑙g爜鏁堢巼",DECODE_COST:"瑙g爜娑堣€�",DECODE_INFO:"杞В淇℃伅",REFRESH:"鍒锋柊",BASE_LICENSE_RTM_NOT_SUPPORT:"鎾斁 RTM 娴侀渶瑕佷笓涓氱増 license",LICENSE_EXPIRED_RTM:"license 宸茶繃鏈燂紝璇锋洿鏂� license 鍚庨噸璇�"}),rye=new Uint8Array(16);function iye(){if(!$ve&&!($ve="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return $ve(rye)}for(var oye=[],aye=0;aye<256;++aye){var sye;oye.push(Xp(sye=(aye+256).toString(16)).call(sye,1))}var gye={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function cye(e,A,t){if(gye.randomUUID&&!A&&!e)return gye.randomUUID();var n=(e=e||{}).random||(e.rng||iye)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,A){t=t||0;for(var r=0;r<16;++r)A[t+r]=n[r];return A}return function(e){var A=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return oye[e[A+0]]+oye[e[A+1]]+oye[e[A+2]]+oye[e[A+3]]+"-"+oye[e[A+4]]+oye[e[A+5]]+"-"+oye[e[A+6]]+oye[e[A+7]]+"-"+oye[e[A+8]]+oye[e[A+9]]+"-"+oye[e[A+10]]+oye[e[A+11]]+oye[e[A+12]]+oye[e[A+13]]+oye[e[A+14]]+oye[e[A+15]]}(n)}var lye,uye="veplayer_live_device_id",Iye="veplayer_live_user_id",hye=function(e){return Math.floor((9*Math.random()+1)*Math.pow(10,e-1)).toString()},Cye=function(e){var A=tU.getUrlObject(e);return A?null!=A&&A.searchParams.get("_session_id")?e:tU.appendSearchParams(e,{_session_id:dye()}):null!=e?e:""},dye=function(){return cye().replace(/-/g,"")+"."+Date.now()+"."+function(e){for(var A=0,t=0,n=(e+="").length,r=0;r0x7fffffffffff||A<-0x800000000000)&&(A&=0xffffffffffff);return A<0&&(A+=0x7ffffffffffff),A}(cye().replace(/-/g,""))},Eye="hls",fye="ll-hls",Bye="flv",Qye="rtm",pye="ll-flv",vye="dash",yye=(LE(lye={},"widevine","com.widevine.alpha"),LE(lye,"playready","com.microsoft.playready"),LE(lye,"fairplay","com.apple.fps"),lye),mye=tU.isMMSSupported,Dye=tU.isMseSupported;function wye(){return cw.os.isIos}function Rye(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:A.H264;return(wye()?mye:Dye)(e)}var kye,Sye=function(e){return e.Error="Error",e.Stall="Stall",e}(Sye||{}),Mye=function(){function e(A){GE(this,e),LE(this,"nextProtocol",void 0),LE(this,"preProtocol",void 0),LE(this,"protocolStrategy",void 0),LE(this,"_fallback",void 0),this._fallback=A.fallback}return NE(e,[{key:"_getKindFallbackStrategy",value:function(e){var A,t,n,r,i;return null!==(A=null!==(t=null===(n=this._fallback)||void 0===n||null===(n=n.fallbackStrategy)||void 0===n||null===(n=n[this.protocolType])||void 0===n?void 0:n[e])&&void 0!==t?t:null===(r=this._fallback)||void 0===r||null===(r=r.fallbackStrategy)||void 0===r||null===(r=r.all)||void 0===r?void 0:r[e])&&void 0!==A?A:null===(i=this.defaultFallbackStrategy)||void 0===i?void 0:i[e]}},{key:"errorFallbackStrategy",get:function(){return this._getKindFallbackStrategy("Error")}},{key:"stallFallbackStrategy",get:function(){return this._getKindFallbackStrategy("Stall")}},{key:"shouldFallbackWhenError",value:function(e){var A,t,n,r;return null!==(A=this.errorFallbackStrategy)&&void 0!==A&&A.shouldFallback?null===(n=this.errorFallbackStrategy)||void 0===n?void 0:n.shouldFallback(this.protocolType,e):!(null===(t=this.errorFallbackStrategy)||void 0===t||!t.excludeList)&&!PT(r=this.errorFallbackStrategy.excludeList).call(r,e.error.errorCode)}}]),e}(),Gye=tU.appendSearchParams,_ye=function(){var e=aE(iE().mark((function e(t){var n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return h=null==t||null===(n=t.flv)||void 0===n?void 0:n.enableLowLatency,C=null===(r=null==t||null===(i=t.flv)||void 0===i||null===(i=i.lowLatency)||void 0===i?void 0:i.enableFrameChasing)||void 0===r||r,d=null!==(o=null==t||null===(a=t.flv)||void 0===a||null===(a=a.lowLatency)||void 0===a?void 0:a.abrPts)&&void 0!==o?o:"-800",e.next=5,eY(t);case 5:return E=e.sent,e.next=8,rY(t,E);case 8:if(e.sent&&(I=E===A.H265?$x():Zx(),u=qx(t)),Rye("unknown"===E?A.H264:E)&&(u=wye()?Vx(t):qx(t)),u||I){e.next=13;break}return e.abrupt("return",{});case 13:return e.next=15,Op.all([(null===(s=u)||void 0===s?void 0:s.module)&&FL(u.module).catch((function(){})),(null===(g=I)||void 0===g?void 0:g.module)&&FL(I.module).catch((function(){}))]);case 15:return f=e.sent,B=rF(f,2),Q=B[0],(null==(p=B[1])?void 0:p.XGVideoPlugin)&&(null===(c=I)||void 0===c||null===(l=c.afterLoad)||void 0===l||l.call(c,null==p?void 0:p.XGVideoPlugin)),v=oY([u,I]),y=[],h&&(v.url=Gye(t.url,{abr_pts:d})),Q&&(y.push(Q.FlvPlugin),h&&C&&y.push(Q.Adaptive)),e.abrupt("return",{options:v,plugins:y});case 25:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}(),bye=function(){return(bye=sy||function(e){for(var A,t=1,n=arguments.length;t0)&&!(n=i.next()).done;)o.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return o}function Fye(){for(var e=[],A=0;A0x7fffffffffff||A<-0x800000000000)&&(A&=0xffffffffffff);return A<0&&(A+=0x7ffffffffffff),A},Xye=(function(e,A){var t;t=function(){function e(){for(var e=0,A={};e-1&&(A=Xp(e).call(e,0,zp(e).call(e,"Build/")))}));else if("ios"===e||"mac"===e||"windows"===e)if(this.isNewIpad())A="iPad";else{var t=navigator.userAgent.replace("Mozilla/5.0 (",""),n=zp(t).call(t,";");A=-1===n?"":Xp(t).call(t,0,n)}}catch(r){return lD(A).call(A)}return lD(A).call(A)},e.prototype.isNewIpad=function(){return void 0!==this.userAgent&&"MacIntel"===navigator.platform&&"number"==typeof navigator.maxTouchPoints&&navigator.maxTouchPoints>1},e}(),tme={cn:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1gz22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k"},nme={cn:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z4az28z1gz1hz1gz1cz18z1nz1gz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz21z1ez18z1jz1gz49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz1kz18z1jz1gz24z18z49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",my:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z49z19z1bz49z1kz27z4az1jz18z20z1iz1mz1dz1dz1gz1az1cz4az1az1mz1k"},rme="5.3.1",ime=(Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z1cz1bz1gz22z1mz20z49z20z18z1lz1ez1cz20z21z4az1hz21"),Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1az1mz20z1cz4az1hz21"),Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1jz1mz18z1bz1cz20z4az1hz21"),Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz1fz1cz18z22z1kz18z1nz49z1az1mz20z1c"),Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz4fz49z1bz18z22z18z4az24z1mz1jz1az1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz1bz18z22z18z49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz22z1cz21z22z1cz20z49z1cz24z1cz1lz22z49z1gz1lz21z1nz1cz1az22z1mz20"),function(){function e(e,A){this.collector=e,this.config=A,this.eventNameWhiteList=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","__bav_slide"],this.paramsNameWhiteList=["$inactive","$inline","$target_uuid_list","$source_uuid","$is_spider","$source_id","$is_first_time","_staging_flag"],this.regStr=new RegExp("^[a-zA-Z0-9][a-z0-9A-Z_.-]{1,255}$")}return e.prototype.checkVerify=function(e){var A=this;if(!e||!e.length)return!1;var t=e[0];if(!t)return!1;var n=t.events,r=t.header;if(!n||!n.length)return!1;var i=!0;return n.forEach((function(e){if(!e)return i=!1,void(e.checkEvent="浜嬩欢寮傚父");A.checkEventName(e.event)||(i=!1,e.checkEvent="浜嬩欢鍚嶄笉鑳戒互 $ or __寮€澶�"),A.checkEventParams(e.params)||(i=!1,e.checkParams="灞炴€у悕涓嶈兘浠� $ or __寮€澶�")})),this.checkEventParams(r)||(i=!1),i},e.prototype.checkEventName=function(e){return!!e&&this.calculate(e,"event")},e.prototype.checkEventParams=function(e){var A=e;if("string"==typeof e&&(A=JSON.parse(A)),!jp(A).length)return!0;for(var t in A)return!(!this.calculate(t,"params")||"string"==typeof A[t]&&A[t].length>1024&&(console.warn("params: "+t+" can not over 1024 byte, please check;"),1));return!0},e.prototype.calculate=function(e,A){var t;return-1!==zp(t="event"===A?this.eventNameWhiteList:this.paramsNameWhiteList).call(t,e)||!new RegExp("^\\$").test(e)&&!new RegExp("^__").test(e)||(console.warn(("event"===A?"event":"params")+" name: "+e+" can not start with $ or __, pleace check;"),!1)},e}());!function(e){e.Init="init",e.Config="config",e.Start="start",e.Ready="ready",e.UnReady="un-ready",e.TokenComplete="token-complete",e.TokenStorage="token-storage",e.TokenFetch="token-fetch",e.TokenError="token-error",e.ConfigUuid="config-uuid",e.ConfigWebId="config-webid",e.ConfigDiD="config-device-id",e.ConfigDomain="config-domain",e.CustomWebId="custom-webid",e.TokenChange="token-change",e.TokenReset="token-reset",e.ConfigTransform="config-transform",e.EnvTransform="env-transform",e.SessionReset="session-reset",e.SessionResetTime="session-reset-time",e.SetSessionId="set-session-id",e.Event="event",e.Events="events",e.EventNow="event-now",e.CleanEvents="clean-events",e.BeconEvent="becon-event",e.SubmitBefore="submit-before",e.SubmitScuess="submit-scuess",e.SubmitAfter="submit-after",e.SubmitError="submit-error",e.SubmitVerify="submit-verify",e.CustomHeader="custom-request-header",e.SDKInnerError="sdk-inner-error",e.SDKRunTimeError="sdk-run-time-error",e.LogSetting="log-setting",e.LogSettingReady="log-setting-ready",e.Stay="stay",e.ResetStay="reset-stay",e.StayReady="stay-ready",e.SetStay="set-stay",e.RouteChange="route-change",e.RouteReady="route-ready",e.Ab="ab",e.AbVar="ab-var",e.AbAllVars="ab-all-vars",e.AbConfig="ab-config",e.AbExternalVersion="ab-external-version",e.AbVersionChangeOn="ab-version-change-on",e.AbVersionChangeOff="ab-version-change-off",e.AbOpenLayer="ab-open-layer",e.AbCloseLayer="ab-close-layer",e.AbReady="ab-ready",e.AbComplete="ab-complete",e.AbTimeout="ab-timeout",e.Profile="profile",e.ProfileSet="profile-set",e.ProfileSetOnce="profile-set-once",e.ProfileUnset="profile-unset",e.ProfileIncrement="profile-increment",e.ProfileAppend="profile-append",e.ProfileClear="profile-clear",e.Autotrack="autotrack",e.AutotrackReady="autotrack-ready",e.CepReady="cep-ready",e.TracerReady="tracer-ready",e.sessionRecord="session-record",e.SessionRecordStart="session-record-start",e.SessionRecordPause="session-record-pause",e.SessionRecordEnd="session-record-end",e.SessionRecordReport="session-record-report",e.DestoryInstance="destory-instance",e.VisualCollectReady="visual-collect-ready",e.VisualApiReady="visual-api-ready",e.VisualApiUpdate="visual-api-update"}(Uye||(Uye={})),function(e){e.DEBUGGER_MESSAGE="debugger-message",e.DEBUGGER_MESSAGE_SDK="debugger-message-sdk",e.DEBUGGER_MESSAGE_FETCH="debugger-message-fetch",e.DEBUGGER_MESSAGE_FETCH_RESULT="debugger-message-fetch-result",e.DEBUGGER_MESSAGE_EVENT="debugger-message-event",e.DEVTOOL_WEB_READY="devtool-web-ready"}(Kye||(Kye={}));var ome=Uye,ame=void 0,sme=(new Date).getTimezoneOffset(),gme=Uv(""+-sme/60,10),cme=60*sme,lme=function(){function e(e,A){var t=this;this.is_first_time=!0,this.configPersist=!1,this.initConfig=A,this.collect=e;var n=new Ame(A.app_id,A.cookie_domain||"",A.cookie_expire||7776e6).init();this.eventCheck=new ime(e,A);var r="__tea_cache_first_"+A.app_id;this.configKey="__tea_cache_config_"+A.app_id,this.sessionStorage=new eme(!1,"session"),this.localStorage=new eme(!1,"local"),A.configPersist&&(this.configPersist=!0,this.storage=1===A.configPersist?this.sessionStorage:this.localStorage);var i=this.localStorage.getItem(r);i&&1==i?this.is_first_time=!1:(this.is_first_time=!0,this.localStorage.setItem(r,"1")),this.envInfo={user:{user_unique_id:ame,user_type:ame,user_id:ame,user_is_auth:ame,user_is_login:ame,device_id:ame,web_id:ame,ip_addr_id:ame,user_unique_id_type:ame},header:{app_id:ame,app_name:ame,app_install_id:ame,install_id:ame,app_package:ame,app_channel:ame,app_version:ame,ab_version:ame,os_name:n.os_name,os_version:n.os_version,device_model:n.device_model,ab_client:ame,traffic_type:ame,client_ip:ame,device_brand:ame,os_api:ame,access:ame,language:n.language,region:ame,app_language:ame,app_region:ame,creative_id:n.utm.creative_id,ad_id:n.utm.ad_id,campaign_id:n.utm.campaign_id,log_type:ame,rnd:ame,platform:n.platform,sdk_version:rme,sdk_lib:"js",province:ame,city:ame,timezone:gme,tz_offset:cme,tz_name:ame,sim_region:ame,carrier:ame,resolution:n.screen_width+"x"+n.screen_height,browser:n.browser,browser_version:n.browser_version,referrer:n.referrer,referrer_host:n.referrer_host,width:n.screen_width,height:n.screen_height,screen_width:n.screen_width,screen_height:n.screen_height,utm_term:n.utm.utm_term,utm_content:n.utm.utm_content,utm_source:n.utm.utm_source,utm_medium:n.utm.utm_medium,utm_campaign:n.utm.utm_campaign,tracer_data:$b(n.utm.tracer_data),custom:n.network_type?{network_type:n.network_type}:{},wechat_unionid:ame,wechat_openid:ame}},this.ab_version="",this.evtParams={},this.reportErrorCallback=function(){},this.isLast=!1,this.setCustom(n),this.initDomain(),this.initABData(),this.collect.on("route-change",(function(e){t.changeReferInfo(e.config)}))}return e.prototype.initDomain=function(){var e=this.initConfig.channel_domain;if(e)this.domain=e;else{var A=this.initConfig.channel;this.domain=Hye(nme[A])}},e.prototype.setDomain=function(e){this.domain=e},e.prototype.getDomain=function(){return this.domain},e.prototype.initABData=function(){var e="__tea_sdk_ab_version_"+this.initConfig.app_id,A=null;if(this.initConfig.ab_cross){var t=this.localStorage.getCookie(e,this.initConfig.ab_cookie_domain);A=t?JSON.parse(t):null}else A=this.localStorage.getItem(e);this.setAbCache(A)},e.prototype.setAbCache=function(e){this.ab_cache=e},e.prototype.getAbCache=function(){return this.ab_cache},e.prototype.setAbVersion=function(e){this.ab_version=e},e.prototype.getAbVersion=function(){return this.ab_version},e.prototype.clearAbCache=function(){this.ab_version="",this.ab_cache={}},e.prototype.getUrl=function(e){var A="";switch(e){case"event":A="/list";break;case"webid":A="/webid";break;case"tobid":A="/tobid"}var t="";return this.initConfig.caller&&(t="?sdk_version=5.3.1&sdk_name=web&app_id="+this.initConfig.app_id+"&caller="+this.initConfig.caller),""+this.getDomain()+A+t},e.prototype.setCustom=function(e){if(e&&e.latest_data&&e.latest_data.isLast)for(var A in delete e.latest_data.isLast,this.isLast=!0,e.latest_data)this.envInfo.header.custom[A]=e.latest_data[A]},e.prototype.changeReferInfo=function(e){var A=e;this.envInfo.header.referrer=A.referrer;var t="";try{t=new Xb(A.referrer).host}catch(n){}this.envInfo.header.referrer_host=t||this.envInfo.header.referrer_host},e.prototype.set=function(e){var A=this;jp(e).forEach((function(t){void 0!==e[t]&&null!==e[t]||A.delete(t);try{A.eventCheck.calculate(t,"config")}catch(P7){}if("traffic_type"===t&&A.isLast&&(A.envInfo.header.custom.$latest_traffic_source_type=e[t]),"evtParams"===t)A.evtParams=bye(bye({},A.evtParams||{}),e.evtParams||{});else if("_staging_flag"===t)A.evtParams=bye(bye({},A.evtParams||{}),{_staging_flag:e._staging_flag});else if("reportErrorCallback"===t&&"function"==typeof e[t])A.reportErrorCallback=e[t];else{var n,r,i,o="",a="";if(zp(t).call(t,".")>-1){var s=t.split(".");o=s[0],a=s[1]}o?"user"===o||"header"===o?A.envInfo[o][a]=e[t]:(A.envInfo.header.custom[a]=e[t],A.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 娣诲姞浜咰ustom",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:"custom"})):Object.hasOwnProperty.call(A.envInfo.user,t)?(zp(n=["user_type","ip_addr_id"]).call(n,t)>-1?A.envInfo.user[t]=e[t]?Number(e[t]):e[t]:zp(r=["user_id","web_id","user_unique_id","user_unique_id_type"]).call(r,t)>-1?A.envInfo.user[t]=e[t]?String(e[t]):e[t]:zp(i=["user_is_auth","user_is_login"]).call(i,t)>-1?A.envInfo.user[t]=Boolean(e[t]):"device_id"===t&&(A.envInfo.user[t]=e[t]),A.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 淇敼浜嗗叕鍏卞弬鏁�",level:"info",time:Date.now(),infoType:"sdk",secType:"USER",common:t})):Object.hasOwnProperty.call(A.envInfo.header,t)?(A.envInfo.header[t]=e[t],A.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 淇敼浜嗗叕鍏卞弬鏁�",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:t})):(A.envInfo.header.custom[t]=e[t],A.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 娣诲姞浜咰ustom",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:"custom"}))}}))},e.prototype.get=function(e){try{return e?"evtParams"===e?this.evtParams:"reportErrorCallback"===e?this[e]:Object.hasOwnProperty.call(this.envInfo.user,e)?this.envInfo.user[e]:Object.hasOwnProperty.call(this.envInfo.header,e)?this.envInfo.header[e]:JSON.parse($b(this.envInfo[e])):JSON.parse($b(this.envInfo))}catch(A){console.log("get config stringify error "),this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message})}},e.prototype.setStore=function(e){try{if(!this.configPersist)return;var A=this.storage.getItem(this.configKey)||{};if(A&&jp(e).length){var t=sy(e,A);this.storage.setItem(this.configKey,t)}}catch(n){console.log("setStore error"),this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:n.message})}},e.prototype.getStore=function(){try{if(!this.configPersist)return null;var e=this.storage.getItem(this.configKey)||{};return e&&jp(e).length?e:null}catch(A){return this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message}),null}},e.prototype.delete=function(e){try{if(!this.configPersist)return;var A=this.storage.getItem(this.configKey)||{};A&&Object.hasOwnProperty.call(A,e)&&(delete A[e],this.storage.setItem(this.configKey,A))}catch(t){this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:t.message}),console.log("delete error")}},e}(),ume=function(){function e(e,A){this.isLog=A||!1,this.name=e||""}return e.prototype.info=function(e){this.isLog&&console.log("%c %s","color: yellow; background-color: black;","[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.warn=function(e){this.isLog&&console.warn("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.error=function(e){this.isLog&&console.error("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.throw=function(e){throw this.error(this.name),new Error(e)},e}(),Ime=function(){function e(){this.spiderBot=["Baiduspider","googlebot","360Spider","haosouspider","YoudaoBot","Sogou News Spider","Yisouspider","Googlebot","Headless","Applebot","Bingbot","PetalBot"]}return e.prototype.checkSpider=function(e){if(!e.enable_spider)return!1;var A=window.navigator.userAgent;if(!A)return!0;var t=!1;return this.spiderBot.forEach((function(e){-1!==zp(A).call(A,e)&&(t=!0)})),t},e}(),hme=function(){function e(e,A){this.collect=e,this.native=A}var A=e.prototype;return A.bridgeInject=function(){try{return!!this.native&&(AppLogBridge?(console.log("AppLogBridge is injected"),!0):(console.log("AppLogBridge is not inject"),!1))}catch(e){return console.log("AppLogBridge is not inject"),!1}},A.bridgeReady=function(){var e=this;return new Op((function(A,t){try{e.bridgeInject()?AppLogBridge.hasStarted((function(e){console.log("AppLogBridge is started? : "+e),e?A(!0):t(!1)})):t(!1)}catch(n){console.log("AppLogBridge, error:"+$b(n.stack)),t(!1)}}))},A.setNativeAppId=function(e){try{AppLogBridge.setNativeAppId($b(e)),console.log("change bridge appid, event report with appid: "+e)}catch(A){console.error("setNativeAppId error")}},A.setConfig=function(e){var A=this;try{jp(e).forEach((function(t){"user_unique_id"===t?A.setUserUniqueId(e[t]):e[t]?A.addHeaderInfo(t,e[t]):A.removeHeaderInfo(t)}))}catch(t){console.error("setConfig error")}},A.setUserUniqueId=function(e){try{AppLogBridge.setUserUniqueId(e)}catch(A){console.error("setUserUniqueId error")}},A.addHeaderInfo=function(e,A){try{AppLogBridge.addHeaderInfo(e,A)}catch(t){console.error("addHeaderInfo error")}},A.setHeaderInfo=function(e){try{AppLogBridge.setHeaderInfo($b(e))}catch(A){console.error("setHeaderInfo error")}},A.removeHeaderInfo=function(e){try{AppLogBridge.removeHeaderInfo(e)}catch(A){console.error("removeHeaderInfo error")}},A.reportPv=function(e){this.onEventV3("predefine_pageview",e)},A.onEventV3=function(e,A){try{AppLogBridge.onEventV3(e,A),this.collect.emit(DebuggerMesssge.DEBUGGER_MESSAGE,{type:DebuggerMesssge.DEBUGGER_MESSAGE_EVENT,info:"bridge鍩嬬偣涓婃姤",time:Date.now(),data:[{events:[{event:e,params:A}]}],code:200,status:"success"})}catch(t){console.error("onEventV3 error")}},A.profileSet=function(e){try{AppLogBridge.profileSet(e)}catch(A){console.error("profileSet error")}},A.profileSetOnce=function(e){try{AppLogBridge.profileSetOnce(e)}catch(A){console.error("profileSetOnce error")}},A.profileIncrement=function(e){try{AppLogBridge.profileIncrement(e)}catch(A){console.error("profileIncrement error")}},A.profileUnset=function(e){try{AppLogBridge.profileUnset(e)}catch(A){console.error("profileUnset error")}},A.profileAppend=function(e){try{AppLogBridge.profileAppend(e)}catch(A){console.error("profileAppend error")}},e}(),Cme=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var A=16*Math.random()|0;return("x"===e?A:3&A|8).toString(16)}))},dme=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.storage=new eme(!1,"session"),this.sessionKey="__tea_session_id_"+A.app_id,this.expireTime=A.expireTime||18e5,this.disableSession=A.disable_session,this.disableSessionTimeCheck=A.disable_session_check,this.disableSession||(this.setSessionId(),this.collect.on(ome.SessionReset,(function(e){t.resetSessionId(e)})),this.collect.on(ome.SessionResetTime,(function(){t.updateSessionIdTime()})))},e.prototype.updateSessionIdTime=function(){var e=this.storage.getItem(this.sessionKey);if(e&&e.sessionId){var A=e.timestamp;Date.now()-A>this.expireTime?e={sessionId:Cme(),timestamp:Date.now()}:e.timestamp=Date.now(),this.storage.setItem(this.sessionKey,e),this.resetExpTime()}},e.prototype.setSessionId=function(){var e=this,A=this.storage.getItem(this.sessionKey);A&&A.sessionId?A.timestamp=Date.now():A={sessionId:Cme(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,A),this.disableSessionTimeCheck||(this.sessionExp=setInterval((function(){e.checkEXp()}),this.expireTime))},e.prototype.getSessionId=function(){var e=this.storage.getItem(this.sessionKey);return this.disableSession?"":e&&e.sessionId?e.sessionId:""},e.prototype.resetExpTime=function(){var e=this;this.sessionExp&&(clearInterval(this.sessionExp),this.sessionExp=setInterval((function(){e.checkEXp()}),this.expireTime))},e.prototype.resetSessionId=function(e){var A={sessionId:e||Cme(),timestamp:Date.now()};this.storage.setItem(this.sessionKey,A)},e.prototype.checkEXp=function(){var e=this.storage.getItem(this.sessionKey);e&&e.sessionId&&Date.now()-e.timestamp+30>=this.expireTime&&(e={sessionId:Cme(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,e))},e}(),Eme=function(){function e(){this.eventLimit=50,this.enable_ttwebid=!1,this.eventCache=[],this.beconEventCache=[]}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.config=A,this.configManager=e.configManager,this.eventCheck=new ime(e,A),this.cacheStorgae=new eme(!0),this.localStorage=new eme(!1),this.maxReport=A.max_report||10,this.reportTime=A.reportTime||A.report_time||30,this.timeout=A.timeout||1e5,this.enable_ttwebid=A.enable_ttwebid,this.reportUrl=A.report_url||this.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+this.configManager.get("app_id"),this.beconKey="__tea_cache_events_becon_"+this.configManager.get("app_id"),this.abKey="__tea_sdk_ab_version_"+this.configManager.get("app_id"),this.refer_key="__tea_cache_refer_"+this.configManager.get("app_id"),this.pageId=Cme(),this.collect.on(ome.Ready,(function(){t.reportAll(!1)})),this.collect.on(ome.ConfigDomain,(function(){t.reportUrl=t.configManager.getUrl("event")})),this.collect.on(ome.Event,(function(e){t.event(e)})),this.collect.on(ome.BeconEvent,(function(e){t.beconEvent(e)})),this.collect.on(ome.CleanEvents,(function(){t.reportAll(!1)}));var n=this.linster();this.collect.on(ome.DestoryInstance,(function(){n&&n()}))},e.prototype.linster=function(){var e,A=this,t=function(){A.reportAll(!0)};window.addEventListener("unload",t,!1),e=t,Jye()?window.addEventListener("pagehide",e,!1):window.addEventListener("beforeunload",e,!1);var n=function(){"hidden"===document.visibilityState&&A.reportAll(!0)};return document.addEventListener("visibilitychange",n,!1),function(){window.removeEventListener("unload",t),window.removeEventListener("pagehide",t,!1),window.removeEventListener("beforeunload",t,!1),document.removeEventListener("visibilitychange",n,!1)}},e.prototype.reportAll=function(e){this.report(e),this.reportBecon()},e.prototype.event=function(e){var A=this;try{if(this.collect.destroy)return;if(this.collect.sdkStop)return;if(this.config.enable_ios_sendbeacon&&Jye())return void this.beconEvent(e);var t=this.cacheStorgae.getItem(this.eventKey)||[],n=e;this.config.batch_event&&(n=this.batchEvent(e));var r=Fye(n,t);if(this.cacheStorgae.setItem(this.eventKey,r),this.reportTimeout&&clearTimeout(this.reportTimeout),r.length>=this.maxReport)this.report(!1);else{var i=this.reportTime;this.reportTimeout=setTimeout((function(){A.report(!1),A.reportTimeout=null}),i)}}catch(o){this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:o.message,infoType:"sdk"})}},e.prototype.beconEvent=function(e){if(!this.collect.destroy&&!this.collect.sdkStop){var A=Fye(e,this.cacheStorgae.getItem(this.beconKey)||[]);this.cacheStorgae.setItem(this.beconKey,A),this.collect.tokenManager.getReady()&&this.collect.sdkReady&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(A)),!0))}},e.prototype.reportBecon=function(){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var e=this.cacheStorgae.getItem(this.beconKey)||[];e&&e.length&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(e)),!0))}},e.prototype.report=function(e){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var A=this.cacheStorgae.getItem(this.eventKey)||[];A.length&&(this.cacheStorgae.removeItem(this.eventKey),this.config.batch_event?this.send([A],e):this.sliceEvent(A,e))}},e.prototype.batchEvent=function(e){var A=[];if(e.length>this.eventLimit)for(var t=0;tthis.eventLimit)for(var t=0;t>A/4).toString(10):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e)}().replace(/-/g,"")).call(e,0,19)},Bme=function(){function e(){this.cacheToken={},this.enableCookie=!1,this.enable_ttwebid=!1,this.enableCustomWebid=!1}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.config=A,this.configManager=this.collect.configManager,this.storage=new eme(!1),this.tokenKey="__tea_cache_tokens_"+A.app_id,this.enable_ttwebid=A.enable_ttwebid,this.enableCustomWebid=A.enable_custom_webid,this.collect.on(ome.ConfigUuid,(function(e){t.setUuid(e)})),this.collect.on(ome.ConfigWebId,(function(e){t.setWebId(e)})),this.collect.on(ome.ConfigDiD,(function(e){t.setDeviceId(e)})),this.enableCookie=A.cross_subdomain,this.expiresTime=A.cookie_expire||6048e5,this.cookieDomain=A.cookie_domain||"",this.checkStorage()},e.prototype.checkStorage=function(){var e=this;if(this.enableCookie){var A=this.storage.getCookie(this.tokenKey,this.cookieDomain);this.cacheToken=A&&"string"==typeof A?JSON.parse(A):{}}else this.cacheToken=this.storage.getItem(this.tokenKey)||{};this.tokenType=this.cacheToken&&this.cacheToken._type_?this.cacheToken._type_:"default","custom"!==this.tokenType||this.enableCustomWebid?this.enableCustomWebid?this.collect.on(ome.CustomWebId,(function(){e.tokenReady=!0,e.collect.emit(ome.TokenComplete)})):this.checkEnv()||(this.enable_ttwebid?this.completeTtWid(this.cacheToken):this.check()):this.remoteWebid()},e.prototype.check=function(){this.cacheToken&&this.cacheToken.web_id?this.complete(this.cacheToken):this.config.disable_webid?this.complete({web_id:fme(),user_unique_id:this.configManager.get("user_unique_id")||fme()}):this.remoteWebid()},e.prototype.checkEnv=function(){var e=window.navigator.userAgent;if(-1!==zp(e).call(e,"miniProgram")||-1!==zp(e).call(e,"MiniProgram")){var A=zye(window.location.href);return!(!A||!A.Web_ID||(this.complete({web_id:""+A.Web_ID,user_unique_id:this.configManager.get("user_unique_id")||""+A.Web_ID}),0))}return!1},e.prototype.remoteWebid=function(){var e=this,A=this.configManager.getUrl("webid"),t={app_key:this.config.app_key,app_id:this.config.app_id,url:location.href,user_agent:window.navigator.userAgent,referer:document.referrer,user_unique_id:""};this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戣捣WebID璇锋眰",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"}),this.collect.requestManager.useRequest({url:A,data:t,success:function(A){var t;if(A&&0===A.e)t=A.web_id,e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰鎴愬姛",logType:"fetch",level:"info",time:Date.now(),data:A,infoType:"sdk"});else{var n=fme();t=n,e.collect.configManager.set({localWebId:n}),e.collect.emit(ome.TokenError),e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰杩斿洖鍊煎紓甯革紝閲囩敤鏈湴鐢熸垚",logType:"fetch",level:"warn",time:Date.now(),data:A,infoType:"sdk"}),e.collect.logger.warn("appid: "+e.config.app_id+" get webid error, use local webid~")}e.complete({web_id:e.configManager.get("web_id")||t,user_unique_id:e.configManager.get("user_unique_id")||t})},fail:function(){var A=fme();e.complete({web_id:e.configManager.get("web_id")||A,user_unique_id:e.configManager.get("user_unique_id")||A}),e.collect.configManager.set({localWebId:A}),e.collect.emit(ome.TokenError),e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰缃戠粶寮傚父锛岄噰鐢ㄦ湰鍦扮敓鎴�",logType:"fetch",level:"error",time:Date.now(),data:{localWebId:A},infoType:"sdk"}),e.collect.logger.warn("appid: "+e.config.app_id+", get webid error, use local webid~")},timeout:3e5})},e.prototype.complete=function(e){var A=e.web_id,t=e.user_unique_id,n=e.device_id;if(e.timestamp=Date.now(),this.collect.configManager.set({web_id:A,user_unique_id:t}),this.config.enable_device_id){var r=this.configManager.get("device_id")||n||A;this.collect.configManager.set({device_id:r}),e=bye(bye({},e),{device_id:r})}else(null==e?void 0:e.device_id)&&delete e.device_id;this.setStorage(e),this.tokenReady=!0,this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 瀹屾垚鐢ㄦ埛淇℃伅璁剧疆",logType:"info",level:"info",time:Date.now(),data:{web_id:A,user_unique_id:t},infoType:"sdk"}),this.collect.emit(ome.TokenComplete)},e.prototype.completeTtWid=function(e){var A=e.user_unique_id||"",t=this.configManager.get("user_unique_id");(t||A)&&this.configManager.set({user_unique_id:t||A}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(ome.TokenComplete)},e.prototype.setUuid=function(e){var A;if(e&&-1===zp(A=["null","undefined","Null","None"]).call(A,e)){var t=String(e),n=this.configManager.get("user_unique_id"),r=this.cacheToken&&this.cacheToken.user_unique_id;if(t===n&&t===r)return;this.configManager.set({user_unique_id:t}),this.cacheToken||(this.cacheToken={}),this.cacheToken.user_unique_id=t,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken),this.collect.emit(ome.TokenChange,"uuid"),this.collect.emit(ome.SessionReset)}else this.clearUuid()},e.prototype.clearUuid=function(){this.config.enable_ttwebid||this.configManager.get("web_id")&&this.configManager.get("user_unique_id")!==this.configManager.get("web_id")&&(this.configManager.set({user_unique_id:this.configManager.get("web_id")}),this.cacheToken&&this.cacheToken.web_id&&(this.cacheToken.user_unique_id=this.cacheToken.web_id,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken)),this.collect.emit(ome.TokenReset,"uuid"))},e.prototype.setWebId=function(e){if(e&&!this.config.enable_ttwebid){this.cacheToken&&this.cacheToken.web_id?this.cacheToken.web_id!==e&&(this.cacheToken.user_unique_id=this.cacheToken.web_id===this.cacheToken.user_unique_id?e:this.cacheToken.user_unique_id,this.cacheToken.web_id=e):(this.cacheToken={},this.cacheToken.web_id=e,this.cacheToken.user_unique_id=e),this.cacheToken.timestamp=Date.now();var A=this.configManager.get("web_id"),t=this.configManager.get("user_unique_id");t&&t!==A||(this.configManager.set({user_unique_id:e}),this.collect.emit(ome.TokenChange,"uuid")),A!==e&&(this.configManager.set({web_id:e}),this.collect.emit(ome.TokenChange,"webid")),this.setStorage(this.cacheToken)}},e.prototype.setDeviceId=function(e){this.configManager.set({device_id:e}),this.config.enable_device_id&&this.cacheToken&&(this.cacheToken.device_id=e,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken))},e.prototype.setStorage=function(e){var A;e._type_=this.enableCustomWebid?"custom":"default",delete e[ZF(A="diss".split("")).call(A).join("")],this.enableCookie||this.enable_ttwebid?(this.storage.setCookie(this.tokenKey,e,this.expiresTime,this.cookieDomain),this.enable_ttwebid&&(delete e.web_id,this.storage.setItem(this.tokenKey,e))):this.storage.setItem(this.tokenKey,e),this.cacheToken=e},e.prototype.getReady=function(){return this.tokenReady},e.prototype.getTobId=function(){var e=this;return new Op((function(A){var t={app_id:e.config.app_id,user_unique_id:e.configManager.get("user_unique_id"),web_id:e.configManager.get("web_id"),user_unique_id_type:e.configManager.get("user_unique_id_type")};e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戣捣GetToken璇锋眰",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"}),e.collect.requestManager.useRequest({url:e.configManager.getUrl("tobid"),data:t,success:function(t){t&&0===t.e?(A(t.tobid),e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰鎴愬姛",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"})):(A(""),e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰澶辫触",logType:"fetch",level:"error",time:Date.now(),data:t,infoType:"sdk"}))},fail:function(){A(""),e.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰澶辫触",logType:"fetch",level:"error",time:Date.now(),infoType:"sdk"})},time:3e4,withCredentials:e.enable_ttwebid})}))},e}();function Qme(e){for(var A=e.length;--A>=0;)e[A]=0}var pme=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),vme=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),yme=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),mme=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Dme=new Array(576);Qme(Dme);var wme=new Array(60);Qme(wme);var Rme=new Array(512);Qme(Rme);var kme=new Array(256);Qme(kme);var Sme=new Array(29);Qme(Sme);var Mme,Gme,_me,bme=new Array(30);function Tme(e,A,t,n,r){this.static_tree=e,this.extra_bits=A,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}function Fme(e,A){this.dyn_tree=e,this.max_code=0,this.stat_desc=A}Qme(bme);var Nme=function(e){return e<256?Rme[e]:Rme[256+(e>>>7)]},Lme=function(e,A){e.pending_buf[e.pending++]=255&A,e.pending_buf[e.pending++]=A>>>8&255},Ume=function(e,A,t){e.bi_valid>16-t?(e.bi_buf|=A<>16-e.bi_valid,e.bi_valid+=t-16):(e.bi_buf|=A<>>=1,t<<=1}while(--A>0);return t>>>1},Yme=function(e,A,t){var n,r,i=new Array(16),o=0;for(n=1;n<=15;n++)o=o+t[n-1]<<1,i[n]=o;for(r=0;r<=A;r++){var a=e[2*r+1];0!==a&&(e[2*r]=xme(i[a]++,a))}},Pme=function(e){var A;for(A=0;A<286;A++)e.dyn_ltree[2*A]=0;for(A=0;A<30;A++)e.dyn_dtree[2*A]=0;for(A=0;A<19;A++)e.bl_tree[2*A]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Hme=function(e){e.bi_valid>8?Lme(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},Jme=function(e,A,t,n){var r=2*A,i=2*t;return e[r]>1;t>=1;t--)Ome(e,i,t);r=s;do{t=e.heap[1],e.heap[1]=e.heap[e.heap_len--],Ome(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=t,e.heap[--e.heap_max]=n,i[2*r]=i[2*t]+i[2*n],e.depth[r]=(e.depth[t]>=e.depth[n]?e.depth[t]:e.depth[n])+1,i[2*t+1]=i[2*n+1]=r,e.heap[1]=r++,Ome(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,A){var t,n,r,i,o,a,s=A.dyn_tree,g=A.max_code,c=A.stat_desc.static_tree,l=A.stat_desc.has_stree,u=A.stat_desc.extra_bits,I=A.stat_desc.extra_base,h=A.stat_desc.max_length,C=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(s[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<573;t++)(i=s[2*s[2*(n=e.heap[t])+1]+1]+1)>h&&(i=h,C++),s[2*n+1]=i,n>g||(e.bl_count[i]++,o=0,n>=I&&(o=u[n-I]),a=s[2*n],e.opt_len+=a*(i+o),l&&(e.static_len+=a*(c[2*n+1]+o)));if(0!==C){do{for(i=h-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[h]--,C-=2}while(C>0);for(i=h;0!==i;i--)for(n=e.bl_count[i];0!==n;)(r=e.heap[--t])>g||(s[2*r+1]!==i&&(e.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(e,A),Yme(i,g,e.bl_count)},Xme=function(e,A,t){var n,r,i=-1,o=A[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),A[2*(t+1)+1]=65535,n=0;n<=t;n++)r=o,o=A[2*(n+1)+1],++a>=7;n<30;n++)for(bme[n]=r<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var A,t=4093624447;for(A=0;A<=31;A++,t>>>=1)if(1&t&&0!==e.dyn_ltree[2*A])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(A=32;A<256;A++)if(0!==e.dyn_ltree[2*A])return 1;return 0}(e)),jme(e,e.l_desc),jme(e,e.d_desc),o=function(e){var A;for(Xme(e,e.dyn_ltree,e.l_desc.max_code),Xme(e,e.dyn_dtree,e.d_desc.max_code),jme(e,e.bl_desc),A=18;A>=3&&0===e.bl_tree[2*mme[A]+1];A--);return e.opt_len+=3*(A+1)+5+5+4,A}(e),r=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=r&&(r=i)):r=i=t+5,t+4<=r&&-1!==A?Wme(e,A,t,n):4===e.strategy||i===r?(Ume(e,2+(n?1:0),3),zme(e,Dme,wme)):(Ume(e,4+(n?1:0),3),function(e,A,t,n){var r;for(Ume(e,A-257,5),Ume(e,t-1,5),Ume(e,n-4,4),r=0;r>8,e.pending_buf[e.sym_buf+e.sym_next++]=t,0===A?e.dyn_ltree[2*t]++:(e.matches++,A--,e.dyn_ltree[2*(kme[t]+256+1)]++,e.dyn_dtree[2*Nme(A)]++),e.sym_next===e.sym_end},tDe=function(e){var A;Ume(e,2,3),Kme(e,256,Dme),16===(A=e).bi_valid?(Lme(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)},nDe=function(e,A,t,n){for(var r=65535&e|0,i=e>>>16&65535|0,o=0;0!==t;){t-=o=t>2e3?2e3:t;do{i=i+(r=r+A[n++]|0)|0}while(--o);r%=65521,i%=65521}return r|i<<16|0},rDe=new Uint32Array(function(){for(var e,A=[],t=0;t<256;t++){e=t;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;A[t]=e}return A}()),iDe=function(e,A,t,n){var r=rDe,i=n+t;e^=-1;for(var o=n;o>>8^r[255&(e^A[o])];return-1^e},oDe={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},aDe={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},sDe=Zme,gDe=$me,cDe=eDe,lDe=ADe,uDe=tDe,IDe=aDe.Z_NO_FLUSH,hDe=aDe.Z_PARTIAL_FLUSH,CDe=aDe.Z_FULL_FLUSH,dDe=aDe.Z_FINISH,EDe=aDe.Z_BLOCK,fDe=aDe.Z_OK,BDe=aDe.Z_STREAM_END,QDe=aDe.Z_STREAM_ERROR,pDe=aDe.Z_DATA_ERROR,vDe=aDe.Z_BUF_ERROR,yDe=aDe.Z_DEFAULT_COMPRESSION,mDe=aDe.Z_FILTERED,DDe=aDe.Z_HUFFMAN_ONLY,wDe=aDe.Z_RLE,RDe=aDe.Z_FIXED,kDe=aDe.Z_DEFAULT_STRATEGY,SDe=aDe.Z_UNKNOWN,MDe=aDe.Z_DEFLATED,GDe=function(e,A){return e.msg=oDe[A],A},_De=function(e){return 2*e-(e>4?9:0)},bDe=function(e){for(var A=e.length;--A>=0;)e[A]=0},TDe=function(e){var A,t,n,r=e.w_size;n=A=e.hash_size;do{t=e.head[--n],e.head[n]=t>=r?t-r:0}while(--A);n=A=r;do{t=e.prev[--n],e.prev[n]=t>=r?t-r:0}while(--A)},FDe=function(e,A,t){return(A<e.avail_out&&(t=e.avail_out),0!==t&&(e.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+t),e.next_out),e.next_out+=t,A.pending_out+=t,e.total_out+=t,e.avail_out-=t,A.pending-=t,0===A.pending&&(A.pending_out=0))},LDe=function(e,A){cDe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,A),e.block_start=e.strstart,NDe(e.strm)},UDe=function(e,A){e.pending_buf[e.pending++]=A},KDe=function(e,A){e.pending_buf[e.pending++]=A>>>8&255,e.pending_buf[e.pending++]=255&A},xDe=function(e,A,t,n){var r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,A.set(e.input.subarray(e.next_in,e.next_in+r),t),1===e.state.wrap?e.adler=nDe(e.adler,A,r,t):2===e.state.wrap&&(e.adler=iDe(e.adler,A,r,t)),e.next_in+=r,e.total_in+=r,r)},YDe=function(e,A){var t,n,r=e.max_chain_length,i=e.strstart,o=e.prev_length,a=e.nice_match,s=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,g=e.window,c=e.w_mask,l=e.prev,u=e.strstart+258,I=g[i+o-1],h=g[i+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(g[(t=A)+o]===h&&g[t+o-1]===I&&g[t]===g[i]&&g[++t]===g[i+1]){i+=2,t++;do{}while(g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&io){if(e.match_start=A,o=n,n>=a)break;I=g[i+o-1],h=g[i+o]}}}while((A=l[A&c])>s&&0!=--r);return o<=e.lookahead?o:e.lookahead},PDe=function(e){var A,t,n,r=e.w_size;do{if(t=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-262)&&(e.window.set(e.window.subarray(r,r+r-t),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,e.insert>e.strstart&&(e.insert=e.strstart),TDe(e),t+=r),0===e.strm.avail_in)break;if(A=xDe(e.strm,e.window,e.strstart+e.lookahead,t),e.lookahead+=A,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=FDe(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=FDe(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},HDe=function(e,A){var t,n,r,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,o=0,a=e.strm.avail_in;do{if(t=65535,r=e.bi_valid+42>>3,e.strm.avail_out(n=e.strstart-e.block_start)+e.strm.avail_in&&(t=n+e.strm.avail_in),t>r&&(t=r),t>8,e.pending_buf[e.pending-2]=~t,e.pending_buf[e.pending-1]=~t>>8,NDe(e.strm),n&&(n>t&&(n=t),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,t-=n),t&&(xDe(e.strm,e.strm.output,e.strm.next_out,t),e.strm.next_out+=t,e.strm.avail_out-=t,e.strm.total_out+=t)}while(0===o);return(a-=e.strm.avail_in)&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(xDe(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,i=(r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r)>e.w_size?e.w_size:r,((n=e.strstart-e.block_start)>=i||(n||A===dDe)&&A!==IDe&&0===e.strm.avail_in&&n<=r)&&(t=n>r?r:n,o=A===dDe&&0===e.strm.avail_in&&t===n?1:0,gDe(e,e.block_start,t,o),e.block_start+=t,NDe(e.strm)),o?3:1)},JDe=function(e,A){for(var t,n;;){if(e.lookahead<262){if(PDe(e),e.lookahead<262&&A===IDe)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=FDe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==t&&e.strstart-t<=e.w_size-262&&(e.match_length=YDe(e,t)),e.match_length>=3)if(n=lDe(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=FDe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=FDe(e,e.ins_h,e.window[e.strstart+1]);else n=lDe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(LDe(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,A===dDe?(LDe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(LDe(e,!1),0===e.strm.avail_out)?1:2},ODe=function(e,A){for(var t,n,r;;){if(e.lookahead<262){if(PDe(e),e.lookahead<262&&A===IDe)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=FDe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==t&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=lDe(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=FDe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(LDe(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=lDe(e,0,e.window[e.strstart-1]))&&LDe(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=lDe(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,A===dDe?(LDe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(LDe(e,!1),0===e.strm.avail_out)?1:2};function zDe(e,A,t,n,r){this.good_length=e,this.max_lazy=A,this.nice_length=t,this.max_chain=n,this.func=r}var jDe=[new zDe(0,0,0,0,HDe),new zDe(4,4,8,4,JDe),new zDe(4,5,16,8,JDe),new zDe(4,6,32,32,JDe),new zDe(4,4,16,16,ODe),new zDe(8,16,32,32,ODe),new zDe(8,16,128,128,ODe),new zDe(8,32,128,256,ODe),new zDe(32,128,258,1024,ODe),new zDe(32,258,258,4096,ODe)];function XDe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=MDe,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),bDe(this.dyn_ltree),bDe(this.dyn_dtree),bDe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),bDe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),bDe(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var qDe=function(e){if(!e)return 1;var A=e.state;return!A||A.strm!==e||42!==A.status&&57!==A.status&&69!==A.status&&73!==A.status&&91!==A.status&&103!==A.status&&113!==A.status&&666!==A.status?1:0},VDe=function(e){if(qDe(e))return GDe(e,QDe);e.total_in=e.total_out=0,e.data_type=SDe;var A=e.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=2===A.wrap?57:A.wrap?42:113,e.adler=2===A.wrap?0:1,A.last_flush=-2,sDe(A),fDe},WDe=function(e){var A,t=VDe(e);return t===fDe&&((A=e.state).window_size=2*A.w_size,bDe(A.head),A.max_lazy_match=jDe[A.level].max_lazy,A.good_match=jDe[A.level].good_length,A.nice_match=jDe[A.level].nice_length,A.max_chain_length=jDe[A.level].max_chain,A.strstart=0,A.block_start=0,A.lookahead=0,A.insert=0,A.match_length=A.prev_length=2,A.match_available=0,A.ins_h=0),t},ZDe=function(e,A,t,n,r,i){if(!e)return QDe;var o=1;if(A===yDe&&(A=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||t!==MDe||n<8||n>15||A<0||A>9||i<0||i>RDe||8===n&&1!==o)return GDe(e,QDe);8===n&&(n=9);var a=new XDe;return e.state=a,a.strm=e,a.status=42,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<EDe||A<0)return e?GDe(e,QDe):QDe;var t=e.state;if(!e.output||0!==e.avail_in&&!e.input||666===t.status&&A!==dDe)return GDe(e,0===e.avail_out?vDe:QDe);var n=t.last_flush;if(t.last_flush=A,0!==t.pending){if(NDe(e),0===e.avail_out)return t.last_flush=-1,fDe}else if(0===e.avail_in&&_De(A)<=_De(n)&&A!==dDe)return GDe(e,vDe);if(666===t.status&&0!==e.avail_in)return GDe(e,vDe);if(42===t.status&&0===t.wrap&&(t.status=113),42===t.status){var r=MDe+(t.w_bits-8<<4)<<8;if(r|=(t.strategy>=DDe||t.level<2?0:t.level<6?1:6===t.level?2:3)<<6,0!==t.strstart&&(r|=32),KDe(t,r+=31-r%31),0!==t.strstart&&(KDe(t,e.adler>>>16),KDe(t,65535&e.adler)),e.adler=1,t.status=113,NDe(e),0!==t.pending)return t.last_flush=-1,fDe}if(57===t.status)if(e.adler=0,UDe(t,31),UDe(t,139),UDe(t,8),t.gzhead)UDe(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),UDe(t,255&t.gzhead.time),UDe(t,t.gzhead.time>>8&255),UDe(t,t.gzhead.time>>16&255),UDe(t,t.gzhead.time>>24&255),UDe(t,9===t.level?2:t.strategy>=DDe||t.level<2?4:0),UDe(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(UDe(t,255&t.gzhead.extra.length),UDe(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(e.adler=iDe(e.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(UDe(t,0),UDe(t,0),UDe(t,0),UDe(t,0),UDe(t,0),UDe(t,9===t.level?2:t.strategy>=DDe||t.level<2?4:0),UDe(t,3),t.status=113,NDe(e),0!==t.pending)return t.last_flush=-1,fDe;if(69===t.status){if(t.gzhead.extra){for(var i=t.pending,o=(65535&t.gzhead.extra.length)-t.gzindex;t.pending+o>t.pending_buf_size;){var a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>i&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex+=a,NDe(e),0!==t.pending)return t.last_flush=-1,fDe;i=0,o-=a}var s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>i&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){var g,c=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>c&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-c,c)),NDe(e),0!==t.pending)return t.last_flush=-1,fDe;c=0}g=t.gzindexc&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-c,c)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){var l,u=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>u&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-u,u)),NDe(e),0!==t.pending)return t.last_flush=-1,fDe;u=0}l=t.gzindexu&&(e.adler=iDe(e.adler,t.pending_buf,t.pending-u,u))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(NDe(e),0!==t.pending))return t.last_flush=-1,fDe;UDe(t,255&e.adler),UDe(t,e.adler>>8&255),e.adler=0}if(t.status=113,NDe(e),0!==t.pending)return t.last_flush=-1,fDe}if(0!==e.avail_in||0!==t.lookahead||A!==IDe&&666!==t.status){var I=0===t.level?HDe(t,A):t.strategy===DDe?function(e,A){for(var t;;){if(0===e.lookahead&&(PDe(e),0===e.lookahead)){if(A===IDe)return 1;break}if(e.match_length=0,t=lDe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(LDe(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,A===dDe?(LDe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(LDe(e,!1),0===e.strm.avail_out)?1:2}(t,A):t.strategy===wDe?function(e,A){for(var t,n,r,i,o=e.window;;){if(e.lookahead<=258){if(PDe(e),e.lookahead<=258&&A===IDe)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=o[r=e.strstart-1])===o[++r]&&n===o[++r]&&n===o[++r]){i=e.strstart+258;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(t=lDe(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=lDe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(LDe(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,A===dDe?(LDe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(LDe(e,!1),0===e.strm.avail_out)?1:2}(t,A):jDe[t.level].func(t,A);if(3!==I&&4!==I||(t.status=666),1===I||3===I)return 0===e.avail_out&&(t.last_flush=-1),fDe;if(2===I&&(A===hDe?uDe(t):A!==EDe&&(gDe(t,0,0,!1),A===CDe&&(bDe(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),NDe(e),0===e.avail_out))return t.last_flush=-1,fDe}return A!==dDe?fDe:t.wrap<=0?BDe:(2===t.wrap?(UDe(t,255&e.adler),UDe(t,e.adler>>8&255),UDe(t,e.adler>>16&255),UDe(t,e.adler>>24&255),UDe(t,255&e.total_in),UDe(t,e.total_in>>8&255),UDe(t,e.total_in>>16&255),UDe(t,e.total_in>>24&255)):(KDe(t,e.adler>>>16),KDe(t,65535&e.adler)),NDe(e),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?fDe:BDe)},deflateEnd:function(e){if(qDe(e))return QDe;var A=e.state.status;return e.state=null,113===A?GDe(e,pDe):fDe},deflateSetDictionary:function(e,A){var t=A.length;if(qDe(e))return QDe;var n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return QDe;if(1===r&&(e.adler=nDe(e.adler,A,t,0)),n.wrap=0,t>=n.w_size){0===r&&(bDe(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(A.subarray(t-n.w_size,t),0),A=i,t=n.w_size}var o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=t,e.next_in=0,e.input=A,PDe(n);n.lookahead>=3;){var g=n.strstart,c=n.lookahead-2;do{n.ins_h=FDe(n,n.ins_h,n.window[g+3-1]),n.prev[g&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=g,g++}while(--c);n.strstart=g,n.lookahead=2,PDe(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,fDe},deflateInfo:"pako deflate (from Nodeca project)"},ewe=function(e,A){return Object.prototype.hasOwnProperty.call(e,A)},Awe={assign:function(e){for(var A=Xp(Array.prototype).call(arguments,1);A.length;){var t=A.shift();if(t){if("object"!=wc(t))throw new TypeError(t+"must be non-object");for(var n in t)ewe(t,n)&&(e[n]=t[n])}}return e},flattenChunks:function(e){for(var A=0,t=0,n=e.length;t=252?6:rwe>=248?5:rwe>=240?4:rwe>=224?3:rwe>=192?2:1;nwe[254]=nwe[254]=1;var iwe={string2buf:function(e){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);var A,t,n,r,i,o=e.length,a=0;for(r=0;r>>6,A[i++]=128|63&t):t<65536?(A[i++]=224|t>>>12,A[i++]=128|t>>>6&63,A[i++]=128|63&t):(A[i++]=240|t>>>18,A[i++]=128|t>>>12&63,A[i++]=128|t>>>6&63,A[i++]=128|63&t);return A},buf2string:function(e,A){var t,n,r=A||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,A));var i=new Array(2*r);for(n=0,t=0;t4)i[n++]=65533,t+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&t1?i[n++]=65533:o<65536?i[n++]=o:(o-=65536,i[n++]=55296|o>>10&1023,i[n++]=56320|1023&o)}}}return function(e,A){if(A<65534&&e.subarray&&twe)return String.fromCharCode.apply(null,e.length===A?e:e.subarray(0,A));for(var t="",n=0;ne.length&&(A=e.length);for(var t=A-1;t>=0&&128==(192&e[t]);)t--;return t<0||0===t?A:t+nwe[e[t]]>A?t:A}},owe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},awe=Object.prototype.toString,swe=aDe.Z_NO_FLUSH,gwe=aDe.Z_SYNC_FLUSH,cwe=aDe.Z_FULL_FLUSH,lwe=aDe.Z_FINISH,uwe=aDe.Z_OK,Iwe=aDe.Z_STREAM_END,hwe=aDe.Z_DEFAULT_COMPRESSION,Cwe=aDe.Z_DEFAULT_STRATEGY,dwe=aDe.Z_DEFLATED;function Ewe(e){this.options=Awe.assign({level:hwe,method:dwe,chunkSize:16384,windowBits:15,memLevel:8,strategy:Cwe},e||{});var A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new owe,this.strm.avail_out=0;var t=$De.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(t!==uwe)throw new Error(oDe[t]);if(A.header&&$De.deflateSetHeader(this.strm,A.header),A.dictionary){var n;if(n="string"==typeof A.dictionary?iwe.string2buf(A.dictionary):"[object ArrayBuffer]"===awe.call(A.dictionary)?new Uint8Array(A.dictionary):A.dictionary,(t=$De.deflateSetDictionary(this.strm,n))!==uwe)throw new Error(oDe[t]);this._dict_set=!0}}function fwe(e,A){var t=new Ewe(A);if(t.push(e,!0),t.err)throw t.msg||oDe[t.err];return t.result}Ewe.prototype.push=function(e,A){var t,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=A===~~A?A:!0===A?lwe:swe,"string"==typeof e?r.input=iwe.string2buf(e):"[object ArrayBuffer]"===awe.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(n===gwe||n===cwe)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if((t=$De.deflate(r,n))===Iwe)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),t=$De.deflateEnd(this.strm),this.onEnd(t),this.ended=!0,t===uwe;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},Ewe.prototype.onData=function(e){this.chunks.push(e)},Ewe.prototype.onEnd=function(e){e===uwe&&(this.result=Awe.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Bwe={Deflate:Ewe,deflate:fwe,deflateRaw:function(e,A){return(A=A||{}).raw=!0,fwe(e,A)},gzip:function(e,A){return(A=A||{}).gzip=!0,fwe(e,A)},constants:aDe},Qwe=function(e,A){var t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y,m,D,w=e.state;t=e.next_in,m=e.input,n=t+(e.avail_in-5),r=e.next_out,D=e.output,i=r-(A-e.avail_out),o=r+(e.avail_out-257),a=w.dmax,s=w.wsize,g=w.whave,c=w.wnext,l=w.window,u=w.hold,I=w.bits,h=w.lencode,C=w.distcode,d=(1<>>=B=f>>>24,I-=B,0==(B=f>>>16&255))D[r++]=65535&f;else{if(!(16&B)){if(0==(64&B)){f=h[(65535&f)+(u&(1<>>=B,I-=B),I<15&&(u+=m[t++]<>>=B=f>>>24,I-=B,!(16&(B=f>>>16&255))){if(0==(64&B)){f=C[(65535&f)+(u&(1<a){e.msg="invalid distance too far back",w.mode=16209;break e}if(u>>>=B,I-=B,p>(B=r-i)){if((B=p-B)>g&&w.sane){e.msg="invalid distance too far back",w.mode=16209;break e}if(v=0,y=l,0===c){if(v+=s-B,B2;)D[r++]=y[v++],D[r++]=y[v++],D[r++]=y[v++],Q-=3;Q&&(D[r++]=y[v++],Q>1&&(D[r++]=y[v++]))}else{v=r-p;do{D[r++]=D[v++],D[r++]=D[v++],D[r++]=D[v++],Q-=3}while(Q>2);Q&&(D[r++]=D[v++],Q>1&&(D[r++]=D[v++]))}break}}break}}while(t>3,u&=(1<<(I-=Q<<3))-1,e.next_in=t,e.next_out=r,e.avail_in=t=1&&0===S[p];p--);if(v>p&&(v=p),0===p)return r[i++]=20971520,r[i++]=20971520,a.bits=1,0;for(Q=1;Q0&&(0===e||1!==p))return-1;for(M[1]=0,f=1;f<15;f++)M[f+1]=M[f]+S[f];for(B=0;B852||2===e&&w>592)return 1;for(;;){h=f-m,o[B]+1=I?(C=G[o[B]-I],d=k[o[B]-I]):(C=96,d=0),s=1<>m)+(g-=s)]=h<<24|C<<16|d|0}while(0!==g);for(s=1<>=1;if(0!==s?(R&=s-1,R+=s):R=0,B++,0==--S[f]){if(f===p)break;f=A[t+o[B]]}if(f>v&&(R&l)!==c){for(0===m&&(m=v),u+=Q,D=1<<(y=f-m);y+m852||2===e&&w>592)return 1;r[c=R&l]=v<<24|y<<16|u-i|0}}return 0!==R&&(r[u+R]=f-m<<24|64<<16|0),a.bits=v,0},wwe=aDe.Z_FINISH,Rwe=aDe.Z_BLOCK,kwe=aDe.Z_TREES,Swe=aDe.Z_OK,Mwe=aDe.Z_STREAM_END,Gwe=aDe.Z_NEED_DICT,_we=aDe.Z_STREAM_ERROR,bwe=aDe.Z_DATA_ERROR,Twe=aDe.Z_MEM_ERROR,Fwe=aDe.Z_BUF_ERROR,Nwe=aDe.Z_DEFLATED,Lwe=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function Uwe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var Kwe,xwe,Ywe=function(e){if(!e)return 1;var A=e.state;return!A||A.strm!==e||A.mode<16180||A.mode>16211?1:0},Pwe=function(e){if(Ywe(e))return _we;var A=e.state;return e.total_in=e.total_out=A.total=0,e.msg="",A.wrap&&(e.adler=1&A.wrap),A.mode=16180,A.last=0,A.havedict=0,A.flags=-1,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(852),A.distcode=A.distdyn=new Int32Array(592),A.sane=1,A.back=-1,Swe},Hwe=function(e){if(Ywe(e))return _we;var A=e.state;return A.wsize=0,A.whave=0,A.wnext=0,Pwe(e)},Jwe=function(e,A){var t;if(Ywe(e))return _we;var n=e.state;return A<0?(t=0,A=-A):(t=5+(A>>4),A<48&&(A&=15)),A&&(A<8||A>15)?_we:(null!==n.window&&n.wbits!==A&&(n.window=null),n.wrap=t,n.wbits=A,Hwe(e))},Owe=function(e,A){if(!e)return _we;var t=new Uwe;e.state=t,t.strm=e,t.window=null,t.mode=16180;var n=Jwe(e,A);return n!==Swe&&(e.state=null),n},zwe=!0,jwe=function(e){if(zwe){Kwe=new Int32Array(512),xwe=new Int32Array(32);for(var A=0;A<144;)e.lens[A++]=8;for(;A<256;)e.lens[A++]=9;for(;A<280;)e.lens[A++]=7;for(;A<288;)e.lens[A++]=8;for(Dwe(1,e.lens,0,288,Kwe,0,e.work,{bits:9}),A=0;A<32;)e.lens[A++]=5;Dwe(2,e.lens,0,32,xwe,0,e.work,{bits:5}),zwe=!1}e.lencode=Kwe,e.lenbits=9,e.distcode=xwe,e.distbits=5},Xwe=function(e,A,t,n){var r,i=e.state;return null===i.window&&(i.wsize=1<=i.wsize?(i.window.set(A.subarray(t-i.wsize,t),0),i.wnext=0,i.whave=i.wsize):((r=i.wsize-i.wnext)>n&&(r=n),i.window.set(A.subarray(t-n,t-n+r),i.wnext),(n-=r)?(i.window.set(A.subarray(t-n,t),0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave>>8&255,t.check=iDe(t.check,R,2,0),g=0,c=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",t.mode=16209;break}if((15&g)!==Nwe){e.msg="unknown compression method",t.mode=16209;break}if(c-=4,v=8+(15&(g>>>=4)),0===t.wbits&&(t.wbits=v),v>15||v>t.wbits){e.msg="invalid window size",t.mode=16209;break}t.dmax=1<>8&1),512&ux(t)&&4&t.wrap&&(R[0]=255&g,R[1]=g>>>8&255,t.check=iDe(t.check,R,2,0)),g=0,c=0,t.mode=16182;case 16182:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<>>8&255,R[2]=g>>>16&255,R[3]=g>>>24&255,t.check=iDe(t.check,R,4,0)),g=0,c=0,t.mode=16183;case 16183:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<>8),512&ux(t)&&4&t.wrap&&(R[0]=255&g,R[1]=g>>>8&255,t.check=iDe(t.check,R,2,0)),g=0,c=0,t.mode=16184;case 16184:if(1024&ux(t)){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<>>8&255,t.check=iDe(t.check,R,2,0)),g=0,c=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&ux(t)&&((I=t.length)>a&&(I=a),I&&(t.head&&(v=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(i,i+I),v)),512&ux(t)&&4&t.wrap&&(t.check=iDe(t.check,n,I,i)),a-=I,i+=I,t.length-=I),t.length))break e;t.length=0,t.mode=16186;case 16186:if(2048&ux(t)){if(0===a)break e;I=0;do{v=n[i+I++],t.head&&v&&t.length<65536&&(t.head.name+=String.fromCharCode(v))}while(v&&I>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=16191;break;case 16189:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<>>=7&c,c-=7&c,t.mode=16206;break}for(;c<3;){if(0===a)break e;a--,g+=n[i++]<>>=1)){case 0:t.mode=16193;break;case 1:if(jwe(t),t.mode=16199,A===kwe){g>>>=2,c-=2;break e}break;case 2:t.mode=16196;break;case 3:e.msg="invalid block type",t.mode=16209}g>>>=2,c-=2;break;case 16193:for(g>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,g+=n[i++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=16209;break}if(t.length=65535&g,g=0,c=0,t.mode=16194,A===kwe)break e;case 16194:t.mode=16195;case 16195:if(I=t.length){if(I>a&&(I=a),I>s&&(I=s),0===I)break e;r.set(n.subarray(i,i+I),o),a-=I,i+=I,s-=I,o+=I,t.length-=I;break}t.mode=16191;break;case 16196:for(;c<14;){if(0===a)break e;a--,g+=n[i++]<>>=5,c-=5,t.ndist=1+(31&g),g>>>=5,c-=5,t.ncode=4+(15&g),g>>>=4,c-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=16209;break}t.have=0,t.mode=16197;case 16197:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[k[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,m={bits:t.lenbits},y=Dwe(0,t.lens,0,19,t.lencode,0,t.work,m),t.lenbits=m.bits,y){e.msg="invalid code lengths set",t.mode=16209;break}t.have=0,t.mode=16198;case 16198:for(;t.have>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=d,c-=d,t.lens[t.have++]=f;else{if(16===f){for(D=d+2;c>>=d,c-=d,0===t.have){e.msg="invalid bit length repeat",t.mode=16209;break}v=t.lens[t.have-1],I=3+(3&g),g>>>=2,c-=2}else if(17===f){for(D=d+3;c>>=d)),g>>>=3,c-=3}else{for(D=d+7;c>>=d)),g>>>=7,c-=7}if(t.have+I>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=16209;break}for(;I--;)t.lens[t.have++]=v}}if(16209===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=16209;break}if(t.lenbits=9,m={bits:t.lenbits},y=Dwe(1,t.lens,0,t.nlen,t.lencode,0,t.work,m),t.lenbits=m.bits,y){e.msg="invalid literal/lengths set",t.mode=16209;break}if(t.distbits=6,t.distcode=t.distdyn,m={bits:t.distbits},y=Dwe(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,m),t.distbits=m.bits,y){e.msg="invalid distances set",t.mode=16209;break}if(t.mode=16199,A===kwe)break e;case 16199:t.mode=16200;case 16200:if(a>=6&&s>=258){e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,t.hold=g,t.bits=c,Qwe(e,u),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=t.hold,c=t.bits,16191===t.mode&&(t.back=-1);break}for(t.back=0;E=(w=t.lencode[g&(1<>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>B)])>>>16&255,f=65535&w,!(B+(d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=B,c-=B,t.back+=B}if(g>>>=d,c-=d,t.back+=d,t.length=f,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=16191;break}if(64&E){e.msg="invalid literal/length code",t.mode=16209;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(D=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;E=(w=t.distcode[g&(1<>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>B)])>>>16&255,f=65535&w,!(B+(d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=B,c-=B,t.back+=B}if(g>>>=d,c-=d,t.back+=d,64&E){e.msg="invalid distance code",t.mode=16209;break}t.offset=f,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(D=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=16209;break}t.mode=16204;case 16204:if(0===s)break e;if(I=u-s,t.offset>I){if((I=t.offset-I)>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=16209;break}I>t.wnext?(I-=t.wnext,h=t.wsize-I):h=t.wnext-I,I>t.length&&(I=t.length),C=t.window}else C=r,h=o-t.offset,I=t.length;I>s&&(I=s),s-=I,t.length-=I;do{r[o++]=C[h++]}while(--I);0===t.length&&(t.mode=16200);break;case 16205:if(0===s)break e;r[o++]=t.length,s--,t.mode=16200;break;case 16206:if(t.wrap){for(;c<32;){if(0===a)break e;a--,g|=n[i++]<=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,0===A.windowBits&&(A.windowBits=-15)),!(A.windowBits>=0&&A.windowBits<16)||e&&e.windowBits||(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&0==(15&A.windowBits)&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new owe,this.strm.avail_out=0;var t=qwe.inflateInit2(this.strm,A.windowBits);if(t!==eRe)throw new Error(oDe[t]);if(this.header=new Vwe,qwe.inflateGetHeader(this.strm,this.header),A.dictionary&&("string"==typeof A.dictionary?A.dictionary=iwe.string2buf(A.dictionary):"[object ArrayBuffer]"===Wwe.call(A.dictionary)&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(t=qwe.inflateSetDictionary(this.strm,A.dictionary))!==eRe))throw new Error(oDe[t])}function aRe(e,A){var t=new oRe(A);if(t.push(e),t.err)throw t.msg||oDe[t.err];return t.result}oRe.prototype.push=function(e,A){var t,n,r,i=this.strm,o=this.options.chunkSize,a=this.options.dictionary;if(this.ended)return!1;for(n=A===~~A?A:!0===A?$we:Zwe,"[object ArrayBuffer]"===Wwe.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(o),i.next_out=0,i.avail_out=o),(t=qwe.inflate(i,n))===tRe&&a&&((t=qwe.inflateSetDictionary(i,a))===eRe?t=qwe.inflate(i,n):t===rRe&&(t=tRe));i.avail_in>0&&t===ARe&&i.state.wrap>0&&0!==e[i.next_in];)qwe.inflateReset(i),t=qwe.inflate(i,n);switch(t){case nRe:case rRe:case tRe:case iRe:return this.onEnd(t),this.ended=!0,!1}if(r=i.avail_out,i.next_out&&(0===i.avail_out||t===ARe))if("string"===this.options.to){var s=iwe.utf8border(i.output,i.next_out),g=i.next_out-s,c=iwe.buf2string(i.output,s);i.next_out=g,i.avail_out=o-g,g&&i.output.set(i.output.subarray(s,s+g),0),this.onData(c)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(t!==eRe||0!==r){if(t===ARe)return t=qwe.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},oRe.prototype.onData=function(e){this.chunks.push(e)},oRe.prototype.onEnd=function(e){e===eRe&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=Awe.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var sRe={Inflate:oRe,inflate:aRe,inflateRaw:function(e,A){return(A=A||{}).raw=!0,aRe(e,A)},ungzip:aRe,constants:aDe},gRe={Deflate:Bwe.Deflate,deflate:Bwe.deflate,deflateRaw:Bwe.deflateRaw,gzip:Bwe.gzip,Inflate:sRe.Inflate,inflate:sRe.inflate,inflateRaw:sRe.inflateRaw,ungzip:sRe.ungzip,constants:aDe},cRe=function(){function e(e,A){var t=this;this.collector=e,this.config=A,this.requestType=A.request_type||"xhr",this.supportBeacon=!(!window.navigator||!window.navigator.sendBeacon),this.errorCode={NO_URL:4001,IMG_ON:4e3,IMG_CATCH:4002,BEACON_FALSE:4003,XHR_ON:500,RESPONSE:5001,TIMEOUT:5005},this.customHeader=A.custom_request_header||{},this.collector.on("custom-request-header",(function(e){t.setRequestHeader(e)}))}return e.prototype.setRequestHeader=function(e){this.customHeader=sy(this.customHeader,e)},e.prototype.useFetch=function(e){var A=e.url,t=e.data,n=e.method,r=e.success,i=e.fail,o={"Content-Type":"application/json; charset=utf-8"};if(jp(this.customHeader).length)for(var a in this.customHeader)o[a]=this.customHeader[a];window.fetch?fetch(A,{method:n||"POST",headers:o,body:$b(t)}).then((function(e){return e.json()})).then((function(e){r&&r(e)})).catch((function(e){i&&i(t,e)})):(this.requestType="xhr",console.log("your brwoser not support fetch, use xhr"),this.useRequest({url:A,data:t,method:n,success:r,fail:i}))},e.prototype.useBeacon=function(e){var A=e.url,t=e.data,n=e.success,r=e.fail;window.navigator.sendBeacon(A,$b(t))?n&&n():r&&r(t,this.errorCode.BEACON_FALSE)},e.prototype.useRequest=function(e){var A=this,t=e.url,n=e.data,r=e.method,i=e.success,o=e.fail,a=e.timeout,s=e.useBeacon,g=e.withCredentials,c=e.app_key,l=e.forceXhr,u=e.zip;if(s&&this.supportBeacon)this.useBeacon({url:t,data:n,method:r,success:i,fail:o});else if("fetch"!==this.requestType||l)try{var I=new XMLHttpRequest,h=r||"POST";if(I.open(h,""+t,!0),I.setRequestHeader("Content-Type","application/json; charset=utf-8"),c&&I.setRequestHeader("X-MCS-AppKey",""+c),jp(this.customHeader).length)for(var C in this.customHeader)I.setRequestHeader(C,this.customHeader[C]);g&&(I.withCredentials=!0),a&&(I.timeout=a,I.ontimeout=function(){o&&o(n,A.errorCode.TIMEOUT)}),I.onload=function(){if(i){var e=null;if(I.responseText){try{e=JSON.parse(I.responseText)}catch(A){e={}}i(e,n)}}},I.onerror=function(){I.abort(),o&&o(n,A.errorCode.XHR_ON)};try{var d=$b(n);if(this.config.need_zip&&u){var E=(new TextEncoder).encode(d),f=gRe.gzip(E);I.setRequestHeader("Content-Encoding","gzip"),I.send(f)}else I.send(d)}catch(B){this.collector.emit("sdk-inner-error",{type:"sdk_error_send",eventData:n,errorCode:1e3,msg:B.message||B.stack||"sdk_error_send"})}}catch(B){this.collector.emit("sdk-inner-error",{type:"sdk_error_request",eventData:n,errorCode:1001,msg:B.message||B.stack||"sdk_error_request"})}else this.useFetch({url:t,data:n,method:r,success:i,fail:o})},e}(),lRe=function(){function e(e,A){if(this.devToolReady=!1,this.devToolOrigin="*",this.sendAlready=!1,!A.disable_debug&&"Microsoft Internet Explorer"!==e.configManager.get("browser")){this.collect=e,this.config=A,this.app_id=A.app_id;var t=e.adapters.storage;this.cacheStorgae=new t(!1),this.loadUrl=A.devtool_url||"https://lf-static.applogcdn.com/obj/applog-sdk-static/log-sdk/collect/devtool/debug-web.v2.0.0.js",this.filterEvent=new BCe(["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","bav2b_page","bav2b_beat","bav2b_page_statistics","bav2b_click","bav2b_page_exposure","_be_active","predefine_pageview","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append","predefine_page_alive","predefine_page_close","abtest_exposure"]),this.load()}}return e.prototype.loadScript=function(e){try{var A=document.createElement("script");A.src=e,A.onerror=function(){console.log("load DevTool render fail")},A.onload=function(){console.log("load DevTool render success")},document.getElementsByTagName("body")[0].appendChild(A)}catch(t){console.log("devTool load fail, "+t.message)}},e.prototype.parseUrl=function(){var e={};try{var A=window.location.href.split("?")[1].split("&");A.length&&A.forEach((function(A){var t=A.split("=");e[decodeURIComponent(t[0])]=decodeURIComponent(t[1])}))}catch(t){}return e},e.prototype.load=function(){try{var e=this.parseUrl();if(e.open_devtool_web&&e.app_id){if(Uv(e.app_id)!==this.app_id)return}else if(!this.getStorage())return;this.loadBaseInfo(),this.loadHook(),this.setStorage(),this.addLintener(),this.loadDebuggerModule(),this.loadDevTool()}catch(A){console.log("debug fail, "+A.message)}},e.prototype.getStorage=function(){var e=this.cacheStorgae.getItem("__applog_open_devtool_web");return e&&Uv(e)===this.app_id},e.prototype.setStorage=function(){this.cacheStorgae.setItem("__applog_open_devtool_web",this.app_id)},e.prototype.loadDevTool=function(){this.loadScript(this.loadUrl)},e.prototype.loadBaseInfo=function(){if(this.log=[],this.event=[],this.info=[{title:"鍩烘湰淇℃伅",key:"base",type:1,content:[{name:"app_id",desc:"APP_ID",value:this.config.app_id},{name:"channel",desc:"CHANNEL",value:this.config.channel},{name:"domain",desc:"涓婃姤鍩熷悕",value:this.collect.configManager.getDomain()},{name:"sdk_version",desc:"SDK鐗堟湰",value:rme},{name:"sdk_type",desc:"SDK寮曞叆鏂瑰紡",value:"npm"}]},{title:"鐢ㄦ埛淇℃伅",key:"user",type:2,content:[{name:"uuid",desc:"UUID",value:this.collect.configManager.get("user").user_unique_id||""},{name:"web_id",desc:"WEB_ID",value:this.collect.configManager.get("user").web_id||""}]},{title:"鍏叡鍙傛暟淇℃伅",type:2,key:"common",content:[{name:"browser",desc:"娴忚鍣�",value:this.collect.configManager.get("browser")},{name:"browser_version",desc:"娴忚鍣ㄧ増鏈�",value:this.collect.configManager.get("browser_version")},{name:"platform",desc:"骞冲彴",value:this.collect.configManager.get("platform")},{name:"device_model",desc:"璁惧鍨嬪彿",value:this.collect.configManager.get("device_model")},{name:"os_name",desc:"鎿嶄綔绯荤粺",value:this.collect.configManager.get("os_name")},{name:"os_version",desc:"鎿嶄綔绯荤粺鐗堟湰",value:this.collect.configManager.get("os_version")},{name:"resolution",desc:"灞忓箷鍒嗚鲸鐜�",value:this.collect.configManager.get("resolution")},{name:"referrer",desc:"鏉ユ簮",value:this.collect.configManager.get("referrer")},{name:"custom",desc:"鑷畾涔変俊鎭�",value:$b(this.collect.configManager.get("custom"))}]},{title:"閰嶇疆淇℃伅",key:"config",type:3,content:[{name:"autotrack",desc:"鍏ㄥ煁鐐�",value:!!this.config.autotrack},{name:"stay",desc:"鍋滅暀鏃堕暱",value:!!this.config.enable_stay_duration}]},{title:"A/B閰嶇疆淇℃伅",key:"ab",type:4,content:[{name:"ab",desc:"A/B瀹為獙",value:!!this.config.enable_ab_test}]}],this.config.enable_ab_test){var e=this.getInfo("ab"),A=[{name:"ab",desc:"A/B瀹為獙",value:!!this.config.enable_ab_test},{name:"vid",desc:"宸叉洕鍏塚ID",value:this.collect.configManager.getAbVersion()},{name:"ab_domain",desc:"A/B鍩熷悕",value:this.config.ab_channel_domain||Hye(tme[this.config.channel])},{name:"all_values",desc:"鍏ㄩ儴閰嶇疆",value:this.collect.configManager.getAbCache()}];e.content=A,this.setInfo("ab",e)}if(this.config.enable_native||this.config.Native){var t={title:"瀹㈡埛绔俊鎭�",type:3,content:[{name:"native",desc:"鏄惁鎵撻€�",value:!!this.collect.bridgeReport}]};this.setInfo("native",t)}if(PT(rme).call(rme,"tob")){var n,r=this.getInfo("user");r.content.push({name:"sid",desc:ZF(n="DISS".split("")).call(n).join(""),value:"鐐瑰嚮鑾峰彇"}),this.setInfo("user",r)}},e.prototype.getInfo=function(e){var A=null;return this.info.forEach((function(t){t.key===e&&(A=t)})),A},e.prototype.setInfo=function(e,A){var t=!1;this.info.forEach((function(n){n.key===e&&(t=!0,n=A)})),t||this.info.push(A)},e.prototype.getSecondInfo=function(e,A){var t=this.getInfo(e),n=null;return t.content.forEach((function(e){e.name===A&&(n=e)})),n},e.prototype.setSecondInfo=function(e,A,t){var n=this.getInfo(e),r=!1;if(n.content.forEach((function(e){e.name===A&&(e.value=t,r=!0)})),!r){var i={name:A,value:t,desc:A.toLocaleUpperCase()};n.content.push(i)}this.setInfo(e,n)},e.prototype.loadHook=function(){var e=this;this.collect.on(Kye.DEBUGGER_MESSAGE,(function(A){switch(A.type){case Kye.DEBUGGER_MESSAGE_SDK:var t={time:A.time,type:A.logType||"sdk",infoType:A.infoType||"sdk",level:A.level,name:A.info,show:!0,levelShow:!0,needDesc:!!A.data};if(A.data&&(t.desc={content:$b(A.data)}),e.updateLog(t),A.secType&&"AB"===A.secType)e.setSecondInfo("ab","vid",e.collect.configManager.getAbVersion()),e.setSecondInfo("ab","all_values",e.collect.configManager.getAbCache());else if("USER"===A.secType)e.setSecondInfo("user","user_unique_id"===A.common?"uuid":A.common,e.collect.configManager.get(A.common));else if("HEADER"===A.secType){var n=e.collect.configManager.get(A.common);e.setSecondInfo("common",A.common,"custom"===A.common?$b(n):n)}return void e.updateInfo();case Kye.DEBUGGER_MESSAGE_EVENT:if(A.data&&A.data.length){var r=A.data[0],i=r.events;if(!i.length)return;i.forEach((function(t){t.checkShow=!0,t.searchShow=!0,t.focusShow=!0,t.status=A.status,t.type=e.filterEvent.has(t.event)?"sdk":"cus",t.verifyType=A.verifyType?"verify":"no",t.info="","fail"===A.status&&(t.info={message:"code: "+A.code+"锛� msg: "+(A.msg||A.failType)})})),e.updateEvent(r)}return}}))},e.prototype.addLintener=function(){var e=this;window.addEventListener("message",(function(A){if(A&&A.data&&"devtool:web:ready"===A.data.type){if(e.devToolOrigin=A.origin,e.devToolReady=!0,e.sendAlready)return;e.sendData("devtool:web:init",{info:e.info,log:e.log,event:e.event,sdk_type:PT(rme).call(rme,"tob")?"tob":"inner",appId:e.app_id}),e.sendAlready=!0}A&&A.data&&"devtool:web:ssid"===A.data.type&&e.collect.getToken((function(A){e.setSecondInfo("user","sid",A.tobid),e.updateInfo()}))}))},e.prototype.sendData=function(e,A){try{var t={type:e,payload:A};window&&window.postMessage(t,this.devToolOrigin)}catch(n){}},e.prototype.updateInfo=function(){this.devToolReady&&this.sendData("devtool:web:info",this.info)},e.prototype.updateLog=function(e){this.devToolReady?this.sendData("devtool:web:log",e):this.log.push(e)},e.prototype.updateEvent=function(e){this.devToolReady?this.sendData("devtool:web:event",e):this.event.push(e)},e.prototype.loadDebuggerModule=function(){var e="#debugger-applog-web {\n position: fixed;\n width: 45px;\n height: 45px;\n background-image: url("+Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz1bz1cz24z22z1mz1mz1jz4bz18z1nz1nz1jz1mz1ez4az1nz1lz1e")+");\n bottom: 5%;\n right: 10%;\n cursor: pointer;\n z-index:100;\n background-size: 45px;\n }",A=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.appendChild(document.createTextNode(e)),A.appendChild(t);var n=document.createElement("div");n.innerHTML='
';var r=document.createElement("div");r.innerHTML='
',document.getElementsByTagName("body")[0].appendChild(n),document.getElementsByTagName("body")[0].appendChild(r);var i=document.getElementById("debugger-applog-web");i&&i.addEventListener("click",(function(){window&&window.postMessage({type:"devtool:web:open-draw"},location.origin)}))},e}(),uRe={autotrack:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z23z22z1mz22z20z18z1az1iz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/autotrack.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z19z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/ab.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz21z22z18z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/stay.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/stay.js"},object:"LogStay"},route:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1mz23z22z1cz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/route.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/route.js"},object:"LogRoute"},tracer:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz22z20z18z1az1cz20z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/tracer.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1cz22z20z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/retry.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:Hye("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz24z1gz21z23z18z1jz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/visual.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/visual.js"},object:"LogVisual"}},IRe=["et","profile","heartbeat","monitor"],hRe=function(){function e(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new xye,this.remotePlugin=new Up,this.Types=ome,this.adapters.storage=eme}return e.usePlugin=function(A,t,n){if(t){for(var r=!1,i=0,o=e.plugins.length;ithis.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},e}(),fRe=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;A.channel_domain||A.disable_track_event||A.disable_sdk_monitor||(this.collect=e,this.config=A,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,(function(){t.sdkOnload()})),this.collect.on(e.Types.SubmitError,(function(e){var A=e.type,n=e.eventData,r=e.errorCode,i=e.response;"f_data"===A&&t.sdkError(n,r,i)})),this.collect.on(e.Types.SDKInnerError,(function(e){var A=e.type,n=e.eventData,r=e.errorCode,i=e.msg;t.sdkInnerError(A,n,r,i)})))},e.prototype.sdkOnload=function(){var e=this;try{var A=this.collect.configManager.get(),t=A.header,n=A.user,r=t.app_id,i=t.app_name,o=t.sdk_version,a=n.web_id,s={events:[{event:"onload",params:$b({app_id:r,app_name:i||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:a},header:{}};setTimeout((function(){e.collect.requestManager.useRequest({url:e.url,data:[s],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(g){}},e.prototype.sdkError=function(e,A,t){var n=this;try{var r=e[0],i=r.user,o=r.header,a=[];e.forEach((function(e){e.events.forEach((function(e){a.push(e)}))}));var s={events:Jp(a).call(a,(function(e){return{event:"on_error",params:$b({type:"sdk_event_error",error_code:A,app_id:o.app_id,app_name:o.app_name||"",error_event:e.event,sdk_version:o.sdk_version,local_time_ms:e.local_time_ms,tea_event_index:Date.now(),params:e.params,header:o,user:i,err_msg:t.m||""}),local_time_ms:Date.now()}})),user:{user_unique_id:i.user_unique_id},header:{}};setTimeout((function(){n.collect.requestManager.useRequest({url:n.url,data:[s],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(g){}},e.prototype.sdkInnerError=function(e,A,t,n){var r=this;try{var i=A[0],o=i.user,a=i.header,s=[];A.forEach((function(e){e.events.forEach((function(e){s.push(e)}))}));var g={events:Jp(s).call(s,(function(A){return{event:"on_error",params:$b({type:e,error_code:t,app_id:a.app_id,app_name:a.app_name||"",error_event:A.event,sdk_version:a.sdk_version,local_time_ms:A.local_time_ms,tea_event_index:Date.now(),params:A.params,header:a,user:o,ua:window.navigator.userAgent,err_msg:n}),local_time_ms:Date.now()}})),user:o,header:{}};setTimeout((function(){r.collect.requestManager.useRequest({url:r.url,data:[g],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(c){}},e}(),BRe="undefined"!=typeof window?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,QRe=function(){function e(){}return e.prototype.apply=function(e,A){this._plugin={},this.config=A,this.collect=e,this.channel=A.channel||"cn",this.loadExtend()},e.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach((function(A,t){if("sdk"===A)if(uRe.hasOwnProperty(t)){var n=uRe[t].object,r=uRe[t].src[e.channel]+"?query="+Date.now();e.exist(t,n,r)}else console.warn("your "+t+" is not exist锛宲lease check plugin name");else"object"==wc(A)&&(A.src?e.exist(t,A.call,A.src):e.process(t,A.instance,"INSTANCE"))}))}catch(A){this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message}),console.log("load extend error")}},e.prototype.exist=function(e,A,t){var n=this;BRe[A]?(this.process(e,BRe[A]),console.log("宸叉湁"+e+"鎻掍欢锛岄伩鍏嶉噸澶嶅姞杞絶")):this.loadPlugin(e,t,(function(){n.process(e,BRe[A]),console.log(" %c %s %s %s","color: yellow; background-color: black;","鈥�","load plugin:"+e+" success","-")}),(function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","鈥�","load plugin:"+e+" error","-")}))},e.prototype.process=function(e,A,t){try{if(t){var n=new A;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else A&&A(this.collect,this.config)}catch(r){this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:r.message}),console.log("excude "+e+" error, message:"+r.message)}},e.prototype.loadPlugin=function(e,A,t,n){var r=this;try{var i=document.createElement("script");i.src=A,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(t),i.onerror=function(){n(A)},i.onload=function(){r._plugin[e].forEach((function(e){e()}))},document.getElementsByTagName("head")[0].appendChild(i)}catch(o){this.collect.emit(Kye.DEBUGGER_MESSAGE,{type:Kye.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:o.message})}},e}();hRe.usePlugin(QRe,"extend"),hRe.usePlugin(CRe,"et"),hRe.usePlugin(dRe,"profile"),hRe.usePlugin(ERe,"heartbeat"),hRe.usePlugin(fRe,"monitor"),new hRe("default");var pRe=hRe,vRe=Lv;Gt({target:"Number",stat:!0,forced:Number.parseInt!=vRe},{parseInt:vRe});var yRe=i(re.Number.parseInt),mRe=AD;Gt({target:"Number",stat:!0,forced:Number.parseFloat!=mRe},{parseFloat:mRe});var DRe=i(re.Number.parseFloat);function wRe(e,A){for(var t=0;t=0)return i.split("=")[1]||null}},TRe=function(e){return String(Math.floor(Math.random()*Math.pow(10,e)))},FRe=function(){var e=bRe(GRe);if(e)return e;var A=TRe(11);return document.cookie=GRe+"="+A+";max-age=31536000;path=/",A},NRe=function(){var e=bRe(_Re);if(e)return e;var A=TRe(12);return document.cookie=_Re+"="+A+";max-age=31536000;path=/",A};var LRe={get device(){return LRe.os.isPc?"pc":"mobile"},get browser(){var e=function(){var e=navigator.userAgent.toLowerCase(),A={},t={IE:window.ActiveXObject||"ActiveXObject"in window,Chrome:zp(e).call(e,"chrome")>-1&&zp(e).call(e,"safari")>-1,Firefox:zp(e).call(e,"firefox")>-1,Opera:zp(e).call(e,"opera")>-1,Safari:zp(e).call(e,"safari")>-1&&-1==zp(e).call(e,"chrome"),Edge:zp(e).call(e,"edge")>-1,QQBrowser:/qqbrowser/.test(e),WeixinBrowser:/MicroMessenger/i.test(e)};for(var n in t)if(t[n]){var r="";if("IE"===n)r=e.match(/(msie\s|trident.*rv:)([\w.]+)/)[2];else if("Chrome"===n){for(var i in navigator.mimeTypes)"application/360softmgrplugin"===navigator.mimeTypes[i].type&&(n="360");var o=e.match(/chrome\/([\d.]+)/);r=o?o[1]:"-1"}else if("Firefox"===n){var a=e.match(/firefox\/([\d.]+)/);r=a?a[1]:"-1"}else if("Opera"===n){var s=e.match(/opera\/([\d.]+)/);r=s?s[1]:"-1"}else if("Safari"===n){var g=e.match(/version\/([\d.]+)/);r=g?g[1]:"-1"}else if("Edge"===n){var c=e.match(/edge\/([\d.]+)/);r=c?c[1]:"-1"}else if("QQBrowser"===n){var l=e.match(/qqbrowser\/([\d.]+)/);r=l?l[1]:"-1"}A.type=n,A.versions=Uv(r)}return A}();return e.type+"_"+e.versions},get os(){var e=navigator.userAgent;navigator.platform.toLowerCase();var A=/(?:Windows Phone)/.test(e),t=/(?:SymbianOS)/.test(e)||A,n=/(?:Android)/.test(e),r=/(?:Firefox)/.test(e),i=/(?:iPad|PlayBook)/.test(e)||n&&!/(?:Mobile)/.test(e)||r&&/(?:Tablet)/.test(e),o=/(?:iPhone)/.test(e)&&!i;return{isTablet:i,isPhone:o,isAndroid:n,isPc:!(o||n||t||i),isSymbian:t,isWindowsPhone:A,isFireFox:r}},get operation_os(){for(var e=navigator.userAgent,A=[{s:"windows",r:/(Windows 10.0|Windows NT 10.0|Windows NT 10.1|Windows 8.1|Windows NT 6.3|Windows 8|Windows NT 6.2|Windows 7|Windows NT 6.1)/},{s:"android",r:/Android/},{s:"linux",r:/(Linux|X11)/},{s:"ios",r:/(iPhone|iPad|iPod)/},{s:"mac",r:/Mac OS X/},{s:"mac",r:/(MacPPC|MacIntel|Mac_PowerPC|Macintosh)/}],t=0;t-1?"flv":zp(e).call(e,".m3u8")>-1?"m3u8":zp(e).call(e,".mp4")>-1?"mp4":zp(e).call(e,".sdp")>-1?"rts":A}function xRe(e){return"undefined"!=typeof MediaSource?+MediaSource.isTypeSupported("video/mp4; codecs="+e):0}function YRe(e,A){if("number"==typeof e&&"number"==typeof A)return e-A}var PRe=function(){return"undefined"!=typeof window&&window.Worker},HRe=function(){return"undefined"!=typeof MessageChannel};function JRe(e){if(e.plugins){if(e.plugins.flv)return e.plugins.flv;if(e.plugins.hls)return e.plugins.hls;if(e.plugins.rts)return e.plugins.rts;if(e.plugins.flvlive)return e.plugins.flvlive;if(e.plugins.hlslive)return e.plugins.hlslive;if(e.plugins.hlsvod)return e.plugins.hlsvod;if(e.plugins.hlslivemobile)return e.plugins.hlslivemobile;if(e.plugins.flvlivemobile)return e.plugins.flvlivemobile}return e.newHls||e.newFlv||e.__core__||e.flv}var ORe,zRe={1:"MEDIA_ERR_ABORTED",2:"MEDIA_ERR_NETWORK",3:"MEDIA_ERR_DECODE",4:"MEDIA_ERR_SRC_NOT_SUPPORTED"},jRe=function(){function e(e){var A=e.Tea;if(!A)throw new Error("lack Tea option");A.event?this.Tea=A.event.bind(A):this.Tea=A,this.logOptions=e,this._player=e.player}RRe(e,[{key:"videoSize",get:function(){return this._player&&this._player.video?{width:this._player.video.videoWidth,height:this._player.video.videoHeight}:{width:0,height:0}}}]);var A=e.prototype;return A.push=function(e){var A=this._player.config.url;this._player.video&&(e.play_current_time=this._player.currentTime),this.core&&this.core.loader&&this.core.loader.finnalUrl?e.cdn_play_url=this.core.loader.finnalUrl:e.cdn_play_url=A&&yT(A).call(A,"//")?window.location.protocol+A:A,e.live_stream_session_id=function(e,A,t){var n=new XY(e.split("?")[1]);return n.get(A)||n.get(t)}(e.cdn_play_url,"_session_id","session_id"),e.play_format=KRe(e.cdn_play_url),e.timestamp=URe();var t=function(){var e={cpu_core_number:-1,memory_usage:-1,network_downlink:-1};try{e.cpu_core_number=navigator.hardwareConcurrency||-1,e.memory_usage=navigator.deviceMemory||-1,e.network_downlink=navigator.connection&&navigator.connection.downlink,null==e.network_downlink&&(e.network_downlink=-1)}catch(WtA){}return e}(),n=t.cpu_core_number,r=t.memory_usage,i=t.network_downlink;e.cpu_core_number=n,e.memory_usage=r,e.network_downlink=i,e.muted=+this._player.muted,sy(e,MRe({},this.videoSize)),this.send(e)},A.send=function(e){e.event_key&&(this.logOptions.onReport&&this.logOptions.onReport(e.event_key,e),this.Tea(e.event_key,MRe({},e)))},e}(),XRe=function(){return void 0!==navigator.onLine?navigator.onLine?(e=navigator.connection)&&(e.effectiveType||e.type)||LRe.device:"none":"unknown";var e},qRe=["play","playing","pause","ended","seeking","seeked","timeupdate","waiting","canplay","canplaythrough","durationchange","ratechange","volumechange","loadeddata"],VRe=function(){function e(e){this.options=e,this.logger=new WRe(e),this.restart=this.restart.bind(this),this.bindUrlChange()}var A=e.prototype;return A.restart=function(e){this.destroy("string"!=typeof e&&Boolean(e)),this.logger=new WRe(this.options),this.bindUrlChange(),this.logger.reportStartPlay(),this.logger.handlePlayerComlete()},A.bindUrlChange=function(){this.options&&this.options.player&&!this.options.manual_restart&&this.options.player.on("urlchange",this.restart)},A.setNTP=function(e){this.logger.setNTP(e)},A.updateExt=function(e){this.options.ext=sy(this.options.ext||{},e),this.logger&&this.logger.updateExt(e)},A.sendLog=function(e){this.logger.sendLog(e)},A.updateCore=function(){this.logger.setCore()},A.destroy=function(e){this.logger.destroy(e),this.logger=null,this.options&&this.options.player&&!this.options.manual_restart&&this.options.player.off("urlchange",this.restart)},e}(),WRe=function(){function e(e){var A=this;if(this.destroyFunc=function(e){A.destroyed||(e||A.handleUserLeave(),A.destroyed=!0,"pc"===LRe.device?window.removeEventListener("beforeunload",A.handleUserLeave):"mobile"===LRe.device&&window.removeEventListener("pagehide",A.handleUserLeave),qRe.forEach((function(e){A.removeVideoEvt(e,A["handleVideo"+e+"Evt"])})),A.player&&(A.player._start&&(A.player.start=A.player._start,delete A.player._start),A.player.off("destroy",A.destroyFunc),A.player.off("complete",A.handlePlayerComlete),A.player.off("playing",A.handlePlayerPlaying),A.player.off("timeupdate",A.handlePlayerPlaying),A.player.off("ready",A.handlePlayerReady),A.player.off("waiting",A.handlePlayerWaiting),A.player.off("largeavgap",A.handleAVUnsync),A.player.off("error",A.handlePlayerError),A.player.off("SEI_PARSED",A.handleSEIParsed),A.player.off("pause",A.handlePlayerPause),A.player.off("ttfb",A.handleTTFB),A.player.off("urlchange",A.handleUrlChange),A.player.off("isKeyframe",A.handleKeyframe),A.player.off("sourceopen",A.handleSourceOpen),A.player.off("bufferappend",A.handleBufferAppend),A.player.off("core_event",A.handleCoreEvent),A.player.off("degrade",A.handleDegrade)),A.clearPlayingInterval(),A.clearStallTimer(),A.clearPlayResultTimer(),clearTimeout(A.collectDownloadSpeedTimer),A._player=null)},!e.player)throw new Error("option player is necessary");this.options=sy({},e,function(e){return{device_id:e.device_id||FRe(),user_id:e.user_id||NRe(),error_report_stop:"boolean"!=typeof e.error_report_stop||e.error_report_stop,project_key:e.project_key||"live",product_line:e.product_line||"live",onReport:e.onReport||function(){}}}(e)),this._player=this.options.player,this._url=this._player.config.url,this.project_key=e.project_key||"live",this.product_line=e.product_line||"live",this.ntpDelta=this.options.ntp?Date.now()-this.options.ntp:0,this.inWaitingStart=0,this.errorNumber=0,this.tempDroppedFrameCount=0,this.tempTotalFrameCount=0,this._logmanager=new jRe(this.options),this.init(),this.started=!1,this.destroyed=!1,this.completed=!1,this.firstFrameViewed=!1,this.cacheRtcStats={},this.cachePlaying={}}RRe(e,[{key:"videoSize",get:function(){return this.player?{width:this.player.video.videoWidth,height:this.player.video.videoHeight}:{width:0,height:0}}},{key:"player",get:function(){return this._player}},{key:"logmanager",get:function(){return this._logmanager}},{key:"ntpTime",get:function(){return Date.now()-this.ntpDelta}}]);var A=e.prototype;return A.setNTP=function(e){this.options&&(this.options.ntp=e,this.ntpDelta=Date.now()-this.options.ntp)},A.init=function(){this.bindCtx(),this.initLog(),this.initEvt()},A.bindCtx=function(){this.handlePlayerComlete=this.handlePlayerComlete.bind(this),this.handlePlayerPlaying=this.handlePlayerPlaying.bind(this),this.destroyFunc=this.destroyFunc.bind(this),this.handleUserLeave=this.handleUserLeave.bind(this),this.handlePlayerError=this.handlePlayerError.bind(this),this.handlePlayerReady=this.handlePlayerReady.bind(this),this.handlePlayerWaiting=this.handlePlayerWaiting.bind(this),this.handleAVUnsync=this.handleAVUnsync.bind(this),this.handlePlayerPause=this.handlePlayerPause.bind(this),this.handleTTFB=this.handleTTFB.bind(this),this.handleUrlChange=this.handleUrlChange.bind(this),this.handleKeyframe=this.handleKeyframe.bind(this),this.handleSourceOpen=this.handleSourceOpen.bind(this),this.handleBufferAppend=this.handleBufferAppend.bind(this),this.handleCoreEvent=this.handleCoreEvent.bind(this),this.handleDegrade=this.handleDegrade.bind(this)},A.initLog=function(){var e=this,A=this.options,t=A.player,n=void 0!==t.hlsOps;this.commonParams=MRe({os:LRe.operation_os},function(e){var A,t=e.player,n=t.config.mediaType;return MRe({project_key:e.project_key,live_sdk_version:JRe(t)||t.hlsOps?"2":"-1",player_sdk_version:t.version,logger_version:"1.1.0-alpha.27",product_line:e.product_line,user_id:e.user_id,device_id:e.device_id,page_hidden:!!document.hidden,logger_id:TRe(12),app_name:e.app_name,cdn_ip:e.cdn_ip,is_wasm:+(!!n&&"video"!==n),review_is_live:t.config.isLive?2:1,isSupportedH265:xRe("hev1.1.6.L93.B0,mp4a.40.2"),isSupportedRtmSEI:"undefined"!=typeof TransformStream&&"undefined"!=typeof RTCRtpSender&&"undefined"!=typeof RTCRtpReceiver&&"undefined"!=typeof RTCRtpScriptTransform&&"transform"in RTCRtpSender.prototype&&"transform"in RTCRtpReceiver.prototype&&PRe()&&HRe()||"undefined"!=typeof TransformStream&&"undefined"!=typeof RTCRtpSender&&"undefined"!=typeof RTCRtpReceiver&&void 0!==RTCRtpSender.prototype.createEncodedStreams&&void 0!==RTCRtpReceiver.prototype.createEncodedStreams,aid:e.aid,live_id:e.live_id||e.aid+"-"+e.user_id+"-"+Date.now(),is_preview:e.is_preview?1:0,codec_type:e.codec_type||"h264",width:Math.floor(t.config.width),height:Math.floor(t.config.height),browser:LRe.browser,ua:navigator.userAgent,href:window.location.href,timestamp:0,fps:-1,logger_init_time:Date.now(),play_current_time:0,cdn_play_url:t.config.url&&yT(A=t.config.url).call(A,"//")?window.location.protocol+t.config.url:t.config.url,play_format:KRe(t.config.url),codec_support:-1},e.ext)}(A)),this.log=sy({},{start_play:{start_play_time:0,event_key:"start_play"},first_frame:{start:0,first_frame_view:0,event_key:"first_frame",first_sei_delay:0,ntp_sync:0,ntp_delta:0,ttfb:-1,ttdb:-1,ttfb_end:0},first_frame_failed:{code:void 0,msg:"",event_key:"first_frame_failed"},stall_start:{ready_state:-1,stall_start_time:0,event_key:"stall_start"},stalling:{event_key:"stalling"},stall:{reason:0,stall_start:0,stall_end:0,ready_state:0,event_key:"stall"},play_stop:{code:0,stop_time:0,drop_percent:0,is_stream_received:0,stall_count:0,stall_time:0,retry_count:0,duration:0,stall_count_per_100sec:0,stall_time_per_100sec:0,event_key:"play_stop",dns_parse_time:-1,redirect:-1,ttfb:-1,buffered:[],is_firstframe_received:0,meta:null},playing:{index:0,stall_count:0,stall_time:0,play_time:1e4,retry_count:0,is_last:0,video_buffer_time:0,audio_buffer_time:0,speed_switch_count:0,speed_switch_info:"none",download_speed:0,decode_fps:0,render_fps:0,drop_count:-1,drop_percent:-1,sei_source:"",sei_delay:0,ntp_sync:0,ntp_delta:0,event_key:"playing",stop_time:0,duration:0,stall_count_per_100sec:0,stall_time_per_100sec:0},play_error:{code:void 0,info:"",event_key:"play_error"},play_low_decode:{fps:-1,decode_fps:-1,bitrate:-1,url:-1,msg:"",event_key:"play_low_decode"},play_av_unsync:{aDts:-1,vDts:-1,frameLength:-1,currentTime:-1,duration:0,event_key:"play_av_unsync"},play_loadstream:{loadstream_url:"",event_key:"play_loadstream"},play_stream_loaded:{event_key:"play_stream_loaded"},play_metadata_loaded:{metadata_type:"",event_key:"play_metadata_loaded"},stream_exception:{event_key:"stream_exception"},pause:{event_key:"pause"},play_url_change:{event_key:"play_url_change"},source_opened:{event_key:"source_opened"},source_updateend:{event_key:"source_updateend"},play_result:{event_key:"play_result",result:0,threshold:15e3,is_threshold:0},degrade:{event_key:"degrade",payload:{}},rtcstatechange:{event_key:"rtcstatechange"},rtc_network:{event_key:"rtc_network"},rtc_first_frame:{event_key:"rtc_first_frame"}});var r=this;for(var i in this.log){var o=function(A){Iy(e.log[i],A,{get:function(){return void 0===this["_"+A]?r.commonParams[A]:this["_"+A]},set:function(e){this["_"+A]=e},enumerable:!0})};for(var a in this.commonParams)o(a);n&&Iy(this.log[i],"m3u8",{get:function(){if(t.__core__){var e=t.__core__.m3u8Text;return e?Xp(e).call(e,0,25e4):""}return""},enumerable:!0}),Iy(this.log[i],"volume",{get:function(){return t&&t.video&&t.volume||0},enumerable:!0}),Iy(this.log[i],"access",{get:function(){return XRe()},enumerable:!0})}},A.sendLog=function(e){for(var A in this.commonParams)void 0===e[A]&&(e[A]=this["_"+A]||this.commonParams[A]);this.logmanager.push(e)},A.updateExt=function(e){for(var A in this.log)for(var t in e)this.log[A][t]=e[t]},A.reportStartPlay=function(){this.started||(this.core=JRe(this.player),this.core&&(this.commonParams.live_sdk_version="2",this.logmanager.core=this.core),this.started=!0,this.log.start_play.start_play_time=this.log.start_play.timestamp=URe(),this.logmanager.push(this.log.start_play,!0))},A.initWindowListener=function(){"pc"===LRe.device?window.addEventListener("beforeunload",this.handleUserLeave):"mobile"===LRe.device&&(window.addEventListener("beforeunload",this.handleUserLeave),window.addEventListener("pagehide",this.handleUserLeave))},A.removeWindowListener=function(){"pc"===LRe.device?window.removeEventListener("beforeunload",this.handleUserLeave):"mobile"===LRe.device&&(window.removeEventListener("beforeunload",this.handleUserLeave),window.removeEventListener("pagehide",this.handleUserLeave))},A.initEvt=function(){var e=this,A=this.player;qRe.forEach((function(A){e["handleVideo"+A+"Evt"]=function(){e["handleVideo"+A]&&e["handleVideo"+A]()},e.initWindowListener(),e.bindVideoEvt(A,e["handleVideo"+A+"Evt"])})),A.once("error",this.handlePlayerError),A.once("complete",this.handlePlayerComlete),A.once("playing",this.handlePlayerPlaying),A.once("timeupdate",this.handlePlayerPlaying),A.once("destroy",this.destroyFunc),A.on("ready",this.handlePlayerReady),A.on("waiting",this.handlePlayerWaiting),A.on("pause",this.handlePlayerPause),A.on("urlchange",this.handleUrlChange),A.once("sourceopen",this.handleSourceOpen),A.once("bufferappend",this.handleBufferAppend),A.on("core_event",this.handleCoreEvent),A.on("degrade",this.handleDegrade),this.hiJackPlayerStart()},A.handleCoreEvent=function(e){var A=e.eventName,t=e.headers,n=e.pts,r=e.type,i=e.meta,o=e.sei,a=e.decodeFps,s=e.url,g=e.state;switch(A){case"core.ttfb":this.handleTTFB(e);break;case"core.loadresponseheaders":var c=t.get("X-Server-Ip");void 0!==this.player.hlsOps&&(this.log.play_stop.review_ts_count+=1),c&&(this.commonParams.cdn_ip=c);break;case"core.loadretry":this.log.play_stop.retry_count++;break;case"core.keyframe":this.handleKeyframe(n);break;case"core.metadataparsed":this.handleMetaDataLoaded(r,i);break;case"core.sei":this.handleSEIParsed(o);break;case"core.lowdecode":this.commonParams.is_wasm&&(sy(this.log.play_low_decode,e||{}),this.log.play_low_decode.decode_fps=a,this.log.play_low_decode.timestamp=URe(),this.logmanager.push(this.log.play_low_decode,!0),this.commonParams.is_wasm=0);break;case"core.largeavgap":this.handleAVUnsync(e);break;case"core.loadstart":this.handlePlayerLoadStream(e),this.reportStartPlay();break;case"core.loadcomplete":this.handlePlayerLoadedStream(e);break;case"core.streamexception":this.handleStreamException(e);break;case"core.rtcstatechange":this.logmanager.push(sy({url:s,state:g},this.log.rtcstatechange));break;case"core.rtcnetwork":this.logmanager.push(sy(e,this.log.rtc_network));break;case"core.rtcfirstframe":this.logmanager.push(sy(e,this.log.rtc_first_frame))}},A.handleDegrade=function(e){this.log.degrade.payload=e,this.logmanager.push(this.log.degrade,!0)},A.hiJackPlayerStart=function(){var e=arguments,A=this;this.player._start=this.player.start;var t=this.player;t.start=function(){try{if(t._start)return t._start.apply(t,Xp(Array.prototype).call(e,0))}catch(P7){}A.destroyed||A.handlePlayerComlete()}},A.handleTTFB=function(e){var A=e||{},t=A.end,n=A.elapsed,r=A.responseUrl,i=A.url;this.log.first_frame.ttfb=n||-1,this.log.first_frame.ttfb_end=t||0,this.log.first_frame.is_redirect=+(i!==r),this.log.play_result.is_redirect=this.log.first_frame.is_redirect},A.handleUrlChange=function(e){this.logmanager.push(sy(this.log.play_url_change,{url:e,timestamp:URe()}))},A.handleKeyframe=function(e){this.log.play_stop.is_firstframe_received=1,this.log.play_stop.firstframe_pts=e},A.handleSourceOpen=function(){this.log.source_opened.timestamp=URe(),this.logmanager.push(this.log.source_opened)},A.handleBufferAppend=function(){this.log.source_updateend.timestamp=URe(),this.logmanager.push(this.log.source_updateend)},A.handlePlayerPause=function(){this.log.pause.timestamp=URe(),this.logmanager.push(this.log.pause,!0),this.stallEnd()},A.handlePlayerError=function(e){this.errorNumber=1;var A=e.errorType,t=e.errorCode;sy(this.log.play_error,MRe({timestamp:URe(),code:t||("parse"===A?31:21)||"unknown",info:e.message,detail:$b(e),httpCode:e.httpCode},this.videoSize)),this.logmanager.push(this.log.play_error,!0),this.destroyed||(0===this.log.first_frame.first_frame_view&&(sy(this.log.first_frame_failed,{code:t||("parse"===A?31:21),msg:e.message}),void 0!==this.log.first_frame_failed.timestamp&&(this.log.first_frame_failed.timestamp=URe()),this.logmanager.push(this.log.first_frame_failed,!0),this.log.play_result.is_threshold||(this.clearPlayResultTimer(),this.log.play_result.reason=e.message||"first frame failed",this.log.play_result.code=this.log.play_error.code,this.logmanager.push(this.log.play_result))),this.options.error_report_stop?this.destroy(!0):this.updatePlayStopParams())},A.handlePlayerLoadStream=function(e){var A=e.url,t=e.offersdp,n=e.sessionId;if("string"==typeof A){var r=this.log.play_loadstream;r.timestamp=URe(),r.loadstream_url=A,r.offersdp=t,r.sessionId=n,this.logmanager.push(r)}},A.handlePlayerLoadedStream=function(e){var A=this.log.play_stream_loaded;A.timestamp=URe(),sy(A,e),this.logmanager.push(A)},A.handleSEIParsed=function(e){try{var A=this,t=A.log,n=t.playing,r=t.first_frame;if(100===e.code){var i=function(e){var A,t,n,r,i,o;for(A="",n=e.length,t=0;t>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:A+=String.fromCharCode(r);break;case 12:case 13:i=e[t++],A+=String.fromCharCode((31&r)<<6|63&i);break;case 14:i=e[t++],o=e[t++],A+=String.fromCharCode((15&r)<<12|(63&i)<<6|(63&o)<<0)}return A}(e.content);i=Xp(i).call(i,zp(i).call(i,"{"),SL(i).call(i,"}")+1);try{var o=JSON.parse(i),a=A.getPlayerBuffer();A.getFcdnE2EDelay(o,a);var s=a+A.ntpTime-o.ts;n.video_buffer_time=a,n.sei_delay=s,n.sei_source=o.source,n.ntp_sync=A.options.ntp?1:0,n.ntp_delta=A.ntp_delta,r.first_sei_delay=s,r.ntp_sync=A.options.ntp?1:0,r.ntp_delta=A.ntp_delta}catch(P7){}}return Op.resolve()}catch(P7){return Op.reject(P7)}},A.getFcdnE2EDelay=function(e,A){try{if("object"===wc(e.video_e2e_delay)){var t=e.video_e2e_delay,n=t.push_node,r=t.transpush_node,i=t.source_node,o=t.cmaf_source_node,a=t.hls_source_node,s=t.transpull_node,g=t.pull_node,c=this.log.playing;if(c.video_e2e_delay_json=$b(e.video_e2e_delay),"number"==typeof o){var l=YRe(o,n),u=YRe(o,i);c.fcdn_transfer_delay=l||u||0;var I=Math.max(0,Date.now()-o);c.fcdn_sei_delay=c.fcdn_transfer_delay+I+A,c.fcdn_push_to_cmaf_source=l,c.fcdn_source_to_cmaf_source=u}if("number"==typeof a){var h=YRe(a,n),C=YRe(a,i);c.fcdn_transfer_delay=h||C||0;var d=Math.max(0,Date.now()-a);c.fcdn_sei_delay=c.fcdn_transfer_delay+d+A,c.fcdn_push_to_hls_source=h,c.fcdn_source_to_hls_source=C}if("number"==typeof g){var E=YRe(g,n),f=YRe(g,i);c.fcdn_transfer_delay=E||f||0,c.fcdn_sei_delay=c.fcdn_transfer_delay+A,c.fcdn_push_to_pull=E,c.fcdn_source_to_pull=f}c.fcdn_push_to_transpush=YRe(r,g),c.fcdn_transpush_to_source=YRe(i,r),c.fcdn_push_to_source=YRe(i,n),c.fcdn_source_to_transpull=YRe(s,i),c.fcdn_transpull_to_pull=YRe(g,s)}}catch(P7){}},A.handleMetaDataLoaded=function(e,A){this.log.play_stop.meta=this.log.play_stop.meta||{},e&&(this.log.play_stop.meta[e]=A),this.log.play_metadata_loaded.timestamp=URe(),this.log.play_metadata_loaded.metadata_type=e,A&&(this.log.play_metadata_loaded.meta=A,this.log.play_metadata_loaded.codec=A.codec,"video"===e&&(this.commonParams.codec_type=A.codec,this.commonParams.codec_support=xRe(A.codec))),A||(this.log.play_metadata_loaded.meta=void 0,this.log.play_metadata_loaded.codec=void 0,"video"===e&&(this.commonParams.codec_type="unknown")),this.logmanager.push(this.log.play_metadata_loaded)},A.handleAVUnsync=function(e){sy(this.log.play_av_unsync,e||{}),this.log.play_av_unsync.timestamp=URe(),this.logmanager.push(this.log.play_av_unsync)},A.handleStreamException=function(e){this.logmanager.push(sy({},this.log.stream_exception,e))},A.setCore=function(){this.core=JRe(this.player)},A.handlePlayerComlete=function(){this.completed||(this.completed=!0,this.setCore(),this.core&&(this.commonParams.live_sdk_version="2",this.logmanager.core=this.core),(this.player.config.autoplay||this.player.config.videoInit)&&this.reportStartPlay())},A.getPlayerBuffer=function(){try{var e=this.player.plugins.rts||this.player.plugins.rtm;if(e)return e.jitterBufferDelay;var A=this.player.video.buffered;if(A){var t=Math.max(0,A.length-1),n=yRe(1e3*(A.end(t)-this.player.video.currentTime));return this.log.playing.audio_buffer_time=this.log.playing.video_buffer_time=n,n}}catch(WtA){return 0}},A.getTransferCost=function(e){var A;if(!(null===(A=this.core)||void 0===A?void 0:A.transferCost))return{};if(e)return this.core.transferCost;var t=this.core.transferCost,n=t.demuxCost,r=t.remuxCost,i=t.appendCost,o={demuxCost:n-this.cachePlaying.demuxCost,remuxCost:r-this.cachePlaying.remuxCost,appendCost:i-this.cachePlaying.appendCost};return sy(this.cachePlaying,this.core.transferCost),o},A.getPlayerDownloadSpeed=function(){return this.core&&this.core.core&&"function"==typeof this.core.core.speedInfo&&this.core.core.speedInfo().speed||{}},A.getPlayerQuality=function(){var e=this.player.video;if(e)if(e.getVideoPlaybackQuality){var A=e.getVideoPlaybackQuality();this.log.playing.drop_count=A.droppedVideoFrames-this.tempDroppedFrameCount,this.log.playing.drop_percent=DRe((A.droppedVideoFrames-this.tempDroppedFrameCount)/(A.totalVideoFrames-this.tempTotalFrameCount)).toFixed(1),this.log.play_stop.drop_percent=DRe(A.droppedVideoFrames/A.totalVideoFrames).toFixed(1),this.tempDroppedFrameCount=A.droppedVideoFrames,this.tempTotalFrameCount=A.totalVideoFrames}else if(void 0!==e.webkitDroppedFrameCount){var t=e.webkitDroppedFrameCount;this.log.playing.drop_count=t-this.tempDroppedFrameCount,this.tempDroppedFrameCount=t}},A.getRtcStats=function(e,A){try{var t=this,n=t.player.plugins.rts||t.player.plugins.rtm,r=n&&n.pc,i={};return r?Op.resolve(r.getStats()).then((function(A){return A.forEach((function(A){var n=A.type,r=A.mediaType,o=A.bytesReceived,a=A.packetsReceived,s=A.audioLevel,g=A.concealmentEvents,c=A.remoteTimestamp,l=A.timestamp,u=A.framesDropped,I=A.keyFramesDecoded,h=A.totalDecodeTime,C=A.framesDecoded,d=A.frameHeight,E=A.frameWidth,f=A.framesReceived,B=A.jitterBufferDelay,Q=A.jitterBufferEmittedCount,p=A.jitter,v=A.nackCount,y=A.packetsLost,m=A.pliCount,D=A.totalSamplesReceived,w=A.concealedSamples,R=A.currentRoundTripTime,k=A.decoderImplementation,S=A.mimeType,M=A.freezeCount,G=A.totalFreezesDuration,_=A.totalPausesDuration;switch(n){case"inbound-rtp":"audio"===r?(i.audio_bytes_received=o-(t.cacheRtcStats.audioBytesReceived||0),t.cacheRtcStats.audioBytesReceived=o,i.audio_packets_lost=y-(t.cacheRtcStats.audioPacketsLost||0),i.audio_packets_received=a-(t.cacheRtcStats.audioPacketsReceived||0),t.cacheRtcStats.audioPacketsLost=y,t.cacheRtcStats.audioPacketsReceived=a,i.audio_level=s,i.concealment_event=g,i.audio_fraction_lost=i.audio_packets_lost/i.audio_packets_received,void 0!==t.cacheRtcStats.totalSamplesReceived&&(i.audio_rec_sample_rate=(D-t.cacheRtcStats.totalSamplesReceived)/e),t.cacheRtcStats.totalSamplesReceived=D,i.concealed_samples=w,i.total_samples_received=D):(i.video_jb_delay=B/Q*1e3,i.frames_dropped=u,i.iframes_decoded=I,i.video_bytes_received=o-(t.cacheRtcStats.videoBytesReceived||0),t.cacheRtcStats.videoBytesReceived=o,i.video_dec_time=h,i.video_decoded_delay_ms=i.video_dec_elapse/C,i.video_frame_height=d,i.video_frame_width=E,void 0!==t.cacheRtcStats.framesDecoded&&(i.video_decode_framerate=(C-t.cacheRtcStats.framesDecoded)/e),t.cacheRtcStats.framesDecoded=C,void 0!==t.cacheRtcStats.framesReceived&&(i.video_recv_framerate=(f-t.cacheRtcStats.framesReceived)/e),void 0!==t.cacheRtcStats.freezeCount&&(i.freeze_count=M-t.cacheRtcStats.freezeCount,i.freeze_duration=G-t.cacheRtcStats.totalFreezesDuration),t.cacheRtcStats.freezeCount=M,t.cacheRtcStats.totalFreezesDuration=G,t.cacheRtcStats.framesReceived=f,i.total_pauses_duration=_,i.video_jitter=1e3*p,i.video_nack_count=v,i.video_packets_lost=y-(t.cacheRtcStats.videoPacketsLost||0),i.video_packets_received=a-(t.cacheRtcStats.videoPacketsReceived||0),i.video_fraction_lost=i.video_packets_lost/i.video_packets_received,t.cacheRtcStats.videoPacketsLost=y,t.cacheRtcStats.videoPacketsReceived=a,i.video_pli_count=m,i.decoder_name=k);break;case"remote-outbound-rtp":i.e2e_delay_ms=l-c;break;case"track":void 0!==E&&(i.video_frame_width=E,i.video_frame_height=d);break;case"candidate-pair":i.rtt=1e3*R;break;case"codec":PT(S).call(S,"video")?i.video_codec=S:i.audio_codec=r}})),sy(t.log.playing,{video_download_size:i.video_bytes_received,decode_fps:i.video_decode_framerate,width:i.video_frame_width,height:i.video_frame_height,current_speed:(i.audio_bytes_received+i.video_bytes_received)/e}),i})):Op.resolve(i)}catch(P7){return Op.reject(P7)}},A.reportPlaying=function(e){try{var A=this;A.commonParams.is_wasm&&(A.commonParams.fps=A.player.video.fps,A.log.playing.render_fps=A.player.video.fps,A.log.playing.decode_fps=A.player.video.decodeFps),A.log.playing.index++;var t,n=A.log.playing.timestamp;A.inWaitingStart&&A.inWaitingStart200?t:0)+A.log.playing.stall_time,l=(t>200?1:0)+A.log.playing.stall_count;return A.options.aggregationDowngradeStallTime&&(A.log.playing.aggregation_downgrade_stall=(t>A.options.aggregationDowngradeStallTime?t:0)+(A.log.playing.aggregation_downgrade_stall||0)),sy(A.log.playing,MRe(MRe({timestamp:s,stop_time:s,duration:e?0:g/1e3,stall_time_per_100sec:c/g*100,stall_count_per_100sec:1e3*l/g*100,stall_count:l,stall_time:c,play_current_time:A.player.currentTime},r),A.videoSize)),Op.resolve(A.getRtcStats(g,e)).then((function(t){var n={};if(A.core){if(A.core.getStats){var r=A.core.getStats()||{},i=r.bitrate,o=r.avgSpeed;sy(n,{bitrate:i,avg_speed:o,rate:o/i})}if(A.core.getNetWorkInfo){var a,s=(A.core.getNetWorkInfo()||{}).lostRate,c=((null===(a=A.core.core)||void 0===a?void 0:a._opts)||{}).networkEvaluateInterval;sy(n,{lostRate:s,networkEvaluateInterval:c})}}A.logmanager.push(sy({},A.log.playing,MRe(MRe({play_time:e?0:g},t),n)),!0),A.log.playing.download_speed_array=[],A.log.playing.stall_time=0,A.log.playing.stall_count=0,A.options.aggregationDowngradeStallTime&&(A.log.playing.aggregation_downgrade_stall=0)}))}catch(P7){return Op.reject(P7)}},A.handlePlayerPlaying=function(){try{var e=this;if(e.player&&e.player.video.readyState<3)return Op.resolve();if(e.player.off("playing",e.handlePlayerPlaying),e.player.off("timeupdate",e.handlePlayerPlaying),!e.player.video)return e.destroyFunc(),Op.resolve();if(e.player.paused)return e.handleVideopause(),Op.resolve();if(e.core&&e.core.getStats){var A=(e.core.getStats()||{}).fps;e.commonParams.fps=A}return Op.resolve(e.reportPlaying(!0)).then((function(){e.clearPlayingInterval();var A=e.options.playingInterval||1e4;e.intervalId=setInterval((function(){try{var t=function(){if(Math.abs(Date.now()-e.log.playing.timestamp-A)<100||Date.now()-e.log.playing.timestamp>=A){var t=function(){if(e.player&&e.player.video){var A=function(){if(!e.player.paused)return Op.resolve(e.reportPlaying()).then((function(){}));e.handleVideopause()}();if(A&&A.then)return A.then((function(){}))}else e.destroyFunc()}();if(t&&t.then)return t.then((function(){}))}}();return Op.resolve(t&&t.then?t.then((function(){})):void 0)}catch(P7){return Op.reject(P7)}}),1e3),e.clearStallTimer(),e.handleVideoplaying(),e.started||e.reportStartPlay(),e.saveBuffered()}))}catch(P7){return Op.reject(P7)}},A.handlePlayerReady=function(){var e=this;this.log.start_play.start_play_time=URe(),this.player.config.autoplay&&this.reportStartPlay(),this.options.playResultThreshold&&(this.log.play_result.threshold=this.options.playResultThreshold),this.clearPlayResultTimer(),this.log.play_result.start=URe(),this.playResultTimer=setTimeout((function(){e.log.play_result.timestamp>=e.log.play_result.start||e.player&&!e.player.paused&&e.player.video&&(e.log.play_result.is_threshold=1,e.logmanager.push(e.log.play_result,!0))}),this.log.play_result.threshold)},A.handlePlayerWaiting=function(){var e=this;if(!this.inWaitingStart&&this.log.first_frame.timestamp){this.log.stall.timestamp=this.inWaitingStart=this.log.stall.stall_start=URe(),this.log.stall_start.ready_state=this.log.stall.ready_state=this.player.video.readyState,this.log.stall_start.timestamp=URe(),this.log.stall_start.stall_start_time=URe(),this.log.stall_start.video_buffer_time=this.getPlayerBuffer(),this.log.stall_start.play_current_time=this.player.currentTime,this.log.stall.play_current_time=this.player.currentTime,this.log.stall_start.buffered=this.getBuffered(),this.log.stall.buffered=this.log.stall_start.buffered;var A=this.getPlayerDownloadSpeed(),t=A.speed,n=A.avgSpeed;this.log.stall.current_speed=t,this.log.stall.avg_speed=n,sy(this.log.stall_start,this.videoSize),this.clearStallTimer(),this.stallStartTimer=setTimeout((function(){e.logmanager.push(e.log.stall_start,!0)}),205)}},A.handleVideoseeking=function(){},A.handleVideoseeked=function(){},A.handleVideoplay=function(){this.reportStartPlay(),this.removeVideoEvt("play",this.handleVideoplay)},A.handleVideotimeupdate=function(){Math.abs(this.player.currentTime-this.log.stall_start.play_current_time)>.2&&this.stallEnd(),this.saveBuffered()},A.handleVideocanplay=function(){this.stallEnd(),this.reportFirstframe()},A.handleVideoplaying=function(){this.stallEnd(),this.log.play_stop.is_stream_received=1;var e=URe();this.reportStartPlay(),this.log.first_frame.start=e},A.stallEnd=function(){this.clearStallTimer();var e=URe();if(this.inWaitingStart){var A=e-this.inWaitingStart;A>200&&(this.log.play_stop.stall_count++,this.log.play_stop.stall_time+=e-this.inWaitingStart,this.log.playing.stall_time+=e-Math.max(this.inWaitingStart,this.log.playing.timestamp),this.log.stall.stall_end=e,this.log.stall.timestamp=URe(),this.log.playing.stall_count++,sy(this.log.stall,MRe({},this.videoSize)),this.logmanager.push(this.log.stall,!0)),this.options.aggregationDowngradeStallTime&&A>this.options.aggregationDowngradeStallTime&&(this.log.playing.aggregation_downgrade_stall=(this.log.playing.aggregation_downgrade_stall||0)+(e-Math.max(this.inWaitingStart,this.log.playing.timestamp)))}this.inWaitingStart=0},A.handleVideoloadeddata=function(){this.reportFirstframe()},A.handleVideoratechange=function(){this.log.playing.speed_switch_count++,this.log.playing.speed_switch_info=this.player.video.playbackRate},A.handleVideoended=function(){this.clearPlayingInterval(),this.clearStallTimer(),sy(this.log.playing,{is_last:1}),this.reportPlaying()},A.handleVideoerror=function(){var e=this;this.errorNumber=1;var A=this.player.video.error;sy(this.log.play_error,MRe(MRe({timestamp:URe()},this.videoSize),A&&{code:A.code,info:A.message})),this.logmanager.push(this.log.play_error,!0),0!==e.log.first_frame.first_frame_view||e.log.first_frame_failed.code||A&&(e.log.first_frame_failed.code=A.code,e.log.first_frame_failed.msg=zRe[A.code],void 0!==e.log.first_frame_failed.timestamp&&(e.log.first_frame_failed.timestamp=URe()),e.logmanager.push(e.log.first_frame_failed,!0),e.log.play_result.is_threshold||(e.log.play_result.reason=zRe[A.code]||"first frame failed",e.log.play_result.code=A.code,e.clearPlayResultTimer(),e.logmanager.push(e.log.play_result,!0))),e.options.error_report_stop?e.handleUserLeave():e.updatePlayStopParams()},A.handleVideopause=function(){this.stallEnd(),this.clearPlayingInterval(),this.clearStallTimer(),this.clearPlayResultTimer(),clearTimeout(this.collectDownloadSpeedTimer),this.player.once("playing",this.handlePlayerPlaying),this.player.once("timeupdate",this.handlePlayerPlaying)},A.handleUserLeave=function(){try{var e=this;return e.destroyed||!e.started?Op.resolve():(e.destroyed=!0,Op.resolve(e.updatePlayStopParams()).then((function(){e.reportPlayStop(),e.clearPlayingInterval(),e.clearStallTimer(),clearTimeout(e.collectDownloadSpeedTimer),e.removeWindowListener()})))}catch(P7){return Op.reject(P7)}},A.saveBuffered=function(){try{var e=this.getBuffered();e&&e.length&&(this.log.play_stop.buffered=e)}catch(WtA){}},A.getBuffered=function(){try{for(var e=[],A=this.player.video,t=0;t200&&(i.stall_time+=r-t.inWaitingStart),t.inWaitingStart=0,sy(i,MRe({stall_time_per_100sec:i.stall_time/t.playedTime*100,stall_count_per_100sec:1e3*i.stall_count/t.playedTime*100},n)),0===t.log.play_stop.stall_count_per_100sec&&(t.log.play_stop.stall_time_per_100sec=0),t.log.play_stop.stall_time_per_100sec>100||t.log.play_stop.stall_time_per_100sec<0)return Op.resolve();if(t.log.playing.index?(sy(t.log.playing,{is_last:1}),t.reportPlaying()):(t.log.play_stop.error_code=t.log.play_error.code,t.log.play_stop.error_info=t.log.play_error.info),r=URe(),null===(e=t.core)||void 0===e?void 0:e.getStats){var o=t.core.getStats()||{},a=o.totalReceivedByte,s=o.totalReceivedCost;sy(t.log.play_stop,{totalReceivedByte:a,totalReceivedCost:s,totalAverageSpeed:8*a/(s/1e3)})}var g=function(){var e;if("function"==typeof(null===(e=t.core)||void 0===e?void 0:e.getStatsSnapshoot))return Op.resolve(t.core.getStatsSnapshoot()).then((function(e){var A=(null==e?void 0:e.video)||{},t=A.packetsLost,n=A.packetsReceived;sy(i,{packetsLost:t,packetsReceived:n,totalLostRate:t/(t+n)})}))}();return Op.resolve(g&&g.then?g.then(A):A())}catch(P7){return Op.reject(P7)}},A.clearPlayingInterval=function(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null)},A.clearStallTimer=function(){clearTimeout(this.stallStartTimer)},A.clearPlayResultTimer=function(){clearTimeout(this.playResultTimer)},A.destroy=function(e){this.destroyFunc(!e)},A.bindVideoEvt=function(e,A){this.player&&this.player.video.addEventListener(e,A,!1)},A.removeVideoEvt=function(e,A){this.player&&this.player.video&&this.player.video.removeEventListener(e,A,!1)},A.send=function(e,A){this.logmanager.send(e,A)},e}(),ZRe=["userId","deviceId","enable","appId"],$Re=new(function(){function e(){GE(this,e),LE(this,"tea",void 0),LE(this,"liveLogger",void 0),LE(this,"_userId",void 0),LE(this,"_deviceId",void 0),LE(this,"_appId",void 0),LE(this,"_ext",void 0)}return NE(e,[{key:"userId",get:function(){return this._userId}},{key:"deviceId",get:function(){return this._deviceId}},{key:"channel",get:function(){return"cn"}},{key:"appId",get:function(){return this._appId}},{key:"updateExt",value:function(e){var A;this._ext=e,null===(A=this.liveLogger)||void 0===A||A.updateExt(this._ext)}},{key:"init",value:function(e){var A=null!=e?e:{},t=A.userId,n=A.deviceId,r=A.enable,i=A.appId,o=Af(A,ZRe);this._userId=t||function(){var e=localStorage.getItem(Iye);return e||(e=hye(12),localStorage.setItem(Iye,e),e)}(),this._deviceId=n||function(){var e=localStorage.getItem(uye);return e||(e=hye(11),localStorage.setItem(uye,e),e)}(),this._appId=i||654925,!1!==r&&(this.tea=this._createTea(o))}},{key:"createPlayerLogger",value:function(e){return this.liveLogger=new VRe(Ff(Ff({},e),{},{ext:Ff(Ff({},e.ext),this._ext)})),this.liveLogger}},{key:"_createTea",value:function(e){var A=new pRe("player_track");return A.init(Ff(Ff({},e),{},{app_id:468759,channel:"cn"})),A.start(),A.config({user_unique_id:this._userId,device_id:this._deviceId}),A}}]),e}()),eke=(LE(ORe={},Ole.RTM,{BASE_LICENSE_NOT_SUPPORT:{type:"BASE_LICENSE_NOT_SUPPORT",feature:Ole.RTM,code:Zle.BASE_LICENSE_RTM_NOT_SUPPORT},LICENSE_EXPIRED:{type:"LICENSE_EXPIRED",feature:Ole.RTM,code:Zle.LICENSE_EXPIRED_RTM}}),LE(ORe,"rtmAdaptiveBuffer",{BASE_LICENSE_NOT_SUPPORT:{type:"BASE_LICENSE_NOT_SUPPORT",feature:Ole.RTM_ADAPTIVE_BUFFER},LICENSE_EXPIRED:{type:"LICENSE_EXPIRED",feature:Ole.RTM_ADAPTIVE_BUFFER}}),LE(ORe,Ole.PRELOAD,{BASE_LICENSE_NOT_SUPPORT:{type:"BASE_LICENSE_NOT_SUPPORT",feature:Ole.PRELOAD},LICENSE_EXPIRED:{type:"LICENSE_EXPIRED",feature:Ole.PRELOAD}}),LE(ORe,Ole.ABR,{BASE_LICENSE_NOT_SUPPORT:{type:"BASE_LICENSE_NOT_SUPPORT",feature:Ole.ABR},LICENSE_EXPIRED:{type:"LICENSE_EXPIRED",feature:Ole.ABR}}),LE(ORe,Ole.FLV_LOW_LATENCY,{BASE_LICENSE_NOT_SUPPORT:{type:"BASE_LICENSE_NOT_SUPPORT",feature:Ole.FLV_LOW_LATENCY},LICENSE_EXPIRED:{type:"LICENSE_EXPIRED",feature:Ole.FLV_LOW_LATENCY}}),ORe),Ake=[Ole.RTM_ADAPTIVE_BUFFER,Ole.ABR,Ole.FLV_LOW_LATENCY],tke=function(){function e(){GE(this,e),LE(this,"player",void 0),LE(this,"eventList",[])}return NE(e,[{key:"emitLicenseEvent",value:function(e,A){var t,n;this.player?(this.player.emit(eF.LICENSE_STATUS_WARNING,null==eke||null===(t=eke[e])||void 0===t?void 0:t[A]),null===(n=$Re.liveLogger)||void 0===n||n.sendLog({event_key:"license_not_supported",feature:e,type:A})):this.eventList.push({feature:e,type:A})}},{key:"start",value:function(e){var A=this;this.player=e,this.eventList.forEach((function(e){var t,n,r,i=e.feature,o=e.type;null===(t=A.player)||void 0===t||t.emit(eF.LICENSE_STATUS_WARNING,null===(n=eke[i])||void 0===n?void 0:n[o]),null===(r=$Re.liveLogger)||void 0===r||r.sendLog({event_key:"license_not_supported",feature:i,type:o})})),this.eventList=[]}}]),e}(),nke=function(){function e(){GE(this,e),LE(this,"licenseSupportModuleList",[]),LE(this,"licenseStatusResult",void 0),LE(this,"licenseCheckResult",void 0)}var A;return NE(e,[{key:"create",value:(A=aE(iE().mark((function e(){var A,t,n,r;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Op.all([qle.checkLicense(),qle.checkModuleList()]);case 2:A=e.sent,t=rF(A,2),n=t[0],r=t[1],this.licenseSupportModuleList=r,this.licenseStatusResult=n.licenseStatusResult,this.licenseCheckResult=n.licenseCheckResult;case 9:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"bindPlayer",value:function(e){ike.start(e)}},{key:"getLicenseFatalError",value:function(){return this.licenseStatusResult===zle.LICENSE_STATUS_INVALID?(console.warn("current license is invalid, please check license"),Zle.LICENSE_STATUS_INVALID):this.licenseStatusResult===zle.LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH?(console.warn("current license domain not match, please check license"),Zle.LICENSE_STATUS_ERROR_DOMAIN_NOT_MATCH):void 0}},{key:"checkLiveLicenseFeature",value:function(e){var A;if(PT(Ake).call(Ake,e)&&!PT(A=qle.licenseSupportModuleList).call(A,e)){var t,n,r;if(this.licenseCheckResult===Jle.EDITION_STANDARD)return ike.emitLicenseEvent(e,"BASE_LICENSE_NOT_SUPPORT"),console.warn(xf(t="current license edition ".concat(this.licenseCheckResult," not support ")).call(t,e,", please upgrade to premium edition")),null===(n=eke[e])||void 0===n?void 0:n.BASE_LICENSE_NOT_SUPPORT;if(this.licenseStatusResult===zle.LICENSE_STATUS_EXPIRED)return ike.emitLicenseEvent(e,"LICENSE_EXPIRED"),console.warn("license is expired, ".concat(e," feature is not supported, please upgrade to premium edition")),null===(r=eke[e])||void 0===r?void 0:r.LICENSE_EXPIRED}}}]),e}(),rke=new nke,ike=new tke,oke=function(e){Yk(i,e);var A,t,n,r=Jk(i);function i(){return GE(this,i),r.apply(this,arguments)}return NE(i,[{key:"protocolType",get:function(){return Bye}},{key:"defaultFallbackStrategy",get:function(){return{}}},{key:"canPlay",value:(n=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{canPlay:Rye(),extraInfo:{isFLVSupported:Rye()}});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})},{key:"shouldFallbackWhenStall",value:function(){return!1}},{key:"getProtocolStrategy",value:(t=aE(iE().mark((function e(A,t){var n,r;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.enableSelector){e.next=7;break}return e.next=4,_ye(Ff(Ff({},A),{},{flv:Ff(Ff({},A.flv),{},{enableLowLatency:!1})}));case 4:this.protocolStrategy=e.sent,e.next=12;break;case 7:return(r=null===(n=A.flv)||void 0===n?void 0:n.enableLowLatency)&&rke.checkLiveLicenseFeature(Ole.FLV_LOW_LATENCY)&&(r=!1),e.next=11,_ye(Ff(Ff({},A),{},{flv:Ff(Ff({},A.flv),{},{enableLowLatency:r})}));case 11:this.protocolStrategy=e.sent;case 12:return e.abrupt("return",this.protocolStrategy);case 13:case"end":return e.stop()}}),e,this)}))),function(e,A){return t.apply(this,arguments)})},{key:"getAbrStrategy",value:(A=aE(iE().mark((function e(A){var t,n,r,i;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=null==A||null===(t=A.flv)||void 0===t?void 0:t.abr){e.next=3;break}return e.abrupt("return",{});case 3:return e.next=5,FL(VF.PluginAbr).catch((function(){}));case 5:if(i=e.sent,!rke.checkLiveLicenseFeature(Ole.ABR)){e.next=9;break}return e.abrupt("return",{});case 9:return e.abrupt("return",{options:{abr:Ff(Ff({},r),{},{open:null===(n=r.enable)||void 0===n||n})},plugins:[null==i?void 0:i.AbrPlugin]});case 10:case"end":return e.stop()}}),e)}))),function(e){return A.apply(this,arguments)})},{key:"getDrmStrategy",value:function(){}},{key:"updateDrmConfig",value:function(){}},{key:"getTeaParams",value:function(){var e;return null===(e=this.protocolStrategy)||void 0===e||null===(e=e.options)||void 0===e?void 0:e.flv}}],[{key:"suffix",get:function(){return".flv"}},{key:"generateUrl",value:function(e,A){var t,n=A.generateUrlFromOtherProtocol;return null!==(t=e[Bye])&&void 0!==t?t:n()}},{key:"canGenerateOtherProtocol",value:function(){return!0}}]),i}(Mye),ake=function(e){Yk(r,e);var A,t,n=Jk(r);function r(){return GE(this,r),n.apply(this,arguments)}return NE(r,[{key:"protocolType",get:function(){return pye}},{key:"canPlay",value:(t=aE(iE().mark((function e(){var A;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!(A=rke.checkLiveLicenseFeature(Ole.FLV_LOW_LATENCY))){e.next=3;break}return e.abrupt("return",{canPlay:!1,extraInfo:{flvLowLatencyNotSupportedError:A}});case 3:return e.abrupt("return",MF(Pk(r.prototype),"canPlay",this).call(this));case 4:case"end":return e.stop()}}),e,this)}))),function(){return t.apply(this,arguments)})},{key:"getProtocolStrategy",value:(A=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,_ye(Ff(Ff({},A),{},{flv:Ff(Ff({},A.flv),{},{enableLowLatency:!0})}));case 2:return this.protocolStrategy=e.sent,e.abrupt("return",this.protocolStrategy);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return A.apply(this,arguments)})}]),r}(oke);function ske(e){var A;return(null==e||null===(A=e.drm)||void 0===A?void 0:A.fairplay)&&("safari"===cw.browser||cw.os.isIos)}function gke(e){var A,t;return!ske(e)&&("mobile"!==cw.device||null===(A=null==e||null===(t=e.hls)||void 0===t?void 0:t.enableMSE)||void 0===A||A)}function cke(e){var A,t;return null===(A=null===(t=e.hls)||void 0===t?void 0:t.enableHlsJs)||void 0===A||A}function lke(e){var A={};for(var t in e)if(e.hasOwnProperty(t)){var n=yye[t],r=e[t];n&&r&&(A[n]={licenseUrl:null==r?void 0:r.serverProcessSPCPath,serverCertificateUrl:null==r?void 0:r.serverCertificatePath})}return{emeEnabled:!0,drmSystems:A}}var uke=tU.isMseSupported,Ike=function(){var e=aE(iE().mark((function e(t){var n,r,i,o,a,s,g,c,l,u,I,h,C,d;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,eY(t);case 2:return g=e.sent,e.next=5,rY(t,g);case 5:if(c=e.sent,l=cke(t),c&&(s=g===A.H265?$x():Zx(),a=Wx(t,l)),gke(t)&&uke("unknown"===g?A.H264:g)&&(a=Wx(t,l)),a||s){e.next=11;break}return e.abrupt("return",{});case 11:return e.next=13,Op.all([(null===(n=a)||void 0===n?void 0:n.module)&&FL(a.module).catch((function(){})),(null===(r=s)||void 0===r?void 0:r.module)&&FL(s.module).catch((function(){}))]);case 13:return u=e.sent,I=rF(u,2),h=I[0],(null==(C=I[1])?void 0:C.XGVideoPlugin)&&(null===(i=s)||void 0===i||null===(o=i.afterLoad)||void 0===o||o.call(i,null==C?void 0:C.XGVideoPlugin)),d=oY([a,s]),e.abrupt("return",{options:d,plugins:null!=h&&h.HlsPlugin?[h.HlsPlugin]:[]});case 20:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}();function hke(e,A,t){e[A]||(e[A]=[]),e[A].push(t)}function Cke(e){return wF(e).call(e,(function(e,A){var t,n,r=wF(t=A.definitions).call(t,(function(e,A){var t=function(e){return"string"==typeof e?WL(e):e.type?e.type:WL(e.url)}(A);return hke(e,t,A),e}),{});return Jp(n=jp(r)).call(n,(function(t){hke(e,t,Ff(Ff({},A),{},{definitions:r[t]}))})),e}),{})}function dke(e,A){var t=[];return null==e||e.forEach((function(e){var n=[];e.definitions.forEach((function(e){var t;"string"==typeof e?n.push(A(e)):n.push(Ff(Ff({},e),{},{url:A(e.url),fallbackUrls:null===(t=e.fallbackUrls)||void 0===t?void 0:Jp(t).call(t,(function(e){return A(e)}))}))})),t.push(Ff(Ff({},e),{},{definitions:n}))})),t}var Eke=function(e){Yk(a,e);var A,t,n,r,i,o=Jk(a);function a(){return GE(this,a),o.apply(this,arguments)}return NE(a,[{key:"protocolType",get:function(){return Eye}},{key:"defaultFallbackStrategy",get:function(){return{}}},{key:"canPlay",value:(i=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{canPlay:!0});case 1:case"end":return e.stop()}}),e)}))),function(){return i.apply(this,arguments)})},{key:"shouldFallbackWhenStall",value:function(){return!1}},{key:"getProtocolStrategy",value:(r=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ike(A);case 2:return this.protocolStrategy=e.sent,e.abrupt("return",this.protocolStrategy);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"getAbrStrategy",value:(n=aE(iE().mark((function e(A){var t,n,r,i;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=null==A||null===(t=A.hls)||void 0===t?void 0:t.abr){e.next=3;break}return e.abrupt("return",{});case 3:return e.next=5,FL(VF.PluginAbr).catch((function(){}));case 5:return i=e.sent,e.abrupt("return",{options:{hlsabr:Ff(Ff({},r),{},{open:null===(n=r.enable)||void 0===n||n})},plugins:[null==i?void 0:i.HlsAbrPlugin]});case 7:case"end":return e.stop()}}),e)}))),function(e){return n.apply(this,arguments)})},{key:"updateDrmConfig",value:(t=aE(iE().mark((function e(A,t){var n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A){e.next=2;break}return e.abrupt("return");case 2:if(i=null==t||null===(n=t._player)||void 0===n||null===(n=n.plugins)||void 0===n?void 0:n.drm,o=null==t||null===(r=t._player)||void 0===r||null===(r=r.plugins)||void 0===r?void 0:r.hls,!i){e.next=9;break}return i.restart(),e.abrupt("return",i.updateConfig(A));case 9:o&&(o.config=Ff(Ff({},o.config),lke(A)));case 10:case"end":return e.stop()}}),e)}))),function(e,A){return t.apply(this,arguments)})},{key:"getDrmStrategy",value:(A=aE(iE().mark((function e(A,t){var n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=t.player,e.prev=1,null!=A&&A.drm){e.next=4;break}return e.abrupt("return",{options:{},plugins:[]});case 4:if(i=null!==(r=null==A?void 0:A.drm)&&void 0!==r?r:{},ske(A)||!cke(A)){e.next=7;break}return e.abrupt("return",{options:{hls:Ff(Ff({},A.hls),lke(i))},plugins:[]});case 7:return e.next=9,FL(VF.PluginDrm).then((function(e){return e.DrmPlugin})).catch((function(){}));case 9:if(o=e.sent,e.t0=i,!e.t0){e.next=14;break}return e.next=14,null==n?void 0:n.updateDrmConfig(i);case 14:return e.abrupt("return",{options:{drm:i},plugins:o?[o]:[]});case 17:e.prev=17,e.t1=e.catch(1),console.log(e.t1);case 20:return e.abrupt("return",{});case 21:case"end":return e.stop()}}),e,null,[[1,17]])}))),function(e,t){return A.apply(this,arguments)})},{key:"getTeaParams",value:function(){var e;return null===(e=this.protocolStrategy)||void 0===e||null===(e=e.options)||void 0===e?void 0:e.hls}}],[{key:"suffix",get:function(){return".m3u8"}},{key:"canGenerateOtherProtocol",value:function(){return!0}},{key:"generateUrl",value:function(e,A){var t=A.generateUrlFromOtherProtocol;return e[Eye]?e[Eye]:e[fye]?dke(e[fye],(function(e){return tU.appendSearchParams(e,{fpkey_normal_hls:"1"})})):t()}}]),a}(Mye),fke=function(e){Yk(r,e);var A,t,n=Jk(r);function r(){return GE(this,r),n.apply(this,arguments)}return NE(r,[{key:"protocolType",get:function(){return fye}},{key:"defaultFallbackStrategy",get:function(){return{}}},{key:"canPlay",value:(t=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{canPlay:!0});case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"shouldFallbackWhenStall",value:function(){return!1}},{key:"getProtocolStrategy",value:(A=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Ike(A);case 2:return this.protocolStrategy=e.sent,e.abrupt("return",this.protocolStrategy);case 4:case"end":return e.stop()}}),e,this)}))),function(e){return A.apply(this,arguments)})}],[{key:"suffix",get:function(){return".m3u8"}},{key:"generateUrl",value:function(e){return e[fye]}},{key:"canGenerateOtherProtocol",value:function(){return!0}}]),r}(Eke);function Bke(){return Qke.apply(this,arguments)}function Qke(){return(Qke=aE(iE().mark((function e(){var A,t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,FL(VF.PluginRtm);case 2:return A=e.sent,t=A.RtmPlugin,e.abrupt("return",t.isSupported());case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function pke(){return vke.apply(this,arguments)}function vke(){return vke=aE(iE().mark((function e(){var A,t,n,r=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=r.length>0&&void 0!==r[0]?r[0]:PtA.H264,e.next=3,FL(VF.PluginRtm);case 3:if(t=e.sent,n=t.RtmPlugin,A!==PtA.H264){e.next=7;break}return e.abrupt("return",n.isSupportedH264());case 7:return e.abrupt("return",!1);case 8:case"end":return e.stop()}}),e)}))),vke.apply(this,arguments)}var yke=["fallbackUrl","enableRTMAutoTranscode"],mke={options:{},module:VF.PluginRtm},Dke=function(e){return"pc"===cw.device?e.replace(".sdp",".flv"):e.replace(".sdp",".m3u8")},wke=function(){var e=aE(iE().mark((function e(t,n,r){var i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y,m,D,w,R,k,S;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return g="",c=t.url,l=t.playlist,u=t.rtm||{},I=u.fallbackUrl,h=u.enableRTMAutoTranscode,C=Af(u,yke),d=t.rtm||{},E=d.enableFallback,f=void 0===E||E,null!=l&&l.length&&(f=!1),B=h||"true"===(null===(i=LL(c))||void 0===i?void 0:i.searchParams.get("enableRTMAutoTranscode")),f&&(I?g=I:B&&c?g=Dke(c):console.warn(eue(Zle.EMPTY_RTM_FALLBACK_PARAMETER,r).message)),"flv"===(Q=g&&tU.getStreamType(g))&&tU.isMseSupported(A.H264)?s=qx(t):"hls"===Q&&("mobile"!==cw.device||null!=t&&null!==(o=t.hls)&&void 0!==o&&o.enableMSE)&&tU.isMseSupported(A.H264)&&(s=Wx(t)),e.next=11,Op.all([FL(mke.module).then((function(e){return e.RtmPlugin})).catch((function(){})),s&&FL(s.module).then((function(e){var A,t;return(null===(A=s)||void 0===A?void 0:A.module)===VF.PluginFlv?e.FlvPlugin:(null===(t=s)||void 0===t?void 0:t.module)===VF.PluginHls?e.HlsPlugin:void 0})).catch((function(){}))]);case 11:if(p=e.sent,v=rF(p,2),y=v[0],m=v[1],!g){e.next=25;break}return e.next=18,Op.all([Bke(),pke()]);case 18:if(D=e.sent,w=rF(D,2),R=w[0],k=w[1],R&&k){e.next=25;break}return n&&n.emit("degrade",{url:g,originRtmUrl:c,code:"NOT_SUPPORT",message:"not support rtm or h264",isRTMSupported:R,isRTMSupportCodec:k}),e.abrupt("return",{options:Ff(Ff({},(null===(S=s)||void 0===S?void 0:S.options)||{}),{},{url:g,_RTMdegrade:{_originRtmUrl:c,_isRTMSupported:R,_isRTMSupportCodec:k}}),plugins:m?[m]:[]});case 25:return e.abrupt("return",{options:Ff(Ff({},(null===(a=s)||void 0===a?void 0:a.options)||{}),{},{url:h&&c?tU.appendSearchParams(c,{enableRTMAutoTranscode:"true"}):void 0,_RTMdegrade:void 0,rts:Ff(Ff({retryCount:3},C),{},{backupURL:g,backupConstruct:m})}),plugins:y?[y]:[]});case 26:case"end":return e.stop()}}),e)})));return function(A,t,n){return e.apply(this,arguments)}}(),Rke=function(e){Yk(r,e);var A,t,n=Jk(r);function r(){return GE(this,r),n.apply(this,arguments)}return NE(r,[{key:"protocolType",get:function(){return Qye}},{key:"defaultFallbackStrategy",get:function(){return LE({},Sye.Error,{excludeList:[2104,2103,2101,2100]})}},{key:"canPlay",value:(t=aE(iE().mark((function e(){var A,t,n,r,i;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Op.all([Bke(),pke()]);case 2:return A=e.sent,t=rF(A,2),n=t[0],r=t[1],i=rke.checkLiveLicenseFeature(Ole.RTM),e.abrupt("return",{canPlay:n&&r&&!i,extraInfo:{isRTMSupported:n,isRTMSupportCodec:r,licenseRtmNotSupportedError:i}});case 8:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"shouldFallbackWhenStall",value:function(){return!1}},{key:"getProtocolStrategy",value:(A=aE(iE().mark((function e(A,t){var n,r,i,o,a;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.player,i=t.i18n,o=t.enableSelector,null==(a=rke.checkLiveLicenseFeature(Ole.RTM))||!a.code){e.next=4;break}throw eue(a.code,i);case 4:return rke.checkLiveLicenseFeature(Ole.RTM_ADAPTIVE_BUFFER)&&null!==(n=A.rtm)&&void 0!==n&&n.enableAdaptiveJitterBuffer&&(A.rtm.enableAdaptiveJitterBuffer=!1),e.next=8,wke(o?{options:A,rtm:Ff(Ff({},A.rtm),{},{enableFallback:!1})}:A,r,i);case 8:return this.protocolStrategy=e.sent,e.abrupt("return",this.protocolStrategy);case 10:case"end":return e.stop()}}),e,this)}))),function(e,t){return A.apply(this,arguments)})},{key:"getAbrStrategy",value:function(){}},{key:"getDrmStrategy",value:function(){}},{key:"updateDrmConfig",value:function(){}},{key:"getTeaParams",value:function(){var e;return null===(e=this.protocolStrategy)||void 0===e||null===(e=e.options)||void 0===e?void 0:e.rts}}],[{key:"suffix",get:function(){return".sdp"}},{key:"canGenerateOtherProtocol",value:function(e){var A;return null===(A=e.rtm)||void 0===A?void 0:A.enableRTMAutoTranscode}},{key:"generateUrl",value:function(e,A){var t,n=A.generateUrlFromOtherProtocol,r=A.options;return e[Qye]?e[Qye]:null!==(t=r.rtm)&&void 0!==t&&t.enableRTMAutoTranscode?n():void console.warn("鐢熸垚 rtm 鍦板潃澶辫触銆傝浼犲叆 rtm 鎾斁鍦板潃锛屾垨寮€鍚嚜鍔ㄨ浆鐮�")}}]),r}(Mye),kke=function(){function e(A){var t=A.queue,n=A.streams,r=A.options;GE(this,e),LE(this,"current",void 0),LE(this,"_queue",void 0),LE(this,"_streams",void 0),LE(this,"_options",void 0),this._queue=t,this._streams=n,this._options=r,this.current=this._getStartProtocol()}var A;return NE(e,[{key:"getProtocol",value:(A=aE(iE().mark((function e(){var A,t,n,r,i,o=arguments;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t=o.length>0&&void 0!==o[0]?o[0]:{},this.current){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,this.current.canPlay();case 5:if(e.t1=A=e.sent,e.t0=null!==e.t1,!e.t0){e.next=9;break}e.t0=void 0!==A;case 9:if(!e.t0){e.next=13;break}e.t2=A,e.next=14;break;case 13:e.t2={};case 14:if(n=e.t2,r=n.canPlay,i=n.extraInfo,t[this.current.protocolType]=Ff({canPlay:r},i),!r){e.next=20;break}return e.abrupt("return",this.current);case 20:return this.next(),e.abrupt("return",this.getProtocol(t));case 22:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"next",value:function(){var e;this.current=null===(e=this.current)||void 0===e?void 0:e.nextProtocol}},{key:"_getStartProtocol",value:function(){for(var e,A=this._queue.length-1;A>=0;A--){var t=this._queue[A],n=this._streams[t];n&&(e&&(e.preProtocol=n,n.nextProtocol=e),e=n)}return e}}]),e}(),Ske=function(e){Yk(t,e);var A=Jk(t);function t(e){var n=e.streams,r=e.options;return GE(this,t),A.call(this,{queue:t.queue,streams:n,options:r})}return NE(t)}(kke);LE(Ske,"queue",[Qye,pye,Bye,fye,Eye]);var Mke=function(e){Yk(t,e);var A=Jk(t);function t(e){var n,r=e.streams,i=e.options;return GE(this,t),A.call(this,{queue:null===(n=i.fallback)||void 0===n?void 0:n.fallbackOrder,streams:r,options:i})}return NE(t)}(kke);LE(Mke,"queue",void 0);var Gke={exports:{}};!function(e,A){var t="__lodash_hash_undefined__",n=9007199254740991,i="[object Arguments]",o="[object AsyncFunction]",a="[object Function]",s="[object GeneratorFunction]",g="[object Null]",c="[object Object]",l="[object Proxy]",u="[object Undefined]",I=/^\[object .+?Constructor\]$/,h=/^(?:0|[1-9]\d*)$/,C={};C["[object Float32Array]"]=C["[object Float64Array]"]=C["[object Int8Array]"]=C["[object Int16Array]"]=C["[object Int32Array]"]=C["[object Uint8Array]"]=C["[object Uint8ClampedArray]"]=C["[object Uint16Array]"]=C["[object Uint32Array]"]=!0,C[i]=C["[object Array]"]=C["[object ArrayBuffer]"]=C["[object Boolean]"]=C["[object DataView]"]=C["[object Date]"]=C["[object Error]"]=C[a]=C["[object Map]"]=C["[object Number]"]=C[c]=C["[object RegExp]"]=C["[object Set]"]=C["[object String]"]=C["[object WeakMap]"]=!1;var d="object"==wc(r)&&r&&r.Object===Object&&r,E="object"==("undefined"==typeof self?"undefined":wc(self))&&self&&self.Object===Object&&self,f=d||E||Function("return this")(),B=A&&!A.nodeType&&A,Q=B&&e&&!e.nodeType&&e,p=Q&&Q.exports===B,v=p&&d.process,y=function(){try{var e=Q&&Q.require&&Q.require("util").types;return e||v&&v.binding&&v.binding("util")}catch(P7){}}(),m=y&&y.isTypedArray;var D=Array.prototype,w=Function.prototype,R=Object.prototype,k=f["__core-js_shared__"],S=w.toString,M=R.hasOwnProperty,G=function(){var e=/[^.]+$/.exec(k&&zv(k)&&zv(k).IE_PROTO||"");return e?"Symbol(src)_1."+e:""}(),_=R.toString,b=S.call(Object),T=RegExp("^"+S.call(M).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),F=p?f.Buffer:void 0,N=f.Symbol,L=f.Uint8Array,U=F?F.allocUnsafe:void 0,K=function(e,A){return function(t){return e(A(t))}}(Ey,Object),x=Object.create,Y=R.propertyIsEnumerable,P=Cv(D),H=N?N.toStringTag:void 0,J=function(){try{var e=de(Object,"defineProperty");return e({},"",{}),e}catch(P7){}}(),O=F?F.isBuffer:void 0,z=Math.max,j=Date.now,X=de(f,"Map"),q=de(Object,"create"),V=function(){function e(){}return function(A){if(!ke(A))return{};if(x)return x(A);e.prototype=A;var t=new e;return e.prototype=void 0,t}}();function W(e){var A=-1,t=null==e?0:e.length;for(this.clear();++A-1},Z.prototype.set=function(e,A){var t=this.__data__,n=re(t,e);return n<0?(++this.size,t.push([e,A])):t[n][1]=A,this},$.prototype.clear=function(){this.size=0,this.__data__={hash:new W,map:new(X||Z),string:new W}},$.prototype.delete=function(e){var A=Ce(this,e).delete(e);return this.size-=A?1:0,A},$.prototype.get=function(e){return Ce(this,e).get(e)},$.prototype.has=function(e){return Ce(this,e).has(e)},$.prototype.set=function(e,A){var t=Ce(this,e),n=t.size;return t.set(e,A),this.size+=t.size==n?0:1,this},ee.prototype.clear=function(){this.__data__=new Z,this.size=0},ee.prototype.delete=function(e){var A=this.__data__,t=A.delete(e);return this.size=A.size,t},ee.prototype.get=function(e){return this.__data__.get(e)},ee.prototype.has=function(e){return this.__data__.has(e)},ee.prototype.set=function(e,A){var t=this.__data__;if(t instanceof Z){var n=t.__data__;if(!X||n.length<199)return n.push([e,A]),this.size=++t.size,this;t=this.__data__=new $(n)}return t.set(e,A),this.size=t.size,this};var oe,ae=function(e,A,t){for(var n=-1,r=Object(e),i=t(e),o=i.length;o--;){var a=i[oe?o:++n];if(!1===A(r[a],a,r))break}return e};function se(e){return null==e?void 0===e?u:g:H&&H in Object(e)?function(e){var A=M.call(e,H),t=e[H];try{e[H]=void 0;var n=!0}catch(P7){}var r=_.call(e);n&&(A?e[H]=t:delete e[H]);return r}(e):function(e){return _.call(e)}(e)}function ge(e){return Se(e)&&se(e)==i}function ce(e){return!(!ke(e)||function(e){return!!G&&G in e}(e))&&(we(e)?T:I).test(function(e){if(null!=e){try{return S.call(e)}catch(P7){}try{return e+""}catch(P7){}}return""}(e))}function le(e){if(!ke(e))return function(e){var A=[];if(null!=e)for(var t in Object(e))A.push(t);return A}(e);var A=fe(e),t=[];for(var n in e)("constructor"!=n||!A&&M.call(e,n))&&t.push(n);return t}function ue(e,A,t,n,r){e!==A&&ae(A,(function(i,o){if(r||(r=new ee),ke(i))!function(e,A,t,n,r,i,o){var a=Be(e,t),s=Be(A,t),g=o.get(s);if(g)return void te(e,t,g);var l=i?i(a,s,t+"",e,A,o):void 0,u=void 0===l;if(u){var I=ye(s),h=!I&&De(s),C=!I&&!h&&Me(s);l=s,I||h||C?ye(a)?l=a:!function(e){return Se(e)&&me(e)}(a)?h?(u=!1,l=function(e,A){if(A)return Xp(e).call(e);var t=e.length,n=U?U(t):new e.constructor(t);return e.copy(n),n}(s,!0)):C?(u=!1,d=s,E=!0?(f=d.buffer,B=new f.constructor(f.byteLength),new L(B).set(new L(f)),B):d.buffer,l=new d.constructor(E,d.byteOffset,d.length)):l=[]:l=function(e,A){var t=-1,n=e.length;A||(A=Array(n));for(;++t-1&&e%1==0&&e0){if(++A>=800)return arguments[0]}else A=0;return e.apply(void 0,arguments)}}(he);function pe(e,A){return e===A||e!=e&&A!=A}var ve=ge(function(){return arguments}())?ge:function(e){return Se(e)&&M.call(e,"callee")&&!Y.call(e,"callee")},ye=Array.isArray;function me(e){return null!=e&&Re(e.length)&&!we(e)}var De=O||function(){return!1};function we(e){if(!ke(e))return!1;var A=se(e);return A==a||A==s||A==o||A==l}function Re(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}function ke(e){var A=wc(e);return null!=e&&("object"==A||"function"==A)}function Se(e){return null!=e&&"object"==wc(e)}var Me=m?function(e){return function(A){return e(A)}}(m):function(e){return Se(e)&&Re(e.length)&&!!C[se(e)]};function Ge(e){return me(e)?Ae(e,!0):le(e)}var _e,be=(_e=function(e,A,t){ue(e,A,t)},Ie((function(e,A){var t=-1,n=A.length,r=n>1?A[n-1]:void 0,i=n>2?A[2]:void 0;for(r=_e.length>3&&"function"==typeof r?(n--,r):void 0,i&&function(e,A,t){if(!ke(t))return!1;var n=wc(A);return!!("number"==n?me(t)&&Ee(A,t.length):"string"==n&&A in t)&&pe(t[A],e)}(A[0],A[1],i)&&(r=n<3?void 0:r,n=1),e=Object(e);++t0&&void 0!==arguments[0]?arguments[0]:A.H264;return AU(e)||ZL(e)}var Tke,Fke=function(e){Yk(i,e);var A,t,n,r=Jk(i);function i(){return GE(this,i),r.apply(this,arguments)}return NE(i,[{key:"protocolType",get:function(){return vye}},{key:"defaultFallbackStrategy",get:function(){return{}}},{key:"canPlay",value:(n=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",{canPlay:bke()});case 1:case"end":return e.stop()}}),e)}))),function(){return n.apply(this,arguments)})},{key:"shouldFallbackWhenStall",value:function(){return!1}},{key:"getProtocolStrategy",value:(t=aE(iE().mark((function e(A){var t,n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t={options:{},module:VF.PluginDashJs}){e.next=3;break}return e.abrupt("return",{});case 3:return e.next=5,(null==t?void 0:t.module)&&FL(t.module).catch((function(){}));case 5:return n=e.sent,e.abrupt("return",{options:t.options,plugins:null!=n&&n.DashPlugin?[n.DashPlugin]:[]});case 7:case"end":return e.stop()}}),e)}))),function(e){return t.apply(this,arguments)})},{key:"getAbrStrategy",value:function(){}},{key:"getVeStrategy",value:function(){}},{key:"getDrmStrategy",value:(A=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!=A&&A.drm){e.next=2;break}return e.abrupt("return",{});case 2:return t=this._generateDashDrmConfig(A.drm),e.abrupt("return",{options:{dash:Ff(Ff({},A.dash),{},{protData:t})},plugins:[]});case 4:case"end":return e.stop()}}),e,this)}))),function(e){return A.apply(this,arguments)})},{key:"updateDrmConfig",value:function(e,A){var t;if(e){var n=this._generateDashDrmConfig(e),r=null==A||null===(t=A._player)||void 0===t||null===(t=t.plugins)||void 0===t?void 0:t.dash;r&&(r.protData=n)}}},{key:"getTeaParams",value:function(){}},{key:"_generateDashDrmConfig",value:function(e){var A;return wF(A=jp(e)).call(A,(function(A,t){var n,r=yye[t];r&&(A[r]={serverURL:null==e||null===(n=e[t])||void 0===n?void 0:n.serverProcessSPCPath});return A}),{})}}],[{key:"suffix",get:function(){return".mpd"}},{key:"canGenerateOtherProtocol",value:function(){return!0}},{key:"generateUrl",value:function(e,A){var t,n=A.generateUrlFromOtherProtocol;return null!==(t=e[vye])&&void 0!==t?t:n()}}]),i}(Mye),Nke=function(){function e(A){GE(this,e),LE(this,"_options",void 0),LE(this,"_selector",void 0),LE(this,"_protocol",void 0),LE(this,"_playlistMap",{}),LE(this,"_protocolCanPlayResults",{}),this._options=A,this._init({url:A.url,playlist:A.playlist})}var A,t,n,r,i;return NE(e,[{key:"enableSelector",get:function(){return!!this._selector}},{key:"protocol",get:function(){return this._protocol}},{key:"protocolCanPlayResults",get:function(){return this._protocolCanPlayResults}},{key:"queue",get:function(){var e;return null===(e=this._selector)||void 0===e?void 0:e._queue}},{key:"playlist",get:function(){var e;return null!==(e=this._protocol)&&void 0!==e&&e.protocolType&&this._playlistMap?this._playlistMap[this._protocol.protocolType]:void 0}},{key:"getProtocol",value:(i=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._protocolCanPlayResults={},!this._selector){e.next=5;break}return e.next=4,this._selector.getProtocol(this._protocolCanPlayResults);case 4:this._protocol=e.sent;case 5:return e.abrupt("return",this._protocol);case 6:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"update",value:(r=aE(iE().mark((function e(A){var t,n;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=A.url,n=A.playlist,this._options=Ff(Ff({},this._options),{},{url:t,playlist:n}),this._init({url:t,playlist:n}),e.next=5,this.getProtocol();case 5:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"next",value:(n=aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(this._selector){e.next=2;break}return e.abrupt("return");case 2:return this._selector.next(),e.next=5,this.getProtocol();case 5:return e.abrupt("return",this._protocol);case 6:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getStrategy",value:(t=aE(iE().mark((function e(A,t,n){var r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=Ff(Ff({},this._options),{},{url:A}),g=this._protocol,e.next=4,Op.all([null==g?void 0:g.getProtocolStrategy(s,{player:t,i18n:n,enableSelector:!!this._selector}),null==g||null===(r=g.getDrmStrategy)||void 0===r?void 0:r.call(g,s,{player:t}),null==g||null===(i=g.getAbrStrategy)||void 0===i?void 0:i.call(g,s)]);case 4:return c=e.sent,l=rF(c,3),u=l[0],I=l[1],h=l[2],null!=g&&g.getTeaParams&&(null==$Re||$Re.updateExt(Ff({},g.getTeaParams()))),d=(C=null!=u?u:{}).options,E=C.plugins,B=(f=null!=I?I:{}).options,Q=f.plugins,v=(p=null!=h?h:{}).options,y=p.plugins,e.abrupt("return",{options:_ke(d,B,v),plugins:xf(o=[]).call(o,ME(null!=E?E:[]),ME(null!=Q?Q:[]),ME(null!=y?y:[])),useSrc:!(null!=u&&null!==(a=u.plugins)&&void 0!==a&&a.length),protocol:null==g?void 0:g.protocolType});case 14:case"end":return e.stop()}}),e,this)}))),function(e,A,n){return t.apply(this,arguments)})},{key:"_init",value:function(A){var t=A.url,n=A.playlist;if(n){var r,i,o=Cke(n),a="low"===this._options.latencyMode?Ske:Mke,s=null!==(r=null==a?void 0:a.queue)&&void 0!==r?r:null===(i=this._options.fallback)||void 0===i?void 0:i.fallbackOrder;if(null!=s&&s.length){var g=e._generateProtocolMap(s,o,this._options),c=g.protocolMap,l=g.playlistMap;return this._playlistMap=l,void(this._selector=new a({streams:c,options:this._options}))}this._playlistMap=o,this._initSingleProtocol(jp(o)[0])}else t&&this._initSingleProtocol(WL(t))}},{key:"_initSingleProtocol",value:function(A){A&&(this._protocol=new e._protocolMap[A](this._options))}}],[{key:"create",value:(A=aE(iE().mark((function A(t){var n;return iE().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return n=new e(t),A.next=3,n.getProtocol();case 3:return A.abrupt("return",n);case 4:case"end":return A.stop()}}),A)}))),function(e){return A.apply(this,arguments)})},{key:"_generateProtocolMap",value:function(A,t,n){var r,i={},o={},a=qf(r=jp(t)).call(r,(function(A){return e._protocolMap[A].canGenerateOtherProtocol(n)}));return A.forEach((function(A){var r,s,g=null!==(r=null===(s=e._protocolMap[A])||void 0===s?void 0:s.generateUrl(t,{generateUrlFromOtherProtocol:function(){if(a)return function(e,A,t){return dke(e,(function(e){return e.replace(A,t)}))}(t[a],e._protocolMap[a].suffix,e._protocolMap[A].suffix)},options:n}))&&void 0!==r?r:t[A];g&&(o[A]=g,i[A]=new e._protocolMap[A](n))})),{protocolMap:i,playlistMap:o}}}]),e}();LE(Nke,"_protocolMap",(LE(Tke={},Bye,oke),LE(Tke,pye,ake),LE(Tke,Eye,Eke),LE(Tke,fye,fke),LE(Tke,Qye,Rke),LE(Tke,vye,Fke),Tke));var Lke,Uke=function(){function e(){var A=this;GE(this,e),LE(this,"player",void 0),LE(this,"protocolManager",void 0),LE(this,"beforeFallbackError",function(){var e=aE(iE().mark((function e(t){var n,r,i,o,a,s,g,c,l,u,I,h,C,d;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!==(n=A.protocolManager)&&void 0!==n&&null!==(n=n.protocol)&&void 0!==n&&n.shouldFallbackWhenError({error:t})&&null!==(r=A.protocolManager)&&void 0!==r&&null!==(r=r.protocol)&&void 0!==r&&r.nextProtocol){e.next=2;break}return e.abrupt("return",{canEmitError:!0});case 2:return I=null===(i=A.protocolManager)||void 0===i?void 0:i.playlist,h=A.protocolManager.protocol,e.next=6,null===(o=A.protocolManager)||void 0===o?void 0:o.next();case 6:if(e.sent&&null!==(a=A.protocolManager)&&void 0!==a&&a.playlist){e.next=9;break}return e.abrupt("return",{canEmitError:!0});case 9:null===(s=A.player)||void 0===s||s.emit(jve.FALLBACK,{from:{playlist:I,protocol:h.protocolType},to:{playlist:null===(g=A.protocolManager)||void 0===g?void 0:g.playlist,protocol:null===(c=A.protocolManager)||void 0===c||null===(c=c.protocol)||void 0===c?void 0:c.protocolType}}),A.fallback(),C="";try{C=$b(null===(d=A.protocolManager)||void 0===d?void 0:d.protocolCanPlayResults),C="json:".concat(C)}catch(P7){console.warn("Failed to stringify protocolCanPlayResults:",P7),C="json:{}"}return null===(l=$Re.liveLogger)||void 0===l||l.sendLog({event_key:"fallback",playlist:A.protocolManager.playlist,code:t.errorCode,message:t.message,protocol:null===(u=A.protocolManager)||void 0===u||null===(u=u.protocol)||void 0===u?void 0:u.protocolType,canplay:C}),e.abrupt("return",{canEmitError:!1});case 15:case"end":return e.stop()}}),e)})));return function(A){return e.apply(this,arguments)}}())}var A;return NE(e,[{key:"initErrorFallback",value:function(e,A){this.player=e,this.protocolManager=A}},{key:"fallback",value:(A=aE(iE().mark((function e(){var A,t,n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(null!==(A=this.protocolManager)&&void 0!==A&&A.playlist){e.next=2;break}return e.abrupt("return");case 2:i=null===(t=this.player)||void 0===t?void 0:t.definition,o=null===(n=this.player)||void 0===n?void 0:n.source,null===(r=this.player)||void 0===r||r.updatePlaylist(this.protocolManager.playlist,{definition:i,source:o},!1);case 5:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})}]),e}(),Kke=new Uke,xke=function(){return(xke=sy||function(e){for(var A,t=1,n=arguments.length;t0)&&!(n=i.next()).done;)o.push(n.value)}catch(a){r={error:a}}finally{try{n&&!n.done&&(t=i.return)&&t.call(i)}finally{if(r)throw r.error}}return o}function Pke(){for(var e=[],A=0;A0x7fffffffffff||A<-0x800000000000)&&(A&=0xffffffffffff);return A<0&&(A+=0x7ffffffffffff),A},rSe=(function(e,A){var t;t=function(){function e(){for(var e=0,A={};e-1&&(A=Xp(e).call(e,0,zp(e).call(e,"Build/")))}));else if("ios"===e||"mac"===e||"windows"===e)if(this.isNewIpad())A="iPad";else{var t=navigator.userAgent.replace("Mozilla/5.0 (",""),n=zp(t).call(t,";");A=-1===n?"":Xp(t).call(t,0,n)}}catch(r){return lD(A).call(A)}return lD(A).call(A)},e.prototype.isNewIpad=function(){return void 0!==this.userAgent&&"MacIntel"===navigator.platform&&"number"==typeof navigator.maxTouchPoints&&navigator.maxTouchPoints>1},e}(),uSe={cn:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az1gz22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz22z1mz19z1jz1mz1ez4az22z1mz19z21z1lz21z21z1bz1iz4az1az1mz1k"},ISe={cn:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z4az28z1gz1hz1gz1cz18z1nz1gz4az1az1mz1k",sg:"1fz22z22z1nz21z4mz4bz4bz21z1ez18z1jz1gz49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",va:"1fz22z22z1nz21z4mz4bz4bz1kz18z1jz1gz24z18z49z1kz1az21z4az19z27z22z1cz1mz24z1cz20z21z1cz18z4az1az1mz1k",my:"1fz22z22z1nz21z4mz4bz4bz1kz1az21z49z19z1bz49z1kz27z4az1jz18z20z1iz1mz1dz1dz1gz1az1cz4az1az1mz1k"},hSe="5.3.1",CSe=(Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z1cz1bz1gz22z1mz20z49z20z18z1lz1ez1cz20z21z4az1hz21"),Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1az1mz20z1cz4az1hz21"),Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz24z1gz21z23z18z1jz49z18z19z49z1jz1mz18z1bz1cz20z4az1hz21"),Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz1fz1cz18z22z1kz18z1nz49z1az1mz20z1c")),dSe=(Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz4fz49z1bz18z22z18z4az24z1mz1jz1az1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz1bz18z22z18z49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz22z1cz21z22z1cz20z49z1cz24z1cz1lz22z49z1gz1lz21z1nz1cz1az22z1mz20"),function(){function e(e,A){this.collector=e,this.config=A,this.eventNameWhiteList=["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","__bav_slide"],this.paramsNameWhiteList=["$inactive","$inline","$target_uuid_list","$source_uuid","$is_spider","$source_id","$is_first_time","_staging_flag"],this.regStr=new RegExp("^[a-zA-Z0-9][a-z0-9A-Z_.-]{1,255}$")}return e.prototype.checkVerify=function(e){var A=this;if(!e||!e.length)return!1;var t=e[0];if(!t)return!1;var n=t.events,r=t.header;if(!n||!n.length)return!1;var i=!0;return n.forEach((function(e){if(!e)return i=!1,void(e.checkEvent="浜嬩欢寮傚父");A.checkEventName(e.event)||(i=!1,e.checkEvent="浜嬩欢鍚嶄笉鑳戒互 $ or __寮€澶�"),A.checkEventParams(e.params)||(i=!1,e.checkParams="灞炴€у悕涓嶈兘浠� $ or __寮€澶�")})),this.checkEventParams(r)||(i=!1),i},e.prototype.checkEventName=function(e){return!!e&&this.calculate(e,"event")},e.prototype.checkEventParams=function(e){var A=e;if("string"==typeof e&&(A=JSON.parse(A)),!jp(A).length)return!0;for(var t in A)return!(!this.calculate(t,"params")||"string"==typeof A[t]&&A[t].length>1024&&(console.warn("params: "+t+" can not over 1024 byte, please check;"),1));return!0},e.prototype.calculate=function(e,A){var t;return-1!==zp(t="event"===A?this.eventNameWhiteList:this.paramsNameWhiteList).call(t,e)||!new RegExp("^\\$").test(e)&&!new RegExp("^__").test(e)||(console.warn(("event"===A?"event":"params")+" name: "+e+" can not start with $ or __, pleace check;"),!1)},e}());!function(e){e.Init="init",e.Config="config",e.Start="start",e.Ready="ready",e.UnReady="un-ready",e.TokenComplete="token-complete",e.TokenStorage="token-storage",e.TokenFetch="token-fetch",e.TokenError="token-error",e.ConfigUuid="config-uuid",e.ConfigWebId="config-webid",e.ConfigDiD="config-device-id",e.ConfigDomain="config-domain",e.CustomWebId="custom-webid",e.TokenChange="token-change",e.TokenReset="token-reset",e.ConfigTransform="config-transform",e.EnvTransform="env-transform",e.SessionReset="session-reset",e.SessionResetTime="session-reset-time",e.SetSessionId="set-session-id",e.Event="event",e.Events="events",e.EventNow="event-now",e.CleanEvents="clean-events",e.BeconEvent="becon-event",e.SubmitBefore="submit-before",e.SubmitScuess="submit-scuess",e.SubmitAfter="submit-after",e.SubmitError="submit-error",e.SubmitVerify="submit-verify",e.CustomHeader="custom-request-header",e.SDKInnerError="sdk-inner-error",e.SDKRunTimeError="sdk-run-time-error",e.LogSetting="log-setting",e.LogSettingReady="log-setting-ready",e.Stay="stay",e.ResetStay="reset-stay",e.StayReady="stay-ready",e.SetStay="set-stay",e.RouteChange="route-change",e.RouteReady="route-ready",e.Ab="ab",e.AbVar="ab-var",e.AbAllVars="ab-all-vars",e.AbConfig="ab-config",e.AbExternalVersion="ab-external-version",e.AbVersionChangeOn="ab-version-change-on",e.AbVersionChangeOff="ab-version-change-off",e.AbOpenLayer="ab-open-layer",e.AbCloseLayer="ab-close-layer",e.AbReady="ab-ready",e.AbComplete="ab-complete",e.AbTimeout="ab-timeout",e.Profile="profile",e.ProfileSet="profile-set",e.ProfileSetOnce="profile-set-once",e.ProfileUnset="profile-unset",e.ProfileIncrement="profile-increment",e.ProfileAppend="profile-append",e.ProfileClear="profile-clear",e.Autotrack="autotrack",e.AutotrackReady="autotrack-ready",e.CepReady="cep-ready",e.TracerReady="tracer-ready",e.sessionRecord="session-record",e.SessionRecordStart="session-record-start",e.SessionRecordPause="session-record-pause",e.SessionRecordEnd="session-record-end",e.SessionRecordReport="session-record-report",e.DestoryInstance="destory-instance",e.VisualCollectReady="visual-collect-ready",e.VisualApiReady="visual-api-ready",e.VisualApiUpdate="visual-api-update"}(Oke||(Oke={})),function(e){e.DEBUGGER_MESSAGE="debugger-message",e.DEBUGGER_MESSAGE_SDK="debugger-message-sdk",e.DEBUGGER_MESSAGE_FETCH="debugger-message-fetch",e.DEBUGGER_MESSAGE_FETCH_RESULT="debugger-message-fetch-result",e.DEBUGGER_MESSAGE_EVENT="debugger-message-event",e.DEVTOOL_WEB_READY="devtool-web-ready"}(zke||(zke={}));var ESe=Oke,fSe=void 0,BSe=(new Date).getTimezoneOffset(),QSe=Uv(""+-BSe/60,10),pSe=60*BSe,vSe=function(){function e(e,A){var t=this;this.is_first_time=!0,this.configPersist=!1,this.initConfig=A,this.collect=e;var n=new lSe(A.app_id,A.cookie_domain||"",A.cookie_expire||7776e6).init();this.eventCheck=new dSe(e,A);var r="__tea_cache_first_"+A.app_id;this.configKey="__tea_cache_config_"+A.app_id,this.sessionStorage=new cSe(!1,"session"),this.localStorage=new cSe(!1,"local"),A.configPersist&&(this.configPersist=!0,this.storage=1===A.configPersist?this.sessionStorage:this.localStorage);var i=this.localStorage.getItem(r);i&&1==i?this.is_first_time=!1:(this.is_first_time=!0,this.localStorage.setItem(r,"1")),this.envInfo={user:{user_unique_id:fSe,user_type:fSe,user_id:fSe,user_is_auth:fSe,user_is_login:fSe,device_id:fSe,web_id:fSe,ip_addr_id:fSe,user_unique_id_type:fSe},header:{app_id:fSe,app_name:fSe,app_install_id:fSe,install_id:fSe,app_package:fSe,app_channel:fSe,app_version:fSe,ab_version:fSe,os_name:n.os_name,os_version:n.os_version,device_model:n.device_model,ab_client:fSe,traffic_type:fSe,client_ip:fSe,device_brand:fSe,os_api:fSe,access:fSe,language:n.language,region:fSe,app_language:fSe,app_region:fSe,creative_id:n.utm.creative_id,ad_id:n.utm.ad_id,campaign_id:n.utm.campaign_id,log_type:fSe,rnd:fSe,platform:n.platform,sdk_version:hSe,sdk_lib:"js",province:fSe,city:fSe,timezone:QSe,tz_offset:pSe,tz_name:fSe,sim_region:fSe,carrier:fSe,resolution:n.screen_width+"x"+n.screen_height,browser:n.browser,browser_version:n.browser_version,referrer:n.referrer,referrer_host:n.referrer_host,width:n.screen_width,height:n.screen_height,screen_width:n.screen_width,screen_height:n.screen_height,utm_term:n.utm.utm_term,utm_content:n.utm.utm_content,utm_source:n.utm.utm_source,utm_medium:n.utm.utm_medium,utm_campaign:n.utm.utm_campaign,tracer_data:$b(n.utm.tracer_data),custom:n.network_type?{network_type:n.network_type}:{},wechat_unionid:fSe,wechat_openid:fSe}},this.ab_version="",this.evtParams={},this.reportErrorCallback=function(){},this.isLast=!1,this.setCustom(n),this.initDomain(),this.initABData(),this.collect.on("route-change",(function(e){t.changeReferInfo(e.config)}))}return e.prototype.initDomain=function(){var e=this.initConfig.channel_domain;if(e)this.domain=e;else{var A=this.initConfig.channel;this.domain=Wke(ISe[A])}},e.prototype.setDomain=function(e){this.domain=e},e.prototype.getDomain=function(){return this.domain},e.prototype.initABData=function(){var e="__tea_sdk_ab_version_"+this.initConfig.app_id,A=null;if(this.initConfig.ab_cross){var t=this.localStorage.getCookie(e,this.initConfig.ab_cookie_domain);A=t?JSON.parse(t):null}else A=this.localStorage.getItem(e);this.setAbCache(A)},e.prototype.setAbCache=function(e){this.ab_cache=e},e.prototype.getAbCache=function(){return this.ab_cache},e.prototype.setAbVersion=function(e){this.ab_version=e},e.prototype.getAbVersion=function(){return this.ab_version},e.prototype.clearAbCache=function(){this.ab_version="",this.ab_cache={}},e.prototype.getUrl=function(e){var A="";switch(e){case"event":A="/list";break;case"webid":A="/webid";break;case"tobid":A="/tobid"}var t="";return this.initConfig.caller&&(t="?sdk_version=5.3.1&sdk_name=web&app_id="+this.initConfig.app_id+"&caller="+this.initConfig.caller),""+this.getDomain()+A+t},e.prototype.setCustom=function(e){if(e&&e.latest_data&&e.latest_data.isLast)for(var A in delete e.latest_data.isLast,this.isLast=!0,e.latest_data)this.envInfo.header.custom[A]=e.latest_data[A]},e.prototype.changeReferInfo=function(e){var A=e;this.envInfo.header.referrer=A.referrer;var t="";try{t=new Xb(A.referrer).host}catch(n){}this.envInfo.header.referrer_host=t||this.envInfo.header.referrer_host},e.prototype.set=function(e){var A=this;jp(e).forEach((function(t){void 0!==e[t]&&null!==e[t]||A.delete(t);try{A.eventCheck.calculate(t,"config")}catch(P7){}if("traffic_type"===t&&A.isLast&&(A.envInfo.header.custom.$latest_traffic_source_type=e[t]),"evtParams"===t)A.evtParams=xke(xke({},A.evtParams||{}),e.evtParams||{});else if("_staging_flag"===t)A.evtParams=xke(xke({},A.evtParams||{}),{_staging_flag:e._staging_flag});else if("reportErrorCallback"===t&&"function"==typeof e[t])A.reportErrorCallback=e[t];else{var n,r,i,o="",a="";if(zp(t).call(t,".")>-1){var s=t.split(".");o=s[0],a=s[1]}o?"user"===o||"header"===o?A.envInfo[o][a]=e[t]:(A.envInfo.header.custom[a]=e[t],A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 娣诲姞浜咰ustom",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:"custom"})):Object.hasOwnProperty.call(A.envInfo.user,t)?(zp(n=["user_type","ip_addr_id"]).call(n,t)>-1?A.envInfo.user[t]=e[t]?Number(e[t]):e[t]:zp(r=["user_id","web_id","user_unique_id","user_unique_id_type"]).call(r,t)>-1?A.envInfo.user[t]=e[t]?String(e[t]):e[t]:zp(i=["user_is_auth","user_is_login"]).call(i,t)>-1?A.envInfo.user[t]=Boolean(e[t]):"device_id"===t&&(A.envInfo.user[t]=e[t]),A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 淇敼浜嗗叕鍏卞弬鏁�",level:"info",time:Date.now(),infoType:"sdk",secType:"USER",common:t})):Object.hasOwnProperty.call(A.envInfo.header,t)?(A.envInfo.header[t]=e[t],A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 淇敼浜嗗叕鍏卞弬鏁�",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:t})):(A.envInfo.header.custom[t]=e[t],A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 娣诲姞浜咰ustom",level:"info",time:Date.now(),infoType:"sdk",secType:"HEADER",common:"custom"}))}}))},e.prototype.get=function(e){try{return e?"evtParams"===e?this.evtParams:"reportErrorCallback"===e?this[e]:Object.hasOwnProperty.call(this.envInfo.user,e)?this.envInfo.user[e]:Object.hasOwnProperty.call(this.envInfo.header,e)?this.envInfo.header[e]:JSON.parse($b(this.envInfo[e])):JSON.parse($b(this.envInfo))}catch(A){console.log("get config stringify error "),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message})}},e.prototype.setStore=function(e){try{if(!this.configPersist)return;var A=this.storage.getItem(this.configKey)||{};if(A&&jp(e).length){var t=sy(e,A);this.storage.setItem(this.configKey,t)}}catch(n){console.log("setStore error"),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:n.message})}},e.prototype.getStore=function(){try{if(!this.configPersist)return null;var e=this.storage.getItem(this.configKey)||{};return e&&jp(e).length?e:null}catch(A){return this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message}),null}},e.prototype.delete=function(e){try{if(!this.configPersist)return;var A=this.storage.getItem(this.configKey)||{};A&&Object.hasOwnProperty.call(A,e)&&(delete A[e],this.storage.setItem(this.configKey,A))}catch(t){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:t.message}),console.log("delete error")}},e}(),ySe=function(){function e(e,A){this.isLog=A||!1,this.name=e||""}return e.prototype.info=function(e){this.isLog&&console.log("%c %s","color: yellow; background-color: black;","[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.warn=function(e){this.isLog&&console.warn("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.error=function(e){this.isLog&&console.error("[AppLog WEB SDK] [instance: "+this.name+"] "+e)},e.prototype.throw=function(e){throw this.error(this.name),new Error(e)},e}(),mSe=function(){function e(){this.spiderBot=["Baiduspider","googlebot","360Spider","haosouspider","YoudaoBot","Sogou News Spider","Yisouspider","Googlebot","Headless","Applebot","Bingbot","PetalBot"]}return e.prototype.checkSpider=function(e){if(!e.enable_spider)return!1;var A=window.navigator.userAgent;if(!A)return!0;var t=!1;return this.spiderBot.forEach((function(e){-1!==zp(A).call(A,e)&&(t=!0)})),t},e}(),DSe=function(){function e(e,A){this.collect=e,this.native=A}var A=e.prototype;return A.bridgeInject=function(){try{return!!this.native&&(AppLogBridge?(console.log("AppLogBridge is injected"),!0):(console.log("AppLogBridge is not inject"),!1))}catch(e){return console.log("AppLogBridge is not inject"),!1}},A.bridgeReady=function(){var e=this;return new Op((function(A,t){try{e.bridgeInject()?AppLogBridge.hasStarted((function(e){console.log("AppLogBridge is started? : "+e),e?A(!0):t(!1)})):t(!1)}catch(n){console.log("AppLogBridge, error:"+$b(n.stack)),t(!1)}}))},A.setNativeAppId=function(e){try{AppLogBridge.setNativeAppId($b(e)),console.log("change bridge appid, event report with appid: "+e)}catch(A){console.error("setNativeAppId error")}},A.setConfig=function(e){var A=this;try{jp(e).forEach((function(t){"user_unique_id"===t?A.setUserUniqueId(e[t]):e[t]?A.addHeaderInfo(t,e[t]):A.removeHeaderInfo(t)}))}catch(t){console.error("setConfig error")}},A.setUserUniqueId=function(e){try{AppLogBridge.setUserUniqueId(e)}catch(A){console.error("setUserUniqueId error")}},A.addHeaderInfo=function(e,A){try{AppLogBridge.addHeaderInfo(e,A)}catch(t){console.error("addHeaderInfo error")}},A.setHeaderInfo=function(e){try{AppLogBridge.setHeaderInfo($b(e))}catch(A){console.error("setHeaderInfo error")}},A.removeHeaderInfo=function(e){try{AppLogBridge.removeHeaderInfo(e)}catch(A){console.error("removeHeaderInfo error")}},A.reportPv=function(e){this.onEventV3("predefine_pageview",e)},A.onEventV3=function(e,A){try{AppLogBridge.onEventV3(e,A),this.collect.emit(DebuggerMesssge.DEBUGGER_MESSAGE,{type:DebuggerMesssge.DEBUGGER_MESSAGE_EVENT,info:"bridge鍩嬬偣涓婃姤",time:Date.now(),data:[{events:[{event:e,params:A}]}],code:200,status:"success"})}catch(t){console.error("onEventV3 error")}},A.profileSet=function(e){try{AppLogBridge.profileSet(e)}catch(A){console.error("profileSet error")}},A.profileSetOnce=function(e){try{AppLogBridge.profileSetOnce(e)}catch(A){console.error("profileSetOnce error")}},A.profileIncrement=function(e){try{AppLogBridge.profileIncrement(e)}catch(A){console.error("profileIncrement error")}},A.profileUnset=function(e){try{AppLogBridge.profileUnset(e)}catch(A){console.error("profileUnset error")}},A.profileAppend=function(e){try{AppLogBridge.profileAppend(e)}catch(A){console.error("profileAppend error")}},e}(),wSe=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(function(e){var A=16*Math.random()|0;return("x"===e?A:3&A|8).toString(16)}))},RSe=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.storage=new cSe(!1,"session"),this.sessionKey="__tea_session_id_"+A.app_id,this.expireTime=A.expireTime||18e5,this.disableSession=A.disable_session,this.disableSessionTimeCheck=A.disable_session_check,this.disableSession||(this.setSessionId(),this.collect.on(ESe.SessionReset,(function(e){t.resetSessionId(e)})),this.collect.on(ESe.SessionResetTime,(function(){t.updateSessionIdTime()})))},e.prototype.updateSessionIdTime=function(){var e=this.storage.getItem(this.sessionKey);if(e&&e.sessionId){var A=e.timestamp;Date.now()-A>this.expireTime?e={sessionId:wSe(),timestamp:Date.now()}:e.timestamp=Date.now(),this.storage.setItem(this.sessionKey,e),this.resetExpTime()}},e.prototype.setSessionId=function(){var e=this,A=this.storage.getItem(this.sessionKey);A&&A.sessionId?A.timestamp=Date.now():A={sessionId:wSe(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,A),this.disableSessionTimeCheck||(this.sessionExp=setInterval((function(){e.checkEXp()}),this.expireTime))},e.prototype.getSessionId=function(){var e=this.storage.getItem(this.sessionKey);return this.disableSession?"":e&&e.sessionId?e.sessionId:""},e.prototype.resetExpTime=function(){var e=this;this.sessionExp&&(clearInterval(this.sessionExp),this.sessionExp=setInterval((function(){e.checkEXp()}),this.expireTime))},e.prototype.resetSessionId=function(e){var A={sessionId:e||wSe(),timestamp:Date.now()};this.storage.setItem(this.sessionKey,A)},e.prototype.checkEXp=function(){var e=this.storage.getItem(this.sessionKey);e&&e.sessionId&&Date.now()-e.timestamp+30>=this.expireTime&&(e={sessionId:wSe(),timestamp:Date.now()},this.storage.setItem(this.sessionKey,e))},e}(),kSe=function(){function e(){this.eventLimit=50,this.enable_ttwebid=!1,this.eventCache=[],this.beconEventCache=[]}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.config=A,this.configManager=e.configManager,this.eventCheck=new dSe(e,A),this.cacheStorgae=new cSe(!0),this.localStorage=new cSe(!1),this.maxReport=A.max_report||10,this.reportTime=A.reportTime||A.report_time||30,this.timeout=A.timeout||1e5,this.enable_ttwebid=A.enable_ttwebid,this.reportUrl=A.report_url||this.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+this.configManager.get("app_id"),this.beconKey="__tea_cache_events_becon_"+this.configManager.get("app_id"),this.abKey="__tea_sdk_ab_version_"+this.configManager.get("app_id"),this.refer_key="__tea_cache_refer_"+this.configManager.get("app_id"),this.pageId=wSe(),this.collect.on(ESe.Ready,(function(){t.reportAll(!1)})),this.collect.on(ESe.ConfigDomain,(function(){t.reportUrl=t.configManager.getUrl("event")})),this.collect.on(ESe.Event,(function(e){t.event(e)})),this.collect.on(ESe.BeconEvent,(function(e){t.beconEvent(e)})),this.collect.on(ESe.CleanEvents,(function(){t.reportAll(!1)}));var n=this.linster();this.collect.on(ESe.DestoryInstance,(function(){n&&n()}))},e.prototype.linster=function(){var e=this,A=function(){e.reportAll(!0)};window.addEventListener("unload",A,!1),$ke(A);var t=function(){"hidden"===document.visibilityState&&e.reportAll(!0)};return document.addEventListener("visibilitychange",t,!1),function(){window.removeEventListener("unload",A),window.removeEventListener("pagehide",A,!1),window.removeEventListener("beforeunload",A,!1),document.removeEventListener("visibilitychange",t,!1)}},e.prototype.reportAll=function(e){this.report(e),this.reportBecon()},e.prototype.event=function(e){var A=this;try{if(this.collect.destroy)return;if(this.collect.sdkStop)return;if(this.config.enable_ios_sendbeacon&&Zke())return void this.beconEvent(e);var t=this.cacheStorgae.getItem(this.eventKey)||[],n=e;this.config.batch_event&&(n=this.batchEvent(e));var r=Pke(n,t);if(this.cacheStorgae.setItem(this.eventKey,r),this.reportTimeout&&clearTimeout(this.reportTimeout),r.length>=this.maxReport)this.report(!1);else{var i=this.reportTime;this.reportTimeout=setTimeout((function(){A.report(!1),A.reportTimeout=null}),i)}}catch(o){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:o.message,infoType:"sdk"})}},e.prototype.beconEvent=function(e){if(!this.collect.destroy&&!this.collect.sdkStop){var A=Pke(e,this.cacheStorgae.getItem(this.beconKey)||[]);this.cacheStorgae.setItem(this.beconKey,A),this.collect.tokenManager.getReady()&&this.collect.sdkReady&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(A)),!0))}},e.prototype.reportBecon=function(){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var e=this.cacheStorgae.getItem(this.beconKey)||[];e&&e.length&&(this.cacheStorgae.removeItem(this.beconKey),this.send(this.split(this.merge(e)),!0))}},e.prototype.report=function(e){if(!this.collect.destroy&&!this.collect.sdkStop&&this.collect.tokenManager.getReady()&&this.collect.sdkReady){var A=this.cacheStorgae.getItem(this.eventKey)||[];A.length&&(this.cacheStorgae.removeItem(this.eventKey),this.config.batch_event?this.send([A],e):this.sliceEvent(A,e))}},e.prototype.batchEvent=function(e){var A=[];if(e.length>this.eventLimit)for(var t=0;tthis.eventLimit)for(var t=0;t>A/4).toString(10):([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e)}().replace(/-/g,"")).call(e,0,19)},MSe=function(){function e(){this.cacheToken={},this.enableCookie=!1,this.enable_ttwebid=!1,this.enableCustomWebid=!1}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.config=A,this.configManager=this.collect.configManager,this.storage=new cSe(!1),this.tokenKey="__tea_cache_tokens_"+A.app_id,this.enable_ttwebid=A.enable_ttwebid,this.enableCustomWebid=A.enable_custom_webid,this.collect.on(ESe.ConfigUuid,(function(e){t.setUuid(e)})),this.collect.on(ESe.ConfigWebId,(function(e){t.setWebId(e)})),this.collect.on(ESe.ConfigDiD,(function(e){t.setDeviceId(e)})),this.enableCookie=A.cross_subdomain,this.expiresTime=A.cookie_expire||6048e5,this.cookieDomain=A.cookie_domain||"",this.checkStorage()},e.prototype.checkStorage=function(){var e=this;if(this.enableCookie){var A=this.storage.getCookie(this.tokenKey,this.cookieDomain);this.cacheToken=A&&"string"==typeof A?JSON.parse(A):{}}else this.cacheToken=this.storage.getItem(this.tokenKey)||{};this.tokenType=this.cacheToken&&this.cacheToken._type_?this.cacheToken._type_:"default","custom"!==this.tokenType||this.enableCustomWebid?this.enableCustomWebid?this.collect.on(ESe.CustomWebId,(function(){e.tokenReady=!0,e.collect.emit(ESe.TokenComplete)})):this.checkEnv()||(this.enable_ttwebid?this.completeTtWid(this.cacheToken):this.check()):this.remoteWebid()},e.prototype.check=function(){this.cacheToken&&this.cacheToken.web_id?this.complete(this.cacheToken):this.config.disable_webid?this.complete({web_id:SSe(),user_unique_id:this.configManager.get("user_unique_id")||SSe()}):this.remoteWebid()},e.prototype.checkEnv=function(){var e=window.navigator.userAgent;if(-1!==zp(e).call(e,"miniProgram")||-1!==zp(e).call(e,"MiniProgram")){var A=tSe(window.location.href);return!(!A||!A.Web_ID||(this.complete({web_id:""+A.Web_ID,user_unique_id:this.configManager.get("user_unique_id")||""+A.Web_ID}),0))}return!1},e.prototype.remoteWebid=function(){var e=this,A=this.configManager.getUrl("webid"),t={app_key:this.config.app_key,app_id:this.config.app_id,url:location.href,user_agent:window.navigator.userAgent,referer:document.referrer,user_unique_id:""};this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戣捣WebID璇锋眰",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"}),this.collect.requestManager.useRequest({url:A,data:t,success:function(A){var t;if(A&&0===A.e)t=A.web_id,e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰鎴愬姛",logType:"fetch",level:"info",time:Date.now(),data:A,infoType:"sdk"});else{var n=SSe();t=n,e.collect.configManager.set({localWebId:n}),e.collect.emit(ESe.TokenError),e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰杩斿洖鍊煎紓甯革紝閲囩敤鏈湴鐢熸垚",logType:"fetch",level:"warn",time:Date.now(),data:A,infoType:"sdk"}),e.collect.logger.warn("appid: "+e.config.app_id+" get webid error, use local webid~")}e.complete({web_id:e.configManager.get("web_id")||t,user_unique_id:e.configManager.get("user_unique_id")||t})},fail:function(){var A=SSe();e.complete({web_id:e.configManager.get("web_id")||A,user_unique_id:e.configManager.get("user_unique_id")||A}),e.collect.configManager.set({localWebId:A}),e.collect.emit(ESe.TokenError),e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"WebID璇锋眰缃戠粶寮傚父锛岄噰鐢ㄦ湰鍦扮敓鎴�",logType:"fetch",level:"error",time:Date.now(),data:{localWebId:A},infoType:"sdk"}),e.collect.logger.warn("appid: "+e.config.app_id+", get webid error, use local webid~")},timeout:3e5})},e.prototype.complete=function(e){var A=e.web_id,t=e.user_unique_id,n=e.device_id;if(e.timestamp=Date.now(),this.collect.configManager.set({web_id:A,user_unique_id:t}),this.config.enable_device_id){var r=this.configManager.get("device_id")||n||A;this.collect.configManager.set({device_id:r}),e=xke(xke({},e),{device_id:r})}else(null==e?void 0:e.device_id)&&delete e.device_id;this.setStorage(e),this.tokenReady=!0,this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 瀹屾垚鐢ㄦ埛淇℃伅璁剧疆",logType:"info",level:"info",time:Date.now(),data:{web_id:A,user_unique_id:t},infoType:"sdk"}),this.collect.emit(ESe.TokenComplete)},e.prototype.completeTtWid=function(e){var A=e.user_unique_id||"",t=this.configManager.get("user_unique_id");(t||A)&&this.configManager.set({user_unique_id:t||A}),this.setStorage(e),this.tokenReady=!0,this.collect.emit(ESe.TokenComplete)},e.prototype.setUuid=function(e){var A;if(e&&-1===zp(A=["null","undefined","Null","None"]).call(A,e)){var t=String(e),n=this.configManager.get("user_unique_id"),r=this.cacheToken&&this.cacheToken.user_unique_id;if(t===n&&t===r)return;this.configManager.set({user_unique_id:t}),this.cacheToken||(this.cacheToken={}),this.cacheToken.user_unique_id=t,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken),this.collect.emit(ESe.TokenChange,"uuid"),this.collect.emit(ESe.SessionReset)}else this.clearUuid()},e.prototype.clearUuid=function(){this.config.enable_ttwebid||this.configManager.get("web_id")&&this.configManager.get("user_unique_id")!==this.configManager.get("web_id")&&(this.configManager.set({user_unique_id:this.configManager.get("web_id")}),this.cacheToken&&this.cacheToken.web_id&&(this.cacheToken.user_unique_id=this.cacheToken.web_id,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken)),this.collect.emit(ESe.TokenReset,"uuid"))},e.prototype.setWebId=function(e){if(e&&!this.config.enable_ttwebid){this.cacheToken&&this.cacheToken.web_id?this.cacheToken.web_id!==e&&(this.cacheToken.user_unique_id=this.cacheToken.web_id===this.cacheToken.user_unique_id?e:this.cacheToken.user_unique_id,this.cacheToken.web_id=e):(this.cacheToken={},this.cacheToken.web_id=e,this.cacheToken.user_unique_id=e),this.cacheToken.timestamp=Date.now();var A=this.configManager.get("web_id"),t=this.configManager.get("user_unique_id");t&&t!==A||(this.configManager.set({user_unique_id:e}),this.collect.emit(ESe.TokenChange,"uuid")),A!==e&&(this.configManager.set({web_id:e}),this.collect.emit(ESe.TokenChange,"webid")),this.setStorage(this.cacheToken)}},e.prototype.setDeviceId=function(e){this.configManager.set({device_id:e}),this.config.enable_device_id&&this.cacheToken&&(this.cacheToken.device_id=e,this.cacheToken.timestamp=Date.now(),this.setStorage(this.cacheToken))},e.prototype.setStorage=function(e){var A;e._type_=this.enableCustomWebid?"custom":"default",delete e[ZF(A="diss".split("")).call(A).join("")],this.enableCookie||this.enable_ttwebid?(this.storage.setCookie(this.tokenKey,e,this.expiresTime,this.cookieDomain),this.enable_ttwebid&&(delete e.web_id,this.storage.setItem(this.tokenKey,e))):this.storage.setItem(this.tokenKey,e),this.cacheToken=e},e.prototype.getReady=function(){return this.tokenReady},e.prototype.getTobId=function(){var e=this;return new Op((function(A){var t={app_id:e.config.app_id,user_unique_id:e.configManager.get("user_unique_id"),web_id:e.configManager.get("web_id"),user_unique_id_type:e.configManager.get("user_unique_id_type")};e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戣捣GetToken璇锋眰",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"}),e.collect.requestManager.useRequest({url:e.configManager.getUrl("tobid"),data:t,success:function(t){t&&0===t.e?(A(t.tobid),e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰鎴愬姛",logType:"fetch",level:"info",time:Date.now(),data:t,infoType:"sdk"})):(A(""),e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰澶辫触",logType:"fetch",level:"error",time:Date.now(),data:t,infoType:"sdk"}))},fail:function(){A(""),e.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"GetToken璇锋眰澶辫触",logType:"fetch",level:"error",time:Date.now(),infoType:"sdk"})},time:3e4,withCredentials:e.enable_ttwebid})}))},e}();function GSe(e){for(var A=e.length;--A>=0;)e[A]=0}var _Se=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),bSe=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),TSe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),FSe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),NSe=new Array(576);GSe(NSe);var LSe=new Array(60);GSe(LSe);var USe=new Array(512);GSe(USe);var KSe=new Array(256);GSe(KSe);var xSe=new Array(29);GSe(xSe);var YSe,PSe,HSe,JSe=new Array(30);function OSe(e,A,t,n,r){this.static_tree=e,this.extra_bits=A,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=e&&e.length}function zSe(e,A){this.dyn_tree=e,this.max_code=0,this.stat_desc=A}GSe(JSe);var jSe=function(e){return e<256?USe[e]:USe[256+(e>>>7)]},XSe=function(e,A){e.pending_buf[e.pending++]=255&A,e.pending_buf[e.pending++]=A>>>8&255},qSe=function(e,A,t){e.bi_valid>16-t?(e.bi_buf|=A<>16-e.bi_valid,e.bi_valid+=t-16):(e.bi_buf|=A<>>=1,t<<=1}while(--A>0);return t>>>1},ZSe=function(e,A,t){var n,r,i=new Array(16),o=0;for(n=1;n<=15;n++)o=o+t[n-1]<<1,i[n]=o;for(r=0;r<=A;r++){var a=e[2*r+1];0!==a&&(e[2*r]=WSe(i[a]++,a))}},$Se=function(e){var A;for(A=0;A<286;A++)e.dyn_ltree[2*A]=0;for(A=0;A<30;A++)e.dyn_dtree[2*A]=0;for(A=0;A<19;A++)e.bl_tree[2*A]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},eMe=function(e){e.bi_valid>8?XSe(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},AMe=function(e,A,t,n){var r=2*A,i=2*t;return e[r]>1;t>=1;t--)tMe(e,i,t);r=s;do{t=e.heap[1],e.heap[1]=e.heap[e.heap_len--],tMe(e,i,1),n=e.heap[1],e.heap[--e.heap_max]=t,e.heap[--e.heap_max]=n,i[2*r]=i[2*t]+i[2*n],e.depth[r]=(e.depth[t]>=e.depth[n]?e.depth[t]:e.depth[n])+1,i[2*t+1]=i[2*n+1]=r,e.heap[1]=r++,tMe(e,i,1)}while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],function(e,A){var t,n,r,i,o,a,s=A.dyn_tree,g=A.max_code,c=A.stat_desc.static_tree,l=A.stat_desc.has_stree,u=A.stat_desc.extra_bits,I=A.stat_desc.extra_base,h=A.stat_desc.max_length,C=0;for(i=0;i<=15;i++)e.bl_count[i]=0;for(s[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<573;t++)(i=s[2*s[2*(n=e.heap[t])+1]+1]+1)>h&&(i=h,C++),s[2*n+1]=i,n>g||(e.bl_count[i]++,o=0,n>=I&&(o=u[n-I]),a=s[2*n],e.opt_len+=a*(i+o),l&&(e.static_len+=a*(c[2*n+1]+o)));if(0!==C){do{for(i=h-1;0===e.bl_count[i];)i--;e.bl_count[i]--,e.bl_count[i+1]+=2,e.bl_count[h]--,C-=2}while(C>0);for(i=h;0!==i;i--)for(n=e.bl_count[i];0!==n;)(r=e.heap[--t])>g||(s[2*r+1]!==i&&(e.opt_len+=(i-s[2*r+1])*s[2*r],s[2*r+1]=i),n--)}}(e,A),ZSe(i,g,e.bl_count)},iMe=function(e,A,t){var n,r,i=-1,o=A[1],a=0,s=7,g=4;for(0===o&&(s=138,g=3),A[2*(t+1)+1]=65535,n=0;n<=t;n++)r=o,o=A[2*(n+1)+1],++a>=7;n<30;n++)for(JSe[n]=r<<7,e=0;e<1<0?(2===e.strm.data_type&&(e.strm.data_type=function(e){var A,t=4093624447;for(A=0;A<=31;A++,t>>>=1)if(1&t&&0!==e.dyn_ltree[2*A])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(A=32;A<256;A++)if(0!==e.dyn_ltree[2*A])return 1;return 0}(e)),rMe(e,e.l_desc),rMe(e,e.d_desc),o=function(e){var A;for(iMe(e,e.dyn_ltree,e.l_desc.max_code),iMe(e,e.dyn_dtree,e.d_desc.max_code),rMe(e,e.bl_desc),A=18;A>=3&&0===e.bl_tree[2*FSe[A]+1];A--);return e.opt_len+=3*(A+1)+5+5+4,A}(e),r=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=r&&(r=i)):r=i=t+5,t+4<=r&&-1!==A?sMe(e,A,t,n):4===e.strategy||i===r?(qSe(e,2+(n?1:0),3),nMe(e,NSe,LSe)):(qSe(e,4+(n?1:0),3),function(e,A,t,n){var r;for(qSe(e,A-257,5),qSe(e,t-1,5),qSe(e,n-4,4),r=0;r>8,e.pending_buf[e.sym_buf+e.sym_next++]=t,0===A?e.dyn_ltree[2*t]++:(e.matches++,A--,e.dyn_ltree[2*(KSe[t]+256+1)]++,e.dyn_dtree[2*jSe(A)]++),e.sym_next===e.sym_end},IMe=function(e){var A;qSe(e,2,3),VSe(e,256,NSe),16===(A=e).bi_valid?(XSe(A,A.bi_buf),A.bi_buf=0,A.bi_valid=0):A.bi_valid>=8&&(A.pending_buf[A.pending++]=255&A.bi_buf,A.bi_buf>>=8,A.bi_valid-=8)},hMe=function(e,A,t,n){for(var r=65535&e|0,i=e>>>16&65535|0,o=0;0!==t;){t-=o=t>2e3?2e3:t;do{i=i+(r=r+A[n++]|0)|0}while(--o);r%=65521,i%=65521}return r|i<<16|0},CMe=new Uint32Array(function(){for(var e,A=[],t=0;t<256;t++){e=t;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;A[t]=e}return A}()),dMe=function(e,A,t,n){var r=CMe,i=n+t;e^=-1;for(var o=n;o>>8^r[255&(e^A[o])];return-1^e},EMe={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},fMe={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},BMe=gMe,QMe=cMe,pMe=lMe,vMe=uMe,yMe=IMe,mMe=fMe.Z_NO_FLUSH,DMe=fMe.Z_PARTIAL_FLUSH,wMe=fMe.Z_FULL_FLUSH,RMe=fMe.Z_FINISH,kMe=fMe.Z_BLOCK,SMe=fMe.Z_OK,MMe=fMe.Z_STREAM_END,GMe=fMe.Z_STREAM_ERROR,_Me=fMe.Z_DATA_ERROR,bMe=fMe.Z_BUF_ERROR,TMe=fMe.Z_DEFAULT_COMPRESSION,FMe=fMe.Z_FILTERED,NMe=fMe.Z_HUFFMAN_ONLY,LMe=fMe.Z_RLE,UMe=fMe.Z_FIXED,KMe=fMe.Z_DEFAULT_STRATEGY,xMe=fMe.Z_UNKNOWN,YMe=fMe.Z_DEFLATED,PMe=function(e,A){return e.msg=EMe[A],A},HMe=function(e){return 2*e-(e>4?9:0)},JMe=function(e){for(var A=e.length;--A>=0;)e[A]=0},OMe=function(e){var A,t,n,r=e.w_size;n=A=e.hash_size;do{t=e.head[--n],e.head[n]=t>=r?t-r:0}while(--A);n=A=r;do{t=e.prev[--n],e.prev[n]=t>=r?t-r:0}while(--A)},zMe=function(e,A,t){return(A<e.avail_out&&(t=e.avail_out),0!==t&&(e.output.set(A.pending_buf.subarray(A.pending_out,A.pending_out+t),e.next_out),e.next_out+=t,A.pending_out+=t,e.total_out+=t,e.avail_out-=t,A.pending-=t,0===A.pending&&(A.pending_out=0))},XMe=function(e,A){pMe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,A),e.block_start=e.strstart,jMe(e.strm)},qMe=function(e,A){e.pending_buf[e.pending++]=A},VMe=function(e,A){e.pending_buf[e.pending++]=A>>>8&255,e.pending_buf[e.pending++]=255&A},WMe=function(e,A,t,n){var r=e.avail_in;return r>n&&(r=n),0===r?0:(e.avail_in-=r,A.set(e.input.subarray(e.next_in,e.next_in+r),t),1===e.state.wrap?e.adler=hMe(e.adler,A,r,t):2===e.state.wrap&&(e.adler=dMe(e.adler,A,r,t)),e.next_in+=r,e.total_in+=r,r)},ZMe=function(e,A){var t,n,r=e.max_chain_length,i=e.strstart,o=e.prev_length,a=e.nice_match,s=e.strstart>e.w_size-262?e.strstart-(e.w_size-262):0,g=e.window,c=e.w_mask,l=e.prev,u=e.strstart+258,I=g[i+o-1],h=g[i+o];e.prev_length>=e.good_match&&(r>>=2),a>e.lookahead&&(a=e.lookahead);do{if(g[(t=A)+o]===h&&g[t+o-1]===I&&g[t]===g[i]&&g[++t]===g[i+1]){i+=2,t++;do{}while(g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&g[++i]===g[++t]&&io){if(e.match_start=A,o=n,n>=a)break;I=g[i+o-1],h=g[i+o]}}}while((A=l[A&c])>s&&0!=--r);return o<=e.lookahead?o:e.lookahead},$Me=function(e){var A,t,n,r=e.w_size;do{if(t=e.window_size-e.lookahead-e.strstart,e.strstart>=r+(r-262)&&(e.window.set(e.window.subarray(r,r+r-t),0),e.match_start-=r,e.strstart-=r,e.block_start-=r,e.insert>e.strstart&&(e.insert=e.strstart),OMe(e),t+=r),0===e.strm.avail_in)break;if(A=WMe(e.strm,e.window,e.strstart+e.lookahead,t),e.lookahead+=A,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=zMe(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=zMe(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<262&&0!==e.strm.avail_in)},eGe=function(e,A){var t,n,r,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,o=0,a=e.strm.avail_in;do{if(t=65535,r=e.bi_valid+42>>3,e.strm.avail_out(n=e.strstart-e.block_start)+e.strm.avail_in&&(t=n+e.strm.avail_in),t>r&&(t=r),t>8,e.pending_buf[e.pending-2]=~t,e.pending_buf[e.pending-1]=~t>>8,jMe(e.strm),n&&(n>t&&(n=t),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+n),e.strm.next_out),e.strm.next_out+=n,e.strm.avail_out-=n,e.strm.total_out+=n,e.block_start+=n,t-=n),t&&(WMe(e.strm,e.strm.output,e.strm.next_out,t),e.strm.next_out+=t,e.strm.avail_out-=t,e.strm.total_out+=t)}while(0===o);return(a-=e.strm.avail_in)&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_waterr&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,r+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),r>e.strm.avail_in&&(r=e.strm.avail_in),r&&(WMe(e.strm,e.window,e.strstart,r),e.strstart+=r,e.insert+=r>e.w_size-e.insert?e.w_size-e.insert:r),e.high_water>3,i=(r=e.pending_buf_size-r>65535?65535:e.pending_buf_size-r)>e.w_size?e.w_size:r,((n=e.strstart-e.block_start)>=i||(n||A===RMe)&&A!==mMe&&0===e.strm.avail_in&&n<=r)&&(t=n>r?r:n,o=A===RMe&&0===e.strm.avail_in&&t===n?1:0,QMe(e,e.block_start,t,o),e.block_start+=t,jMe(e.strm)),o?3:1)},AGe=function(e,A){for(var t,n;;){if(e.lookahead<262){if($Me(e),e.lookahead<262&&A===mMe)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=zMe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==t&&e.strstart-t<=e.w_size-262&&(e.match_length=ZMe(e,t)),e.match_length>=3)if(n=vMe(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do{e.strstart++,e.ins_h=zMe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart}while(0!=--e.match_length);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=zMe(e,e.ins_h,e.window[e.strstart+1]);else n=vMe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(XMe(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<2?e.strstart:2,A===RMe?(XMe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(XMe(e,!1),0===e.strm.avail_out)?1:2},tGe=function(e,A){for(var t,n,r;;){if(e.lookahead<262){if($Me(e),e.lookahead<262&&A===mMe)return 1;if(0===e.lookahead)break}if(t=0,e.lookahead>=3&&(e.ins_h=zMe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,0!==t&&e.prev_length4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){r=e.strstart+e.lookahead-3,n=vMe(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do{++e.strstart<=r&&(e.ins_h=zMe(e,e.ins_h,e.window[e.strstart+3-1]),t=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart)}while(0!=--e.prev_length);if(e.match_available=0,e.match_length=2,e.strstart++,n&&(XMe(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((n=vMe(e,0,e.window[e.strstart-1]))&&XMe(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=vMe(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,A===RMe?(XMe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(XMe(e,!1),0===e.strm.avail_out)?1:2};function nGe(e,A,t,n,r){this.good_length=e,this.max_lazy=A,this.nice_length=t,this.max_chain=n,this.func=r}var rGe=[new nGe(0,0,0,0,eGe),new nGe(4,4,8,4,AGe),new nGe(4,5,16,8,AGe),new nGe(4,6,32,32,AGe),new nGe(4,4,16,16,tGe),new nGe(8,16,32,32,tGe),new nGe(8,16,128,128,tGe),new nGe(8,32,128,256,tGe),new nGe(32,128,258,1024,tGe),new nGe(32,258,258,4096,tGe)];function iGe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=YMe,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),JMe(this.dyn_ltree),JMe(this.dyn_dtree),JMe(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),JMe(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),JMe(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}var oGe=function(e){if(!e)return 1;var A=e.state;return!A||A.strm!==e||42!==A.status&&57!==A.status&&69!==A.status&&73!==A.status&&91!==A.status&&103!==A.status&&113!==A.status&&666!==A.status?1:0},aGe=function(e){if(oGe(e))return PMe(e,GMe);e.total_in=e.total_out=0,e.data_type=xMe;var A=e.state;return A.pending=0,A.pending_out=0,A.wrap<0&&(A.wrap=-A.wrap),A.status=2===A.wrap?57:A.wrap?42:113,e.adler=2===A.wrap?0:1,A.last_flush=-2,BMe(A),SMe},sGe=function(e){var A,t=aGe(e);return t===SMe&&((A=e.state).window_size=2*A.w_size,JMe(A.head),A.max_lazy_match=rGe[A.level].max_lazy,A.good_match=rGe[A.level].good_length,A.nice_match=rGe[A.level].nice_length,A.max_chain_length=rGe[A.level].max_chain,A.strstart=0,A.block_start=0,A.lookahead=0,A.insert=0,A.match_length=A.prev_length=2,A.match_available=0,A.ins_h=0),t},gGe=function(e,A,t,n,r,i){if(!e)return GMe;var o=1;if(A===TMe&&(A=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>9||t!==YMe||n<8||n>15||A<0||A>9||i<0||i>UMe||8===n&&1!==o)return PMe(e,GMe);8===n&&(n=9);var a=new iGe;return e.state=a,a.strm=e,a.status=42,a.wrap=o,a.gzhead=null,a.w_bits=n,a.w_size=1<kMe||A<0)return e?PMe(e,GMe):GMe;var t=e.state;if(!e.output||0!==e.avail_in&&!e.input||666===t.status&&A!==RMe)return PMe(e,0===e.avail_out?bMe:GMe);var n=t.last_flush;if(t.last_flush=A,0!==t.pending){if(jMe(e),0===e.avail_out)return t.last_flush=-1,SMe}else if(0===e.avail_in&&HMe(A)<=HMe(n)&&A!==RMe)return PMe(e,bMe);if(666===t.status&&0!==e.avail_in)return PMe(e,bMe);if(42===t.status&&0===t.wrap&&(t.status=113),42===t.status){var r=YMe+(t.w_bits-8<<4)<<8;if(r|=(t.strategy>=NMe||t.level<2?0:t.level<6?1:6===t.level?2:3)<<6,0!==t.strstart&&(r|=32),VMe(t,r+=31-r%31),0!==t.strstart&&(VMe(t,e.adler>>>16),VMe(t,65535&e.adler)),e.adler=1,t.status=113,jMe(e),0!==t.pending)return t.last_flush=-1,SMe}if(57===t.status)if(e.adler=0,qMe(t,31),qMe(t,139),qMe(t,8),t.gzhead)qMe(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),qMe(t,255&t.gzhead.time),qMe(t,t.gzhead.time>>8&255),qMe(t,t.gzhead.time>>16&255),qMe(t,t.gzhead.time>>24&255),qMe(t,9===t.level?2:t.strategy>=NMe||t.level<2?4:0),qMe(t,255&t.gzhead.os),t.gzhead.extra&&t.gzhead.extra.length&&(qMe(t,255&t.gzhead.extra.length),qMe(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(e.adler=dMe(e.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=69;else if(qMe(t,0),qMe(t,0),qMe(t,0),qMe(t,0),qMe(t,0),qMe(t,9===t.level?2:t.strategy>=NMe||t.level<2?4:0),qMe(t,3),t.status=113,jMe(e),0!==t.pending)return t.last_flush=-1,SMe;if(69===t.status){if(t.gzhead.extra){for(var i=t.pending,o=(65535&t.gzhead.extra.length)-t.gzindex;t.pending+o>t.pending_buf_size;){var a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>i&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex+=a,jMe(e),0!==t.pending)return t.last_flush=-1,SMe;i=0,o-=a}var s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>i&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-i,i)),t.gzindex=0}t.status=73}if(73===t.status){if(t.gzhead.name){var g,c=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>c&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-c,c)),jMe(e),0!==t.pending)return t.last_flush=-1,SMe;c=0}g=t.gzindexc&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-c,c)),t.gzindex=0}t.status=91}if(91===t.status){if(t.gzhead.comment){var l,u=t.pending;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>u&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-u,u)),jMe(e),0!==t.pending)return t.last_flush=-1,SMe;u=0}l=t.gzindexu&&(e.adler=dMe(e.adler,t.pending_buf,t.pending-u,u))}t.status=103}if(103===t.status){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(jMe(e),0!==t.pending))return t.last_flush=-1,SMe;qMe(t,255&e.adler),qMe(t,e.adler>>8&255),e.adler=0}if(t.status=113,jMe(e),0!==t.pending)return t.last_flush=-1,SMe}if(0!==e.avail_in||0!==t.lookahead||A!==mMe&&666!==t.status){var I=0===t.level?eGe(t,A):t.strategy===NMe?function(e,A){for(var t;;){if(0===e.lookahead&&($Me(e),0===e.lookahead)){if(A===mMe)return 1;break}if(e.match_length=0,t=vMe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,t&&(XMe(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,A===RMe?(XMe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(XMe(e,!1),0===e.strm.avail_out)?1:2}(t,A):t.strategy===LMe?function(e,A){for(var t,n,r,i,o=e.window;;){if(e.lookahead<=258){if($Me(e),e.lookahead<=258&&A===mMe)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=3&&e.strstart>0&&(n=o[r=e.strstart-1])===o[++r]&&n===o[++r]&&n===o[++r]){i=e.strstart+258;do{}while(n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&n===o[++r]&&re.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=3?(t=vMe(e,1,e.match_length-3),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(t=vMe(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),t&&(XMe(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,A===RMe?(XMe(e,!0),0===e.strm.avail_out?3:4):e.sym_next&&(XMe(e,!1),0===e.strm.avail_out)?1:2}(t,A):rGe[t.level].func(t,A);if(3!==I&&4!==I||(t.status=666),1===I||3===I)return 0===e.avail_out&&(t.last_flush=-1),SMe;if(2===I&&(A===DMe?yMe(t):A!==kMe&&(QMe(t,0,0,!1),A===wMe&&(JMe(t.head),0===t.lookahead&&(t.strstart=0,t.block_start=0,t.insert=0))),jMe(e),0===e.avail_out))return t.last_flush=-1,SMe}return A!==RMe?SMe:t.wrap<=0?MMe:(2===t.wrap?(qMe(t,255&e.adler),qMe(t,e.adler>>8&255),qMe(t,e.adler>>16&255),qMe(t,e.adler>>24&255),qMe(t,255&e.total_in),qMe(t,e.total_in>>8&255),qMe(t,e.total_in>>16&255),qMe(t,e.total_in>>24&255)):(VMe(t,e.adler>>>16),VMe(t,65535&e.adler)),jMe(e),t.wrap>0&&(t.wrap=-t.wrap),0!==t.pending?SMe:MMe)},deflateEnd:function(e){if(oGe(e))return GMe;var A=e.state.status;return e.state=null,113===A?PMe(e,_Me):SMe},deflateSetDictionary:function(e,A){var t=A.length;if(oGe(e))return GMe;var n=e.state,r=n.wrap;if(2===r||1===r&&42!==n.status||n.lookahead)return GMe;if(1===r&&(e.adler=hMe(e.adler,A,t,0)),n.wrap=0,t>=n.w_size){0===r&&(JMe(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(A.subarray(t-n.w_size,t),0),A=i,t=n.w_size}var o=e.avail_in,a=e.next_in,s=e.input;for(e.avail_in=t,e.next_in=0,e.input=A,$Me(n);n.lookahead>=3;){var g=n.strstart,c=n.lookahead-2;do{n.ins_h=zMe(n,n.ins_h,n.window[g+3-1]),n.prev[g&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=g,g++}while(--c);n.strstart=g,n.lookahead=2,$Me(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,e.next_in=a,e.input=s,e.avail_in=o,n.wrap=r,SMe},deflateInfo:"pako deflate (from Nodeca project)"},lGe=function(e,A){return Object.prototype.hasOwnProperty.call(e,A)},uGe={assign:function(e){for(var A=Xp(Array.prototype).call(arguments,1);A.length;){var t=A.shift();if(t){if("object"!=wc(t))throw new TypeError(t+"must be non-object");for(var n in t)lGe(t,n)&&(e[n]=t[n])}}return e},flattenChunks:function(e){for(var A=0,t=0,n=e.length;t=252?6:CGe>=248?5:CGe>=240?4:CGe>=224?3:CGe>=192?2:1;hGe[254]=hGe[254]=1;var dGe={string2buf:function(e){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(e);var A,t,n,r,i,o=e.length,a=0;for(r=0;r>>6,A[i++]=128|63&t):t<65536?(A[i++]=224|t>>>12,A[i++]=128|t>>>6&63,A[i++]=128|63&t):(A[i++]=240|t>>>18,A[i++]=128|t>>>12&63,A[i++]=128|t>>>6&63,A[i++]=128|63&t);return A},buf2string:function(e,A){var t,n,r=A||e.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(e.subarray(0,A));var i=new Array(2*r);for(n=0,t=0;t4)i[n++]=65533,t+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&t1?i[n++]=65533:o<65536?i[n++]=o:(o-=65536,i[n++]=55296|o>>10&1023,i[n++]=56320|1023&o)}}}return function(e,A){if(A<65534&&e.subarray&&IGe)return String.fromCharCode.apply(null,e.length===A?e:e.subarray(0,A));for(var t="",n=0;ne.length&&(A=e.length);for(var t=A-1;t>=0&&128==(192&e[t]);)t--;return t<0||0===t?A:t+hGe[e[t]]>A?t:A}},EGe=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},fGe=Object.prototype.toString,BGe=fMe.Z_NO_FLUSH,QGe=fMe.Z_SYNC_FLUSH,pGe=fMe.Z_FULL_FLUSH,vGe=fMe.Z_FINISH,yGe=fMe.Z_OK,mGe=fMe.Z_STREAM_END,DGe=fMe.Z_DEFAULT_COMPRESSION,wGe=fMe.Z_DEFAULT_STRATEGY,RGe=fMe.Z_DEFLATED;function kGe(e){this.options=uGe.assign({level:DGe,method:RGe,chunkSize:16384,windowBits:15,memLevel:8,strategy:wGe},e||{});var A=this.options;A.raw&&A.windowBits>0?A.windowBits=-A.windowBits:A.gzip&&A.windowBits>0&&A.windowBits<16&&(A.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EGe,this.strm.avail_out=0;var t=cGe.deflateInit2(this.strm,A.level,A.method,A.windowBits,A.memLevel,A.strategy);if(t!==yGe)throw new Error(EMe[t]);if(A.header&&cGe.deflateSetHeader(this.strm,A.header),A.dictionary){var n;if(n="string"==typeof A.dictionary?dGe.string2buf(A.dictionary):"[object ArrayBuffer]"===fGe.call(A.dictionary)?new Uint8Array(A.dictionary):A.dictionary,(t=cGe.deflateSetDictionary(this.strm,n))!==yGe)throw new Error(EMe[t]);this._dict_set=!0}}function SGe(e,A){var t=new kGe(A);if(t.push(e,!0),t.err)throw t.msg||EMe[t.err];return t.result}kGe.prototype.push=function(e,A){var t,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=A===~~A?A:!0===A?vGe:BGe,"string"==typeof e?r.input=dGe.string2buf(e):"[object ArrayBuffer]"===fGe.call(e)?r.input=new Uint8Array(e):r.input=e,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(n===QGe||n===pGe)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if((t=cGe.deflate(r,n))===mGe)return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),t=cGe.deflateEnd(this.strm),this.onEnd(t),this.ended=!0,t===yGe;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},kGe.prototype.onData=function(e){this.chunks.push(e)},kGe.prototype.onEnd=function(e){e===yGe&&(this.result=uGe.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var MGe={Deflate:kGe,deflate:SGe,deflateRaw:function(e,A){return(A=A||{}).raw=!0,SGe(e,A)},gzip:function(e,A){return(A=A||{}).gzip=!0,SGe(e,A)},constants:fMe},GGe=function(e,A){var t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v,y,m,D,w=e.state;t=e.next_in,m=e.input,n=t+(e.avail_in-5),r=e.next_out,D=e.output,i=r-(A-e.avail_out),o=r+(e.avail_out-257),a=w.dmax,s=w.wsize,g=w.whave,c=w.wnext,l=w.window,u=w.hold,I=w.bits,h=w.lencode,C=w.distcode,d=(1<>>=B=f>>>24,I-=B,0==(B=f>>>16&255))D[r++]=65535&f;else{if(!(16&B)){if(0==(64&B)){f=h[(65535&f)+(u&(1<>>=B,I-=B),I<15&&(u+=m[t++]<>>=B=f>>>24,I-=B,!(16&(B=f>>>16&255))){if(0==(64&B)){f=C[(65535&f)+(u&(1<a){e.msg="invalid distance too far back",w.mode=16209;break e}if(u>>>=B,I-=B,p>(B=r-i)){if((B=p-B)>g&&w.sane){e.msg="invalid distance too far back",w.mode=16209;break e}if(v=0,y=l,0===c){if(v+=s-B,B2;)D[r++]=y[v++],D[r++]=y[v++],D[r++]=y[v++],Q-=3;Q&&(D[r++]=y[v++],Q>1&&(D[r++]=y[v++]))}else{v=r-p;do{D[r++]=D[v++],D[r++]=D[v++],D[r++]=D[v++],Q-=3}while(Q>2);Q&&(D[r++]=D[v++],Q>1&&(D[r++]=D[v++]))}break}}break}}while(t>3,u&=(1<<(I-=Q<<3))-1,e.next_in=t,e.next_out=r,e.avail_in=t=1&&0===S[p];p--);if(v>p&&(v=p),0===p)return r[i++]=20971520,r[i++]=20971520,a.bits=1,0;for(Q=1;Q0&&(0===e||1!==p))return-1;for(M[1]=0,f=1;f<15;f++)M[f+1]=M[f]+S[f];for(B=0;B852||2===e&&w>592)return 1;for(;;){h=f-m,o[B]+1=I?(C=G[o[B]-I],d=k[o[B]-I]):(C=96,d=0),s=1<>m)+(g-=s)]=h<<24|C<<16|d|0}while(0!==g);for(s=1<>=1;if(0!==s?(R&=s-1,R+=s):R=0,B++,0==--S[f]){if(f===p)break;f=A[t+o[B]]}if(f>v&&(R&l)!==c){for(0===m&&(m=v),u+=Q,D=1<<(y=f-m);y+m852||2===e&&w>592)return 1;r[c=R&l]=v<<24|y<<16|u-i|0}}return 0!==R&&(r[u+R]=f-m<<24|64<<16|0),a.bits=v,0},LGe=fMe.Z_FINISH,UGe=fMe.Z_BLOCK,KGe=fMe.Z_TREES,xGe=fMe.Z_OK,YGe=fMe.Z_STREAM_END,PGe=fMe.Z_NEED_DICT,HGe=fMe.Z_STREAM_ERROR,JGe=fMe.Z_DATA_ERROR,OGe=fMe.Z_MEM_ERROR,zGe=fMe.Z_BUF_ERROR,jGe=fMe.Z_DEFLATED,XGe=function(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)};function qGe(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var VGe,WGe,ZGe=function(e){if(!e)return 1;var A=e.state;return!A||A.strm!==e||A.mode<16180||A.mode>16211?1:0},$Ge=function(e){if(ZGe(e))return HGe;var A=e.state;return e.total_in=e.total_out=A.total=0,e.msg="",A.wrap&&(e.adler=1&A.wrap),A.mode=16180,A.last=0,A.havedict=0,A.flags=-1,A.dmax=32768,A.head=null,A.hold=0,A.bits=0,A.lencode=A.lendyn=new Int32Array(852),A.distcode=A.distdyn=new Int32Array(592),A.sane=1,A.back=-1,xGe},e_e=function(e){if(ZGe(e))return HGe;var A=e.state;return A.wsize=0,A.whave=0,A.wnext=0,$Ge(e)},A_e=function(e,A){var t;if(ZGe(e))return HGe;var n=e.state;return A<0?(t=0,A=-A):(t=5+(A>>4),A<48&&(A&=15)),A&&(A<8||A>15)?HGe:(null!==n.window&&n.wbits!==A&&(n.window=null),n.wrap=t,n.wbits=A,e_e(e))},t_e=function(e,A){if(!e)return HGe;var t=new qGe;e.state=t,t.strm=e,t.window=null,t.mode=16180;var n=A_e(e,A);return n!==xGe&&(e.state=null),n},n_e=!0,r_e=function(e){if(n_e){VGe=new Int32Array(512),WGe=new Int32Array(32);for(var A=0;A<144;)e.lens[A++]=8;for(;A<256;)e.lens[A++]=9;for(;A<280;)e.lens[A++]=7;for(;A<288;)e.lens[A++]=8;for(NGe(1,e.lens,0,288,VGe,0,e.work,{bits:9}),A=0;A<32;)e.lens[A++]=5;NGe(2,e.lens,0,32,WGe,0,e.work,{bits:5}),n_e=!1}e.lencode=VGe,e.lenbits=9,e.distcode=WGe,e.distbits=5},i_e=function(e,A,t,n){var r,i=e.state;return null===i.window&&(i.wsize=1<=i.wsize?(i.window.set(A.subarray(t-i.wsize,t),0),i.wnext=0,i.whave=i.wsize):((r=i.wsize-i.wnext)>n&&(r=n),i.window.set(A.subarray(t-n,t-n+r),i.wnext),(n-=r)?(i.window.set(A.subarray(t-n,t),0),i.wnext=n,i.whave=i.wsize):(i.wnext+=r,i.wnext===i.wsize&&(i.wnext=0),i.whave>>8&255,t.check=dMe(t.check,R,2,0),g=0,c=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&g)<<8)+(g>>8))%31){e.msg="incorrect header check",t.mode=16209;break}if((15&g)!==jGe){e.msg="unknown compression method",t.mode=16209;break}if(c-=4,v=8+(15&(g>>>=4)),0===t.wbits&&(t.wbits=v),v>15||v>t.wbits){e.msg="invalid window size",t.mode=16209;break}t.dmax=1<>8&1),512&ux(t)&&4&t.wrap&&(R[0]=255&g,R[1]=g>>>8&255,t.check=dMe(t.check,R,2,0)),g=0,c=0,t.mode=16182;case 16182:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<>>8&255,R[2]=g>>>16&255,R[3]=g>>>24&255,t.check=dMe(t.check,R,4,0)),g=0,c=0,t.mode=16183;case 16183:for(;c<16;){if(0===a)break e;a--,g+=n[i++]<>8),512&ux(t)&&4&t.wrap&&(R[0]=255&g,R[1]=g>>>8&255,t.check=dMe(t.check,R,2,0)),g=0,c=0,t.mode=16184;case 16184:if(1024&ux(t)){for(;c<16;){if(0===a)break e;a--,g+=n[i++]<>>8&255,t.check=dMe(t.check,R,2,0)),g=0,c=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&ux(t)&&((I=t.length)>a&&(I=a),I&&(t.head&&(v=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(i,i+I),v)),512&ux(t)&&4&t.wrap&&(t.check=dMe(t.check,n,I,i)),a-=I,i+=I,t.length-=I),t.length))break e;t.length=0,t.mode=16186;case 16186:if(2048&ux(t)){if(0===a)break e;I=0;do{v=n[i+I++],t.head&&v&&t.length<65536&&(t.head.name+=String.fromCharCode(v))}while(v&&I>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=16191;break;case 16189:for(;c<32;){if(0===a)break e;a--,g+=n[i++]<>>=7&c,c-=7&c,t.mode=16206;break}for(;c<3;){if(0===a)break e;a--,g+=n[i++]<>>=1)){case 0:t.mode=16193;break;case 1:if(r_e(t),t.mode=16199,A===KGe){g>>>=2,c-=2;break e}break;case 2:t.mode=16196;break;case 3:e.msg="invalid block type",t.mode=16209}g>>>=2,c-=2;break;case 16193:for(g>>>=7&c,c-=7&c;c<32;){if(0===a)break e;a--,g+=n[i++]<>>16^65535)){e.msg="invalid stored block lengths",t.mode=16209;break}if(t.length=65535&g,g=0,c=0,t.mode=16194,A===KGe)break e;case 16194:t.mode=16195;case 16195:if(I=t.length){if(I>a&&(I=a),I>s&&(I=s),0===I)break e;r.set(n.subarray(i,i+I),o),a-=I,i+=I,s-=I,o+=I,t.length-=I;break}t.mode=16191;break;case 16196:for(;c<14;){if(0===a)break e;a--,g+=n[i++]<>>=5,c-=5,t.ndist=1+(31&g),g>>>=5,c-=5,t.ncode=4+(15&g),g>>>=4,c-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=16209;break}t.have=0,t.mode=16197;case 16197:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[k[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,m={bits:t.lenbits},y=NGe(0,t.lens,0,19,t.lencode,0,t.work,m),t.lenbits=m.bits,y){e.msg="invalid code lengths set",t.mode=16209;break}t.have=0,t.mode=16198;case 16198:for(;t.have>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=d,c-=d,t.lens[t.have++]=f;else{if(16===f){for(D=d+2;c>>=d,c-=d,0===t.have){e.msg="invalid bit length repeat",t.mode=16209;break}v=t.lens[t.have-1],I=3+(3&g),g>>>=2,c-=2}else if(17===f){for(D=d+3;c>>=d)),g>>>=3,c-=3}else{for(D=d+7;c>>=d)),g>>>=7,c-=7}if(t.have+I>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=16209;break}for(;I--;)t.lens[t.have++]=v}}if(16209===t.mode)break;if(0===t.lens[256]){e.msg="invalid code -- missing end-of-block",t.mode=16209;break}if(t.lenbits=9,m={bits:t.lenbits},y=NGe(1,t.lens,0,t.nlen,t.lencode,0,t.work,m),t.lenbits=m.bits,y){e.msg="invalid literal/lengths set",t.mode=16209;break}if(t.distbits=6,t.distcode=t.distdyn,m={bits:t.distbits},y=NGe(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,m),t.distbits=m.bits,y){e.msg="invalid distances set",t.mode=16209;break}if(t.mode=16199,A===KGe)break e;case 16199:t.mode=16200;case 16200:if(a>=6&&s>=258){e.next_out=o,e.avail_out=s,e.next_in=i,e.avail_in=a,t.hold=g,t.bits=c,GGe(e,u),o=e.next_out,r=e.output,s=e.avail_out,i=e.next_in,n=e.input,a=e.avail_in,g=t.hold,c=t.bits,16191===t.mode&&(t.back=-1);break}for(t.back=0;E=(w=t.lencode[g&(1<>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>B)])>>>16&255,f=65535&w,!(B+(d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=B,c-=B,t.back+=B}if(g>>>=d,c-=d,t.back+=d,t.length=f,0===E){t.mode=16205;break}if(32&E){t.back=-1,t.mode=16191;break}if(64&E){e.msg="invalid literal/length code",t.mode=16209;break}t.extra=15&E,t.mode=16201;case 16201:if(t.extra){for(D=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;E=(w=t.distcode[g&(1<>>16&255,f=65535&w,!((d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>B)])>>>16&255,f=65535&w,!(B+(d=w>>>24)<=c);){if(0===a)break e;a--,g+=n[i++]<>>=B,c-=B,t.back+=B}if(g>>>=d,c-=d,t.back+=d,64&E){e.msg="invalid distance code",t.mode=16209;break}t.offset=f,t.extra=15&E,t.mode=16203;case 16203:if(t.extra){for(D=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=16209;break}t.mode=16204;case 16204:if(0===s)break e;if(I=u-s,t.offset>I){if((I=t.offset-I)>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=16209;break}I>t.wnext?(I-=t.wnext,h=t.wsize-I):h=t.wnext-I,I>t.length&&(I=t.length),C=t.window}else C=r,h=o-t.offset,I=t.length;I>s&&(I=s),s-=I,t.length-=I;do{r[o++]=C[h++]}while(--I);0===t.length&&(t.mode=16200);break;case 16205:if(0===s)break e;r[o++]=t.length,s--,t.mode=16200;break;case 16206:if(t.wrap){for(;c<32;){if(0===a)break e;a--,g|=n[i++]<=0&&A.windowBits<16&&(A.windowBits=-A.windowBits,0===A.windowBits&&(A.windowBits=-15)),!(A.windowBits>=0&&A.windowBits<16)||e&&e.windowBits||(A.windowBits+=32),A.windowBits>15&&A.windowBits<48&&0==(15&A.windowBits)&&(A.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new EGe,this.strm.avail_out=0;var t=o_e.inflateInit2(this.strm,A.windowBits);if(t!==l_e)throw new Error(EMe[t]);if(this.header=new a_e,o_e.inflateGetHeader(this.strm,this.header),A.dictionary&&("string"==typeof A.dictionary?A.dictionary=dGe.string2buf(A.dictionary):"[object ArrayBuffer]"===s_e.call(A.dictionary)&&(A.dictionary=new Uint8Array(A.dictionary)),A.raw&&(t=o_e.inflateSetDictionary(this.strm,A.dictionary))!==l_e))throw new Error(EMe[t])}function f_e(e,A){var t=new E_e(A);if(t.push(e),t.err)throw t.msg||EMe[t.err];return t.result}E_e.prototype.push=function(e,A){var t,n,r,i=this.strm,o=this.options.chunkSize,a=this.options.dictionary;if(this.ended)return!1;for(n=A===~~A?A:!0===A?c_e:g_e,"[object ArrayBuffer]"===s_e.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;;){for(0===i.avail_out&&(i.output=new Uint8Array(o),i.next_out=0,i.avail_out=o),(t=o_e.inflate(i,n))===I_e&&a&&((t=o_e.inflateSetDictionary(i,a))===l_e?t=o_e.inflate(i,n):t===C_e&&(t=I_e));i.avail_in>0&&t===u_e&&i.state.wrap>0&&0!==e[i.next_in];)o_e.inflateReset(i),t=o_e.inflate(i,n);switch(t){case h_e:case C_e:case I_e:case d_e:return this.onEnd(t),this.ended=!0,!1}if(r=i.avail_out,i.next_out&&(0===i.avail_out||t===u_e))if("string"===this.options.to){var s=dGe.utf8border(i.output,i.next_out),g=i.next_out-s,c=dGe.buf2string(i.output,s);i.next_out=g,i.avail_out=o-g,g&&i.output.set(i.output.subarray(s,s+g),0),this.onData(c)}else this.onData(i.output.length===i.next_out?i.output:i.output.subarray(0,i.next_out));if(t!==l_e||0!==r){if(t===u_e)return t=o_e.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===i.avail_in)break}}return!0},E_e.prototype.onData=function(e){this.chunks.push(e)},E_e.prototype.onEnd=function(e){e===l_e&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=uGe.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var B_e,Q_e={Inflate:E_e,inflate:f_e,inflateRaw:function(e,A){return(A=A||{}).raw=!0,f_e(e,A)},ungzip:f_e,constants:fMe},p_e={Deflate:MGe.Deflate,deflate:MGe.deflate,deflateRaw:MGe.deflateRaw,gzip:MGe.gzip,Inflate:Q_e.Inflate,inflate:Q_e.inflate,inflateRaw:Q_e.inflateRaw,ungzip:Q_e.ungzip,constants:fMe},v_e=function(){function e(e,A){var t=this;this.collector=e,this.config=A,this.requestType=A.request_type||"xhr",this.supportBeacon=!(!window.navigator||!window.navigator.sendBeacon),this.errorCode={NO_URL:4001,IMG_ON:4e3,IMG_CATCH:4002,BEACON_FALSE:4003,XHR_ON:500,RESPONSE:5001,TIMEOUT:5005},this.customHeader=A.custom_request_header||{},this.collector.on("custom-request-header",(function(e){t.setRequestHeader(e)}))}return e.prototype.setRequestHeader=function(e){this.customHeader=sy(this.customHeader,e)},e.prototype.useFetch=function(e){var A=e.url,t=e.data,n=e.method,r=e.success,i=e.fail,o={"Content-Type":"application/json; charset=utf-8"};if(jp(this.customHeader).length)for(var a in this.customHeader)o[a]=this.customHeader[a];window.fetch?fetch(A,{method:n||"POST",headers:o,body:$b(t)}).then((function(e){return e.json()})).then((function(e){r&&r(e)})).catch((function(e){i&&i(t,e)})):(this.requestType="xhr",console.log("your brwoser not support fetch, use xhr"),this.useRequest({url:A,data:t,method:n,success:r,fail:i}))},e.prototype.useBeacon=function(e){var A=e.url,t=e.data,n=e.success,r=e.fail;window.navigator.sendBeacon(A,$b(t))?n&&n():r&&r(t,this.errorCode.BEACON_FALSE)},e.prototype.useRequest=function(e){var A=this,t=e.url,n=e.data,r=e.method,i=e.success,o=e.fail,a=e.timeout,s=e.useBeacon,g=e.withCredentials,c=e.app_key,l=e.forceXhr,u=e.zip;if(s&&this.supportBeacon)this.useBeacon({url:t,data:n,method:r,success:i,fail:o});else if("fetch"!==this.requestType||l)try{var I=new XMLHttpRequest,h=r||"POST";if(I.open(h,""+t,!0),I.setRequestHeader("Content-Type","application/json; charset=utf-8"),c&&I.setRequestHeader("X-MCS-AppKey",""+c),jp(this.customHeader).length)for(var C in this.customHeader)I.setRequestHeader(C,this.customHeader[C]);g&&(I.withCredentials=!0),a&&(I.timeout=a,I.ontimeout=function(){o&&o(n,A.errorCode.TIMEOUT)}),I.onload=function(){if(i){var e=null;if(I.responseText){try{e=JSON.parse(I.responseText)}catch(A){e={}}i(e,n)}}},I.onerror=function(){I.abort(),o&&o(n,A.errorCode.XHR_ON)};try{var d=$b(n);if(this.config.need_zip&&u){var E=(new TextEncoder).encode(d),f=p_e.gzip(E);I.setRequestHeader("Content-Encoding","gzip"),I.send(f)}else I.send(d)}catch(B){this.collector.emit("sdk-inner-error",{type:"sdk_error_send",eventData:n,errorCode:1e3,msg:B.message||B.stack||"sdk_error_send"})}}catch(B){this.collector.emit("sdk-inner-error",{type:"sdk_error_request",eventData:n,errorCode:1001,msg:B.message||B.stack||"sdk_error_request"})}else this.useFetch({url:t,data:n,method:r,success:i,fail:o})},e}(),y_e=function(){function e(e,A){if(this.devToolReady=!1,this.devToolOrigin="*",this.sendAlready=!1,!A.disable_debug&&"Microsoft Internet Explorer"!==e.configManager.get("browser")){this.collect=e,this.config=A,this.app_id=A.app_id;var t=e.adapters.storage;this.cacheStorgae=new t(!1),this.loadUrl=A.devtool_url||"https://lf-static.applogcdn.com/obj/applog-sdk-static/log-sdk/collect/devtool/debug-web.v2.0.0.js",this.filterEvent=new BCe(["__bav_page","__bav_beat","__bav_page_statistics","__bav_click","__bav_page_exposure","bav2b_page","bav2b_beat","bav2b_page_statistics","bav2b_click","bav2b_page_exposure","_be_active","predefine_pageview","__profile_set","__profile_set_once","__profile_increment","__profile_unset","__profile_append","predefine_page_alive","predefine_page_close","abtest_exposure"]),this.load()}}return e.prototype.loadScript=function(e){try{var A=document.createElement("script");A.src=e,A.onerror=function(){console.log("load DevTool render fail")},A.onload=function(){console.log("load DevTool render success")},document.getElementsByTagName("body")[0].appendChild(A)}catch(t){console.log("devTool load fail, "+t.message)}},e.prototype.parseUrl=function(){var e={};try{var A=window.location.href.split("?")[1].split("&");A.length&&A.forEach((function(A){var t=A.split("=");e[decodeURIComponent(t[0])]=decodeURIComponent(t[1])}))}catch(t){}return e},e.prototype.load=function(){try{var e=this.parseUrl();if(e.open_devtool_web&&e.app_id){if(Uv(e.app_id)!==this.app_id)return}else if(!this.getStorage())return;this.loadBaseInfo(),this.loadHook(),this.setStorage(),this.addLintener(),this.loadDebuggerModule(),this.loadDevTool()}catch(A){console.log("debug fail, "+A.message)}},e.prototype.getStorage=function(){var e=this.cacheStorgae.getItem("__applog_open_devtool_web");return e&&Uv(e)===this.app_id},e.prototype.setStorage=function(){this.cacheStorgae.setItem("__applog_open_devtool_web",this.app_id)},e.prototype.loadDevTool=function(){this.loadScript(this.loadUrl)},e.prototype.loadBaseInfo=function(){if(this.log=[],this.event=[],this.info=[{title:"鍩烘湰淇℃伅",key:"base",type:1,content:[{name:"app_id",desc:"APP_ID",value:this.config.app_id},{name:"channel",desc:"CHANNEL",value:this.config.channel},{name:"domain",desc:"涓婃姤鍩熷悕",value:this.collect.configManager.getDomain()},{name:"sdk_version",desc:"SDK鐗堟湰",value:hSe},{name:"sdk_type",desc:"SDK寮曞叆鏂瑰紡",value:"npm"}]},{title:"鐢ㄦ埛淇℃伅",key:"user",type:2,content:[{name:"uuid",desc:"UUID",value:this.collect.configManager.get("user").user_unique_id||""},{name:"web_id",desc:"WEB_ID",value:this.collect.configManager.get("user").web_id||""}]},{title:"鍏叡鍙傛暟淇℃伅",type:2,key:"common",content:[{name:"browser",desc:"娴忚鍣�",value:this.collect.configManager.get("browser")},{name:"browser_version",desc:"娴忚鍣ㄧ増鏈�",value:this.collect.configManager.get("browser_version")},{name:"platform",desc:"骞冲彴",value:this.collect.configManager.get("platform")},{name:"device_model",desc:"璁惧鍨嬪彿",value:this.collect.configManager.get("device_model")},{name:"os_name",desc:"鎿嶄綔绯荤粺",value:this.collect.configManager.get("os_name")},{name:"os_version",desc:"鎿嶄綔绯荤粺鐗堟湰",value:this.collect.configManager.get("os_version")},{name:"resolution",desc:"灞忓箷鍒嗚鲸鐜�",value:this.collect.configManager.get("resolution")},{name:"referrer",desc:"鏉ユ簮",value:this.collect.configManager.get("referrer")},{name:"custom",desc:"鑷畾涔変俊鎭�",value:$b(this.collect.configManager.get("custom"))}]},{title:"閰嶇疆淇℃伅",key:"config",type:3,content:[{name:"autotrack",desc:"鍏ㄥ煁鐐�",value:!!this.config.autotrack},{name:"stay",desc:"鍋滅暀鏃堕暱",value:!!this.config.enable_stay_duration}]},{title:"A/B閰嶇疆淇℃伅",key:"ab",type:4,content:[{name:"ab",desc:"A/B瀹為獙",value:!!this.config.enable_ab_test}]}],this.config.enable_ab_test){var e=this.getInfo("ab"),A=[{name:"ab",desc:"A/B瀹為獙",value:!!this.config.enable_ab_test},{name:"vid",desc:"宸叉洕鍏塚ID",value:this.collect.configManager.getAbVersion()},{name:"ab_domain",desc:"A/B鍩熷悕",value:this.config.ab_channel_domain||Wke(uSe[this.config.channel])},{name:"all_values",desc:"鍏ㄩ儴閰嶇疆",value:this.collect.configManager.getAbCache()}];e.content=A,this.setInfo("ab",e)}if(this.config.enable_native||this.config.Native){var t={title:"瀹㈡埛绔俊鎭�",type:3,content:[{name:"native",desc:"鏄惁鎵撻€�",value:!!this.collect.bridgeReport}]};this.setInfo("native",t)}if(PT(hSe).call(hSe,"tob")){var n,r=this.getInfo("user");r.content.push({name:"sid",desc:ZF(n="DISS".split("")).call(n).join(""),value:"鐐瑰嚮鑾峰彇"}),this.setInfo("user",r)}},e.prototype.getInfo=function(e){var A=null;return this.info.forEach((function(t){t.key===e&&(A=t)})),A},e.prototype.setInfo=function(e,A){var t=!1;this.info.forEach((function(n){n.key===e&&(t=!0,n=A)})),t||this.info.push(A)},e.prototype.getSecondInfo=function(e,A){var t=this.getInfo(e),n=null;return t.content.forEach((function(e){e.name===A&&(n=e)})),n},e.prototype.setSecondInfo=function(e,A,t){var n=this.getInfo(e),r=!1;if(n.content.forEach((function(e){e.name===A&&(e.value=t,r=!0)})),!r){var i={name:A,value:t,desc:A.toLocaleUpperCase()};n.content.push(i)}this.setInfo(e,n)},e.prototype.loadHook=function(){var e=this;this.collect.on(zke.DEBUGGER_MESSAGE,(function(A){switch(A.type){case zke.DEBUGGER_MESSAGE_SDK:var t={time:A.time,type:A.logType||"sdk",infoType:A.infoType||"sdk",level:A.level,name:A.info,show:!0,levelShow:!0,needDesc:!!A.data};if(A.data&&(t.desc={content:$b(A.data)}),e.updateLog(t),A.secType&&"AB"===A.secType)e.setSecondInfo("ab","vid",e.collect.configManager.getAbVersion()),e.setSecondInfo("ab","all_values",e.collect.configManager.getAbCache());else if("USER"===A.secType)e.setSecondInfo("user","user_unique_id"===A.common?"uuid":A.common,e.collect.configManager.get(A.common));else if("HEADER"===A.secType){var n=e.collect.configManager.get(A.common);e.setSecondInfo("common",A.common,"custom"===A.common?$b(n):n)}return void e.updateInfo();case zke.DEBUGGER_MESSAGE_EVENT:if(A.data&&A.data.length){var r=A.data[0],i=r.events;if(!i.length)return;i.forEach((function(t){t.checkShow=!0,t.searchShow=!0,t.focusShow=!0,t.status=A.status,t.type=e.filterEvent.has(t.event)?"sdk":"cus",t.verifyType=A.verifyType?"verify":"no",t.info="","fail"===A.status&&(t.info={message:"code: "+A.code+"锛� msg: "+(A.msg||A.failType)})})),e.updateEvent(r)}return}}))},e.prototype.addLintener=function(){var e=this;window.addEventListener("message",(function(A){if(A&&A.data&&"devtool:web:ready"===A.data.type){if(e.devToolOrigin=A.origin,e.devToolReady=!0,e.sendAlready)return;e.sendData("devtool:web:init",{info:e.info,log:e.log,event:e.event,sdk_type:PT(hSe).call(hSe,"tob")?"tob":"inner",appId:e.app_id}),e.sendAlready=!0}A&&A.data&&"devtool:web:ssid"===A.data.type&&e.collect.getToken((function(A){e.setSecondInfo("user","sid",A.tobid),e.updateInfo()}))}))},e.prototype.sendData=function(e,A){try{var t={type:e,payload:A};window&&window.postMessage(t,this.devToolOrigin)}catch(n){}},e.prototype.updateInfo=function(){this.devToolReady&&this.sendData("devtool:web:info",this.info)},e.prototype.updateLog=function(e){this.devToolReady?this.sendData("devtool:web:log",e):this.log.push(e)},e.prototype.updateEvent=function(e){this.devToolReady?this.sendData("devtool:web:event",e):this.event.push(e)},e.prototype.loadDebuggerModule=function(){var e="#debugger-applog-web {\n position: fixed;\n width: 45px;\n height: 45px;\n background-image: url("+Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z1az1bz1lz49z22z1mz21z4az19z27z22z1cz21z1az1kz4az1az1mz1kz4bz1mz19z1hz4bz21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz1bz1cz24z22z1mz1mz1jz4bz18z1nz1nz1jz1mz1ez4az1nz1lz1e")+");\n bottom: 5%;\n right: 10%;\n cursor: pointer;\n z-index:100;\n background-size: 45px;\n }",A=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.appendChild(document.createTextNode(e)),A.appendChild(t);var n=document.createElement("div");n.innerHTML='
';var r=document.createElement("div");r.innerHTML='
',document.getElementsByTagName("body")[0].appendChild(n),document.getElementsByTagName("body")[0].appendChild(r);var i=document.getElementById("debugger-applog-web");i&&i.addEventListener("click",(function(){window&&window.postMessage({type:"devtool:web:open-draw"},location.origin)}))},e}(),m_e={autotrack:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z23z22z1mz22z20z18z1az1iz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/autotrack.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/autotrack.js"},object:"LogAutoTrack"},ab:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz18z19z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/ab.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/ab.js"},object:"LogAb"},stay:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz21z22z18z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/stay.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/stay.js"},object:"LogStay"},route:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1mz23z22z1cz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/route.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/route.js"},object:"LogRoute"},tracer:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz22z20z18z1az1cz20z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/tracer.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/tracer.js"},object:"LogTracer"},retry:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz20z1cz22z20z27z4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/retry.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/retry.js"},object:"LogRetry"},visual:{src:{cn:Wke("1fz22z22z1nz21z4mz4bz4bz1jz1dz49z21z22z18z22z1gz1az4az18z1nz1nz1jz1mz1ez1az1bz1lz4az1az1mz1kz4bz1mz19z1hz4bz18z1nz1nz1jz1mz1ez49z21z1bz1iz49z21z22z18z22z1gz1az4bz1jz1mz1ez49z21z1bz1iz4bz1az1mz1jz1jz1cz1az22z4bz4hz4bz1nz1jz23z1ez1gz1lz4bz24z1gz21z23z18z1jz4az1hz21"),sg:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-sg/log-sdk/collect/5/plugin/visual.js",va:"https://lf-global-static.iapplogcdn.com/obj/applog-sdk-static-us/log-sdk/collect/5/plugin/visual.js"},object:"LogVisual"}},D_e=["ab","autotrack","Stay","store","et","profile","cep","heartbeat","monitor","route","tracer"],w_e=function(){function e(e){this.disableAutoPageView=!1,this.bridgeReport=!1,this.staging=!1,this.pluginInstances=[],this.sended=!1,this.started=!1,this.destroy=!1,this.sdkReady=!1,this.adapters={},this.loadType="base",this.sdkStop=!1,this.name=e,this.hook=new jke,this.remotePlugin=new Up,this.Types=ESe,this.adapters.storage=cSe,this.loadType="full"}return e.usePlugin=function(A,t,n){if(t){for(var r=!1,i=0,o=e.plugins.length;i0&&this.changeListener.forEach((function(e){"function"==typeof e&&e(A)}))},e.prototype.configVersions=function(e){this.collect.configManager.setAbVersion(e)},e.prototype.getVar=function(e,A,t){if(!e)throw new Error("variable must not be empty");if(void 0===A)throw new Error("variable no default value");if("function"!=typeof t)throw new Error("callback must be a function");var n={name:e,defaultValue:A,callback:t,type:B_e.Var};this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 璋冪敤GetVar",level:"info",time:Date.now(),data:e,infoType:"cus"}),"complete"===this.fetchStatus&&"complete"===this.refreshFetchStatus?this.getRealVar(n,e):(this.callbackMap.get(e),this.callbackMap.set(e,n))},e.prototype.getRealVar=function(e,A){var t=e.name,n=e.defaultValue,r=e.callback,i=this.data;if(i){var o=i[t];if(o&&Xke(o)){var a,s,g=i[t].vid;return"$ab_url"===A?PT(a=this.mulilinkVersions).call(a,g)||this.mulilinkVersions.push(g):PT(s=this.versions).call(s,g)||this.versions.push(g),this.updateVersions(),this.fechEvent(g,A||t,n,r,o.val),void this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK鎵цGetVar锛屽苟鏇濆厜浜嗗疄楠�"+t,level:"info",time:Date.now(),data:i[t],infoType:"sdk"})}this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK鎵цGerVar榛樿鍥炶皟",level:"info",time:Date.now(),data:this.data,infoType:"sdk"}),r(n)}else r(n)},e.prototype.getAllVars=function(e){if("function"!=typeof e)throw new Error("callback must be a function");var A={callback:e,type:B_e.All};this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 璋冪敤GetAllVars",level:"info",time:Date.now(),infoType:"cus"}),"complete"===this.fetchStatus&&"complete"===this.refreshFetchStatus?this.getRealAllVars(A):this.callbackMap.set("allVars",A)},e.prototype.getRealAllVars=function(e){(0,e.callback)(this.data?JSON.parse($b(this.data)):{}),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"SDK 鎵цGetAllVars",level:"info",time:Date.now(),data:this.data,infoType:"sdk"})},e.prototype.fechEvent=function(e,A,t,n,r){try{if(this.config.disable_track_event)return;if(!e)return;var i=this.collect.configManager.get(),o=i.header,a=i.user,s=this.getABCache(),g=a[this.ab_user_mode]||a.user_unique_id;if(s&&s.uuid&&s.uuid!==g)return;var c={event:"abtest_exposure",ab_sdk_version:""+e,params:$b({app_id:this.config.appId,ab_url:"$ab_url"===A?t:window.location.href}),local_time_ms:Date.now()};o.custom=$b(o.custom);var l={events:[c],user:a,header:o};this.reportExposure(l,A),n&&n(r)}catch(u){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:u.message,infoType:"sdk"})}},e.prototype.reportExposure=function(e,A){var t=this;this.exposureCache.push(e),this.reportTimeout&&clearTimeout(this.reportTimeout),this.exposureCache.length>=this.exposureLimit?this.report(A):this.reportTimeout=setTimeout((function(){t.report(A),clearTimeout(t.reportTimeout)}),this.ab_batch_time)},e.prototype.report=function(e){var A=this;this.collect.requestManager.useRequest({url:this.reportUrl,data:this.exposureCache,timeout:2e4,useBeacon:"$ab_url"===e,zip:!0}),this.exposureCache.forEach((function(e){A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_EVENT,info:"鏇濆厜鍩嬬偣涓婃姤鎴愬姛",time:Date.now(),data:[e],code:200,status:"success",infoType:"sdk"})})),this.exposureCache=[]},e.prototype.setExternalAbVersion=function(e){this.extVersions=[e],this.updateVersions()},e.prototype.getABconfig=function(e,A){var t=jp(e);t&&t.length&&this.collect.configManager.set(e),this.fetchAB(A)},e.prototype.get=function(e){if(this.ab_cross){var A=this.cacheStorgae.getCookie(e,this.ab_cookie_domain);return A?JSON.parse(A):{}}return this.cacheStorgae.getItem(e)},e.prototype.set=function(e,A){this.ab_cross?this.cacheStorgae.setCookie(e,A,2592e6,this.ab_cookie_domain):this.cacheStorgae.setItem(e,A),this.collect.configManager.setAbCache(A)},e.prototype.getABCache=function(e){var A={ab_version:[],ab_ext_version:[],ab_version_multilink:[],data:null,timestamp:+new Date,uuid:""};return A=this.get(this.abKey)||A,e?A[e]:A},e.prototype.updateABCache=function(){var e=this.getABCache();e.ab_version_multilink=this.mulilinkVersions,e.ab_ext_version=this.extVersions,e.ab_version=this.versions,e.timestamp=Date.now(),this.set(this.abKey,e)},e.prototype.setAbCache=function(e){var A=this.getABCache();A.data=this.data,A.uuid=e,A.timestamp=Date.now(),this.set(this.abKey,A)},e.prototype.clearCache=function(){this.refreshFetchStatus="ing",this.data={},this.extVersions=[],this.mulilinkVersions=[],this.versions=[],this.collect.configManager.clearAbCache()},e.prototype.openOverlayer=function(e){var A=this;if(function(){if(!document.getElementById(R_e)){var e="body { opacity: 0 !important; }",A=document.head||document.getElementsByTagName("head")[0],t=document.createElement("style");t.id=R_e,t.type="text/css",t.styleSheet?t.styleSheet.cssText=e:t.appendChild(document.createTextNode(e)),A.appendChild(t)}}(),e)var t=setTimeout((function(){A.closeOverlayer(),clearTimeout(t)}),e)},e.prototype.closeOverlayer=function(){var e;(e=document.getElementById(R_e))&&e.parentElement.removeChild(e)},e.prototype.fetchComplete=function(e,A){var t=this;try{if(e&&"[object Object]"==Object.prototype.toString.call(e)){var n,r=this.collect.configManager.get().user;if(A&&A!==r.user_unique_id)return;this.data=e,this.setAbCache(A);var i=[];jp(e).forEach((function(A){var t=e[A].vid;t&&i.push(t)})),this.versions=jv(n=this.versions).call(n,(function(e){return PT(i).call(i,e)}));var o=e.$ab_url,a=e.$ab_modification;if(a&&a.val&&this.enable_ab_visual){if(this.collect.destroy)return;this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鎵ц鍙鍖栧疄楠�",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_modification:a}})}else if(o&&this.enable_multilink){var s;this.mulilinkVersions=jv(s=this.mulilinkVersions).call(s,(function(e){return PT(i).call(i,e)})),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鎵ц澶氶摼鎺ュ疄楠�",level:"info",logType:"fetch",time:Date.now(),infoType:"sdk",data:{$ab_url:o}});var g=o.val,c=o.vid;g&&c&&this.getVar("$ab_url",g,(function(){t.editMode||(g!==window.location.href?setTimeout((function(){if(!t.collect.destroy){var e=""+g;e=-1===zp(e).call(e,"http")?"https://"+e:e,ASe(e).host!==location.host?e=e+"&vid="+c:window.history.replaceState("","",e),window.location.href=e}}),100):t.closeOverlayer())}))}this.updateVersions()}else this.closeOverlayer();this.callbackMap.forEach((function(e){return t[e.type===B_e.Var?"getRealVar":"getRealAllVars"](e,"")}))}catch(l){}},e.prototype.fetchAB=function(e){var A=this,t=this.collect.configManager.get(),n={header:xke(xke(xke({aid:this.config.app_id},t.user||{}),t.header||{}),{ab_sdk_version:this.collect.configManager.getAbVersion(),ab_url:window.location.href})};this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鍙戣捣AB瀹為獙璇锋眰",level:"info",logType:"fetch",time:Date.now(),data:n,infoType:"sdk"});var r=t.user[this.ab_user_mode]||t.user.user_unique_id;this.collect.requestManager.useRequest({url:this.fetchUrl,data:n,success:function(t){A.fetchStatus="complete",A.refreshFetchStatus="complete";var n=t.data;"success"===t.message?(A.fetchComplete(n,r),e&&e(n)):(A.fetchComplete(null,r),e&&e(null)),A.collect.emit(A.types.AbComplete,n),A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB瀹為獙璇锋眰鎴愬姛",level:"info",logType:"fetch",time:Date.now(),data:n,infoType:"sdk"})},fail:function(){A.fetchStatus="complete",A.refreshFetchStatus="complete",A.fetchComplete(null,r),A.collect.emit(A.types.AbTimeout),e&&e(null),A.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,secType:"AB",info:"AB瀹為獙璇锋眰缃戠粶寮傚父",level:"error",logType:"fetch",time:Date.now(),infoType:"sdk"})},timeout:this.timeout})},e}(),S_e=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;A.event_verify_url&&("string"==typeof A.event_verify_url?(this.url=A.event_verify_url+"/v1/list_test",e.on(e.Types.SubmitBefore,(function(A){e.requestManager.useBeacon({url:t.url,data:A}),e.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_EVENT,info:"SDK Report ByteIo Verify Request",time:Date.now(),data:A,code:200,status:"success",verifyType:!0})}))):console.log("please use correct et_test url"))},e}();function M_e(e,A,t){if(void 0===A&&(A="list"),!e)return!1;if(A&&"list"===A){var n;if(PT(n=["LI","TR","DL"]).call(n,e.nodeName))return!0;if(e.dataset&&e.dataset.hasOwnProperty("teaIdx"))return!0;if(e.hasAttribute&&e.hasAttribute("data-tea-idx"))return!0}else{var r;if(PT(r=["A","BUTTON"]).call(r,e.nodeName))return!0;if(e.dataset&&e.dataset.hasOwnProperty("teaContainer"))return!0;if(e.hasAttribute&&e.hasAttribute("data-tea-container"))return!0;if(t&&e.hasAttribute&&e.hasAttribute(t))return!0}return!1}var G_e=function(e,A){return!!F_e(e,A)};function __e(e,A){for(var t=e;t&&!M_e(t,"container",A.container_attr||"");){if("HTML"===t.nodeName||"BODY"===t.nodeName)return e;t=t.parentElement}return t||e}function b_e(e){for(var A=e;A&&A.parentNode;){var t;if(A.hasAttribute("data-tea-ignore"))return!0;if(A.className&&PT(t=A.className).call(t,"applog-web-devtools-con"))return!0;if("HTML"===A.nodeName||"body"===A.nodeName)return!1;A=A.parentNode}return!1}var T_e=function(e,A){return e.hasAttribute?e.hasAttribute(A):e.attributes?!(!e.attributes[A]||!e.attributes[A].specified):void 0},F_e=function(e,A){if("string"==typeof A)return T_e(e,A);if(qke(A)){for(var t=!1,n=0;nthis.aliveDTime||Date.now()-this.pageStartTime>this.maxDuration)&&(!A||"hidden"!==document.visibilityState)&&(!this.hard||this.focusState)){var n=xke({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),duration:t,is_support_visibility_change:eSe(),startTime:this.sessionStartTime,hidden:document.visibilityState,leave:e,mode:this.hard?"hard":"normal",focusState:this.focusState,aliveType:this.options.container?"dom":"page"},this.options.params);if(this.options.container){var r=L_e(this.options.container).element_path;n=sy(n,{element_path:r,aliveType:this.options.container?"dom":"page"})}this.collect.beconEvent(this.options.aliveName,n),this.sessionStartTime=Date.now()}},e.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},e.prototype.setUpTimer=function(){var e=this;return this.timerHandler&&clearInterval(this.timerHandler),setInterval((function(){Date.now()-e.sessionStartTime>e.aliveDTime&&e.sendEvent(!1,!0)}),1e3)},e.prototype.visibilitychange=function(){"hidden"===this.getDisplayStatus()?this.timerHandler&&(clearInterval(this.timerHandler),this.sendEvent(!1)):"visible"===this.getDisplayStatus()&&(this.sessionStartTime=Date.now(),this.timerHandler=this.setUpTimer())},e.prototype.getDisplayStatus=function(){if(!this.options.container)return document.visibilityState;try{var e=window.getComputedStyle(this.options.container);return"none"!==e.display&&"hidden"!==e.visibility&&"0"!==e.opacity?"visible":"hidden"}catch(A){return"visible"}},e.prototype.beforeunload=function(){document.hidden||this.sendEvent(!0)},e.prototype.muition=function(){var e=this;new MutationObserver((function(A){A.forEach((function(A){e.visibilitychange()}))})).observe(this.options.container,{attributes:!0,attributeFilter:["style"]})},e.prototype.enablePageAlive=function(){var e=this;this.timerHandler=this.setUpTimer();var A=this.visibilitychange.bind(this),t=this.beforeunload.bind(this);return this.options.container?this.muition():document.addEventListener("visibilitychange",A),window.addEventListener("pagehide",t),function(){e.beforeunload(),document.removeEventListener("visibilitychange",A),window.removeEventListener("pagehide",t)}},e.prototype.hardMode=function(){var e=this,A=function(){e.timerHandler&&(clearInterval(e.timerHandler),e.sendEvent(!1)),e.focusState=!1},t=function(){e.focusState=!0,e.sessionStartTime=Date.now(),e.timerHandler=e.setUpTimer()};return window.addEventListener("blur",A),window.addEventListener("focus",t),function(){window.removeEventListener("blur",A),window.removeEventListener("focus",t)}},e}(),K_e=function(){function e(e,A){var t=this;this.maxDuration=432e5,this.aliveDTime=6e4,this.options={closeName:"predefine_page_close",params:{}},this.focusState=!0,this.visibilitychange=function(){"hidden"===document.visibilityState?t.activeEndTime=Date.now():"visible"===document.visibilityState&&(t.activeEndTime&&(t.totalTime+=t.activeEndTime-t.activeStartTime,t.activeTimes+=1),t.activeEndTime=void 0,t.activeStartTime=Date.now())},this.beforeunload=function(){if(t.totalTime+=(t.activeEndTime||Date.now())-t.activeStartTime,t.config.autotrack)try{window.sessionStorage.setItem("_tea_cache_duration",$b({duration:t.totalTime,page_title:document.title||location.pathname}))}catch(e){}t.sendEventPageClose()},this.collect=e,this.config=A,this.maxDuration=A.maxDuration||A.max_duration||864e5,this.pageStartTime=Date.now(),Xke(A.enable_stay_duration)&&(this.options=sy(this.options,A.enable_stay_duration)),this.hard=this.options.mode&&"hard"===this.options.mode,this.focusState=document.hasFocus(),this.resetData()}return e.prototype.setParams=function(e,A,t){this.set_path=e,this.set_url=t,this.set_title=A},e.prototype.resetParams=function(e,A,t){this.url_path=e,this.url=t,this.title=A},e.prototype.enable=function(e,A,t){this.url_path=e,this.url=t,this.title=A,this.disableCallback=this.enablePageClose(),this.hard&&(this.removeMode=this.hardMode())},e.prototype.disable=function(){this.disableCallback(),this.hard&&this.removeMode&&this.removeMode(),this.resetData()},e.prototype.resetData=function(){this.activeStartTime=void 0===this.activeStartTime?this.pageStartTime:Date.now(),this.activeEndTime=void 0,this.activeTimes=1,this.totalTime=0,this.resetParams(location.pathname,document.title,location.href)},e.prototype.sendEventPageClose=function(){var e=Date.now()-this.pageStartTime;this.totalTime<0||e<0||this.totalTime>=this.maxDuration||this.hard&&!this.focusState||(this.collect.beconEvent(this.options.closeName,xke({url_path:this.getParams("url_path"),title:this.getParams("title"),url:this.getParams("url"),active_times:this.activeTimes,duration:this.totalTime,total_duration:e,is_support_visibility_change:eSe(),mode:this.hard?"hard":"normal",focusState:this.focusState},this.options.params)),this.pageStartTime=Date.now(),this.resetData())},e.prototype.getParams=function(e){switch(e){case"url_path":return this.set_path||this.url_path||location.pathname;case"title":return this.set_title||this.title||document.title||location.pathname;case"url":return this.set_url||this.url||location.href}},e.prototype.enablePageClose=function(){var e=this,A=this.visibilitychange.bind(this),t=this.beforeunload.bind(this);return document.addEventListener("visibilitychange",A),window.addEventListener("pagehide",t),function(){e.beforeunload(),document.removeEventListener("visibilitychange",A),window.removeEventListener("pagehide",t)}},e.prototype.hardMode=function(){var e=this,A=function(){e.focusState=!1},t=function(){e.focusState=!0};return window.addEventListener("blur",A),window.addEventListener("focus",t),function(){window.removeEventListener("blur",A),window.removeEventListener("focus",t)}},e}(),x_e=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;if(this.collect=e,this.config=A,this.config.enable_stay_duration){this.title=document.title||location.pathname,this.url=location.href,this.url_path=location.pathname,this.pageAlive=new U_e(e,A),this.pageClose=new K_e(e,A);var n=this.collect.Types;this.collect.on(n.DestoryInstance,(function(){t.disable()})),this.collect.on(n.ResetStay,(function(e){var A=e.url_path,n=e.title,r=e.url;t.resetStayDuration(A,n,r)})),this.collect.on(n.RouteChange,(function(e){e.init||A.disable_route_report||t.resetStayDuration()})),this.collect.on(n.SetStay,(function(e){var A=e.url_path,n=e.title,r=e.url;t.setStayParmas(A,n,r)})),this.enable(this.url_path,this.title,this.url),this.ready(n.Stay),this.collect.emit(n.StayReady)}},e.prototype.ready=function(e){var A=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var t=this.collect.hook._hooksCache[e];if(!jp(t).length)return;var n=function(e){t[e].length&&t[e].forEach((function(t){A.collect.hook.emit(e,t)}))};for(var r in t)n(r)}},e.prototype.enable=function(e,A,t){this.pageAlive.enable(e,A,t),this.pageClose.enable(e,A,t)},e.prototype.disable=function(){this.pageAlive.disable(),this.pageClose.disable()},e.prototype.setStayParmas=function(e,A,t){void 0===e&&(e=""),void 0===A&&(A=""),void 0===t&&(t=""),this.pageAlive.setParams(e,A,t),this.pageClose.setParams(e,A,t),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鎵ц resetStayParams",level:"info",time:Date.now(),data:{url_path:e,title:A,url:t}})},e.prototype.reset=function(e,A,t){this.disable(),this.enable(e,A,t)},e.prototype.resetStayDuration=function(e,A,t){this.reset(e,A,t),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"SDK 鎵ц resetStayDuration",level:"info",time:Date.now(),data:{url_path:e,title:A,url:t}})},e}(),Y_e=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;this.collect=e,this.config=A,this.duration=6e4,this.reportUrl=e.configManager.getDomain()+"/profile/list";var n=e.Types;this.eventCheck=new dSe(e,A),this.cache={},this.collect.on(n.ProfileSet,(function(e){t.setProfile(e)})),this.collect.on(n.ProfileSetOnce,(function(e){t.setOnceProfile(e)})),this.collect.on(n.ProfileUnset,(function(e){t.unsetProfile(e)})),this.collect.on(n.ProfileIncrement,(function(e){t.incrementProfile(e)})),this.collect.on(n.ProfileAppend,(function(e){t.appendProfile(e)})),this.collect.on(n.ProfileClear,(function(){t.cache={}})),this.ready(n.Profile)},e.prototype.ready=function(e){var A=this;if(this.collect.set(e),this.collect.hook._hooksCache.hasOwnProperty(e)){var t=this.collect.hook._hooksCache[e];if(!jp(t).length)return;var n=function(e){t[e].length&&t[e].forEach((function(t){A.collect.hook.emit(e,t)}))};for(var r in t)n(r)}},e.prototype.report=function(e,A){void 0===A&&(A={});try{if(this.config.disable_track_event)return;var t=[];t.push(this.collect.processEvent(e,A));var n=this.collect.eventManager.merge(t);this.collect.requestManager.useRequest({url:this.reportUrl,data:n}),this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_EVENT,info:"鍩嬬偣涓婃姤鎴愬姛",time:Date.now(),data:n,code:200,status:"success"})}catch(r){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:r.message})}},e.prototype.setProfile=function(e){var A=this.formatParams(e);A&&jp(A).length&&(this.pushCache(A),this.report("__profile_set",xke(xke({},A),{profile:!0})))},e.prototype.setOnceProfile=function(e){var A=this.formatParams(e,!0);A&&jp(A).length&&(this.pushCache(A),this.report("__profile_set_once",xke(xke({},A),{profile:!0})))},e.prototype.incrementProfile=function(e){e?this.report("__profile_increment",xke(xke({},e),{profile:!0})):console.warn("please check the params, must be object!!!")},e.prototype.unsetProfile=function(e){if(e){var A={};A[e]="1",this.report("__profile_unset",xke(xke({},A),{profile:!0}))}else console.warn("please check the key, must be string!!!")},e.prototype.appendProfile=function(e){if(e){var A={};for(var t in e){var n;"string"==typeof e[t]||"Array"===Xp(n=Object.prototype.toString.call(e[t])).call(n,8,-1)?A[t]=e[t]:console.warn("please check the value of param: "+t+", must be string or array !!!")}jp(A).length&&this.report("__profile_append",xke(xke({},A),{profile:!0}))}else console.warn("please check the params, must be object!!!")},e.prototype.pushCache=function(e){var A=this;jp(e).forEach((function(t){A.cache[t]={val:A.clone(e[t]),timestamp:Date.now()}}))},e.prototype.formatParams=function(e,A){var t=this;void 0===A&&(A=!1);try{var n;if(!e||"[object Object]"!==Object.prototype.toString.call(e))return void console.warn("please check the params type, must be object !!!");var r={};for(var i in e){var o;"string"==typeof e[i]||"number"==typeof e[i]||"Array"===Xp(o=Object.prototype.toString.call(e[i])).call(o,8,-1)?r[i]=e[i]:console.warn("please check the value of params:"+i+", must be string,number,Array !!!")}var a=jp(r);if(!a.length)return;if(!this.eventCheck.checkEventParams(r))return;var s=Date.now();return wF(n=jv(a).call(a,(function(n){var r=t.cache[n];return A?!r:!(r&&t.compare(r.val,e[n])&&s-r.timestampthis.sessionInterval&&(this.clearInterval(),this.endCurrentSession(),this.setInterval())},e}(),H_e=function(){function e(){}return e.prototype.apply=function(e,A){var t=this;A.channel_domain||A.disable_track_event||A.disable_sdk_monitor||(this.collect=e,this.config=A,this.url=e.configManager.getUrl("event"),this.collect.on(e.Types.Ready,(function(){t.sdkOnload()})),this.collect.on(e.Types.SubmitError,(function(e){var A=e.type,n=e.eventData,r=e.errorCode,i=e.response;"f_data"===A&&t.sdkError(n,r,i)})),this.collect.on(e.Types.SDKInnerError,(function(e){var A=e.type,n=e.eventData,r=e.errorCode,i=e.msg;t.sdkInnerError(A,n,r,i)})))},e.prototype.sdkOnload=function(){var e=this;try{var A=this.collect.configManager.get(),t=A.header,n=A.user,r=t.app_id,i=t.app_name,o=t.sdk_version,a=n.web_id,s={events:[{event:"onload",params:$b({app_id:r,app_name:i||"",sdk_version:o,sdk_type:"npm",sdk_config:this.config,sdk_desc:"TOC",url:location.href}),local_time_ms:Date.now()}],user:{user_unique_id:a},header:{}};setTimeout((function(){e.collect.requestManager.useRequest({url:e.url,data:[s],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(g){}},e.prototype.sdkError=function(e,A,t){var n=this;try{var r=e[0],i=r.user,o=r.header,a=[];e.forEach((function(e){e.events.forEach((function(e){a.push(e)}))}));var s={events:Jp(a).call(a,(function(e){return{event:"on_error",params:$b({type:"sdk_event_error",error_code:A,app_id:o.app_id,app_name:o.app_name||"",error_event:e.event,sdk_version:o.sdk_version,local_time_ms:e.local_time_ms,tea_event_index:Date.now(),params:e.params,header:o,user:i,err_msg:t.m||""}),local_time_ms:Date.now()}})),user:{user_unique_id:i.user_unique_id},header:{}};setTimeout((function(){n.collect.requestManager.useRequest({url:n.url,data:[s],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(g){}},e.prototype.sdkInnerError=function(e,A,t,n){var r=this;try{var i=A[0],o=i.user,a=i.header,s=[];A.forEach((function(e){e.events.forEach((function(e){s.push(e)}))}));var g={events:Jp(s).call(s,(function(A){return{event:"on_error",params:$b({type:e,error_code:t,app_id:a.app_id,app_name:a.app_name||"",error_event:A.event,sdk_version:a.sdk_version,local_time_ms:A.local_time_ms,tea_event_index:Date.now(),params:A.params,header:a,user:o,ua:window.navigator.userAgent,err_msg:n}),local_time_ms:Date.now()}})),user:o,header:{}};setTimeout((function(){r.collect.requestManager.useRequest({url:r.url,data:[g],timeout:3e4,app_key:"566f58151b0ed37e",forceXhr:!0})}),16)}catch(c){}},e}();function J_e(e,A){var t;if(1!==e.nodeType)return!1;if(!A.svg&&function(e){if("svg"===e.tagName.toLowerCase())return!0;for(var A=e.parentElement,t=!1;A;)"svg"===A.tagName.toLowerCase()?(A=null,t=!0):A=A.parentElement;return t}(e))return!1;if(PT(t=["HTML","BODY"]).call(t,e.tagName.toUpperCase()))return!1;var n=e;return!("none"===n.style.display||!M_e(n,"container",A.container_attr||"")&&!(function(e,A){for(var t=e,n=!1;t&&!M_e(t,"container",A.container_attr||"");){if("HTML"===t.nodeName||"BODY"===t.nodeName)return n;t=t.parentElement}return!0}(n,A)||function(e){if(e.children.length){var A=e.children;return!Xp([]).call(A).some((function(e){return e.children.length>0}))}return!0}(n)||A.svg))}var O_e=function(){function e(e,A,t){var n=this;this.statistics=!1,this.pageView=!1,this.clickEvent=function(e){J_e(e.target,n.options)&&n.eventHandel({eventType:"dom",eventName:"click"},e)},this.changeEvent=function(e){n.eventHandel({eventType:"dom",eventName:"change"},e)},this.submitEvent=function(e){n.eventHandel({eventType:"dom",eventName:"submit"},e)},this.getPageViewEvent=function(e,A){A&&"pushState"===A&&n.eventHandel({eventType:"dom",eventName:"beat"},xke({beat_type:0},e)),n.eventHandel({eventType:"dom",eventName:"page_view"},e)},this.getPageLoadEvent=function(e){n.eventHandel({eventType:"dom",eventName:"page_statistics"},{lcp:e})},this.config=t.getConfig().eventConfig,this.collect=A,this.options=e,this.beatTime=e.beat,this.domContainer=e.container||document}return e.prototype.init=function(e){this.eventHandel=e;var A=this.config.mode;this.addListener(A)},e.prototype.addListener=function(e){var A=this;if("proxy-capturing"===e){if(this.config.click&&(qke(this.domContainer)?this.domContainer.forEach((function(e){e.addEventListener("click",A.clickEvent,!0)})):this.domContainer.addEventListener("click",this.clickEvent,!0)),this.config.pv){this.collect.on("route-change",(function(e){var t=e.config,n=e.name;A.getPageViewEvent(t,n),A.pageView=!0}));var t=setTimeout((function(){A.pageView||(A.getPageViewEvent(A.getDefaultConfig()),A.pageView=!0,clearTimeout(t))}),2e3)}if(this.config.beat){try{"complete"===document.readyState?this.beatEvent(this.beatTime):window.addEventListener("load",(function(){A.beatEvent(A.beatTime)}));var n=0,r=null;window.addEventListener("scroll",(function(){clearTimeout(r),r=setTimeout(i,500),n=document.documentElement.scrollTop||document.body.scrollTop}));var i=function(){(document.documentElement.scrollTop||document.body.scrollTop)==n&&A.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:1})}}catch(s){}try{var o=window.performance&&window.performance.getEntriesByType("paint");if(o&&o.length){new PerformanceObserver((function(e){var t=e.getEntries(),n=t[t.length-1],r=n.renderTime||n.loadTime;A.statistics||(A.getPageLoadEvent(r),A.statistics=!0)})).observe({entryTypes:["largest-contentful-paint"]});var a=setTimeout((function(){A.statistics||(A.getPageLoadEvent(o[0].startTime||0),A.statistics=!0,clearTimeout(a))}),2e3)}else this.getPageLoadEvent(0)}catch(s){this.getPageLoadEvent(0)}}}},e.prototype.removeListener=function(){var e=this;qke(this.domContainer)?this.domContainer.forEach((function(A){A.removeEventListener("click",e.clickEvent,!0)})):this.domContainer.removeEventListener("click",this.clickEvent,!0)},e.prototype.beatEvent=function(e){var A=this;try{var t;this.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:3}),this.beatTime&&(t=setInterval((function(){A.eventHandel({eventType:"dom",eventName:"beat"},{beat_type:2})}),e)),$ke((function(){A.eventHandel({eventType:"dom",eventName:"beat",eventSend:"becon"},{beat_type:0}),A.beatTime&&clearInterval(t)}))}catch(n){}},e.prototype.getDefaultConfig=function(){return{is_html:1,url:location.href,referrer:document.referrer,page_key:location.href,refer_page_key:document.referrer,page_title:document.title||location.pathname,page_manual_key:"",refer_page_manual_key:"",refer_page_title:"",page_path:location.pathname,page_host:location.host}},e}(),z_e={eventConfig:{mode:"proxy-capturing",submit:!1,click:!0,change:!1,pv:!0,beat:!0,hashTag:!1,impr:!1},scoutConfig:{mode:"xpath"}},j_e=function(){function e(e,A){this.config=e,this.config.eventConfig=sy(this.config.eventConfig,A)}return e.prototype.getConfig=function(){return this.config},e.prototype.setConfig=function(e){return this.config=e},e}();function X_e(e,A,t,n){var r,i,o={},a=function(e){if(e){var A=e.getBoundingClientRect(),t=A.width,n=A.height;return{left:A.left,top:A.top,element_width:t,element_height:n}}}(A=__e(A,t)),s=function(e,A){void 0===e&&(e={}),void 0===A&&(A={});var t=e.clientX,n=e.clientY,r=A.left,i=A.top,o=t-r>=0?t-r:0,a=n-i>=0?n-i:0;return{touch_x:Math.floor(o),touch_y:Math.floor(a)}}(e,a),g=a.element_width,c=a.element_height,l=s.touch_x,u=s.touch_y,I=L_e(A),h=I.element_path,C=I.positions,d=(r=__e(A,t),i=[],function e(A){var t,n,r,o,a=(o="",3===(t=A).nodeType?o=lD(n=t.textContent).call(n):t.dataset&&t.dataset.hasOwnProperty("teaTitle")||t.hasAttribute("ata-tea-title")?o=t.getAttribute("data-tea-title"):"INPUT"===t.nodeName&&PT(r=["button","submit"]).call(r,t.getAttribute("type"))?o=t.getAttribute("value"):"IMG"===t.nodeName&&t.getAttribute("alt")&&(o=t.getAttribute("alt")),Xp(o).call(o,0,200));if(a&&-1===zp(i).call(i,a)&&i.push(a),A.childNodes.length>0)for(var s=A.childNodes,g=0;g0?r:0)),A.page_start_ms=n.navigationStart}catch(i){console.log("page_statistics event error "+$b(i))}return A},e.prototype.handleBeadtEvent=function(e){e.event=this.eventName.beat,e.page_key=window.location.href,e.is_html=1,e.page_title=document.title,e.page_manual_key=this.initConfig.autotrack.page_manual_key||"";try{e.page_viewport_width=window.innerWidth,e.page_viewport_height=window.innerHeight,e.page_total_width=document.documentElement.scrollWidth,e.page_total_height=document.documentElement.scrollHeight,e.scroll_width=document.documentElement.scrollLeft+window.innerWidth,e.scroll_height=document.documentElement.scrollTop+window.innerHeight,e.since_page_start_ms=Date.now()-window.performance.timing.navigationStart,e.page_start_ms=window.performance.timing.navigationStart}catch(A){console.log("beat event error "+$b(A))}return e},e.prototype.handleExposureEvent=function(e,A){if(b_e(A.target))return null;var t=q_e(e.event||this.eventName.exposure,A,A.target||A,this.options,this.ignore);if(t.$exposure_type=e.exposureType,this.options.exposure.callback){var n=this.options.exposure.callback(t);return n||jp(n).length?n:(console.warn("exposure callback must return data!"),t)}return t},e.prototype.handleScrollEvent=function(e,A){var t=q_e(e.event||this.eventName.scroll,A,A.target||A,this.options,this.ignore);if(t=sy(t,e.params),!this.options.scroll.callback||(t=this.options.scroll.callback(t))||jp(t).length)return t;console.warn("scroll callback must return data!")},e}(),W_e=function(){function e(e){this.collect=e,this.eventNameList=["report_click_event","report_change_event","report_submit_event","report_exposure_event","report_page_view_event","report_page_statistics_event","report_beat_event"]}return e.prototype.send=function(e,A){var t=A.event;delete A.event,e&&"becon"===e.eventSend?this.collect.beconEvent(t,A):this.collect.event(t,A)},e.prototype.get=function(e,A){var t=sy({headers:{"content-type":"application/json"},method:"GET"},A);fetch(e,t)},e.prototype.post=function(e,A){var t=sy({headers:{"content-type":"application/json"},method:"POST"},A);fetch(e,t)},e}(),Z_e={},$_e=[];function ebe(e,A,t,n){var r=e&&e.source||window.opener||window.parent,i=e&&e.origin||n||"*",o={type:A,payload:t};r.postMessage($b(o),i)}function Abe(e){if($_e.some((function(e){return"*"===e}))||$_e.some((function(A){var t;return zp(t=e.origin).call(t,A)>-1}))){var A=e.data;if("string"==typeof e.data)try{A=JSON.parse(e.data)}catch(r){A=void 0}if(!A)return;var t=A.type,n=A.payload;Z_e[t]&&Z_e[t].forEach((function(A){"function"==typeof A&&A(e,n)}))}}var tbe=!1;function nbe(e,A){window.TEAVisualEditor=window.TEAVisualEditor||{},window.TEAVisualEditor.appId=A.app_id;var t,n=A.channel_domain,r="";if(function(e){e.length&&e.forEach((function(e){$_e.push(e)}))}(["*"]),n){var i,o="";try{var a=window.performance.getEntriesByType("resource");if(a&&a.length&&(a.forEach((function(e){var A;"script"===e.initiatorType&&e.name&&-1!==zp(A=e.name).call(A,"collect")&&(o=e.name)})),o&&(i=o.split("/"))&&i.length)){r="https:/";for(var s=2;s=A.timeLimit&&!n.exposured&&A.exposureEvent(e,r,t,n)}))}),{threshold:t})}catch(r){console.log("IntersectionObserver error锛宮sg: "+$b(r))}return e._observer_instance}return console.log("your browser cannot support IntersectionObserver锛� so cannot report exposure event, please update"),null},e.prototype.exposureAdd=function(e,A){var t="mutation"===A?e.target:e,n=t.observeId,r=SSe();if(n||this.observeMap.has(n)){var i=this.observeMap.get(n);if(i&&t!==i.instance)this.unobserve(t),this.observeMap.delete(n),t.observeId=r,t.visible=!1,this.observeMap.set(r,{instance:t.cloneNode(!0),isIntersecting:!1}),this.observe(t);else{if(!0===t.visible)return;this.handleBoundingExposure(t)}}else t.observeId=r,t.visible=!1,this.observeMap.set(r,{instance:t.cloneNode(!0),isIntersecting:!1}),this.observe(t)},e.prototype.exposureRemove=function(e){this.observeMap.has(e.observeId)&&(this.observeMap.delete(e.observeId),this.unobserve(e),e.observeId="",e.visible=!1)},e.prototype.exposureEvent=function(e,A,t,n){if(A>=this.ratio){if("0"===e.target.style.opacity||"hidden"===e.target.style.visibility)return;if(!0===n.exposured)return;n.startWait&&clearTimeout(n.startWait);var r=e.target.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:r,exposureType:this.getExposureType(e.target)},e),e.target.visible=!0,e.target.hasExposure=!0,n.startTime=Date.now(),n.exposured=!0}else n.startTime=Date.now(),n.exposured=!1;this.observeMap.set(t,n)},e.prototype.observe=function(e){this.instance&&this.instance.observe(e)},e.prototype.unobserve=function(e){this.instance&&this.instance.unobserve(e)},e.prototype.getExposureDomToExposure=function(){var e=this;Array.prototype.forEach.call(document.querySelectorAll("[data-exposure]"),(function(A){e.handleBoundingExposure(A)}))},e.prototype.visibilitychange=function(){var e=this,A=null;"visible"===document.visibilityState?this.timeLimit?A=setTimeout((function(){e.getExposureDomToExposure()}),this.timeLimit):this.getExposureDomToExposure():(clearTimeout(A),this.customType=void 0)},e.prototype.handleBoundingExposure=function(e){if(this.getBoundingRatio(e)>=this.ratio){e.visible=!0;var A=e.getAttribute&&e.getAttribute("data-exposure-event");this.eventHandle({eventType:"dom",eventName:"exposure",event:A,exposureType:this.customType||rbe.RESUME_FORM_BACK},e)}},e.prototype.getBoundingRatio=function(e){var A=e.getBoundingClientRect(),t=A.top,n=A.left,r=A.width,i=A.height,o=window.innerWidth||document.documentElement.clientWidth,a=window.innerHeight||document.documentElement.clientHeight;return t>=0&&n>=0&&t<=a&&n<=o?(r>o?o:r)*(a-t)/(r*i):0},e.prototype.getExposureType=function(e){return e.visible?!1!==e.backStatus&&(this.backStatus||this.customType||2===window.performance.navigation.type)?this.exposureType=rbe.RESUME_FORM_PAGE:this.exposureType=rbe.LIFECYCLE_SHOW_NEW:(e.hasExposure,!1!==e.backStatus&&(this.backStatus||this.customType||2===window.performance.navigation.type)?this.exposureType=rbe.RESUME_FORM_PAGE:this.exposureType=rbe.EXPOSURE_ONCE),this.exposureType},e.prototype.addListen=function(){var e=this;this.collect.on("set-exposure-type",(function(A){e.customType=A}));var A,t,n,r=this.visibilitychange.bind(this);if(A=document,t="visibilitychange",n=r,!1,A.addEventListener?A.addEventListener(t,n,false):A.attachEven?A.attachEven("on"+t,n):A["on"+t]=n,window.addEventListener("hashchange",(function(A){var t=e.hashMap.get(A.oldURL);t&&location.href===t.prev?(e.backStatus=!0,e.exposureType=rbe.RESUME_FORM_PAGE):(e.backStatus=!1,e.hashMap.set(location.href,{current:A.newURL,prev:A.oldURL}))})),this.collect.bridgeReport){var i=window.history.pushState;history.pushState=function(A){for(var t=[],n=1;n=t.distance&&t.distance&&t.eventHandle({eventType:"dom",eventName:"scroll",event:u,params:{$direction:c,$offsetY:a,$offsetX:o}},A)):3!==c&&4!==c||l===g&&(o=g-r,Math.abs(o)>=t.distance&&t.distance&&t.eventHandle({eventType:"dom",eventName:"scroll",event:u,params:{$direction:c,$offsetY:a,$offsetX:o}},A)),n=s,r=g}),100);var s=e.scrollTop,g=e.scrollLeft,c=obe.NOT_SCROLL;s>n?c=obe.SCROLL_DOWN:sr?c=obe.SCROLL_LEFT:g=this.limit[e]&&this.report(!1)}catch(i){console.log(i)}},e.prototype.addErrorCount=function(e,A,t,n){var r=this;try{if(e&&e.length){var i=e[0].events;i&&i.length&&("f_data"===A?(n&&n.hasOwnProperty("sc")?this.addCount("log",A,i.length-n.sc):this.addCount("log",A,i.length),this.errorCode[A]=t):i.forEach((function(e){var n="log";for(var i in Ibe){var o;if(-1!==zp(o=Ibe[i]).call(o,e.event)){n=i;break}}r.addCount(n,A,1),r.errorCode[A]=t})))}}catch(o){}},e.prototype.report=function(e){if(this.tracerCache){var A=[];this.tracerCache.forEach((function(e){console.log(e),e.forEach((function(e){A.push(e)}))})),A&&A.length&&this.sendTracer(A,e)}},e.prototype.sendTracer=function(e,A){try{var t=this.collect.eventManager.merge(e);this.collect.requestManager.useRequest({url:this.reportUrl,data:t,useBeacon:A}),this.tracerCache=null}catch(n){}},e.prototype.processTracer=function(e,A,t){var n={count:e,state:t,key:A,params_for_special:"applog_trace",aid:this.appid,platform:"web",_staging_flag:1,sdk_version:hSe};"f_net"!==t&&"f_data"!==t||(n.errorCode=this.errorCode[t]);var r=this.collect.processEvent("applog_trace",n);if(r&&r.event)return delete r.is_bav,r},e.prototype.listener=function(){var e=this;document.addEventListener("visibilitychange",(function(){"hidden"===document.visibilityState&&e.leavePage()})),$ke((function(){e.leavePage()}))},e.prototype.leavePage=function(){this.report(!0)},e}(),Cbe=function(){function e(){this.retryWaitTime=3e3,this.retryStatus=!1,this.retryCacheStatus=!1}return e.prototype.apply=function(e,A){var t=this;if(A.enable_storage&&!A.disable_storage&&(this.collect=e,this.config=A,!this.collect.destroy)){var n=e.Types,r=e.adapters.storage;this.storage=new r(!1),this.eventUrl=this.collect.configManager.getUrl("event"),this.eventKey="__tea_cache_events_"+A.app_id,this.storageNum=A.storage_num||50,this.retryNum=A.retry_num||3,this.retryInterval=1e3,e.on(n.SubmitError,(function(e){"f_data"!==e.type&&t.storeData(e)})),e.on(n.Ready,(function(){t.checkStorage()}))}},e.prototype.retryRightNow=function(e){var A=this;if(this.retryStatus)this.errorCache.push(e);else{var t=0;this.retryStatus=!0;var n=setInterval((function(){if(3===t)return A.storeData(A.errorCache),A.retryStatus=!1,void clearInterval(n);var r=e.eventData;A.fetchData(r,(function(){var e;A.retryStatus=!1,clearInterval(n),A.retryCacheStatus&&Cv(e=A.errorCache).call(e,0,1),A.errorCache.length&&(A.retryCacheStatus=!0,A.retryRightNow(A.errorCache[0]))}),(function(){t++}))}),this.retryInterval)}},e.prototype.storeData=function(e){var A=this.storage.getItem(this.eventKey),t=e.eventData;jp(A).length!==this.storageNum&&(A[Date.now()]=t,this.storage.setItem(this.eventKey,A))},e.prototype.checkStorage=function(){var e=this;try{if(!window.navigator.onLine)return;var A=this.storage.getItem(this.eventKey);if(!A||!jp(A).length)return;var t={events:[{event:"ontest",params:{app_id:this.config.app_id},local_time_ms:Date.now()}],user:{user_unique_id:this.collect.configManager.get("web_id")},header:{}};this.fetchData([t],(function(){var t=JSON.parse($b(A)),n=function(n){e.fetchData(A[n],(function(){delete t[n],e.storage.setItem(e.eventKey,t)}),(function(){}),!1)};for(var r in A)n(r)}),(function(){console.log("network error锛宑ompensate report fail")}),!0)}catch(n){console.warn("error check storage")}},e.prototype.fetchData=function(e,A,t,n){this.collect.requestManager.useRequest({url:this.eventUrl,data:e,timeout:3e4,success:A,fail:t,app_key:n?"566f58151b0ed37e":""})},e}(),dbe="undefined"!=typeof window?(window.LogPluginObject||(window.LogPluginObject={}),window.LogPluginObject):null,Ebe=function(){function e(){}return e.prototype.apply=function(e,A){this._plugin={},this.config=A,this.collect=e,this.channel=A.channel||"cn",this.loadExtend()},e.prototype.loadExtend=function(){var e=this;try{this.collect.remotePlugin.forEach((function(A,t){if("sdk"===A)if(m_e.hasOwnProperty(t)){var n=m_e[t].object,r=m_e[t].src[e.channel]+"?query="+Date.now();e.exist(t,n,r)}else console.warn("your "+t+" is not exist锛宲lease check plugin name");else"object"==wc(A)&&(A.src?e.exist(t,A.call,A.src):e.process(t,A.instance,"INSTANCE"))}))}catch(A){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:A.message}),console.log("load extend error")}},e.prototype.exist=function(e,A,t){var n=this;dbe[A]?(this.process(e,dbe[A]),console.log("宸叉湁"+e+"鎻掍欢锛岄伩鍏嶉噸澶嶅姞杞絶")):this.loadPlugin(e,t,(function(){n.process(e,dbe[A]),console.log(" %c %s %s %s","color: yellow; background-color: black;","鈥�","load plugin:"+e+" success","-")}),(function(){console.log(" %c %s %s %s","color: red; background-color: yellow;","鈥�","load plugin:"+e+" error","-")}))},e.prototype.process=function(e,A,t){try{if(t){var n=new A;n.apply&&n.apply(this.collect,this.config),console.log("excude "+e+" success")}else A&&A(this.collect,this.config)}catch(r){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:r.message}),console.log("excude "+e+" error, message:"+r.message)}},e.prototype.loadPlugin=function(e,A,t,n){var r=this;try{var i=document.createElement("script");i.src=A,this._plugin[e]||(this._plugin[e]=[]),this._plugin[e].push(t),i.onerror=function(){n(A)},i.onload=function(){r._plugin[e].forEach((function(e){e()}))},document.getElementsByTagName("head")[0].appendChild(i)}catch(o){this.collect.emit(zke.DEBUGGER_MESSAGE,{type:zke.DEBUGGER_MESSAGE_SDK,info:"鍙戠敓浜嗗紓甯�",level:"error",time:Date.now(),data:o.message})}},e}(),fbe=function(){function e(){this.autotrack=!1,this.spa=!1,this.cache={},this.allowHash=!1}return e.prototype.apply=function(e,A){if(A.spa||A.autotrack){var t=e.Types;this.collect=e,this.config=A,this.appid=A.app_id,this.allowHash=A.allow_hash,this.fncArray=new Up,this.setKey(),this.setLocation(),this.hack(),this.init(),this.listener(),e.emit(t.RouteReady)}},e.prototype.setKey=function(){var e=this.collect.adapters.storage;this.storage=new e(!1),this.cache_key="__tea_cache_refer_"+this.appid,this.cache={refer_key:"",refer_title:document.title||location.pathname,refer_manual_key:"",routeChange:!1},this.config.autotrack&&"object"==wc(this.config.autotrack)&&this.config.autotrack.page_manual_key&&(this.cache.refer_manual_key=this.config.autotrack.page_manual_key),this.storage.setItem(this.cache_key,this.cache)},e.prototype.hack=function(){var e=this,A=window.history.pushState;history.pushState=function(t){for(var n=[],r=1;r0&&iTe[0]<4?1:+(iTe[0]+iTe[1])),!oTe&&_Te&&(!(iTe=_Te.match(/Edge\/(\d+)/))||iTe[1]>=74)&&(iTe=_Te.match(/Chrome\/(\d+)/))&&(oTe=+iTe[1]);var LTe=oTe,UTe=LTe,KTe=Rbe,xTe=wbe.String,YTe=!!gy&&!KTe((function(){var e=hy();return!xTe(e)||!(Object(e)instanceof hy)||!hy.sham&&UTe&&UTe<41})),PTe=YTe&&!hy.sham&&"symbol"==wc(Cy),HTe=kTe,JTe=qbe,OTe=STe,zTe=Object,jTe=PTe?function(e){return"symbol"==wc(e)}:function(e){var A=HTe("Symbol");return JTe(A)&&OTe(A.prototype,zTe(e))},XTe=String,qTe=function(e){try{return XTe(e)}catch(A){return"Object"}},VTe=qbe,WTe=qTe,ZTe=TypeError,$Te=function(e){if(VTe(e))return e;throw ZTe(WTe(e)+" is not a function")},eFe=$Te,AFe=ITe,tFe=function(e,A){var t=e[A];return AFe(t)?void 0:eFe(t)},nFe=eTe,rFe=qbe,iFe=vTe,oFe=TypeError,aFe={exports:{}},sFe=wbe,gFe=Iy,cFe=function(e,A){try{gFe(sFe,e,{value:A,configurable:!0,writable:!0})}catch(t){sFe[e]=A}return A},lFe="__core-js_shared__",uFe=wbe[lFe]||cFe(lFe,{}),IFe=uFe;(aFe.exports=function(e,A){return IFe[e]||(IFe[e]=void 0!==A?A:{})})("versions",[]).push({version:"3.31.1",mode:"pure",copyright:"漏 2014-2023 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE",source:"https://github.com/zloirock/core-js"});var hFe=aFe.exports,CFe=dTe,dFe=Object,EFe=function(e){return dFe(CFe(e))},fFe=EFe,BFe=Ube({}.hasOwnProperty),QFe=Object.hasOwn||function(e,A){return BFe(fFe(e),A)},pFe=Ube,vFe=0,yFe=Math.random(),mFe=pFe(1..toString),DFe=function(e){return"Symbol("+(void 0===e?"":e)+")_"+mFe(++vFe+yFe,36)},wFe=hFe,RFe=QFe,kFe=DFe,SFe=YTe,MFe=PTe,GFe=wbe.Symbol,_Fe=wFe("wks"),bFe=MFe?GFe.for||GFe:GFe&&GFe.withoutSetter||kFe,TFe=function(e){return RFe(_Fe,e)||(_Fe[e]=SFe&&RFe(GFe,e)?GFe[e]:bFe("Symbol."+e)),_Fe[e]},FFe=eTe,NFe=vTe,LFe=jTe,UFe=tFe,KFe=function(e,A){var t,n;if("string"===A&&rFe(t=e.toString)&&!iFe(n=nFe(t,e)))return n;if(rFe(t=e.valueOf)&&!iFe(n=nFe(t,e)))return n;if("string"!==A&&rFe(t=e.toString)&&!iFe(n=nFe(t,e)))return n;throw oFe("Can't convert object to primitive value")},xFe=TypeError,YFe=TFe("toPrimitive"),PFe=function(e,A){if(!NFe(e)||LFe(e))return e;var t,n=UFe(e,YFe);if(n){if(void 0===A&&(A="default"),t=FFe(n,e,A),!NFe(t)||LFe(t))return t;throw xFe("Can't convert object to primitive value")}return void 0===A&&(A="number"),KFe(e,A)},HFe=jTe,JFe=function(e){var A=PFe(e,"string");return HFe(A)?A:A+""},OFe=vTe,zFe=wbe.document,jFe=OFe(zFe)&&OFe(zFe.createElement),XFe=function(e){return jFe?zFe.createElement(e):{}},qFe=XFe,VFe=!Wbe&&!Rbe((function(){return 7!=Iy(qFe("div"),"a",{get:function(){return 7}}).a})),WFe=Wbe,ZFe=eTe,$Fe=ATe,eNe=aTe,ANe=BTe,tNe=JFe,nNe=QFe,rNe=VFe,iNe=cy;Vbe.f=WFe?iNe:function(e,A){if(e=ANe(e),A=tNe(A),rNe)try{return iNe(e,A)}catch(t){}if(nNe(e,A))return eNe(!ZFe($Fe.f,e,A),e[A])};var oNe=Rbe,aNe=qbe,sNe=/#|\.prototype\./,gNe=function(e,A){var t=lNe[cNe(e)];return t==INe||t!=uNe&&(aNe(A)?oNe(A):!!A)},cNe=gNe.normalize=function(e){return String(e).replace(sNe,".").toLowerCase()},lNe=gNe.data={},uNe=gNe.NATIVE="N",INe=gNe.POLYFILL="P",hNe=gNe,CNe=$Te,dNe=kbe,ENe=Obe(Obe.bind),fNe=function(e,A){return CNe(e),void 0===A?e:dNe?ENe(e,A):function(){return e.apply(A,arguments)}},BNe={},QNe=Wbe&&Rbe((function(){return 42!=Iy((function(){}),"prototype",{value:42,writable:!1}).prototype})),pNe=vTe,vNe=String,yNe=TypeError,mNe=function(e){if(pNe(e))return e;throw yNe(vNe(e)+" is not an object")},DNe=Wbe,wNe=VFe,RNe=QNe,kNe=mNe,SNe=JFe,MNe=TypeError,GNe=Iy,_Ne=cy,bNe="enumerable",TNe="configurable",FNe="writable";BNe.f=DNe?RNe?function(e,A,t){if(kNe(e),A=SNe(A),kNe(t),"function"==typeof e&&"prototype"===A&&"value"in t&&FNe in t&&!t[FNe]){var n=_Ne(e,A);n&&n[FNe]&&(e[A]=t.value,t={configurable:TNe in t?t[TNe]:n[TNe],enumerable:bNe in t?t[bNe]:n[bNe],writable:!1})}return GNe(e,A,t)}:GNe:function(e,A,t){if(kNe(e),A=SNe(A),kNe(t),wNe)try{return GNe(e,A,t)}catch(n){}if("get"in t||"set"in t)throw MNe("Accessors not supported");return"value"in t&&(e[A]=t.value),e};var NNe=BNe,LNe=aTe,UNe=Wbe?function(e,A,t){return NNe.f(e,A,LNe(1,t))}:function(e,A,t){return e[A]=t,e},KNe=wbe,xNe=bbe,YNe=Obe,PNe=qbe,HNe=Vbe.f,JNe=hNe,ONe=yTe,zNe=fNe,jNe=UNe,XNe=QFe,qNe=function(e){var A=function A(t,n,r){if(this instanceof A){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return xNe(e,this,arguments)};return A.prototype=e.prototype,A},VNe=function(e,A){var t,n,r,i,o,a,s,g,c,l=e.target,u=e.global,I=e.stat,h=e.proto,C=u?KNe:I?KNe[l]:(KNe[l]||{}).prototype,d=u?ONe:ONe[l]||jNe(ONe,l,{})[l],E=d.prototype;for(i in A)n=!(t=JNe(u?i:l+(I?".":"#")+i,e.forced))&&C&&XNe(C,i),a=d[i],n&&(s=e.dontCallGetSet?(c=HNe(C,i))&&c.value:C[i]),o=n&&s?s:A[i],n&&wc(a)==wc(o)||(g=e.bind&&n?zNe(o,KNe):e.wrap&&n?qNe(o):h&&PNe(o)?YNe(o):o,(e.sham||o&&o.sham||a&&a.sham)&&jNe(g,"sham",!0),jNe(d,i,g),h&&(XNe(ONe,r=l+"Prototype")||jNe(ONe,r,{}),jNe(ONe[r],i,o),e.real&&E&&(t||!E[i])&&jNe(E,i,o)))},WNe=Pbe,ZNe=Array.isArray||function(e){return"Array"==WNe(e)},$Ne=Math.ceil,eLe=Math.floor,ALe=IY||function(e){var A=+e;return(A>0?eLe:$Ne)(A)},tLe=ALe,nLe=function(e){var A=+e;return A!=A||0===A?0:tLe(A)},rLe=nLe,iLe=Math.min,oLe=function(e){return e>0?iLe(rLe(e),9007199254740991):0},aLe=function(e){return oLe(e.length)},sLe=TypeError,gLe=function(e){if(e>9007199254740991)throw sLe("Maximum allowed index exceeded");return e},cLe=JFe,lLe=BNe,uLe=aTe,ILe=function(e,A,t){var n=cLe(A);n in e?lLe.f(e,n,uLe(0,t)):e[n]=t},hLe={};hLe[TFe("toStringTag")]="z";var CLe="[object z]"===String(hLe),dLe=CLe,ELe=qbe,fLe=Pbe,BLe=TFe("toStringTag"),QLe=Object,pLe="Arguments"==fLe(function(){return arguments}()),vLe=dLe?fLe:function(e){var A,t,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(t=function(e,A){try{return e[A]}catch(t){}}(A=QLe(e),BLe))?t:pLe?fLe(A):"Object"==(n=fLe(A))&&ELe(A.callee)?"Arguments":n},yLe=qbe,mLe=uFe,DLe=Ube(Function.toString);yLe(mLe.inspectSource)||(mLe.inspectSource=function(e){return DLe(e)});var wLe=mLe.inspectSource,RLe=Ube,kLe=Rbe,SLe=qbe,MLe=vLe,GLe=wLe,_Le=function(){},bLe=[],TLe=kTe("Reflect","construct"),FLe=/^\s*(?:class|function)\b/,NLe=RLe(FLe.exec),LLe=!FLe.exec(_Le),ULe=function(e){if(!SLe(e))return!1;try{return TLe(_Le,bLe,e),!0}catch(A){return!1}},KLe=function(e){if(!SLe(e))return!1;switch(MLe(e)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return LLe||!!NLe(FLe,GLe(e))}catch(A){return!0}};KLe.sham=!0;var xLe=!TLe||kLe((function(){var e;return ULe(ULe.call)||!ULe(Object)||!ULe((function(){e=!0}))||e}))?KLe:ULe,YLe=ZNe,PLe=xLe,HLe=vTe,JLe=TFe("species"),OLe=Array,zLe=function(e){var A;return YLe(e)&&(A=e.constructor,(PLe(A)&&(A===OLe||YLe(A.prototype))||HLe(A)&&null===(A=A[JLe]))&&(A=void 0)),void 0===A?OLe:A},jLe=function(e,A){return new(zLe(e))(0===A?0:A)},XLe=Rbe,qLe=LTe,VLe=TFe("species"),WLe=function(e){return qLe>=51||!XLe((function(){var A=[];return(A.constructor={})[VLe]=function(){return{foo:1}},1!==A[e](Boolean).foo}))},ZLe=VNe,$Le=Rbe,eUe=ZNe,AUe=vTe,tUe=EFe,nUe=aLe,rUe=gLe,iUe=ILe,oUe=jLe,aUe=WLe,sUe=LTe,gUe=TFe("isConcatSpreadable"),cUe=sUe>=51||!$Le((function(){var e=[];return e[gUe]=!1,xf(e).call(e)[0]!==e})),lUe=function(e){if(!AUe(e))return!1;var A=e[gUe];return void 0!==A?!!A:eUe(e)};ZLe({target:"Array",proto:!0,arity:1,forced:!cUe||!aUe("concat")},{concat:function(e){var A,t,n,r,i,o=tUe(this),a=oUe(o,0),s=0;for(A=-1,n=arguments.length;Aa;)if((r=i[a++])!=r)return!0}else for(;o>a;a++)if((e||a in i)&&i[a]===t)return e||a||0;return!e&&-1}},mUe={includes:yUe(!0),indexOf:yUe(!1)},DUe={},wUe=Ube,RUe=QFe,kUe=BTe,SUe=zp(mUe),MUe=DUe,GUe=wUe([].push),_Ue=function(e,A){var t,n=kUe(e),r=0,i=[];for(t in n)!RUe(MUe,t)&&RUe(n,t)&&GUe(i,t);for(;A.length>r;)RUe(n,t=A[r++])&&(~SUe(i,t)||GUe(i,t));return i},bUe=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],TUe=_Ue,FUe=bUe,NUe=jp||function(e){return TUe(e,FUe)},LUe=Wbe,UUe=QNe,KUe=BNe,xUe=mNe,YUe=BTe,PUe=NUe;CUe.f=LUe&&!UUe?uy:function(e,A){xUe(e);for(var t,n=YUe(A),r=PUe(A),i=r.length,o=0;i>o;)KUe.f(e,t=r[o++],n[t]);return e};var HUe,JUe=kTe("document","documentElement"),OUe=DFe,zUe=hFe("keys"),jUe=function(e){return zUe[e]||(zUe[e]=OUe(e))},XUe=mNe,qUe=CUe,VUe=bUe,WUe=DUe,ZUe=JUe,$Ue=XFe,eKe="prototype",AKe="script",tKe=jUe("IE_PROTO"),nKe=function(){},rKe=function(e){return"<"+AKe+">"+e+""},iKe=function(e){e.write(rKe("")),e.close();var A=e.parentWindow.Object;return e=null,A},oKe=function(){try{HUe=new ActiveXObject("htmlfile")}catch(A){}oKe="undefined"!=typeof document?document.domain&&HUe?iKe(HUe):function(){var e,A=$Ue("iframe"),t="java"+AKe+":";return A.style.display="none",ZUe.appendChild(A),A.src=String(t),(e=A.contentWindow.document).open(),e.write(rKe("document.F=Object")),e.close(),e.F}():iKe(HUe);for(var e=VUe.length;e--;)delete oKe[eKe][VUe[e]];return oKe()};WUe[tKe]=!0;var aKe=Object.create||function(e,A){var t;return null!==e?(nKe[eKe]=XUe(e),t=new nKe,nKe[eKe]=null,t[tKe]=e):t=oKe(),void 0===A?t:qUe.f(t,A)},sKe={},gKe=_Ue,cKe=bUe,lKe=xf(cKe).call(cKe,"length","prototype");sKe.f=fY||function(e){return gKe(e,lKe)};var uKe={},IKe=BUe,hKe=aLe,CKe=ILe,dKe=Array,EKe=Math.max,fKe=function(e,A,t){for(var n=hKe(e),r=IKe(A,n),i=IKe(void 0===t?n:t,n),o=dKe(EKe(i-r,0)),a=0;rf;f++)if((a||f in C)&&(I=d(u=C[f],f,h),e))if(A)Q[f]=I;else if(I)switch(e){case 3:return!0;case 5:return u;case 6:return f;case 2:Qxe(Q,u)}else switch(e){case 4:return!1;case 7:Qxe(Q,u)}return i?-1:n||r?r:Q}},vxe={forEach:pxe(0),map:pxe(1),filter:pxe(2),some:pxe(3),every:pxe(4),find:pxe(5),findIndex:pxe(6),filterReject:pxe(7)},yxe=VNe,mxe=wbe,Dxe=eTe,wxe=Ube,Rxe=Wbe,kxe=YTe,Sxe=Rbe,Mxe=QFe,Gxe=STe,_xe=mNe,bxe=BTe,Txe=JFe,Fxe=hUe,Nxe=aTe,Lxe=aKe,Uxe=NUe,Kxe=sKe,xxe=uKe,Yxe=mKe,Pxe=Vbe,Hxe=BNe,Jxe=CUe,Oxe=ATe,zxe=wKe,jxe=kKe,Xxe=hFe,qxe=DUe,Vxe=DFe,Wxe=TFe,Zxe=SKe,$xe=UKe,eYe=HKe,AYe=ZKe,tYe=hxe,nYe=vxe.forEach,rYe=jUe("hidden"),iYe="Symbol",oYe="prototype",aYe=tYe.set,sYe=tYe.getterFor(iYe),gYe=Object[oYe],cYe=mxe.Symbol,lYe=cYe&&cYe[oYe],uYe=mxe.TypeError,IYe=mxe.QObject,hYe=Pxe.f,CYe=Hxe.f,dYe=xxe.f,EYe=Oxe.f,fYe=wxe([].push),BYe=Xxe("symbols"),QYe=Xxe("op-symbols"),pYe=Xxe("wks"),vYe=!IYe||!IYe[oYe]||!IYe[oYe].findChild,yYe=Rxe&&Sxe((function(){return 7!=Lxe(CYe({},"a",{get:function(){return CYe(this,"a",{value:7}).a}})).a}))?function(e,A,t){var n=hYe(gYe,A);n&&delete gYe[A],CYe(e,A,t),n&&e!==gYe&&CYe(gYe,A,n)}:CYe,mYe=function(e,A){var t=BYe[e]=Lxe(lYe);return aYe(t,{type:iYe,tag:e,description:A}),Rxe||(t.description=A),t},DYe=function e(A,t,n){A===gYe&&e(QYe,t,n),_xe(A);var r=Txe(t);return _xe(n),Mxe(BYe,r)?(n.enumerable?(Mxe(A,rYe)&&A[rYe][r]&&(A[rYe][r]=!1),n=Lxe(n,{enumerable:Nxe(0,!1)})):(Mxe(A,rYe)||CYe(A,rYe,Nxe(1,{})),A[rYe][r]=!0),yYe(A,r,n)):CYe(A,r,n)},wYe=function(e,A){var t;_xe(e);var n=bxe(A),r=xf(t=Uxe(n)).call(t,MYe(n));return nYe(r,(function(A){Rxe&&!Dxe(RYe,n,A)||DYe(e,A,n[A])})),e},RYe=function(e){var A=Txe(e),t=Dxe(EYe,this,A);return!(this===gYe&&Mxe(BYe,A)&&!Mxe(QYe,A))&&(!(t||!Mxe(this,A)||!Mxe(BYe,A)||Mxe(this,rYe)&&this[rYe][A])||t)},kYe=function(e,A){var t=bxe(e),n=Txe(A);if(t!==gYe||!Mxe(BYe,n)||Mxe(QYe,n)){var r=hYe(t,n);return!r||!Mxe(BYe,n)||Mxe(t,rYe)&&t[rYe][n]||(r.enumerable=!0),r}},SYe=function(e){var A=dYe(bxe(e)),t=[];return nYe(A,(function(e){Mxe(BYe,e)||Mxe(qxe,e)||fYe(t,e)})),t},MYe=function(e){var A=e===gYe,t=dYe(A?QYe:bxe(e)),n=[];return nYe(t,(function(e){!Mxe(BYe,e)||A&&!Mxe(gYe,e)||fYe(n,BYe[e])})),n};kxe||(zxe(lYe=(cYe=function(){if(Gxe(lYe,this))throw uYe("Symbol is not a constructor");var e=arguments.length&&void 0!==arguments[0]?Fxe(arguments[0]):void 0,A=Vxe(e);return Rxe&&vYe&&yYe(gYe,A,{configurable:!0,set:function e(t){this===gYe&&Dxe(e,QYe,t),Mxe(this,rYe)&&Mxe(this[rYe],A)&&(this[rYe][A]=!1),yYe(this,A,Nxe(1,t))}}),mYe(A,e)})[oYe],"toString",(function(){return sYe(this).tag})),zxe(cYe,"withoutSetter",(function(e){return mYe(Vxe(e),e)})),Oxe.f=RYe,Hxe.f=DYe,Jxe.f=wYe,Pxe.f=kYe,Kxe.f=xxe.f=SYe,Yxe.f=MYe,Zxe.f=function(e){return mYe(Wxe(e),e)},Rxe&&jxe(lYe,"description",{configurable:!0,get:function(){return sYe(this).description}})),yxe({global:!0,constructor:!0,wrap:!0,forced:!kxe,sham:!kxe},{Symbol:cYe}),nYe(Uxe(pYe),(function(e){$xe(e)})),yxe({target:iYe,stat:!0,forced:!kxe},{useSetter:function(){vYe=!0},useSimple:function(){vYe=!1}}),yxe({target:"Object",stat:!0,forced:!kxe,sham:!Rxe},{create:function(e,A){return void 0===A?Lxe(e):wYe(Lxe(e),A)},defineProperty:DYe,defineProperties:wYe,getOwnPropertyDescriptor:kYe}),yxe({target:"Object",stat:!0,forced:!kxe},{getOwnPropertyNames:SYe}),eYe(),AYe(cYe,iYe),qxe[rYe]=!0;var GYe=YTe&&!!BY&&!!QY,_Ye=VNe,bYe=kTe,TYe=QFe,FYe=hUe,NYe=hFe,LYe=GYe,UYe=NYe("string-to-symbol-registry"),KYe=NYe("symbol-to-string-registry");_Ye({target:"Symbol",stat:!0,forced:!LYe},{for:function(e){var A=FYe(e);if(TYe(UYe,A))return UYe[A];var t=bYe("Symbol")(A);return UYe[A]=t,KYe[t]=A,t}});var xYe=VNe,YYe=QFe,PYe=jTe,HYe=qTe,JYe=GYe,OYe=hFe("symbol-to-string-registry");xYe({target:"Symbol",stat:!0,forced:!JYe},{keyFor:function(e){if(!PYe(e))throw TypeError(HYe(e)+" is not a symbol");if(YYe(OYe,e))return OYe[e]}});var zYe=Ube(Xp([])),jYe=ZNe,XYe=qbe,qYe=Pbe,VYe=hUe,WYe=Ube([].push),ZYe=VNe,$Ye=kTe,ePe=bbe,APe=eTe,tPe=Ube,nPe=Rbe,rPe=qbe,iPe=jTe,oPe=zYe,aPe=function(e){if(XYe(e))return e;if(jYe(e)){for(var A=e.length,t=[],n=0;n=A.length?(e.target=void 0,xHe(void 0,!0)):xHe("keys"==t?n:"values"==t?A[n]:[n,A[n]],!1)}),"values"),LHe.Arguments=LHe.Array;var JHe={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},OHe=wbe,zHe=vLe,jHe=UNe,XHe=_Pe,qHe=TFe("toStringTag");for(var VHe in JHe){var WHe=OHe[VHe],ZHe=WHe&&WHe.prototype;ZHe&&zHe(ZHe)!==qHe&&jHe(ZHe,qHe,VHe),XHe[VHe]=XHe.Array}var $He=GPe,eJe=TFe,AJe=BNe.f,tJe=eJe("metadata"),nJe=Function.prototype;void 0===nJe[tJe]&&AJe(nJe,tJe,{value:null}),UKe("dispose"),UKe("metadata");var rJe=$He;UKe("asyncDispose");var iJe=Ube,oJe=kTe("Symbol"),aJe=oJe.keyFor,sJe=iJe(oJe.prototype.valueOf),gJe=oJe.isRegisteredSymbol||function(e){try{return void 0!==aJe(sJe(e))}catch(A){return!1}};VNe({target:"Symbol",stat:!0},{isRegisteredSymbol:gJe});for(var cJe=hFe,lJe=kTe,uJe=Ube,IJe=jTe,hJe=TFe,CJe=lJe("Symbol"),dJe=CJe.isWellKnownSymbol,EJe=lJe("Object","getOwnPropertyNames"),fJe=uJe(CJe.prototype.valueOf),BJe=cJe("wks"),QJe=0,pJe=EJe(CJe),vJe=pJe.length;QJe=a?e?"":void 0:(n=GJe(i,o))<55296||n>56319||o+1===a||(r=GJe(i,o+1))<56320||r>57343?e?MJe(i,o):n:e?_Je(i,o,o+2):r-56320+(n-55296<<10)+65536}},TJe={codeAt:bJe(!1),charAt:bJe(!0)},FJe=TJe.charAt,NJe=hUe,LJe=hxe,UJe=THe,KJe=FHe,xJe="String Iterator",YJe=LJe.set,PJe=LJe.getterFor(xJe);UJe(String,"String",(function(e){YJe(this,{type:xJe,string:NJe(e),index:0})}),(function(){var e,A=PJe(this),t=A.string,n=A.index;return n>=t.length?KJe(void 0,!0):(e=FJe(t,n),A.index+=e.length,KJe(e,!1))}));var HJe=mbe(SKe.f("iterator"));function JJe(e){return(JJe="function"==typeof DJe&&"symbol"==wc(HJe)?function(e){return wc(e)}:function(e){return e&&"function"==typeof DJe&&e.constructor===DJe&&e!==DJe.prototype?"symbol":wc(e)})(e)}var OJe=EFe,zJe=NUe;VNe({target:"Object",stat:!0,forced:Rbe((function(){zJe(1)}))},{keys:function(e){return zJe(OJe(e))}});var jJe=zv(yTe.Object),XJe=mbe(jJe),qJe=mbe(yTe.Object.getOwnPropertySymbols),VJe=VNe,WJe=jv(vxe);VJe({target:"Array",proto:!0,forced:!WLe("filter")},{filter:function(e){return WJe(this,e,arguments.length>1?arguments[1]:void 0)}});var ZJe=yTe,$Je=function(e){return ZJe[e+"Prototype"]},eOe=jv($Je("Array")),AOe=STe,tOe=eOe,nOe=Array.prototype,rOe=function(e){var A=jv(e);return e===nOe||AOe(nOe,e)&&A===jv(nOe)?tOe:A},iOe=rOe,oOe=mbe(iOe),aOe={exports:{}},sOe=VNe,gOe=Rbe,cOe=BTe,lOe=Vbe.f,uOe=Wbe;sOe({target:"Object",stat:!0,forced:!uOe||gOe((function(){lOe(1)})),sham:!uOe},{getOwnPropertyDescriptor:function(e,A){return lOe(cOe(e),A)}});var IOe=yTe.Object,hOe=aOe.exports=function(e,A){return IOe.getOwnPropertyDescriptor(e,A)};IOe.getOwnPropertyDescriptor.sham&&(hOe.sham=!0);var COe=mbe(aOe.exports),dOe=ZNe,EOe=TypeError,fOe=cy,BOe=Wbe&&!function(){if(void 0!==this)return!0;try{Iy([],"length",{writable:!1}).length=1}catch(P7){return P7 instanceof TypeError}}(),QOe=BOe?function(e,A){if(dOe(e)&&!fOe(e,"length").writable)throw EOe("Cannot set read only .length");return e.length=A}:function(e,A){return e.length=A},pOe=VNe,vOe=EFe,yOe=aLe,mOe=QOe,DOe=gLe,wOe=Rbe((function(){return 4294967297!==[].push.call({length:4294967296},1)}))||!function(){try{Iy([],"length",{writable:!1}).push()}catch(P7){return P7 instanceof TypeError}}();pOe({target:"Array",proto:!0,arity:1,forced:wOe},{push:function(e){var A=vOe(this),t=yOe(A),n=arguments.length;DOe(t+n);for(var r=0;r1?arguments[1]:void 0)};VNe({target:"Array",proto:!0,forced:[].forEach!=NOe},{forEach:NOe});var LOe=$Je("Array").forEach,UOe=vLe,KOe=QFe,xOe=STe,YOe=LOe,POe=Array.prototype,HOe={DOMTokenList:!0,NodeList:!0},JOe=function(e){var A=e.forEach;return e===POe||xOe(POe,e)&&A===POe.forEach||KOe(HOe,UOe(e))?YOe:A},OOe=JOe,zOe=mbe(OOe),jOe=kTe,XOe=sKe,qOe=mKe,VOe=mNe,WOe=Ube(xf([])),ZOe=jOe("Reflect","ownKeys")||function(e){var A=XOe.f(VOe(e)),t=qOe.f;return t?WOe(A,t(e)):A},$Oe=ZOe,eze=BTe,Aze=Vbe,tze=ILe;VNe({target:"Object",stat:!0,sham:!Wbe},{getOwnPropertyDescriptors:function(e){for(var A,t,n=eze(e),r=Aze.f,i=$Oe(n),o={},a=0;i.length>a;)void 0!==(t=r(n,A=i[a++]))&&tze(o,A,t);return o}});var nze=mbe(yTe.Object.getOwnPropertyDescriptors),rze={exports:{}},ize=VNe,oze=Wbe,aze=CUe.f;ize({target:"Object",stat:!0,forced:uy!==aze,sham:!oze},{defineProperties:aze});var sze=yTe.Object,gze=rze.exports=function(e,A){return sze.defineProperties(e,A)};sze.defineProperties.sham&&(gze.sham=!0);var cze=mbe(rze.exports),lze={exports:{}},uze=VNe,Ize=Wbe,hze=BNe.f;uze({target:"Object",stat:!0,forced:Iy!==hze,sham:!Ize},{defineProperty:hze});var Cze=yTe.Object,dze=lze.exports=function(e,A,t){return Cze.defineProperty(e,A,t)};Cze.defineProperty.sham&&(dze.sham=!0);var Eze=lze.exports,fze=mbe(Eze),Bze=mbe(SKe.f("toPrimitive"));function Qze(e){var A=function(e,A){if("object"!==JJe(e)||null===e)return e;var t=e[Bze];if(void 0!==t){var n=t.call(e,A||"default");if("object"!==JJe(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===A?String:Number)(e)}(e,"string");return"symbol"===JJe(A)?A:String(A)}function pze(e,A,t){return(A=Qze(A))in e?fze(e,A,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[A]=t,e}function vze(e,A){var t=XJe(e);if(qJe){var n=qJe(e);A&&(n=oOe(n).call(n,(function(A){return COe(e,A).enumerable}))),_Oe(t).apply(t,n)}return t}function yze(e){for(var A=1;Ai;i++)if((a=E(e[i]))&&mje(Mje,a))return a;return new Sje(!1)}n=Dje(e,r)}for(s=u?e.next:n.next;!(g=Bje(s,n)).done;){try{a=E(g.value)}catch(f){Rje(n,"throw",f)}if("object"==wc(a)&&a&&mje(Mje,a))return a}return new Sje(!1)},_je=hUe,bje=VNe,Tje=STe,Fje=jPe,Nje=BHe,Lje=function(e,A,t){for(var n=Fze(A),r=Lze.f,i=Nze.f,o=0;o2&&Yje(n,arguments[2]);var i=[];return Hje(A,jje,{that:i}),Kje(n,"errors",i),n};Nje?Nje(Xje,zje):Lje(Xje,zje,{name:!0});var qje=Xje.prototype=Uje(zje.prototype,{constructor:xje(1,Xje),message:xje(1,""),name:xje(1,"AggregateError")});bje({global:!0,constructor:!0,arity:2},{AggregateError:Xje});var Vje,Wje,Zje,$je,eXe="undefined"!=typeof process&&"process"==Pbe(process),AXe=kTe,tXe=kKe,nXe=Wbe,rXe=TFe("species"),iXe=function(e){var A=AXe(e);nXe&&A&&!A[rXe]&&tXe(A,rXe,{configurable:!0,get:function(){return this}})},oXe=STe,aXe=TypeError,sXe=function(e,A){if(oXe(A,e))return e;throw aXe("Incorrect invocation")},gXe=xLe,cXe=qTe,lXe=TypeError,uXe=function(e){if(gXe(e))return e;throw lXe(cXe(e)+" is not a constructor")},IXe=mNe,hXe=uXe,CXe=ITe,dXe=TFe("species"),EXe=function(e,A){var t,n=IXe(e).constructor;return void 0===n||CXe(t=IXe(n)[dXe])?A:hXe(t)},fXe=TypeError,BXe=function(e,A){if(e=0;--r){var i=this.tryEntries[r],o=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var a=t.call(i,"catchLoc"),s=t.call(i,"finallyLoc");if(a&&s){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&t.call(r,"finallyLoc")&&this.prev=0;--A){var t=this.tryEntries[A];if(t.finallyLoc===e)return this.complete(t.completion,t.afterLoc),y(t),l}},catch:function(e){for(var A=this.tryEntries.length-1;A>=0;--A){var t=this.tryEntries[A];if(t.tryLoc===e){var n=t.completion;if("throw"===n.type){var r=n.arg;y(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,A,t){return this.delegate={iterator:D(e),resultName:A,nextLoc:t},"next"===this.method&&(this.arg=void 0),l}},e}function BZe(e,A,t,n,r,i,o){try{var a=e[i](o),s=a.value}catch(g){return void t(g)}a.done?A(s):KWe.resolve(s).then(n,r)}function QZe(e){return function(){var A=this,t=arguments;return new KWe((function(n,r){var i=e.apply(A,t);function o(e){BZe(i,n,r,o,a,"next",e)}function a(e){BZe(i,n,r,o,a,"throw",e)}o(void 0)}))}}function pZe(e,A){if(!(e instanceof A))throw new TypeError("Cannot call a class as a function")}function vZe(e,A){for(var t=0;tr;)for(var a,s=UZe(arguments[r++]),g=i?YZe(TZe(s),i(s)):TZe(s),c=g.length,l=0;c>l;)a=g[l++],GZe&&!_Ze(o,s,a)||(t[a]=s[a]);return t}:KZe;VNe({target:"Object",stat:!0,arity:2,forced:sy!==PZe},{assign:PZe});var HZe=mbe(yTe.Object.assign),JZe=xf($Je("Array")),OZe=STe,zZe=JZe,jZe=Array.prototype,XZe=function(e){var A=xf(e);return e===jZe||OZe(jZe,e)&&A===xf(jZe)?zZe:A},qZe=mbe(XZe),VZe=mbe(iOe),WZe=VNe,ZZe=Jp(vxe);WZe({target:"Array",proto:!0,forced:!WLe("map")},{map:function(e){return ZZe(this,e,arguments.length>1?arguments[1]:void 0)}});var $Ze=Jp($Je("Array")),e$e=STe,A$e=$Ze,t$e=Array.prototype,n$e=function(e){var A=Jp(e);return e===t$e||e$e(t$e,e)&&A===Jp(t$e)?A$e:A},r$e=mbe(n$e),i$e=VNe,o$e=PT(mUe);i$e({target:"Array",proto:!0,forced:Rbe((function(){var e;return!PT(e=Array(1)).call(e)}))},{includes:function(e){return o$e(this,e,arguments.length>1?arguments[1]:void 0)}});var a$e=PT($Je("Array")),s$e=vTe,g$e=Pbe,c$e=TFe("match"),l$e=function(e){var A;return s$e(e)&&(void 0!==(A=e[c$e])?!!A:"RegExp"==g$e(e))},u$e=TypeError,I$e=TFe("match"),h$e=VNe,C$e=function(e){if(l$e(e))throw u$e("The method doesn't accept regular expressions");return e},d$e=dTe,E$e=hUe,f$e=function(e){var A=/./;try{"/./"[e](A)}catch(t){try{return A[I$e]=!1,"/./"[e](A)}catch(n){}}return!1},B$e=Ube(zp(""));h$e({target:"String",proto:!0,forced:!f$e("includes")},{includes:function(e){return!!~B$e(E$e(d$e(this)),E$e(C$e(e)),arguments.length>1?arguments[1]:void 0)}});var Q$e=PT($Je("String")),p$e=STe,v$e=a$e,y$e=Q$e,m$e=Array.prototype,D$e=String.prototype,w$e=function(e){var A=PT(e);return e===m$e||p$e(m$e,e)&&A===PT(m$e)?v$e:"string"==typeof e||e===D$e||p$e(D$e,e)&&A===PT(D$e)?y$e:A},R$e=mbe(w$e);function k$e(e){return function(A){var t;return null==A?void 0:R$e(t=A.split("?")[0].toLowerCase()).call(t,e)}}var S$e=k$e(".m3u8"),M$e=k$e(".mp4"),G$e=k$e(".flv"),_$e=k$e(".sdp"),b$e=k$e(".mpd");function T$e(e,A){try{"object"===("undefined"==typeof window?"undefined":JJe(window))&&window.localStorage&&window.localStorage.setItem(e,A)}catch(t){}}function F$e(e){try{return"object"===("undefined"==typeof window?"undefined":JJe(window))&&window.localStorage?window.localStorage.getItem(e):null}catch(A){return null}}function N$e(e){return e.replace(/[A-Z]/g,(function(e){return"_".concat(e.toLowerCase())}))}function L$e(e){if(!e||"[object Object]"!==Object.prototype.toString.call(e))return{};var A={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&(A[N$e(t)]=e[t]);return A}RY({__proto__:null,camelToSnake:N$e,convertToSnakeCase:L$e,getLocalStorage:F$e,getStreamType:function(e){return S$e(e)?"hls":G$e(e)?"flv":_$e(e)?"rtm":M$e(e)?"mp4":b$e(e)?"dash":"unknown"},isDash:b$e,isFlv:G$e,isHls:S$e,isMp4:M$e,isRtm:_$e,removeLocalStorage:function(e){try{return"object"===("undefined"==typeof window?"undefined":JJe(window))&&window.localStorage?window.localStorage.removeItem(e):null}catch(A){return null}},setLocalStorage:T$e});var U$e=VNe,K$e=Date,x$e=Ube(K$e.prototype.getTime);U$e({target:"Date",stat:!0},{now:function(){return x$e(new K$e)}});var Y$e=mbe(yTe.Date.now),P$e=function(e){return e.VOD="VOD",e.LIVE="LIVE",e}(P$e||{}),H$e=function(e){return e.CN="cn",e.SG="sg",e.US="us",e}(H$e||{}),J$e=function(e){return e.MP4="mp4",e.DASH="dash",e}(J$e||{}),O$e=function(e){return e.h265="h265",e.adaptRange="adaptRange",e.preload="preload",e.rtmAdaptiveBuffer="rtmAdaptiveBuffer",e}(O$e||{}),z$e={info:3,warn:2,error:1},j$e=function(){function e(A,t){var n=this;pZe(this,e),pze(this,"logger",void 0),pze(this,"level",void 0),pze(this,"customLogger",void 0),this.level=null==t?void 0:t.level,this.customLogger=null==t?void 0:t.logger,this.logger=function(e,t){var r,i,o,a;try{a="0.0.0-feat-rtm-jb-20250716120923"}catch(y){a="--"}for(var s,g,c,l,u,I,h,C,d,E,f,B=qZe(r=qZe(i="[".concat(A,"][")).call(i,a,"][")).call(r,t,"]"),Q=arguments.length,p=new Array(Q>2?Q-2:0),v=2;v=z$e[e]||"undefined"!=typeof window&&n._checkOpenLog())&&(null===(d=window.console)||void 0===d||null===(E=d[e])||void 0===E||E.call.apply(E,qZe(f=[d,B]).call(f,p)))}}return yZe(e,[{key:"update",value:function(e){var A=e||{},t=A.logger,n=A.level;this.updateLevel(n),this.updateLogger(t)}},{key:"info",value:function(e){for(var A,t=arguments.length,n=new Array(t>1?t-1:0),r=1;r1?t-1:0),r=1;r1?t-1:0),r=1;rthis.serviceStrategyConfig.local_cache_expired_at)||this.serviceStrategyConfig.cache_key!==(null===(e=this.serviceStrategyConfigLoader)||void 0===e?void 0:e.getCacheKey())}}]),e}(),e0e=Ube,A0e=$Te,t0e=vTe,n0e=QFe,r0e=zYe,i0e=kbe,o0e=Function,a0e=e0e(xf([])),s0e=e0e([].join),g0e={},c0e=i0e?o0e.bind:function(e){var A=A0e(this),t=A.prototype,n=r0e(arguments,1),r=function t(){var r=a0e(n,r0e(arguments));return this instanceof t?function(e,A,t){if(!n0e(g0e,A)){for(var n=[],r=0;r0&&(r+=A)})),r=0===r?1:r;for(var i=0;i1e3)try{e.off("timeupdate",i);var o=e.video.getVideoPlaybackQuality();localStorage.setItem("player_".concat(A,"_fps"),o.totalVideoFrames-n+"")}catch(s){}}else if(r.bufferLength>1){var a=e.video.getVideoPlaybackQuality();n=a.totalVideoFrames,t=Y$e()}}else e.off("timeupdate",i)})))}},{key:"bufferLength",get:function(){var e=this._player.getBufferedRange();if(!this._player.video)return 0;var A=this._player.video.currentTime,t=e[1]-Math.max(e[0],A);return Math.max(0,t)}}]),t}(),q0e=VNe,V0e=Math.log,W0e=Math.LN2;q0e({target:"Math",stat:!0},{log2:function(e){return V0e(e)/W0e}});var Z0e=mbe(yTe.Math.log2),$0e=function(){function e(){pZe(this,e)}return yZe(e,[{key:"getScore",value:function(){return new mZe((function(e){var A=navigator.hardwareConcurrency,t=0;if(A>0){var n=Z0e(A);t=n<=2?3*n:n<=3?1.6*(n-2)+6:.523*(n-3)+7.6}e({score:t,origin:A})}))}}]),e}(),e1e=new $0e,A1e=Math.log,t1e=Math.LOG10E,n1e=MY||function(e){return A1e(e)*t1e};VNe({target:"Math",stat:!0},{log10:n1e});var r1e=mbe(yTe.Math.log10),i1e=K0e,o1e=function(e,A,t){return function(e,A,t){A in e?i1e(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==JJe(A)?A+"":A,t),t},a1e=function(){function e(){pZe(this,e),o1e(this,"_worker"),o1e(this,"_getScoreCallback",(function(){}))}return yZe(e,[{key:"getScore",value:function(){return new mZe((function(e){try{var A=new Image;A.src="//lf6-cdn-tos.douyinstatic.com/obj/venus/pc-theme/spring/20230411-162827.jpeg",A.onload=function(){var t=Y$e();"function"==typeof A.decode?A.decode().then((function(){var A=1e3/(Y$e()-t),n=0;if(A>0){var r=r1e(A);n=r<=1?6*r:r<=2?1.6*(r-1)+6:2.4*(r-2)+7.6}e({score:n,origin:A})})):e({score:0,origin:-1})}}catch(t){e({score:0,origin:-1})}}))}}]),e}(),s1e=new a1e,g1e=EFe,c1e=BUe,l1e=aLe,u1e=function(e){for(var A=g1e(this),t=l1e(A),n=arguments.length,r=c1e(n>1?arguments[1]:void 0,t),i=n>2?arguments[2]:void 0,o=void 0===i?t:c1e(i,t);o>r;)A[r++]=e;return A};VNe({target:"Array",proto:!0},{fill:u1e});var I1e=ZT($Je("Array")),h1e=STe,C1e=I1e,d1e=Array.prototype,E1e=function(e){var A=ZT(e);return e===d1e||h1e(d1e,e)&&A===ZT(d1e)?C1e:A},f1e=mbe(E1e),B1e=function(){function e(){pZe(this,e)}return yZe(e,[{key:"_getOrigin",value:function(){var e=new Uint8Array(3686400);f1e(e).call(e,8);var A=performance.now();return 1e3/(performance.now()-A)}},{key:"getScore",value:function(){var e=this;return new mZe((function(A){A({score:0,origin:e._getOrigin()})}))}}]),e}(),Q1e=new B1e,p1e=function(){function e(){pZe(this,e)}return yZe(e,[{key:"getScore",value:function(){return new mZe((function(e){e({score:0,origin:navigator.deviceMemory})}))}}]),e}(),v1e=new p1e,y1e=function(){function e(){pZe(this,e)}return yZe(e,[{key:"getScore",value:function(){return new mZe((function(e){var A,t=null==(A=null==navigator?void 0:navigator.connection)?void 0:A.downlink,n=0;t>0&&t<1e6&&(n=t<1?60*t:t<5?.4*(t-1)+6.01:.02*(t-5)+7.61),e({score:n,origin:t})}))}}]),e}(),m1e=new y1e,D1e=$Te,w1e=EFe,R1e=uTe,k1e=aLe,S1e=TypeError,M1e=function(e){return function(A,t,n,r){D1e(t);var i=w1e(A),o=R1e(i),a=k1e(i),s=e?a-1:0,g=e?-1:1;if(n<2)for(;;){if(s in o){r=o[s],s+=g;break}if(s+=g,e?s<0:a<=s)throw S1e("Reduce of empty array with no initial value")}for(;e?s>=0:a>s;s+=g)s in o&&(r=t(r,o[s],s,i));return r}},G1e={left:M1e(!1),right:M1e(!0)}.left;VNe({target:"Array",proto:!0,forced:!eXe&<e>79&<e<83||!TOe("reduce")},{reduce:function(e){var A=arguments.length;return G1e(this,e,A,A>1?arguments[1]:void 0)}});var _1e=wF($Je("Array")),b1e=STe,T1e=_1e,F1e=Array.prototype,N1e=function(e){var A=wF(e);return e===F1e||b1e(F1e,e)&&A===wF(F1e)?T1e:A},L1e=mbe(N1e),U1e=function(){function e(){pZe(this,e)}return yZe(e,[{key:"_getBandwidth",value:function(){var e;if(!performance.getEntries)return-1;var A=VZe(e=performance.getEntries()).call(e,(function(e){var A=e.initiatorType,t=e.decodedBodySize;return"img"===A&&t>0})),t=L1e(A).call(A,(function(e,A){return e+1e3*A.decodedBodySize/(A.responseEnd-A.responseStart)}),0);return A.length?t/A.length/1024:0}},{key:"getScore",value:function(){var e=this;return new mZe((function(A,t){try{var n=e._getBandwidth(),r=0;n>0&&n<1e6&&(r=n<1?60*performance_speed:n<5?.4*(performance_speed-1)+6.01:.02*(performance_speed-5)+7.61),A({score:r,origin:n})}catch(i){A({score:0,origin:-1})}}))}}]),e}(),K1e=new U1e,x1e=function(e){return e.H264="h264",e.H265="h265",e}(x1e||{}),Y1e=K0e,P1e=function(e,A,t){return function(e,A,t){A in e?Y1e(e,A,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[A]=t}(e,"symbol"!==JJe(A)?A+"":A,t),t},H1e=function(){function e(A){pZe(this,e),P1e(this,"_origin"),P1e(this,"_codec"),this._codec=A}return yZe(e,[{key:"_getOrigin",value:function(){try{var e=localStorage.getItem("player_".concat(this._codec,"_fps"))||-1;return Number(e)}catch(A){return-1}}},{key:"getScore",value:function(){var e=this;return new mZe((function(A){var t=e._origin||e._getOrigin(),n=0;t>0&&t<=120&&(n=t<=30?.2*t:t<=60?.0533*(t-30)+6:.04*(t-60)+7.6),A({score:n,origin:t})}))}}]),e}(),J1e={plugins:{cpu:{cls:H0e,factor:8,plugins:{cpu_core_number:{factor:4,instance:e1e},decodeImg:{factor:3,instance:s1e}}},memory:{cls:J0e,factor:0,plugins:{copy:{factor:5,instance:Q1e},usage:{factor:5,instance:v1e}}},net:{cls:O0e,factor:9,plugins:{downlink:{factor:5,instance:m1e},performance:{factor:4,instance:K1e}}},render:{cls:X0e,factor:0,plugins:{avc:{factor:5,instance:new(function(e){B0e(t,H1e);var A=U0e(t);function t(e){return pZe(this,t),A.call(this,e)}return yZe(t)}())(x1e.H264)},hevc:{factor:5,instance:new(function(e){B0e(t,H1e);var A=U0e(t);function t(e){return pZe(this,t),A.call(this,e)}return yZe(t)}())(x1e.H265)}}}}},O1e=function(e){B0e(t,P0e);var A=U0e(t);function t(e){return pZe(this,t),A.call(this,HZe({},J1e,e))}return yZe(t,[{key:"setPlayer",value:function(e,A){var t,n;(null==(t=this.options.plugins.render)?void 0:t.instance)&&(null==(n=this.options.plugins.render)||n.instance.setPlayer(e,A))}}]),t}(),z1e="\t\n\v\f\r 聽釟€鈥€鈥佲€傗€冣€勨€呪€嗏€団€堚€夆€娾€仧銆€\u2028\u2029\ufeff",j1e=dTe,X1e=hUe,q1e=z1e,V1e=Ube("".replace),W1e=RegExp("^["+q1e+"]+"),Z1e=RegExp("(^|[^"+q1e+"])["+q1e+"]+$"),$1e=function(e){return function(A){var t=X1e(j1e(A));return 1&e&&(t=V1e(t,W1e,"")),2&e&&(t=V1e(t,Z1e,"$1")),t}},e2e={start:$1e(1),end:$1e(2),trim:$1e(3)},A2e=UPe.PROPER,t2e=Rbe,n2e=z1e,r2e=VNe,i2e=lD(e2e),o2e=function(e){return t2e((function(){return!!n2e[e]()||"鈥嬄呩爭"!=="鈥嬄呩爭"[e]()||A2e&&n2e[e].name!==e}))};r2e({target:"String",proto:!0,forced:o2e("trim")},{trim:function(){return i2e(this)}});var a2e=lD($Je("String")),s2e=STe,g2e=a2e,c2e=String.prototype,l2e=function(e){var A=lD(e);return"string"==typeof e||e===c2e||s2e(c2e,e)&&A===lD(c2e)?g2e:A},u2e=mbe(l2e),I2e=/ANGLE\s+\((?:[^,]+,\s+)?([^,/]+)?(?:[^,]*)(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,h2e=/ANGLE\s+\((?:[^,]+,\s+)?([^,]+)?(?:[,\s]+)(Direct\S+|OpenGL[\d.\s]+)/,C2e="OpenGL Engine",d2e="Unknow",E2e=4318,f2e=32902,B2e=4098,Q2e=function(e){return e.CpuDeriver="CpuDeriver",e.Intel="Intel",e.Nvidia="NVIDIA",e.Amd="AMD",e.Apple="Apple",e[e.Unknow=d2e]="Unknow",e}(Q2e||{});function p2e(e){return"NVIDIA"===e?E2e:"AMD"===e?B2e:"Intel"===e?f2e:0}function v2e(e){var A,t,n,r,i=function(e){var A=/(SwiftShader|Intel|NVIDIA|AMD|Radeon|Apple)/.exec(e);return A?"Radeon"===A[0]?"AMD":"SwiftShader"===A[0]?"CpuDeriver":A[0]:Q2e.Unknow}(e);return i===Q2e.Unknow||"CpuDeriver"===i?{vendor:i,vendorId:0,model:d2e,backupModel:d2e,api:d2e}:/^ANGLE/.test(e)?function(e,A){var t,n,r,i,o,a=d2e,s=d2e,g=d2e;return"Intel"!==e&&"NVIDIA"!==e||(t=I2e.exec(A)),"AMD"!==e&&"Apple"!==e||(t=h2e.exec(A)),(null==t?void 0:t[1])&&(null==t?void 0:t[2])&&(a=u2e(n=t[1].replace(/(AMD|NVIDIA)/,"")).call(n),g=u2e(r=t[2]).call(r)),s="Intel"===e?a=u2e(i=a.split(C2e)[0]).call(i):u2e(o=a.split(C2e)[0]).call(o),{vendor:e,vendorId:p2e(e),model:a,backupModel:s,api:g}}(i,e):"Intel"===i?{vendor:i,vendorId:p2e(i),model:u2e(n=e.split(C2e)[0]).call(n),backupModel:u2e(r=e.split(C2e)[0]).call(r),api:d2e}:{vendor:i,vendorId:p2e(i),model:u2e(A=e.replace(/(AMD|NVIDIA)/,"")).call(A),backupModel:u2e(t=e.split(C2e)[0].replace(/(AMD|NVIDIA)/,"")).call(t),api:d2e}}var y2e=wbe,m2e=Rbe,D2e=Ube,w2e=hUe,R2e=lD(e2e),k2e=z1e,S2e=y2e.parseInt,M2e=y2e.Symbol,G2e=M2e&&M2e.iterator,_2e=/^[+-]?0x/i,b2e=D2e(_2e.exec),T2e=8!==S2e(k2e+"08")||22!==S2e(k2e+"0x16")||G2e&&!m2e((function(){S2e(Object(G2e))}))?function(e,A){var t=R2e(w2e(e));return S2e(t,A>>>0||(b2e(_2e,t)?16:10))}:S2e;VNe({global:!0,forced:Uv!=T2e},{parseInt:T2e});var F2e=mbe(yTe.parseInt),N2e=wbe,L2e=Rbe,U2e=Ube,K2e=hUe,x2e=lD(e2e),Y2e=z1e,P2e=U2e("".charAt),H2e=N2e.parseFloat,J2e=N2e.Symbol,O2e=J2e&&J2e.iterator,z2e=1/H2e(Y2e+"-0")!=-1/0||O2e&&!L2e((function(){H2e(Object(O2e))}))?function(e){var A=x2e(K2e(e)),t=H2e(A);return 0===t&&"-"==P2e(A,0)?-0:t}:H2e;VNe({global:!0,forced:tD!=z2e},{parseFloat:z2e});var j2e=mbe(yTe.parseFloat),X2e="g_ven";function q2e(e,A){var t,n;return t=A===Q2e.Intel?r$e(n=e.split("\n")).call(n,(function(e){return"Intel(R) ".concat(e)})):e.split("\n"),r$e(t).call(t,(function(e){return e.split("|")}))}function V2e(e){return 0===e?0:-1===e?-1:j2e(Z0e(e).toFixed(2))}var W2e={AMD_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_am.txt",INTEL_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_int.txt",NVIDIA_PATH:"https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/db/_nvi.txt"},Z2e=[],$2e=[],e5e=[];function A5e(){return(A5e=QZe(fZe().mark((function e(A){var t,n,r;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A!==Q2e.Intel){e.next=4;break}if(!Z2e.length){e.next=3;break}return e.abrupt("return",Z2e);case 3:t=W2e.INTEL_PATH;case 4:if(A!==Q2e.Nvidia){e.next=8;break}if(!$2e.length){e.next=7;break}return e.abrupt("return",$2e);case 7:t=W2e.NVIDIA_PATH;case 8:if(A!==Q2e.Amd){e.next=12;break}if(!e5e.length){e.next=11;break}return e.abrupt("return",e5e);case 11:t=W2e.AMD_PATH;case 12:if(t){e.next=14;break}return e.abrupt("return",mZe.resolve([]));case 14:return e.prev=14,e.next=17,fetch(t).then((function(e){return e.text()}));case 17:return n=e.sent,r=q2e(n,A),A===Q2e.Intel&&(Z2e=r),A===Q2e.Nvidia&&($2e=r),A===Q2e.Amd&&(e5e=r),e.abrupt("return",r);case 25:e.prev=25,e.t0=e.catch(14);case 27:return e.abrupt("return",[]);case 28:case"end":return e.stop()}}),e,null,[[14,25]])})))).apply(this,arguments)}function t5e(e){return e?function(e){return A5e.apply(this,arguments)}(e.vendor).then((function(A){return function(e,A){var t=VZe(e).call(e,(function(e){return e[0]===A.model}));t.length||(t=VZe(e).call(e,(function(e){return e[0]===A.backupModel}))),t.length||A.vendor!==Q2e.Intel||/^Intel(R)/.test(A.model)||(t=VZe(e).call(e,(function(e){return e[0]==="Intel(R) "+A.model})));var n="-1";if(t.length){var r=t[0][1];n="-1"===r?"0":r}return F2e(n)}(A,e)})).then(V2e):mZe.resolve(0)}var n5e="";function r5e(){return n5e||(n5e=function(){try{var e=localStorage.getItem(X2e)||"";if(e)return e;var A,t=document.createElement("canvas").getContext("webgl");if(t)return(e=(A=t.getExtension("WEBGL_debug_renderer_info"))?t.getParameter(A.UNMASKED_RENDERER_WEBGL):"")&&localStorage.setItem(X2e,e),e}catch(n){}return""}())}function i5e(e){var A;try{A=v2e(e||o5e.getGPUVendor())}catch(t){return null}return A}var o5e=function(){function e(){pZe(this,e)}return yZe(e,null,[{key:"getGPUVendor",value:function(){return r5e()}},{key:"parseVendorAsync",value:function(e){var A=i5e(e);return A?t5e(A).then((function(e){return yze(yze({},A||{}),{},{score:e})})).catch((function(){return null})):mZe.resolve(null)}}]),e}();function a5e(){var e=!1;if("undefined"==typeof MediaSource||!MediaSource.isTypeSupported)return e;if(e=MediaSource.isTypeSupported('video/mp4;codecs="hev1.1.6.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.2.4.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.3.E.L120.90"')||MediaSource.isTypeSupported('video/mp4;codecs="hev1.4.10.L120.90"')){var A=i5e();e=!!A&&A.vendor!==Q2e.CpuDeriver}return e}var s5e=mbe(wze),g5e=mbe(Gze),c5e=mbe(qWe),l5e=mbe(dZe),u5e=VNe,I5e=qf(vxe),h5e=!0;"find"in[]&&qf(Qbe=Array(1)).call(Qbe,(function(){h5e=!1})),u5e({target:"Array",proto:!0,forced:h5e},{find:function(e){return I5e(this,e,arguments.length>1?arguments[1]:void 0)}});var C5e=qf($Je("Array")),d5e=STe,E5e=C5e,f5e=Array.prototype,B5e=function(e){var A=qf(e);return e===f5e||d5e(f5e,e)&&A===qf(f5e)?E5e:A},Q5e=mbe(B5e),p5e=vxe.some;VNe({target:"Array",proto:!0,forced:!TOe("some")},{some:function(e){return p5e(this,e,arguments.length>1?arguments[1]:void 0)}});var v5e=$Je("Array").some,y5e=STe,m5e=v5e,D5e=Array.prototype,w5e=function(e){var A=e.some;return e===D5e||y5e(D5e,e)&&A===D5e.some?m5e:A},R5e=mbe(w5e),k5e=VNe,S5e=Obe,M5e=zp(mUe),G5e=TOe,_5e=S5e(zp([])),b5e=!!_5e&&1/_5e([1],1,-0)<0;k5e({target:"Array",proto:!0,forced:b5e||!G5e("indexOf")},{indexOf:function(e){var A=arguments.length>1?arguments[1]:void 0;return b5e?_5e(this,e,A)||0:M5e(this,e,A)}});var T5e=zp($Je("Array")),F5e=STe,N5e=T5e,L5e=Array.prototype,U5e=function(e){var A=zp(e);return e===L5e||F5e(L5e,e)&&A===zp(L5e)?N5e:A},K5e=mbe(U5e),x5e=qTe,Y5e=TypeError,P5e=VNe,H5e=EFe,J5e=BUe,O5e=nLe,z5e=aLe,j5e=QOe,X5e=gLe,q5e=jLe,V5e=ILe,W5e=function(e,A){if(!delete e[A])throw Y5e("Cannot delete property "+x5e(A)+" of "+x5e(e))},Z5e=WLe("splice"),$5e=Math.max,e4e=Math.min;P5e({target:"Array",proto:!0,forced:!Z5e},{splice:function(e,A){var t,n,r,i,o,a,s=H5e(this),g=z5e(s),c=J5e(e,g),l=arguments.length;for(0===l?t=n=0:1===l?(t=0,n=g-c):(t=l-2,n=e4e($5e(O5e(A),0),g-c)),X5e(g+t-n),r=q5e(s,n),i=0;ig-n+t;i--)W5e(s,i-1)}else if(t>n)for(i=g-n;i>c;i--)a=i+t-1,(o=i+n-1)in s?s[a]=s[o]:W5e(s,a);for(i=0;i0&&t[1]||""}},{key:"getSecondMatch",value:function(e,A){var t=A.match(e);return t&&t.length>1&&t[2]||""}},{key:"matchAndReturnConst",value:function(e,A,t){if(e.test(A))return t}},{key:"getWindowsVersionName",value:function(e){switch(e){case"NT":return"NT";case"XP":case"NT 5.1":return"XP";case"NT 5.0":return"2000";case"NT 5.2":return"2003";case"NT 6.0":return"Vista";case"NT 6.1":return"7";case"NT 6.2":return"8";case"NT 6.3":return"8.1";case"NT 10.0":return"10";default:return}}},{key:"getMacOSVersionName",value:function(e){var A,t,n=r$e(A=o4e(t=e.split(".")).call(t,0,2)).call(A,(function(e){return F2e(e,10)||0}));if(n.push(0),10===n[0])switch(n[1]){case 5:return"Leopard";case 6:return"Snow Leopard";case 7:return"Lion";case 8:return"Mountain Lion";case 9:return"Mavericks";case 10:return"Yosemite";case 11:return"El Capitan";case 12:return"Sierra";case 13:return"High Sierra";case 14:return"Mojave";case 15:return"Catalina";default:return}}},{key:"getAndroidVersionName",value:function(e){var A,t,n=r$e(A=o4e(t=e.split(".")).call(t,0,2)).call(A,(function(e){return F2e(e,10)||0}));if(n.push(0),!(1===n[0]&&n[1]<5))return 1===n[0]&&n[1]<6?"Cupcake":1===n[0]&&n[1]>=6?"Donut":2===n[0]&&n[1]<2?"Eclair":2===n[0]&&2===n[1]?"Froyo":2===n[0]&&n[1]>2?"Gingerbread":3===n[0]?"Honeycomb":4===n[0]&&n[1]<1?"Ice Cream Sandwich":4===n[0]&&n[1]<4?"Jelly Bean":4===n[0]&&n[1]>=4?"KitKat":5===n[0]?"Lollipop":6===n[0]?"Marshmallow":7===n[0]?"Nougat":8===n[0]?"Oreo":9===n[0]?"Pie":void 0}},{key:"getVersionPrecision",value:function(e){return e.split(".").length}},{key:"compareVersions",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=e.getVersionPrecision(A),i=e.getVersionPrecision(t),o=Math.max(r,i),a=0,s=r$e(e).call(e,[A,t],(function(A){var t,n=o-e.getVersionPrecision(A),r=A+new Array(n+1).join(".0");return c5e(t=r$e(e).call(e,r.split("."),(function(e){return new Array(20-e.length).join("0")+e}))).call(t)}));for(n&&(a=o-Math.min(r,i)),o-=1;o>=a;){if(s[0][o]>s[1][o])return 1;if(s[0][o]===s[1][o]){if(o===a)return 0;o-=1}else if(s[0][o]1?i-1:0),a=1;a=3},describe:function(){return{type:g4e.tablet}}},{test:function(e){return"android"===e.getOSName(!0)},describe:function(){return{type:g4e.mobile}}},{test:function(e){return"macos"===e.getOSName(!0)},describe:function(){return{type:g4e.desktop,vendor:"Apple"}}},{test:function(e){return"windows"===e.getOSName(!0)},describe:function(){return{type:g4e.desktop}}},{test:function(e){return"linux"===e.getOSName(!0)},describe:function(){return{type:g4e.desktop}}},{test:function(e){return"playstation 4"===e.getOSName(!0)},describe:function(){return{type:g4e.tv}}},{test:function(e){return"roku"===e.getOSName(!0)},describe:function(){return{type:g4e.tv}}}],E4e=[{test:function(e){return"microsoft edge"===e.getBrowserName(!0)},describe:function(e){if(/\sedg\//i.test(e))return{name:l4e.Blink};var A=u4e.getFirstMatch(/edge\/(\d+(\.?_?\d+)+)/i,e);return{name:l4e.EdgeHTML,version:A}}},{test:[/trident/i],describe:function(e){var A={name:l4e.Trident},t=u4e.getFirstMatch(/trident\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){return e.test(/presto/i)},describe:function(e){var A={name:l4e.Presto},t=u4e.getFirstMatch(/presto\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:function(e){var A=e.test(/gecko/i),t=e.test(/like gecko/i);return A&&!t},describe:function(e){var A={name:l4e.Gecko},t=u4e.getFirstMatch(/gecko\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}},{test:[/(apple)?webkit\/537\.36/i],describe:function(){return{name:l4e.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var A={name:l4e.WebKit},t=u4e.getFirstMatch(/webkit\/(\d+(\.?_?\d+)+)/i,e);return t&&(A.version=t),A}}],f4e=function(){function e(A){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(pZe(this,e),null==A||""===A)throw new Error("UserAgent parameter can't be empty");this._ua=A,this.parsedResult={},!0!==t&&this.parse()}return yZe(e,[{key:"getUA",value:function(){return this._ua}},{key:"test",value:function(e){return e.test(this._ua)}},{key:"parseBrowser",value:function(){var e=this;this.parsedResult.browser={};var A=Q5e(u4e).call(u4e,h4e,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return R5e(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.browser=A.describe(this.getUA())),this.parsedResult.browser}},{key:"getBrowser",value:function(){return this.parsedResult.browser?this.parsedResult.browser:this.parseBrowser()}},{key:"getBrowserName",value:function(e){return e?String(this.getBrowser().name).toLowerCase()||"":this.getBrowser().name||""}},{key:"getBrowserVersion",value:function(){return this.getBrowser().version}},{key:"getOS",value:function(){return this.parsedResult.os?this.parsedResult.os:this.parseOS()}},{key:"parseOS",value:function(){var e=this;this.parsedResult.os={};var A=Q5e(u4e).call(u4e,C4e,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return R5e(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.os=A.describe(this.getUA())),this.parsedResult.os}},{key:"getOSName",value:function(e){var A=this.getOS().name;return e?String(A).toLowerCase()||"":A||""}},{key:"getOSVersion",value:function(){return this.getOS().version}},{key:"getPlatform",value:function(){return this.parsedResult.platform?this.parsedResult.platform:this.parsePlatform()}},{key:"getPlatformType",value:function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],A=this.getPlatform().type;return e?String(A).toLowerCase()||"":A||""}},{key:"parsePlatform",value:function(){var e=this;this.parsedResult.platform={};var A=Q5e(u4e).call(u4e,d4e,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return R5e(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.platform=A.describe(this.getUA())),this.parsedResult.platform}},{key:"getEngine",value:function(){return this.parsedResult.engine?this.parsedResult.engine:this.parseEngine()}},{key:"getEngineName",value:function(e){return e?String(this.getEngine().name).toLowerCase()||"":this.getEngine().name||""}},{key:"parseEngine",value:function(){var e=this;this.parsedResult.engine={};var A=Q5e(u4e).call(u4e,E4e,(function(A){if("function"==typeof A.test)return A.test(e);var t;if(A.test instanceof Array)return R5e(t=A.test).call(t,(function(A){return e.test(A)}));throw new Error("Browser's test function is not valid")}));return A&&(this.parsedResult.engine=A.describe(this.getUA())),this.parsedResult.engine}},{key:"parse",value:function(){return this.parseBrowser(),this.parseOS(),this.parsePlatform(),this.parseEngine(),this}},{key:"getResult",value:function(){return u4e.assign({},this.parsedResult)}},{key:"satisfies",value:function(e){var A=this,t={},n=0,r={},i=0,o=wZe(e);if(DZe(o).call(o,(function(A){var o=e[A];"string"==typeof o?(r[A]=o,i+=1):"object"===JJe(o)&&(t[A]=o,n+=1)})),n>0){var a=wZe(t),s=Q5e(u4e).call(u4e,a,(function(e){return A.isOS(e)}));if(s){var g=this.satisfies(t[s]);if(void 0!==g)return g}var c=Q5e(u4e).call(u4e,a,(function(e){return A.isPlatform(e)}));if(c){var l=this.satisfies(t[c]);if(void 0!==l)return l}}if(i>0){var u=wZe(r),I=Q5e(u4e).call(u4e,u,(function(e){return A.isBrowser(e,!0)}));if(void 0!==I)return this.compareVersion(r[I])}}},{key:"isBrowser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),r=u4e.getBrowserTypeByAlias(n);return A&&r&&(n=r.toLowerCase()),n===t}},{key:"compareVersion",value:function(e){var A=[0],t=e,n=!1,r=this.getBrowserVersion();if("string"==typeof r)return">"===e[0]||"<"===e[0]?(t=e.substr(1),"="===e[1]?(n=!0,t=e.substr(2)):A=[],">"===e[0]?A.push(1):A.push(-1)):"="===e[0]?t=e.substr(1):"~"===e[0]&&(n=!0,t=e.substr(1)),K5e(A).call(A,u4e.compareVersions(r,t,n))>-1}},{key:"isOS",value:function(e){return this.getOSName(!0)===String(e).toLowerCase()}},{key:"isPlatform",value:function(e){return this.getPlatformType(!0)===String(e).toLowerCase()}},{key:"isEngine",value:function(e){return this.getEngineName(!0)===String(e).toLowerCase()}},{key:"is",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.isBrowser(e,A)||this.isOS(e)||this.isPlatform(e)}},{key:"some",value:function(){var e=this,A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return R5e(A).call(A,(function(A){return e.is(A)}))}}]),e}(),B4e=function(){function e(){pZe(this,e)}return yZe(e,null,[{key:"getParser",value:function(e){var A=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if("string"!=typeof e)throw new Error("UserAgent should be a string");return new f4e(e,A)}},{key:"parse",value:function(e){return new f4e(e).getResult()}},{key:"BROWSER_MAP",get:function(){return s4e}},{key:"ENGINE_MAP",get:function(){return l4e}},{key:"OS_MAP",get:function(){return c4e}},{key:"PLATFORMS_MAP",get:function(){return g4e}}]),e}(),Q4e=function(){function e(A){pZe(this,e),pze(this,"featureList",void 0),pze(this,"videoType",void 0),this.videoType=A.type||P$e.VOD,this.featureList=yze(yze(yze(yze({deviceId:null==A?void 0:A.deviceId,userId:null==A?void 0:A.userId,playerVersion:null==A?void 0:A.playerVersion},this.initSync()),this.getGPUInfo()),this.getLocalDeviceMarkInfo()),this.getH265FeatureList())}var A;return yZe(e,[{key:"initSync",value:function(){return yze({},this.getBrowserInfo())}},{key:"updateFeatureList",value:function(e){return this.featureList=yze(yze({},this.featureList),e)}},{key:"getFeatureList",value:function(){return this.featureList}},{key:"getH265FeatureList",value:function(){return{isHevcSupported:a5e()}}},{key:"getLocalDeviceMarkInfo",value:function(){var e=F$e(this.videoType===P$e.LIVE?q$e:X$e),A={cpuScore:-1,netScore:-1,renderScore:-1};if(!e)return A;try{var t=JSON.parse(e);return{cpuScore:t.cpuScore,netScore:t.netScore,renderScore:t.renderScore}}catch(n){}return A}},{key:"getDeviceMarkInfoAsync",value:(A=QZe(fZe().mark((function e(){var A,t,n,r,i,o;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return A=new O1e({}),e.next=3,A.getScore();case 3:if(e.t0=e.sent,e.t0){e.next=6;break}e.t0={};case 6:return t=e.t0,n=t.cpu,r=t.net,i=t.render,o={cpuScore:(null==n?void 0:n.score)||-1,netScore:(null==r?void 0:r.score)||-1,renderScore:(null==i?void 0:i.score)||-1},T$e(this.videoType===P$e.LIVE?q$e:X$e,MZe(o)),this.updateFeatureList(o),e.abrupt("return",o);case 14:case"end":return e.stop()}}),e,this)}))),function(){return A.apply(this,arguments)})},{key:"getBrowserInfo",value:function(){var e=B4e.getParser(navigator.userAgent);return{browserVersion:e.getBrowserVersion(),browserName:e.getBrowserName(),cpuCore:navigator.hardwareConcurrency,osName:e.getOSName(),osVersion:e.getOSVersion(),platformType:e.getPlatformType(),engineName:e.getEngineName()}}},{key:"getGPUInfo",value:function(){try{var e=yP.parseVendor(),A=yP.getGPUVendor(),t=R$e(A).call(A,"SwiftShader");return{gpuScore:(null==e?void 0:e.score)||-1,isCloseGPU:t}}catch(n){return{gpuScore:-1,isCloseGPU:!1}}}}]),e}(),p4e={exports:{}},v4e=Rbe((function(){if("function"==typeof ArrayBuffer){var e=new ArrayBuffer(8);_Y(e)&&Iy(e,"a",{value:8})}})),y4e=vTe,m4e=Pbe,D4e=v4e,w4e=_Y,R4e=Rbe((function(){w4e(1)}))||D4e?function(e){return!!y4e(e)&&(!D4e||"ArrayBuffer"!=m4e(e))&&(!w4e||w4e(e))}:w4e,k4e=!Rbe((function(){return _Y(KY({}))})),S4e=VNe,M4e=Ube,G4e=DUe,_4e=vTe,b4e=QFe,T4e=BNe.f,F4e=sKe,N4e=uKe,L4e=R4e,U4e=k4e,K4e=!1,x4e=DFe("meta"),Y4e=0,P4e=function(e){T4e(e,x4e,{value:{objectID:"O"+Y4e++,weakData:{}}})},H4e=p4e.exports={enable:function(){H4e.enable=function(){},K4e=!0;var e=F4e.f,A=M4e(Cv([])),t={};t[x4e]=1,e(t).length&&(F4e.f=function(t){for(var n=e(t),r=0,i=n.length;r1?arguments[1]:void 0);A=A?A.next:t.first;)for(n(A.value,A.key,this);A&&A.removed;)A=A.previous},has:function(e){return!!s(this,e)}}),c3e(i,t?{get:function(e){var A=s(this,e);return A&&A.value},set:function(e,A){return a(this,0===e?0:e,A)}}:{add:function(e){return a(this,e=0===e?0:e,e)}}),f3e&&g3e(i,"size",{configurable:!0,get:function(){return o(this).size}}),r},setStrong:function(e,A,t){var n=A+" Iterator",r=p3e(A),i=p3e(n);C3e(e,A,(function(e,A){Q3e(this,{type:n,target:e,state:r(e),kind:A,last:void 0})}),(function(){for(var e=i(this),A=e.kind,t=e.last;t&&t.removed;)t=t.previous;return e.target&&(e.last=t=t?t.next:e.state.first)?d3e("keys"==A?t.key:"values"==A?t.value:[t.key,t.value],!1):(e.target=void 0,d3e(void 0,!0))}),t?"entries":"values",!t,!0),E3e(A)}},y3e=function(e,A,t){var n,r=-1!==zp(e).call(e,"Map"),i=-1!==zp(e).call(e,"Weak"),o=r?"set":"add",a=z4e[e],s=a&&a.prototype,g={};if(n3e&&Z4e(a)&&(i||s.forEach&&!X4e((function(){var e;PK(e=new a).call(e).next()})))){var c=(n=A((function(A,t){r3e(W4e(A,c),{type:e,collection:new a}),null!=t&&V4e(t,A[o],{that:A,AS_ENTRIES:r})}))).prototype,l=i3e(e);t3e(["add","clear","delete","forEach","get","has","set","keys","values","entries"],(function(e){var A="add"==e||"set"==e;!(e in s)||i&&"clear"==e||q4e(c,e,(function(t,n){var r=l(this).collection;if(!A&&i&&!$4e(t))return"get"==e&&void 0;var o=r[e](0===t?0:t,n);return A?this:o}))})),i||A3e(c,"size",{configurable:!0,get:function(){return l(this).collection.size}})}else n=t.getConstructor(A,e,r,o),j4e.enable();return e3e(n,e,!1,!0),g[e]=n,O4e({global:!0,forced:!0},g),i||t.setStrong(n,e,r),n};y3e("Map",(function(e){return function(){return e(this,arguments.length?arguments[0]:void 0)}}),v3e);var m3e=yTe.Map,D3e=fNe,w3e=eTe,R3e=$Te,k3e=uXe,S3e=ITe,M3e=Gje,G3e=[].push,_3e=function(e){var A,t,n,r,i=arguments.length,o=i>1?arguments[1]:void 0;return k3e(this),(A=void 0!==o)&&R3e(o),S3e(e)?new this:(t=[],A?(n=0,r=D3e(o,i>2?arguments[2]:void 0),M3e(e,(function(e){w3e(G3e,t,r(e,n++))}))):M3e(e,G3e,{that:t}),new this(t))};VNe({target:"Map",stat:!0,forced:!0},{from:_3e});var b3e=zYe,T3e=function(){return new this(b3e(arguments))};VNe({target:"Map",stat:!0,forced:!0},{of:T3e});var F3e=qTe,N3e=function(e){if("object"==wc(e)&&"size"in e&&"has"in e&&"get"in e&&"set"in e&&"delete"in e&&"entries"in e)return e;throw TypeError(F3e(e)+" is not a map")},L3e=function(e,A){return 1==A?function(A,t){return A[e](t)}:function(A,t,n){return A[e](t,n)}},U3e=kTe("Map"),K3e={Map:U3e,set:L3e("set",2),get:L3e("get",1),has:L3e("has",1),remove:L3e("delete",1),proto:U3e.prototype},x3e=N3e,Y3e=K3e.remove;VNe({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,A=x3e(this),t=!0,n=0,r=arguments.length;n1?arguments[1]:void 0);return!1!==W3e(A,(function(e,n){if(!t(e,n,A))return!1}),!0)}});var Z3e=fNe,$3e=N3e,e6e=X3e,A6e=K3e.Map,t6e=K3e.set;VNe({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var A=$3e(this),t=Z3e(e,arguments.length>1?arguments[1]:void 0),n=new A6e;return e6e(A,(function(e,r){t(e,r,A)&&t6e(n,r,e)})),n}});var n6e=fNe,r6e=N3e,i6e=X3e;VNe({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var A=r6e(this),t=n6e(e,arguments.length>1?arguments[1]:void 0),n=i6e(A,(function(e,n){if(t(e,n,A))return{value:e}}),!0);return n&&n.value}});var o6e=fNe,a6e=N3e,s6e=X3e;VNe({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var A=a6e(this),t=o6e(e,arguments.length>1?arguments[1]:void 0),n=s6e(A,(function(e,n){if(t(e,n,A))return{key:n}}),!0);return n&&n.key}});var g6e=VNe,c6e=$Te,l6e=dTe,u6e=Gje,I6e=K3e.Map,h6e=K3e.has,C6e=K3e.get,d6e=K3e.set,E6e=Ube([].push);g6e({target:"Map",stat:!0,forced:!0},{groupBy:function(e,A){l6e(e),c6e(A);var t=new I6e,n=0;return u6e(e,(function(e){var r=A(e,n++);h6e(t,r)?E6e(C6e(t,r),e):d6e(t,r,[e])})),t}});var f6e=function(e,A){return e===A||e!=e&&A!=A},B6e=N3e,Q6e=X3e;VNe({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===Q6e(B6e(this),(function(A){if(f6e(A,e))return!0}),!0)}});var p6e=eTe,v6e=Gje,y6e=qbe,m6e=$Te,D6e=K3e.Map;VNe({target:"Map",stat:!0,forced:!0},{keyBy:function(e,A){var t=new(y6e(this)?this:D6e);m6e(A);var n=m6e(t.set);return v6e(e,(function(e){p6e(n,t,A(e),e)})),t}});var w6e=N3e,R6e=X3e;VNe({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var A=R6e(w6e(this),(function(A,t){if(A===e)return{key:t}}),!0);return A&&A.key}});var k6e=fNe,S6e=N3e,M6e=X3e,G6e=K3e.Map,_6e=K3e.set;VNe({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var A=S6e(this),t=k6e(e,arguments.length>1?arguments[1]:void 0),n=new G6e;return M6e(A,(function(e,r){_6e(n,t(e,r,A),e)})),n}});var b6e=fNe,T6e=N3e,F6e=X3e,N6e=K3e.Map,L6e=K3e.set;VNe({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var A=T6e(this),t=b6e(e,arguments.length>1?arguments[1]:void 0),n=new N6e;return F6e(A,(function(e,r){L6e(n,r,t(e,r,A))})),n}});var U6e=N3e,K6e=Gje,x6e=K3e.set;VNe({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var A=U6e(this),t=arguments.length,n=0;n1?arguments[1]:void 0);return!0===j6e(A,(function(e,n){if(t(e,n,A))return!0}),!0)}});var X6e=$Te,q6e=N3e,V6e=TypeError,W6e=K3e.get,Z6e=K3e.has,$6e=K3e.set;VNe({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,A){var t=q6e(this),n=arguments.length;X6e(A);var r=Z6e(t,e);if(!r&&n<3)throw V6e("Updating absent value");var i=r?W6e(t,e):X6e(n>2?arguments[2]:void 0)(e,t);return $6e(t,e,A(i,e,t)),t}});var e8e=eTe,A8e=$Te,t8e=qbe,n8e=mNe,r8e=TypeError,i8e=function(e,A){var t,n=n8e(this),r=A8e(n.get),i=A8e(n.has),o=A8e(n.set),a=arguments.length>2?arguments[2]:void 0;if(!t8e(A)&&!t8e(a))throw r8e("At least one callback required");return e8e(i,n,e)?(t=e8e(r,n,e),t8e(A)&&(t=A(t),e8e(o,n,e,t))):t8e(a)&&(t=a(),e8e(o,n,e,t)),t};VNe({target:"Map",proto:!0,real:!0,forced:!0},{upsert:i8e}),VNe({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:i8e});var o8e=mbe(m3e),a8e=mNe,s8e=Eje,g8e=fNe,c8e=eTe,l8e=EFe,u8e=function(e,A,t,n){try{return n?A(a8e(t)[0],t[1]):A(t)}catch(r){s8e(e,"throw",r)}},I8e=eje,h8e=xLe,C8e=aLe,d8e=ILe,E8e=Ije,f8e=oje,B8e=Array,Q8e=function(e){var A=l8e(e),t=h8e(this),n=arguments.length,r=n>1?arguments[1]:void 0,i=void 0!==r;i&&(r=g8e(r,n>2?arguments[2]:void 0));var o,a,s,g,c,l,u=f8e(A),I=0;if(!u||this===B8e&&I8e(u))for(o=C8e(A),a=t?new this(o):B8e(o);o>I;I++)l=i?r(A[I],I):A[I],d8e(a,I,l);else for(c=(g=E8e(A,u)).next,a=t?new this:[];!(s=c8e(c,g)).done;I++)l=i?u8e(g,r,[s.value,I],!0):s.value,d8e(a,I,l);return a.length=I,a},p8e=VNe,v8e=Q8e,y8e=!YVe((function(e){nm(e)}));p8e({target:"Array",stat:!0,forced:y8e},{from:v8e});var m8e=mbe(yTe.Array.from),D8e=jY($Je("Array")),w8e=vLe,R8e=QFe,k8e=STe,S8e=D8e,M8e=Array.prototype,G8e={DOMTokenList:!0,NodeList:!0},_8e=function(e){var A=jY(e);return e===M8e||k8e(M8e,e)&&A===jY(M8e)||R8e(G8e,w8e(e))?S8e:A},b8e=mbe(_8e),T8e=function(){function e(A){pZe(this,e),pze(this,"ctx",void 0),pze(this,"strategyMap",new o8e),this.ctx=A}return yZe(e,[{key:"registerStrategy",value:function(e){var A;return!(null==e||null===(A=e.Strategy)||void 0===A||!A.strategyName||(this.strategyMap.get(e.Strategy.strategyName)||this.strategyMap.set(e.Strategy.strategyName,{inst:new e.Strategy({ctx:this.ctx,config:e.config,strategyName:e.Strategy.strategyName,strategyCenter:this})}),0))}},{key:"getStrategyInstByName",value:function(e){var A;return e&&null!==(A=this.strategyMap.get(e))&&void 0!==A&&A.inst?this.strategyMap.get(e).inst:null}},{key:"getStrategyList",value:function(){var e,A;return r$e(e=m8e(b8e(A=this.strategyMap).call(A))).call(e,(function(e){return e.inst}))}},{key:"getStrategyByName",value:function(e){return e&&this.strategyMap.get(e)?this.strategyMap.get(e):null}},{key:"registerAlgorithm",value:function(){}},{key:"getStrategyInstByNameAsync",value:function(){}},{key:"loadStrategySrcAsync",value:function(){}}]),e}(),F8e=function(){function e(A){pZe(this,e),pze(this,"inst",void 0),this.inst=A.inst}return yZe(e,[{key:"getInst",value:function(){return this.inst}},{key:"getPlayerConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.playerConfig}},{key:"getStrategyConfig",value:function(){var e;return null===(e=this.inst)||void 0===e?void 0:e.strategyConfig}}]),e}(),N8e=function(){function e(){pZe(this,e),pze(this,"players",void 0),this.players=new o8e}return yZe(e,[{key:"get",value:function(e){return this.players.get(e)}},{key:"addPlayer",value:function(e,A){return!(!e||this.players.get(e)||(this.players.set(e,new F8e(A)),0))}},{key:"getPlayerList",value:function(){var e;return m8e(b8e(e=this.players).call(e))}},{key:"removePlayer",value:function(e){return!(!e||!this.players.get(e)||(this.players.delete(e),0))}}]),e}();!function(){function e(A){pZe(this,e),pze(this,"strategyCenter",void 0),pze(this,"ctx",void 0),pze(this,"config",void 0),pze(this,"player",void 0),pze(this,"strategyName",void 0),this.ctx=A.ctx,this.config=A.config,this.strategyName=A.strategyName,this.strategyCenter=A.strategyCenter,this.player=null}yZe(e,[{key:"getStrategyConfig",value:function(){return this.config}},{key:"setPlayerInst",value:function(e){this.player=e.getInst()}},{key:"beforePlayerCreate",value:function(e){}},{key:"onPlayerEvent",value:function(e,A){}},{key:"onGlobalEvent",value:function(e,A){}}])}();var L8e=function(){function e(A){pZe(this,e),pze(this,"tracker",void 0),pze(this,"_tea",void 0),pze(this,"ctx",void 0),pze(this,"options",void 0),this.ctx=A.cxt,this.options=A,this.initTracker(A),this.bindABVersion()}return yZe(e,[{key:"bindTrackerABVersion",value:function(e){var A,t,n,r=this;!this._tea&&e&&null!==(A=this.options)&&void 0!==A&&null!==(A=A.trackInfo)&&void 0!==A&&A.enableABVersion&&(this._tea=e,null===(t=this._tea)||void 0===t||null===(n=t.filterEvent)||void 0===n||n.call(t,(function(e){var A,t;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(t=DZe(A))||void 0===t||t.call(A,(function(e){var A,t,n,i=((null===(A=r.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;!i||!e||null!==(t=e.ab_sdk_version)&&void 0!==t&&R$e(t).call(t,i)||(e.ab_sdk_version=e.ab_sdk_version?qZe(n="".concat(e.ab_sdk_version,",")).call(n,i):"".concat(i))})),e})))}},{key:"track",value:function(e,A){var t,n;"function"==typeof this.tracker?this.tracker(e,A):null===(t=this.tracker)||void 0===t||null===(n=t.event)||void 0===n||n.call(t,e,A)}},{key:"initTracker",value:function(e){var A,t;if(R$e(A=[P$e.LIVE,P$e.VOD]).call(A,e.type)&&null!==(t=e.trackInfo)&&void 0!==t&&t.Collector&&"undefined"!=typeof window){var n="__vestrategy_".concat(e.type,"_tracker__");if(!window[n]){this.tracker=window[n]=new e.trackInfo.Collector("".concat(e.type,"_tracker")),this.tracker.init({app_id:e.appId,channel:e.channel||H$e.CN,log:!1,disable_sdk_monitor:!0});var r=yze({play_type:e.type===P$e.VOD?0:1,line_app_id:e.lineAppId,line_user_id:e.lineUserId},L$e(this.ctx.featureCenter.getFeatureList()));return this.tracker.config(yze(yze({},r),{},{user_unique_id:e.lineUserId,disable_auto_pv:!0})),void this.tracker.start()}this.tracker=window[n]}}},{key:"bindABVersion",value:function(){var e,A,t=this;this.tracker&&(null===(e=this.tracker)||void 0===e||null===(A=e.filterEvent)||void 0===A||A.call(e,(function(e){var A,n;return null==e||null===(A=e[0])||void 0===A||null===(A=A.events)||void 0===A||null===(n=DZe(A))||void 0===n||n.call(A,(function(e){var A,n=((null===(A=t.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}).libra_ab_version;n&&e&&(e.ab_sdk_version="".concat(n))})),e})))}}]),e}();VNe({target:"Array",stat:!0},{isArray:ZNe});var U8e,K8e=mbe(yTe.Array.isArray),x8e=function(e){return e.Equal="锛�",e.NotEqual="鈮�",e.Greater=">",e.GreaterOrEqual="鈮�",e.Less="<",e.LessOrEqual="鈮�",e}(x8e||{}),Y8e=(pze(U8e={},"锛�",{validate:function(e,A){var t;return K8e(b8e(e))?R$e(t=b8e(e)).call(t,A):b8e(e)===A}}),pze(U8e,"鈮�",{validate:function(e,A){var t;return K8e(b8e(e))?!R$e(t=b8e(e)).call(t,A):b8e(e)!==A}}),pze(U8e,">",{validate:function(e,A){return!K8e(b8e(e))&&"boolean"!=typeof b8e(e)&&A>b8e(e)}}),pze(U8e,"鈮�",{validate:function(e,A){return!K8e(b8e(e))&&"boolean"!=typeof b8e(e)&&A>=b8e(e)}}),pze(U8e,"<",{validate:function(e,A){return!K8e(b8e(e))&&"boolean"!=typeof b8e(e)&&Aa;)t=r[a++],z8e&&!(i?t in n:Z8e(n,t))||$8e(s,e?[t,n[t]]:n[t]);return s}},t7e={entries:A7e(!0),values:A7e(!1)},n7e=VNe,r7e=jY(t7e);n7e({target:"Object",stat:!0},{values:function(e){return r7e(e)}});var i7e=mbe(jY(yTe.Object)),o7e=zv($Je("Array")),a7e=vLe,s7e=QFe,g7e=STe,c7e=o7e,l7e=Array.prototype,u7e={DOMTokenList:!0,NodeList:!0},I7e=function(e){var A=zv(e);return e===l7e||g7e(l7e,e)&&A===zv(l7e)||s7e(u7e,a7e(e))?c7e:A},h7e=mbe(I7e),C7e={exports:{}};!function(e,A){var t="__lodash_hash_undefined__",n=9007199254740991,r="[object Arguments]",i="[object AsyncFunction]",o="[object Function]",a="[object GeneratorFunction]",s="[object Null]",g="[object Object]",c="[object Proxy]",l="[object Undefined]",u=/^\[object .+?Constructor\]$/,I=/^(?:0|[1-9]\d*)$/,h={};h["[object Float32Array]"]=h["[object Float64Array]"]=h["[object Int8Array]"]=h["[object Int16Array]"]=h["[object Int32Array]"]=h["[object Uint8Array]"]=h["[object Uint8ClampedArray]"]=h["[object Uint16Array]"]=h["[object Uint32Array]"]=!0,h[r]=h["[object Array]"]=h["[object ArrayBuffer]"]=h["[object Boolean]"]=h["[object DataView]"]=h["[object Date]"]=h["[object Error]"]=h[o]=h["[object Map]"]=h["[object Number]"]=h[g]=h["[object RegExp]"]=h["[object Set]"]=h["[object String]"]=h["[object WeakMap]"]=!1;var C,d,E,f="object"==JJe(ybe)&&ybe&&ybe.Object===Object&&ybe,B="object"==("undefined"==typeof self?"undefined":JJe(self))&&self&&self.Object===Object&&self,Q=f||B||Function("return this")(),p=A&&!A.nodeType&&A,v=p&&e&&!e.nodeType&&e,y=v&&v.exports===p,m=y&&f.process,D=function(){try{return v&&v.require&&v.require("util").types||m&&m.binding&&m.binding("util")}catch(e){}}(),w=D&&D.isTypedArray,R=Array.prototype,k=Function.prototype,S=Object.prototype,M=Q["__core-js_shared__"],G=k.toString,_=S.hasOwnProperty,b=(C=/[^.]+$/.exec(M&&h7e(M)&&h7e(M).IE_PROTO||""))?"Symbol(src)_1."+C:"",T=S.toString,F=G.call(Object),N=RegExp("^"+G.call(_).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),L=y?Q.Buffer:void 0,U=Q.Symbol,K=Q.Uint8Array,x=(L&&L.allocUnsafe,d=g5e,E=Object,function(e){return d(E(e))}),Y=s5e,P=S.propertyIsEnumerable,H=o4e(R),J=U?U.toStringTag:void 0,O=function(){try{var e=le(Object,"defineProperty");return e({},"",{}),e}catch(A){}}(),z=L?L.isBuffer:void 0,j=Math.max,X=Y$e,q=le(Q,"Map"),V=le(Object,"create"),W=function(){function e(){}return function(A){if(!we(A))return{};if(Y)return Y(A);e.prototype=A;var t=new e;return e.prototype=void 0,t}}();function Z(e){var A=-1,t=null==e?0:e.length;for(this.clear();++A-1},$.prototype.set=function(e,A){var t=this.__data__,n=re(t,e);return n<0?(++this.size,t.push([e,A])):t[n][1]=A,this},ee.prototype.clear=function(){this.size=0,this.__data__={hash:new Z,map:new(q||$),string:new Z}},ee.prototype.delete=function(e){var A=ce(this,e).delete(e);return this.size-=A?1:0,A},ee.prototype.get=function(e){return ce(this,e).get(e)},ee.prototype.has=function(e){return ce(this,e).has(e)},ee.prototype.set=function(e,A){var t=ce(this,e),n=t.size;return t.set(e,A),this.size+=t.size==n?0:1,this},Ae.prototype.clear=function(){this.__data__=new $,this.size=0},Ae.prototype.delete=function(e){var A=this.__data__,t=A.delete(e);return this.size=A.size,t},Ae.prototype.get=function(e){return this.__data__.get(e)},Ae.prototype.has=function(e){return this.__data__.has(e)},Ae.prototype.set=function(e,A){var t=this.__data__;if(t instanceof $){var n=t.__data__;if(!q||n.length<199)return n.push([e,A]),this.size=++t.size,this;t=this.__data__=new ee(n)}return t.set(e,A),this.size=t.size,this};function oe(e){return null==e?void 0===e?l:s:J&&J in Object(e)?function(e){var A=_.call(e,J),t=e[J];try{e[J]=void 0;var n=!0}catch(i){}var r=T.call(e);return n&&(A?e[J]=t:delete e[J]),r}(e):(A=e,T.call(A));var A}function ae(e){return Re(e)&&oe(e)==r}function se(e,A,t,n,r){e!==A&&function(e,A,t){for(var n=-1,r=Object(e),i=t(e),o=i.length;o--;){var a=i[++n];if(!1===A(r[a],a,r))break}}(A,(function(i,o){if(r||(r=new Ae),we(i))!function(e,A,t,n,r,i,o){var a=he(e,t),s=he(A,t),c=o.get(s);if(c)te(e,t,c);else{var l,u,I,h,C,d,E=i?i(a,s,t+"",e,A,o):void 0,f=void 0===E;if(f){var B=pe(s),Q=!B&&ye(s),p=!B&&!Q&&ke(s);E=s,B||Q||p?pe(a)?E=a:Re(d=a)&&ve(d)?E=function(e,A){var t=-1,n=e.length;for(A||(A=Array(n));++t-1&&e%1==0&&e0){if(++de>=800)return arguments[0]}else de=0;return Ce.apply(void 0,arguments)});function Be(e,A){return e===A||e!=e&&A!=A}var Qe=ae(function(){return arguments}())?ae:function(e){return Re(e)&&_.call(e,"callee")&&!P.call(e,"callee")},pe=K8e;function ve(e){return null!=e&&De(e.length)&&!me(e)}var ye=z||function(){return!1};function me(e){if(!we(e))return!1;var A=oe(e);return A==o||A==a||A==i||A==c}function De(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=n}function we(e){var A=JJe(e);return null!=e&&("object"==A||"function"==A)}function Re(e){return null!=e&&"object"==JJe(e)}var ke=w?function(e){return function(A){return e(A)}}(w):function(e){return Re(e)&&De(e.length)&&!!h[oe(e)]};function Se(e){return ve(e)?function(e,A){var t=pe(e),n=!t&&Qe(e),r=!t&&!n&&ye(e),i=!t&&!n&&!r&&ke(e),o=t||n||r||i,a=o?function(e,A){for(var t=-1,n=Array(e);++t1?A[n-1]:void 0,i=n>2?A[2]:void 0;for(r=Me.length>3&&"function"==typeof r?(n--,r):void 0,i&&function(e,A,t){if(!we(t))return!1;var n=JJe(A);return!!("number"==n?ve(t)&&ue(A,t.length):"string"==n&&A in t)&&Be(t[A],e)}(A[0],A[1],i)&&(r=n<3?void 0:r,n=1),e=Object(e);++t0;)e[n]=e[--n];n!==i++&&(e[n]=t)}return e},m7e=function(e,A,t,n){for(var r=A.length,i=t.length,o=0,a=0;o0?arguments[0]:void 0));M7e||(this.size=PK(e).length)},F9e=T9e.prototype;if(T7e(F9e,{append:function(e,A){var t=t9e(this);V7e(arguments.length,2),E9e(PK(t),{key:O7e(e),value:O7e(A)}),M7e||this.length++,t.updateURL()},delete:function(e){for(var A=t9e(this),t=V7e(arguments.length,1),n=PK(A),r=O7e(e),i=t<2?void 0:arguments[1],o=void 0===i?i:O7e(i),a=0;aA.key?1:-1})),e.updateURL()},forEach:function(e){for(var A,t=PK(t9e(this)),n=Y7e(e,arguments.length>1?arguments[1]:void 0),r=0;r1?U9e(arguments[1]):{})}}),K7e(a9e)){var K9e=function(e){return U7e(this,g9e),new a9e(e,arguments.length>1?U9e(arguments[1]):{})};g9e.constructor=K9e,K9e.prototype=g9e,w7e({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:K9e})}}var x9e,Y9e={URLSearchParams:T9e,getState:t9e},P9e=Ube,H9e=2147483647,J9e=/[^\0-\u007E]/,O9e=/[.\u3002\uFF0E\uFF61]/g,z9e="Overflow: input needs wider integers to process",j9e=RangeError,X9e=P9e(O9e.exec),q9e=Math.floor,V9e=String.fromCharCode,W9e=P9e("".charCodeAt),Z9e=P9e([].join),$9e=P9e([].push),eeA=P9e("".replace),AeA=P9e("".split),teA=P9e("".toLowerCase),neA=function(e){return e+22+75*(e<26)},reA=function(e,A,t){var n=0;for(e=t?q9e(e/700):e>>1,e+=q9e(e/A);e>455;)e=q9e(e/35),n+=36;return q9e(n+36*e/(e+38))},ieA=function(e){var A,t,n=[],r=(e=function(e){for(var A=[],t=0,n=e.length;t=55296&&r<=56319&&t=i&&tq9e((H9e-o)/l))throw j9e(z9e);for(o+=(c-i)*l,i=c,A=0;AH9e)throw j9e(z9e);if(t==i){for(var u=o,I=36;;){var h=I<=a?1:I>=a+26?26:I-a;if(u?@[\\\]^|]/,rAA=/[\0\t\n\r #/:<>?@[\\\]^|]/,iAA=/^[\u0000-\u0020]+/,oAA=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,aAA=/[\t\n\r]/g,sAA=function(e){var A,t,n,r;if("number"==typeof e){for(A=[],t=0;t<4;t++)zeA(A,e%256),e=beA(e/256);return LeA(A,".")}if("object"==wc(e)){for(A="",n=function(e){for(var A=null,t=1,n=null,r=0,i=0;i<8;i++)0!==e[i]?(r>t&&(A=n,t=r),n=null,r=0):(null===n&&(n=i),++r);return r>t&&(A=n,t=r),A}(e),t=0;t<8;t++)r&&0===e[t]||(r&&(r=!1),n===t?(A+=t?":":"::",r=!0):(A+=UeA(e[t],16),t<7&&(A+=":")));return"["+A+"]"}return e},gAA={},cAA=deA({},gAA,{" ":1,'"':1,"<":1,">":1,"`":1}),lAA=deA({},cAA,{"#":1,"?":1,"{":1,"}":1}),uAA=deA({},lAA,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),IAA=function(e,A){var t=BeA(e,0);return t>32&&t<127&&!CeA(A,e)?e:encodeURIComponent(e)},hAA={ftp:21,file:null,http:80,https:443,ws:80,wss:443},CAA=function(e,A){var t;return 2==e.length&&NeA(VeA,FeA(e,0))&&(":"==(t=FeA(e,1))||!A&&"|"==t)},dAA=function(e){var A;return e.length>1&&CAA(JeA(e,0,2))&&(2==e.length||"/"===(A=FeA(e,2))||"\\"===A||"?"===A||"#"===A)},EAA=function(e){return"."===e||"%2e"===OeA(e)},fAA=function(e){return".."===(e=OeA(e))||"%2e."===e||".%2e"===e||"%2e%2e"===e},BAA={},QAA={},pAA={},vAA={},yAA={},mAA={},DAA={},wAA={},RAA={},kAA={},SAA={},MAA={},GAA={},_AA={},bAA={},TAA={},FAA={},NAA={},LAA={},UAA={},KAA={},xAA=function e(A,t,n){var r,i,o,a=peA(A);if(t){if(i=this.parse(a))throw GeA(i);this.searchParams=null}else{if(void 0!==n&&(r=new e(n,!0)),i=this.parse(a,null,r))throw GeA(i);(o=SeA(new keA)).bindURL(this),this.searchParams=o}};xAA.prototype={type:"URL",parse:function(e,A,t){var n,r,i,o,a=this,s=A||BAA,g=0,c="",l=!1,u=!1,I=!1;for(e=peA(e),A||(a.scheme="",a.username="",a.password="",a.host=null,a.port=null,a.path=[],a.query=null,a.fragment=null,a.cannotBeABaseURL=!1,e=YeA(e,iAA,""),e=YeA(e,oAA,"$1")),e=YeA(e,aAA,""),n=EeA(e);g<=n.length;){switch(r=n[g],s){case BAA:if(!r||!NeA(VeA,r)){if(A)return jeA;s=pAA;continue}c+=OeA(r),s=QAA;break;case QAA:if(r&&(NeA(WeA,r)||"+"==r||"-"==r||"."==r))c+=OeA(r);else{if(":"!=r){if(A)return jeA;c="",s=pAA,g=0;continue}if(A&&(a.isSpecial()!=CeA(hAA,c)||"file"==c&&(a.includesCredentials()||null!==a.port)||"file"==a.scheme&&!a.host))return;if(a.scheme=c,A)return void(a.isSpecial()&&hAA[a.scheme]==a.port&&(a.port=null));c="","file"==a.scheme?s=_AA:a.isSpecial()&&t&&t.scheme==a.scheme?s=vAA:a.isSpecial()?s=wAA:"/"==n[g+1]?(s=yAA,g++):(a.cannotBeABaseURL=!0,xeA(a.path,""),s=LAA)}break;case pAA:if(!t||t.cannotBeABaseURL&&"#"!=r)return jeA;if(t.cannotBeABaseURL&&"#"==r){a.scheme=t.scheme,a.path=feA(t.path),a.query=t.query,a.fragment="",a.cannotBeABaseURL=!0,s=KAA;break}s="file"==t.scheme?_AA:mAA;continue;case vAA:if("/"!=r||"/"!=n[g+1]){s=mAA;continue}s=RAA,g++;break;case yAA:if("/"==r){s=kAA;break}s=NAA;continue;case mAA:if(a.scheme=t.scheme,r==x9e)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=feA(t.path),a.query=t.query;else if("/"==r||"\\"==r&&a.isSpecial())s=DAA;else if("?"==r)a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=feA(t.path),a.query="",s=UAA;else{if("#"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=feA(t.path),a.path.length--,s=NAA;continue}a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,a.path=feA(t.path),a.query=t.query,a.fragment="",s=KAA}break;case DAA:if(!a.isSpecial()||"/"!=r&&"\\"!=r){if("/"!=r){a.username=t.username,a.password=t.password,a.host=t.host,a.port=t.port,s=NAA;continue}s=kAA}else s=RAA;break;case wAA:if(s=RAA,"/"!=r||"/"!=FeA(c,g+1))continue;g++;break;case RAA:if("/"!=r&&"\\"!=r){s=kAA;continue}break;case kAA:if("@"==r){l&&(c="%40"+c),l=!0,i=EeA(c);for(var h=0;h65535)return qeA;a.port=a.isSpecial()&&E===hAA[a.scheme]?null:E,c=""}if(A)return;s=FAA;continue}return qeA}c+=r;break;case _AA:if(a.scheme="file","/"==r||"\\"==r)s=bAA;else{if(!t||"file"!=t.scheme){s=NAA;continue}if(r==x9e)a.host=t.host,a.path=feA(t.path),a.query=t.query;else if("?"==r)a.host=t.host,a.path=feA(t.path),a.query="",s=UAA;else{if("#"!=r){dAA(LeA(feA(n,g),""))||(a.host=t.host,a.path=feA(t.path),a.shortenPath()),s=NAA;continue}a.host=t.host,a.path=feA(t.path),a.query=t.query,a.fragment="",s=KAA}}break;case bAA:if("/"==r||"\\"==r){s=TAA;break}t&&"file"==t.scheme&&!dAA(LeA(feA(n,g),""))&&(CAA(t.path[0],!0)?xeA(a.path,t.path[0]):a.host=t.host),s=NAA;continue;case TAA:if(r==x9e||"/"==r||"\\"==r||"?"==r||"#"==r){if(!A&&CAA(c))s=NAA;else if(""==c){if(a.host="",A)return;s=FAA}else{if(o=a.parseHost(c))return o;if("localhost"==a.host&&(a.host=""),A)return;c="",s=FAA}continue}c+=r;break;case FAA:if(a.isSpecial()){if(s=NAA,"/"!=r&&"\\"!=r)continue}else if(A||"?"!=r)if(A||"#"!=r){if(r!=x9e&&(s=NAA,"/"!=r))continue}else a.fragment="",s=KAA;else a.query="",s=UAA;break;case NAA:if(r==x9e||"/"==r||"\\"==r&&a.isSpecial()||!A&&("?"==r||"#"==r)){if(fAA(c)?(a.shortenPath(),"/"==r||"\\"==r&&a.isSpecial()||xeA(a.path,"")):EAA(c)?"/"==r||"\\"==r&&a.isSpecial()||xeA(a.path,""):("file"==a.scheme&&!a.path.length&&CAA(c)&&(a.host&&(a.host=""),c=FeA(c,0)+":"),xeA(a.path,c)),c="","file"==a.scheme&&(r==x9e||"?"==r||"#"==r))for(;a.path.length>1&&""===a.path[0];)PeA(a.path);"?"==r?(a.query="",s=UAA):"#"==r&&(a.fragment="",s=KAA)}else c+=IAA(r,lAA);break;case LAA:"?"==r?(a.query="",s=UAA):"#"==r?(a.fragment="",s=KAA):r!=x9e&&(a.path[0]+=IAA(r,gAA));break;case UAA:A||"#"!=r?r!=x9e&&("'"==r&&a.isSpecial()?a.query+="%27":a.query+="#"==r?"%23":IAA(r,gAA)):(a.fragment="",s=KAA);break;case KAA:r!=x9e&&(a.fragment+=IAA(r,cAA))}g++}},parseHost:function(e){var A,t,n;if("["==FeA(e,0)){if("]"!=FeA(e,e.length-1))return XeA;if(!(A=function(e){var A,t,n,r,i,o,a,s=[0,0,0,0,0,0,0,0],g=0,c=null,l=0,u=function(){return FeA(e,l)};if(":"==u()){if(":"!=FeA(e,1))return;l+=2,c=++g}for(;u();){if(8==g)return;if(":"!=u()){for(A=t=0;t<4&&NeA(tAA,u());)A=16*A+_eA(u(),16),l++,t++;if("."==u()){if(0==t)return;if(l-=t,g>6)return;for(n=0;u();){if(r=null,n>0){if(!("."==u()&&n<4))return;l++}if(!NeA(ZeA,u()))return;for(;NeA(ZeA,u());){if(i=_eA(u(),10),null===r)r=i;else{if(0==r)return;r=10*r+i}if(r>255)return;l++}s[g]=256*s[g]+r,2!=++n&&4!=n||g++}if(4!=n)return;break}if(":"==u()){if(l++,!u())return}else if(u())return;s[g++]=A}else{if(null!==c)return;l++,c=++g}}if(null!==c)for(o=g-c,g=7;0!=g&&o>0;)a=s[g],s[g--]=s[c+o-1],s[c+--o]=a;else if(8!=g)return;return s}(JeA(e,1,-1))))return XeA;this.host=A}else if(this.isSpecial()){if(e=QeA(e),NeA(nAA,e))return XeA;if(null===(A=function(e){var A,t,n,r,i,o,a,s=HeA(e,".");if(s.length&&""==s[s.length-1]&&s.length--,(A=s.length)>4)return e;for(t=[],n=0;n1&&"0"==FeA(r,0)&&(i=NeA($eA,r)?16:8,r=JeA(r,8==i?1:2)),""===r)o=0;else{if(!NeA(10==i?AAA:8==i?eAA:tAA,r))return e;o=_eA(r,i)}xeA(t,o)}for(n=0;n=TeA(256,5-A))return null}else if(o>255)return null;for(a=KeA(t),n=0;n1?arguments[1]:void 0,n=weA(A,new xAA(e,!1,t));aeA||(A.href=n.serialize(),A.origin=n.getOrigin(),A.protocol=n.getProtocol(),A.username=n.getUsername(),A.password=n.getPassword(),A.host=n.getHost(),A.hostname=n.getHostname(),A.port=n.getPort(),A.pathname=n.getPathname(),A.search=n.getSearch(),A.searchParams=n.getSearchParams(),A.hash=n.getHash())},PAA=YAA.prototype,HAA=function(e,A){return{get:function(){return ReA(this)[e]()},set:A&&function(e){return ReA(this)[A](e)},configurable:!0,enumerable:!0}};if(aeA&&(IeA(PAA,"href",HAA("serialize","setHref")),IeA(PAA,"origin",HAA("getOrigin")),IeA(PAA,"protocol",HAA("getProtocol","setProtocol")),IeA(PAA,"username",HAA("getUsername","setUsername")),IeA(PAA,"password",HAA("getPassword","setPassword")),IeA(PAA,"host",HAA("getHost","setHost")),IeA(PAA,"hostname",HAA("getHostname","setHostname")),IeA(PAA,"port",HAA("getPort","setPort")),IeA(PAA,"pathname",HAA("getPathname","setPathname")),IeA(PAA,"search",HAA("getSearch","setSearch")),IeA(PAA,"searchParams",HAA("getSearchParams")),IeA(PAA,"hash",HAA("getHash","setHash"))),ueA(PAA,"toJSON",(function(){return ReA(this).serialize()}),{enumerable:!0}),ueA(PAA,"toString",(function(){return ReA(this).serialize()}),{enumerable:!0}),MeA){var JAA=MeA.createObjectURL,OAA=MeA.revokeObjectURL;JAA&&ueA(YAA,"createObjectURL",ceA(JAA,MeA)),OAA&&ueA(YAA,"revokeObjectURL",ceA(OAA,MeA))}veA(YAA,"URL"),oeA({global:!0,constructor:!0,forced:!seA,sham:!aeA},{URL:YAA});var zAA=VNe,jAA=Rbe,XAA=BXe,qAA=hUe,VAA=Q7e,WAA=kTe("URL");zAA({target:"URL",stat:!0,forced:!(VAA&&jAA((function(){WAA.canParse()})))},{canParse:function(e){var A=XAA(arguments.length,1),t=qAA(e),n=A<2||void 0===arguments[1]?void 0:qAA(arguments[1]);try{return!!new WAA(t,n)}catch(r){return!1}}});var ZAA=mbe(yTe.URL),$AA=QFe,etA=eTe,AtA=vTe,ttA=mNe,ntA=function(e){return void 0!==e&&($AA(e,"value")||$AA(e,"writable"))},rtA=Vbe,itA=jPe;VNe({target:"Reflect",stat:!0},{get:function e(A,t){var n,r,i=arguments.length<3?A:arguments[2];return ttA(A)===i?A[t]:(n=rtA.f(A,t))?ntA(n)?n.value:void 0===n.get?void 0:etA(n.get,i):AtA(r=itA(A))?e(r,t,i):void 0}});var otA=mbe(yTe.Reflect.get);function atA(){var e;return atA="undefined"!=typeof Reflect&&otA?E0e(e=otA).call(e):function(e,A,t){var n=function(e,A){for(;!Object.prototype.hasOwnProperty.call(e,A)&&null!==(e=F0e(e)););return e}(e,A);if(n){var r=COe(n,A);return r.get?r.get.call(arguments.length<3?e:t):r.value}},atA.apply(this,arguments)}function stA(e,A,t){var n;return(stA=N0e()?E0e(n=T0e).call(n):function(e,A,t){var n=[null];_Oe(n).apply(n,A);var r=new(E0e(Function).apply(e,n));return t&&f0e(r,t.prototype),r}).apply(null,arguments)}var gtA=wbe;VNe({global:!0,forced:gtA.globalThis!==gtA},{globalThis:gtA});var ctA,ltA,utA,ItA,htA,CtA,dtA=mbe(wbe),EtA=(null===(ctA=void 0!==dtA?dtA:void 0)||void 0===ctA?void 0:ctA.crypto)||(null===(ltA="undefined"!=typeof global?global:void 0)||void 0===ltA?void 0:ltA.crypto)||(null===(utA="undefined"!=typeof window?window:void 0)||void 0===utA?void 0:utA.crypto)||(null===(ItA="undefined"!=typeof self?self:void 0)||void 0===ItA?void 0:ItA.crypto)||(null===(htA="undefined"!=typeof frames?frames:void 0)||void 0===htA||null===(htA=htA[0])||void 0===htA?void 0:htA.crypto);CtA=EtA?function(e){for(var A=[],t=0;t>16)&n)<<16)+(A=18e3*(65535&A)+(A>>16)&n)&n;return e/=4294967296,(e+=.5)*(Math.random()>.5?1:-1)}},r=0;r0&&void 0!==arguments[0]?arguments[0]:[],r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:4*n.length;pZe(this,t),e=A.call(this);var i=n;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),(i instanceof Int8Array||i instanceof Uint8ClampedArray||i instanceof Int16Array||i instanceof Uint16Array||i instanceof Int32Array||i instanceof Uint32Array||i instanceof Float32Array||i instanceof Float64Array)&&(i=new Uint8Array(i.buffer,i.byteOffset,i.byteLength)),i instanceof Uint8Array){for(var o=i.byteLength,a=[],s=0;s>>2]|=i[s]<<24-s%4*8;e.words=a,e.sigBytes=o}else e.words=n,e.sigBytes=r;return e}return yZe(t,[{key:"toString",value:function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:QtA).stringify(this)}},{key:"concat",value:function(e){var A=this.words,t=e.words,n=this.sigBytes,r=e.sigBytes;if(this.clamp(),n%4)for(var i=0;i>>2]>>>24-i%4*8&255;A[n+i>>>2]|=o<<24-(n+i)%4*8}else for(var a=0;a>>2]=t[a>>>2];return this.sigBytes+=r,this}},{key:"clamp",value:function(){var e=this.words,A=this.sigBytes;e[A>>>2]&=4294967295<<32-A%4*8,e.length=Math.ceil(A/4)}},{key:"clone",value:function(){var e,A=atA(F0e(t.prototype),"clone",this).call(this);return A.words=l5e(e=this.words).call(e,0),A}}]),t}();pze(BtA,"random",CtA);var QtA={stringify:function(e){for(var A=e.words,t=e.sigBytes,n=[],r=0;r>>2]>>>24-r%4*8&255;n.push((i>>>4).toString(16)),n.push((15&i).toString(16))}return n.join("")},parse:function(e){for(var A=e.length,t=[],n=0;n>>3]|=F2e(e.substr(n,2),16)<<24-n%8*4;return new BtA(t,A/2)}},ptA=function(e){for(var A=e.length,t=[],n=0;n>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new BtA(t,A)},vtA=function(e){return ptA(unescape(encodeURIComponent(e)))},ytA=function(e){B0e(t,ftA);var A=U0e(t);function t(){var e;return pZe(this,t),(e=A.call(this))._minBufferSize=0,e}return yZe(t,[{key:"reset",value:function(){this._data=new BtA,this._nDataBytes=0}},{key:"_append",value:function(e){var A,t=e;"string"==typeof t&&(t=vtA(t)),qZe(A=this._data).call(A,t),this._nDataBytes+=t.sigBytes}},{key:"_process",value:function(e){var A,t=this._data,n=this.blockSize,r=t.words,i=t.sigBytes,o=i/(4*n),a=(o=e?Math.ceil(o):Math.max((0|o)-this._minBufferSize,0))*n,s=Math.min(4*a,i);if(a){for(var g=0;gs&&(o=i.finalize(n)),o.clamp();var g=o.clone();r._oKey=g;var c=o.clone();r._iKey=c;for(var l=g.words,u=c.words,I=0;I>>31}var c=(n<<5|n>>>27)+a+wtA[s];c+=s<20?1518500249+(r&i|~r&o):s<40?1859775393+(r^i^o):s<60?(r&i|r&o|i&o)-1894007588:(r^i^o)-899497514,a=o,o=i,i=r<<30|r>>>2,r=n,n=c}t[0]=t[0]+n|0,t[1]=t[1]+r|0,t[2]=t[2]+i|0,t[3]=t[3]+o|0,t[4]=t[4]+a|0}},{key:"_doFinalize",value:function(){var e=this._data,A=e.words,t=8*this._nDataBytes,n=8*e.sigBytes;return A[n>>>5]|=128<<24-n%32,A[14+(n+64>>>9<<4)]=Math.floor(t/4294967296),A[15+(n+64>>>9<<4)]=t,e.sigBytes=4*A.length,this._process(),this._hash}},{key:"clone",value:function(){var e=atA(F0e(t.prototype),"clone",this).call(this);return e._hash=this._hash.clone(),e}}]),t}();mtA._createHelper(RtA);var ktA,StA=mtA._createHmacHelper(RtA);!function(e,A,t){function n(e,A){var t=Uv(Xp(e).call(e,A,A+2),16);return t>>>7==0?[1,t]:t>>>6==2?(t=(63&t)<<8,[2,t+=Uv(Xp(e).call(e,A+2,A+4),16)]):(t=(63&t)<<16,[3,t+=Uv(Xp(e).call(e,A+2,A+6),16)])}var r,i=0,o=[],a=[];for(r=0;r<4;++r)i+=(3&Uv(Xp(e).call(e,8+2*r,10+2*r),16))<<2*r;var s=Uv(Xp(e).call(e,16,24),16),g=2*Uv(Xp(e).call(e,32,40),16);for(r=40;r0;--c)u=u.p;C[++h]=u[l];break;case 29:g=(o[A]<<8)+o[A+1],A+=2,c=a[g],C[h]=C[h][c];break;case 43:for(c=o[A++],l=o[A++],u=E;c>0;--c)u=u.p;u[l]=C[h--];break;case 53:g=o[A++],c=C[h--],(l=function e(){var A=e._v;return(0,e._u)(A[0],arguments,A[1],A[2],this)})._v=[c,g,E],l._u=e,C[++h]=l;break;case 50:for(c=C[h--],l=null;u=f.pop();)if(2===u[0]||3===u[0]){l=u;break}if(l)A=l[2],l[0]=0,f.push(l);else{if(!d)return c;A=d[1],i=d[2],E=d[3],f=d[4],C[++h]=c,d=d[0]}break;case 26:h-=g=o[A++],l=Xp(C).call(C,h+1,h+g+1),c=C[h--],u=C[h--],c._u===e?(c=c._v,d=[d,A,i,E,f],A=c[0],null==u&&(u=function(){return this}()),i=u,(E=xf(s=[l]).call(s,l)).length=Math.min(c[1],g)+1,E.p=c[2],f=[]):(I=c.apply(u,l),C[++h]=I);break;case 49:c=C[h],C[++h]=c;break;default:throw new Error("ioe")}}catch(B){for(;(g=f.pop())&&!g[0];);if(!g){e:for(;d;){for(c=d[4];g=c.pop();)if(g[0])break e;d=d[0]}if(!d)throw B;A=d[1],i=d[2],E=d[3],f=d[4],d=d[0]}1===(c=g[0])?(A=g[2],g[0]=0,f.push(g),C[++h]=B):2===c?(A=g[2],g[0]=0,f.push(g)):(A=g[3],g[0]=2,f.push(g),C[++h]=B)}}(s,[],0,A,t)}("504B0101d6ff48f400000028f44afcd4000000343e4802004800014800024800034800043b0004311d00001b00011a011b00021a02311d00031a0032410000000035042b01012a32000404646167600128203f3964627e6c7b63667d376f6766743f7c7f3f783e3f64793960366037647e6a087a615d7a7c676069",{get 0(){return StA},get 1(){return ktA},set 1(e){ktA=e}},void 0);var MtA,GtA,_tA=function(){function e(A,t){var n,r,i,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:H$e.CN;pZe(this,e),pze(this,"appId",void 0),pze(this,"ctx",void 0),pze(this,"host",void 0),pze(this,"needSignature",!0),pze(this,"region",void 0),pze(this,"scene",void 0),pze(this,"ext",void 0),this.scene=(n={},pze(n,P$e.LIVE,1),pze(n,P$e.VOD,0),n)[t.videoType],this.ext=yze({userId:null!==(r=t.featureCenter.getFeatureList().userId)&&void 0!==r?r:"",playerVerson:null!==(i=t.featureCenter.getFeatureList().playerVersion)&&void 0!==i?i:""},this.getConfigType(t.strategies)),this.appId=A,this.ctx=t,this.region=o,this.host=this.getHostByRegion()}return yZe(e,[{key:"getConfigType",value:function(e){var A;if(!e)return{};var t={};return DZe(A=wZe(e)).call(A,(function(A){var n=e[A];n&&(t["".concat(A,"_id")]="object"===JJe(n)&&n.configId?n.configId:"default")})),t}},{key:"getCacheKey",value:function(){return MZe([this.appId,this.ctx.cacheKey,this.ctx.featureCenter.getH265FeatureList().isHevcSupported,this.ctx.featureCenter.getBrowserInfo(),this.ctx.featureCenter.getFeatureList().deviceId])}},{key:"fetch",value:function(e){function A(){return e.apply(this,arguments)}return A.toString=function(){return e.toString()},A}(QZe(fZe().mark((function e(){var A,t,n,r,i,o,a;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(this.generateUrl(),{mode:"cors"});case 3:if((A=e.sent).ok){e.next=6;break}throw new Error("Network response was not OK");case 6:return e.next=8,A.json();case 8:return t=e.sent,n=t.data,r=n.custom_settings.web,i=n.general_settings,o=i.use_local_cache,a=i.local_cache_expire,e.abrupt("return",yze(yze({},r),{},{use_local_cache:o,local_cache_expired_at:a>0?Y$e()+1e3*a:void 0,cache_key:this.getCacheKey()}));case 17:throw e.prev=17,e.t0=e.catch(0),e.t0;case 20:case"end":return e.stop()}}),e,this,[[0,17]])}))))},{key:"getHostByRegion",value:function(){var e;return(null===(e={cn:{settingsHost:"vod-settings.volcvod.com"}}[this.region])||void 0===e?void 0:e.settingsHost)||"vod-settings.volcvod.com"}},{key:"generateSearchParams",value:function(e){if(e.searchParams.set("module","web"),e.searchParams.set("aid",String(this.appId)),e.searchParams.set("region",this.region),e.searchParams.set("web_support_hardware_decode_bytevc1",String(this.ctx.featureCenter.getH265FeatureList().isHevcSupported)),e.searchParams.set("web_os",this.ctx.featureCenter.getBrowserInfo().osName),e.searchParams.set("web_os_version",this.ctx.featureCenter.getBrowserInfo().osVersion),e.searchParams.set("web_platform",this.ctx.featureCenter.getBrowserInfo().platformType),e.searchParams.set("web_browser",this.ctx.featureCenter.getBrowserInfo().browserName),e.searchParams.set("web_browser_version",this.ctx.featureCenter.getBrowserInfo().browserVersion),e.searchParams.set("web_cpu_core",String(this.ctx.featureCenter.getBrowserInfo().cpuCore)),e.searchParams.set("web_scene",String(this.scene)),e.searchParams.set("web_ext",MZe(this.ext)),e.searchParams.set("device_id",this.ctx.featureCenter.getFeatureList().deviceId),this.needSignature){var A=Y$e();e.searchParams.set("timestamp",String(A));var t=ktA(this.appId,this.ctx.featureCenter.getFeatureList().deviceId,this.ctx.featureCenter.getBrowserInfo().browserName,A);e.searchParams.set("signature",t)}return e}},{key:"generateUrl",value:function(){return this.generateSearchParams(new ZAA("https://".concat(this.host,"/vod/settings/v1")))}}]),e}(),btA=new j$e("VeStrategy"),TtA=(pze(MtA={},P$e.VOD,O8e),pze(MtA,P$e.LIVE,E7e),MtA),FtA=function(){function e(A){pZe(this,e),pze(this,"ctx",void 0),pze(this,"configPreparePromise",void 0),pze(this,"isStrategyStarted",!1);var t=new Q4e(A),n=new $$e(A,new _tA(A.appId,{featureCenter:t,cacheKey:A.cacheKey,strategies:A.strategies,videoType:A.type||P$e.VOD}));btA.update(A.log),this.ctx={dataCenter:n,featureCenter:t,playerManager:new N8e,tracker:new L8e({trackInfo:A.tracker,type:A.type||P$e.VOD,lineAppId:A.appId,lineUserId:A.deviceId,appId:A.type===P$e.VOD?577780:579013,channel:A.region,cxt:{dataCenter:n,featureCenter:t}})},this.prepare(!0)}var A,t,n,r,i;return yZe(e,[{key:"start",value:(i=QZe(fZe().mark((function e(){var A,t=this;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!this.isStrategyStarted){e.next=2;break}return e.abrupt("return");case 2:if(this.isStrategyStarted=!0,btA.info("Start"),this.ctx.tracker.track("strategy_start",{}),this.ctx.featureCenter.getFeatureList().deviceId){e.next=13;break}return e.next=8,this.getTeaToken();case 8:if(e.t0=e.sent,e.t0){e.next=11;break}e.t0={};case 11:A=e.t0,this.ctx.featureCenter.updateFeatureList({deviceId:A.user_unique_id||A.web_id||""});case 13:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),this.configPreparePromise.then((function(){return t.prepare(!1)})),e.abrupt("return",this.configPreparePromise);case 16:case"end":return e.stop()}}),e,this)}))),function(){return i.apply(this,arguments)})},{key:"updateFeatures",value:(r=QZe(fZe().mark((function e(A){var t,n,r;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A&&null!==(t=this.ctx)&&void 0!==t&&null!==(t=t.featureCenter)&&void 0!==t&&t.updateFeatureList){e.next=2;break}return e.abrupt("return");case 2:if(r=null===(n=this.ctx.featureCenter.getFeatureList())||void 0===n?void 0:n.deviceId,this.ctx.featureCenter.updateFeatureList(yze({},A)),!A.deviceId||A.deviceId===r){e.next=6;break}return e.abrupt("return",this.reloadConfig());case 6:case"end":return e.stop()}}),e,this)}))),function(e){return r.apply(this,arguments)})},{key:"reloadConfig",value:(n=QZe(fZe().mark((function e(){return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return this.configPreparePromise=this.ctx.dataCenter.fetchStrategyConfig(),e.abrupt("return",this.configPreparePromise);case 2:case"end":return e.stop()}}),e,this)}))),function(){return n.apply(this,arguments)})},{key:"getTeaToken",value:(t=QZe(fZe().mark((function e(){var A=this;return fZe().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.abrupt("return",new mZe((function(e){var t,n,r;if("function"==typeof(null===(t=A.ctx.tracker)||void 0===t||null===(t=t.tracker)||void 0===t?void 0:t.getToken))return A.ctx.tracker.tracker.getToken((function(A){return e(A)}));var i=((null===(n=A.ctx.tracker)||void 0===n||null===(n=n.tracker)||void 0===n||null===(r=n.getConfig)||void 0===r?void 0:r.call(n))||{}).user;return e(void 0===i?{}:i)})));case 1:case"end":return e.stop()}}),e)}))),function(){return t.apply(this,arguments)})},{key:"prepare",value:function(e){var A,t=this,n=this.ctx.dataCenter.getInitStrategyConfig()||{},r=this.ctx.dataCenter.getServiceStrategyConfig()||{};DZe(A=wZe(n)).call(A,(function(A){var i,o,a,s,g,c,l;(null===(i=n[A])||void 0===i?void 0:i.disabled)||(null==r||null===(o=r[A])||void 0===o?void 0:o.disabled)||null===(a=n[A])||void 0===a||null===(a=a.Strategy)||void 0===a||null===(s=a[e?"prepareBeforeStarted":"prepareAfterStarted"])||void 0===s||s.call(a,{ctx:t.ctx,Strategy:null===(g=n[A])||void 0===g?void 0:g.Strategy,config:yze(yze({},null===(c=n[A])||void 0===c?void 0:c.config),null==r||null===(l=r[A])||void 0===l?void 0:l.config)})}))}}],[{key:"init",value:function(A){if(btA.update(null==A?void 0:A.log),null!=A&&A.appId){var t,n={};A.strategies&&DZe(t=wZe(A.strategies)).call(t,(function(e){var t,r;null!==(t=A.strategies)&&void 0!==t&&t[e]&&"object"===JJe(null===(r=A.strategies)||void 0===r?void 0:r[e])&&(n[e]=A.strategies[e])}));var r=yze(yze({},A),{},{strategies:n,type:A.type||P$e.VOD});if(btA.info("Init",r),r.type===P$e.VOD||r.type===P$e.LIVE)return r.type===P$e.VOD?(e._vodInst=e._vodInst||new e(r),e._vodInst.ctx.tracker.track("strategy_init",{}),e._vodInst):(e._liveInst=e._liveInst||new e(r),e._liveInst.ctx.tracker.track("strategy_init",{}),e._liveInst);btA.error("Init Invalid Strategy Type=".concat(A.type))}else btA.error("Init without appId",A)}},{key:"bootstrap",value:function(A){var t;return null===(t=e.init(A))||void 0===t?void 0:t.start()}},{key:"inst",value:function(){var A=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P$e.VOD;return A===P$e.VOD?e._vodInst:A===P$e.LIVE?e._liveInst:null}},{key:"recLive",value:function(A,t){return e.rec(A,t,P$e.LIVE)}},{key:"recAsync",value:(A=QZe(fZe().mark((function A(t,n){var r,i,o=arguments;return fZe().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(r=o.length>2&&void 0!==o[2]?o[2]:P$e.VOD,i=e.inst(r||P$e.VOD),btA.info("recAsync",i,n,r),null!=i&&i.configPreparePromise){A.next=6;break}return btA.error("VeStrategyNotInitOrStart"),A.abrupt("return",{plugins:[],pluginConfiguration:{},result:{}});case 6:return A.next=8,i.configPreparePromise;case 8:return A.abrupt("return",e.rec(t,n,r));case 9:case"end":return A.stop()}}),A)}))),function(e,t){return A.apply(this,arguments)})},{key:"rec",value:function(A,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:P$e.VOD;try{return e._rec(A,t,n)}catch(o){var r;btA.error("VeStrategyRecError");var i=e.inst(n);return null==i||null===(r=i.ctx)||void 0===r||null===(r=r.tracker)||void 0===r||r.track("strategy_js_error",{type:n,option:MZe(null!=A?A:{}),common_config:MZe(null!=t?t:{})}),{plugins:[],pluginConfiguration:{},result:{}}}}},{key:"reportABInfo",value:function(A){var t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:P$e.VOD;P$e.VOD!==r?P$e.LIVE!==r||null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.tracker)||void 0===t||t.bindTrackerABVersion(A):null===(n=e._vodInst)||void 0===n||null===(n=n.ctx)||void 0===n||null===(n=n.tracker)||void 0===n||n.bindTrackerABVersion(A)}},{key:"getServiceConfig",value:function(){var A,t,n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:P$e.VOD;return P$e.VOD===n?(null===(A=e._vodInst)||void 0===A||null===(A=A.ctx)||void 0===A||null===(A=A.dataCenter)||void 0===A?void 0:A.getServiceStrategyConfig())||{}:P$e.LIVE===n&&(null===(t=e._liveInst)||void 0===t||null===(t=t.ctx)||void 0===t||null===(t=t.dataCenter)||void 0===t?void 0:t.getServiceStrategyConfig())||{}}},{key:"apply",value:function(A,t,n){var r,i;if(!A||!t)return A;var o=(null==n?void 0:n.type)||P$e.VOD;if(o===P$e.VOD&&null!==(r=e._vodInst)&&void 0!==r&&r.ctx){var a,s=(null==n?void 0:n.Adapter)||(null===(a=e._vodInst.ctx.dataCenter.getAppConfig())||void 0===a||null===(a=a.adapter)||void 0===a?void 0:a.Adapter)||TtA[P$e.VOD];return s&&(A=(new s).apply(A,t)),A}if(o===P$e.LIVE&&null!==(i=e._liveInst)&&void 0!==i&&i.ctx){var g,c=(null==n?void 0:n.Adapter)||(null===(g=e._liveInst.ctx.dataCenter.getAppConfig())||void 0===g||null===(g=g.adapter)||void 0===g?void 0:g.Adapter)||TtA[P$e.LIVE];return c&&(A=(new c).apply(A,t)),A}return A}},{key:"_rec",value:function(A,t){var n,r,i,o,a,s,g,c,l,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:P$e.VOD,I=e.inst(u||P$e.VOD);if(btA.info("rec",I,t,u),!I)return btA.error("VeStrategyNotInit"),{plugins:[],pluginConfiguration:{},result:{}};var h=new T8e(I.ctx),C=I.ctx.dataCenter.getServiceStrategyConfig()||{},d=I.ctx.dataCenter.getInitStrategyConfig()||{},E={plugins:[J8e],pluginConfiguration:pze({},J8e.pluginName,{}),result:{settings:{options:null!==(n=null===(r=C.settings)||void 0===r?void 0:r.config)&&void 0!==n?n:{}}},strategyPluginKeys:J8e.pluginName};DZe(i=wZe(d)).call(i,(function(e){var t,n=d[e],r=C[e],i=null==A?void 0:A[e];if(null!=n&&n.disabled||null!=r&&r.disabled||null!=i&&i.disabled)btA.warn("StrategyDisabled",n,r,i);else{var o,a,s=yze(yze(yze({},n),i),{},{config:HZe({},null==n?void 0:n.config,null==r?void 0:r.config,null==i?void 0:i.config)});(null===(t=s.Strategy)||void 0===t?void 0:t.strategyName)===e?h.registerStrategy(s):btA.warn("StrategyNameIllegal",qZe(o="".concat(null===(a=s.Strategy)||void 0===a?void 0:a.strategyName,"!==")).call(o,e))}})),DZe(o=h.getStrategyList()).call(o,(function(e){var A,n,r;try{var i;r=(null==e||null===(i=e.getRecommendation)||void 0===i?void 0:i.call(e,t))||{plugins:[],pluginConfiguration:{},result:{}}}catch(o){return btA.error("StrategyRecommendError",o),void I.ctx.tracker.track("strategy_exe_error",{strategy_name:null==e?void 0:e.strategyName})}E.plugins=qZe(A=E.plugins).call(A,r.plugins||[]),E.pluginConfiguration=yze(yze({},E.pluginConfiguration),r.pluginConfiguration),E.result=yze(yze({},E.result),{},pze({},e.strategyName,yze({_strategyConfig:null===(n=e.getStrategyConfig)||void 0===n?void 0:n.call(e)},r.result)))}));var f=I.ctx.dataCenter.getAppConfig();DZe(a=wZe(E.pluginConfiguration)).call(a,(function(e){E.pluginConfiguration[e]=yze(yze({},E.pluginConfiguration[e]),{},{ctx:I.ctx,strategyCenter:h,videoType:null==f?void 0:f.type})})),btA.info("StrategyRecommendResult",E);var B=null!==(s=E.result)&&void 0!==s?s:{};return E.strategyKeys=VZe(g=wZe(B)).call(g,(function(e){var A;return"object"===JJe(B[e])&&(null===(A=B[e])||void 0===A?void 0:A.enable)})).join("|"),E.strategyPluginKeys=null===(c=E.plugins)||void 0===c||null===(l=r$e(c))||void 0===l||null===(l=l.call(c,(function(e){return null==e?void 0:e.pluginName})))||void 0===l?void 0:l.join("|"),I.ctx.tracker.track("strategy_rec_info",{strategy_keys:E.strategyKeys,strategy_plugin_keys:E.strategyPluginKeys,strategy_info:MZe(E.result)}),E}}]),e}();pze(FtA,"_vodInst",void 0),pze(FtA,"_liveInst",void 0),VF.StrategyBase;var NtA,LtA=(LE(GtA={},vbe.RTM_ADAPTIVE_BUFFER,{moduleName:VF.StrategyRtmAdaptiveBuffer,getModule:function(e){return null==e?void 0:e.VeStrategyRtmAdaptiveBuffer}}),LE(GtA,"vestrategy",{moduleName:VF.StrategyBase,getModule:function(e){return null==e?void 0:e.VeStrategy}}),GtA),UtA=function(){function e(){GE(this,e),LE(this,"veStrategyManager",void 0)}return NE(e,[{key:"create",value:function(e){var A;return this.veStrategyManager=new Yle({loadPlugin:(A=aE(iE().mark((function e(A){var t,n,r,i,o;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if("vestrategy"!==A){e.next=2;break}return e.abrupt("return",FtA);case 2:if(n=null!==(t=LtA[A])&&void 0!==t?t:{},r=n.moduleName,i=n.getModule,!r){e.next=8;break}return e.next=6,FL(r).then((function(e){return null==i?void 0:i(e)})).catch((function(){}));case 6:return o=e.sent,e.abrupt("return",o);case 8:return e.abrupt("return");case 9:case"end":return e.stop()}}),e)}))),function(e){return A.apply(this,arguments)}),tea:e,Collector:pbe}),this.veStrategyManager}}]),e}(),KtA=new UtA;_U.extend([{LANG:"zh-cn",TEXT:nye},{LANG:"en",TEXT:tye}]);var xtA={autoplay:{muted:!0}},YtA=xf(NtA=[]).call(NtA,ME(yU),[Vve,Wve,eye]),PtA=function(e){return e.H264="h264",e}(PtA||{}),HtA=function(e){Yk(i,e);var A,t,n,r=Jk(i);function i(e){var A;return GE(this,i),LE(Gk(A=r.call(this,e)),"_protocolManager",void 0),A}return NE(i,[{key:"playTime",get:function(){var e;if(null===(e=this._player)||void 0===e||null===(e=e.played)||void 0===e||!e.length)return 0;for(var A=this._player.played.length,t=0,n=0;n2&&void 0!==r[2]&&!r[2]){e.next=4;break}return e.next=4,null===(n=this._protocolManager)||void 0===n?void 0:n.update({playlist:A});case 4:return e.abrupt("return",MF(Pk(i.prototype),"updatePlaylist",this).call(this,A,t));case 5:case"end":return e.stop()}}),e,this)}))),function(e,t){return A.apply(this,arguments)})}]),i}(UU);function JtA(){return JtA=aE(iE().mark((function e(A){var t,n,r,i,o,a,s,g,c,l,u,I,h,C,d,E,f,B,Q,p,v;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(I=void 0,h=new _U({lang:null==A?void 0:A.lang,i18n:null==A?void 0:A.i18n}),A&&(A.url||A.playlist)){e.next=4;break}throw eue(Zle.INVALID_PARAMETER,h);case 4:return null!==(t=A.logger)&&void 0!==t&&t.appId||!1===(null==A||null===(n=A.logger)||void 0===n?void 0:n.enable)||console.warn(eue(Zle.INVALID_LOGGER,h).message),e.next=7,ztA({logger:A.logger,appId:(null===(r=A.logger)||void 0===r?void 0:r.appId)||654925,syncWaitSettings:!1,strategies:{}});case 7:return $Re.tea||$Re.init(A.logger),C=Ff(Ff({},A),{},{plugins:xf(i=[]).call(i,ME(YtA),ME(null!==(o=A.plugins)&&void 0!==o?o:[]))}),d=null===(a=KtA.veStrategyManager)||void 0===a?void 0:a.getStrategyRecommendations(),E=null===(s=KtA.veStrategyManager)||void 0===s?void 0:s.apply(C,d),e.next=13,rke.create();case 13:return f=rke.getLicenseFatalError(),e.next=16,Nke.create(E);case 16:if(B=e.sent,A.url||null!=B&&B.playlist){e.next=19;break}throw eue(Zle.INVALID_PARAMETER,h);case 19:return e.next=21,UU.create(Ff(Ff(Ff({},xtA),E),{},{playlist:null==B?void 0:B.playlist,beforeFallbackError:Kke.beforeFallbackError,isLive:!0,i18nManager:h,teaTracker:$Re,preProcessUrl:function(e){return OL(".ts",e)?{url:e}:{url:Cye(e)}},preparePlugins:function(e){return aE(iE().mark((function A(){return iE().wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(!f){A.next=2;break}throw eue(f,h);case 2:if(B.enableSelector){A.next=5;break}return A.next=5,B.update({url:e});case 5:return A.abrupt("return",B.getStrategy(e,I,h));case 6:case"end":return A.stop()}}),A)})))()}}),HtA);case 21:(I=e.sent).once(jve.READY,aE(iE().mark((function e(){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:rke.bindPlayer(I);case 1:case"end":return e.stop()}}),e)})))),Q="";try{Q=$b(B.protocolCanPlayResults),Q="json:".concat(Q)}catch(P7){console.warn("Failed to stringify protocolCanPlayResults:",P7),Q="json:{}"}return null===(g=$Re.liveLogger)||void 0===g||g.sendLog(Ff(Ff({event_key:"initial_info",enableSelector:B.enableSelector},B.enableSelector&&{fallbackOrder:null===(c=B.queue)||void 0===c?void 0:c.join(","),protocol:null===(l=B.protocol)||void 0===l?void 0:l.protocolType}),{},{canplay:Q,licenseStatus:rke.licenseStatusResult,licenseEdition:rke.licenseCheckResult,featureList:null===(u=rke.licenseSupportModuleList)||void 0===u?void 0:u.join(",")})),I._protocolManager=B,Kke.initErrorFallback(I,B),I&&(v=null===(p=I)||void 0===p||null===(p=p._player)||void 0===p||null===(p=p.config)||void 0===p?void 0:p._RTMdegrade)&&I.emit("degrade",{originRtmUrl:v._originRtmUrl,code:"NOT_SUPPORT",message:"not support rtm or h264",isRTMSupported:v._isRTMSupported,isRTMSupportCodec:v._isRTMSupportCodec}),e.abrupt("return",I);case 30:case"end":return e.stop()}}),e)}))),JtA.apply(this,arguments)}function OtA(){return(OtA=aE(iE().mark((function e(A){return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,qle.setLicenseConfig(A);case 2:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function ztA(e){return jtA.apply(this,arguments)}function jtA(){return(jtA=aE(iE().mark((function e(A){var t;return iE().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(A.appId){e.next=2;break}return e.abrupt("return");case 2:return $Re.tea||$Re.init(Ff({userId:A.userId,deviceId:A.deviceId,appId:A.appId},A.logger)),KtA.veStrategyManager||KtA.create($Re.tea),e.next=6,null===(t=KtA.veStrategyManager)||void 0===t?void 0:t.init(Ff(Ff({},A),{},{playerVersion:"2.11.2",type:"LIVE"}));case 6:return e.abrupt("return",KtA.veStrategyManager);case 7:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var XtA=Object.freeze({__proto__:null,ErrorCode:Zle,Events:jve,prepare:ztA,setLicenseConfig:function(e){return OtA.apply(this,arguments)}});TL("esm"),tU.isMseSupported,tU.isSoftDecodeSupported,tU.isMMSSupported,TL("umd");var qtA=new Proxy({},{get(e,A){throw new Error(`Module "module" has been externalized for browser compatibility. Cannot access "module.${A}" in client code. See http://vitejs.dev/guide/troubleshooting.html#module-externalized-for-browser-compatibility for more details.`)}}),VtA=Object.freeze({__proto__:null,default:qtA});e.Codec=A,e.DecodeType=n,e.Degradation=t,e.DynamicModule=VF,e.EN=MU,e.ListType=NF,e.POSITIONS=FU,e.Plugin=FR,e.RTMCodec=PtA,e.Sniffer=cw,e.ZH_CN=GU,e.createLivePlayer=function(e){return JtA.apply(this,arguments)},e.isFLVSupported=Rye,e.isMMSSupported=AU,e.isMseSupported=ZL,e.isRTMSupportCodec=pke,e.isRTMSupported=Bke,e.isSoftDecodeSupported=$L,e.live=XtA,e.load=FL,e.register=bL,e.registerPlugin=_L,e.util=tU})); diff --git a/src/components/Map.jsx b/src/components/Map.jsx index 08f4d6b..f1c65d9 100644 --- a/src/components/Map.jsx +++ b/src/components/Map.jsx @@ -7,6 +7,8 @@ import droneInspectImg from '../assets/images/xunjiancar.png'; import gecaocar from '../assets/images/gecaocar.png'; import arrowImg from '../assets/images/arrow.png'; import iotImg from '../assets/images/iot.png'; +import envConfig from '../../env'; + const CYAN_ALARM_COLOR = new window.Cesium.Color( 34 / 255, @@ -307,7 +309,7 @@ export default function CesiumMap({ realtimePosition, pathPoints = [], devices = } function fetchPublishedLayers() { - const baseUrl = "http://192.168.2.59:7000/geoserver"; + const baseUrl = envConfig.geoserver_url; //const baseUrl = 'https://gis.caasrobot.com/geoserver'; const getCapabilitiesUrl = `${baseUrl}/wms?service=WMS&version=1.1.1&request=GetCapabilities`; diff --git a/src/components/devices/DeviceStatusPage.tsx b/src/components/devices/DeviceStatusPage.tsx index 69296b3..8213a67 100644 --- a/src/components/devices/DeviceStatusPage.tsx +++ b/src/components/devices/DeviceStatusPage.tsx @@ -111,7 +111,7 @@ export default function DeviceStatusPage({ const { video: robotVideo, error, ready } = useWebRTCPlayer( serialNumber || '', - `webrtc://ri.satabot.com/live/livestream/${serialNumber}`, + `webrtc://1.95.137.212/live/livestream/${serialNumber}`, ); const getVal = (val) => val === "no_rain" ? "无" : (val || '-'); @@ -320,7 +320,7 @@ export default function DeviceStatusPage({