in key message");
+ return mp(atob(c));
+ }
+ setupLicenseXHR(e, n, i, r) {
+ const s = this.config.licenseXhrSetup;
+ return s
+ ? Promise.resolve()
+ .then(() => {
+ if (!i.decryptdata) throw new Error("Key removed");
+ return s.call(this.hls, e, n, i, r);
+ })
+ .catch((o) => {
+ if (!i.decryptdata) throw o;
+ return (e.open("POST", n, !0), s.call(this.hls, e, n, i, r));
+ })
+ .then(
+ (o) => (
+ e.readyState || e.open("POST", n, !0),
+ { xhr: e, licenseChallenge: o || r }
+ ),
+ )
+ : (e.open("POST", n, !0),
+ Promise.resolve({ xhr: e, licenseChallenge: r }));
+ }
+ requestLicense(e, n) {
+ const i = this.config.keyLoadPolicy.default;
+ return new Promise((r, s) => {
+ const o = this.getLicenseServerUrlOrThrow(e.keySystem);
+ this.log(`Sending license request to URL: ${o}`);
+ const a = new XMLHttpRequest();
+ ((a.responseType = "arraybuffer"),
+ (a.onreadystatechange = () => {
+ if (!this.hls || !e.mediaKeysSession)
+ return s(new Error("invalid state"));
+ if (a.readyState === 4)
+ if (a.status === 200) {
+ this._requestLicenseFailureCount = 0;
+ let u = a.response;
+ this.log(
+ `License received ${u instanceof ArrayBuffer ? u.byteLength : u}`,
+ );
+ const c = this.config.licenseResponseCallback;
+ if (c)
+ try {
+ u = c.call(this.hls, a, o, e);
+ } catch (b) {
+ this.error(b);
+ }
+ r(u);
+ } else {
+ const u = i.errorRetry,
+ c = u ? u.maxNumRetry : 0;
+ if (
+ (this._requestLicenseFailureCount++,
+ this._requestLicenseFailureCount > c ||
+ (a.status >= 400 && a.status < 500))
+ )
+ s(
+ new Se(
+ {
+ type: h0.KEY_SYSTEM_ERROR,
+ details: $.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
+ decryptdata: e.decryptdata,
+ fatal: !0,
+ networkDetails: a,
+ response: {
+ url: o,
+ data: void 0,
+ code: a.status,
+ text: a.statusText,
+ },
+ },
+ `License Request XHR failed (${o}). Status: ${a.status} (${a.statusText})`,
+ ),
+ );
+ else {
+ const b = c - this._requestLicenseFailureCount + 1;
+ (this.warn(`Retrying license request, ${b} attempts left`),
+ this.requestLicense(e, n).then(r, s));
+ }
+ }
+ }),
+ e.licenseXhr &&
+ e.licenseXhr.readyState !== XMLHttpRequest.DONE &&
+ e.licenseXhr.abort(),
+ (e.licenseXhr = a),
+ this.setupLicenseXHR(a, o, e, n)
+ .then(({ xhr: u, licenseChallenge: c }) => {
+ (e.keySystem == n1.PLAYREADY &&
+ (c = this.unpackPlayReadyKeyMessage(u, c)),
+ u.send(c));
+ })
+ .catch(s));
+ });
+ }
+ onDestroying() {
+ (this.unregisterListeners(), this._clear());
+ }
+ onMediaAttached(e, n) {
+ if (!this.config.emeEnabled) return;
+ const i = n.media;
+ ((this.media = i),
+ I1(i, "encrypted", this.onMediaEncrypted),
+ I1(i, "waitingforkey", this.onWaitingForKey));
+ }
+ onMediaDetached() {
+ const e = this.media;
+ e &&
+ (G1(e, "encrypted", this.onMediaEncrypted),
+ G1(e, "waitingforkey", this.onWaitingForKey),
+ (this.media = null),
+ (this.mediaKeys = null));
+ }
+ _clear() {
+ var e;
+ if (
+ ((this._requestLicenseFailureCount = 0),
+ (this.keyIdToKeySessionPromise = {}),
+ (this.bannedKeyIds = {}),
+ !this.mediaKeys && !this.mediaKeySessions.length)
+ )
+ return;
+ const n = this.media,
+ i = this.mediaKeySessions.slice();
+ ((this.mediaKeySessions = []),
+ (this.mediaKeys = null),
+ l2.clearKeyUriToKeyIdMap());
+ const r = i.length;
+ Zi.CDMCleanupPromise = Promise.all(
+ i
+ .map((s) => this.removeSession(s))
+ .concat(
+ n == null || (e = n.setMediaKeys(null)) == null
+ ? void 0
+ : e.catch((s) => {
+ (this.log(`Could not clear media keys: ${s}`),
+ this.hls &&
+ this.hls.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,
+ fatal: !1,
+ error: new Error(`Could not clear media keys: ${s}`),
+ }));
+ }),
+ ),
+ )
+ .catch((s) => {
+ (this.log(`Could not close sessions and clear media keys: ${s}`),
+ this.hls &&
+ this.hls.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
+ fatal: !1,
+ error: new Error(
+ `Could not close sessions and clear media keys: ${s}`,
+ ),
+ }));
+ })
+ .then(() => {
+ r && this.log("finished closing key sessions and clearing media keys");
+ });
+ }
+ onManifestLoading() {
+ ((this.keyFormatPromise = null), (this.bannedKeyIds = {}));
+ }
+ onManifestLoaded(e, { sessionKeys: n }) {
+ if (!(!n || !this.config.emeEnabled) && !this.keyFormatPromise) {
+ const i = n.reduce(
+ (r, s) => (r.indexOf(s.keyFormat) === -1 && r.push(s.keyFormat), r),
+ [],
+ );
+ (this.log(`Selecting key-system from session-keys ${i.join(", ")}`),
+ (this.keyFormatPromise = this.getKeyFormatPromise(i)));
+ }
+ }
+ removeSession(e) {
+ const { mediaKeysSession: n, licenseXhr: i, decryptdata: r } = e;
+ if (n) {
+ (this.log(
+ `Remove licenses and keys and close session "${n.sessionId}" keyId: ${P1(r?.keyId || [])}`,
+ ),
+ e._onmessage &&
+ (n.removeEventListener("message", e._onmessage),
+ (e._onmessage = void 0)),
+ e._onkeystatuseschange &&
+ (n.removeEventListener("keystatuseschange", e._onkeystatuseschange),
+ (e._onkeystatuseschange = void 0)),
+ i && i.readyState !== XMLHttpRequest.DONE && i.abort(),
+ (e.mediaKeysSession = e.decryptdata = e.licenseXhr = void 0));
+ const s = this.mediaKeySessions.indexOf(e);
+ s > -1 && this.mediaKeySessions.splice(s, 1);
+ const { drmSystemOptions: o } = this.config;
+ return (
+ FB(o)
+ ? new Promise((u, c) => {
+ (self.setTimeout(
+ () => c(new Error("MediaKeySession.remove() timeout")),
+ 8e3,
+ ),
+ n.remove().then(u).catch(c));
+ })
+ : Promise.resolve()
+ )
+ .catch((u) => {
+ (this.log(`Could not remove session: ${u}`),
+ this.hls &&
+ this.hls.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,
+ fatal: !1,
+ error: new Error(`Could not remove session: ${u}`),
+ }));
+ })
+ .then(() => n.close())
+ .catch((u) => {
+ (this.log(`Could not close session: ${u}`),
+ this.hls &&
+ this.hls.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
+ fatal: !1,
+ error: new Error(`Could not close session: ${u}`),
+ }));
+ });
+ }
+ }
+}
+Zi.CDMCleanupPromise = void 0;
+class Se extends Error {
+ constructor(e, n) {
+ (super(n),
+ (this.data = void 0),
+ e.error || (e.error = new Error(n)),
+ (this.data = e),
+ (e.err = e.error));
+ }
+}
+function P3(t, e) {
+ const n = t === "output-restricted",
+ i = n
+ ? $.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED
+ : $.KEY_SYSTEM_STATUS_INTERNAL_ERROR;
+ return new Se(
+ { type: h0.KEY_SYSTEM_ERROR, details: i, fatal: !1, decryptdata: e },
+ n ? "HDCP level output restricted" : `key status changed to "${t}"`,
+ );
+}
+class aD {
+ constructor(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 = e),
+ this.registerListeners());
+ }
+ setStreamController(e) {
+ this.streamController = e;
+ }
+ registerListeners() {
+ (this.hls.on(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ this.hls.on(L.MEDIA_DETACHING, this.onMediaDetaching, this));
+ }
+ unregisterListeners() {
+ (this.hls.off(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ this.hls.off(L.MEDIA_DETACHING, this.onMediaDetaching, this));
+ }
+ destroy() {
+ (this.timer && clearInterval(this.timer),
+ this.unregisterListeners(),
+ (this.isVideoPlaybackQualityAvailable = !1),
+ (this.media = null));
+ }
+ onMediaAttaching(e, n) {
+ const i = this.hls.config;
+ if (i.capLevelOnFPSDrop) {
+ const r = n.media instanceof self.HTMLVideoElement ? n.media : null;
+ ((this.media = r),
+ r &&
+ typeof r.getVideoPlaybackQuality == "function" &&
+ (this.isVideoPlaybackQualityAvailable = !0),
+ self.clearInterval(this.timer),
+ (this.timer = self.setInterval(
+ this.checkFPSInterval.bind(this),
+ i.fpsDroppedMonitoringPeriod,
+ )));
+ }
+ }
+ onMediaDetaching() {
+ this.media = null;
+ }
+ checkFPS(e, n, i) {
+ const r = performance.now();
+ if (n) {
+ if (this.lastTime) {
+ const s = r - this.lastTime,
+ o = i - this.lastDroppedFrames,
+ a = n - this.lastDecodedFrames,
+ u = (1e3 * o) / s,
+ c = this.hls;
+ if (
+ (c.trigger(L.FPS_DROP, {
+ currentDropped: o,
+ currentDecoded: a,
+ totalDroppedFrames: i,
+ }),
+ u > 0 && o > c.config.fpsDroppedMonitoringThreshold * a)
+ ) {
+ let b = c.currentLevel;
+ (c.logger.warn(
+ "drop FPS ratio greater than max allowed value for currentLevel: " +
+ b,
+ ),
+ b > 0 &&
+ (c.autoLevelCapping === -1 || c.autoLevelCapping >= b) &&
+ ((b = b - 1),
+ c.trigger(L.FPS_DROP_LEVEL_CAPPING, {
+ level: b,
+ droppedLevel: c.currentLevel,
+ }),
+ (c.autoLevelCapping = b),
+ this.streamController.nextLevelSwitch()));
+ }
+ }
+ ((this.lastTime = r),
+ (this.lastDroppedFrames = i),
+ (this.lastDecodedFrames = n));
+ }
+ }
+ checkFPSInterval() {
+ const e = this.media;
+ if (e)
+ if (this.isVideoPlaybackQualityAvailable) {
+ const n = e.getVideoPlaybackQuality();
+ this.checkFPS(e, n.totalVideoFrames, n.droppedVideoFrames);
+ } else
+ this.checkFPS(e, e.webkitDecodedFrameCount, e.webkitDroppedFrameCount);
+ }
+}
+function n6(t, e) {
+ let n;
+ try {
+ n = new Event("addtrack");
+ } catch {
+ ((n = document.createEvent("Event")), n.initEvent("addtrack", !1, !1));
+ }
+ ((n.track = t), e.dispatchEvent(n));
+}
+function i6(t, e) {
+ const n = t.mode;
+ if (
+ (n === "disabled" && (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 (i) {
+ U0.debug(`[texttrack-utils]: ${i}`);
+ try {
+ const r = new self.TextTrackCue(e.startTime, e.endTime, e.text);
+ ((r.id = e.id), t.addCue(r));
+ } catch (r) {
+ U0.debug(
+ `[texttrack-utils]: Legacy TextTrackCue fallback failed: ${r}`,
+ );
+ }
+ }
+ n === "disabled" && (t.mode = n);
+}
+function Ci(t, e) {
+ const n = t.mode;
+ if ((n === "disabled" && (t.mode = "hidden"), t.cues))
+ for (let i = t.cues.length; i--; )
+ (e && t.cues[i].removeEventListener("enter", e), t.removeCue(t.cues[i]));
+ n === "disabled" && (t.mode = n);
+}
+function xp(t, e, n, i) {
+ const r = t.mode;
+ if ((r === "disabled" && (t.mode = "hidden"), t.cues && t.cues.length > 0)) {
+ const s = uD(t.cues, e, n);
+ for (let o = 0; o < s.length; o++) (!i || i(s[o])) && t.removeCue(s[o]);
+ }
+ r === "disabled" && (t.mode = r);
+}
+function cD(t, e) {
+ if (e <= t[0].startTime) return 0;
+ const n = t.length - 1;
+ if (e > t[n].endTime) return -1;
+ let i = 0,
+ r = n,
+ s;
+ for (; i <= r; )
+ if (((s = Math.floor((r + i) / 2)), e < t[s].startTime)) r = s - 1;
+ else if (e > t[s].startTime && i < n) i = s + 1;
+ else return s;
+ return t[i].startTime - e < e - t[r].startTime ? i : r;
+}
+function uD(t, e, n) {
+ const i = [],
+ r = cD(t, e);
+ if (r > -1)
+ for (let s = r, o = t.length; s < o; s++) {
+ const a = t[s];
+ if (a.startTime >= e && a.endTime <= n) i.push(a);
+ else if (a.startTime > n) return i;
+ }
+ return i;
+}
+function Wa(t) {
+ const e = [];
+ for (let n = 0; n < t.length; n++) {
+ const i = t[n];
+ (i.kind === "subtitles" || i.kind === "captions") &&
+ i.label &&
+ e.push(t[n]);
+ }
+ return e;
+}
+class bD extends SM {
+ constructor(e) {
+ (super(e, "subtitle-track-controller"),
+ (this.media = null),
+ (this.tracks = []),
+ (this.groupIds = null),
+ (this.tracksInGroup = []),
+ (this.trackId = -1),
+ (this.currentTrack = null),
+ (this.selectDefaultTrack = !0),
+ (this.queuedDefaultTrack = -1),
+ (this.useTextTrackPolling = !1),
+ (this.subtitlePollingInterval = -1),
+ (this._subtitleDisplay = !0),
+ (this.asyncPollTrackChange = () => this.pollTrackChange(0)),
+ (this.onTextTracksChanged = () => {
+ if (
+ (this.useTextTrackPolling ||
+ self.clearInterval(this.subtitlePollingInterval),
+ !this.media || !this.hls.config.renderTextTracksNatively)
+ )
+ return;
+ let n = null;
+ const i = Wa(this.media.textTracks);
+ for (let s = 0; s < i.length; s++)
+ if (i[s].mode === "hidden") n = i[s];
+ else if (i[s].mode === "showing") {
+ n = i[s];
+ break;
+ }
+ const r = this.findTrackForTextTrack(n);
+ this.subtitleTrack !== r && this.setSubtitleTrack(r);
+ }),
+ this.registerListeners());
+ }
+ destroy() {
+ (this.unregisterListeners(),
+ (this.tracks.length = 0),
+ (this.tracksInGroup.length = 0),
+ (this.currentTrack = null),
+ (this.onTextTracksChanged = this.asyncPollTrackChange = null),
+ super.destroy());
+ }
+ get subtitleDisplay() {
+ return this._subtitleDisplay;
+ }
+ set subtitleDisplay(e) {
+ ((this._subtitleDisplay = e), this.trackId > -1 && this.toggleTrackModes());
+ }
+ registerListeners() {
+ const { hls: e } = this;
+ (e.on(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.MANIFEST_PARSED, this.onManifestParsed, this),
+ e.on(L.LEVEL_LOADING, this.onLevelLoading, this),
+ e.on(L.LEVEL_SWITCHING, this.onLevelSwitching, this),
+ e.on(L.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this),
+ e.on(L.ERROR, this.onError, this));
+ }
+ unregisterListeners() {
+ const { hls: e } = this;
+ (e.off(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.MANIFEST_PARSED, this.onManifestParsed, this),
+ e.off(L.LEVEL_LOADING, this.onLevelLoading, this),
+ e.off(L.LEVEL_SWITCHING, this.onLevelSwitching, this),
+ e.off(L.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this),
+ e.off(L.ERROR, this.onError, this));
+ }
+ onMediaAttached(e, n) {
+ ((this.media = n.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,
+ )));
+ }
+ pollTrackChange(e) {
+ (self.clearInterval(this.subtitlePollingInterval),
+ (this.subtitlePollingInterval = self.setInterval(
+ this.onTextTracksChanged,
+ e,
+ )));
+ }
+ onMediaDetaching(e, n) {
+ const i = this.media;
+ if (!i) return;
+ const r = !!n.transferMedia;
+ if (
+ (self.clearInterval(this.subtitlePollingInterval),
+ this.useTextTrackPolling ||
+ i.textTracks.removeEventListener("change", this.asyncPollTrackChange),
+ this.trackId > -1 && (this.queuedDefaultTrack = this.trackId),
+ (this.subtitleTrack = -1),
+ (this.media = null),
+ r)
+ )
+ return;
+ Wa(i.textTracks).forEach((o) => {
+ Ci(o);
+ });
+ }
+ onManifestLoading() {
+ ((this.tracks = []),
+ (this.groupIds = null),
+ (this.tracksInGroup = []),
+ (this.trackId = -1),
+ (this.currentTrack = null),
+ (this.selectDefaultTrack = !0));
+ }
+ onManifestParsed(e, n) {
+ this.tracks = n.subtitleTracks;
+ }
+ onSubtitleTrackLoaded(e, n) {
+ const { id: i, groupId: r, details: s } = n,
+ o = this.tracksInGroup[i];
+ if (!o || o.groupId !== r) {
+ this.warn(
+ `Subtitle track with id:${i} and group:${r} not found in active group ${o?.groupId}`,
+ );
+ return;
+ }
+ const a = o.details;
+ ((o.details = n.details),
+ this.log(
+ `Subtitle track ${i} "${o.name}" lang:${o.lang} group:${r} loaded [${s.startSN}-${s.endSN}]`,
+ ),
+ i === this.trackId && this.playlistLoaded(i, n, a));
+ }
+ onLevelLoading(e, n) {
+ this.switchLevel(n.level);
+ }
+ onLevelSwitching(e, n) {
+ this.switchLevel(n.level);
+ }
+ switchLevel(e) {
+ const n = this.hls.levels[e];
+ if (!n) return;
+ const i = n.subtitleGroups || null,
+ r = this.groupIds;
+ let s = this.currentTrack;
+ if (
+ !i ||
+ r?.length !== i?.length ||
+ (i != null && i.some((o) => r?.indexOf(o) === -1))
+ ) {
+ ((this.groupIds = i), (this.trackId = -1), (this.currentTrack = null));
+ const o = this.tracks.filter((b) => !i || i.indexOf(b.groupId) !== -1);
+ if (o.length)
+ (this.selectDefaultTrack &&
+ !o.some((b) => b.default) &&
+ (this.selectDefaultTrack = !1),
+ o.forEach((b, l) => {
+ b.id = l;
+ }));
+ else if (!s && !this.tracksInGroup.length) return;
+ this.tracksInGroup = o;
+ const a = this.hls.config.subtitlePreference;
+ if (!s && a) {
+ this.selectDefaultTrack = !1;
+ const b = st(a, o);
+ if (b > -1) s = o[b];
+ else {
+ const l = st(a, this.tracks);
+ s = this.tracks[l];
+ }
+ }
+ let u = this.findTrackId(s);
+ u === -1 && s && (u = this.findTrackId(null));
+ const c = { subtitleTracks: o };
+ (this.log(
+ `Updating subtitle tracks, ${o.length} track(s) found in "${i?.join(",")}" group-id`,
+ ),
+ this.hls.trigger(L.SUBTITLE_TRACKS_UPDATED, c),
+ u !== -1 && this.trackId === -1 && this.setSubtitleTrack(u));
+ }
+ }
+ findTrackId(e) {
+ const n = this.tracksInGroup,
+ i = this.selectDefaultTrack;
+ for (let r = 0; r < n.length; r++) {
+ const s = n[r];
+ if (!((i && !s.default) || (!i && !e)) && (!e || ai(s, e))) return r;
+ }
+ if (e) {
+ for (let r = 0; r < n.length; r++) {
+ const s = n[r];
+ if (
+ Ps(e.attrs, s.attrs, [
+ "LANGUAGE",
+ "ASSOC-LANGUAGE",
+ "CHARACTERISTICS",
+ ])
+ )
+ return r;
+ }
+ for (let r = 0; r < n.length; r++) {
+ const s = n[r];
+ if (Ps(e.attrs, s.attrs, ["LANGUAGE"])) return r;
+ }
+ }
+ return -1;
+ }
+ findTrackForTextTrack(e) {
+ if (e) {
+ const n = this.tracksInGroup;
+ for (let i = 0; i < n.length; i++) {
+ const r = n[i];
+ if (vp(r, e)) return i;
+ }
+ }
+ return -1;
+ }
+ onError(e, n) {
+ n.fatal ||
+ !n.context ||
+ (n.context.type === _0.SUBTITLE_TRACK &&
+ n.context.id === this.trackId &&
+ (!this.groupIds || this.groupIds.indexOf(n.context.groupId) !== -1) &&
+ this.checkRetry(n));
+ }
+ get allSubtitleTracks() {
+ return this.tracks;
+ }
+ get subtitleTracks() {
+ return this.tracksInGroup;
+ }
+ get subtitleTrack() {
+ return this.trackId;
+ }
+ set subtitleTrack(e) {
+ ((this.selectDefaultTrack = !1), this.setSubtitleTrack(e));
+ }
+ setSubtitleOption(e) {
+ if (((this.hls.config.subtitlePreference = e), e)) {
+ if (e.id === -1) return (this.setSubtitleTrack(-1), null);
+ const n = this.allSubtitleTracks;
+ if (((this.selectDefaultTrack = !1), n.length)) {
+ const i = this.currentTrack;
+ if (i && ai(e, i)) return i;
+ const r = st(e, this.tracksInGroup);
+ if (r > -1) {
+ const s = this.tracksInGroup[r];
+ return (this.setSubtitleTrack(r), s);
+ } else {
+ if (i) return null;
+ {
+ const s = st(e, n);
+ if (s > -1) return n[s];
+ }
+ }
+ }
+ }
+ return null;
+ }
+ loadPlaylist(e) {
+ (super.loadPlaylist(),
+ this.shouldLoadPlaylist(this.currentTrack) &&
+ this.scheduleLoading(this.currentTrack, e));
+ }
+ loadingPlaylist(e, n) {
+ super.loadingPlaylist(e, n);
+ const i = e.id,
+ r = e.groupId,
+ s = this.getUrlWithDirectives(e.url, n),
+ o = e.details,
+ a = o?.age;
+ (this.log(
+ `Loading subtitle ${i} "${e.name}" lang:${e.lang} group:${r}${n?.msn !== void 0 ? " at sn " + n.msn + " part " + n.part : ""}${a && o.live ? " age " + a.toFixed(1) + ((o.type && " " + o.type) || "") : ""} ${s}`,
+ ),
+ this.hls.trigger(L.SUBTITLE_TRACK_LOADING, {
+ url: s,
+ id: i,
+ groupId: r,
+ deliveryDirectives: n || null,
+ track: e,
+ }));
+ }
+ toggleTrackModes() {
+ const { media: e } = this;
+ if (!e) return;
+ const n = Wa(e.textTracks),
+ i = this.currentTrack;
+ let r;
+ if (
+ (i &&
+ ((r = n.filter((s) => vp(i, s))[0]),
+ r ||
+ this.warn(
+ `Unable to find subtitle TextTrack with name "${i.name}" and language "${i.lang}"`,
+ )),
+ [].slice.call(n).forEach((s) => {
+ s.mode !== "disabled" && s !== r && (s.mode = "disabled");
+ }),
+ r)
+ ) {
+ const s = this.subtitleDisplay ? "showing" : "hidden";
+ r.mode !== s && (r.mode = s);
+ }
+ }
+ setSubtitleTrack(e) {
+ const n = this.tracksInGroup;
+ if (!this.media) {
+ this.queuedDefaultTrack = e;
+ return;
+ }
+ if (e < -1 || e >= n.length || !p0(e)) {
+ this.warn(`Invalid subtitle track id: ${e}`);
+ return;
+ }
+ this.selectDefaultTrack = !1;
+ const i = this.currentTrack,
+ r = n[e] || null;
+ if (
+ ((this.trackId = e), (this.currentTrack = r), this.toggleTrackModes(), !r)
+ ) {
+ this.hls.trigger(L.SUBTITLE_TRACK_SWITCH, { id: e });
+ return;
+ }
+ const s = !!r.details && !r.details.live;
+ if (e === this.trackId && r === i && s) return;
+ this.log(
+ `Switching to subtitle-track ${e}` +
+ (r ? ` "${r.name}" lang:${r.lang} group:${r.groupId}` : ""),
+ );
+ const { id: o, groupId: a = "", name: u, type: c, url: b } = r;
+ this.hls.trigger(L.SUBTITLE_TRACK_SWITCH, {
+ id: o,
+ groupId: a,
+ name: u,
+ type: c,
+ url: b,
+ });
+ const l = this.switchParams(r.url, i?.details, r.details);
+ this.loadPlaylist(l);
+ }
+}
+function pD() {
+ try {
+ return crypto.randomUUID();
+ } catch {
+ try {
+ const e = URL.createObjectURL(new Blob()),
+ n = e.toString();
+ return (URL.revokeObjectURL(e), n.slice(n.lastIndexOf("/") + 1));
+ } catch {
+ let n = new Date().getTime();
+ return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (r) => {
+ const s = ((n + Math.random() * 16) % 16) | 0;
+ return (
+ (n = Math.floor(n / 16)),
+ (r == "x" ? s : (s & 3) | 8).toString(16)
+ );
+ });
+ }
+ }
+}
+function cs(t) {
+ let e = 5381,
+ n = t.length;
+ for (; n; ) e = (e * 33) ^ t.charCodeAt(--n);
+ return (e >>> 0).toString();
+}
+const er = 0.025;
+let yc = (function (t) {
+ return ((t[(t.Point = 0)] = "Point"), (t[(t.Range = 1)] = "Range"), t);
+})({});
+function lD(t, e, n) {
+ return `${t.identifier}-${n + 1}-${cs(e)}`;
+}
+class MD {
+ constructor(e, n) {
+ ((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.resetOnResume = void 0),
+ (this.base = n),
+ (this.dateRange = e),
+ this.setDateRange(e));
+ }
+ setDateRange(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,
+ )));
+ }
+ reset() {
+ var e;
+ ((this.appendInPlaceStarted = !1),
+ (e = this.assetListLoader) == null || e.destroy(),
+ (this.assetListLoader = void 0),
+ this.supplementsPrimary ||
+ ((this.assetListResponse = null),
+ (this.assetList = []),
+ (this._duration = null)));
+ }
+ isAssetPastPlayoutLimit(e) {
+ var n;
+ if (e > 0 && e >= this.assetList.length) return !0;
+ const i = this.playoutLimit;
+ return e <= 0 || isNaN(i)
+ ? !1
+ : i === 0
+ ? !0
+ : (((n = this.assetList[e]) == null ? void 0 : n.startOffset) || 0) > i;
+ }
+ findAssetIndex(e) {
+ return this.assetList.indexOf(e);
+ }
+ get identifier() {
+ return this.dateRange.id;
+ }
+ get startDate() {
+ return this.dateRange.startDate;
+ }
+ get startTime() {
+ const e = this.dateRange.startTime;
+ if (this.snapOptions.out) {
+ const n = this.dateRange.tagAnchor;
+ if (n) return vu(e, n);
+ }
+ return e;
+ }
+ get startOffset() {
+ return this.cue.pre ? 0 : this.startTime;
+ }
+ get startIsAligned() {
+ if (this.startTime === 0 || this.snapOptions.out) return !0;
+ const e = this.dateRange.tagAnchor;
+ if (e) {
+ const n = this.dateRange.startTime,
+ i = vu(n, e);
+ return n - i < 0.1;
+ }
+ return !1;
+ }
+ get resumptionOffset() {
+ const e = this.resumeOffset,
+ n = p0(e) ? e : this.duration;
+ return this.cumulativeDuration + n;
+ }
+ get resumeTime() {
+ const e = this.startOffset + this.resumptionOffset;
+ if (this.snapOptions.in) {
+ const n = this.resumeAnchor;
+ if (n) return vu(e, n);
+ }
+ return e;
+ }
+ get appendInPlace() {
+ return this.appendInPlaceStarted
+ ? !0
+ : this.appendInPlaceDisabled
+ ? !1
+ : !!(
+ !this.cue.once &&
+ !this.cue.pre &&
+ this.startIsAligned &&
+ ((isNaN(this.playoutLimit) && isNaN(this.resumeOffset)) ||
+ (this.resumeOffset &&
+ this.duration &&
+ Math.abs(this.resumeOffset - this.duration) < er))
+ );
+ }
+ set appendInPlace(e) {
+ if (this.appendInPlaceStarted) {
+ this.resetOnResume = !e;
+ return;
+ }
+ this.appendInPlaceDisabled = !e;
+ }
+ get timelineStart() {
+ return this._timelineStart !== null ? this._timelineStart : this.startTime;
+ }
+ set timelineStart(e) {
+ this._timelineStart = e;
+ }
+ get duration() {
+ const e = this.playoutLimit;
+ let n;
+ return (
+ this._duration !== null
+ ? (n = this._duration)
+ : this.dateRange.duration
+ ? (n = this.dateRange.duration)
+ : (n = this.dateRange.plannedDuration || 0),
+ !isNaN(e) && e < n && (n = e),
+ n
+ );
+ }
+ set duration(e) {
+ this._duration = e;
+ }
+ get cue() {
+ return this.dateRange.cue;
+ }
+ get timelineOccupancy() {
+ return this.dateRange.attr["X-TIMELINE-OCCUPIES"] === "RANGE"
+ ? yc.Range
+ : yc.Point;
+ }
+ get supplementsPrimary() {
+ return this.dateRange.attr["X-TIMELINE-STYLE"] === "PRIMARY";
+ }
+ get contentMayVary() {
+ return this.dateRange.attr["X-CONTENT-MAY-VARY"] !== "NO";
+ }
+ get assetUrl() {
+ return this.dateRange.attr["X-ASSET-URI"];
+ }
+ get assetListUrl() {
+ return this.dateRange.attr["X-ASSET-LIST"];
+ }
+ get baseUrl() {
+ return this.base.url;
+ }
+ get assetListLoaded() {
+ return this.assetList.length > 0 || this.assetListResponse !== null;
+ }
+ toString() {
+ return dD(this);
+ }
+}
+function vu(t, e) {
+ return t - e.start < e.duration / 2 &&
+ !(Math.abs(t - (e.start + e.duration)) < er)
+ ? e.start
+ : e.start + e.duration;
+}
+function r6(t, e, n) {
+ const i = new self.URL(t, n);
+ return (
+ i.protocol !== "data:" && i.searchParams.set("_HLS_primary_id", e),
+ i
+ );
+}
+function Eu(t, e) {
+ for (; (n = t.assetList[++e]) != null && n.error; ) var n;
+ return e;
+}
+function dD(t) {
+ return `["${t.identifier}" ${t.cue.pre ? "" : t.cue.post ? "" : ""}${t.timelineStart.toFixed(2)}-${t.resumeTime.toFixed(2)}]`;
+}
+function Ii(t) {
+ const e = t.timelineStart,
+ n = t.duration || 0;
+ return `["${t.identifier}" ${e.toFixed(2)}-${(e + n).toFixed(2)}]`;
+}
+class fD {
+ constructor(e, n, i, r) {
+ ((this.hls = void 0),
+ (this.interstitial = void 0),
+ (this.assetItem = void 0),
+ (this.tracks = null),
+ (this.hasDetails = !1),
+ (this.mediaAttached = null),
+ (this._currentTime = void 0),
+ (this._bufferedEosTime = void 0),
+ (this.checkPlayout = () => {
+ this.reachedPlayout(this.currentTime) &&
+ this.hls &&
+ this.hls.trigger(L.PLAYOUT_LIMIT_REACHED, {});
+ }));
+ const s = (this.hls = new e(n));
+ ((this.interstitial = i), (this.assetItem = r));
+ const o = () => {
+ this.hasDetails = !0;
+ };
+ (s.once(L.LEVEL_LOADED, o),
+ s.once(L.AUDIO_TRACK_LOADED, o),
+ s.once(L.SUBTITLE_TRACK_LOADED, o),
+ s.on(L.MEDIA_ATTACHING, (a, { media: u }) => {
+ (this.removeMediaListeners(),
+ (this.mediaAttached = u),
+ this.interstitial.playoutLimit &&
+ (u.addEventListener("timeupdate", this.checkPlayout),
+ this.appendInPlace &&
+ s.on(L.BUFFER_APPENDED, () => {
+ const b = this.bufferedEnd;
+ this.reachedPlayout(b) &&
+ ((this._bufferedEosTime = b),
+ s.trigger(L.BUFFERED_TO_END, void 0));
+ })));
+ }));
+ }
+ get appendInPlace() {
+ return this.interstitial.appendInPlace;
+ }
+ loadSource() {
+ const e = this.hls;
+ if (e)
+ if (e.url) e.levels.length && !e.started && e.startLoad(-1, !0);
+ else {
+ let n = this.assetItem.uri;
+ try {
+ n = r6(n, e.config.primarySessionId || "").href;
+ } catch {}
+ e.loadSource(n);
+ }
+ }
+ bufferedInPlaceToEnd(e) {
+ var n;
+ if (!this.appendInPlace) return !1;
+ if ((n = this.hls) != null && n.bufferedToEnd) return !0;
+ if (!e) return !1;
+ const i = Math.min(this._bufferedEosTime || 1 / 0, this.duration),
+ r = this.timelineOffset,
+ s = W0.bufferInfo(e, r, 0);
+ return this.getAssetTime(s.end) >= i - 0.02;
+ }
+ reachedPlayout(e) {
+ const i = this.interstitial.playoutLimit;
+ return this.startOffset + e >= i;
+ }
+ get destroyed() {
+ var e;
+ return !((e = this.hls) != null && e.userConfig);
+ }
+ get assetId() {
+ return this.assetItem.identifier;
+ }
+ get interstitialId() {
+ return this.assetItem.parentIdentifier;
+ }
+ get media() {
+ var e;
+ return ((e = this.hls) == null ? void 0 : e.media) || null;
+ }
+ get bufferedEnd() {
+ const e = this.media || this.mediaAttached;
+ if (!e)
+ return this._bufferedEosTime ? this._bufferedEosTime : this.currentTime;
+ const n = W0.bufferInfo(e, e.currentTime, 0.001);
+ return this.getAssetTime(n.end);
+ }
+ get currentTime() {
+ const e = this.media || this.mediaAttached;
+ return e ? this.getAssetTime(e.currentTime) : this._currentTime || 0;
+ }
+ get duration() {
+ const e = this.assetItem.duration;
+ if (!e) return 0;
+ const n = this.interstitial.playoutLimit;
+ if (n) {
+ const i = n - this.startOffset;
+ if (i > 0 && i < e) return i;
+ }
+ return e;
+ }
+ get remaining() {
+ const e = this.duration;
+ return e ? Math.max(0, e - this.currentTime) : 0;
+ }
+ get startOffset() {
+ return this.assetItem.startOffset;
+ }
+ get timelineOffset() {
+ var e;
+ return ((e = this.hls) == null ? void 0 : e.config.timelineOffset) || 0;
+ }
+ set timelineOffset(e) {
+ const n = this.timelineOffset;
+ if (e !== n) {
+ const i = e - n;
+ if (Math.abs(i) > 1 / 9e4 && this.hls) {
+ if (this.hasDetails)
+ throw new Error(
+ "Cannot set timelineOffset after playlists are loaded",
+ );
+ this.hls.config.timelineOffset = e;
+ }
+ }
+ }
+ getAssetTime(e) {
+ const n = this.timelineOffset,
+ i = this.duration;
+ return Math.min(Math.max(0, e - n), i);
+ }
+ removeMediaListeners() {
+ const e = this.mediaAttached;
+ e &&
+ ((this._currentTime = e.currentTime),
+ this.bufferSnapShot(),
+ e.removeEventListener("timeupdate", this.checkPlayout));
+ }
+ bufferSnapShot() {
+ if (this.mediaAttached) {
+ var e;
+ (e = this.hls) != null &&
+ e.bufferedToEnd &&
+ (this._bufferedEosTime = this.bufferedEnd);
+ }
+ }
+ destroy() {
+ (this.removeMediaListeners(),
+ this.hls && this.hls.destroy(),
+ (this.hls = null),
+ (this.tracks = this.mediaAttached = this.checkPlayout = null));
+ }
+ attachMedia(e) {
+ var n;
+ (this.loadSource(), (n = this.hls) == null || n.attachMedia(e));
+ }
+ detachMedia() {
+ var e;
+ (this.removeMediaListeners(),
+ (this.mediaAttached = null),
+ (e = this.hls) == null || e.detachMedia());
+ }
+ resumeBuffering() {
+ var e;
+ (e = this.hls) == null || e.resumeBuffering();
+ }
+ pauseBuffering() {
+ var e;
+ (e = this.hls) == null || e.pauseBuffering();
+ }
+ transferMedia() {
+ var e;
+ return (
+ this.bufferSnapShot(),
+ ((e = this.hls) == null ? void 0 : e.transferMedia()) || null
+ );
+ }
+ resetDetails() {
+ const e = this.hls;
+ if (e && this.hasDetails) {
+ e.stopLoad();
+ const n = (i) => delete i.details;
+ (e.levels.forEach(n),
+ e.allAudioTracks.forEach(n),
+ e.allSubtitleTracks.forEach(n),
+ (this.hasDetails = !1));
+ }
+ }
+ on(e, n, i) {
+ var r;
+ (r = this.hls) == null || r.on(e, n);
+ }
+ once(e, n, i) {
+ var r;
+ (r = this.hls) == null || r.once(e, n);
+ }
+ off(e, n, i) {
+ var r;
+ (r = this.hls) == null || r.off(e, n);
+ }
+ toString() {
+ var e;
+ return `HlsAssetPlayer: ${Ii(this.assetItem)} ${(e = this.hls) == null ? void 0 : e.sessionId} ${this.appendInPlace ? "append-in-place" : ""}`;
+ }
+}
+const X3 = 0.033;
+class zD extends Re {
+ constructor(e, n) {
+ (super("interstitials-sched", n),
+ (this.onScheduleUpdate = void 0),
+ (this.eventMap = {}),
+ (this.events = null),
+ (this.items = null),
+ (this.durations = { primary: 0, playout: 0, integrated: 0 }),
+ (this.onScheduleUpdate = e));
+ }
+ destroy() {
+ (this.reset(), (this.onScheduleUpdate = null));
+ }
+ reset() {
+ ((this.eventMap = {}),
+ this.setDurations(0, 0, 0),
+ this.events && this.events.forEach((e) => e.reset()),
+ (this.events = this.items = null));
+ }
+ resetErrorsInRange(e, n) {
+ return this.events
+ ? this.events.reduce(
+ (i, r) =>
+ e <= r.startOffset && n > r.startOffset
+ ? (delete r.error, i + 1)
+ : i,
+ 0,
+ )
+ : 0;
+ }
+ get duration() {
+ const e = this.items;
+ return e ? e[e.length - 1].end : 0;
+ }
+ get length() {
+ return this.items ? this.items.length : 0;
+ }
+ getEvent(e) {
+ return (e && this.eventMap[e]) || null;
+ }
+ hasEvent(e) {
+ return e in this.eventMap;
+ }
+ findItemIndex(e, n) {
+ if (e.event) return this.findEventIndex(e.event.identifier);
+ let i = -1;
+ e.nextEvent
+ ? (i = this.findEventIndex(e.nextEvent.identifier) - 1)
+ : e.previousEvent &&
+ (i = this.findEventIndex(e.previousEvent.identifier) + 1);
+ const r = this.items;
+ if (r)
+ for (
+ r[i] ||
+ (n === void 0 && (n = e.start), (i = this.findItemIndexAtTime(n)));
+ i >= 0 && (s = r[i]) != null && s.event;
+ ) {
+ var s;
+ i--;
+ }
+ return i;
+ }
+ findItemIndexAtTime(e, n) {
+ const i = this.items;
+ if (i)
+ for (let r = 0; r < i.length; r++) {
+ let s = i[r];
+ if (
+ (n && n !== "primary" && (s = s[n]),
+ e === s.start || (e > s.start && e < s.end))
+ )
+ return r;
+ }
+ return -1;
+ }
+ findJumpRestrictedIndex(e, n) {
+ const i = this.items;
+ if (i)
+ for (let r = e; r <= n && i[r]; r++) {
+ const s = i[r].event;
+ if (s != null && s.restrictions.jump && !s.appendInPlace) return r;
+ }
+ return -1;
+ }
+ findEventIndex(e) {
+ const n = this.items;
+ if (n)
+ for (let r = n.length; r--; ) {
+ var i;
+ if (((i = n[r].event) == null ? void 0 : i.identifier) === e) return r;
+ }
+ return -1;
+ }
+ findAssetIndex(e, n) {
+ const i = e.assetList,
+ r = i.length;
+ if (r > 1)
+ for (let s = 0; s < r; s++) {
+ const o = i[s];
+ if (!o.error) {
+ const a = o.timelineStart;
+ if (n === a || (n > a && (n < a + (o.duration || 0) || s === r - 1)))
+ return s;
+ }
+ }
+ return 0;
+ }
+ get assetIdAtEnd() {
+ var e;
+ const n =
+ (e = this.items) == null || (e = e[this.length - 1]) == null
+ ? void 0
+ : e.event;
+ if (n) {
+ const i = n.assetList,
+ r = i[i.length - 1];
+ if (r) return r.identifier;
+ }
+ return null;
+ }
+ parseInterstitialDateRanges(e, n) {
+ const i = e.main.details,
+ { dateRanges: r } = i,
+ s = this.events,
+ o = this.parseDateRanges(r, { url: i.url }, n),
+ a = Object.keys(r),
+ u = s ? s.filter((c) => !a.includes(c.identifier)) : [];
+ (o.length &&
+ o.sort((c, b) => {
+ const l = c.cue.pre,
+ p = c.cue.post,
+ M = b.cue.pre,
+ d = b.cue.post;
+ if (l && !M) return -1;
+ if ((M && !l) || (p && !d)) return 1;
+ if (d && !p) return -1;
+ if (!l && !M && !p && !d) {
+ const O = c.startTime,
+ f = b.startTime;
+ if (O !== f) return O - f;
+ }
+ return c.dateRange.tagOrder - b.dateRange.tagOrder;
+ }),
+ (this.events = o),
+ u.forEach((c) => {
+ this.removeEvent(c);
+ }),
+ this.updateSchedule(e, u));
+ }
+ updateSchedule(e, n = [], i = !1) {
+ const r = this.events || [];
+ if (r.length || n.length || this.length < 2) {
+ const s = this.items,
+ o = this.parseSchedule(r, e);
+ (i ||
+ n.length ||
+ s?.length !== o.length ||
+ o.some(
+ (u, c) =>
+ Math.abs(u.playout.start - s[c].playout.start) > 0.005 ||
+ Math.abs(u.playout.end - s[c].playout.end) > 0.005,
+ )) &&
+ ((this.items = o), this.onScheduleUpdate(n, s));
+ }
+ }
+ parseDateRanges(e, n, i) {
+ const r = [],
+ s = Object.keys(e);
+ for (let o = 0; o < s.length; o++) {
+ const a = s[o],
+ u = e[a];
+ if (u.isInterstitial) {
+ let c = this.eventMap[a];
+ (c
+ ? c.setDateRange(u)
+ : ((c = new MD(u, n)),
+ (this.eventMap[a] = c),
+ i === !1 && (c.appendInPlace = i)),
+ r.push(c));
+ }
+ }
+ return r;
+ }
+ parseSchedule(e, n) {
+ const i = [],
+ r = n.main.details,
+ s = r.live ? 1 / 0 : r.edge;
+ let o = 0;
+ if (
+ ((e = e.filter((u) => !u.error && !(u.cue.once && u.hasPlayed))),
+ e.length)
+ ) {
+ this.resolveOffsets(e, n);
+ let u = 0,
+ c = 0;
+ if (
+ (e.forEach((b, l) => {
+ const p = b.cue.pre,
+ M = b.cue.post,
+ d = e[l - 1] || null,
+ O = b.appendInPlace,
+ f = M ? s : b.startOffset,
+ z = b.duration,
+ g = b.timelineOccupancy === yc.Range ? z : 0,
+ A = b.resumptionOffset,
+ h = d?.startTime === f,
+ q = f + b.cumulativeDuration;
+ let v = O ? q + z : f + A;
+ if (p || (!M && f <= 0)) {
+ const E = c;
+ ((c += g), (b.timelineStart = q));
+ const _ = o;
+ ((o += z),
+ i.push({
+ event: b,
+ start: q,
+ end: v,
+ playout: { start: _, end: o },
+ integrated: { start: E, end: c },
+ }));
+ } else if (f <= s) {
+ if (!h) {
+ const T = f - u;
+ if (T > X3) {
+ const y = u,
+ W = c;
+ c += T;
+ const x = o;
+ o += T;
+ const B = {
+ previousEvent: e[l - 1] || null,
+ nextEvent: b,
+ start: y,
+ end: y + T,
+ playout: { start: x, end: o },
+ integrated: { start: W, end: c },
+ };
+ i.push(B);
+ } else
+ T > 0 &&
+ d &&
+ ((d.cumulativeDuration += T), (i[i.length - 1].end = f));
+ }
+ (M && (v = q), (b.timelineStart = q));
+ const E = c;
+ c += g;
+ const _ = o;
+ ((o += z),
+ i.push({
+ event: b,
+ start: q,
+ end: v,
+ playout: { start: _, end: o },
+ integrated: { start: E, end: c },
+ }));
+ } else return;
+ const m = b.resumeTime;
+ M || m > s ? (u = s) : (u = m);
+ }),
+ u < s)
+ ) {
+ var a;
+ const b = u,
+ l = c,
+ p = s - u;
+ c += p;
+ const M = o;
+ ((o += p),
+ i.push({
+ previousEvent:
+ ((a = i[i.length - 1]) == null ? void 0 : a.event) || null,
+ nextEvent: null,
+ start: u,
+ end: b + p,
+ playout: { start: M, end: o },
+ integrated: { start: l, end: c },
+ }));
+ }
+ this.setDurations(s, o, c);
+ } else
+ (i.push({
+ previousEvent: null,
+ nextEvent: null,
+ start: 0,
+ end: s,
+ playout: { start: 0, end: s },
+ integrated: { start: 0, end: s },
+ }),
+ this.setDurations(s, s, s));
+ return i;
+ }
+ setDurations(e, n, i) {
+ this.durations = { primary: e, playout: n, integrated: i };
+ }
+ resolveOffsets(e, n) {
+ const i = n.main.details,
+ r = i.live ? 1 / 0 : i.edge;
+ let s = 0,
+ o = -1;
+ e.forEach((a, u) => {
+ const c = a.cue.pre,
+ b = a.cue.post,
+ l = c ? 0 : b ? r : a.startTime;
+ (this.updateAssetDurations(a),
+ o === l ? (a.cumulativeDuration = s) : ((s = 0), (o = l)),
+ !b &&
+ a.snapOptions.in &&
+ (a.resumeAnchor =
+ zi(null, i.fragments, a.startOffset + a.resumptionOffset, 0, 0) ||
+ void 0),
+ a.appendInPlace &&
+ !a.appendInPlaceStarted &&
+ (this.primaryCanResumeInPlaceAt(a, n) || (a.appendInPlace = !1)),
+ !a.appendInPlace &&
+ u + 1 < e.length &&
+ e[u + 1].startTime - e[u].resumeTime < X3 &&
+ ((e[u + 1].appendInPlace = !1),
+ e[u + 1].appendInPlace &&
+ this.warn(
+ `Could not change append strategy for abutting event ${a}`,
+ )));
+ const M = p0(a.resumeOffset) ? a.resumeOffset : a.duration;
+ s += M;
+ });
+ }
+ primaryCanResumeInPlaceAt(e, n) {
+ const i = e.resumeTime,
+ r = e.startTime + e.resumptionOffset;
+ return Math.abs(i - r) > er
+ ? (this.log(
+ `"${e.identifier}" resumption ${i} not aligned with estimated timeline end ${r}`,
+ ),
+ !1)
+ : !Object.keys(n).some((o) => {
+ const a = n[o].details,
+ u = a.edge;
+ if (i >= u)
+ return (
+ this.log(
+ `"${e.identifier}" resumption ${i} past ${o} playlist end ${u}`,
+ ),
+ !1
+ );
+ const c = zi(null, a.fragments, i);
+ if (!c)
+ return (
+ this.log(
+ `"${e.identifier}" resumption ${i} does not align with any fragments in ${o} playlist (${a.fragStart}-${a.fragmentEnd})`,
+ ),
+ !0
+ );
+ const b = o === "audio" ? 0.175 : 0;
+ return Math.abs(c.start - i) < er + b || Math.abs(c.end - i) < er + b
+ ? !1
+ : (this.log(
+ `"${e.identifier}" resumption ${i} not aligned with ${o} fragment bounds (${c.start}-${c.end} sn: ${c.sn} cc: ${c.cc})`,
+ ),
+ !0);
+ });
+ }
+ updateAssetDurations(e) {
+ if (!e.assetListLoaded) return;
+ const n = e.timelineStart;
+ let i = 0,
+ r = !1,
+ s = !1;
+ for (let o = 0; o < e.assetList.length; o++) {
+ const a = e.assetList[o],
+ u = n + i;
+ ((a.startOffset = i),
+ (a.timelineStart = u),
+ r || (r = a.duration === null),
+ s || (s = !!a.error));
+ const c = a.error ? 0 : a.duration || 0;
+ i += c;
+ }
+ r && !s ? (e.duration = Math.max(i, e.duration)) : (e.duration = i);
+ }
+ removeEvent(e) {
+ (e.reset(), delete this.eventMap[e.identifier]);
+ }
+}
+function ye(t) {
+ return `[${t.event ? '"' + t.event.identifier + '"' : "primary"}: ${t.start.toFixed(2)}-${t.end.toFixed(2)}]`;
+}
+class OD {
+ constructor(e) {
+ ((this.hls = void 0), (this.hls = e));
+ }
+ destroy() {
+ this.hls = null;
+ }
+ loadAssetList(e, n) {
+ const i = e.assetListUrl;
+ let r;
+ try {
+ r = r6(i, this.hls.sessionId, e.baseUrl);
+ } catch (p) {
+ const M = this.assignAssetListError(e, $.ASSET_LIST_LOAD_ERROR, p, i);
+ this.hls.trigger(L.ERROR, M);
+ return;
+ }
+ n &&
+ r.protocol !== "data:" &&
+ r.searchParams.set("_HLS_start_offset", "" + n);
+ const s = this.hls.config,
+ o = s.loader,
+ a = new o(s),
+ u = { responseType: "json", url: r.href },
+ c = s.interstitialAssetListLoadPolicy.default,
+ b = {
+ loadPolicy: c,
+ timeout: c.maxLoadTimeMs,
+ maxRetry: 0,
+ retryDelay: 0,
+ maxRetryDelay: 0,
+ },
+ l = {
+ onSuccess: (p, M, d, O) => {
+ const f = p.data,
+ z = f?.ASSETS;
+ if (!Array.isArray(z)) {
+ const g = this.assignAssetListError(
+ e,
+ $.ASSET_LIST_PARSING_ERROR,
+ new Error("Invalid interstitial asset list"),
+ d.url,
+ M,
+ O,
+ );
+ this.hls.trigger(L.ERROR, g);
+ return;
+ }
+ ((e.assetListResponse = f),
+ this.hls.trigger(L.ASSET_LIST_LOADED, {
+ event: e,
+ assetListResponse: f,
+ networkDetails: O,
+ }));
+ },
+ onError: (p, M, d, O) => {
+ const f = this.assignAssetListError(
+ e,
+ $.ASSET_LIST_LOAD_ERROR,
+ new Error(
+ `Error loading X-ASSET-LIST: HTTP status ${p.code} ${p.text} (${M.url})`,
+ ),
+ M.url,
+ O,
+ d,
+ );
+ this.hls.trigger(L.ERROR, f);
+ },
+ onTimeout: (p, M, d) => {
+ const O = this.assignAssetListError(
+ e,
+ $.ASSET_LIST_LOAD_TIMEOUT,
+ new Error(`Timeout loading X-ASSET-LIST (${M.url})`),
+ M.url,
+ p,
+ d,
+ );
+ this.hls.trigger(L.ERROR, O);
+ },
+ };
+ return (
+ a.load(u, b, l),
+ this.hls.trigger(L.ASSET_LIST_LOADING, { event: e }),
+ a
+ );
+ }
+ assignAssetListError(e, n, i, r, s, o) {
+ return (
+ (e.error = i),
+ {
+ type: h0.NETWORK_ERROR,
+ details: n,
+ fatal: !1,
+ interstitial: e,
+ url: r,
+ error: i,
+ networkDetails: o,
+ stats: s,
+ }
+ );
+ }
+}
+function F3(t) {
+ t?.play().catch(() => {});
+}
+function Po(t, e) {
+ return `[${t}] Advancing timeline position to ${e}`;
+}
+class hD extends Re {
+ constructor(e, n) {
+ (super("interstitials", e.logger),
+ (this.HlsPlayerClass = void 0),
+ (this.hls = void 0),
+ (this.assetListLoader = void 0),
+ (this.mediaSelection = null),
+ (this.altSelection = null),
+ (this.media = null),
+ (this.detachedData = null),
+ (this.requiredTracks = null),
+ (this.manager = null),
+ (this.playerQueue = []),
+ (this.bufferedPos = -1),
+ (this.timelinePos = -1),
+ (this.schedule = void 0),
+ (this.playingItem = null),
+ (this.bufferingItem = null),
+ (this.waitingItem = null),
+ (this.endedItem = null),
+ (this.playingAsset = null),
+ (this.endedAsset = null),
+ (this.bufferingAsset = null),
+ (this.shouldPlay = !1),
+ (this.onPlay = () => {
+ this.shouldPlay = !0;
+ }),
+ (this.onPause = () => {
+ this.shouldPlay = !1;
+ }),
+ (this.onSeeking = () => {
+ const i = this.currentTime;
+ if (i === void 0 || this.playbackDisabled || !this.schedule) return;
+ const r = i - this.timelinePos;
+ if (Math.abs(r) < 1 / 7056e5) return;
+ const o = r <= -0.01;
+ ((this.timelinePos = i), (this.bufferedPos = i));
+ const a = this.playingItem;
+ if (!a) {
+ this.checkBuffer();
+ return;
+ }
+ if (
+ (o &&
+ this.schedule.resetErrorsInRange(i, i - r) &&
+ this.updateSchedule(!0),
+ this.checkBuffer(),
+ (o && i < a.start) || i >= a.end)
+ ) {
+ var u;
+ const M = this.findItemIndex(a);
+ let d = this.schedule.findItemIndexAtTime(i);
+ if (
+ (d === -1 &&
+ ((d = M + (o ? -1 : 1)),
+ this.log(
+ `seeked ${o ? "back " : ""}to position not covered by schedule ${i} (resolving from ${M} to ${d})`,
+ )),
+ !this.isInterstitial(a) &&
+ (u = this.media) != null &&
+ u.paused &&
+ (this.shouldPlay = !1),
+ !o && d > M)
+ ) {
+ const O = this.schedule.findJumpRestrictedIndex(M + 1, d);
+ if (O > M) {
+ this.setSchedulePosition(O);
+ return;
+ }
+ }
+ this.setSchedulePosition(d);
+ return;
+ }
+ const c = this.playingAsset;
+ if (!c) {
+ if (this.playingLastItem && this.isInterstitial(a)) {
+ const M = a.event.assetList[0];
+ M &&
+ ((this.endedItem = this.playingItem),
+ (this.playingItem = null),
+ this.setScheduleToAssetAtTime(i, M));
+ }
+ return;
+ }
+ const b = c.timelineStart,
+ l = c.duration || 0;
+ if ((o && i < b) || i >= b + l) {
+ var p;
+ ((p = a.event) != null &&
+ p.appendInPlace &&
+ (this.clearInterstitial(a.event, a), this.flushFrontBuffer(i)),
+ this.setScheduleToAssetAtTime(i, c));
+ }
+ }),
+ (this.onTimeupdate = () => {
+ const i = this.currentTime;
+ if (i === void 0 || this.playbackDisabled) return;
+ if (i > this.timelinePos)
+ ((this.timelinePos = i), i > this.bufferedPos && this.checkBuffer());
+ else return;
+ const r = this.playingItem;
+ if (!r || this.playingLastItem) return;
+ if (i >= r.end) {
+ this.timelinePos = r.end;
+ const a = this.findItemIndex(r);
+ this.setSchedulePosition(a + 1);
+ }
+ const s = this.playingAsset;
+ if (!s) return;
+ const o = s.timelineStart + (s.duration || 0);
+ i >= o && this.setScheduleToAssetAtTime(i, s);
+ }),
+ (this.onScheduleUpdate = (i, r) => {
+ const s = this.schedule;
+ if (!s) return;
+ const o = this.playingItem,
+ a = s.events || [],
+ u = s.items || [],
+ c = s.durations,
+ b = i.map((O) => O.identifier),
+ l = !!(a.length || b.length);
+ ((l || r) &&
+ this.log(`INTERSTITIALS_UPDATED (${a.length}): ${a}
+Schedule: ${u.map((O) => ye(O))} pos: ${this.timelinePos}`),
+ b.length && this.log(`Removed events ${b}`));
+ let p = null,
+ M = null;
+ (o &&
+ ((p = this.updateItem(o, this.timelinePos)),
+ this.itemsMatch(o, p)
+ ? (this.playingItem = p)
+ : (this.waitingItem = this.endedItem = null)),
+ (this.waitingItem = this.updateItem(this.waitingItem)),
+ (this.endedItem = this.updateItem(this.endedItem)));
+ const d = this.bufferingItem;
+ if (
+ (d &&
+ ((M = this.updateItem(d, this.bufferedPos)),
+ this.itemsMatch(d, M)
+ ? (this.bufferingItem = M)
+ : d.event &&
+ ((this.bufferingItem = this.playingItem),
+ this.clearInterstitial(d.event, null))),
+ i.forEach((O) => {
+ O.assetList.forEach((f) => {
+ this.clearAssetPlayer(f.identifier, null);
+ });
+ }),
+ this.playerQueue.forEach((O) => {
+ if (O.interstitial.appendInPlace) {
+ const f = O.assetItem.timelineStart,
+ z = O.timelineOffset - f;
+ if (z)
+ try {
+ O.timelineOffset = f;
+ } catch (g) {
+ Math.abs(z) > er &&
+ this.warn(
+ `${g} ("${O.assetId}" ${O.timelineOffset}->${f})`,
+ );
+ }
+ }
+ }),
+ l || r)
+ ) {
+ if (
+ (this.hls.trigger(L.INTERSTITIALS_UPDATED, {
+ events: a.slice(0),
+ schedule: u.slice(0),
+ durations: c,
+ removedIds: b,
+ }),
+ this.isInterstitial(o) && b.includes(o.event.identifier))
+ ) {
+ (this.warn(
+ `Interstitial "${o.event.identifier}" removed while playing`,
+ ),
+ this.primaryFallback(o.event));
+ return;
+ }
+ (o && this.trimInPlace(p, o),
+ d && M !== p && this.trimInPlace(M, d),
+ this.checkBuffer());
+ }
+ }),
+ (this.hls = e),
+ (this.HlsPlayerClass = n),
+ (this.assetListLoader = new OD(e)),
+ (this.schedule = new zD(this.onScheduleUpdate, e.logger)),
+ this.registerListeners());
+ }
+ registerListeners() {
+ const e = this.hls;
+ e &&
+ (e.on(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.on(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.on(L.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this),
+ e.on(L.AUDIO_TRACK_UPDATED, this.onAudioTrackUpdated, this),
+ e.on(L.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this),
+ e.on(L.SUBTITLE_TRACK_UPDATED, this.onSubtitleTrackUpdated, this),
+ e.on(L.EVENT_CUE_ENTER, this.onInterstitialCueEnter, this),
+ e.on(L.ASSET_LIST_LOADED, this.onAssetListLoaded, this),
+ e.on(L.BUFFER_APPENDED, this.onBufferAppended, this),
+ e.on(L.BUFFER_FLUSHED, this.onBufferFlushed, this),
+ e.on(L.BUFFERED_TO_END, this.onBufferedToEnd, this),
+ e.on(L.MEDIA_ENDED, this.onMediaEnded, this),
+ e.on(L.ERROR, this.onError, this),
+ e.on(L.DESTROYING, this.onDestroying, this));
+ }
+ unregisterListeners() {
+ const e = this.hls;
+ e &&
+ (e.off(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.off(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.off(L.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this),
+ e.off(L.AUDIO_TRACK_UPDATED, this.onAudioTrackUpdated, this),
+ e.off(L.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this),
+ e.off(L.SUBTITLE_TRACK_UPDATED, this.onSubtitleTrackUpdated, this),
+ e.off(L.EVENT_CUE_ENTER, this.onInterstitialCueEnter, this),
+ e.off(L.ASSET_LIST_LOADED, this.onAssetListLoaded, this),
+ e.off(L.BUFFER_CODECS, this.onBufferCodecs, this),
+ e.off(L.BUFFER_APPENDED, this.onBufferAppended, this),
+ e.off(L.BUFFER_FLUSHED, this.onBufferFlushed, this),
+ e.off(L.BUFFERED_TO_END, this.onBufferedToEnd, this),
+ e.off(L.MEDIA_ENDED, this.onMediaEnded, this),
+ e.off(L.ERROR, this.onError, this),
+ e.off(L.DESTROYING, this.onDestroying, this));
+ }
+ startLoad() {
+ this.resumeBuffering();
+ }
+ stopLoad() {
+ this.pauseBuffering();
+ }
+ resumeBuffering() {
+ var e;
+ (e = this.getBufferingPlayer()) == null || e.resumeBuffering();
+ }
+ pauseBuffering() {
+ var e;
+ (e = this.getBufferingPlayer()) == null || e.pauseBuffering();
+ }
+ destroy() {
+ (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.schedule =
+ this.manager =
+ null),
+ (this.hls = this.HlsPlayerClass = this.log = null),
+ (this.assetListLoader = null),
+ (this.onPlay = this.onPause = this.onSeeking = this.onTimeupdate = null),
+ (this.onScheduleUpdate = null));
+ }
+ onDestroying() {
+ const e = this.primaryMedia || this.media;
+ e && this.removeMediaListeners(e);
+ }
+ removeMediaListeners(e) {
+ (G1(e, "play", this.onPlay),
+ G1(e, "pause", this.onPause),
+ G1(e, "seeking", this.onSeeking),
+ G1(e, "timeupdate", this.onTimeupdate));
+ }
+ onMediaAttaching(e, n) {
+ const i = (this.media = n.media);
+ (I1(i, "seeking", this.onSeeking),
+ I1(i, "timeupdate", this.onTimeupdate),
+ I1(i, "play", this.onPlay),
+ I1(i, "pause", this.onPause));
+ }
+ onMediaAttached(e, n) {
+ const i = this.effectivePlayingItem,
+ r = this.detachedData;
+ if (((this.detachedData = null), i === null)) this.checkStart();
+ else if (!r) {
+ this.clearScheduleState();
+ const s = this.findItemIndex(i);
+ this.setSchedulePosition(s);
+ }
+ }
+ clearScheduleState() {
+ (this.log("clear schedule state"),
+ (this.playingItem =
+ this.bufferingItem =
+ this.waitingItem =
+ this.endedItem =
+ this.playingAsset =
+ this.endedAsset =
+ this.bufferingAsset =
+ null));
+ }
+ onMediaDetaching(e, n) {
+ const i = !!n.transferMedia,
+ r = this.media;
+ if (
+ ((this.media = null),
+ !i && (r && this.removeMediaListeners(r), this.detachedData))
+ ) {
+ const s = this.getBufferingPlayer();
+ (s &&
+ (this.log(`Removing schedule state for detachedData and ${s}`),
+ (this.playingAsset =
+ this.endedAsset =
+ this.bufferingAsset =
+ this.bufferingItem =
+ this.waitingItem =
+ this.detachedData =
+ null),
+ s.detachMedia()),
+ (this.shouldPlay = !1));
+ }
+ }
+ get interstitialsManager() {
+ if (!this.hls) return null;
+ if (this.manager) return this.manager;
+ const e = this,
+ n = () => e.bufferingItem || e.waitingItem,
+ i = (l) => l && e.getAssetPlayer(l.identifier),
+ r = (l, p, M, d, O) => {
+ if (l) {
+ let f = l[p].start;
+ const z = l.event;
+ if (z) {
+ if (p === "playout" || z.timelineOccupancy !== yc.Point) {
+ const g = i(M);
+ g?.interstitial === z && (f += g.assetItem.startOffset + g[O]);
+ }
+ } else {
+ const g = d === "bufferedPos" ? o() : e[d];
+ f += g - l.start;
+ }
+ return f;
+ }
+ return 0;
+ },
+ s = (l, p) => {
+ var M;
+ if (
+ l !== 0 &&
+ p !== "primary" &&
+ (M = e.schedule) != null &&
+ M.length
+ ) {
+ var d;
+ const O = e.schedule.findItemIndexAtTime(l),
+ f = (d = e.schedule.items) == null ? void 0 : d[O];
+ if (f) {
+ const z = f[p].start - f.start;
+ return l + z;
+ }
+ }
+ return l;
+ },
+ o = () => {
+ const l = e.bufferedPos;
+ return l === Number.MAX_VALUE ? a("primary") : Math.max(l, 0);
+ },
+ a = (l) => {
+ var p, M;
+ return (p = e.primaryDetails) != null && p.live
+ ? e.primaryDetails.edge
+ : ((M = e.schedule) == null ? void 0 : M.durations[l]) || 0;
+ },
+ u = (l, p) => {
+ var M, d;
+ const O = e.effectivePlayingItem;
+ if (
+ (O != null && (M = O.event) != null && M.restrictions.skip) ||
+ !e.schedule
+ )
+ return;
+ e.log(`seek to ${l} "${p}"`);
+ const f = e.effectivePlayingItem,
+ z = e.schedule.findItemIndexAtTime(l, p),
+ g = (d = e.schedule.items) == null ? void 0 : d[z],
+ A = e.getBufferingPlayer(),
+ h = A?.interstitial,
+ q = h?.appendInPlace,
+ v = f && e.itemsMatch(f, g);
+ if (f && (q || v)) {
+ const m = i(e.playingAsset),
+ E = m?.media || e.primaryMedia;
+ if (E) {
+ const _ =
+ p === "primary"
+ ? E.currentTime
+ : r(f, p, e.playingAsset, "timelinePos", "currentTime"),
+ T = l - _,
+ y = (q ? _ : E.currentTime) + T;
+ if (y >= 0 && (!m || q || y <= m.duration)) {
+ E.currentTime = y;
+ return;
+ }
+ }
+ }
+ if (g) {
+ let m = l;
+ if (p !== "primary") {
+ const _ = g[p].start,
+ T = l - _;
+ m = g.start + T;
+ }
+ const E = !e.isInterstitial(g);
+ if (
+ (!e.isInterstitial(f) || f.event.appendInPlace) &&
+ (E || g.event.appendInPlace)
+ ) {
+ const _ = e.media || (q ? A?.media : null);
+ _ && (_.currentTime = m);
+ } else if (f) {
+ const _ = e.findItemIndex(f);
+ if (z > _) {
+ const y = e.schedule.findJumpRestrictedIndex(_ + 1, z);
+ if (y > _) {
+ e.setSchedulePosition(y);
+ return;
+ }
+ }
+ let T = 0;
+ if (E) ((e.timelinePos = m), e.checkBuffer());
+ else {
+ const y = g.event.assetList,
+ W = l - (g[p] || g).start;
+ for (let x = y.length; x--; ) {
+ const B = y[x];
+ if (
+ B.duration &&
+ W >= B.startOffset &&
+ W < B.startOffset + B.duration
+ ) {
+ T = x;
+ break;
+ }
+ }
+ }
+ e.setSchedulePosition(z, T);
+ }
+ }
+ },
+ c = () => {
+ const l = e.effectivePlayingItem;
+ if (e.isInterstitial(l)) return l;
+ const p = n();
+ return e.isInterstitial(p) ? p : null;
+ },
+ b = {
+ get bufferedEnd() {
+ const l = n(),
+ p = e.bufferingItem;
+ if (p && p === l) {
+ var M;
+ return (
+ r(p, "playout", e.bufferingAsset, "bufferedPos", "bufferedEnd") -
+ p.playout.start ||
+ ((M = e.bufferingAsset) == null ? void 0 : M.startOffset) ||
+ 0
+ );
+ }
+ return 0;
+ },
+ get currentTime() {
+ const l = c(),
+ p = e.effectivePlayingItem;
+ return p && p === l
+ ? r(
+ p,
+ "playout",
+ e.effectivePlayingAsset,
+ "timelinePos",
+ "currentTime",
+ ) - p.playout.start
+ : 0;
+ },
+ set currentTime(l) {
+ const p = c(),
+ M = e.effectivePlayingItem;
+ M && M === p && u(l + M.playout.start, "playout");
+ },
+ get duration() {
+ const l = c();
+ return l ? l.playout.end - l.playout.start : 0;
+ },
+ get assetPlayers() {
+ var l;
+ const p = (l = c()) == null ? void 0 : l.event.assetList;
+ return p ? p.map((M) => e.getAssetPlayer(M.identifier)) : [];
+ },
+ get playingIndex() {
+ var l;
+ const p = (l = c()) == null ? void 0 : l.event;
+ return p && e.effectivePlayingAsset
+ ? p.findAssetIndex(e.effectivePlayingAsset)
+ : -1;
+ },
+ get scheduleItem() {
+ return c();
+ },
+ };
+ return (this.manager = {
+ get events() {
+ var l;
+ return (
+ ((l = e.schedule) == null || (l = l.events) == null
+ ? void 0
+ : l.slice(0)) || []
+ );
+ },
+ get schedule() {
+ var l;
+ return (
+ ((l = e.schedule) == null || (l = l.items) == null
+ ? void 0
+ : l.slice(0)) || []
+ );
+ },
+ get interstitialPlayer() {
+ return c() ? b : null;
+ },
+ get playerQueue() {
+ return e.playerQueue.slice(0);
+ },
+ get bufferingAsset() {
+ return e.bufferingAsset;
+ },
+ get bufferingItem() {
+ return n();
+ },
+ get bufferingIndex() {
+ const l = n();
+ return e.findItemIndex(l);
+ },
+ get playingAsset() {
+ return e.effectivePlayingAsset;
+ },
+ get playingItem() {
+ return e.effectivePlayingItem;
+ },
+ get playingIndex() {
+ const l = e.effectivePlayingItem;
+ return e.findItemIndex(l);
+ },
+ primary: {
+ get bufferedEnd() {
+ return o();
+ },
+ get currentTime() {
+ const l = e.timelinePos;
+ return l > 0 ? l : 0;
+ },
+ set currentTime(l) {
+ u(l, "primary");
+ },
+ get duration() {
+ return a("primary");
+ },
+ get seekableStart() {
+ var l;
+ return (
+ ((l = e.primaryDetails) == null ? void 0 : l.fragmentStart) || 0
+ );
+ },
+ },
+ integrated: {
+ get bufferedEnd() {
+ return r(
+ n(),
+ "integrated",
+ e.bufferingAsset,
+ "bufferedPos",
+ "bufferedEnd",
+ );
+ },
+ get currentTime() {
+ return r(
+ e.effectivePlayingItem,
+ "integrated",
+ e.effectivePlayingAsset,
+ "timelinePos",
+ "currentTime",
+ );
+ },
+ set currentTime(l) {
+ u(l, "integrated");
+ },
+ get duration() {
+ return a("integrated");
+ },
+ get seekableStart() {
+ var l;
+ return s(
+ ((l = e.primaryDetails) == null ? void 0 : l.fragmentStart) || 0,
+ "integrated",
+ );
+ },
+ },
+ skip: () => {
+ const l = e.effectivePlayingItem,
+ p = l?.event;
+ if (p && !p.restrictions.skip) {
+ const M = e.findItemIndex(l);
+ if (p.appendInPlace) {
+ const d = l.playout.start + l.event.duration;
+ u(d + 0.001, "playout");
+ } else e.advanceAfterAssetEnded(p, M, 1 / 0);
+ }
+ },
+ });
+ }
+ get effectivePlayingItem() {
+ return this.waitingItem || this.playingItem || this.endedItem;
+ }
+ get effectivePlayingAsset() {
+ return this.playingAsset || this.endedAsset;
+ }
+ get playingLastItem() {
+ var e;
+ const n = this.playingItem,
+ i = (e = this.schedule) == null ? void 0 : e.items;
+ return !this.playbackStarted || !n || !i
+ ? !1
+ : this.findItemIndex(n) === i.length - 1;
+ }
+ get playbackStarted() {
+ return this.effectivePlayingItem !== null;
+ }
+ get currentTime() {
+ var e, n;
+ if (this.mediaSelection === null) return;
+ const i = this.waitingItem || this.playingItem;
+ if (this.isInterstitial(i) && !i.event.appendInPlace) return;
+ let r = this.media;
+ !r &&
+ (e = this.bufferingItem) != null &&
+ (e = e.event) != null &&
+ e.appendInPlace &&
+ (r = this.primaryMedia);
+ const s = (n = r) == null ? void 0 : n.currentTime;
+ if (!(s === void 0 || !p0(s))) return s;
+ }
+ get primaryMedia() {
+ var e;
+ return (
+ this.media || ((e = this.detachedData) == null ? void 0 : e.media) || null
+ );
+ }
+ isInterstitial(e) {
+ return !!(e != null && e.event);
+ }
+ retreiveMediaSource(e, n) {
+ const i = this.getAssetPlayer(e);
+ i && this.transferMediaFromPlayer(i, n);
+ }
+ transferMediaFromPlayer(e, n) {
+ const i = e.interstitial.appendInPlace,
+ r = e.media;
+ if (i && r === this.primaryMedia) {
+ if (
+ ((this.bufferingAsset = null),
+ (!n || (this.isInterstitial(n) && !n.event.appendInPlace)) && n && r)
+ ) {
+ this.detachedData = { media: r };
+ return;
+ }
+ const s = e.transferMedia();
+ (this.log(`transfer MediaSource from ${e} ${Y0(s)}`),
+ (this.detachedData = s));
+ } else n && r && (this.shouldPlay || (this.shouldPlay = !r.paused));
+ }
+ transferMediaTo(e, n) {
+ var i, r;
+ if (e.media === n) return;
+ let s = null;
+ const o = this.hls,
+ a = e !== o,
+ u = a && e.interstitial.appendInPlace,
+ c = (i = this.detachedData) == null ? void 0 : i.mediaSource;
+ let b;
+ if (o.media)
+ (u && ((s = o.transferMedia()), (this.detachedData = s)),
+ (b = "Primary"));
+ else if (c) {
+ const d = this.getBufferingPlayer();
+ d
+ ? ((s = d.transferMedia()), (b = `${d}`))
+ : (b = "detached MediaSource");
+ } else b = "detached media";
+ if (!s) {
+ if (c)
+ ((s = this.detachedData),
+ this.log(`using detachedData: MediaSource ${Y0(s)}`));
+ else if (!this.detachedData || o.media === n) {
+ const d = this.playerQueue;
+ (d.length > 1 &&
+ d.forEach((O) => {
+ if (a && O.interstitial.appendInPlace !== u) {
+ const f = O.interstitial;
+ (this.clearInterstitial(O.interstitial, null),
+ (f.appendInPlace = !1),
+ f.appendInPlace &&
+ this.warn(
+ `Could not change append strategy for queued assets ${f}`,
+ ));
+ }
+ }),
+ this.hls.detachMedia(),
+ (this.detachedData = { media: n }));
+ }
+ }
+ const l =
+ s &&
+ "mediaSource" in s &&
+ ((r = s.mediaSource) == null ? void 0 : r.readyState) !== "closed",
+ p = l && s ? s : n;
+ this.log(
+ `${l ? "transfering MediaSource" : "attaching media"} to ${a ? e : "Primary"} from ${b} (media.currentTime: ${n.currentTime})`,
+ );
+ const M = this.schedule;
+ if (p === s && M) {
+ const d = a && e.assetId === M.assetIdAtEnd;
+ p.overrides = {
+ duration: M.duration,
+ endOfStream: !a || d,
+ cueRemoval: !a,
+ };
+ }
+ e.attachMedia(p);
+ }
+ onInterstitialCueEnter() {
+ this.onTimeupdate();
+ }
+ checkStart() {
+ const e = this.schedule,
+ n = e?.events;
+ if (!n || this.playbackDisabled || !this.media) return;
+ this.bufferedPos === -1 && (this.bufferedPos = 0);
+ const i = this.timelinePos,
+ r = this.effectivePlayingItem;
+ if (i === -1) {
+ const s = this.hls.startPosition;
+ if (
+ (this.log(Po("checkStart", s)),
+ (this.timelinePos = s),
+ n.length && n[0].cue.pre)
+ ) {
+ const o = e.findEventIndex(n[0].identifier);
+ this.setSchedulePosition(o);
+ } else if (s >= 0 || !this.primaryLive) {
+ const o = (this.timelinePos = s > 0 ? s : 0),
+ a = e.findItemIndexAtTime(o);
+ this.setSchedulePosition(a);
+ }
+ } else if (r && !this.playingItem) {
+ const s = e.findItemIndex(r);
+ this.setSchedulePosition(s);
+ }
+ }
+ advanceAssetBuffering(e, n) {
+ const i = e.event,
+ r = i.findAssetIndex(n),
+ s = Eu(i, r);
+ if (!i.isAssetPastPlayoutLimit(s)) this.bufferedToEvent(e, s);
+ else if (this.schedule) {
+ var o;
+ const a =
+ (o = this.schedule.items) == null
+ ? void 0
+ : o[this.findItemIndex(e) + 1];
+ a && this.bufferedToItem(a);
+ }
+ }
+ advanceAfterAssetEnded(e, n, i) {
+ const r = Eu(e, i);
+ if (e.isAssetPastPlayoutLimit(r)) {
+ if (this.schedule) {
+ const s = this.schedule.items;
+ if (s) {
+ const o = n + 1,
+ a = s.length;
+ if (o >= a) {
+ this.setSchedulePosition(-1);
+ return;
+ }
+ const u = e.resumeTime;
+ (this.timelinePos < u &&
+ (this.log(Po("advanceAfterAssetEnded", u)),
+ (this.timelinePos = u),
+ e.appendInPlace && this.advanceInPlace(u),
+ this.checkBuffer(this.bufferedPos < u)),
+ this.setSchedulePosition(o));
+ }
+ }
+ } else {
+ if (e.appendInPlace) {
+ const s = e.assetList[r];
+ s && this.advanceInPlace(s.timelineStart);
+ }
+ this.setSchedulePosition(n, r);
+ }
+ }
+ setScheduleToAssetAtTime(e, n) {
+ const i = this.schedule;
+ if (!i) return;
+ const r = n.parentIdentifier,
+ s = i.getEvent(r);
+ if (s) {
+ const o = i.findEventIndex(r),
+ a = i.findAssetIndex(s, e);
+ this.advanceAfterAssetEnded(s, o, a - 1);
+ }
+ }
+ setSchedulePosition(e, n) {
+ var i;
+ const r = (i = this.schedule) == null ? void 0 : i.items;
+ if (!r || this.playbackDisabled) return;
+ const s = e >= 0 ? r[e] : null;
+ this.log(
+ `setSchedulePosition ${e}, ${n} (${s && ye(s)}) pos: ${this.timelinePos}`,
+ );
+ const o = this.waitingItem || this.playingItem,
+ a = this.playingLastItem;
+ if (this.isInterstitial(o)) {
+ const b = o.event,
+ l = this.playingAsset,
+ p = l?.identifier,
+ M = p ? this.getAssetPlayer(p) : null;
+ if (
+ M &&
+ p &&
+ (!this.eventItemsMatch(o, s) ||
+ (n !== void 0 && p !== b.assetList[n].identifier))
+ ) {
+ var u;
+ const d = b.findAssetIndex(l);
+ if (
+ (this.log(
+ `INTERSTITIAL_ASSET_ENDED ${d + 1}/${b.assetList.length} ${Ii(l)}`,
+ ),
+ (this.endedAsset = l),
+ (this.playingAsset = null),
+ this.hls.trigger(L.INTERSTITIAL_ASSET_ENDED, {
+ asset: l,
+ assetListIndex: d,
+ event: b,
+ schedule: r.slice(0),
+ scheduleIndex: e,
+ player: M,
+ }),
+ o !== this.playingItem)
+ ) {
+ this.itemsMatch(o, this.playingItem) &&
+ !this.playingAsset &&
+ this.advanceAfterAssetEnded(
+ b,
+ this.findItemIndex(this.playingItem),
+ d,
+ );
+ return;
+ }
+ (this.retreiveMediaSource(p, s),
+ M.media &&
+ !((u = this.detachedData) != null && u.mediaSource) &&
+ M.detachMedia());
+ }
+ if (
+ !this.eventItemsMatch(o, s) &&
+ ((this.endedItem = o),
+ (this.playingItem = null),
+ this.log(`INTERSTITIAL_ENDED ${b} ${ye(o)}`),
+ (b.hasPlayed = !0),
+ this.hls.trigger(L.INTERSTITIAL_ENDED, {
+ event: b,
+ schedule: r.slice(0),
+ scheduleIndex: e,
+ }),
+ b.cue.once)
+ ) {
+ var c;
+ this.updateSchedule();
+ const d = (c = this.schedule) == null ? void 0 : c.items;
+ if (s && d) {
+ const O = this.findItemIndex(s);
+ this.advanceSchedule(O, d, n, o, a);
+ }
+ return;
+ }
+ }
+ this.advanceSchedule(e, r, n, o, a);
+ }
+ advanceSchedule(e, n, i, r, s) {
+ const o = this.schedule;
+ if (!o) return;
+ const a = n[e] || null,
+ u = this.primaryMedia,
+ c = this.playerQueue;
+ if (
+ (c.length &&
+ c.forEach((b) => {
+ const l = b.interstitial,
+ p = o.findEventIndex(l.identifier);
+ (p < e || p > e + 1) && this.clearInterstitial(l, a);
+ }),
+ this.isInterstitial(a))
+ ) {
+ this.timelinePos = Math.min(Math.max(this.timelinePos, a.start), a.end);
+ const b = a.event;
+ if (i === void 0) {
+ i = o.findAssetIndex(b, this.timelinePos);
+ const d = Eu(b, i - 1);
+ if (
+ b.isAssetPastPlayoutLimit(d) ||
+ (b.appendInPlace && this.timelinePos === a.end)
+ ) {
+ this.advanceAfterAssetEnded(b, e, i);
+ return;
+ }
+ i = d;
+ }
+ const l = this.waitingItem;
+ this.assetsBuffered(a, u) || this.setBufferingItem(a);
+ let p = this.preloadAssets(b, i);
+ if (
+ (this.eventItemsMatch(a, l || r) ||
+ ((this.waitingItem = a),
+ this.log(
+ `INTERSTITIAL_STARTED ${ye(a)} ${b.appendInPlace ? "append in place" : ""}`,
+ ),
+ this.hls.trigger(L.INTERSTITIAL_STARTED, {
+ event: b,
+ schedule: n.slice(0),
+ scheduleIndex: e,
+ })),
+ !b.assetListLoaded)
+ ) {
+ this.log(`Waiting for ASSET-LIST to complete loading ${b}`);
+ return;
+ }
+ if (
+ (b.assetListLoader &&
+ (b.assetListLoader.destroy(), (b.assetListLoader = void 0)),
+ !u)
+ ) {
+ this.log(`Waiting for attachMedia to start Interstitial ${b}`);
+ return;
+ }
+ ((this.waitingItem = this.endedItem = null), (this.playingItem = a));
+ const M = b.assetList[i];
+ if (!M) {
+ this.advanceAfterAssetEnded(b, e, i || 0);
+ return;
+ }
+ if (
+ (p || (p = this.getAssetPlayer(M.identifier)),
+ p === null || p.destroyed)
+ ) {
+ const d = b.assetList.length;
+ (this.warn(`asset ${i + 1}/${d} player destroyed ${b}`),
+ (p = this.createAssetPlayer(b, M, i)),
+ p.loadSource());
+ }
+ if (
+ !this.eventItemsMatch(a, this.bufferingItem) &&
+ b.appendInPlace &&
+ this.isAssetBuffered(M)
+ )
+ return;
+ (this.startAssetPlayer(p, i, n, e, u), this.shouldPlay && F3(p.media));
+ } else
+ a
+ ? (this.resumePrimary(a, e, r), this.shouldPlay && F3(this.hls.media))
+ : s &&
+ this.isInterstitial(r) &&
+ ((this.endedItem = null),
+ (this.playingItem = r),
+ r.event.appendInPlace ||
+ this.attachPrimary(o.durations.primary, null));
+ }
+ get playbackDisabled() {
+ return this.hls.config.enableInterstitialPlayback === !1;
+ }
+ get primaryDetails() {
+ var e;
+ return (e = this.mediaSelection) == null ? void 0 : e.main.details;
+ }
+ get primaryLive() {
+ var e;
+ return !!((e = this.primaryDetails) != null && e.live);
+ }
+ resumePrimary(e, n, i) {
+ var r, s;
+ if (
+ ((this.playingItem = e),
+ (this.playingAsset = this.endedAsset = null),
+ (this.waitingItem = this.endedItem = null),
+ this.bufferedToItem(e),
+ this.log(`resuming ${ye(e)}`),
+ !((r = this.detachedData) != null && r.mediaSource))
+ ) {
+ let a = this.timelinePos;
+ ((a < e.start || a >= e.end) &&
+ ((a = this.getPrimaryResumption(e, n)),
+ this.log(Po("resumePrimary", a)),
+ (this.timelinePos = a)),
+ this.attachPrimary(a, e));
+ }
+ if (!i) return;
+ const o = (s = this.schedule) == null ? void 0 : s.items;
+ o &&
+ (this.log(`INTERSTITIALS_PRIMARY_RESUMED ${ye(e)}`),
+ this.hls.trigger(L.INTERSTITIALS_PRIMARY_RESUMED, {
+ schedule: o.slice(0),
+ scheduleIndex: n,
+ }),
+ this.checkBuffer());
+ }
+ getPrimaryResumption(e, n) {
+ const i = e.start;
+ if (this.primaryLive) {
+ const r = this.primaryDetails;
+ if (n === 0) return this.hls.startPosition;
+ if (r && (i < r.fragmentStart || i > r.edge))
+ return this.hls.liveSyncPosition || -1;
+ }
+ return i;
+ }
+ isAssetBuffered(e) {
+ const n = this.getAssetPlayer(e.identifier);
+ return n != null && n.hls
+ ? n.hls.bufferedToEnd
+ : W0.bufferInfo(this.primaryMedia, this.timelinePos, 0).end + 1 >=
+ e.timelineStart + (e.duration || 0);
+ }
+ attachPrimary(e, n, i) {
+ (n ? this.setBufferingItem(n) : (this.bufferingItem = this.playingItem),
+ (this.bufferingAsset = null));
+ const r = this.primaryMedia;
+ if (!r) return;
+ const s = this.hls;
+ (s.media
+ ? this.checkBuffer()
+ : (this.transferMediaTo(s, r), i && this.startLoadingPrimaryAt(e, i)),
+ i ||
+ (this.log(Po("attachPrimary", e)),
+ (this.timelinePos = e),
+ this.startLoadingPrimaryAt(e, i)));
+ }
+ startLoadingPrimaryAt(e, n) {
+ var i;
+ const r = this.hls;
+ !r.loadingEnabled ||
+ !r.media ||
+ Math.abs(
+ (((i = r.mainForwardBufferInfo) == null ? void 0 : i.start) ||
+ r.media.currentTime) - e,
+ ) > 0.5
+ ? r.startLoad(e, n)
+ : r.bufferingEnabled || r.resumeBuffering();
+ }
+ onManifestLoading() {
+ var e;
+ (this.stopLoad(),
+ (e = this.schedule) == null || e.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(L.BUFFER_CODECS, this.onBufferCodecs, this),
+ this.hls.on(L.BUFFER_CODECS, this.onBufferCodecs, this));
+ }
+ onLevelUpdated(e, n) {
+ if (n.level === -1 || !this.schedule) return;
+ const i = this.hls.levels[n.level],
+ r = $0($0({}, this.mediaSelection || this.altSelection), {}, { main: i });
+ ((this.mediaSelection = r),
+ this.schedule.parseInterstitialDateRanges(
+ r,
+ this.hls.config.interstitialAppendInPlace,
+ ),
+ !this.effectivePlayingItem && this.schedule.items && this.checkStart());
+ }
+ onAudioTrackUpdated(e, n) {
+ const i = this.hls.audioTracks[n.id],
+ r = this.mediaSelection;
+ if (!r) {
+ this.altSelection = $0($0({}, this.altSelection), {}, { audio: i });
+ return;
+ }
+ const s = $0($0({}, r), {}, { audio: i });
+ this.mediaSelection = s;
+ }
+ onSubtitleTrackUpdated(e, n) {
+ const i = this.hls.subtitleTracks[n.id],
+ r = this.mediaSelection;
+ if (!r) {
+ this.altSelection = $0($0({}, this.altSelection), {}, { subtitles: i });
+ return;
+ }
+ const s = $0($0({}, r), {}, { subtitles: i });
+ this.mediaSelection = s;
+ }
+ onAudioTrackSwitching(e, n) {
+ const i = Zz(n);
+ this.playerQueue.forEach(
+ ({ hls: r }) => r && (r.setAudioOption(n) || r.setAudioOption(i)),
+ );
+ }
+ onSubtitleTrackSwitch(e, n) {
+ const i = Zz(n);
+ this.playerQueue.forEach(
+ ({ hls: r }) =>
+ r &&
+ (r.setSubtitleOption(n) || (n.id !== -1 && r.setSubtitleOption(i))),
+ );
+ }
+ onBufferCodecs(e, n) {
+ const i = n.tracks;
+ i && (this.requiredTracks = i);
+ }
+ onBufferAppended(e, n) {
+ this.checkBuffer();
+ }
+ onBufferFlushed(e, n) {
+ const i = this.playingItem;
+ if (
+ i &&
+ !this.itemsMatch(i, this.bufferingItem) &&
+ !this.isInterstitial(i)
+ ) {
+ const r = this.timelinePos;
+ ((this.bufferedPos = r), this.checkBuffer());
+ }
+ }
+ onBufferedToEnd(e) {
+ if (!this.schedule) return;
+ const n = this.schedule.events;
+ if (this.bufferedPos < Number.MAX_VALUE && n) {
+ for (let r = 0; r < n.length; r++) {
+ const s = n[r];
+ if (s.cue.post) {
+ var i;
+ const o = this.schedule.findEventIndex(s.identifier),
+ a = (i = this.schedule.items) == null ? void 0 : i[o];
+ this.isInterstitial(a) &&
+ this.eventItemsMatch(a, this.bufferingItem) &&
+ this.bufferedToItem(a, 0);
+ break;
+ }
+ }
+ this.bufferedPos = Number.MAX_VALUE;
+ }
+ }
+ onMediaEnded(e) {
+ const n = this.playingItem;
+ if (!this.playingLastItem && n) {
+ const i = this.findItemIndex(n);
+ this.setSchedulePosition(i + 1);
+ } else this.shouldPlay = !1;
+ }
+ updateItem(e, n) {
+ var i;
+ const r = (i = this.schedule) == null ? void 0 : i.items;
+ if (e && r) {
+ const s = this.findItemIndex(e, n);
+ return r[s] || null;
+ }
+ return null;
+ }
+ trimInPlace(e, n) {
+ if (
+ this.isInterstitial(e) &&
+ e.event.appendInPlace &&
+ n.end - e.end > 0.25
+ ) {
+ e.event.assetList.forEach((s, o) => {
+ e.event.isAssetPastPlayoutLimit(o) &&
+ this.clearAssetPlayer(s.identifier, null);
+ });
+ const i = e.end + 0.25,
+ r = W0.bufferInfo(this.primaryMedia, i, 0);
+ (r.end > i || (r.nextStart || 0) > i) &&
+ (this.log(`trim buffered interstitial ${ye(e)} (was ${ye(n)})`),
+ this.attachPrimary(i, null, !0),
+ this.flushFrontBuffer(i));
+ }
+ }
+ itemsMatch(e, n) {
+ return (
+ !!n &&
+ (e === n ||
+ (e.event && n.event && this.eventItemsMatch(e, n)) ||
+ (!e.event &&
+ !n.event &&
+ this.findItemIndex(e) === this.findItemIndex(n)))
+ );
+ }
+ eventItemsMatch(e, n) {
+ var i;
+ return (
+ !!n &&
+ (e === n ||
+ e.event.identifier === ((i = n.event) == null ? void 0 : i.identifier))
+ );
+ }
+ findItemIndex(e, n) {
+ return e && this.schedule ? this.schedule.findItemIndex(e, n) : -1;
+ }
+ updateSchedule(e = !1) {
+ var n;
+ const i = this.mediaSelection;
+ i && ((n = this.schedule) == null || n.updateSchedule(i, [], e));
+ }
+ checkBuffer(e) {
+ var n;
+ const i = (n = this.schedule) == null ? void 0 : n.items;
+ if (!i) return;
+ const r = W0.bufferInfo(this.primaryMedia, this.timelinePos, 0);
+ (e && (this.bufferedPos = this.timelinePos),
+ e || (e = r.len < 1),
+ this.updateBufferedPos(r.end, i, e));
+ }
+ updateBufferedPos(e, n, i) {
+ const r = this.schedule,
+ s = this.bufferingItem;
+ if (this.bufferedPos > e || !r) return;
+ if (n.length === 1 && this.itemsMatch(n[0], s)) {
+ this.bufferedPos = e;
+ return;
+ }
+ const o = this.playingItem,
+ a = this.findItemIndex(o);
+ let u = r.findItemIndexAtTime(e);
+ if (this.bufferedPos < e) {
+ var c;
+ const b = this.findItemIndex(s),
+ l = Math.min(b + 1, n.length - 1),
+ p = n[l];
+ if (
+ (((u === -1 && s && e >= s.end) ||
+ ((c = p.event) != null && c.appendInPlace && e + 0.01 >= p.start)) &&
+ (u = l),
+ this.isInterstitial(s))
+ ) {
+ const M = s.event;
+ if (
+ (l - a > 1 && M.appendInPlace === !1) ||
+ (M.assetList.length === 0 && M.assetListLoader)
+ )
+ return;
+ }
+ if (((this.bufferedPos = e), u > b && u > a)) this.bufferedToItem(p);
+ else {
+ const M = this.primaryDetails;
+ this.primaryLive &&
+ M &&
+ e > M.edge - M.targetduration &&
+ p.start < M.edge + this.hls.config.interstitialLiveLookAhead &&
+ this.isInterstitial(p) &&
+ this.preloadAssets(p.event, 0);
+ }
+ } else
+ i &&
+ o &&
+ !this.itemsMatch(o, s) &&
+ (u === a
+ ? this.bufferedToItem(o)
+ : u === a + 1 && this.bufferedToItem(n[u]));
+ }
+ assetsBuffered(e, n) {
+ return e.event.assetList.length === 0
+ ? !1
+ : !e.event.assetList.some((r) => {
+ const s = this.getAssetPlayer(r.identifier);
+ return !(s != null && s.bufferedInPlaceToEnd(n));
+ });
+ }
+ setBufferingItem(e) {
+ const n = this.bufferingItem,
+ i = this.schedule;
+ if (!this.itemsMatch(e, n) && i) {
+ const { items: r, events: s } = i;
+ if (!r || !s) return n;
+ const o = this.isInterstitial(e),
+ a = this.getBufferingPlayer();
+ ((this.bufferingItem = e),
+ (this.bufferedPos = Math.max(
+ e.start,
+ Math.min(e.end, this.timelinePos),
+ )));
+ const u = a ? a.remaining : n ? n.end - this.timelinePos : 0;
+ if (
+ (this.log(
+ `INTERSTITIALS_BUFFERED_TO_BOUNDARY ${ye(e)}` +
+ (n ? ` (${u.toFixed(2)} remaining)` : ""),
+ ),
+ !this.playbackDisabled)
+ )
+ if (o) {
+ const c = i.findAssetIndex(e.event, this.bufferedPos);
+ e.event.assetList.forEach((b, l) => {
+ const p = this.getAssetPlayer(b.identifier);
+ p && (l === c && p.loadSource(), p.resumeBuffering());
+ });
+ } else
+ (this.hls.resumeBuffering(),
+ this.playerQueue.forEach((c) => c.pauseBuffering()));
+ this.hls.trigger(L.INTERSTITIALS_BUFFERED_TO_BOUNDARY, {
+ events: s.slice(0),
+ schedule: r.slice(0),
+ bufferingIndex: this.findItemIndex(e),
+ playingIndex: this.findItemIndex(this.playingItem),
+ });
+ } else this.bufferingItem !== e && (this.bufferingItem = e);
+ return n;
+ }
+ bufferedToItem(e, n = 0) {
+ const i = this.setBufferingItem(e);
+ if (!this.playbackDisabled) {
+ if (this.isInterstitial(e)) this.bufferedToEvent(e, n);
+ else if (i !== null) {
+ this.bufferingAsset = null;
+ const r = this.detachedData;
+ r
+ ? r.mediaSource
+ ? this.attachPrimary(e.start, e, !0)
+ : this.preloadPrimary(e)
+ : this.preloadPrimary(e);
+ }
+ }
+ }
+ preloadPrimary(e) {
+ const n = this.findItemIndex(e),
+ i = this.getPrimaryResumption(e, n);
+ this.startLoadingPrimaryAt(i);
+ }
+ bufferedToEvent(e, n) {
+ const i = e.event,
+ r = i.assetList.length === 0 && !i.assetListLoader,
+ s = i.cue.once;
+ if (r || !s) {
+ const o = this.preloadAssets(i, n);
+ if (o != null && o.interstitial.appendInPlace) {
+ const a = this.primaryMedia;
+ a && this.bufferAssetPlayer(o, a);
+ }
+ }
+ }
+ preloadAssets(e, n) {
+ const i = e.assetUrl,
+ r = e.assetList.length,
+ s = r === 0 && !e.assetListLoader,
+ o = e.cue.once;
+ if (s) {
+ const u = e.timelineStart;
+ if (e.appendInPlace) {
+ var a;
+ const p = this.playingItem;
+ !this.isInterstitial(p) &&
+ (p == null || (a = p.nextEvent) == null ? void 0 : a.identifier) ===
+ e.identifier &&
+ this.flushFrontBuffer(u + 0.25);
+ }
+ let c,
+ b = 0;
+ if (
+ (!this.playingItem &&
+ this.primaryLive &&
+ ((b = this.hls.startPosition),
+ b === -1 && (b = this.hls.liveSyncPosition || 0)),
+ b && !(e.cue.pre || e.cue.post))
+ ) {
+ const p = b - u;
+ p > 0 && (c = Math.round(p * 1e3) / 1e3);
+ }
+ if (
+ (this.log(
+ `Load interstitial asset ${n + 1}/${i ? 1 : r} ${e}${c ? ` live-start: ${b} start-offset: ${c}` : ""}`,
+ ),
+ i)
+ )
+ return this.createAsset(e, 0, 0, u, e.duration, i);
+ const l = this.assetListLoader.loadAssetList(e, c);
+ l && (e.assetListLoader = l);
+ } else if (!o && r) {
+ for (let c = n; c < r; c++) {
+ const b = e.assetList[c],
+ l = this.getAssetPlayerQueueIndex(b.identifier);
+ (l === -1 || this.playerQueue[l].destroyed) &&
+ !b.error &&
+ this.createAssetPlayer(e, b, c);
+ }
+ const u = e.assetList[n];
+ if (u) {
+ const c = this.getAssetPlayer(u.identifier);
+ return (c && c.loadSource(), c);
+ }
+ }
+ return null;
+ }
+ flushFrontBuffer(e) {
+ const n = this.requiredTracks;
+ if (!n) return;
+ (this.log(`Removing front buffer starting at ${e}`),
+ Object.keys(n).forEach((r) => {
+ this.hls.trigger(L.BUFFER_FLUSHING, {
+ startOffset: e,
+ endOffset: 1 / 0,
+ type: r,
+ });
+ }));
+ }
+ getAssetPlayerQueueIndex(e) {
+ const n = this.playerQueue;
+ for (let i = 0; i < n.length; i++) if (e === n[i].assetId) return i;
+ return -1;
+ }
+ getAssetPlayer(e) {
+ const n = this.getAssetPlayerQueueIndex(e);
+ return this.playerQueue[n] || null;
+ }
+ getBufferingPlayer() {
+ const { playerQueue: e, primaryMedia: n } = this;
+ if (n) {
+ for (let i = 0; i < e.length; i++) if (e[i].media === n) return e[i];
+ }
+ return null;
+ }
+ createAsset(e, n, i, r, s, o) {
+ const a = {
+ parentIdentifier: e.identifier,
+ identifier: lD(e, o, n),
+ duration: s,
+ startOffset: i,
+ timelineStart: r,
+ uri: o,
+ };
+ return this.createAssetPlayer(e, a, n);
+ }
+ createAssetPlayer(e, n, i) {
+ const r = this.hls,
+ s = r.userConfig;
+ let o = s.videoPreference;
+ const a = r.loadLevelObj || r.levels[r.currentLevel];
+ (o || a) &&
+ ((o = H0({}, o)),
+ a.videoCodec && (o.videoCodec = a.videoCodec),
+ a.videoRange && (o.allowedVideoRanges = [a.videoRange]));
+ const u = r.audioTracks[r.audioTrack],
+ c = r.subtitleTracks[r.subtitleTrack];
+ let b = 0;
+ if (this.primaryLive || e.appendInPlace) {
+ const h = this.timelinePos - n.timelineStart;
+ if (h > 1) {
+ const q = n.duration;
+ q && h < q && (b = h);
+ }
+ }
+ const l = n.identifier,
+ p = $0(
+ $0({}, s),
+ {},
+ {
+ maxMaxBufferLength: Math.min(180, r.config.maxMaxBufferLength),
+ autoStartLoad: !0,
+ startFragPrefetch: !0,
+ primarySessionId: r.sessionId,
+ assetPlayerId: l,
+ abrEwmaDefaultEstimate: r.bandwidthEstimate,
+ interstitialsController: void 0,
+ startPosition: b,
+ liveDurationInfinity: !1,
+ testBandwidth: !1,
+ videoPreference: o,
+ audioPreference: u || s.audioPreference,
+ subtitlePreference: c || s.subtitlePreference,
+ },
+ );
+ e.appendInPlace &&
+ ((e.appendInPlaceStarted = !0),
+ n.timelineStart && (p.timelineOffset = n.timelineStart));
+ const M = p.cmcd;
+ (M != null &&
+ M.sessionId &&
+ M.contentId &&
+ (p.cmcd = H0({}, M, { contentId: cs(n.uri) })),
+ this.getAssetPlayer(l) &&
+ this.warn(`Duplicate date range identifier ${e} and asset ${l}`));
+ const d = new fD(this.HlsPlayerClass, p, e, n);
+ (this.playerQueue.push(d), (e.assetList[i] = n));
+ let O = !0;
+ const f = (h) => {
+ if (h.live) {
+ var q;
+ const E = new Error(`Interstitials MUST be VOD assets ${e}`),
+ _ = {
+ fatal: !0,
+ type: h0.OTHER_ERROR,
+ details: $.INTERSTITIAL_ASSET_ITEM_ERROR,
+ error: E,
+ },
+ T =
+ ((q = this.schedule) == null
+ ? void 0
+ : q.findEventIndex(e.identifier)) || -1;
+ this.handleAssetItemError(_, e, T, i, E.message);
+ return;
+ }
+ const v = h.edge - h.fragmentStart,
+ m = n.duration;
+ (O || m === null || v > m) &&
+ ((O = !1),
+ this.log(`Interstitial asset "${l}" duration change ${m} > ${v}`),
+ (n.duration = v),
+ this.updateSchedule());
+ };
+ (d.on(L.LEVEL_UPDATED, (h, { details: q }) => f(q)),
+ d.on(L.LEVEL_PTS_UPDATED, (h, { details: q }) => f(q)),
+ d.on(L.EVENT_CUE_ENTER, () => this.onInterstitialCueEnter()));
+ const z = (h, q) => {
+ const v = this.getAssetPlayer(l);
+ if (v && q.tracks) {
+ (v.off(L.BUFFER_CODECS, z), (v.tracks = q.tracks));
+ const m = this.primaryMedia;
+ this.bufferingAsset === v.assetItem &&
+ m &&
+ !v.media &&
+ this.bufferAssetPlayer(v, m);
+ }
+ };
+ d.on(L.BUFFER_CODECS, z);
+ const g = () => {
+ var h;
+ const q = this.getAssetPlayer(l);
+ if ((this.log(`buffered to end of asset ${q}`), !q || !this.schedule))
+ return;
+ const v = this.schedule.findEventIndex(e.identifier),
+ m = (h = this.schedule.items) == null ? void 0 : h[v];
+ this.isInterstitial(m) && this.advanceAssetBuffering(m, n);
+ };
+ d.on(L.BUFFERED_TO_END, g);
+ const A = (h) => () => {
+ if (!this.getAssetPlayer(l) || !this.schedule) return;
+ this.shouldPlay = !0;
+ const v = this.schedule.findEventIndex(e.identifier);
+ this.advanceAfterAssetEnded(e, v, h);
+ };
+ return (
+ d.once(L.MEDIA_ENDED, A(i)),
+ d.once(L.PLAYOUT_LIMIT_REACHED, A(1 / 0)),
+ d.on(L.ERROR, (h, q) => {
+ if (!this.schedule) return;
+ const v = this.getAssetPlayer(l);
+ if (q.details === $.BUFFER_STALLED_ERROR) {
+ if (v != null && v.appendInPlace) {
+ this.handleInPlaceStall(e);
+ return;
+ }
+ (this.onTimeupdate(), this.checkBuffer(!0));
+ return;
+ }
+ this.handleAssetItemError(
+ q,
+ e,
+ this.schedule.findEventIndex(e.identifier),
+ i,
+ `Asset player error ${q.error} ${e}`,
+ );
+ }),
+ d.on(L.DESTROYING, () => {
+ if (!this.getAssetPlayer(l) || !this.schedule) return;
+ const q = new Error(`Asset player destroyed unexpectedly ${l}`),
+ v = {
+ fatal: !0,
+ type: h0.OTHER_ERROR,
+ details: $.INTERSTITIAL_ASSET_ITEM_ERROR,
+ error: q,
+ };
+ this.handleAssetItemError(
+ v,
+ e,
+ this.schedule.findEventIndex(e.identifier),
+ i,
+ q.message,
+ );
+ }),
+ this.log(`INTERSTITIAL_ASSET_PLAYER_CREATED ${Ii(n)}`),
+ this.hls.trigger(L.INTERSTITIAL_ASSET_PLAYER_CREATED, {
+ asset: n,
+ assetListIndex: i,
+ event: e,
+ player: d,
+ }),
+ d
+ );
+ }
+ clearInterstitial(e, n) {
+ (e.assetList.forEach((i) => {
+ this.clearAssetPlayer(i.identifier, n);
+ }),
+ e.reset());
+ }
+ resetAssetPlayer(e) {
+ const n = this.getAssetPlayerQueueIndex(e);
+ if (n !== -1) {
+ this.log(`reset asset player "${e}" after error`);
+ const i = this.playerQueue[n];
+ (this.transferMediaFromPlayer(i, null), i.resetDetails());
+ }
+ }
+ clearAssetPlayer(e, n) {
+ const i = this.getAssetPlayerQueueIndex(e);
+ if (i !== -1) {
+ const r = this.playerQueue[i];
+ (this.log(`clear ${r} toSegment: ${n && ye(n)}`),
+ this.transferMediaFromPlayer(r, n),
+ this.playerQueue.splice(i, 1),
+ r.destroy());
+ }
+ }
+ emptyPlayerQueue() {
+ let e;
+ for (; (e = this.playerQueue.pop()); ) e.destroy();
+ this.playerQueue = [];
+ }
+ startAssetPlayer(e, n, i, r, s) {
+ const { interstitial: o, assetItem: a, assetId: u } = e,
+ c = o.assetList.length,
+ b = this.playingAsset;
+ ((this.endedAsset = null),
+ (this.playingAsset = a),
+ (!b || b.identifier !== u) &&
+ (b && (this.clearAssetPlayer(b.identifier, i[r]), delete b.error),
+ this.log(`INTERSTITIAL_ASSET_STARTED ${n + 1}/${c} ${Ii(a)}`),
+ this.hls.trigger(L.INTERSTITIAL_ASSET_STARTED, {
+ asset: a,
+ assetListIndex: n,
+ event: o,
+ schedule: i.slice(0),
+ scheduleIndex: r,
+ player: e,
+ })),
+ this.bufferAssetPlayer(e, s));
+ }
+ bufferAssetPlayer(e, n) {
+ var i, r;
+ if (!this.schedule) return;
+ const { interstitial: s, assetItem: o } = e,
+ a = this.schedule.findEventIndex(s.identifier),
+ u = (i = this.schedule.items) == null ? void 0 : i[a];
+ if (!u) return;
+ (e.loadSource(), this.setBufferingItem(u), (this.bufferingAsset = o));
+ const c = this.getBufferingPlayer();
+ if (c === e) return;
+ const b = s.appendInPlace;
+ if (b && c?.interstitial.appendInPlace === !1) return;
+ const l =
+ c?.tracks ||
+ ((r = this.detachedData) == null ? void 0 : r.tracks) ||
+ this.requiredTracks;
+ if (b && o !== this.playingAsset) {
+ if (!e.tracks) {
+ this.log(`Waiting for track info before buffering ${e}`);
+ return;
+ }
+ if (l && !$5(l, e.tracks)) {
+ const p = new Error(
+ `Asset ${Ii(o)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(l)}')`,
+ ),
+ M = {
+ fatal: !0,
+ type: h0.OTHER_ERROR,
+ details: $.INTERSTITIAL_ASSET_ITEM_ERROR,
+ error: p,
+ },
+ d = s.findAssetIndex(o);
+ this.handleAssetItemError(M, s, a, d, p.message);
+ return;
+ }
+ }
+ this.transferMediaTo(e, n);
+ }
+ handleInPlaceStall(e) {
+ const n = this.schedule,
+ i = this.primaryMedia;
+ if (!n || !i) return;
+ const r = i.currentTime,
+ s = n.findAssetIndex(e, r),
+ o = e.assetList[s];
+ if (o) {
+ const a = this.getAssetPlayer(o.identifier);
+ if (a) {
+ const u = a.currentTime || r - o.timelineStart,
+ c = a.duration - u;
+ if (
+ (this.warn(
+ `Stalled at ${u} of ${u + c} in ${a} ${e} (media.currentTime: ${r})`,
+ ),
+ u && (c / i.playbackRate < 0.5 || a.bufferedInPlaceToEnd(i)) && a.hls)
+ ) {
+ const b = n.findEventIndex(e.identifier);
+ this.advanceAfterAssetEnded(e, b, s);
+ }
+ }
+ }
+ }
+ advanceInPlace(e) {
+ const n = this.primaryMedia;
+ n && n.currentTime < e && (n.currentTime = e);
+ }
+ handleAssetItemError(e, n, i, r, s) {
+ if (e.details === $.BUFFER_STALLED_ERROR) return;
+ const o = n.assetList[r] || null;
+ if (
+ (this.warn(`INTERSTITIAL_ASSET_ERROR ${o && Ii(o)} ${e.error}`),
+ !this.schedule)
+ )
+ return;
+ const a = o?.identifier || "",
+ u = this.getAssetPlayerQueueIndex(a),
+ c = this.playerQueue[u] || null,
+ b = this.schedule.items,
+ l = H0({}, e, {
+ fatal: !1,
+ errorAction: Qi(!0),
+ asset: o,
+ assetListIndex: r,
+ event: n,
+ schedule: b,
+ scheduleIndex: i,
+ player: c,
+ });
+ if ((this.hls.trigger(L.INTERSTITIAL_ASSET_ERROR, l), !e.fatal)) return;
+ const p = this.playingAsset,
+ M = this.bufferingAsset,
+ d = new Error(s);
+ if (
+ (o && (this.clearAssetPlayer(a, null), (o.error = d)),
+ !n.assetList.some((O) => !O.error))
+ )
+ n.error = d;
+ else
+ for (let O = r; O < n.assetList.length; O++)
+ this.resetAssetPlayer(n.assetList[O].identifier);
+ (this.updateSchedule(!0),
+ n.error
+ ? this.primaryFallback(n)
+ : p && p.identifier === a
+ ? this.advanceAfterAssetEnded(n, i, r)
+ : M &&
+ M.identifier === a &&
+ this.isInterstitial(this.bufferingItem) &&
+ this.advanceAssetBuffering(this.bufferingItem, M));
+ }
+ primaryFallback(e) {
+ const n = e.timelineStart,
+ i = this.effectivePlayingItem;
+ if (i) {
+ this.log(
+ `Fallback to primary from event "${e.identifier}" start: ${n} pos: ${this.timelinePos} playing: ${ye(i)} error: ${e.error}`,
+ );
+ let r = this.timelinePos;
+ r === -1 && (r = this.hls.startPosition);
+ const s = this.updateItem(i, r);
+ if (
+ (this.itemsMatch(i, s) && this.clearInterstitial(e, null),
+ e.appendInPlace &&
+ (this.attachPrimary(n, null), this.flushFrontBuffer(n)),
+ !this.schedule)
+ )
+ return;
+ const o = this.schedule.findItemIndexAtTime(r);
+ this.setSchedulePosition(o);
+ } else this.checkStart();
+ }
+ onAssetListLoaded(e, n) {
+ var i, r;
+ const s = n.event,
+ o = s.identifier,
+ a = n.assetListResponse.ASSETS;
+ if (!((i = this.schedule) != null && i.hasEvent(o))) return;
+ const u = s.timelineStart,
+ c = s.duration;
+ let b = 0;
+ (a.forEach((O, f) => {
+ const z = parseFloat(O.DURATION);
+ (this.createAsset(s, f, b, u + b, z, O.URI), (b += z));
+ }),
+ (s.duration = b),
+ this.log(`Loaded asset-list with duration: ${b} (was: ${c}) ${s}`));
+ const l = this.waitingItem,
+ p = l?.event.identifier === o;
+ this.updateSchedule();
+ const M = (r = this.bufferingItem) == null ? void 0 : r.event;
+ if (p) {
+ var d;
+ const O = this.schedule.findEventIndex(o),
+ f = (d = this.schedule.items) == null ? void 0 : d[O];
+ if (f) {
+ if (
+ !this.playingItem &&
+ this.timelinePos > f.end &&
+ this.schedule.findItemIndexAtTime(this.timelinePos) !== O
+ ) {
+ ((s.error = new Error(
+ `Interstitial no longer within playback range ${this.timelinePos} ${s}`,
+ )),
+ this.updateSchedule(!0),
+ this.primaryFallback(s));
+ return;
+ }
+ this.setBufferingItem(f);
+ }
+ this.setSchedulePosition(O);
+ } else if (M?.identifier === o) {
+ const O = s.assetList[0];
+ if (O) {
+ const f = this.getAssetPlayer(O.identifier);
+ if (M.appendInPlace) {
+ const z = this.primaryMedia;
+ f && z && this.bufferAssetPlayer(f, z);
+ } else f && f.loadSource();
+ }
+ }
+ }
+ onError(e, n) {
+ if (this.schedule)
+ switch (n.details) {
+ case $.ASSET_LIST_PARSING_ERROR:
+ case $.ASSET_LIST_LOAD_ERROR:
+ case $.ASSET_LIST_LOAD_TIMEOUT: {
+ const i = n.interstitial;
+ i && (this.updateSchedule(!0), this.primaryFallback(i));
+ break;
+ }
+ case $.BUFFER_STALLED_ERROR: {
+ const i = this.endedItem || this.waitingItem || this.playingItem;
+ if (this.isInterstitial(i) && i.event.appendInPlace) {
+ this.handleInPlaceStall(i.event);
+ return;
+ }
+ (this.log(
+ `Primary player stall @${this.timelinePos} bufferedPos: ${this.bufferedPos}`,
+ ),
+ this.onTimeupdate(),
+ this.checkBuffer(!0));
+ break;
+ }
+ }
+ }
+}
+const U3 = 500;
+class AD extends RM {
+ constructor(e, n, i) {
+ (super(e, n, i, "subtitle-stream-controller", z0.SUBTITLE),
+ (this.currentTrackId = -1),
+ (this.tracksBuffered = []),
+ (this.mainDetails = null),
+ this.registerListeners());
+ }
+ onHandlerDestroying() {
+ (this.unregisterListeners(),
+ super.onHandlerDestroying(),
+ (this.mainDetails = null));
+ }
+ registerListeners() {
+ super.registerListeners();
+ const { hls: e } = this;
+ (e.on(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.on(L.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this),
+ e.on(L.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this),
+ e.on(L.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this),
+ e.on(L.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this),
+ e.on(L.BUFFER_FLUSHING, this.onBufferFlushing, this));
+ }
+ unregisterListeners() {
+ super.unregisterListeners();
+ const { hls: e } = this;
+ (e.off(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.off(L.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this),
+ e.off(L.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this),
+ e.off(L.SUBTITLE_TRACK_LOADED, this.onSubtitleTrackLoaded, this),
+ e.off(L.SUBTITLE_FRAG_PROCESSED, this.onSubtitleFragProcessed, this),
+ e.off(L.BUFFER_FLUSHING, this.onBufferFlushing, this));
+ }
+ startLoad(e, n) {
+ (this.stopLoad(),
+ (this.state = e0.IDLE),
+ this.setInterval(U3),
+ (this.nextLoadPosition = this.lastCurrentTime = e + this.timelineOffset),
+ (this.startPosition = n ? -1 : e),
+ this.tick());
+ }
+ onManifestLoading() {
+ (super.onManifestLoading(), (this.mainDetails = null));
+ }
+ onMediaDetaching(e, n) {
+ ((this.tracksBuffered = []), super.onMediaDetaching(e, n));
+ }
+ onLevelLoaded(e, n) {
+ this.mainDetails = n.details;
+ }
+ onSubtitleFragProcessed(e, n) {
+ const { frag: i, success: r } = n;
+ if (
+ (this.fragContextChanged(i) ||
+ (c1(i) && (this.fragPrevious = i), (this.state = e0.IDLE)),
+ !r)
+ )
+ return;
+ const s = this.tracksBuffered[this.currentTrackId];
+ if (!s) return;
+ let o;
+ const a = i.start;
+ for (let c = 0; c < s.length; c++)
+ if (a >= s[c].start && a <= s[c].end) {
+ o = s[c];
+ break;
+ }
+ const u = i.start + i.duration;
+ (o ? (o.end = u) : ((o = { start: a, end: u }), s.push(o)),
+ this.fragmentTracker.fragBuffered(i),
+ this.fragBufferedComplete(i, null),
+ this.media && this.tick());
+ }
+ onBufferFlushing(e, n) {
+ const { startOffset: i, endOffset: r } = n;
+ if (i === 0 && r !== Number.POSITIVE_INFINITY) {
+ const s = r - 1;
+ if (s <= 0) return;
+ ((n.endOffsetSubtitles = Math.max(0, s)),
+ this.tracksBuffered.forEach((o) => {
+ for (let a = 0; a < o.length; ) {
+ if (o[a].end <= s) {
+ o.shift();
+ continue;
+ } else if (o[a].start < s) o[a].start = s;
+ else break;
+ a++;
+ }
+ }),
+ this.fragmentTracker.removeFragmentsInRange(i, s, z0.SUBTITLE));
+ }
+ }
+ onError(e, n) {
+ const i = n.frag;
+ i?.type === z0.SUBTITLE &&
+ (n.details === $.FRAG_GAP && this.fragmentTracker.fragBuffered(i, !0),
+ this.fragCurrent && this.fragCurrent.abortRequests(),
+ this.state !== e0.STOPPED && (this.state = e0.IDLE));
+ }
+ onSubtitleTracksUpdated(e, { subtitleTracks: n }) {
+ if (this.levels && Ug(this.levels, n)) {
+ this.levels = n.map((i) => new Is(i));
+ return;
+ }
+ ((this.tracksBuffered = []),
+ (this.levels = n.map((i) => {
+ const r = new Is(i);
+ return ((this.tracksBuffered[r.id] = []), r);
+ })),
+ this.fragmentTracker.removeFragmentsInRange(
+ 0,
+ Number.POSITIVE_INFINITY,
+ z0.SUBTITLE,
+ ),
+ (this.fragPrevious = null),
+ (this.mediaBuffer = null));
+ }
+ onSubtitleTrackSwitch(e, n) {
+ var i;
+ if (
+ ((this.currentTrackId = n.id),
+ !((i = this.levels) != null && i.length) || this.currentTrackId === -1)
+ ) {
+ this.clearInterval();
+ return;
+ }
+ const r = this.levels[this.currentTrackId];
+ (r != null && r.details
+ ? (this.mediaBuffer = this.mediaBufferTimeRanges)
+ : (this.mediaBuffer = null),
+ r && this.state !== e0.STOPPED && this.setInterval(U3));
+ }
+ onSubtitleTrackLoaded(e, n) {
+ var i;
+ const { currentTrackId: r, levels: s } = this,
+ { details: o, id: a } = n;
+ if (!s) {
+ this.warn(`Subtitle tracks were reset while loading level ${a}`);
+ return;
+ }
+ const u = s[a];
+ if (a >= s.length || !u) return;
+ (this.log(
+ `Subtitle track ${a} loaded [${o.startSN},${o.endSN}]${o.lastPartSn ? `[part-${o.lastPartSn}-${o.lastPartIndex}]` : ""},duration:${o.totalduration}`,
+ ),
+ (this.mediaBuffer = this.mediaBufferTimeRanges));
+ let c = 0;
+ if (o.live || ((i = u.details) != null && i.live)) {
+ if (o.deltaUpdateFailed) return;
+ const l = this.mainDetails;
+ if (!l) {
+ this.startFragRequested = !1;
+ return;
+ }
+ const p = l.fragments[0];
+ if (!u.details)
+ o.hasProgramDateTime && l.hasProgramDateTime
+ ? (Wc(o, l), (c = o.fragmentStart))
+ : p && ((c = p.start), Rp(o, c));
+ else {
+ var b;
+ ((c = this.alignPlaylists(
+ o,
+ u.details,
+ (b = this.levelLastLoaded) == null ? void 0 : b.details,
+ )),
+ c === 0 && p && ((c = p.start), Rp(o, c)));
+ }
+ l && !this.startFragRequested && this.setStartPosition(l, c);
+ }
+ ((u.details = o),
+ (this.levelLastLoaded = u),
+ a === r &&
+ (this.hls.trigger(L.SUBTITLE_TRACK_UPDATED, {
+ details: o,
+ id: a,
+ groupId: n.groupId,
+ }),
+ this.tick(),
+ o.live &&
+ !this.fragCurrent &&
+ this.media &&
+ this.state === e0.IDLE &&
+ (zi(null, o.fragments, this.media.currentTime, 0) ||
+ (this.warn("Subtitle playlist not aligned with playback"),
+ (u.details = void 0)))));
+ }
+ _handleFragmentLoadComplete(e) {
+ const { frag: n, payload: i } = e,
+ r = n.decryptdata,
+ s = this.hls;
+ if (
+ !this.fragContextChanged(n) &&
+ i &&
+ i.byteLength > 0 &&
+ r != null &&
+ r.key &&
+ r.iv &&
+ Ji(r.method)
+ ) {
+ const o = performance.now();
+ this.decrypter
+ .decrypt(new Uint8Array(i), r.key.buffer, r.iv.buffer, mM(r.method))
+ .catch((a) => {
+ throw (
+ s.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.FRAG_DECRYPT_ERROR,
+ fatal: !1,
+ error: a,
+ reason: a.message,
+ frag: n,
+ }),
+ a
+ );
+ })
+ .then((a) => {
+ const u = performance.now();
+ s.trigger(L.FRAG_DECRYPTED, {
+ frag: n,
+ payload: a,
+ stats: { tstart: o, tdecrypt: u },
+ });
+ })
+ .catch((a) => {
+ (this.warn(`${a.name}: ${a.message}`), (this.state = e0.IDLE));
+ });
+ }
+ }
+ doTick() {
+ if (!this.media) {
+ this.state = e0.IDLE;
+ return;
+ }
+ if (this.state === e0.IDLE) {
+ const { currentTrackId: e, levels: n } = this,
+ i = n?.[e];
+ if (!i || !n.length || !i.details || this.waitForLive(i)) return;
+ const { config: r } = this,
+ s = this.getLoadPosition(),
+ o = W0.bufferedInfo(
+ this.tracksBuffered[this.currentTrackId] || [],
+ s,
+ r.maxBufferHole,
+ ),
+ { end: a, len: u } = o,
+ c = i.details,
+ b = this.hls.maxBufferLength + c.levelTargetDuration;
+ if (u > b) return;
+ const l = c.fragments,
+ p = l.length,
+ M = c.edge;
+ let d = null;
+ const O = this.fragPrevious;
+ if (a < M) {
+ const g = r.maxFragLookUpTolerance,
+ A = a > M - g ? 0 : g;
+ ((d = zi(O, l, Math.max(l[0].start, a), A)),
+ !d && O && O.start < l[0].start && (d = l[0]));
+ } else d = l[p - 1];
+ if (((d = this.filterReplacedPrimary(d, i.details)), !d)) return;
+ const f = d.sn - c.startSN,
+ z = l[f - 1];
+ if (
+ (z &&
+ z.cc === d.cc &&
+ this.fragmentTracker.getState(z) === d1.NOT_LOADED &&
+ (d = z),
+ this.fragmentTracker.getState(d) === d1.NOT_LOADED)
+ ) {
+ const g = this.mapToInitFragWhenRequired(d);
+ g && this.loadFragment(g, i, a);
+ }
+ }
+ }
+ loadFragment(e, n, i) {
+ c1(e) ? super.loadFragment(e, n, i) : this._loadInitSegment(e, n);
+ }
+ get mediaBufferTimeRanges() {
+ return new qD(this.tracksBuffered[this.currentTrackId] || []);
+ }
+}
+class qD {
+ constructor(e) {
+ this.buffered = void 0;
+ const n = (i, r, s) => {
+ if (((r = r >>> 0), r > s - 1))
+ throw new DOMException(
+ `Failed to execute '${i}' on 'TimeRanges': The index provided (${r}) is greater than the maximum bound (${s})`,
+ );
+ return e[r][i];
+ };
+ this.buffered = {
+ get length() {
+ return e.length;
+ },
+ end(i) {
+ return n("end", i, e.length);
+ },
+ start(i) {
+ return n("start", i, e.length);
+ },
+ };
+ }
+}
+const gD = {
+ 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,
+ },
+ s6 = (t) => String.fromCharCode(gD[t] || t),
+ we = 15,
+ mt = 100,
+ mD = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 },
+ WD = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 },
+ RD = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 },
+ yD = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 },
+ LD = [
+ "white",
+ "green",
+ "blue",
+ "cyan",
+ "red",
+ "yellow",
+ "magenta",
+ "black",
+ "transparent",
+ ];
+class vD {
+ constructor() {
+ ((this.time = null), (this.verboseLevel = 0));
+ }
+ log(e, n) {
+ if (this.verboseLevel >= e) {
+ const i = typeof n == "function" ? n() : n;
+ U0.log(`${this.time} [${e}] ${i}`);
+ }
+ }
+}
+const Cn = function (e) {
+ const n = [];
+ for (let i = 0; i < e.length; i++) n.push(e[i].toString(16));
+ return n;
+};
+class o6 {
+ constructor() {
+ ((this.foreground = "white"),
+ (this.underline = !1),
+ (this.italics = !1),
+ (this.background = "black"),
+ (this.flash = !1));
+ }
+ reset() {
+ ((this.foreground = "white"),
+ (this.underline = !1),
+ (this.italics = !1),
+ (this.background = "black"),
+ (this.flash = !1));
+ }
+ setStyles(e) {
+ const n = ["foreground", "underline", "italics", "background", "flash"];
+ for (let i = 0; i < n.length; i++) {
+ const r = n[i];
+ e.hasOwnProperty(r) && (this[r] = e[r]);
+ }
+ }
+ isDefault() {
+ return (
+ this.foreground === "white" &&
+ !this.underline &&
+ !this.italics &&
+ this.background === "black" &&
+ !this.flash
+ );
+ }
+ equals(e) {
+ return (
+ this.foreground === e.foreground &&
+ this.underline === e.underline &&
+ this.italics === e.italics &&
+ this.background === e.background &&
+ this.flash === e.flash
+ );
+ }
+ copy(e) {
+ ((this.foreground = e.foreground),
+ (this.underline = e.underline),
+ (this.italics = e.italics),
+ (this.background = e.background),
+ (this.flash = e.flash));
+ }
+ toString() {
+ return (
+ "color=" +
+ this.foreground +
+ ", underline=" +
+ this.underline +
+ ", italics=" +
+ this.italics +
+ ", background=" +
+ this.background +
+ ", flash=" +
+ this.flash
+ );
+ }
+}
+class ED {
+ constructor() {
+ ((this.uchar = " "), (this.penState = new o6()));
+ }
+ reset() {
+ ((this.uchar = " "), this.penState.reset());
+ }
+ setChar(e, n) {
+ ((this.uchar = e), this.penState.copy(n));
+ }
+ setPenState(e) {
+ this.penState.copy(e);
+ }
+ equals(e) {
+ return this.uchar === e.uchar && this.penState.equals(e.penState);
+ }
+ copy(e) {
+ ((this.uchar = e.uchar), this.penState.copy(e.penState));
+ }
+ isEmpty() {
+ return this.uchar === " " && this.penState.isDefault();
+ }
+}
+class TD {
+ constructor(e) {
+ ((this.chars = []),
+ (this.pos = 0),
+ (this.currPenState = new o6()),
+ (this.cueStartTime = null),
+ (this.logger = void 0));
+ for (let n = 0; n < mt; n++) this.chars.push(new ED());
+ this.logger = e;
+ }
+ equals(e) {
+ for (let n = 0; n < mt; n++)
+ if (!this.chars[n].equals(e.chars[n])) return !1;
+ return !0;
+ }
+ copy(e) {
+ for (let n = 0; n < mt; n++) this.chars[n].copy(e.chars[n]);
+ }
+ isEmpty() {
+ let e = !0;
+ for (let n = 0; n < mt; n++)
+ if (!this.chars[n].isEmpty()) {
+ e = !1;
+ break;
+ }
+ return e;
+ }
+ setCursor(e) {
+ (this.pos !== e && (this.pos = e),
+ this.pos < 0
+ ? (this.logger.log(3, "Negative cursor position " + this.pos),
+ (this.pos = 0))
+ : this.pos > mt &&
+ (this.logger.log(3, "Too large cursor position " + this.pos),
+ (this.pos = mt)));
+ }
+ moveCursor(e) {
+ const n = this.pos + e;
+ if (e > 1)
+ for (let i = this.pos + 1; i < n + 1; i++)
+ this.chars[i].setPenState(this.currPenState);
+ this.setCursor(n);
+ }
+ backSpace() {
+ (this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState));
+ }
+ insertChar(e) {
+ e >= 144 && this.backSpace();
+ const n = s6(e);
+ if (this.pos >= mt) {
+ this.logger.log(
+ 0,
+ () =>
+ "Cannot insert " +
+ e.toString(16) +
+ " (" +
+ n +
+ ") at position " +
+ this.pos +
+ ". Skipping it!",
+ );
+ return;
+ }
+ (this.chars[this.pos].setChar(n, this.currPenState), this.moveCursor(1));
+ }
+ clearFromPos(e) {
+ let n;
+ for (n = e; n < mt; n++) this.chars[n].reset();
+ }
+ clear() {
+ (this.clearFromPos(0), (this.pos = 0), this.currPenState.reset());
+ }
+ clearToEndOfRow() {
+ this.clearFromPos(this.pos);
+ }
+ getTextString() {
+ const e = [];
+ let n = !0;
+ for (let i = 0; i < mt; i++) {
+ const r = this.chars[i].uchar;
+ (r !== " " && (n = !1), e.push(r));
+ }
+ return n ? "" : e.join("");
+ }
+ setPenStyles(e) {
+ (this.currPenState.setStyles(e),
+ this.chars[this.pos].setPenState(this.currPenState));
+ }
+}
+class Tu {
+ constructor(e) {
+ ((this.rows = []),
+ (this.currRow = we - 1),
+ (this.nrRollUpRows = null),
+ (this.lastOutputScreen = null),
+ (this.logger = void 0));
+ for (let n = 0; n < we; n++) this.rows.push(new TD(e));
+ this.logger = e;
+ }
+ reset() {
+ for (let e = 0; e < we; e++) this.rows[e].clear();
+ this.currRow = we - 1;
+ }
+ equals(e) {
+ let n = !0;
+ for (let i = 0; i < we; i++)
+ if (!this.rows[i].equals(e.rows[i])) {
+ n = !1;
+ break;
+ }
+ return n;
+ }
+ copy(e) {
+ for (let n = 0; n < we; n++) this.rows[n].copy(e.rows[n]);
+ }
+ isEmpty() {
+ let e = !0;
+ for (let n = 0; n < we; n++)
+ if (!this.rows[n].isEmpty()) {
+ e = !1;
+ break;
+ }
+ return e;
+ }
+ backSpace() {
+ this.rows[this.currRow].backSpace();
+ }
+ clearToEndOfRow() {
+ this.rows[this.currRow].clearToEndOfRow();
+ }
+ insertChar(e) {
+ this.rows[this.currRow].insertChar(e);
+ }
+ setPen(e) {
+ this.rows[this.currRow].setPenStyles(e);
+ }
+ moveCursor(e) {
+ this.rows[this.currRow].moveCursor(e);
+ }
+ setCursor(e) {
+ (this.logger.log(2, "setCursor: " + e),
+ this.rows[this.currRow].setCursor(e));
+ }
+ setPAC(e) {
+ this.logger.log(2, () => "pacData = " + Y0(e));
+ let n = e.row - 1;
+ if (
+ (this.nrRollUpRows &&
+ n < this.nrRollUpRows - 1 &&
+ (n = this.nrRollUpRows - 1),
+ this.nrRollUpRows && this.currRow !== n)
+ ) {
+ for (let a = 0; a < we; a++) this.rows[a].clear();
+ const s = this.currRow + 1 - this.nrRollUpRows,
+ o = this.lastOutputScreen;
+ if (o) {
+ const a = o.rows[s].cueStartTime,
+ u = this.logger.time;
+ if (a !== null && u !== null && a < u)
+ for (let c = 0; c < this.nrRollUpRows; c++)
+ this.rows[n - this.nrRollUpRows + c + 1].copy(o.rows[s + c]);
+ }
+ }
+ this.currRow = n;
+ const i = this.rows[this.currRow];
+ if (e.indent !== null) {
+ const s = e.indent,
+ o = Math.max(s - 1, 0);
+ (i.setCursor(e.indent), (e.color = i.chars[o].penState.foreground));
+ }
+ const r = {
+ foreground: e.color,
+ underline: e.underline,
+ italics: e.italics,
+ background: "black",
+ flash: !1,
+ };
+ this.setPen(r);
+ }
+ setBkgData(e) {
+ (this.logger.log(2, () => "bkgData = " + Y0(e)),
+ this.backSpace(),
+ this.setPen(e),
+ this.insertChar(32));
+ }
+ setRollUpRows(e) {
+ this.nrRollUpRows = e;
+ }
+ rollUp() {
+ if (this.nrRollUpRows === null) {
+ this.logger.log(3, "roll_up but nrRollUpRows not set yet");
+ return;
+ }
+ this.logger.log(1, () => this.getDisplayText());
+ const e = this.currRow + 1 - this.nrRollUpRows,
+ n = this.rows.splice(e, 1)[0];
+ (n.clear(),
+ this.rows.splice(this.currRow, 0, n),
+ this.logger.log(2, "Rolling up"));
+ }
+ getDisplayText(e) {
+ e = e || !1;
+ const n = [];
+ let i = "",
+ r = -1;
+ for (let s = 0; s < we; s++) {
+ const o = this.rows[s].getTextString();
+ o &&
+ ((r = s + 1),
+ e ? n.push("Row " + r + ": '" + o + "'") : n.push(o.trim()));
+ }
+ return (
+ n.length > 0 &&
+ (e
+ ? (i = "[" + n.join(" | ") + "]")
+ : (i = n.join(`
+`))),
+ i
+ );
+ }
+ getTextAndFormat() {
+ return this.rows;
+ }
+}
+class $3 {
+ constructor(e, n, i) {
+ ((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 = e),
+ (this.outputFilter = n),
+ (this.mode = null),
+ (this.verbose = 0),
+ (this.displayedMemory = new Tu(i)),
+ (this.nonDisplayedMemory = new Tu(i)),
+ (this.lastOutputScreen = new Tu(i)),
+ (this.currRollUpRow = this.displayedMemory.rows[we - 1]),
+ (this.writeScreen = this.displayedMemory),
+ (this.mode = null),
+ (this.cueStartTime = null),
+ (this.logger = i));
+ }
+ reset() {
+ ((this.mode = null),
+ this.displayedMemory.reset(),
+ this.nonDisplayedMemory.reset(),
+ this.lastOutputScreen.reset(),
+ this.outputFilter.reset(),
+ (this.currRollUpRow = this.displayedMemory.rows[we - 1]),
+ (this.writeScreen = this.displayedMemory),
+ (this.mode = null),
+ (this.cueStartTime = null));
+ }
+ getHandler() {
+ return this.outputFilter;
+ }
+ setHandler(e) {
+ this.outputFilter = e;
+ }
+ setPAC(e) {
+ this.writeScreen.setPAC(e);
+ }
+ setBkgData(e) {
+ this.writeScreen.setBkgData(e);
+ }
+ setMode(e) {
+ e !== this.mode &&
+ ((this.mode = e),
+ this.logger.log(2, () => "MODE=" + e),
+ this.mode === "MODE_POP-ON"
+ ? (this.writeScreen = this.nonDisplayedMemory)
+ : ((this.writeScreen = this.displayedMemory), this.writeScreen.reset()),
+ this.mode !== "MODE_ROLL-UP" &&
+ ((this.displayedMemory.nrRollUpRows = null),
+ (this.nonDisplayedMemory.nrRollUpRows = null)),
+ (this.mode = e));
+ }
+ insertChars(e) {
+ for (let i = 0; i < e.length; i++) this.writeScreen.insertChar(e[i]);
+ const n = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP";
+ (this.logger.log(2, () => n + ": " + this.writeScreen.getDisplayText(!0)),
+ (this.mode === "MODE_PAINT-ON" || this.mode === "MODE_ROLL-UP") &&
+ (this.logger.log(
+ 1,
+ () => "DISPLAYED: " + this.displayedMemory.getDisplayText(!0),
+ ),
+ this.outputDataUpdate()));
+ }
+ ccRCL() {
+ (this.logger.log(2, "RCL - Resume Caption Loading"),
+ this.setMode("MODE_POP-ON"));
+ }
+ ccBS() {
+ (this.logger.log(2, "BS - BackSpace"),
+ this.mode !== "MODE_TEXT" &&
+ (this.writeScreen.backSpace(),
+ this.writeScreen === this.displayedMemory && this.outputDataUpdate()));
+ }
+ ccAOF() {}
+ ccAON() {}
+ ccDER() {
+ (this.logger.log(2, "DER- Delete to End of Row"),
+ this.writeScreen.clearToEndOfRow(),
+ this.outputDataUpdate());
+ }
+ ccRU(e) {
+ (this.logger.log(2, "RU(" + e + ") - Roll Up"),
+ (this.writeScreen = this.displayedMemory),
+ this.setMode("MODE_ROLL-UP"),
+ this.writeScreen.setRollUpRows(e));
+ }
+ ccFON() {
+ (this.logger.log(2, "FON - Flash On"),
+ this.writeScreen.setPen({ flash: !0 }));
+ }
+ ccRDC() {
+ (this.logger.log(2, "RDC - Resume Direct Captioning"),
+ this.setMode("MODE_PAINT-ON"));
+ }
+ ccTR() {
+ (this.logger.log(2, "TR"), this.setMode("MODE_TEXT"));
+ }
+ ccRTD() {
+ (this.logger.log(2, "RTD"), this.setMode("MODE_TEXT"));
+ }
+ ccEDM() {
+ (this.logger.log(2, "EDM - Erase Displayed Memory"),
+ this.displayedMemory.reset(),
+ this.outputDataUpdate(!0));
+ }
+ ccCR() {
+ (this.logger.log(2, "CR - Carriage Return"),
+ this.writeScreen.rollUp(),
+ this.outputDataUpdate(!0));
+ }
+ ccENM() {
+ (this.logger.log(2, "ENM - Erase Non-displayed Memory"),
+ this.nonDisplayedMemory.reset());
+ }
+ ccEOC() {
+ if (
+ (this.logger.log(2, "EOC - End Of Caption"), this.mode === "MODE_POP-ON")
+ ) {
+ const e = this.displayedMemory;
+ ((this.displayedMemory = this.nonDisplayedMemory),
+ (this.nonDisplayedMemory = e),
+ (this.writeScreen = this.nonDisplayedMemory),
+ this.logger.log(
+ 1,
+ () => "DISP: " + this.displayedMemory.getDisplayText(),
+ ));
+ }
+ this.outputDataUpdate(!0);
+ }
+ ccTO(e) {
+ (this.logger.log(2, "TO(" + e + ") - Tab Offset"),
+ this.writeScreen.moveCursor(e));
+ }
+ ccMIDROW(e) {
+ const n = { flash: !1 };
+ if (((n.underline = e % 2 === 1), (n.italics = e >= 46), n.italics))
+ n.foreground = "white";
+ else {
+ const i = Math.floor(e / 2) - 16,
+ r = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"];
+ n.foreground = r[i];
+ }
+ (this.logger.log(2, "MIDROW: " + Y0(n)), this.writeScreen.setPen(n));
+ }
+ outputDataUpdate(e = !1) {
+ const n = this.logger.time;
+ n !== null &&
+ this.outputFilter &&
+ (this.cueStartTime === null && !this.displayedMemory.isEmpty()
+ ? (this.cueStartTime = n)
+ : this.displayedMemory.equals(this.lastOutputScreen) ||
+ (this.outputFilter.newCue(
+ this.cueStartTime,
+ n,
+ this.lastOutputScreen,
+ ),
+ e && this.outputFilter.dispatchCue && this.outputFilter.dispatchCue(),
+ (this.cueStartTime = this.displayedMemory.isEmpty() ? null : n)),
+ this.lastOutputScreen.copy(this.displayedMemory));
+ }
+ cueSplitAtTime(e) {
+ this.outputFilter &&
+ (this.displayedMemory.isEmpty() ||
+ (this.outputFilter.newCue &&
+ this.outputFilter.newCue(this.cueStartTime, e, this.displayedMemory),
+ (this.cueStartTime = e)));
+ }
+}
+class H3 {
+ constructor(e, n, i) {
+ ((this.channels = void 0),
+ (this.currentChannel = 0),
+ (this.cmdHistory = xD()),
+ (this.logger = void 0));
+ const r = (this.logger = new vD());
+ this.channels = [null, new $3(e, n, r), new $3(e + 1, i, r)];
+ }
+ getHandler(e) {
+ return this.channels[e].getHandler();
+ }
+ setHandler(e, n) {
+ this.channels[e].setHandler(n);
+ }
+ addData(e, n) {
+ this.logger.time = e;
+ for (let i = 0; i < n.length; i += 2) {
+ const r = n[i] & 127,
+ s = n[i + 1] & 127;
+ let o = !1,
+ a = null;
+ if (r === 0 && s === 0) continue;
+ this.logger.log(
+ 3,
+ () => "[" + Cn([n[i], n[i + 1]]) + "] -> (" + Cn([r, s]) + ")",
+ );
+ const u = this.cmdHistory;
+ if (r >= 16 && r <= 31) {
+ if (_D(r, s, u)) {
+ (Xo(null, null, u),
+ this.logger.log(
+ 3,
+ () => "Repeated command (" + Cn([r, s]) + ") is dropped",
+ ));
+ continue;
+ }
+ (Xo(r, s, this.cmdHistory),
+ (o = this.parseCmd(r, s)),
+ o || (o = this.parseMidrow(r, s)),
+ o || (o = this.parsePAC(r, s)),
+ o || (o = this.parseBackgroundAttributes(r, s)));
+ } else Xo(null, null, u);
+ if (!o && ((a = this.parseChars(r, s)), a)) {
+ const b = this.currentChannel;
+ b && b > 0
+ ? this.channels[b].insertChars(a)
+ : this.logger.log(2, "No channel found yet. TEXT-MODE?");
+ }
+ !o &&
+ !a &&
+ this.logger.log(
+ 2,
+ () =>
+ "Couldn't parse cleaned data " +
+ Cn([r, s]) +
+ " orig: " +
+ Cn([n[i], n[i + 1]]),
+ );
+ }
+ }
+ parseCmd(e, n) {
+ const i =
+ (e === 20 || e === 28 || e === 21 || e === 29) && n >= 32 && n <= 47,
+ r = (e === 23 || e === 31) && n >= 33 && n <= 35;
+ if (!(i || r)) return !1;
+ const s = e === 20 || e === 21 || e === 23 ? 1 : 2,
+ o = this.channels[s];
+ return (
+ e === 20 || e === 21 || e === 28 || e === 29
+ ? n === 32
+ ? o.ccRCL()
+ : n === 33
+ ? o.ccBS()
+ : n === 34
+ ? o.ccAOF()
+ : n === 35
+ ? o.ccAON()
+ : n === 36
+ ? o.ccDER()
+ : n === 37
+ ? o.ccRU(2)
+ : n === 38
+ ? o.ccRU(3)
+ : n === 39
+ ? o.ccRU(4)
+ : n === 40
+ ? o.ccFON()
+ : n === 41
+ ? o.ccRDC()
+ : n === 42
+ ? o.ccTR()
+ : n === 43
+ ? o.ccRTD()
+ : n === 44
+ ? o.ccEDM()
+ : n === 45
+ ? o.ccCR()
+ : n === 46
+ ? o.ccENM()
+ : n === 47 && o.ccEOC()
+ : o.ccTO(n - 32),
+ (this.currentChannel = s),
+ !0
+ );
+ }
+ parseMidrow(e, n) {
+ let i = 0;
+ if ((e === 17 || e === 25) && n >= 32 && n <= 47) {
+ if ((e === 17 ? (i = 1) : (i = 2), i !== this.currentChannel))
+ return (this.logger.log(0, "Mismatch channel in midrow parsing"), !1);
+ const r = this.channels[i];
+ return r
+ ? (r.ccMIDROW(n),
+ this.logger.log(3, () => "MIDROW (" + Cn([e, n]) + ")"),
+ !0)
+ : !1;
+ }
+ return !1;
+ }
+ parsePAC(e, n) {
+ let i;
+ const r =
+ ((e >= 17 && e <= 23) || (e >= 25 && e <= 31)) && n >= 64 && n <= 127,
+ s = (e === 16 || e === 24) && n >= 64 && n <= 95;
+ if (!(r || s)) return !1;
+ const o = e <= 23 ? 1 : 2;
+ n >= 64 && n <= 95
+ ? (i = o === 1 ? mD[e] : RD[e])
+ : (i = o === 1 ? WD[e] : yD[e]);
+ const a = this.channels[o];
+ return a
+ ? (a.setPAC(this.interpretPAC(i, n)), (this.currentChannel = o), !0)
+ : !1;
+ }
+ interpretPAC(e, n) {
+ let i;
+ const r = { color: null, italics: !1, indent: null, underline: !1, row: e };
+ return (
+ n > 95 ? (i = n - 96) : (i = n - 64),
+ (r.underline = (i & 1) === 1),
+ i <= 13
+ ? (r.color = [
+ "white",
+ "green",
+ "blue",
+ "cyan",
+ "red",
+ "yellow",
+ "magenta",
+ "white",
+ ][Math.floor(i / 2)])
+ : i <= 15
+ ? ((r.italics = !0), (r.color = "white"))
+ : (r.indent = Math.floor((i - 16) / 2) * 4),
+ r
+ );
+ }
+ parseChars(e, n) {
+ let i,
+ r = null,
+ s = null;
+ if (
+ (e >= 25 ? ((i = 2), (s = e - 8)) : ((i = 1), (s = e)),
+ s >= 17 && s <= 19)
+ ) {
+ let o;
+ (s === 17 ? (o = n + 80) : s === 18 ? (o = n + 112) : (o = n + 144),
+ this.logger.log(
+ 2,
+ () => "Special char '" + s6(o) + "' in channel " + i,
+ ),
+ (r = [o]));
+ } else e >= 32 && e <= 127 && (r = n === 0 ? [e] : [e, n]);
+ return (
+ r && this.logger.log(3, () => "Char codes = " + Cn(r).join(",")),
+ r
+ );
+ }
+ parseBackgroundAttributes(e, n) {
+ const i = (e === 16 || e === 24) && n >= 32 && n <= 47,
+ r = (e === 23 || e === 31) && n >= 45 && n <= 47;
+ if (!(i || r)) return !1;
+ let s;
+ const o = {};
+ e === 16 || e === 24
+ ? ((s = Math.floor((n - 32) / 2)),
+ (o.background = LD[s]),
+ n % 2 === 1 && (o.background = o.background + "_semi"))
+ : n === 45
+ ? (o.background = "transparent")
+ : ((o.foreground = "black"), n === 47 && (o.underline = !0));
+ const a = e <= 23 ? 1 : 2;
+ return (this.channels[a].setBkgData(o), !0);
+ }
+ reset() {
+ for (let e = 0; e < Object.keys(this.channels).length; e++) {
+ const n = this.channels[e];
+ n && n.reset();
+ }
+ Xo(null, null, this.cmdHistory);
+ }
+ cueSplitAtTime(e) {
+ for (let n = 0; n < this.channels.length; n++) {
+ const i = this.channels[n];
+ i && i.cueSplitAtTime(e);
+ }
+ }
+}
+function Xo(t, e, n) {
+ ((n.a = t), (n.b = e));
+}
+function _D(t, e, n) {
+ return n.a === t && n.b === e;
+}
+function xD() {
+ return { a: null, b: null };
+}
+var IM = (function () {
+ if (mc != null && mc.VTTCue) return self.VTTCue;
+ const t = ["", "lr", "rl"],
+ e = ["start", "middle", "end", "left", "right"];
+ function n(a, u) {
+ if (typeof u != "string" || !Array.isArray(a)) return !1;
+ const c = u.toLowerCase();
+ return ~a.indexOf(c) ? c : !1;
+ }
+ function i(a) {
+ return n(t, a);
+ }
+ function r(a) {
+ return n(e, a);
+ }
+ function s(a, ...u) {
+ let c = 1;
+ for (; c < arguments.length; c++) {
+ const b = arguments[c];
+ for (const l in b) a[l] = b[l];
+ }
+ return a;
+ }
+ function o(a, u, c) {
+ const b = this,
+ l = { enumerable: !0 };
+ b.hasBeenReset = !1;
+ let p = "",
+ M = !1,
+ d = a,
+ O = u,
+ f = c,
+ z = null,
+ g = "",
+ A = !0,
+ h = "auto",
+ q = "start",
+ v = 50,
+ m = "middle",
+ E = 50,
+ _ = "middle";
+ (Object.defineProperty(
+ b,
+ "id",
+ s({}, l, {
+ get: function () {
+ return p;
+ },
+ set: function (T) {
+ p = "" + T;
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "pauseOnExit",
+ s({}, l, {
+ get: function () {
+ return M;
+ },
+ set: function (T) {
+ M = !!T;
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "startTime",
+ s({}, l, {
+ get: function () {
+ return d;
+ },
+ set: function (T) {
+ if (typeof T != "number")
+ throw new TypeError("Start time must be set to a number.");
+ ((d = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "endTime",
+ s({}, l, {
+ get: function () {
+ return O;
+ },
+ set: function (T) {
+ if (typeof T != "number")
+ throw new TypeError("End time must be set to a number.");
+ ((O = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "text",
+ s({}, l, {
+ get: function () {
+ return f;
+ },
+ set: function (T) {
+ ((f = "" + T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "region",
+ s({}, l, {
+ get: function () {
+ return z;
+ },
+ set: function (T) {
+ ((z = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "vertical",
+ s({}, l, {
+ get: function () {
+ return g;
+ },
+ set: function (T) {
+ const y = i(T);
+ if (y === !1)
+ throw new SyntaxError(
+ "An invalid or illegal string was specified.",
+ );
+ ((g = y), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "snapToLines",
+ s({}, l, {
+ get: function () {
+ return A;
+ },
+ set: function (T) {
+ ((A = !!T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "line",
+ s({}, l, {
+ get: function () {
+ return h;
+ },
+ set: function (T) {
+ if (typeof T != "number" && T !== "auto")
+ throw new SyntaxError(
+ "An invalid number or illegal string was specified.",
+ );
+ ((h = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "lineAlign",
+ s({}, l, {
+ get: function () {
+ return q;
+ },
+ set: function (T) {
+ const y = r(T);
+ if (!y)
+ throw new SyntaxError(
+ "An invalid or illegal string was specified.",
+ );
+ ((q = y), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "position",
+ s({}, l, {
+ get: function () {
+ return v;
+ },
+ set: function (T) {
+ if (T < 0 || T > 100)
+ throw new Error("Position must be between 0 and 100.");
+ ((v = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "positionAlign",
+ s({}, l, {
+ get: function () {
+ return m;
+ },
+ set: function (T) {
+ const y = r(T);
+ if (!y)
+ throw new SyntaxError(
+ "An invalid or illegal string was specified.",
+ );
+ ((m = y), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "size",
+ s({}, l, {
+ get: function () {
+ return E;
+ },
+ set: function (T) {
+ if (T < 0 || T > 100)
+ throw new Error("Size must be between 0 and 100.");
+ ((E = T), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ Object.defineProperty(
+ b,
+ "align",
+ s({}, l, {
+ get: function () {
+ return _;
+ },
+ set: function (T) {
+ const y = r(T);
+ if (!y)
+ throw new SyntaxError(
+ "An invalid or illegal string was specified.",
+ );
+ ((_ = y), (this.hasBeenReset = !0));
+ },
+ }),
+ ),
+ (b.displayState = void 0));
+ }
+ return (
+ (o.prototype.getCueAsHTML = function () {
+ return self.WebVTT.convertCueToDOMTree(self, this.text);
+ }),
+ o
+ );
+})();
+class SD {
+ decode(e, n) {
+ if (!e) return "";
+ if (typeof e != "string") throw new Error("Error - expected string data.");
+ return decodeURIComponent(encodeURIComponent(e));
+ }
+}
+function a6(t) {
+ function e(i, r, s, o) {
+ return (i | 0) * 3600 + (r | 0) * 60 + (s | 0) + parseFloat(o || 0);
+ }
+ const n = t.match(/^(?:(\d+):)?(\d{2}):(\d{2})(\.\d+)?/);
+ return n
+ ? parseFloat(n[2]) > 59
+ ? e(n[2], n[3], 0, n[4])
+ : e(n[1], n[2], n[3], n[4])
+ : null;
+}
+class wD {
+ constructor() {
+ this.values = Object.create(null);
+ }
+ set(e, n) {
+ !this.get(e) && n !== "" && (this.values[e] = n);
+ }
+ get(e, n, i) {
+ return i
+ ? this.has(e)
+ ? this.values[e]
+ : n[i]
+ : this.has(e)
+ ? this.values[e]
+ : n;
+ }
+ has(e) {
+ return e in this.values;
+ }
+ alt(e, n, i) {
+ for (let r = 0; r < i.length; ++r)
+ if (n === i[r]) {
+ this.set(e, n);
+ break;
+ }
+ }
+ integer(e, n) {
+ /^-?\d+$/.test(n) && this.set(e, parseInt(n, 10));
+ }
+ percent(e, n) {
+ if (/^([\d]{1,3})(\.[\d]*)?%$/.test(n)) {
+ const i = parseFloat(n);
+ if (i >= 0 && i <= 100) return (this.set(e, i), !0);
+ }
+ return !1;
+ }
+}
+function c6(t, e, n, i) {
+ const r = i ? t.split(i) : [t];
+ for (const s in r) {
+ if (typeof r[s] != "string") continue;
+ const o = r[s].split(n);
+ if (o.length !== 2) continue;
+ const a = o[0],
+ u = o[1];
+ e(a, u);
+ }
+}
+const Sp = new IM(0, 0, ""),
+ Fo = Sp.align === "middle" ? "middle" : "center";
+function ND(t, e, n) {
+ const i = t;
+ function r() {
+ const a = a6(t);
+ if (a === null) throw new Error("Malformed timestamp: " + i);
+ return ((t = t.replace(/^[^\sa-zA-Z-]+/, "")), a);
+ }
+ function s(a, u) {
+ const c = new wD();
+ (c6(
+ a,
+ function (p, M) {
+ let d;
+ switch (p) {
+ case "region":
+ for (let O = n.length - 1; O >= 0; O--)
+ if (n[O].id === M) {
+ c.set(p, n[O].region);
+ break;
+ }
+ break;
+ case "vertical":
+ c.alt(p, M, ["rl", "lr"]);
+ break;
+ case "line":
+ ((d = M.split(",")),
+ c.integer(p, d[0]),
+ c.percent(p, d[0]) && c.set("snapToLines", !1),
+ c.alt(p, d[0], ["auto"]),
+ d.length === 2 && c.alt("lineAlign", d[1], ["start", Fo, "end"]));
+ break;
+ case "position":
+ ((d = M.split(",")),
+ c.percent(p, d[0]),
+ d.length === 2 &&
+ c.alt("positionAlign", d[1], [
+ "start",
+ Fo,
+ "end",
+ "line-left",
+ "line-right",
+ "auto",
+ ]));
+ break;
+ case "size":
+ c.percent(p, M);
+ break;
+ case "align":
+ c.alt(p, M, ["start", Fo, "end", "left", "right"]);
+ break;
+ }
+ },
+ /:/,
+ /\s/,
+ ),
+ (u.region = c.get("region", null)),
+ (u.vertical = c.get("vertical", "")));
+ let b = c.get("line", "auto");
+ (b === "auto" && Sp.line === -1 && (b = -1),
+ (u.line = b),
+ (u.lineAlign = c.get("lineAlign", "start")),
+ (u.snapToLines = c.get("snapToLines", !0)),
+ (u.size = c.get("size", 100)),
+ (u.align = c.get("align", Fo)));
+ let l = c.get("position", "auto");
+ (l === "auto" &&
+ Sp.position === 50 &&
+ (l =
+ u.align === "start" || u.align === "left"
+ ? 0
+ : u.align === "end" || u.align === "right"
+ ? 100
+ : 50),
+ (u.position = l));
+ }
+ function o() {
+ t = t.replace(/^\s+/, "");
+ }
+ if ((o(), (e.startTime = r()), o(), t.slice(0, 3) !== "-->"))
+ throw new Error(
+ "Malformed time stamp (time stamps must be separated by '-->'): " + i,
+ );
+ ((t = t.slice(3)), o(), (e.endTime = r()), o(), s(t, e));
+}
+function u6(t) {
+ return t.replace(
+ /
/gi,
+ `
+`,
+ );
+}
+class BD {
+ constructor() {
+ ((this.state = "INITIAL"),
+ (this.buffer = ""),
+ (this.decoder = new SD()),
+ (this.regionList = []),
+ (this.cue = null),
+ (this.oncue = void 0),
+ (this.onparsingerror = void 0),
+ (this.onflush = void 0));
+ }
+ parse(e) {
+ const n = this;
+ e && (n.buffer += n.decoder.decode(e, { stream: !0 }));
+ function i() {
+ let s = n.buffer,
+ o = 0;
+ for (
+ s = u6(s);
+ o < s.length &&
+ s[o] !== "\r" &&
+ s[o] !==
+ `
+`;
+ )
+ ++o;
+ const a = s.slice(0, o);
+ return (
+ s[o] === "\r" && ++o,
+ s[o] ===
+ `
+` && ++o,
+ (n.buffer = s.slice(o)),
+ a
+ );
+ }
+ function r(s) {
+ c6(s, function (o, a) {}, /:/);
+ }
+ try {
+ let s = "";
+ if (n.state === "INITIAL") {
+ if (!/\r\n|\n/.test(n.buffer)) return this;
+ s = i();
+ const a = s.match(/^()?WEBVTT([ \t].*)?$/);
+ if (!(a != null && a[0]))
+ throw new Error("Malformed WebVTT signature.");
+ n.state = "HEADER";
+ }
+ let o = !1;
+ for (; n.buffer; ) {
+ if (!/\r\n|\n/.test(n.buffer)) return this;
+ switch ((o ? (o = !1) : (s = i()), n.state)) {
+ case "HEADER":
+ /:/.test(s) ? r(s) : s || (n.state = "ID");
+ continue;
+ case "NOTE":
+ s || (n.state = "ID");
+ continue;
+ case "ID":
+ if (/^NOTE($|[ \t])/.test(s)) {
+ n.state = "NOTE";
+ break;
+ }
+ if (!s) continue;
+ if (
+ ((n.cue = new IM(0, 0, "")),
+ (n.state = "CUE"),
+ s.indexOf("-->") === -1)
+ ) {
+ n.cue.id = s;
+ continue;
+ }
+ case "CUE":
+ if (!n.cue) {
+ n.state = "BADCUE";
+ continue;
+ }
+ try {
+ ND(s, n.cue, n.regionList);
+ } catch {
+ ((n.cue = null), (n.state = "BADCUE"));
+ continue;
+ }
+ n.state = "CUETEXT";
+ continue;
+ case "CUETEXT":
+ {
+ const a = s.indexOf("-->") !== -1;
+ if (!s || (a && (o = !0))) {
+ (n.oncue && n.cue && n.oncue(n.cue),
+ (n.cue = null),
+ (n.state = "ID"));
+ continue;
+ }
+ if (n.cue === null) continue;
+ (n.cue.text &&
+ (n.cue.text += `
+`),
+ (n.cue.text += s));
+ }
+ continue;
+ case "BADCUE":
+ s || (n.state = "ID");
+ }
+ }
+ } catch {
+ (n.state === "CUETEXT" && n.cue && n.oncue && n.oncue(n.cue),
+ (n.cue = null),
+ (n.state = n.state === "INITIAL" ? "BADWEBVTT" : "BADCUE"));
+ }
+ return this;
+ }
+ flush() {
+ const e = this;
+ try {
+ if (
+ ((e.cue || e.state === "HEADER") &&
+ ((e.buffer += `
+
+`),
+ e.parse()),
+ e.state === "INITIAL" || e.state === "BADWEBVTT")
+ )
+ throw new Error("Malformed WebVTT signature.");
+ } catch (n) {
+ e.onparsingerror && e.onparsingerror(n);
+ }
+ return (e.onflush && e.onflush(), this);
+ }
+}
+const ID = /\r\n|\n\r|\n|\r/g,
+ _u = function (e, n, i = 0) {
+ return e.slice(i, i + n.length) === n;
+ },
+ DD = function (e) {
+ let n = parseInt(e.slice(-3));
+ const i = parseInt(e.slice(-6, -4)),
+ r = parseInt(e.slice(-9, -7)),
+ s = e.length > 9 ? parseInt(e.substring(0, e.indexOf(":"))) : 0;
+ if (!p0(n) || !p0(i) || !p0(r) || !p0(s))
+ throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);
+ return ((n += 1e3 * i), (n += 60 * 1e3 * r), (n += 3600 * 1e3 * s), n);
+ };
+function DM(t, e, n) {
+ return cs(t.toString()) + cs(e.toString()) + cs(n);
+}
+const CD = function (e, n, i) {
+ let r = e[n],
+ s = e[r.prevCC];
+ if (!s || (!s.new && r.new)) {
+ ((e.ccOffset = e.presentationOffset = r.start), (r.new = !1));
+ return;
+ }
+ for (; (o = s) != null && o.new; ) {
+ var o;
+ ((e.ccOffset += r.start - s.start),
+ (r.new = !1),
+ (r = s),
+ (s = e[r.prevCC]));
+ }
+ e.presentationOffset = i;
+};
+function kD(t, e, n, i, r, s, o) {
+ const a = new BD(),
+ u = se(new Uint8Array(t))
+ .trim()
+ .replace(
+ ID,
+ `
+`,
+ ).split(`
+`),
+ c = [],
+ b = e ? G9(e.baseTime, e.timescale) : 0;
+ let l = "00:00.000",
+ p = 0,
+ M = 0,
+ d,
+ O = !0;
+ ((a.oncue = function (f) {
+ const z = n[i];
+ let g = n.ccOffset;
+ const A = (p - b) / 9e4;
+ if (
+ (z != null &&
+ z.new &&
+ (M !== void 0 ? (g = n.ccOffset = z.start) : CD(n, i, A)),
+ A)
+ ) {
+ if (!e) {
+ d = new Error("Missing initPTS for VTT MPEGTS");
+ return;
+ }
+ g = A - n.presentationOffset;
+ }
+ const h = f.endTime - f.startTime,
+ q = pe((f.startTime + g - M) * 9e4, r * 9e4) / 9e4;
+ ((f.startTime = Math.max(q, 0)), (f.endTime = Math.max(q + h, 0)));
+ const v = f.text.trim();
+ ((f.text = decodeURIComponent(encodeURIComponent(v))),
+ f.id || (f.id = DM(f.startTime, f.endTime, v)),
+ f.endTime > 0 && c.push(f));
+ }),
+ (a.onparsingerror = function (f) {
+ d = f;
+ }),
+ (a.onflush = function () {
+ if (d) {
+ o(d);
+ return;
+ }
+ s(c);
+ }),
+ u.forEach((f) => {
+ if (O)
+ if (_u(f, "X-TIMESTAMP-MAP=")) {
+ ((O = !1),
+ f
+ .slice(16)
+ .split(",")
+ .forEach((z) => {
+ _u(z, "LOCAL:")
+ ? (l = z.slice(6))
+ : _u(z, "MPEGTS:") && (p = parseInt(z.slice(7)));
+ }));
+ try {
+ M = DD(l) / 1e3;
+ } catch (z) {
+ d = z;
+ }
+ return;
+ } else f === "" && (O = !1);
+ a.parse(
+ f +
+ `
+`,
+ );
+ }),
+ a.flush());
+}
+const xu = "stpp.ttml.im1t",
+ b6 = /^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/,
+ p6 = /^(\d*(?:\.\d*)?)(h|m|s|ms|f|t)$/,
+ PD = {
+ left: "start",
+ center: "center",
+ right: "end",
+ start: "start",
+ end: "end",
+ };
+function G3(t, e, n, i) {
+ const r = E0(new Uint8Array(t), ["mdat"]);
+ if (r.length === 0) {
+ i(new Error("Could not parse IMSC1 mdat"));
+ return;
+ }
+ const s = r.map((a) => se(a)),
+ o = H9(e.baseTime, 1, e.timescale);
+ try {
+ s.forEach((a) => n(XD(a, o)));
+ } catch (a) {
+ i(a);
+ }
+}
+function XD(t, e) {
+ const r = new DOMParser()
+ .parseFromString(t, "text/xml")
+ .getElementsByTagName("tt")[0];
+ if (!r) throw new Error("Invalid ttml");
+ const s = {
+ frameRate: 30,
+ subFrameRate: 1,
+ frameRateMultiplier: 0,
+ tickRate: 0,
+ },
+ o = Object.keys(s).reduce(
+ (l, p) => ((l[p] = r.getAttribute(`ttp:${p}`) || s[p]), l),
+ {},
+ ),
+ a = r.getAttribute("xml:space") !== "preserve",
+ u = V3(Su(r, "styling", "style")),
+ c = V3(Su(r, "layout", "region")),
+ b = Su(r, "body", "[begin]");
+ return [].map
+ .call(b, (l) => {
+ const p = l6(l, a);
+ if (!p || !l.hasAttribute("begin")) return null;
+ const M = Nu(l.getAttribute("begin"), o),
+ d = Nu(l.getAttribute("dur"), o);
+ let O = Nu(l.getAttribute("end"), o);
+ if (M === null) throw j3(l);
+ if (O === null) {
+ if (d === null) throw j3(l);
+ O = M + d;
+ }
+ const f = new IM(M - e, O - e, p);
+ f.id = DM(f.startTime, f.endTime, f.text);
+ const z = c[l.getAttribute("region")],
+ g = u[l.getAttribute("style")],
+ A = FD(z, g, u),
+ { textAlign: h } = A;
+ if (h) {
+ const q = PD[h];
+ (q && (f.lineAlign = q), (f.align = h));
+ }
+ return (H0(f, A), f);
+ })
+ .filter((l) => l !== null);
+}
+function Su(t, e, n) {
+ const i = t.getElementsByTagName(e)[0];
+ return i ? [].slice.call(i.querySelectorAll(n)) : [];
+}
+function V3(t) {
+ return t.reduce((e, n) => {
+ const i = n.getAttribute("xml:id");
+ return (i && (e[i] = n), e);
+ }, {});
+}
+function l6(t, e) {
+ return [].slice.call(t.childNodes).reduce((n, i, r) => {
+ var s;
+ return i.nodeName === "br" && r
+ ? n +
+ `
+`
+ : (s = i.childNodes) != null && s.length
+ ? l6(i, e)
+ : e
+ ? n + i.textContent.trim().replace(/\s+/g, " ")
+ : n + i.textContent;
+ }, "");
+}
+function FD(t, e, n) {
+ const i = "http://www.w3.org/ns/ttml#styling";
+ let r = null;
+ const s = [
+ "displayAlign",
+ "textAlign",
+ "color",
+ "backgroundColor",
+ "fontSize",
+ "fontFamily",
+ ],
+ o = t != null && t.hasAttribute("style") ? t.getAttribute("style") : null;
+ return (
+ o && n.hasOwnProperty(o) && (r = n[o]),
+ s.reduce((a, u) => {
+ const c = wu(e, i, u) || wu(t, i, u) || wu(r, i, u);
+ return (c && (a[u] = c), a);
+ }, {})
+ );
+}
+function wu(t, e, n) {
+ return t && t.hasAttributeNS(e, n) ? t.getAttributeNS(e, n) : null;
+}
+function j3(t) {
+ return new Error(`Could not parse ttml timestamp ${t}`);
+}
+function Nu(t, e) {
+ if (!t) return null;
+ let n = a6(t);
+ return (
+ n === null && (b6.test(t) ? (n = UD(t, e)) : p6.test(t) && (n = $D(t, e))),
+ n
+ );
+}
+function UD(t, e) {
+ const n = b6.exec(t),
+ i = (n[4] | 0) + (n[5] | 0) / e.subFrameRate;
+ return (n[1] | 0) * 3600 + (n[2] | 0) * 60 + (n[3] | 0) + i / e.frameRate;
+}
+function $D(t, e) {
+ const n = p6.exec(t),
+ i = Number(n[1]);
+ switch (n[2]) {
+ case "h":
+ return i * 3600;
+ case "m":
+ return i * 60;
+ case "ms":
+ return i * 1e3;
+ case "f":
+ return i / e.frameRate;
+ case "t":
+ return i / e.tickRate;
+ }
+ return i;
+}
+class Uo {
+ constructor(e, n) {
+ ((this.timelineController = void 0),
+ (this.cueRanges = []),
+ (this.trackName = void 0),
+ (this.startTime = null),
+ (this.endTime = null),
+ (this.screen = null),
+ (this.timelineController = e),
+ (this.trackName = n));
+ }
+ dispatchCue() {
+ this.startTime !== null &&
+ (this.timelineController.addCues(
+ this.trackName,
+ this.startTime,
+ this.endTime,
+ this.screen,
+ this.cueRanges,
+ ),
+ (this.startTime = null));
+ }
+ newCue(e, n, i) {
+ ((this.startTime === null || this.startTime > e) && (this.startTime = e),
+ (this.endTime = n),
+ (this.screen = i),
+ this.timelineController.createCaptionsTrack(this.trackName));
+ }
+ reset() {
+ ((this.cueRanges = []), (this.startTime = null));
+ }
+}
+class HD {
+ constructor(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 = Y3()),
+ (this.captionsProperties = void 0),
+ (this.hls = e),
+ (this.config = e.config),
+ (this.Cues = e.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,
+ },
+ }),
+ e.on(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.MANIFEST_LOADED, this.onManifestLoaded, this),
+ e.on(L.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this),
+ e.on(L.FRAG_LOADING, this.onFragLoading, this),
+ e.on(L.FRAG_LOADED, this.onFragLoaded, this),
+ e.on(L.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this),
+ e.on(L.FRAG_DECRYPTED, this.onFragDecrypted, this),
+ e.on(L.INIT_PTS_FOUND, this.onInitPtsFound, this),
+ e.on(L.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this),
+ e.on(L.BUFFER_FLUSHING, this.onBufferFlushing, this));
+ }
+ destroy() {
+ const { hls: e } = this;
+ (e.off(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.MANIFEST_LOADED, this.onManifestLoaded, this),
+ e.off(L.SUBTITLE_TRACKS_UPDATED, this.onSubtitleTracksUpdated, this),
+ e.off(L.FRAG_LOADING, this.onFragLoading, this),
+ e.off(L.FRAG_LOADED, this.onFragLoaded, this),
+ e.off(L.FRAG_PARSING_USERDATA, this.onFragParsingUserdata, this),
+ e.off(L.FRAG_DECRYPTED, this.onFragDecrypted, this),
+ e.off(L.INIT_PTS_FOUND, this.onInitPtsFound, this),
+ e.off(L.SUBTITLE_TRACKS_CLEARED, this.onSubtitleTracksCleared, this),
+ e.off(L.BUFFER_FLUSHING, this.onBufferFlushing, this),
+ (this.hls = this.config = this.media = null),
+ (this.cea608Parser1 = this.cea608Parser2 = void 0));
+ }
+ initCea608Parsers() {
+ const e = new Uo(this, "textTrack1"),
+ n = new Uo(this, "textTrack2"),
+ i = new Uo(this, "textTrack3"),
+ r = new Uo(this, "textTrack4");
+ ((this.cea608Parser1 = new H3(1, e, n)),
+ (this.cea608Parser2 = new H3(3, i, r)));
+ }
+ addCues(e, n, i, r, s) {
+ let o = !1;
+ for (let a = s.length; a--; ) {
+ const u = s[a],
+ c = GD(u[0], u[1], n, i);
+ if (
+ c >= 0 &&
+ ((u[0] = Math.min(u[0], n)),
+ (u[1] = Math.max(u[1], i)),
+ (o = !0),
+ c / (i - n) > 0.5)
+ )
+ return;
+ }
+ if ((o || s.push([n, i]), this.config.renderTextTracksNatively)) {
+ const a = this.captionsTracks[e];
+ this.Cues.newCue(a, n, i, r);
+ } else {
+ const a = this.Cues.newCue(null, n, i, r);
+ this.hls.trigger(L.CUES_PARSED, { type: "captions", cues: a, track: e });
+ }
+ }
+ onInitPtsFound(e, { frag: n, id: i, initPTS: r, timescale: s, trackId: o }) {
+ const { unparsedVttFrags: a } = this;
+ (i === z0.MAIN &&
+ (this.initPTS[n.cc] = { baseTime: r, timescale: s, trackId: o }),
+ a.length &&
+ ((this.unparsedVttFrags = []),
+ a.forEach((u) => {
+ this.initPTS[u.frag.cc]
+ ? this.onFragLoaded(L.FRAG_LOADED, u)
+ : this.hls.trigger(L.SUBTITLE_FRAG_PROCESSED, {
+ success: !1,
+ frag: u.frag,
+ error: new Error(
+ "Subtitle discontinuity domain does not match main",
+ ),
+ });
+ })));
+ }
+ getExistingTrack(e, n) {
+ const { media: i } = this;
+ if (i)
+ for (let r = 0; r < i.textTracks.length; r++) {
+ const s = i.textTracks[r];
+ if (
+ K3(s, {
+ name: e,
+ lang: n,
+ characteristics:
+ "transcribes-spoken-dialog,describes-music-and-sound",
+ })
+ )
+ return s;
+ }
+ return null;
+ }
+ createCaptionsTrack(e) {
+ this.config.renderTextTracksNatively
+ ? this.createNativeTrack(e)
+ : this.createNonNativeTrack(e);
+ }
+ createNativeTrack(e) {
+ if (this.captionsTracks[e]) return;
+ const { captionsProperties: n, captionsTracks: i, media: r } = this,
+ { label: s, languageCode: o } = n[e],
+ a = this.getExistingTrack(s, o);
+ if (a) ((i[e] = a), Ci(i[e]), n6(i[e], r));
+ else {
+ const u = this.createTextTrack("captions", s, o);
+ u && ((u[e] = !0), (i[e] = u));
+ }
+ }
+ createNonNativeTrack(e) {
+ if (this.nonNativeCaptionsTracks[e]) return;
+ const n = this.captionsProperties[e];
+ if (!n) return;
+ const i = n.label,
+ r = {
+ _id: e,
+ label: i,
+ kind: "captions",
+ default: n.media ? !!n.media.default : !1,
+ closedCaptions: n.media,
+ };
+ ((this.nonNativeCaptionsTracks[e] = r),
+ this.hls.trigger(L.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: [r] }));
+ }
+ createTextTrack(e, n, i) {
+ const r = this.media;
+ if (r) return r.addTextTrack(e, n, i);
+ }
+ onMediaAttaching(e, n) {
+ ((this.media = n.media), n.mediaSource || this._cleanTracks());
+ }
+ onMediaDetaching(e, n) {
+ const i = !!n.transferMedia;
+ if (((this.media = null), i)) return;
+ const { captionsTracks: r } = this;
+ (Object.keys(r).forEach((s) => {
+ (Ci(r[s]), delete r[s]);
+ }),
+ (this.nonNativeCaptionsTracks = {}));
+ }
+ onManifestLoading() {
+ ((this.lastCc = -1),
+ (this.lastSn = -1),
+ (this.lastPartIndex = -1),
+ (this.prevCC = -1),
+ (this.vttCCs = Y3()),
+ this._cleanTracks(),
+ (this.tracks = []),
+ (this.captionsTracks = {}),
+ (this.nonNativeCaptionsTracks = {}),
+ (this.textTracks = []),
+ (this.unparsedVttFrags = []),
+ (this.initPTS = []),
+ this.cea608Parser1 &&
+ this.cea608Parser2 &&
+ (this.cea608Parser1.reset(), this.cea608Parser2.reset()));
+ }
+ _cleanTracks() {
+ const { media: e } = this;
+ if (!e) return;
+ const n = e.textTracks;
+ if (n) for (let i = 0; i < n.length; i++) Ci(n[i]);
+ }
+ onSubtitleTracksUpdated(e, n) {
+ const i = n.subtitleTracks || [],
+ r = i.some((s) => s.textCodec === xu);
+ if (this.config.enableWebVTT || (r && this.config.enableIMSC1)) {
+ if (Ug(this.tracks, i)) {
+ this.tracks = i;
+ return;
+ }
+ if (
+ ((this.textTracks = []),
+ (this.tracks = i),
+ this.config.renderTextTracksNatively)
+ ) {
+ const o = this.media,
+ a = o ? Wa(o.textTracks) : null;
+ if (
+ (this.tracks.forEach((u, c) => {
+ let b;
+ if (a) {
+ let l = null;
+ for (let p = 0; p < a.length; p++)
+ if (a[p] && K3(a[p], u)) {
+ ((l = a[p]), (a[p] = null));
+ break;
+ }
+ l && (b = l);
+ }
+ if (b) Ci(b);
+ else {
+ const l = M6(u);
+ ((b = this.createTextTrack(l, u.name, u.lang)),
+ b && (b.mode = "disabled"));
+ }
+ b && this.textTracks.push(b);
+ }),
+ a != null && a.length)
+ ) {
+ const u = a.filter((c) => c !== null).map((c) => c.label);
+ u.length &&
+ this.hls.logger.warn(
+ `Media element contains unused subtitle tracks: ${u.join(", ")}. Replace media element for each source to clear TextTracks and captions menu.`,
+ );
+ }
+ } else if (this.tracks.length) {
+ const o = this.tracks.map((a) => ({
+ label: a.name,
+ kind: a.type.toLowerCase(),
+ default: a.default,
+ subtitleTrack: a,
+ }));
+ this.hls.trigger(L.NON_NATIVE_TEXT_TRACKS_FOUND, { tracks: o });
+ }
+ }
+ }
+ onManifestLoaded(e, n) {
+ this.config.enableCEA708Captions &&
+ n.captions &&
+ n.captions.forEach((i) => {
+ const r = /(?:CC|SERVICE)([1-4])/.exec(i.instreamId);
+ if (!r) return;
+ const s = `textTrack${r[1]}`,
+ o = this.captionsProperties[s];
+ o &&
+ ((o.label = i.name),
+ i.lang && (o.languageCode = i.lang),
+ (o.media = i));
+ });
+ }
+ closedCaptionsForLevel(e) {
+ const n = this.hls.levels[e.level];
+ return n?.attrs["CLOSED-CAPTIONS"];
+ }
+ onFragLoading(e, n) {
+ if (this.enabled && n.frag.type === z0.MAIN) {
+ var i, r;
+ const { cea608Parser1: s, cea608Parser2: o, lastSn: a } = this,
+ { cc: u, sn: c } = n.frag,
+ b = (i = (r = n.part) == null ? void 0 : r.index) != null ? i : -1;
+ (s &&
+ o &&
+ (c !== a + 1 ||
+ (c === a && b !== this.lastPartIndex + 1) ||
+ u !== this.lastCc) &&
+ (s.reset(), o.reset()),
+ (this.lastCc = u),
+ (this.lastSn = c),
+ (this.lastPartIndex = b));
+ }
+ }
+ onFragLoaded(e, n) {
+ const { frag: i, payload: r } = n;
+ if (i.type === z0.SUBTITLE)
+ if (r.byteLength) {
+ const s = i.decryptdata,
+ o = "stats" in n;
+ if (s == null || !s.encrypted || o) {
+ const a = this.tracks[i.level],
+ u = this.vttCCs;
+ (u[i.cc] ||
+ ((u[i.cc] = { start: i.start, prevCC: this.prevCC, new: !0 }),
+ (this.prevCC = i.cc)),
+ a && a.textCodec === xu
+ ? this._parseIMSC1(i, r)
+ : this._parseVTTs(n));
+ }
+ } else
+ this.hls.trigger(L.SUBTITLE_FRAG_PROCESSED, {
+ success: !1,
+ frag: i,
+ error: new Error("Empty subtitle payload"),
+ });
+ }
+ _parseIMSC1(e, n) {
+ const i = this.hls;
+ G3(
+ n,
+ this.initPTS[e.cc],
+ (r) => {
+ (this._appendCues(r, e.level),
+ i.trigger(L.SUBTITLE_FRAG_PROCESSED, { success: !0, frag: e }));
+ },
+ (r) => {
+ (i.logger.log(`Failed to parse IMSC1: ${r}`),
+ i.trigger(L.SUBTITLE_FRAG_PROCESSED, {
+ success: !1,
+ frag: e,
+ error: r,
+ }));
+ },
+ );
+ }
+ _parseVTTs(e) {
+ var n;
+ const { frag: i, payload: r } = e,
+ { initPTS: s, unparsedVttFrags: o } = this,
+ a = s.length - 1;
+ if (!s[i.cc] && a === -1) {
+ o.push(e);
+ return;
+ }
+ const u = this.hls,
+ c =
+ (n = i.initSegment) != null && n.data
+ ? ge(i.initSegment.data, new Uint8Array(r)).buffer
+ : r;
+ kD(
+ c,
+ this.initPTS[i.cc],
+ this.vttCCs,
+ i.cc,
+ i.start,
+ (b) => {
+ (this._appendCues(b, i.level),
+ u.trigger(L.SUBTITLE_FRAG_PROCESSED, { success: !0, frag: i }));
+ },
+ (b) => {
+ const l = b.message === "Missing initPTS for VTT MPEGTS";
+ (l ? o.push(e) : this._fallbackToIMSC1(i, r),
+ u.logger.log(`Failed to parse VTT cue: ${b}`),
+ !(l && a > i.cc) &&
+ u.trigger(L.SUBTITLE_FRAG_PROCESSED, {
+ success: !1,
+ frag: i,
+ error: b,
+ }));
+ },
+ );
+ }
+ _fallbackToIMSC1(e, n) {
+ const i = this.tracks[e.level];
+ i.textCodec ||
+ G3(
+ n,
+ this.initPTS[e.cc],
+ () => {
+ ((i.textCodec = xu), this._parseIMSC1(e, n));
+ },
+ () => {
+ i.textCodec = "wvtt";
+ },
+ );
+ }
+ _appendCues(e, n) {
+ const i = this.hls;
+ if (this.config.renderTextTracksNatively) {
+ const r = this.textTracks[n];
+ if (!r || r.mode === "disabled") return;
+ e.forEach((s) => i6(r, s));
+ } else {
+ const r = this.tracks[n];
+ if (!r) return;
+ const s = r.default ? "default" : "subtitles" + n;
+ i.trigger(L.CUES_PARSED, { type: "subtitles", cues: e, track: s });
+ }
+ }
+ onFragDecrypted(e, n) {
+ const { frag: i } = n;
+ i.type === z0.SUBTITLE && this.onFragLoaded(L.FRAG_LOADED, n);
+ }
+ onSubtitleTracksCleared() {
+ ((this.tracks = []), (this.captionsTracks = {}));
+ }
+ onFragParsingUserdata(e, n) {
+ if (!this.enabled || !this.config.enableCEA708Captions) return;
+ const { frag: i, samples: r } = n;
+ if (!(i.type === z0.MAIN && this.closedCaptionsForLevel(i) === "NONE"))
+ for (let s = 0; s < r.length; s++) {
+ const o = r[s].bytes;
+ if (o) {
+ this.cea608Parser1 || this.initCea608Parsers();
+ const a = this.extractCea608Data(o);
+ (this.cea608Parser1.addData(r[s].pts, a[0]),
+ this.cea608Parser2.addData(r[s].pts, a[1]));
+ }
+ }
+ }
+ onBufferFlushing(
+ e,
+ { startOffset: n, endOffset: i, endOffsetSubtitles: r, type: s },
+ ) {
+ const { media: o } = this;
+ if (!(!o || o.currentTime < i)) {
+ if (!s || s === "video") {
+ const { captionsTracks: a } = this;
+ Object.keys(a).forEach((u) => xp(a[u], n, i));
+ }
+ if (this.config.renderTextTracksNatively && n === 0 && r !== void 0) {
+ const { textTracks: a } = this;
+ Object.keys(a).forEach((u) => xp(a[u], n, r));
+ }
+ }
+ }
+ extractCea608Data(e) {
+ const n = [[], []],
+ i = e[0] & 31;
+ let r = 2;
+ for (let s = 0; s < i; s++) {
+ const o = e[r++],
+ a = 127 & e[r++],
+ u = 127 & e[r++];
+ if (a === 0 && u === 0) continue;
+ if ((4 & o) !== 0) {
+ const b = 3 & o;
+ (b === 0 || b === 1) && (n[b].push(a), n[b].push(u));
+ }
+ }
+ return n;
+ }
+}
+function M6(t) {
+ return t.characteristics &&
+ /transcribes-spoken-dialog/gi.test(t.characteristics) &&
+ /describes-music-and-sound/gi.test(t.characteristics)
+ ? "captions"
+ : "subtitles";
+}
+function K3(t, e) {
+ return !!t && t.kind === M6(e) && vp(e, t);
+}
+function GD(t, e, n, i) {
+ return Math.min(e, i) - Math.max(t, n);
+}
+function Y3() {
+ return {
+ ccOffset: 0,
+ presentationOffset: 0,
+ 0: { start: 0, prevCC: -1, new: !0 },
+ };
+}
+const VD = /\s/,
+ jD = {
+ newCue(t, e, n, i) {
+ const r = [];
+ let s, o, a, u, c;
+ const b = self.VTTCue || self.TextTrackCue;
+ for (let p = 0; p < i.rows.length; p++)
+ if (((s = i.rows[p]), (a = !0), (u = 0), (c = ""), !s.isEmpty())) {
+ var l;
+ for (let O = 0; O < s.chars.length; O++)
+ VD.test(s.chars[O].uchar) && a
+ ? u++
+ : ((c += s.chars[O].uchar), (a = !1));
+ ((s.cueStartTime = e), e === n && (n += 1e-4), u >= 16 ? u-- : u++);
+ const M = u6(c.trim()),
+ d = DM(e, n, M);
+ (t != null && (l = t.cues) != null && l.getCueById(d)) ||
+ ((o = new b(e, n, M)),
+ (o.id = d),
+ (o.line = p + 1),
+ (o.align = "left"),
+ (o.position = 10 + Math.min(80, Math.floor((u * 8) / 32) * 10)),
+ r.push(o));
+ }
+ return (
+ t &&
+ r.length &&
+ (r.sort((p, M) =>
+ p.line === "auto" || M.line === "auto"
+ ? 0
+ : p.line > 8 && M.line > 8
+ ? M.line - p.line
+ : p.line - M.line,
+ ),
+ r.forEach((p) => i6(t, p))),
+ r
+ );
+ },
+ };
+function KD() {
+ if (self.fetch && self.AbortController && self.ReadableStream && self.Request)
+ try {
+ return (new self.ReadableStream({}), !0);
+ } catch {}
+ return !1;
+}
+const YD = /(\d+)-(\d+)\/(\d+)/;
+class Q3 {
+ constructor(e) {
+ ((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 = e.fetchSetup || eC),
+ (this.controller = new self.AbortController()),
+ (this.stats = new fM()));
+ }
+ destroy() {
+ ((this.loader =
+ this.callbacks =
+ this.context =
+ this.config =
+ this.request =
+ null),
+ this.abortInternal(),
+ (this.response = null),
+ (this.fetchSetup = this.controller = this.stats = null));
+ }
+ abortInternal() {
+ this.controller &&
+ !this.stats.loading.end &&
+ ((this.stats.aborted = !0), this.controller.abort());
+ }
+ abort() {
+ var e;
+ (this.abortInternal(),
+ (e = this.callbacks) != null &&
+ e.onAbort &&
+ this.callbacks.onAbort(this.stats, this.context, this.response));
+ }
+ load(e, n, i) {
+ const r = this.stats;
+ if (r.loading.start) throw new Error("Loader can only be used once.");
+ r.loading.start = self.performance.now();
+ const s = QD(e, this.controller.signal),
+ o = e.responseType === "arraybuffer",
+ a = o ? "byteLength" : "length",
+ { maxTimeToFirstByteMs: u, maxLoadTimeMs: c } = n.loadPolicy;
+ ((this.context = e),
+ (this.config = n),
+ (this.callbacks = i),
+ (this.request = this.fetchSetup(e, s)),
+ self.clearTimeout(this.requestTimeout),
+ (n.timeout = u && p0(u) ? u : c),
+ (this.requestTimeout = self.setTimeout(() => {
+ this.callbacks &&
+ (this.abortInternal(), this.callbacks.onTimeout(r, e, this.response));
+ }, n.timeout)),
+ (ks(this.request)
+ ? this.request.then(self.fetch)
+ : self.fetch(this.request)
+ )
+ .then((l) => {
+ var p;
+ this.response = this.loader = l;
+ const M = Math.max(self.performance.now(), r.loading.start);
+ if (
+ (self.clearTimeout(this.requestTimeout),
+ (n.timeout = c),
+ (this.requestTimeout = self.setTimeout(
+ () => {
+ this.callbacks &&
+ (this.abortInternal(),
+ this.callbacks.onTimeout(r, e, this.response));
+ },
+ c - (M - r.loading.start),
+ )),
+ !l.ok)
+ ) {
+ const { status: O, statusText: f } = l;
+ throw new tC(f || "fetch, bad network response", O, l);
+ }
+ ((r.loading.first = M), (r.total = ZD(l.headers) || r.total));
+ const d = (p = this.callbacks) == null ? void 0 : p.onProgress;
+ return d && p0(n.highWaterMark)
+ ? this.loadProgressively(l, r, e, n.highWaterMark, d)
+ : o
+ ? l.arrayBuffer()
+ : e.responseType === "json"
+ ? l.json()
+ : l.text();
+ })
+ .then((l) => {
+ var p, M;
+ const d = this.response;
+ if (!d) throw new Error("loader destroyed");
+ (self.clearTimeout(this.requestTimeout),
+ (r.loading.end = Math.max(
+ self.performance.now(),
+ r.loading.first,
+ )));
+ const O = l[a];
+ O && (r.loaded = r.total = O);
+ const f = { url: d.url, data: l, code: d.status },
+ z = (p = this.callbacks) == null ? void 0 : p.onProgress;
+ (z && !p0(n.highWaterMark) && z(r, e, l, d),
+ (M = this.callbacks) == null || M.onSuccess(f, r, e, d));
+ })
+ .catch((l) => {
+ var p;
+ if ((self.clearTimeout(this.requestTimeout), r.aborted)) return;
+ const M = (l && l.code) || 0,
+ d = l ? l.message : null;
+ (p = this.callbacks) == null ||
+ p.onError({ code: M, text: d }, e, l ? l.details : null, r);
+ }));
+ }
+ getCacheAge() {
+ let e = null;
+ if (this.response) {
+ const n = this.response.headers.get("age");
+ e = n ? parseFloat(n) : null;
+ }
+ return e;
+ }
+ getResponseHeader(e) {
+ return this.response ? this.response.headers.get(e) : null;
+ }
+ loadProgressively(e, n, i, r = 0, s) {
+ const o = new Wg(),
+ a = e.body.getReader(),
+ u = () =>
+ a
+ .read()
+ .then((c) => {
+ if (c.done)
+ return (
+ o.dataLength && s(n, i, o.flush().buffer, e),
+ Promise.resolve(new ArrayBuffer(0))
+ );
+ const b = c.value,
+ l = b.length;
+ return (
+ (n.loaded += l),
+ l < r || o.dataLength
+ ? (o.push(b), o.dataLength >= r && s(n, i, o.flush().buffer, e))
+ : s(n, i, b.buffer, e),
+ u()
+ );
+ })
+ .catch(() => Promise.reject());
+ return u();
+ }
+}
+function QD(t, e) {
+ const n = {
+ method: "GET",
+ mode: "cors",
+ credentials: "same-origin",
+ signal: e,
+ headers: new self.Headers(H0({}, t.headers)),
+ };
+ return (
+ t.rangeEnd &&
+ n.headers.set(
+ "Range",
+ "bytes=" + t.rangeStart + "-" + String(t.rangeEnd - 1),
+ ),
+ n
+ );
+}
+function JD(t) {
+ const e = YD.exec(t);
+ if (e) return parseInt(e[2]) - parseInt(e[1]) + 1;
+}
+function ZD(t) {
+ const e = t.get("Content-Range");
+ if (e) {
+ const i = JD(e);
+ if (p0(i)) return i;
+ }
+ const n = t.get("Content-Length");
+ if (n) return parseInt(n);
+}
+function eC(t, e) {
+ return new self.Request(t.url, e);
+}
+class tC extends Error {
+ constructor(e, n, i) {
+ (super(e),
+ (this.code = void 0),
+ (this.details = void 0),
+ (this.code = n),
+ (this.details = i));
+ }
+}
+const nC = /^age:\s*[\d.]+\s*$/im;
+class d6 {
+ constructor(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 = (e && e.xhrSetup) || null),
+ (this.stats = new fM()),
+ (this.retryDelay = 0));
+ }
+ destroy() {
+ ((this.callbacks = null),
+ this.abortInternal(),
+ (this.loader = null),
+ (this.config = null),
+ (this.context = null),
+ (this.xhrSetup = null));
+ }
+ abortInternal() {
+ const e = this.loader;
+ (self.clearTimeout(this.requestTimeout),
+ self.clearTimeout(this.retryTimeout),
+ e &&
+ ((e.onreadystatechange = null),
+ (e.onprogress = null),
+ e.readyState !== 4 && ((this.stats.aborted = !0), e.abort())));
+ }
+ abort() {
+ var e;
+ (this.abortInternal(),
+ (e = this.callbacks) != null &&
+ e.onAbort &&
+ this.callbacks.onAbort(this.stats, this.context, this.loader));
+ }
+ load(e, n, i) {
+ 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 = n),
+ (this.callbacks = i),
+ this.loadInternal());
+ }
+ loadInternal() {
+ const { config: e, context: n } = this;
+ if (!e || !n) return;
+ const i = (this.loader = new self.XMLHttpRequest()),
+ r = this.stats;
+ ((r.loading.first = 0), (r.loaded = 0), (r.aborted = !1));
+ const s = this.xhrSetup;
+ s
+ ? Promise.resolve()
+ .then(() => {
+ if (!(this.loader !== i || this.stats.aborted)) return s(i, n.url);
+ })
+ .catch((o) => {
+ if (!(this.loader !== i || this.stats.aborted))
+ return (i.open("GET", n.url, !0), s(i, n.url));
+ })
+ .then(() => {
+ this.loader !== i ||
+ this.stats.aborted ||
+ this.openAndSendXhr(i, n, e);
+ })
+ .catch((o) => {
+ var a;
+ (a = this.callbacks) == null ||
+ a.onError({ code: i.status, text: o.message }, n, i, r);
+ })
+ : this.openAndSendXhr(i, n, e);
+ }
+ openAndSendXhr(e, n, i) {
+ e.readyState || e.open("GET", n.url, !0);
+ const r = n.headers,
+ { maxTimeToFirstByteMs: s, maxLoadTimeMs: o } = i.loadPolicy;
+ if (r) for (const a in r) e.setRequestHeader(a, r[a]);
+ (n.rangeEnd &&
+ e.setRequestHeader(
+ "Range",
+ "bytes=" + n.rangeStart + "-" + (n.rangeEnd - 1),
+ ),
+ (e.onreadystatechange = this.readystatechange.bind(this)),
+ (e.onprogress = this.loadprogress.bind(this)),
+ (e.responseType = n.responseType),
+ self.clearTimeout(this.requestTimeout),
+ (i.timeout = s && p0(s) ? s : o),
+ (this.requestTimeout = self.setTimeout(
+ this.loadtimeout.bind(this),
+ i.timeout,
+ )),
+ e.send());
+ }
+ readystatechange() {
+ const { context: e, loader: n, stats: i } = this;
+ if (!e || !n) return;
+ const r = n.readyState,
+ s = this.config;
+ if (
+ !i.aborted &&
+ r >= 2 &&
+ (i.loading.first === 0 &&
+ ((i.loading.first = Math.max(self.performance.now(), i.loading.start)),
+ s.timeout !== s.loadPolicy.maxLoadTimeMs &&
+ (self.clearTimeout(this.requestTimeout),
+ (s.timeout = s.loadPolicy.maxLoadTimeMs),
+ (this.requestTimeout = self.setTimeout(
+ this.loadtimeout.bind(this),
+ s.loadPolicy.maxLoadTimeMs - (i.loading.first - i.loading.start),
+ )))),
+ r === 4)
+ ) {
+ (self.clearTimeout(this.requestTimeout),
+ (n.onreadystatechange = null),
+ (n.onprogress = null));
+ const c = n.status,
+ b = n.responseType === "text" ? n.responseText : null;
+ if (c >= 200 && c < 300) {
+ const d = b ?? n.response;
+ if (d != null) {
+ var o, a;
+ i.loading.end = Math.max(self.performance.now(), i.loading.first);
+ const O = n.responseType === "arraybuffer" ? d.byteLength : d.length;
+ ((i.loaded = i.total = O),
+ (i.bwEstimate =
+ (i.total * 8e3) / (i.loading.end - i.loading.first)));
+ const f = (o = this.callbacks) == null ? void 0 : o.onProgress;
+ f && f(i, e, d, n);
+ const z = { url: n.responseURL, data: d, code: c };
+ (a = this.callbacks) == null || a.onSuccess(z, i, e, n);
+ return;
+ }
+ }
+ const l = s.loadPolicy.errorRetry,
+ p = i.retry,
+ M = { url: e.url, data: void 0, code: c };
+ if (gc(l, p, !1, M)) this.retry(l);
+ else {
+ var u;
+ (U0.error(`${c} while loading ${e.url}`),
+ (u = this.callbacks) == null ||
+ u.onError({ code: c, text: n.statusText }, e, n, i));
+ }
+ }
+ }
+ loadtimeout() {
+ if (!this.config) return;
+ const e = this.config.loadPolicy.timeoutRetry,
+ n = this.stats.retry;
+ if (gc(e, n, !0)) this.retry(e);
+ else {
+ var i;
+ U0.warn(
+ `timeout while loading ${(i = this.context) == null ? void 0 : i.url}`,
+ );
+ const r = this.callbacks;
+ r &&
+ (this.abortInternal(),
+ r.onTimeout(this.stats, this.context, this.loader));
+ }
+ }
+ retry(e) {
+ const { context: n, stats: i } = this;
+ ((this.retryDelay = AM(e, i.retry)),
+ i.retry++,
+ U0.warn(
+ `${status ? "HTTP Status " + status : "Timeout"} while loading ${n?.url}, retrying ${i.retry}/${e.maxNumRetry} in ${this.retryDelay}ms`,
+ ),
+ this.abortInternal(),
+ (this.loader = null),
+ self.clearTimeout(this.retryTimeout),
+ (this.retryTimeout = self.setTimeout(
+ this.loadInternal.bind(this),
+ this.retryDelay,
+ )));
+ }
+ loadprogress(e) {
+ const n = this.stats;
+ ((n.loaded = e.loaded), e.lengthComputable && (n.total = e.total));
+ }
+ getCacheAge() {
+ let e = null;
+ if (this.loader && nC.test(this.loader.getAllResponseHeaders())) {
+ const n = this.loader.getResponseHeader("age");
+ e = n ? parseFloat(n) : null;
+ }
+ return e;
+ }
+ getResponseHeader(e) {
+ return this.loader &&
+ new RegExp(`^${e}:\\s*[\\d.]+\\s*$`, "im").test(
+ this.loader.getAllResponseHeaders(),
+ )
+ ? this.loader.getResponseHeader(e)
+ : null;
+ }
+}
+const iC = {
+ maxTimeToFirstByteMs: 8e3,
+ maxLoadTimeMs: 2e4,
+ timeoutRetry: null,
+ errorRetry: null,
+ },
+ rC = $0(
+ $0(
+ {
+ 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,
+ startOnSegmentBoundary: !1,
+ maxBufferSize: 60 * 1e3 * 1e3,
+ maxFragLookUpTolerance: 0.25,
+ maxBufferHole: 0.1,
+ detectStallWithCurrentTimeMs: 1250,
+ highBufferWatchdogPeriod: 2,
+ nudgeOffset: 0.1,
+ nudgeMaxRetry: 3,
+ nudgeOnVideoHole: !0,
+ liveSyncMode: "edge",
+ 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: 0.2,
+ appendErrorMaxRetry: 3,
+ ignorePlaylistParsingErrors: !1,
+ loader: d6,
+ fLoader: void 0,
+ pLoader: void 0,
+ xhrSetup: void 0,
+ licenseXhrSetup: void 0,
+ licenseResponseCallback: void 0,
+ abrController: zB,
+ bufferController: aI,
+ capLevelController: wM,
+ errorController: gB,
+ fpsController: aD,
+ stretchShortVideoTrack: !1,
+ maxAudioFramesDrift: 1,
+ forceKeyFrameOnDiscontinuity: !0,
+ abrEwmaFastLive: 3,
+ abrEwmaSlowLive: 9,
+ abrEwmaFastVoD: 3,
+ abrEwmaSlowVoD: 9,
+ abrEwmaDefaultEstimate: 5e5,
+ abrEwmaDefaultEstimateMax: 5e6,
+ abrBandWidthFactor: 0.95,
+ abrBandWidthUpFactor: 0.7,
+ abrMaxWithRealBitrate: !1,
+ maxStarvationDelay: 4,
+ maxLoadingDelay: 4,
+ minAutoBitrate: 0,
+ emeEnabled: !1,
+ widevineLicenseUrl: void 0,
+ drmSystems: {},
+ drmSystemOptions: {},
+ requestMediaKeySystemAccessFunc: Mg,
+ requireKeySystemAccessOnStart: !1,
+ 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,
+ preserveManualLevelOnError: !1,
+ certLoadPolicy: { default: iC },
+ 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,
+ },
+ sC(),
+ ),
+ {},
+ {
+ subtitleStreamController: AD,
+ subtitleTrackController: bD,
+ timelineController: HD,
+ audioStreamController: iI,
+ audioTrackController: rI,
+ emeController: Zi,
+ cmcdController: rD,
+ contentSteeringController: oD,
+ interstitialsController: hD,
+ },
+ );
+function sC() {
+ return {
+ cueHandler: jD,
+ enableWebVTT: !0,
+ enableIMSC1: !0,
+ enableCEA708Captions: !0,
+ captionsTextTrack1Label: "English",
+ captionsTextTrack1LanguageCode: "en",
+ captionsTextTrack2Label: "Spanish",
+ captionsTextTrack2LanguageCode: "es",
+ captionsTextTrack3Label: "Unknown CC",
+ captionsTextTrack3LanguageCode: "",
+ captionsTextTrack4Label: "Unknown CC",
+ captionsTextTrack4LanguageCode: "",
+ renderTextTracksNatively: !0,
+ };
+}
+function oC(t, e, n) {
+ 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 (
+ e.liveMaxLatencyDurationCount !== void 0 &&
+ (e.liveSyncDurationCount === void 0 ||
+ e.liveMaxLatencyDurationCount <= e.liveSyncDurationCount)
+ )
+ throw new Error(
+ 'Illegal hls.js config: "liveMaxLatencyDurationCount" must be greater than "liveSyncDurationCount"',
+ );
+ if (
+ e.liveMaxLatencyDuration !== void 0 &&
+ (e.liveSyncDuration === void 0 ||
+ e.liveMaxLatencyDuration <= e.liveSyncDuration)
+ )
+ throw new Error(
+ 'Illegal hls.js config: "liveMaxLatencyDuration" must be greater than "liveSyncDuration"',
+ );
+ const i = wp(t),
+ r = ["manifest", "level", "frag"],
+ s = ["TimeOut", "MaxRetry", "RetryDelay", "MaxRetryTimeout"];
+ return (
+ r.forEach((o) => {
+ const a = `${o === "level" ? "playlist" : o}LoadPolicy`,
+ u = e[a] === void 0,
+ c = [];
+ (s.forEach((b) => {
+ const l = `${o}Loading${b}`,
+ p = e[l];
+ if (p !== void 0 && u) {
+ c.push(l);
+ const M = i[a].default;
+ switch (((e[a] = { default: M }), b)) {
+ case "TimeOut":
+ ((M.maxLoadTimeMs = p), (M.maxTimeToFirstByteMs = p));
+ break;
+ case "MaxRetry":
+ ((M.errorRetry.maxNumRetry = p),
+ (M.timeoutRetry.maxNumRetry = p));
+ break;
+ case "RetryDelay":
+ ((M.errorRetry.retryDelayMs = p),
+ (M.timeoutRetry.retryDelayMs = p));
+ break;
+ case "MaxRetryTimeout":
+ ((M.errorRetry.maxRetryDelayMs = p),
+ (M.timeoutRetry.maxRetryDelayMs = p));
+ break;
+ }
+ }
+ }),
+ c.length &&
+ n.warn(
+ `hls.js config: "${c.join('", "')}" setting(s) are deprecated, use "${a}": ${Y0(e[a])}`,
+ ));
+ }),
+ $0($0({}, i), e)
+ );
+}
+function wp(t) {
+ return t && typeof t == "object"
+ ? Array.isArray(t)
+ ? t.map(wp)
+ : Object.keys(t).reduce((e, n) => ((e[n] = wp(t[n])), e), {})
+ : t;
+}
+function aC(t, e) {
+ const n = t.loader;
+ n !== Q3 && n !== d6
+ ? (e.log(
+ "[config]: Custom loader detected, cannot enable progressive streaming",
+ ),
+ (t.progressive = !1))
+ : KD() &&
+ ((t.loader = Q3),
+ (t.progressive = !0),
+ (t.enableSoftwareAES = !0),
+ e.log("[config]: Progressive streaming enabled, using FetchLoader"));
+}
+const Ra = 2,
+ cC = 0.1,
+ uC = 0.05,
+ bC = 100;
+class pC extends cg {
+ constructor(e, n) {
+ (super("gap-controller", e.logger),
+ (this.hls = void 0),
+ (this.fragmentTracker = void 0),
+ (this.media = null),
+ (this.mediaSource = void 0),
+ (this.nudgeRetry = 0),
+ (this.stallReported = !1),
+ (this.stalled = null),
+ (this.moved = !1),
+ (this.seeking = !1),
+ (this.buffered = {}),
+ (this.lastCurrentTime = 0),
+ (this.ended = 0),
+ (this.waiting = 0),
+ (this.onMediaPlaying = () => {
+ ((this.ended = 0), (this.waiting = 0));
+ }),
+ (this.onMediaWaiting = () => {
+ var i;
+ ((i = this.media) != null && i.seeking) ||
+ ((this.waiting = self.performance.now()), this.tick());
+ }),
+ (this.onMediaEnded = () => {
+ if (this.hls) {
+ var i;
+ ((this.ended =
+ ((i = this.media) == null ? void 0 : i.currentTime) || 1),
+ this.hls.trigger(L.MEDIA_ENDED, { stalled: !1 }));
+ }
+ }),
+ (this.hls = e),
+ (this.fragmentTracker = n),
+ this.registerListeners());
+ }
+ registerListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.on(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.BUFFER_APPENDED, this.onBufferAppended, this));
+ }
+ unregisterListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.off(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.BUFFER_APPENDED, this.onBufferAppended, this));
+ }
+ destroy() {
+ (super.destroy(),
+ this.unregisterListeners(),
+ (this.media = this.hls = this.fragmentTracker = null),
+ (this.mediaSource = void 0));
+ }
+ onMediaAttached(e, n) {
+ (this.setInterval(bC), (this.mediaSource = n.mediaSource));
+ const i = (this.media = n.media);
+ (I1(i, "playing", this.onMediaPlaying),
+ I1(i, "waiting", this.onMediaWaiting),
+ I1(i, "ended", this.onMediaEnded));
+ }
+ onMediaDetaching(e, n) {
+ this.clearInterval();
+ const { media: i } = this;
+ (i &&
+ (G1(i, "playing", this.onMediaPlaying),
+ G1(i, "waiting", this.onMediaWaiting),
+ G1(i, "ended", this.onMediaEnded),
+ (this.media = null)),
+ (this.mediaSource = void 0));
+ }
+ onBufferAppended(e, n) {
+ this.buffered = n.timeRanges;
+ }
+ get hasBuffered() {
+ return Object.keys(this.buffered).length > 0;
+ }
+ tick() {
+ var e;
+ if (!((e = this.media) != null && e.readyState) || !this.hasBuffered)
+ return;
+ const n = this.media.currentTime;
+ (this.poll(n, this.lastCurrentTime), (this.lastCurrentTime = n));
+ }
+ poll(e, n) {
+ var i, r;
+ const s = (i = this.hls) == null ? void 0 : i.config;
+ if (!s) return;
+ const o = this.media;
+ if (!o) return;
+ const { seeking: a } = o,
+ u = this.seeking && !a,
+ c = !this.seeking && a,
+ b = (o.paused && !a) || o.ended || o.playbackRate === 0;
+ if (((this.seeking = a), e !== n)) {
+ (n && (this.ended = 0),
+ (this.moved = !0),
+ a ||
+ ((this.nudgeRetry = 0),
+ s.nudgeOnVideoHole && !b && e > n && this.nudgeOnVideoHole(e, n)),
+ this.waiting === 0 && this.stallResolved(e));
+ return;
+ }
+ if (c || u) {
+ u && this.stallResolved(e);
+ return;
+ }
+ if (b) {
+ ((this.nudgeRetry = 0),
+ this.stallResolved(e),
+ !this.ended &&
+ o.ended &&
+ this.hls &&
+ ((this.ended = e || 1),
+ this.hls.trigger(L.MEDIA_ENDED, { stalled: !1 })));
+ return;
+ }
+ if (!W0.getBuffered(o).length) {
+ this.nudgeRetry = 0;
+ return;
+ }
+ const l = W0.bufferInfo(o, e, 0),
+ p = l.nextStart || 0,
+ M = this.fragmentTracker;
+ if (a && M && this.hls) {
+ const v = J3(this.hls.inFlightFragments, e),
+ m = l.len > Ra,
+ E = !p || v || (p - e > Ra && !M.getPartialFragment(e));
+ if (m || E) return;
+ this.moved = !1;
+ }
+ const d = (r = this.hls) == null ? void 0 : r.latestLevelDetails;
+ if (!this.moved && this.stalled !== null && M) {
+ if (!(l.len > 0) && !p) return;
+ const m = Math.max(p, l.start || 0) - e,
+ _ = !!(d != null && d.live) ? d.targetduration * 2 : Ra,
+ T = $o(e, M);
+ if (m > 0 && (m <= _ || T)) {
+ o.paused || this._trySkipBufferHole(T);
+ return;
+ }
+ }
+ const O = s.detectStallWithCurrentTimeMs,
+ f = self.performance.now(),
+ z = this.waiting;
+ let g = this.stalled;
+ if (g === null)
+ if (z > 0 && f - z < O) g = this.stalled = z;
+ else {
+ this.stalled = f;
+ return;
+ }
+ const A = f - g;
+ if (!a && (A >= O || z) && this.hls) {
+ var h;
+ if (
+ ((h = this.mediaSource) == null ? void 0 : h.readyState) === "ended" &&
+ !(d != null && d.live) &&
+ Math.abs(e - (d?.edge || 0)) < 1
+ ) {
+ if (this.ended) return;
+ ((this.ended = e || 1),
+ this.hls.trigger(L.MEDIA_ENDED, { stalled: !0 }));
+ return;
+ }
+ if ((this._reportStall(l), !this.media || !this.hls)) return;
+ }
+ const q = W0.bufferInfo(o, e, s.maxBufferHole);
+ this._tryFixBufferStall(q, A, e);
+ }
+ stallResolved(e) {
+ const n = this.stalled;
+ if (n && this.hls && ((this.stalled = null), this.stallReported)) {
+ const i = self.performance.now() - n;
+ (this.log(`playback not stuck anymore @${e}, after ${Math.round(i)}ms`),
+ (this.stallReported = !1),
+ (this.waiting = 0),
+ this.hls.trigger(L.STALL_RESOLVED, {}));
+ }
+ }
+ nudgeOnVideoHole(e, n) {
+ var i;
+ const r = this.buffered.video;
+ if (
+ this.hls &&
+ this.media &&
+ this.fragmentTracker &&
+ (i = this.buffered.audio) != null &&
+ i.length &&
+ r &&
+ r.length > 1 &&
+ e > r.end(0)
+ ) {
+ const s = W0.bufferedInfo(
+ W0.timeRangesToArray(this.buffered.audio),
+ e,
+ 0,
+ );
+ if (s.len > 1 && n >= s.start) {
+ const o = W0.timeRangesToArray(r),
+ a = W0.bufferedInfo(o, n, 0).bufferedIndex;
+ if (a > -1 && a < o.length - 1) {
+ const u = W0.bufferedInfo(o, e, 0).bufferedIndex,
+ c = o[a].end,
+ b = o[a + 1].start;
+ if ((u === -1 || u > a) && b - c < 1 && e - c < 2) {
+ const l = new Error(
+ `nudging playhead to flush pipeline after video hole. currentTime: ${e} hole: ${c} -> ${b} buffered index: ${u}`,
+ );
+ (this.warn(l.message), (this.media.currentTime += 1e-6));
+ let p = $o(e, this.fragmentTracker);
+ p && "fragment" in p ? (p = p.fragment) : p || (p = void 0);
+ const M = W0.bufferInfo(this.media, e, 0);
+ this.hls.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.BUFFER_SEEK_OVER_HOLE,
+ fatal: !1,
+ error: l,
+ reason: l.message,
+ frag: p,
+ buffer: M.len,
+ bufferInfo: M,
+ });
+ }
+ }
+ }
+ }
+ }
+ _tryFixBufferStall(e, n, i) {
+ var r, s;
+ const { fragmentTracker: o, media: a } = this,
+ u = (r = this.hls) == null ? void 0 : r.config;
+ if (!a || !o || !u) return;
+ const c = (s = this.hls) == null ? void 0 : s.latestLevelDetails,
+ b = $o(i, o);
+ if (
+ (b || (c != null && c.live && i < c.fragmentStart)) &&
+ (this._trySkipBufferHole(b) || !this.media)
+ )
+ return;
+ const l = e.buffered,
+ p = this.adjacentTraversal(e, i);
+ ((l && l.length > 1 && e.len > u.maxBufferHole) ||
+ (e.nextStart && (e.nextStart - i < u.maxBufferHole || p))) &&
+ (n > u.highBufferWatchdogPeriod * 1e3 || this.waiting) &&
+ (this.warn("Trying to nudge playhead over buffer-hole"),
+ this._tryNudgeBuffer(e));
+ }
+ adjacentTraversal(e, n) {
+ const i = this.fragmentTracker,
+ r = e.nextStart;
+ if (i && r) {
+ const s = i.getFragAtPos(n, z0.MAIN),
+ o = i.getFragAtPos(r, z0.MAIN);
+ if (s && o) return o.sn - s.sn < 2;
+ }
+ return !1;
+ }
+ _reportStall(e) {
+ const { hls: n, media: i, stallReported: r, stalled: s } = this;
+ if (!r && s !== null && i && n) {
+ this.stallReported = !0;
+ const o = new Error(
+ `Playback stalling at @${i.currentTime} due to low buffer (${Y0(e)})`,
+ );
+ (this.warn(o.message),
+ n.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.BUFFER_STALLED_ERROR,
+ fatal: !1,
+ error: o,
+ buffer: e.len,
+ bufferInfo: e,
+ stalled: { start: s },
+ }));
+ }
+ }
+ _trySkipBufferHole(e) {
+ var n;
+ const { fragmentTracker: i, media: r } = this,
+ s = (n = this.hls) == null ? void 0 : n.config;
+ if (!r || !i || !s) return 0;
+ const o = r.currentTime,
+ a = W0.bufferInfo(r, o, 0),
+ u = o < a.start ? a.start : a.nextStart;
+ if (u && this.hls) {
+ const b = a.len <= s.maxBufferHole,
+ l = a.len > 0 && a.len < 1 && r.readyState < 3,
+ p = u - o;
+ if (p > 0 && (b || l)) {
+ if (p > s.maxBufferHole) {
+ let d = !1;
+ if (o === 0) {
+ const O = i.getAppendedFrag(0, z0.MAIN);
+ O && u < O.end && (d = !0);
+ }
+ if (!d && e) {
+ var c;
+ if (
+ !((c = this.hls.loadLevelObj) != null && c.details) ||
+ J3(this.hls.inFlightFragments, u)
+ )
+ return 0;
+ let f = !1,
+ z = e.end;
+ for (; z < u; ) {
+ const g = $o(z, i);
+ if (g) z += g.duration;
+ else {
+ f = !0;
+ break;
+ }
+ }
+ if (f) return 0;
+ }
+ }
+ const M = Math.max(u + uC, o + cC);
+ if (
+ (this.warn(`skipping hole, adjusting currentTime from ${o} to ${M}`),
+ (this.moved = !0),
+ (r.currentTime = M),
+ !(e != null && e.gap))
+ ) {
+ const d = new Error(
+ `fragment loaded with buffer holes, seeking from ${o} to ${M}`,
+ ),
+ O = {
+ type: h0.MEDIA_ERROR,
+ details: $.BUFFER_SEEK_OVER_HOLE,
+ fatal: !1,
+ error: d,
+ reason: d.message,
+ buffer: a.len,
+ bufferInfo: a,
+ };
+ (e && ("fragment" in e ? (O.part = e) : (O.frag = e)),
+ this.hls.trigger(L.ERROR, O));
+ }
+ return M;
+ }
+ }
+ return 0;
+ }
+ _tryNudgeBuffer(e) {
+ const { hls: n, media: i, nudgeRetry: r } = this,
+ s = n?.config;
+ if (!i || !s) return 0;
+ const o = i.currentTime;
+ if ((this.nudgeRetry++, r < s.nudgeMaxRetry)) {
+ const a = o + (r + 1) * s.nudgeOffset,
+ u = new Error(`Nudging 'currentTime' from ${o} to ${a}`);
+ (this.warn(u.message),
+ (i.currentTime = a),
+ n.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.BUFFER_NUDGE_ON_STALL,
+ error: u,
+ fatal: !1,
+ buffer: e.len,
+ bufferInfo: e,
+ }));
+ } else {
+ const a = new Error(
+ `Playhead still not moving while enough data buffered @${o} after ${s.nudgeMaxRetry} nudges`,
+ );
+ (this.error(a.message),
+ n.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.BUFFER_STALLED_ERROR,
+ error: a,
+ fatal: !0,
+ buffer: e.len,
+ bufferInfo: e,
+ }));
+ }
+ }
+}
+function J3(t, e) {
+ const n = Z3(t.main);
+ if (n && n.start <= e) return n;
+ const i = Z3(t.audio);
+ return i && i.start <= e ? i : null;
+}
+function Z3(t) {
+ if (!t) return null;
+ switch (t.state) {
+ case e0.IDLE:
+ case e0.STOPPED:
+ case e0.ENDED:
+ case e0.ERROR:
+ return null;
+ }
+ return t.frag;
+}
+function $o(t, e) {
+ return e.getAppendedFrag(t, z0.MAIN) || e.getPartialFragment(t);
+}
+const lC = 0.25;
+function Np() {
+ if (!(typeof self > "u")) return self.VTTCue || self.TextTrackCue;
+}
+function Bu(t, e, n, i, r) {
+ let s = new t(e, n, "");
+ try {
+ ((s.value = i), r && (s.type = r));
+ } catch {
+ s = new t(e, n, Y0(r ? $0({ type: r }, i) : i));
+ }
+ return s;
+}
+const Ho = (() => {
+ const t = Np();
+ try {
+ t && new t(0, Number.POSITIVE_INFINITY, "");
+ } catch {
+ return Number.MAX_VALUE;
+ }
+ return Number.POSITIVE_INFINITY;
+})();
+class MC {
+ constructor(e) {
+ ((this.hls = void 0),
+ (this.id3Track = null),
+ (this.media = null),
+ (this.dateRangeCuesAppended = {}),
+ (this.removeCues = !0),
+ (this.assetCue = void 0),
+ (this.onEventCueEnter = () => {
+ this.hls && this.hls.trigger(L.EVENT_CUE_ENTER, {});
+ }),
+ (this.hls = e),
+ this._registerListeners());
+ }
+ destroy() {
+ (this._unregisterListeners(),
+ (this.id3Track = null),
+ (this.media = null),
+ (this.dateRangeCuesAppended = {}),
+ (this.hls = this.onEventCueEnter = null));
+ }
+ _registerListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.on(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.on(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this),
+ e.on(L.BUFFER_FLUSHING, this.onBufferFlushing, this),
+ e.on(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.on(L.LEVEL_PTS_UPDATED, this.onLevelPtsUpdated, this));
+ }
+ _unregisterListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.off(L.MEDIA_ATTACHING, this.onMediaAttaching, this),
+ e.off(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this),
+ e.off(L.BUFFER_FLUSHING, this.onBufferFlushing, this),
+ e.off(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.off(L.LEVEL_PTS_UPDATED, this.onLevelPtsUpdated, this));
+ }
+ onMediaAttaching(e, n) {
+ var i;
+ ((this.media = n.media),
+ ((i = n.overrides) == null ? void 0 : i.cueRemoval) === !1 &&
+ (this.removeCues = !1));
+ }
+ onMediaAttached() {
+ var e;
+ const n = (e = this.hls) == null ? void 0 : e.latestLevelDetails;
+ n && this.updateDateRangeCues(n);
+ }
+ onMediaDetaching(e, n) {
+ ((this.media = null),
+ !n.transferMedia &&
+ (this.id3Track &&
+ (this.removeCues && Ci(this.id3Track, this.onEventCueEnter),
+ (this.id3Track = null)),
+ (this.dateRangeCuesAppended = {})));
+ }
+ onManifestLoading() {
+ this.dateRangeCuesAppended = {};
+ }
+ createTrack(e) {
+ const n = this.getID3Track(e.textTracks);
+ return ((n.mode = "hidden"), n);
+ }
+ getID3Track(e) {
+ if (this.media) {
+ for (let n = 0; n < e.length; n++) {
+ const i = e[n];
+ if (i.kind === "metadata" && i.label === "id3")
+ return (n6(i, this.media), i);
+ }
+ return this.media.addTextTrack("metadata", "id3");
+ }
+ }
+ onFragParsingMetadata(e, n) {
+ if (!this.media || !this.hls) return;
+ const { enableEmsgMetadataCues: i, enableID3MetadataCues: r } =
+ this.hls.config;
+ if (!i && !r) return;
+ const { samples: s } = n;
+ this.id3Track || (this.id3Track = this.createTrack(this.media));
+ const o = Np();
+ if (o)
+ for (let a = 0; a < s.length; a++) {
+ const u = s[a].type;
+ if ((u === te.emsg && !i) || !r) continue;
+ const c = _g(s[a].data),
+ b = s[a].pts;
+ let l = b + s[a].duration;
+ (l > Ho && (l = Ho), l - b <= 0 && (l = b + lC));
+ for (let M = 0; M < c.length; M++) {
+ const d = c[M];
+ if (!xg(d)) {
+ this.updateId3CueEnds(b, u);
+ const O = Bu(o, b, l, d, u);
+ O && this.id3Track.addCue(O);
+ }
+ }
+ }
+ }
+ updateId3CueEnds(e, n) {
+ var i;
+ const r = (i = this.id3Track) == null ? void 0 : i.cues;
+ if (r)
+ for (let s = r.length; s--; ) {
+ const o = r[s];
+ o.type === n && o.startTime < e && o.endTime === Ho && (o.endTime = e);
+ }
+ }
+ onBufferFlushing(e, { startOffset: n, endOffset: i, type: r }) {
+ const { id3Track: s, hls: o } = this;
+ if (!o) return;
+ const {
+ config: { enableEmsgMetadataCues: a, enableID3MetadataCues: u },
+ } = o;
+ if (s && (a || u)) {
+ let c;
+ (r === "audio"
+ ? (c = (b) => b.type === te.audioId3 && u)
+ : r === "video"
+ ? (c = (b) => b.type === te.emsg && a)
+ : (c = (b) =>
+ (b.type === te.audioId3 && u) || (b.type === te.emsg && a)),
+ xp(s, n, i, c));
+ }
+ }
+ onLevelUpdated(e, { details: n }) {
+ this.updateDateRangeCues(n, !0);
+ }
+ onLevelPtsUpdated(e, n) {
+ Math.abs(n.drift) > 0.01 && this.updateDateRangeCues(n.details);
+ }
+ updateDateRangeCues(e, n) {
+ if (!this.hls || !this.media) return;
+ const {
+ assetPlayerId: i,
+ timelineOffset: r,
+ enableDateRangeMetadataCues: s,
+ interstitialsController: o,
+ } = this.hls.config;
+ if (!s) return;
+ const a = Np();
+ if (i && r && !o) {
+ const { fragmentStart: O, fragmentEnd: f } = e;
+ let z = this.assetCue;
+ z
+ ? ((z.startTime = O), (z.endTime = f))
+ : a &&
+ ((z = this.assetCue =
+ Bu(
+ a,
+ O,
+ f,
+ { assetPlayerId: this.hls.config.assetPlayerId },
+ "hlsjs.interstitial.asset",
+ )),
+ z &&
+ ((z.id = i),
+ this.id3Track || (this.id3Track = this.createTrack(this.media)),
+ this.id3Track.addCue(z),
+ z.addEventListener("enter", this.onEventCueEnter)));
+ }
+ if (!e.hasProgramDateTime) return;
+ const { id3Track: u } = this,
+ { dateRanges: c } = e,
+ b = Object.keys(c);
+ let l = this.dateRangeCuesAppended;
+ if (u && n) {
+ var p;
+ if ((p = u.cues) != null && p.length) {
+ const O = Object.keys(l).filter((f) => !b.includes(f));
+ for (let f = O.length; f--; ) {
+ var M;
+ const z = O[f],
+ g = (M = l[z]) == null ? void 0 : M.cues;
+ (delete l[z],
+ g &&
+ Object.keys(g).forEach((A) => {
+ const h = g[A];
+ if (h) {
+ h.removeEventListener("enter", this.onEventCueEnter);
+ try {
+ u.removeCue(h);
+ } catch {}
+ }
+ }));
+ }
+ } else l = this.dateRangeCuesAppended = {};
+ }
+ const d = e.fragments[e.fragments.length - 1];
+ if (!(b.length === 0 || !p0(d?.programDateTime))) {
+ this.id3Track || (this.id3Track = this.createTrack(this.media));
+ for (let O = 0; O < b.length; O++) {
+ const f = b[O],
+ z = c[f],
+ g = z.startTime,
+ A = l[f],
+ h = A?.cues || {};
+ let q = A?.durationKnown || !1,
+ v = Ho;
+ const { duration: m, endDate: E } = z;
+ if (E && m !== null) ((v = g + m), (q = !0));
+ else if (z.endOnNext && !q) {
+ const T = b.reduce((y, W) => {
+ if (W !== z.id) {
+ const x = c[W];
+ if (
+ x.class === z.class &&
+ x.startDate > z.startDate &&
+ (!y || z.startDate < y.startDate)
+ )
+ return x;
+ }
+ return y;
+ }, null);
+ T && ((v = T.startTime), (q = !0));
+ }
+ const _ = Object.keys(z.attr);
+ for (let T = 0; T < _.length; T++) {
+ const y = _[T];
+ if (!NB(y)) continue;
+ const W = h[y];
+ if (W)
+ q && !(A != null && A.durationKnown)
+ ? (W.endTime = v)
+ : Math.abs(W.startTime - g) > 0.01 &&
+ ((W.startTime = g), (W.endTime = v));
+ else if (a) {
+ let x = z.attr[y];
+ BB(y) && (x = H5(x));
+ const N = Bu(a, g, v, { key: y, data: x }, te.dateRange);
+ N &&
+ ((N.id = f),
+ this.id3Track.addCue(N),
+ (h[y] = N),
+ o &&
+ (y === "X-ASSET-LIST" || y === "X-ASSET-URL") &&
+ N.addEventListener("enter", this.onEventCueEnter));
+ }
+ }
+ l[f] = { cues: h, dateRange: z, durationKnown: q };
+ }
+ }
+ }
+}
+class dC {
+ constructor(e) {
+ ((this.hls = void 0),
+ (this.config = void 0),
+ (this.media = null),
+ (this.currentTime = 0),
+ (this.stallCount = 0),
+ (this._latency = null),
+ (this._targetLatencyUpdated = !1),
+ (this.onTimeupdate = () => {
+ const { media: n } = this,
+ i = this.levelDetails;
+ if (!n || !i) return;
+ this.currentTime = n.currentTime;
+ const r = this.computeLatency();
+ if (r === null) return;
+ this._latency = r;
+ const { lowLatencyMode: s, maxLiveSyncPlaybackRate: o } = this.config;
+ if (!s || o === 1 || !i.live) return;
+ const a = this.targetLatency;
+ if (a === null) return;
+ const u = r - a,
+ c = Math.min(this.maxLatency, a + i.targetduration);
+ if (u < c && u > 0.05 && this.forwardBufferLength > 1) {
+ const l = Math.min(2, Math.max(1, o)),
+ p =
+ Math.round(
+ (2 / (1 + Math.exp(-0.75 * u - this.edgeStalled))) * 20,
+ ) / 20,
+ M = Math.min(l, Math.max(1, p));
+ this.changeMediaPlaybackRate(n, M);
+ } else
+ n.playbackRate !== 1 &&
+ n.playbackRate !== 0 &&
+ this.changeMediaPlaybackRate(n, 1);
+ }),
+ (this.hls = e),
+ (this.config = e.config),
+ this.registerListeners());
+ }
+ get levelDetails() {
+ var e;
+ return ((e = this.hls) == null ? void 0 : e.latestLevelDetails) || null;
+ }
+ get latency() {
+ return this._latency || 0;
+ }
+ get maxLatency() {
+ const { config: e } = this;
+ if (e.liveMaxLatencyDuration !== void 0) return e.liveMaxLatencyDuration;
+ const n = this.levelDetails;
+ return n ? e.liveMaxLatencyDurationCount * n.targetduration : 0;
+ }
+ get targetLatency() {
+ const e = this.levelDetails;
+ if (e === null || this.hls === null) return null;
+ const { holdBack: n, partHoldBack: i, targetduration: r } = e,
+ {
+ liveSyncDuration: s,
+ liveSyncDurationCount: o,
+ lowLatencyMode: a,
+ } = this.config,
+ u = this.hls.userConfig;
+ let c = (a && i) || n;
+ (this._targetLatencyUpdated ||
+ u.liveSyncDuration ||
+ u.liveSyncDurationCount ||
+ c === 0) &&
+ (c = s !== void 0 ? s : o * r);
+ const b = r;
+ return (
+ c + Math.min(this.stallCount * this.config.liveSyncOnStallIncrease, b)
+ );
+ }
+ set targetLatency(e) {
+ ((this.stallCount = 0),
+ (this.config.liveSyncDuration = e),
+ (this._targetLatencyUpdated = !0));
+ }
+ get liveSyncPosition() {
+ const e = this.estimateLiveEdge(),
+ n = this.targetLatency;
+ if (e === null || n === null) return null;
+ const i = this.levelDetails;
+ if (i === null) return null;
+ const r = i.edge,
+ s = e - n - this.edgeStalled,
+ o = r - i.totalduration,
+ a =
+ r - ((this.config.lowLatencyMode && i.partTarget) || i.targetduration);
+ return Math.min(Math.max(o, s), a);
+ }
+ get drift() {
+ const e = this.levelDetails;
+ return e === null ? 1 : e.drift;
+ }
+ get edgeStalled() {
+ const e = this.levelDetails;
+ if (e === null) return 0;
+ const n =
+ ((this.config.lowLatencyMode && e.partTarget) || e.targetduration) * 3;
+ return Math.max(e.age - n, 0);
+ }
+ get forwardBufferLength() {
+ const { media: e } = this,
+ n = this.levelDetails;
+ if (!e || !n) return 0;
+ const i = e.buffered.length;
+ return (i ? e.buffered.end(i - 1) : n.edge) - this.currentTime;
+ }
+ destroy() {
+ (this.unregisterListeners(), this.onMediaDetaching(), (this.hls = null));
+ }
+ registerListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.on(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.on(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.on(L.ERROR, this.onError, this));
+ }
+ unregisterListeners() {
+ const { hls: e } = this;
+ e &&
+ (e.off(L.MEDIA_ATTACHED, this.onMediaAttached, this),
+ e.off(L.MEDIA_DETACHING, this.onMediaDetaching, this),
+ e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.LEVEL_UPDATED, this.onLevelUpdated, this),
+ e.off(L.ERROR, this.onError, this));
+ }
+ onMediaAttached(e, n) {
+ ((this.media = n.media),
+ this.media.addEventListener("timeupdate", this.onTimeupdate));
+ }
+ onMediaDetaching() {
+ this.media &&
+ (this.media.removeEventListener("timeupdate", this.onTimeupdate),
+ (this.media = null));
+ }
+ onManifestLoading() {
+ ((this._latency = null), (this.stallCount = 0));
+ }
+ onLevelUpdated(e, { details: n }) {
+ (n.advanced && this.onTimeupdate(),
+ !n.live &&
+ this.media &&
+ this.media.removeEventListener("timeupdate", this.onTimeupdate));
+ }
+ onError(e, n) {
+ var i;
+ n.details === $.BUFFER_STALLED_ERROR &&
+ (this.stallCount++,
+ this.hls &&
+ (i = this.levelDetails) != null &&
+ i.live &&
+ this.hls.logger.warn(
+ "[latency-controller]: Stall detected, adjusting target latency",
+ ));
+ }
+ changeMediaPlaybackRate(e, n) {
+ var i, r;
+ e.playbackRate !== n &&
+ ((i = this.hls) == null ||
+ i.logger.debug(
+ `[latency-controller]: latency=${this.latency.toFixed(3)}, targetLatency=${(r = this.targetLatency) == null ? void 0 : r.toFixed(3)}, forwardBufferLength=${this.forwardBufferLength.toFixed(3)}: adjusting playback rate from ${e.playbackRate} to ${n}`,
+ ),
+ (e.playbackRate = n));
+ }
+ estimateLiveEdge() {
+ const e = this.levelDetails;
+ return e === null ? null : e.edge + e.age;
+ }
+ computeLatency() {
+ const e = this.estimateLiveEdge();
+ return e === null ? null : e - this.currentTime;
+ }
+}
+class fC extends SM {
+ constructor(e, n) {
+ (super(e, "level-controller"),
+ (this._levels = []),
+ (this._firstLevel = -1),
+ (this._maxAutoLevel = -1),
+ (this._startLevel = void 0),
+ (this.currentLevel = null),
+ (this.currentLevelIndex = -1),
+ (this.manualLevelIndex = -1),
+ (this.steering = void 0),
+ (this.onParsedComplete = void 0),
+ (this.steering = n),
+ this._registerListeners());
+ }
+ _registerListeners() {
+ const { hls: e } = this;
+ (e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.MANIFEST_LOADED, this.onManifestLoaded, this),
+ e.on(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.on(L.LEVELS_UPDATED, this.onLevelsUpdated, this),
+ e.on(L.FRAG_BUFFERED, this.onFragBuffered, this),
+ e.on(L.ERROR, this.onError, this));
+ }
+ _unregisterListeners() {
+ const { hls: e } = this;
+ (e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.MANIFEST_LOADED, this.onManifestLoaded, this),
+ e.off(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.off(L.LEVELS_UPDATED, this.onLevelsUpdated, this),
+ e.off(L.FRAG_BUFFERED, this.onFragBuffered, this),
+ e.off(L.ERROR, this.onError, this));
+ }
+ destroy() {
+ (this._unregisterListeners(),
+ (this.steering = null),
+ this.resetLevels(),
+ super.destroy());
+ }
+ stopLoad() {
+ (this._levels.forEach((n) => {
+ ((n.loadError = 0), (n.fragmentError = 0));
+ }),
+ super.stopLoad());
+ }
+ resetLevels() {
+ ((this._startLevel = void 0),
+ (this.manualLevelIndex = -1),
+ (this.currentLevelIndex = -1),
+ (this.currentLevel = null),
+ (this._levels = []),
+ (this._maxAutoLevel = -1));
+ }
+ onManifestLoading(e, n) {
+ this.resetLevels();
+ }
+ onManifestLoaded(e, n) {
+ const i = this.hls.config.preferManagedMediaSource,
+ r = [],
+ s = {},
+ o = {};
+ let a = !1,
+ u = !1,
+ c = !1;
+ (n.levels.forEach((b) => {
+ const l = b.attrs;
+ let { audioCodec: p, videoCodec: M } = b;
+ (p && (b.audioCodec = p = Oc(p, i) || void 0),
+ M && (M = b.videoCodec = QN(M)));
+ const { width: d, height: O, unknownCodecs: f } = b;
+ let z = f ? f.length : 0;
+ if (f)
+ for (let T = z; T--; ) {
+ const y = f[T];
+ this.isAudioSupported(y)
+ ? ((b.audioCodec = p = p ? `${p},${y}` : y),
+ z--,
+ (Mr.audio[p.substring(0, 4)] = 2))
+ : this.isVideoSupported(y) &&
+ ((b.videoCodec = M = M ? `${M},${y}` : y),
+ z--,
+ (Mr.video[M.substring(0, 4)] = 2));
+ }
+ if (
+ (a || (a = !!(d && O)),
+ u || (u = !!M),
+ c || (c = !!p),
+ z ||
+ (p && !this.isAudioSupported(p)) ||
+ (M && !this.isVideoSupported(M)))
+ ) {
+ this.log(`Some or all CODECS not supported "${l.CODECS}"`);
+ return;
+ }
+ const {
+ CODECS: g,
+ "FRAME-RATE": A,
+ "HDCP-LEVEL": h,
+ "PATHWAY-ID": q,
+ RESOLUTION: v,
+ "VIDEO-RANGE": m,
+ } = l,
+ _ = `${`${q || "."}-`}${b.bitrate}-${v}-${A}-${g}-${m}-${h}`;
+ if (s[_])
+ if (s[_].uri !== b.url && !b.attrs["PATHWAY-ID"]) {
+ const T = (o[_] += 1);
+ b.attrs["PATHWAY-ID"] = new Array(T + 1).join(".");
+ const y = this.createLevel(b);
+ ((s[_] = y), r.push(y));
+ } else
+ (s[_].addGroupId("audio", l.AUDIO),
+ s[_].addGroupId("text", l.SUBTITLES));
+ else {
+ const T = this.createLevel(b);
+ ((s[_] = T), (o[_] = 1), r.push(T));
+ }
+ }),
+ this.filterAndSortMediaOptions(r, n, a, u, c));
+ }
+ createLevel(e) {
+ const n = new Is(e),
+ i = e.supplemental;
+ if (i != null && i.videoCodec && !this.isVideoSupported(i.videoCodec)) {
+ const r = new Error(
+ `SUPPLEMENTAL-CODECS not supported "${i.videoCodec}"`,
+ );
+ (this.log(r.message), (n.supportedResult = ng(r, [])));
+ }
+ return n;
+ }
+ isAudioSupported(e) {
+ return Op(e, "audio", this.hls.config.preferManagedMediaSource);
+ }
+ isVideoSupported(e) {
+ return Op(e, "video", this.hls.config.preferManagedMediaSource);
+ }
+ filterAndSortMediaOptions(e, n, i, r, s) {
+ let o = [],
+ a = [],
+ u = e;
+ if (
+ ((i || r) &&
+ s &&
+ (u = u.filter(
+ ({ videoCodec: f, videoRange: z, width: g, height: A }) =>
+ (!!f || !!(g && A)) && aB(z),
+ )),
+ u.length === 0)
+ ) {
+ Promise.resolve().then(() => {
+ if (this.hls) {
+ let f = "no level with compatible codecs found in manifest",
+ z = f;
+ n.levels.length &&
+ ((z = `one or more CODECS in variant not supported: ${Y0(n.levels.map((A) => A.attrs.CODECS).filter((A, h, q) => q.indexOf(A) === h))}`),
+ this.warn(z),
+ (f += ` (${z})`));
+ const g = new Error(f);
+ this.hls.trigger(L.ERROR, {
+ type: h0.MEDIA_ERROR,
+ details: $.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
+ fatal: !0,
+ url: n.url,
+ error: g,
+ reason: z,
+ });
+ }
+ });
+ return;
+ }
+ (n.audioTracks &&
+ ((o = n.audioTracks.filter(
+ (f) => !f.audioCodec || this.isAudioSupported(f.audioCodec),
+ )),
+ eO(o)),
+ n.subtitles && ((a = n.subtitles), eO(a)));
+ const c = u.slice(0);
+ u.sort((f, z) => {
+ if (f.attrs["HDCP-LEVEL"] !== z.attrs["HDCP-LEVEL"])
+ return (f.attrs["HDCP-LEVEL"] || "") > (z.attrs["HDCP-LEVEL"] || "")
+ ? 1
+ : -1;
+ if (i && f.height !== z.height) return f.height - z.height;
+ if (f.frameRate !== z.frameRate) return f.frameRate - z.frameRate;
+ if (f.videoRange !== z.videoRange)
+ return hc.indexOf(f.videoRange) - hc.indexOf(z.videoRange);
+ if (f.videoCodec !== z.videoCodec) {
+ const g = Vz(f.videoCodec),
+ A = Vz(z.videoCodec);
+ if (g !== A) return A - g;
+ }
+ if (f.uri === z.uri && f.codecSet !== z.codecSet) {
+ const g = zc(f.codecSet),
+ A = zc(z.codecSet);
+ if (g !== A) return A - g;
+ }
+ return f.averageBitrate !== z.averageBitrate
+ ? f.averageBitrate - z.averageBitrate
+ : 0;
+ });
+ let b = c[0];
+ if (
+ this.steering &&
+ ((u = this.steering.filterParsedLevels(u)), u.length !== c.length)
+ ) {
+ for (let f = 0; f < c.length; f++)
+ if (c[f].pathwayId === u[0].pathwayId) {
+ b = c[f];
+ break;
+ }
+ }
+ this._levels = u;
+ for (let f = 0; f < u.length; f++)
+ if (u[f] === b) {
+ var l;
+ this._firstLevel = f;
+ const z = b.bitrate,
+ g = this.hls.bandwidthEstimate;
+ if (
+ (this.log(
+ `manifest loaded, ${u.length} level(s) found, first bitrate: ${z}`,
+ ),
+ ((l = this.hls.userConfig) == null
+ ? void 0
+ : l.abrEwmaDefaultEstimate) === void 0)
+ ) {
+ const A = Math.min(z, this.hls.config.abrEwmaDefaultEstimateMax);
+ A > g &&
+ g === this.hls.abrEwmaDefaultEstimate &&
+ (this.hls.bandwidthEstimate = A);
+ }
+ break;
+ }
+ const p = s && !r,
+ M = this.hls.config,
+ d = !!(M.audioStreamController && M.audioTrackController),
+ O = {
+ levels: u,
+ audioTracks: o,
+ subtitleTracks: a,
+ sessionData: n.sessionData,
+ sessionKeys: n.sessionKeys,
+ firstLevel: this._firstLevel,
+ stats: n.stats,
+ audio: s,
+ video: r,
+ altAudio: d && !p && o.some((f) => !!f.url),
+ };
+ this.hls.trigger(L.MANIFEST_PARSED, O);
+ }
+ get levels() {
+ return this._levels.length === 0 ? null : this._levels;
+ }
+ get loadLevelObj() {
+ return this.currentLevel;
+ }
+ get level() {
+ return this.currentLevelIndex;
+ }
+ set level(e) {
+ const n = this._levels;
+ if (n.length === 0) return;
+ if (e < 0 || e >= n.length) {
+ const b = new Error("invalid level idx"),
+ l = e < 0;
+ if (
+ (this.hls.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.LEVEL_SWITCH_ERROR,
+ level: e,
+ fatal: l,
+ error: b,
+ reason: b.message,
+ }),
+ l)
+ )
+ return;
+ e = Math.min(e, n.length - 1);
+ }
+ const i = this.currentLevelIndex,
+ r = this.currentLevel,
+ s = r ? r.attrs["PATHWAY-ID"] : void 0,
+ o = n[e],
+ a = o.attrs["PATHWAY-ID"];
+ if (
+ ((this.currentLevelIndex = e),
+ (this.currentLevel = o),
+ i === e && r && s === a)
+ )
+ return;
+ this.log(
+ `Switching to level ${e} (${o.height ? o.height + "p " : ""}${o.videoRange ? o.videoRange + " " : ""}${o.codecSet ? o.codecSet + " " : ""}@${o.bitrate})${a ? " with Pathway " + a : ""} from level ${i}${s ? " with Pathway " + s : ""}`,
+ );
+ const u = {
+ level: e,
+ 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(L.LEVEL_SWITCHING, u);
+ const c = o.details;
+ if (!c || c.live) {
+ const b = this.switchParams(o.uri, r?.details, c);
+ this.loadPlaylist(b);
+ }
+ }
+ get manualLevel() {
+ return this.manualLevelIndex;
+ }
+ set manualLevel(e) {
+ ((this.manualLevelIndex = e),
+ this._startLevel === void 0 && (this._startLevel = e),
+ e !== -1 && (this.level = e));
+ }
+ get firstLevel() {
+ return this._firstLevel;
+ }
+ set firstLevel(e) {
+ this._firstLevel = e;
+ }
+ get startLevel() {
+ if (this._startLevel === void 0) {
+ const e = this.hls.config.startLevel;
+ return e !== void 0 ? e : this.hls.firstAutoLevel;
+ }
+ return this._startLevel;
+ }
+ set startLevel(e) {
+ this._startLevel = e;
+ }
+ get pathways() {
+ return this.steering ? this.steering.pathways() : [];
+ }
+ get pathwayPriority() {
+ return this.steering ? this.steering.pathwayPriority : null;
+ }
+ set pathwayPriority(e) {
+ if (this.steering) {
+ const n = this.steering.pathways(),
+ i = e.filter((r) => n.indexOf(r) !== -1);
+ if (e.length < 1) {
+ this.warn(
+ `pathwayPriority ${e} should contain at least one pathway from list: ${n}`,
+ );
+ return;
+ }
+ this.steering.pathwayPriority = i;
+ }
+ }
+ onError(e, n) {
+ n.fatal ||
+ !n.context ||
+ (n.context.type === _0.LEVEL &&
+ n.context.level === this.level &&
+ this.checkRetry(n));
+ }
+ onFragBuffered(e, { frag: n }) {
+ if (n !== void 0 && n.type === z0.MAIN) {
+ const i = n.elementaryStreams;
+ if (!Object.keys(i).some((s) => !!i[s])) return;
+ const r = this._levels[n.level];
+ r != null &&
+ r.loadError &&
+ (this.log(
+ `Resetting level error count of ${r.loadError} on frag buffered`,
+ ),
+ (r.loadError = 0));
+ }
+ }
+ onLevelLoaded(e, n) {
+ var i;
+ const { level: r, details: s } = n,
+ o = n.levelInfo;
+ if (!o) {
+ var a;
+ (this.warn(`Invalid level index ${r}`),
+ (a = n.deliveryDirectives) != null &&
+ a.skip &&
+ (s.deltaUpdateFailed = !0));
+ return;
+ }
+ if (o === this.currentLevel || n.withoutMultiVariant) {
+ o.fragmentError === 0 && (o.loadError = 0);
+ let u = o.details;
+ (u === n.details && u.advanced && (u = void 0),
+ this.playlistLoaded(r, n, u));
+ } else
+ (i = n.deliveryDirectives) != null &&
+ i.skip &&
+ (s.deltaUpdateFailed = !0);
+ }
+ loadPlaylist(e) {
+ (super.loadPlaylist(),
+ this.shouldLoadPlaylist(this.currentLevel) &&
+ this.scheduleLoading(this.currentLevel, e));
+ }
+ loadingPlaylist(e, n) {
+ super.loadingPlaylist(e, n);
+ const i = this.getUrlWithDirectives(e.uri, n),
+ r = this.currentLevelIndex,
+ s = e.attrs["PATHWAY-ID"],
+ o = e.details,
+ a = o?.age;
+ (this.log(
+ `Loading level index ${r}${n?.msn !== void 0 ? " at sn " + n.msn + " part " + n.part : ""}${s ? " Pathway " + s : ""}${a && o.live ? " age " + a.toFixed(1) + ((o.type && " " + o.type) || "") : ""} ${i}`,
+ ),
+ this.hls.trigger(L.LEVEL_LOADING, {
+ url: i,
+ level: r,
+ levelInfo: e,
+ pathwayId: e.attrs["PATHWAY-ID"],
+ id: 0,
+ deliveryDirectives: n || null,
+ }));
+ }
+ get nextLoadLevel() {
+ return this.manualLevelIndex !== -1
+ ? this.manualLevelIndex
+ : this.hls.nextAutoLevel;
+ }
+ set nextLoadLevel(e) {
+ ((this.level = e),
+ this.manualLevelIndex === -1 && (this.hls.nextAutoLevel = e));
+ }
+ removeLevel(e) {
+ var n;
+ if (this._levels.length === 1) return;
+ const i = this._levels.filter((s, o) =>
+ o !== e
+ ? !0
+ : (this.steering && this.steering.removeLevel(s),
+ s === this.currentLevel &&
+ ((this.currentLevel = null),
+ (this.currentLevelIndex = -1),
+ s.details && s.details.fragments.forEach((a) => (a.level = -1))),
+ !1),
+ );
+ (qg(i),
+ (this._levels = i),
+ this.currentLevelIndex > -1 &&
+ (n = this.currentLevel) != null &&
+ n.details &&
+ (this.currentLevelIndex = this.currentLevel.details.fragments[0].level),
+ this.manualLevelIndex > -1 &&
+ (this.manualLevelIndex = this.currentLevelIndex));
+ const r = i.length - 1;
+ ((this._firstLevel = Math.min(this._firstLevel, r)),
+ this._startLevel && (this._startLevel = Math.min(this._startLevel, r)),
+ this.hls.trigger(L.LEVELS_UPDATED, { levels: i }));
+ }
+ onLevelsUpdated(e, { levels: n }) {
+ this._levels = n;
+ }
+ checkMaxAutoUpdated() {
+ const { autoLevelCapping: e, maxAutoLevel: n, maxHdcpLevel: i } = this.hls;
+ this._maxAutoLevel !== n &&
+ ((this._maxAutoLevel = n),
+ this.hls.trigger(L.MAX_AUTO_LEVEL_UPDATED, {
+ autoLevelCapping: e,
+ levels: this.levels,
+ maxAutoLevel: n,
+ minAutoLevel: this.hls.minAutoLevel,
+ maxHdcpLevel: i,
+ }));
+ }
+}
+function eO(t) {
+ const e = {};
+ t.forEach((n) => {
+ const i = n.groupId || "";
+ ((n.id = e[i] = e[i] || 0), e[i]++);
+ });
+}
+function f6() {
+ return self.SourceBuffer || self.WebKitSourceBuffer;
+}
+function z6() {
+ if (!En()) return !1;
+ const e = f6();
+ return (
+ !e ||
+ (e.prototype &&
+ typeof e.prototype.appendBuffer == "function" &&
+ typeof e.prototype.remove == "function")
+ );
+}
+function zC() {
+ if (!z6()) return !1;
+ const t = En();
+ return (
+ typeof t?.isTypeSupported == "function" &&
+ (["avc1.42E01E,mp4a.40.2", "av01.0.01M.08", "vp09.00.50.08"].some((e) =>
+ t.isTypeSupported(Bs(e, "video")),
+ ) ||
+ ["mp4a.40.2", "fLaC"].some((e) => t.isTypeSupported(Bs(e, "audio"))))
+ );
+}
+function OC() {
+ var t;
+ const e = f6();
+ return (
+ typeof (e == null || (t = e.prototype) == null ? void 0 : t.changeType) ==
+ "function"
+ );
+}
+const hC = 100;
+class AC extends RM {
+ constructor(e, n, i) {
+ (super(e, n, i, "stream-controller", z0.MAIN),
+ (this.audioCodecSwap = !1),
+ (this.level = -1),
+ (this._forceStartLoad = !1),
+ (this._hasEnoughToStart = !1),
+ (this.altAudio = 0),
+ (this.audioOnly = !1),
+ (this.fragPlaying = null),
+ (this.fragLastKbps = 0),
+ (this.couldBacktrack = !1),
+ (this.backtrackFragment = null),
+ (this.audioCodecSwitch = !1),
+ (this.videoBuffer = null),
+ (this.onMediaPlaying = () => {
+ this.tick();
+ }),
+ (this.onMediaSeeked = () => {
+ const r = this.media,
+ s = r ? r.currentTime : null;
+ if (
+ s === null ||
+ !p0(s) ||
+ (this.log(`Media seeked to ${s.toFixed(3)}`),
+ !this.getBufferedFrag(s))
+ )
+ return;
+ const o = this.getFwdBufferInfoAtPos(r, s, z0.MAIN, 0);
+ if (o === null || o.len === 0) {
+ this.warn(
+ `Main forward buffer length at ${s} on "seeked" event ${o ? o.len : "empty"})`,
+ );
+ return;
+ }
+ this.tick();
+ }),
+ this.registerListeners());
+ }
+ registerListeners() {
+ super.registerListeners();
+ const { hls: e } = this;
+ (e.on(L.MANIFEST_PARSED, this.onManifestParsed, this),
+ e.on(L.LEVEL_LOADING, this.onLevelLoading, this),
+ e.on(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.on(
+ L.FRAG_LOAD_EMERGENCY_ABORTED,
+ this.onFragLoadEmergencyAborted,
+ this,
+ ),
+ e.on(L.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this),
+ e.on(L.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this),
+ e.on(L.BUFFER_CREATED, this.onBufferCreated, this),
+ e.on(L.BUFFER_FLUSHED, this.onBufferFlushed, this),
+ e.on(L.LEVELS_UPDATED, this.onLevelsUpdated, this),
+ e.on(L.FRAG_BUFFERED, this.onFragBuffered, this));
+ }
+ unregisterListeners() {
+ super.unregisterListeners();
+ const { hls: e } = this;
+ (e.off(L.MANIFEST_PARSED, this.onManifestParsed, this),
+ e.off(L.LEVEL_LOADED, this.onLevelLoaded, this),
+ e.off(
+ L.FRAG_LOAD_EMERGENCY_ABORTED,
+ this.onFragLoadEmergencyAborted,
+ this,
+ ),
+ e.off(L.AUDIO_TRACK_SWITCHING, this.onAudioTrackSwitching, this),
+ e.off(L.AUDIO_TRACK_SWITCHED, this.onAudioTrackSwitched, this),
+ e.off(L.BUFFER_CREATED, this.onBufferCreated, this),
+ e.off(L.BUFFER_FLUSHED, this.onBufferFlushed, this),
+ e.off(L.LEVELS_UPDATED, this.onLevelsUpdated, this),
+ e.off(L.FRAG_BUFFERED, this.onFragBuffered, this));
+ }
+ onHandlerDestroying() {
+ ((this.onMediaPlaying = this.onMediaSeeked = null),
+ this.unregisterListeners(),
+ super.onHandlerDestroying());
+ }
+ startLoad(e, n) {
+ if (this.levels) {
+ const { lastCurrentTime: i, hls: r } = this;
+ if (
+ (this.stopLoad(),
+ this.setInterval(hC),
+ (this.level = -1),
+ !this.startFragRequested)
+ ) {
+ let s = r.startLevel;
+ (s === -1 &&
+ (r.config.testBandwidth && this.levels.length > 1
+ ? ((s = 0), (this.bitrateTest = !0))
+ : (s = r.firstAutoLevel)),
+ (r.nextLoadLevel = s),
+ (this.level = r.loadLevel),
+ (this._hasEnoughToStart = !!n));
+ }
+ (i > 0 &&
+ e === -1 &&
+ !n &&
+ (this.log(
+ `Override startPosition with lastCurrentTime @${i.toFixed(3)}`,
+ ),
+ (e = i)),
+ (this.state = e0.IDLE),
+ (this.nextLoadPosition = this.lastCurrentTime =
+ e + this.timelineOffset),
+ (this.startPosition = n ? -1 : e),
+ this.tick());
+ } else ((this._forceStartLoad = !0), (this.state = e0.STOPPED));
+ }
+ stopLoad() {
+ ((this._forceStartLoad = !1), super.stopLoad());
+ }
+ doTick() {
+ switch (this.state) {
+ case e0.WAITING_LEVEL: {
+ const { levels: e, level: n } = this,
+ i = e?.[n],
+ r = i?.details;
+ if (
+ r &&
+ (!r.live || (this.levelLastLoaded === i && !this.waitForLive(i)))
+ ) {
+ if (this.waitForCdnTuneIn(r)) break;
+ this.state = e0.IDLE;
+ break;
+ } else if (this.hls.nextLoadLevel !== this.level) {
+ this.state = e0.IDLE;
+ break;
+ }
+ break;
+ }
+ case e0.FRAG_LOADING_WAITING_RETRY:
+ this.checkRetryDate();
+ break;
+ }
+ (this.state === e0.IDLE && this.doTickIdle(), this.onTickEnd());
+ }
+ onTickEnd() {
+ var e;
+ (super.onTickEnd(),
+ (e = this.media) != null &&
+ e.readyState &&
+ this.media.seeking === !1 &&
+ (this.lastCurrentTime = this.media.currentTime),
+ this.checkFragmentChanged());
+ }
+ doTickIdle() {
+ const { hls: e, levelLastLoaded: n, levels: i, media: r } = this;
+ if (
+ n === null ||
+ (!r &&
+ !this.primaryPrefetch &&
+ (this.startFragRequested || !e.config.startFragPrefetch)) ||
+ (this.altAudio && this.audioOnly)
+ )
+ return;
+ const s = this.buffering ? e.nextLoadLevel : e.loadLevel;
+ if (!(i != null && i[s])) return;
+ const o = i[s],
+ a = this.getMainFwdBufferInfo();
+ if (a === null) return;
+ const u = this.getLevelDetails();
+ if (u && this._streamEnded(a, u)) {
+ const O = {};
+ (this.altAudio === 2 && (O.type = "video"),
+ this.hls.trigger(L.BUFFER_EOS, O),
+ (this.state = e0.ENDED));
+ return;
+ }
+ if (!this.buffering) return;
+ (e.loadLevel !== s &&
+ e.manualLevel === -1 &&
+ this.log(`Adapting to level ${s} from level ${this.level}`),
+ (this.level = e.nextLoadLevel = s));
+ const c = o.details;
+ if (!c || this.state === e0.WAITING_LEVEL || this.waitForLive(o)) {
+ ((this.level = s),
+ (this.state = e0.WAITING_LEVEL),
+ (this.startFragRequested = !1));
+ return;
+ }
+ const b = a.len,
+ l = this.getMaxBufferLength(o.maxBitrate);
+ if (b >= l) return;
+ this.backtrackFragment &&
+ this.backtrackFragment.start > a.end &&
+ (this.backtrackFragment = null);
+ const p = this.backtrackFragment ? this.backtrackFragment.start : a.end;
+ let M = this.getNextFragment(p, c);
+ if (
+ this.couldBacktrack &&
+ !this.fragPrevious &&
+ M &&
+ c1(M) &&
+ this.fragmentTracker.getState(M) !== d1.OK
+ ) {
+ var d;
+ const f = ((d = this.backtrackFragment) != null ? d : M).sn - c.startSN,
+ z = c.fragments[f - 1];
+ z && M.cc === z.cc && ((M = z), this.fragmentTracker.removeFragment(z));
+ } else this.backtrackFragment && a.len && (this.backtrackFragment = null);
+ if (M && this.isLoopLoading(M, p)) {
+ if (!M.gap) {
+ const f = this.audioOnly && !this.altAudio ? j0.AUDIO : j0.VIDEO,
+ z =
+ (f === j0.VIDEO ? this.videoBuffer : this.mediaBuffer) ||
+ this.media;
+ z && this.afterBufferFlushed(z, f, z0.MAIN);
+ }
+ M = this.getNextFragmentLoopLoading(M, c, a, z0.MAIN, l);
+ }
+ M &&
+ (M.initSegment &&
+ !M.initSegment.data &&
+ !this.bitrateTest &&
+ (M = M.initSegment),
+ this.loadFragment(M, o, p));
+ }
+ loadFragment(e, n, i) {
+ const r = this.fragmentTracker.getState(e);
+ r === d1.NOT_LOADED || r === d1.PARTIAL
+ ? c1(e)
+ ? 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, n))
+ : super.loadFragment(e, n, i)
+ : this._loadInitSegment(e, n)
+ : this.clearTrackerIfNeeded(e);
+ }
+ getBufferedFrag(e) {
+ return this.fragmentTracker.getBufferedFrag(e, z0.MAIN);
+ }
+ followingBufferedFrag(e) {
+ return e ? this.getBufferedFrag(e.end + 0.5) : null;
+ }
+ immediateLevelSwitch() {
+ (this.abortCurrentFrag(),
+ this.flushMainBuffer(0, Number.POSITIVE_INFINITY));
+ }
+ nextLevelSwitch() {
+ const { levels: e, media: n } = this;
+ if (n != null && n.readyState) {
+ let i;
+ const r = this.getAppendedFrag(n.currentTime);
+ r && r.start > 1 && this.flushMainBuffer(0, r.start - 1);
+ const s = this.getLevelDetails();
+ if (s != null && s.live) {
+ const a = this.getMainFwdBufferInfo();
+ if (!a || a.len < s.targetduration * 2) return;
+ }
+ if (!n.paused && e) {
+ const a = this.hls.nextLoadLevel,
+ u = e[a],
+ c = this.fragLastKbps;
+ c && this.fragCurrent
+ ? (i = (this.fragCurrent.duration * u.maxBitrate) / (1e3 * c) + 1)
+ : (i = 0);
+ } else i = 0;
+ const o = this.getBufferedFrag(n.currentTime + i);
+ if (o) {
+ const a = this.followingBufferedFrag(o);
+ if (a) {
+ this.abortCurrentFrag();
+ const u = a.maxStartPTS ? a.maxStartPTS : a.start,
+ c = a.duration,
+ b = Math.max(
+ o.end,
+ u +
+ Math.min(
+ Math.max(
+ c - this.config.maxFragLookUpTolerance,
+ c * (this.couldBacktrack ? 0.5 : 0.125),
+ ),
+ c * (this.couldBacktrack ? 0.75 : 0.25),
+ ),
+ );
+ this.flushMainBuffer(b, Number.POSITIVE_INFINITY);
+ }
+ }
+ }
+ }
+ abortCurrentFrag() {
+ const e = this.fragCurrent;
+ switch (
+ ((this.fragCurrent = null),
+ (this.backtrackFragment = null),
+ e && (e.abortRequests(), this.fragmentTracker.removeFragment(e)),
+ this.state)
+ ) {
+ case e0.KEY_LOADING:
+ case e0.FRAG_LOADING:
+ case e0.FRAG_LOADING_WAITING_RETRY:
+ case e0.PARSING:
+ case e0.PARSED:
+ this.state = e0.IDLE;
+ break;
+ }
+ this.nextLoadPosition = this.getLoadPosition();
+ }
+ flushMainBuffer(e, n) {
+ super.flushMainBuffer(e, n, this.altAudio === 2 ? "video" : null);
+ }
+ onMediaAttached(e, n) {
+ super.onMediaAttached(e, n);
+ const i = n.media;
+ (I1(i, "playing", this.onMediaPlaying),
+ I1(i, "seeked", this.onMediaSeeked));
+ }
+ onMediaDetaching(e, n) {
+ const { media: i } = this;
+ (i &&
+ (G1(i, "playing", this.onMediaPlaying),
+ G1(i, "seeked", this.onMediaSeeked)),
+ (this.videoBuffer = null),
+ (this.fragPlaying = null),
+ super.onMediaDetaching(e, n),
+ !n.transferMedia && (this._hasEnoughToStart = !1));
+ }
+ onManifestLoading() {
+ (super.onManifestLoading(),
+ this.log("Trigger BUFFER_RESET"),
+ this.hls.trigger(L.BUFFER_RESET, void 0),
+ (this.couldBacktrack = !1),
+ (this.fragLastKbps = 0),
+ (this.fragPlaying = this.backtrackFragment = null),
+ (this.altAudio = 0),
+ (this.audioOnly = !1));
+ }
+ onManifestParsed(e, n) {
+ let i = !1,
+ r = !1;
+ for (let s = 0; s < n.levels.length; s++) {
+ const o = n.levels[s].audioCodec;
+ o &&
+ ((i = i || o.indexOf("mp4a.40.2") !== -1),
+ (r = r || o.indexOf("mp4a.40.5") !== -1));
+ }
+ ((this.audioCodecSwitch = i && r && !OC()),
+ this.audioCodecSwitch &&
+ this.log(
+ "Both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC",
+ ),
+ (this.levels = n.levels),
+ (this.startFragRequested = !1));
+ }
+ onLevelLoading(e, n) {
+ const { levels: i } = this;
+ if (!i || this.state !== e0.IDLE) return;
+ const r = n.levelInfo;
+ (!r.details ||
+ (r.details.live && (this.levelLastLoaded !== r || r.details.expired)) ||
+ this.waitForCdnTuneIn(r.details)) &&
+ (this.state = e0.WAITING_LEVEL);
+ }
+ onLevelLoaded(e, n) {
+ var i;
+ const { levels: r, startFragRequested: s } = this,
+ o = n.level,
+ a = n.details,
+ u = a.totalduration;
+ if (!r) {
+ this.warn(`Levels were reset while loading level ${o}`);
+ return;
+ }
+ this.log(
+ `Level ${o} loaded [${a.startSN},${a.endSN}]${a.lastPartSn ? `[part-${a.lastPartSn}-${a.lastPartIndex}]` : ""}, cc [${a.startCC}, ${a.endCC}] duration:${u}`,
+ );
+ const c = n.levelInfo,
+ b = this.fragCurrent;
+ b &&
+ (this.state === e0.FRAG_LOADING ||
+ this.state === e0.FRAG_LOADING_WAITING_RETRY) &&
+ b.level !== n.level &&
+ b.loader &&
+ this.abortCurrentFrag();
+ let l = 0;
+ if (a.live || ((i = c.details) != null && i.live)) {
+ var p;
+ if ((this.checkLiveUpdate(a), a.deltaUpdateFailed)) return;
+ l = this.alignPlaylists(
+ a,
+ c.details,
+ (p = this.levelLastLoaded) == null ? void 0 : p.details,
+ );
+ }
+ if (
+ ((c.details = a),
+ (this.levelLastLoaded = c),
+ s || this.setStartPosition(a, l),
+ this.hls.trigger(L.LEVEL_UPDATED, { details: a, level: o }),
+ this.state === e0.WAITING_LEVEL)
+ ) {
+ if (this.waitForCdnTuneIn(a)) return;
+ this.state = e0.IDLE;
+ }
+ (s && a.live && this.synchronizeToLiveEdge(a), this.tick());
+ }
+ synchronizeToLiveEdge(e) {
+ const { config: n, media: i } = this;
+ if (!i) return;
+ const r = this.hls.liveSyncPosition,
+ s = this.getLoadPosition(),
+ o = e.fragmentStart,
+ a = e.edge,
+ u = s >= o - n.maxFragLookUpTolerance && s <= a;
+ if (r !== null && i.duration > r && (s < r || !u)) {
+ const b =
+ n.liveMaxLatencyDuration !== void 0
+ ? n.liveMaxLatencyDuration
+ : n.liveMaxLatencyDurationCount * e.targetduration;
+ if (
+ ((!u && i.readyState < 4) || s < a - b) &&
+ (this._hasEnoughToStart || (this.nextLoadPosition = r), i.readyState)
+ )
+ if (
+ (this.warn(
+ `Playback: ${s.toFixed(3)} is located too far from the end of live sliding playlist: ${a}, reset currentTime to : ${r.toFixed(3)}`,
+ ),
+ this.config.liveSyncMode === "buffered")
+ ) {
+ var c;
+ const l = W0.bufferInfo(i, r, 0);
+ if (!((c = l.buffered) != null && c.length)) {
+ i.currentTime = r;
+ return;
+ }
+ if (l.start <= s) {
+ i.currentTime = r;
+ return;
+ }
+ const { nextStart: M } = W0.bufferedInfo(l.buffered, s, 0);
+ M && (i.currentTime = M);
+ } else i.currentTime = r;
+ }
+ }
+ _handleFragmentLoadProgress(e) {
+ var n;
+ const i = e.frag,
+ { part: r, payload: s } = e,
+ { levels: o } = this;
+ if (!o) {
+ this.warn(
+ `Levels were reset while fragment load was in progress. Fragment ${i.sn} of level ${i.level} will not be buffered`,
+ );
+ return;
+ }
+ const a = o[i.level];
+ if (!a) {
+ this.warn(`Level ${i.level} not found on progress`);
+ return;
+ }
+ const u = a.details;
+ if (!u) {
+ (this.warn(
+ `Dropping fragment ${i.sn} of level ${i.level} after level details were reset`,
+ ),
+ this.fragmentTracker.removeFragment(i));
+ return;
+ }
+ const c = a.videoCodec,
+ b = u.PTSKnown || !u.live,
+ l = (n = i.initSegment) == null ? void 0 : n.data,
+ p = this._getAudioCodec(a),
+ M = (this.transmuxer =
+ this.transmuxer ||
+ new Fg(
+ this.hls,
+ z0.MAIN,
+ this._handleTransmuxComplete.bind(this),
+ this._handleTransmuxerFlush.bind(this),
+ )),
+ d = r ? r.index : -1,
+ O = d !== -1,
+ f = new gM(i.level, i.sn, i.stats.chunkCount, s.byteLength, d, O),
+ z = this.initPTS[i.cc];
+ M.push(s, l, p, c, i, r, u.totalduration, b, f, z);
+ }
+ onAudioTrackSwitching(e, n) {
+ const i = this.hls,
+ r = this.altAudio === 2;
+ if (Ac(n.url, i)) this.altAudio = 1;
+ else {
+ if (this.mediaBuffer !== this.media) {
+ (this.log(
+ "Switching on main audio, use media.buffered to schedule main fragment loading",
+ ),
+ (this.mediaBuffer = this.media));
+ const o = this.fragCurrent;
+ (o &&
+ (this.log("Switching to main audio track, cancel main fragment load"),
+ o.abortRequests(),
+ this.fragmentTracker.removeFragment(o)),
+ this.resetTransmuxer(),
+ this.resetLoadingState());
+ } else this.audioOnly && this.resetTransmuxer();
+ if (r) {
+ (this.fragmentTracker.removeAllFragments(),
+ i.once(L.BUFFER_FLUSHED, () => {
+ this.hls && this.hls.trigger(L.AUDIO_TRACK_SWITCHED, n);
+ }),
+ i.trigger(L.BUFFER_FLUSHING, {
+ startOffset: 0,
+ endOffset: Number.POSITIVE_INFINITY,
+ type: null,
+ }));
+ return;
+ }
+ i.trigger(L.AUDIO_TRACK_SWITCHED, n);
+ }
+ }
+ onAudioTrackSwitched(e, n) {
+ const i = Ac(n.url, this.hls);
+ if (i) {
+ const r = this.videoBuffer;
+ r &&
+ this.mediaBuffer !== r &&
+ (this.log(
+ "Switching on alternate audio, use video.buffered to schedule main fragment loading",
+ ),
+ (this.mediaBuffer = r));
+ }
+ ((this.altAudio = i ? 2 : 0), this.tick());
+ }
+ onBufferCreated(e, n) {
+ const i = n.tracks;
+ let r,
+ s,
+ o = !1;
+ for (const a in i) {
+ const u = i[a];
+ if (u.id === "main") {
+ if (((s = a), (r = u), a === "video")) {
+ const c = i[a];
+ c && (this.videoBuffer = c.buffer);
+ }
+ } else o = !0;
+ }
+ o && r
+ ? (this.log(
+ `Alternate track found, use ${s}.buffered to schedule main fragment loading`,
+ ),
+ (this.mediaBuffer = r.buffer))
+ : (this.mediaBuffer = this.media);
+ }
+ onFragBuffered(e, n) {
+ const { frag: i, part: r } = n,
+ s = i.type === z0.MAIN;
+ if (s) {
+ if (this.fragContextChanged(i)) {
+ (this.warn(
+ `Fragment ${i.sn}${r ? " p: " + r.index : ""} of level ${i.level} finished buffering, but was aborted. state: ${this.state}`,
+ ),
+ this.state === e0.PARSED && (this.state = e0.IDLE));
+ return;
+ }
+ const a = r ? r.stats : i.stats;
+ ((this.fragLastKbps = Math.round(
+ (8 * a.total) / (a.buffering.end - a.loading.first),
+ )),
+ c1(i) && (this.fragPrevious = i),
+ this.fragBufferedComplete(i, r));
+ }
+ const o = this.media;
+ o &&
+ (!this._hasEnoughToStart &&
+ W0.getBuffered(o).length &&
+ ((this._hasEnoughToStart = !0), this.seekToStartPos()),
+ s && this.tick());
+ }
+ get hasEnoughToStart() {
+ return this._hasEnoughToStart;
+ }
+ onError(e, n) {
+ var i;
+ if (n.fatal) {
+ this.state = e0.ERROR;
+ return;
+ }
+ switch (n.details) {
+ case $.FRAG_GAP:
+ case $.FRAG_PARSING_ERROR:
+ case $.FRAG_DECRYPT_ERROR:
+ case $.FRAG_LOAD_ERROR:
+ case $.FRAG_LOAD_TIMEOUT:
+ case $.KEY_LOAD_ERROR:
+ case $.KEY_LOAD_TIMEOUT:
+ this.onFragmentOrKeyLoadError(z0.MAIN, n);
+ break;
+ case $.LEVEL_LOAD_ERROR:
+ case $.LEVEL_LOAD_TIMEOUT:
+ case $.LEVEL_PARSING_ERROR:
+ !n.levelRetry &&
+ this.state === e0.WAITING_LEVEL &&
+ ((i = n.context) == null ? void 0 : i.type) === _0.LEVEL &&
+ (this.state = e0.IDLE);
+ break;
+ case $.BUFFER_ADD_CODEC_ERROR:
+ case $.BUFFER_APPEND_ERROR:
+ if (n.parent !== "main") return;
+ this.reduceLengthAndFlushBuffer(n) && this.resetLoadingState();
+ break;
+ case $.BUFFER_FULL_ERROR:
+ if (n.parent !== "main") return;
+ this.reduceLengthAndFlushBuffer(n) &&
+ (!this.config.interstitialsController && this.config.assetPlayerId
+ ? (this._hasEnoughToStart = !0)
+ : this.flushMainBuffer(0, Number.POSITIVE_INFINITY));
+ break;
+ case $.INTERNAL_EXCEPTION:
+ this.recoverWorkerError(n);
+ break;
+ }
+ }
+ onFragLoadEmergencyAborted() {
+ ((this.state = e0.IDLE),
+ this._hasEnoughToStart ||
+ ((this.startFragRequested = !1),
+ (this.nextLoadPosition = this.lastCurrentTime)),
+ this.tickImmediate());
+ }
+ onBufferFlushed(e, { type: n }) {
+ if (n !== j0.AUDIO || !this.altAudio) {
+ const i =
+ (n === j0.VIDEO ? this.videoBuffer : this.mediaBuffer) || this.media;
+ i && (this.afterBufferFlushed(i, n, z0.MAIN), this.tick());
+ }
+ }
+ onLevelsUpdated(e, n) {
+ (this.level > -1 &&
+ this.fragCurrent &&
+ ((this.level = this.fragCurrent.level),
+ this.level === -1 && this.resetWhenMissingContext(this.fragCurrent)),
+ (this.levels = n.levels));
+ }
+ swapAudioCodec() {
+ this.audioCodecSwap = !this.audioCodecSwap;
+ }
+ seekToStartPos() {
+ const { media: e } = this;
+ if (!e) return;
+ const n = e.currentTime;
+ let i = this.startPosition;
+ if (i >= 0 && n < i) {
+ if (e.seeking) {
+ this.log(`could not seek to ${i}, already seeking at ${n}`);
+ return;
+ }
+ const r = this.timelineOffset;
+ r && i && (i += r);
+ const s = this.getLevelDetails(),
+ o = W0.getBuffered(e),
+ a = o.length ? o.start(0) : 0,
+ u = a - i,
+ c = Math.max(
+ this.config.maxBufferHole,
+ this.config.maxFragLookUpTolerance,
+ );
+ ((this.config.startOnSegmentBoundary ||
+ (u > 0 &&
+ (u < c || (this.loadingParts && u < 2 * (s?.partTarget || 0))))) &&
+ (this.log(`adjusting start position by ${u} to match buffer start`),
+ (i += u),
+ (this.startPosition = i)),
+ n < i &&
+ (this.log(
+ `seek to target start position ${i} from current time ${n} buffer start ${a}`,
+ ),
+ (e.currentTime = i)));
+ }
+ }
+ _getAudioCodec(e) {
+ let n = this.config.defaultAudioCodec || e.audioCodec;
+ return (
+ this.audioCodecSwap &&
+ n &&
+ (this.log("Swapping audio codec"),
+ n.indexOf("mp4a.40.5") !== -1 ? (n = "mp4a.40.2") : (n = "mp4a.40.5")),
+ n
+ );
+ }
+ _loadBitrateTestFrag(e, n) {
+ ((e.bitrateTest = !0),
+ this._doFragLoad(e, n)
+ .then((i) => {
+ const { hls: r } = this,
+ s = i?.frag;
+ if (!s || this.fragContextChanged(s)) return;
+ ((n.fragmentError = 0),
+ (this.state = e0.IDLE),
+ (this.startFragRequested = !1),
+ (this.bitrateTest = !1));
+ const o = s.stats;
+ ((o.parsing.start =
+ o.parsing.end =
+ o.buffering.start =
+ o.buffering.end =
+ self.performance.now()),
+ r.trigger(L.FRAG_LOADED, i),
+ (s.bitrateTest = !1));
+ })
+ .catch((i) => {
+ this.state === e0.STOPPED ||
+ this.state === e0.ERROR ||
+ (this.warn(i), this.resetFragmentLoading(e));
+ }));
+ }
+ _handleTransmuxComplete(e) {
+ const n = this.playlistType,
+ { hls: i } = this,
+ { remuxResult: r, chunkMeta: s } = e,
+ o = this.getCurrentContext(s);
+ if (!o) {
+ this.resetWhenMissingContext(s);
+ return;
+ }
+ const { frag: a, part: u, level: c } = o,
+ { video: b, text: l, id3: p, initSegment: M } = r,
+ { details: d } = c,
+ O = this.altAudio ? void 0 : r.audio;
+ if (this.fragContextChanged(a)) {
+ this.fragmentTracker.removeFragment(a);
+ return;
+ }
+ if (((this.state = e0.PARSING), M)) {
+ const f = M.tracks;
+ if (f) {
+ const h = a.initSegment || a;
+ if (this.unhandledEncryptionError(M, a)) return;
+ (this._bufferInitSegment(c, f, h, s),
+ i.trigger(L.FRAG_PARSING_INIT_SEGMENT, {
+ frag: h,
+ id: n,
+ tracks: f,
+ }));
+ }
+ const z = M.initPTS,
+ g = M.timescale,
+ A = this.initPTS[a.cc];
+ if (p0(z) && (!A || A.baseTime !== z || A.timescale !== g)) {
+ const h = M.trackId;
+ ((this.initPTS[a.cc] = { baseTime: z, timescale: g, trackId: h }),
+ i.trigger(L.INIT_PTS_FOUND, {
+ frag: a,
+ id: n,
+ initPTS: z,
+ timescale: g,
+ trackId: h,
+ }));
+ }
+ }
+ if (b && d) {
+ O && b.type === "audiovideo" && this.logMuxedErr(a);
+ const f = d.fragments[a.sn - 1 - d.startSN],
+ z = a.sn === d.startSN,
+ g = !f || a.cc > f.cc;
+ if (r.independent !== !1) {
+ const { startPTS: A, endPTS: h, startDTS: q, endDTS: v } = b;
+ if (u)
+ u.elementaryStreams[b.type] = {
+ startPTS: A,
+ endPTS: h,
+ startDTS: q,
+ endDTS: v,
+ };
+ else if (
+ (b.firstKeyFrame &&
+ b.independent &&
+ s.id === 1 &&
+ !g &&
+ (this.couldBacktrack = !0),
+ b.dropped && b.independent)
+ ) {
+ const m = this.getMainFwdBufferInfo(),
+ E =
+ (m ? m.end : this.getLoadPosition()) + this.config.maxBufferHole,
+ _ = b.firstKeyFramePTS ? b.firstKeyFramePTS : A;
+ if (!z && E < _ - this.config.maxBufferHole && !g) {
+ this.backtrack(a);
+ return;
+ } else g && (a.gap = !0);
+ a.setElementaryStreamInfo(b.type, a.start, h, a.start, v, !0);
+ } else z && A - (d.appliedTimelineOffset || 0) > Ra && (a.gap = !0);
+ (a.setElementaryStreamInfo(b.type, A, h, q, v),
+ this.backtrackFragment && (this.backtrackFragment = a),
+ this.bufferFragmentData(b, a, u, s, z || g));
+ } else if (z || g) a.gap = !0;
+ else {
+ this.backtrack(a);
+ return;
+ }
+ }
+ if (O) {
+ const { startPTS: f, endPTS: z, startDTS: g, endDTS: A } = O;
+ (u &&
+ (u.elementaryStreams[j0.AUDIO] = {
+ startPTS: f,
+ endPTS: z,
+ startDTS: g,
+ endDTS: A,
+ }),
+ a.setElementaryStreamInfo(j0.AUDIO, f, z, g, A),
+ this.bufferFragmentData(O, a, u, s));
+ }
+ if (d && p != null && p.samples.length) {
+ const f = { id: n, frag: a, details: d, samples: p.samples };
+ i.trigger(L.FRAG_PARSING_METADATA, f);
+ }
+ if (d && l) {
+ const f = { id: n, frag: a, details: d, samples: l.samples };
+ i.trigger(L.FRAG_PARSING_USERDATA, f);
+ }
+ }
+ logMuxedErr(e) {
+ this.warn(
+ `${c1(e) ? "Media" : "Init"} segment with muxed audiovideo where only video expected: ${e.url}`,
+ );
+ }
+ _bufferInitSegment(e, n, i, r) {
+ if (this.state !== e0.PARSING) return;
+ ((this.audioOnly = !!n.audio && !n.video),
+ this.altAudio &&
+ !this.audioOnly &&
+ (delete n.audio, n.audiovideo && this.logMuxedErr(i)));
+ const { audio: s, video: o, audiovideo: a } = n;
+ if (s) {
+ const c = e.audioCodec;
+ let b = Oa(s.codec, c);
+ b === "mp4a" && (b = "mp4a.40.5");
+ const l = navigator.userAgent.toLowerCase();
+ if (this.audioCodecSwitch) {
+ b &&
+ (b.indexOf("mp4a.40.5") !== -1
+ ? (b = "mp4a.40.2")
+ : (b = "mp4a.40.5"));
+ const p = s.metadata;
+ p &&
+ "channelCount" in p &&
+ (p.channelCount || 1) !== 1 &&
+ l.indexOf("firefox") === -1 &&
+ (b = "mp4a.40.5");
+ }
+ (b &&
+ b.indexOf("mp4a.40.5") !== -1 &&
+ l.indexOf("android") !== -1 &&
+ s.container !== "audio/mpeg" &&
+ ((b = "mp4a.40.2"), this.log(`Android: force audio codec to ${b}`)),
+ c &&
+ c !== b &&
+ this.log(`Swapping manifest audio codec "${c}" for "${b}"`),
+ (s.levelCodec = b),
+ (s.id = z0.MAIN),
+ this.log(
+ `Init audio buffer, container:${s.container}, codecs[selected/level/parsed]=[${b || ""}/${c || ""}/${s.codec}]`,
+ ),
+ delete n.audiovideo);
+ }
+ if (o) {
+ ((o.levelCodec = e.videoCodec), (o.id = z0.MAIN));
+ const c = o.codec;
+ if (c?.length === 4)
+ switch (c) {
+ case "hvc1":
+ case "hev1":
+ o.codec = "hvc1.1.6.L120.90";
+ break;
+ case "av01":
+ o.codec = "av01.0.04M.08";
+ break;
+ case "avc1":
+ o.codec = "avc1.42e01e";
+ break;
+ }
+ (this.log(
+ `Init video buffer, container:${o.container}, codecs[level/parsed]=[${e.videoCodec || ""}/${c}]${o.codec !== c ? " parsed-corrected=" + o.codec : ""}${o.supplemental ? " supplemental=" + o.supplemental : ""}`,
+ ),
+ delete n.audiovideo);
+ }
+ a &&
+ (this.log(
+ `Init audiovideo buffer, container:${a.container}, codecs[level/parsed]=[${e.codecs}/${a.codec}]`,
+ ),
+ delete n.video,
+ delete n.audio);
+ const u = Object.keys(n);
+ if (u.length) {
+ if ((this.hls.trigger(L.BUFFER_CODECS, n), !this.hls)) return;
+ u.forEach((c) => {
+ const l = n[c].initSegment;
+ l != null &&
+ l.byteLength &&
+ this.hls.trigger(L.BUFFER_APPENDING, {
+ type: c,
+ data: l,
+ frag: i,
+ part: null,
+ chunkMeta: r,
+ parent: i.type,
+ });
+ });
+ }
+ this.tickImmediate();
+ }
+ getMainFwdBufferInfo() {
+ const e =
+ this.mediaBuffer && this.altAudio === 2 ? this.mediaBuffer : this.media;
+ return this.getFwdBufferInfo(e, z0.MAIN);
+ }
+ get maxBufferLength() {
+ const { levels: e, level: n } = this,
+ i = e?.[n];
+ return i
+ ? this.getMaxBufferLength(i.maxBitrate)
+ : this.config.maxBufferLength;
+ }
+ backtrack(e) {
+ ((this.couldBacktrack = !0),
+ (this.backtrackFragment = e),
+ this.resetTransmuxer(),
+ this.flushBufferGap(e),
+ this.fragmentTracker.removeFragment(e),
+ (this.fragPrevious = null),
+ (this.nextLoadPosition = e.start),
+ (this.state = e0.IDLE));
+ }
+ checkFragmentChanged() {
+ const e = this.media;
+ let n = null;
+ if (e && e.readyState > 1 && e.seeking === !1) {
+ const i = e.currentTime;
+ if (
+ (W0.isBuffered(e, i)
+ ? (n = this.getAppendedFrag(i))
+ : W0.isBuffered(e, i + 0.1) && (n = this.getAppendedFrag(i + 0.1)),
+ n)
+ ) {
+ this.backtrackFragment = null;
+ const r = this.fragPlaying,
+ s = n.level;
+ (!r || n.sn !== r.sn || r.level !== s) &&
+ ((this.fragPlaying = n),
+ this.hls.trigger(L.FRAG_CHANGED, { frag: n }),
+ (!r || r.level !== s) &&
+ this.hls.trigger(L.LEVEL_SWITCHED, { level: s }));
+ }
+ }
+ }
+ get nextLevel() {
+ const e = this.nextBufferedFrag;
+ return e ? e.level : -1;
+ }
+ get currentFrag() {
+ var e;
+ if (this.fragPlaying) return this.fragPlaying;
+ const n =
+ ((e = this.media) == null ? void 0 : e.currentTime) ||
+ this.lastCurrentTime;
+ return p0(n) ? this.getAppendedFrag(n) : null;
+ }
+ get currentProgramDateTime() {
+ var e;
+ const n =
+ ((e = this.media) == null ? void 0 : e.currentTime) ||
+ this.lastCurrentTime;
+ if (p0(n)) {
+ const i = this.getLevelDetails(),
+ r = this.currentFrag || (i ? zi(null, i.fragments, n) : null);
+ if (r) {
+ const s = r.programDateTime;
+ if (s !== null) {
+ const o = s + (n - r.start) * 1e3;
+ return new Date(o);
+ }
+ }
+ }
+ return null;
+ }
+ get currentLevel() {
+ const e = this.currentFrag;
+ return e ? e.level : -1;
+ }
+ get nextBufferedFrag() {
+ const e = this.currentFrag;
+ return e ? this.followingBufferedFrag(e) : null;
+ }
+ get forceStartLoad() {
+ return this._forceStartLoad;
+ }
+}
+class qC extends Re {
+ constructor(e, n) {
+ (super("key-loader", n),
+ (this.config = void 0),
+ (this.keyIdToKeyInfo = {}),
+ (this.emeController = null),
+ (this.config = e));
+ }
+ abort(e) {
+ for (const i in this.keyIdToKeyInfo) {
+ const r = this.keyIdToKeyInfo[i].loader;
+ if (r) {
+ var n;
+ if (e && e !== ((n = r.context) == null ? void 0 : n.frag.type)) return;
+ r.abort();
+ }
+ }
+ }
+ detach() {
+ for (const e in this.keyIdToKeyInfo) {
+ const n = this.keyIdToKeyInfo[e];
+ (n.mediaKeySessionContext || n.decryptdata.isCommonEncryption) &&
+ delete this.keyIdToKeyInfo[e];
+ }
+ }
+ destroy() {
+ this.detach();
+ for (const e in this.keyIdToKeyInfo) {
+ const n = this.keyIdToKeyInfo[e].loader;
+ n && n.destroy();
+ }
+ this.keyIdToKeyInfo = {};
+ }
+ createKeyLoadError(e, n = $.KEY_LOAD_ERROR, i, r, s) {
+ return new Tt({
+ type: h0.NETWORK_ERROR,
+ details: n,
+ fatal: !1,
+ frag: e,
+ response: s,
+ error: i,
+ networkDetails: r || null,
+ });
+ }
+ loadClear(e, n, i) {
+ if (
+ this.emeController &&
+ this.config.emeEnabled &&
+ !this.emeController.getSelectedKeySystemFormats().length
+ ) {
+ if (n.length)
+ for (let r = 0, s = n.length; r < s; r++) {
+ const o = n[r];
+ if (
+ (e.cc <= o.cc && (!c1(e) || !c1(o) || e.sn < o.sn)) ||
+ (!i && r == s - 1)
+ )
+ return this.emeController.selectKeySystemFormat(o).then((a) => {
+ if (!this.emeController) return;
+ o.setKeyFormat(a);
+ const u = Aa(a);
+ if (u) return this.emeController.getKeySystemAccess([u]);
+ });
+ }
+ if (this.config.requireKeySystemAccessOnStart) {
+ const r = Xr(this.config);
+ if (r.length) return this.emeController.getKeySystemAccess(r);
+ }
+ }
+ return null;
+ }
+ load(e) {
+ return !e.decryptdata &&
+ e.encrypted &&
+ this.emeController &&
+ this.config.emeEnabled
+ ? this.emeController
+ .selectKeySystemFormat(e)
+ .then((n) => this.loadInternal(e, n))
+ : this.loadInternal(e);
+ }
+ loadInternal(e, n) {
+ var i, r;
+ n && e.setKeyFormat(n);
+ const s = e.decryptdata;
+ if (!s) {
+ const b = new Error(
+ n
+ ? `Expected frag.decryptdata to be defined after setting format ${n}`
+ : "Missing decryption data on fragment in onKeyLoading",
+ );
+ return Promise.reject(this.createKeyLoadError(e, $.KEY_LOAD_ERROR, b));
+ }
+ const o = s.uri;
+ if (!o)
+ return Promise.reject(
+ this.createKeyLoadError(
+ e,
+ $.KEY_LOAD_ERROR,
+ new Error(`Invalid key URI: "${o}"`),
+ ),
+ );
+ const a = Iu(s);
+ let u = this.keyIdToKeyInfo[a];
+ if ((i = u) != null && i.decryptdata.key)
+ return (
+ (s.key = u.decryptdata.key),
+ Promise.resolve({ frag: e, keyInfo: u })
+ );
+ if ((r = u) != null && r.keyLoadPromise) {
+ var c;
+ switch ((c = u.mediaKeySessionContext) == null ? void 0 : c.keyStatus) {
+ case "usable":
+ case "usable-in-future":
+ return u.keyLoadPromise.then((l) => {
+ const { keyInfo: p } = l;
+ return ((s.key = p.decryptdata.key), { frag: e, keyInfo: p });
+ });
+ }
+ }
+ switch (
+ (this.log(`Loading key ${P1(s.keyId || [])} from ${e.type} ${e.level}`),
+ (u = this.keyIdToKeyInfo[a] =
+ {
+ decryptdata: s,
+ keyLoadPromise: null,
+ loader: null,
+ mediaKeySessionContext: null,
+ }),
+ s.method)
+ ) {
+ case "SAMPLE-AES":
+ case "SAMPLE-AES-CENC":
+ case "SAMPLE-AES-CTR":
+ return s.keyFormat === "identity"
+ ? this.loadKeyHTTP(u, e)
+ : this.loadKeyEME(u, e);
+ case "AES-128":
+ case "AES-256":
+ case "AES-256-CTR":
+ return this.loadKeyHTTP(u, e);
+ default:
+ return Promise.reject(
+ this.createKeyLoadError(
+ e,
+ $.KEY_LOAD_ERROR,
+ new Error(`Key supplied with unsupported METHOD: "${s.method}"`),
+ ),
+ );
+ }
+ }
+ loadKeyEME(e, n) {
+ const i = { frag: n, keyInfo: e };
+ if (this.emeController && this.config.emeEnabled) {
+ const r = this.emeController.loadKey(i);
+ return (e.keyLoadPromise = r.then(
+ (s) => ((e.mediaKeySessionContext = s), i),
+ )).catch((s) => {
+ throw ((e.keyLoadPromise = null), s.data && (s.data.frag = n), s);
+ });
+ }
+ return Promise.resolve(i);
+ }
+ loadKeyHTTP(e, n) {
+ const i = this.config,
+ r = i.loader,
+ s = new r(i);
+ return (
+ (n.keyLoader = e.loader = s),
+ (e.keyLoadPromise = new Promise((o, a) => {
+ const u = {
+ keyInfo: e,
+ frag: n,
+ responseType: "arraybuffer",
+ url: e.decryptdata.uri,
+ },
+ c = i.keyLoadPolicy.default,
+ b = {
+ loadPolicy: c,
+ timeout: c.maxLoadTimeMs,
+ maxRetry: 0,
+ retryDelay: 0,
+ maxRetryDelay: 0,
+ },
+ l = {
+ onSuccess: (p, M, d, O) => {
+ const { frag: f, keyInfo: z, url: g } = d,
+ A = Iu(z.decryptdata) || g;
+ if (!f.decryptdata || z !== this.keyIdToKeyInfo[A])
+ return a(
+ this.createKeyLoadError(
+ f,
+ $.KEY_LOAD_ERROR,
+ new Error("after key load, decryptdata unset or changed"),
+ O,
+ ),
+ );
+ ((z.decryptdata.key = f.decryptdata.key = new Uint8Array(p.data)),
+ (f.keyLoader = null),
+ (z.loader = null),
+ o({ frag: f, keyInfo: z }));
+ },
+ onError: (p, M, d, O) => {
+ (this.resetLoader(M),
+ a(
+ this.createKeyLoadError(
+ n,
+ $.KEY_LOAD_ERROR,
+ new Error(`HTTP Error ${p.code} loading key ${p.text}`),
+ d,
+ $0({ url: u.url, data: void 0 }, p),
+ ),
+ ));
+ },
+ onTimeout: (p, M, d) => {
+ (this.resetLoader(M),
+ a(
+ this.createKeyLoadError(
+ n,
+ $.KEY_LOAD_TIMEOUT,
+ new Error("key loading timed out"),
+ d,
+ ),
+ ));
+ },
+ onAbort: (p, M, d) => {
+ (this.resetLoader(M),
+ a(
+ this.createKeyLoadError(
+ n,
+ $.INTERNAL_ABORTED,
+ new Error("key loading aborted"),
+ d,
+ ),
+ ));
+ },
+ };
+ s.load(u, b, l);
+ }))
+ );
+ }
+ resetLoader(e) {
+ const { frag: n, keyInfo: i, url: r } = e,
+ s = i.loader;
+ n.keyLoader === s && ((n.keyLoader = null), (i.loader = null));
+ const o = Iu(i.decryptdata) || r;
+ (delete this.keyIdToKeyInfo[o], s && s.destroy());
+ }
+}
+function Iu(t) {
+ const e = t.keyId;
+ return e ? P1(e) : t.uri;
+}
+function tO(t) {
+ const { type: e } = t;
+ switch (e) {
+ case _0.AUDIO_TRACK:
+ return z0.AUDIO;
+ case _0.SUBTITLE_TRACK:
+ return z0.SUBTITLE;
+ default:
+ return z0.MAIN;
+ }
+}
+function Du(t, e) {
+ let n = t.url;
+ return ((n === void 0 || n.indexOf("data:") === 0) && (n = e.url), n);
+}
+class gC {
+ constructor(e) {
+ ((this.hls = void 0),
+ (this.loaders = Object.create(null)),
+ (this.variableList = null),
+ (this.onManifestLoaded = this.checkAutostartLoad),
+ (this.hls = e),
+ this.registerListeners());
+ }
+ startLoad(e) {}
+ stopLoad() {
+ this.destroyInternalLoaders();
+ }
+ registerListeners() {
+ const { hls: e } = this;
+ (e.on(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.on(L.LEVEL_LOADING, this.onLevelLoading, this),
+ e.on(L.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this),
+ e.on(L.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this),
+ e.on(L.LEVELS_UPDATED, this.onLevelsUpdated, this));
+ }
+ unregisterListeners() {
+ const { hls: e } = this;
+ (e.off(L.MANIFEST_LOADING, this.onManifestLoading, this),
+ e.off(L.LEVEL_LOADING, this.onLevelLoading, this),
+ e.off(L.AUDIO_TRACK_LOADING, this.onAudioTrackLoading, this),
+ e.off(L.SUBTITLE_TRACK_LOADING, this.onSubtitleTrackLoading, this),
+ e.off(L.LEVELS_UPDATED, this.onLevelsUpdated, this));
+ }
+ createInternalLoader(e) {
+ const n = this.hls.config,
+ i = n.pLoader,
+ r = n.loader,
+ s = i || r,
+ o = new s(n);
+ return ((this.loaders[e.type] = o), o);
+ }
+ getInternalLoader(e) {
+ return this.loaders[e.type];
+ }
+ resetInternalLoader(e) {
+ this.loaders[e] && delete this.loaders[e];
+ }
+ destroyInternalLoaders() {
+ for (const e in this.loaders) {
+ const n = this.loaders[e];
+ (n && n.destroy(), this.resetInternalLoader(e));
+ }
+ }
+ destroy() {
+ ((this.variableList = null),
+ this.unregisterListeners(),
+ this.destroyInternalLoaders());
+ }
+ onManifestLoading(e, n) {
+ const { url: i } = n;
+ ((this.variableList = null),
+ this.load({
+ id: null,
+ level: 0,
+ responseType: "text",
+ type: _0.MANIFEST,
+ url: i,
+ deliveryDirectives: null,
+ levelOrTrack: null,
+ }));
+ }
+ onLevelLoading(e, n) {
+ const {
+ id: i,
+ level: r,
+ pathwayId: s,
+ url: o,
+ deliveryDirectives: a,
+ levelInfo: u,
+ } = n;
+ this.load({
+ id: i,
+ level: r,
+ pathwayId: s,
+ responseType: "text",
+ type: _0.LEVEL,
+ url: o,
+ deliveryDirectives: a,
+ levelOrTrack: u,
+ });
+ }
+ onAudioTrackLoading(e, n) {
+ const { id: i, groupId: r, url: s, deliveryDirectives: o, track: a } = n;
+ this.load({
+ id: i,
+ groupId: r,
+ level: null,
+ responseType: "text",
+ type: _0.AUDIO_TRACK,
+ url: s,
+ deliveryDirectives: o,
+ levelOrTrack: a,
+ });
+ }
+ onSubtitleTrackLoading(e, n) {
+ const { id: i, groupId: r, url: s, deliveryDirectives: o, track: a } = n;
+ this.load({
+ id: i,
+ groupId: r,
+ level: null,
+ responseType: "text",
+ type: _0.SUBTITLE_TRACK,
+ url: s,
+ deliveryDirectives: o,
+ levelOrTrack: a,
+ });
+ }
+ onLevelsUpdated(e, n) {
+ const i = this.loaders[_0.LEVEL];
+ if (i) {
+ const r = i.context;
+ r &&
+ !n.levels.some((s) => s === r.levelOrTrack) &&
+ (i.abort(), delete this.loaders[_0.LEVEL]);
+ }
+ }
+ load(e) {
+ var n;
+ const i = this.hls.config;
+ let r = this.getInternalLoader(e);
+ if (r) {
+ const c = this.hls.logger,
+ b = r.context;
+ if (
+ b &&
+ b.levelOrTrack === e.levelOrTrack &&
+ (b.url === e.url || (b.deliveryDirectives && !e.deliveryDirectives))
+ ) {
+ b.url === e.url
+ ? c.log(`[playlist-loader]: ignore ${e.url} ongoing request`)
+ : c.log(`[playlist-loader]: ignore ${e.url} in favor of ${b.url}`);
+ return;
+ }
+ (c.log(`[playlist-loader]: aborting previous loader for type: ${e.type}`),
+ r.abort());
+ }
+ let s;
+ if (
+ (e.type === _0.MANIFEST
+ ? (s = i.manifestLoadPolicy.default)
+ : (s = H0({}, i.playlistLoadPolicy.default, {
+ timeoutRetry: null,
+ errorRetry: null,
+ })),
+ (r = this.createInternalLoader(e)),
+ p0((n = e.deliveryDirectives) == null ? void 0 : n.part))
+ ) {
+ let c;
+ if (
+ (e.type === _0.LEVEL && e.level !== null
+ ? (c = this.hls.levels[e.level].details)
+ : e.type === _0.AUDIO_TRACK && e.id !== null
+ ? (c = this.hls.audioTracks[e.id].details)
+ : e.type === _0.SUBTITLE_TRACK &&
+ e.id !== null &&
+ (c = this.hls.subtitleTracks[e.id].details),
+ c)
+ ) {
+ const b = c.partTarget,
+ l = c.targetduration;
+ if (b && l) {
+ const p = Math.max(b * 3, l * 0.8) * 1e3;
+ s = H0({}, s, {
+ maxTimeToFirstByteMs: Math.min(p, s.maxTimeToFirstByteMs),
+ maxLoadTimeMs: Math.min(p, s.maxTimeToFirstByteMs),
+ });
+ }
+ }
+ }
+ const o = s.errorRetry || s.timeoutRetry || {},
+ a = {
+ loadPolicy: s,
+ timeout: s.maxLoadTimeMs,
+ maxRetry: o.maxNumRetry || 0,
+ retryDelay: o.retryDelayMs || 0,
+ maxRetryDelay: o.maxRetryDelayMs || 0,
+ },
+ u = {
+ onSuccess: (c, b, l, p) => {
+ const M = this.getInternalLoader(l);
+ this.resetInternalLoader(l.type);
+ const d = c.data;
+ if (d.indexOf("#EXTM3U") !== 0) {
+ this.handleManifestParsingError(
+ c,
+ l,
+ new Error("no EXTM3U delimiter"),
+ p || null,
+ b,
+ );
+ return;
+ }
+ ((b.parsing.start = performance.now()),
+ ot.isMediaPlaylist(d) || l.type !== _0.MANIFEST
+ ? this.handleTrackOrLevelPlaylist(c, b, l, p || null, M)
+ : this.handleMasterPlaylist(c, b, l, p));
+ },
+ onError: (c, b, l, p) => {
+ this.handleNetworkError(b, l, !1, c, p);
+ },
+ onTimeout: (c, b, l) => {
+ this.handleNetworkError(b, l, !0, void 0, c);
+ },
+ };
+ r.load(e, a, u);
+ }
+ checkAutostartLoad() {
+ if (!this.hls) return;
+ const {
+ config: { autoStartLoad: e, startPosition: n },
+ forceStartLoad: i,
+ } = this.hls;
+ (e || i) &&
+ (this.hls.logger.log(
+ `${e ? "auto" : "force"} startLoad with configured startPosition ${n}`,
+ ),
+ this.hls.startLoad(n));
+ }
+ handleMasterPlaylist(e, n, i, r) {
+ const s = this.hls,
+ o = e.data,
+ a = Du(e, i),
+ u = ot.parseMasterPlaylist(o, a);
+ if (u.playlistParsingError) {
+ this.handleManifestParsingError(e, i, u.playlistParsingError, r, n);
+ return;
+ }
+ const {
+ contentSteering: c,
+ levels: b,
+ sessionData: l,
+ sessionKeys: p,
+ startTimeOffset: M,
+ variableList: d,
+ } = u;
+ this.variableList = d;
+ const {
+ AUDIO: O = [],
+ SUBTITLES: f,
+ "CLOSED-CAPTIONS": z,
+ } = ot.parseMasterPlaylistMedia(o, a, u);
+ (O.length &&
+ !O.some((A) => !A.url) &&
+ b[0].audioCodec &&
+ !b[0].attrs.AUDIO &&
+ (this.hls.logger.log(
+ "[playlist-loader]: audio codec signaled in quality level, but no embedded audio track signaled, create one",
+ ),
+ O.unshift({
+ type: "main",
+ name: "main",
+ groupId: "main",
+ default: !1,
+ autoselect: !1,
+ forced: !1,
+ id: -1,
+ attrs: new t1({}),
+ bitrate: 0,
+ url: "",
+ })),
+ s.trigger(L.MANIFEST_LOADED, {
+ levels: b,
+ audioTracks: O,
+ subtitles: f,
+ captions: z,
+ contentSteering: c,
+ url: a,
+ stats: n,
+ networkDetails: r,
+ sessionData: l,
+ sessionKeys: p,
+ startTimeOffset: M,
+ variableList: d,
+ }));
+ }
+ handleTrackOrLevelPlaylist(e, n, i, r, s) {
+ const o = this.hls,
+ { id: a, level: u, type: c } = i,
+ b = Du(e, i),
+ l = p0(u) ? u : p0(a) ? a : 0,
+ p = tO(i),
+ M = ot.parseLevelPlaylist(e.data, b, l, p, 0, this.variableList);
+ if (c === _0.MANIFEST) {
+ const d = { attrs: new t1({}), bitrate: 0, details: M, name: "", url: b };
+ ((M.requestScheduled = n.loading.start + Og(M, 0)),
+ o.trigger(L.MANIFEST_LOADED, {
+ levels: [d],
+ audioTracks: [],
+ url: b,
+ stats: n,
+ networkDetails: r,
+ sessionData: null,
+ sessionKeys: null,
+ contentSteering: null,
+ startTimeOffset: null,
+ variableList: null,
+ }));
+ }
+ ((n.parsing.end = performance.now()),
+ (i.levelDetails = M),
+ this.handlePlaylistLoaded(M, e, n, i, r, s));
+ }
+ handleManifestParsingError(e, n, i, r, s) {
+ this.hls.trigger(L.ERROR, {
+ type: h0.NETWORK_ERROR,
+ details: $.MANIFEST_PARSING_ERROR,
+ fatal: n.type === _0.MANIFEST,
+ url: e.url,
+ err: i,
+ error: i,
+ reason: i.message,
+ response: e,
+ context: n,
+ networkDetails: r,
+ stats: s,
+ });
+ }
+ handleNetworkError(e, n, i = !1, r, s) {
+ let o = `A network ${i ? "timeout" : "error" + (r ? " (status " + r.code + ")" : "")} occurred while loading ${e.type}`;
+ e.type === _0.LEVEL
+ ? (o += `: ${e.level} id: ${e.id}`)
+ : (e.type === _0.AUDIO_TRACK || e.type === _0.SUBTITLE_TRACK) &&
+ (o += ` id: ${e.id} group-id: "${e.groupId}"`);
+ const a = new Error(o);
+ this.hls.logger.warn(`[playlist-loader]: ${o}`);
+ let u = $.UNKNOWN,
+ c = !1;
+ const b = this.getInternalLoader(e);
+ switch (e.type) {
+ case _0.MANIFEST:
+ ((u = i ? $.MANIFEST_LOAD_TIMEOUT : $.MANIFEST_LOAD_ERROR), (c = !0));
+ break;
+ case _0.LEVEL:
+ ((u = i ? $.LEVEL_LOAD_TIMEOUT : $.LEVEL_LOAD_ERROR), (c = !1));
+ break;
+ case _0.AUDIO_TRACK:
+ ((u = i ? $.AUDIO_TRACK_LOAD_TIMEOUT : $.AUDIO_TRACK_LOAD_ERROR),
+ (c = !1));
+ break;
+ case _0.SUBTITLE_TRACK:
+ ((u = i ? $.SUBTITLE_TRACK_LOAD_TIMEOUT : $.SUBTITLE_LOAD_ERROR),
+ (c = !1));
+ break;
+ }
+ b && this.resetInternalLoader(e.type);
+ const l = {
+ type: h0.NETWORK_ERROR,
+ details: u,
+ fatal: c,
+ url: e.url,
+ loader: b,
+ context: e,
+ error: a,
+ networkDetails: n,
+ stats: s,
+ };
+ if (r) {
+ let p = e.url;
+ (n && "url" in n && (p = n.url),
+ (l.response = $0({ url: p, data: void 0 }, r)));
+ }
+ this.hls.trigger(L.ERROR, l);
+ }
+ handlePlaylistLoaded(e, n, i, r, s, o) {
+ const a = this.hls,
+ { type: u, level: c, id: b, groupId: l, deliveryDirectives: p } = r,
+ M = Du(n, r),
+ d = tO(r),
+ O = typeof r.level == "number" && d === z0.MAIN ? c : void 0;
+ if (!e.fragments.length) {
+ const z = (e.playlistParsingError = new Error(
+ "No Segments found in Playlist",
+ ));
+ a.trigger(L.ERROR, {
+ type: h0.NETWORK_ERROR,
+ details: $.LEVEL_EMPTY_ERROR,
+ fatal: !1,
+ url: M,
+ error: z,
+ reason: z.message,
+ response: n,
+ context: r,
+ level: O,
+ parent: d,
+ networkDetails: s,
+ stats: i,
+ });
+ return;
+ }
+ e.targetduration ||
+ (e.playlistParsingError = new Error("Missing Target Duration"));
+ const f = e.playlistParsingError;
+ if (f) {
+ if (
+ (this.hls.logger.warn(`${f} ${e.url}`),
+ !a.config.ignorePlaylistParsingErrors)
+ ) {
+ a.trigger(L.ERROR, {
+ type: h0.NETWORK_ERROR,
+ details: $.LEVEL_PARSING_ERROR,
+ fatal: !1,
+ url: M,
+ error: f,
+ reason: f.message,
+ response: n,
+ context: r,
+ level: O,
+ parent: d,
+ networkDetails: s,
+ stats: i,
+ });
+ return;
+ }
+ e.playlistParsingError = null;
+ }
+ switch (
+ (e.live &&
+ o &&
+ (o.getCacheAge && (e.ageHeader = o.getCacheAge() || 0),
+ (!o.getCacheAge || isNaN(e.ageHeader)) && (e.ageHeader = 0)),
+ u)
+ ) {
+ case _0.MANIFEST:
+ case _0.LEVEL:
+ a.trigger(L.LEVEL_LOADED, {
+ details: e,
+ levelInfo: r.levelOrTrack || a.levels[0],
+ level: O || 0,
+ id: b || 0,
+ stats: i,
+ networkDetails: s,
+ deliveryDirectives: p,
+ withoutMultiVariant: u === _0.MANIFEST,
+ });
+ break;
+ case _0.AUDIO_TRACK:
+ a.trigger(L.AUDIO_TRACK_LOADED, {
+ details: e,
+ track: r.levelOrTrack,
+ id: b || 0,
+ groupId: l || "",
+ stats: i,
+ networkDetails: s,
+ deliveryDirectives: p,
+ });
+ break;
+ case _0.SUBTITLE_TRACK:
+ a.trigger(L.SUBTITLE_TRACK_LOADED, {
+ details: e,
+ track: r.levelOrTrack,
+ id: b || 0,
+ groupId: l || "",
+ stats: i,
+ networkDetails: s,
+ deliveryDirectives: p,
+ });
+ break;
+ }
+ }
+}
+class Kn {
+ static get version() {
+ return Ds;
+ }
+ static isMSESupported() {
+ return z6();
+ }
+ static isSupported() {
+ return zC();
+ }
+ static getMediaSource() {
+ return En();
+ }
+ static get Events() {
+ return L;
+ }
+ static get MetadataSchema() {
+ return te;
+ }
+ static get ErrorTypes() {
+ return h0;
+ }
+ static get ErrorDetails() {
+ return $;
+ }
+ static get DefaultConfig() {
+ return Kn.defaultConfig ? Kn.defaultConfig : rC;
+ }
+ static set DefaultConfig(e) {
+ Kn.defaultConfig = e;
+ }
+ constructor(e = {}) {
+ ((this.config = void 0),
+ (this.userConfig = void 0),
+ (this.logger = void 0),
+ (this.coreComponents = void 0),
+ (this.networkControllers = void 0),
+ (this._emitter = new yM()),
+ (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.audioStreamController = void 0),
+ (this.subtititleStreamController = void 0),
+ (this.audioTrackController = void 0),
+ (this.subtitleTrackController = void 0),
+ (this.interstitialsController = void 0),
+ (this.gapController = void 0),
+ (this.emeController = void 0),
+ (this.cmcdController = void 0),
+ (this._media = null),
+ (this._url = null),
+ (this._sessionId = void 0),
+ (this.triggeringException = void 0),
+ (this.started = !1));
+ const n = (this.logger = EN(
+ e.debug || !1,
+ "Hls instance",
+ e.assetPlayerId,
+ )),
+ i = (this.config = oC(Kn.DefaultConfig, e, n));
+ ((this.userConfig = e), i.progressive && aC(i, n));
+ const {
+ abrController: r,
+ bufferController: s,
+ capLevelController: o,
+ errorController: a,
+ fpsController: u,
+ } = i,
+ c = new a(this),
+ b = (this.abrController = new r(this)),
+ l = new mB(this),
+ p = i.interstitialsController,
+ M = p ? (this.interstitialsController = new p(this, Kn)) : null,
+ d = (this.bufferController = new s(this, l)),
+ O = (this.capLevelController = new o(this)),
+ f = new u(this),
+ z = new gC(this),
+ g = i.contentSteeringController,
+ A = g ? new g(this) : null,
+ h = (this.levelController = new fC(this, A)),
+ q = new MC(this),
+ v = new qC(this.config, this.logger),
+ m = (this.streamController = new AC(this, l, v)),
+ E = (this.gapController = new pC(this, l));
+ (O.setStreamController(m), f.setStreamController(m));
+ const _ = [z, h, m];
+ (M && _.splice(1, 0, M),
+ A && _.splice(1, 0, A),
+ (this.networkControllers = _));
+ const T = [b, d, E, O, f, q, l];
+ this.audioTrackController = this.createController(
+ i.audioTrackController,
+ _,
+ );
+ const y = i.audioStreamController;
+ (y && _.push((this.audioStreamController = new y(this, l, v))),
+ (this.subtitleTrackController = this.createController(
+ i.subtitleTrackController,
+ _,
+ )));
+ const W = i.subtitleStreamController;
+ (W && _.push((this.subtititleStreamController = new W(this, l, v))),
+ this.createController(i.timelineController, T),
+ (v.emeController = this.emeController =
+ this.createController(i.emeController, T)),
+ (this.cmcdController = this.createController(i.cmcdController, T)),
+ (this.latencyController = this.createController(dC, T)),
+ (this.coreComponents = T),
+ _.push(c));
+ const x = c.onErrorOut;
+ (typeof x == "function" && this.on(L.ERROR, x, c),
+ this.on(L.MANIFEST_LOADED, z.onManifestLoaded, z));
+ }
+ createController(e, n) {
+ if (e) {
+ const i = new e(this);
+ return (n && n.push(i), i);
+ }
+ return null;
+ }
+ on(e, n, i = this) {
+ this._emitter.on(e, n, i);
+ }
+ once(e, n, i = this) {
+ this._emitter.once(e, n, i);
+ }
+ removeAllListeners(e) {
+ this._emitter.removeAllListeners(e);
+ }
+ off(e, n, i = this, r) {
+ this._emitter.off(e, n, i, r);
+ }
+ listeners(e) {
+ return this._emitter.listeners(e);
+ }
+ emit(e, n, i) {
+ return this._emitter.emit(e, n, i);
+ }
+ trigger(e, n) {
+ if (this.config.debug) return this.emit(e, e, n);
+ try {
+ return this.emit(e, e, n);
+ } catch (i) {
+ if (
+ (this.logger.error(
+ "An internal error happened while handling event " +
+ e +
+ '. Error message: "' +
+ i.message +
+ '". Here is a stacktrace:',
+ i,
+ ),
+ !this.triggeringException)
+ ) {
+ this.triggeringException = !0;
+ const r = e === L.ERROR;
+ (this.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.INTERNAL_EXCEPTION,
+ fatal: r,
+ event: e,
+ error: i,
+ }),
+ (this.triggeringException = !1));
+ }
+ }
+ return !1;
+ }
+ listenerCount(e) {
+ return this._emitter.listenerCount(e);
+ }
+ destroy() {
+ (this.logger.log("destroy"),
+ this.trigger(L.DESTROYING, void 0),
+ this.detachMedia(),
+ this.removeAllListeners(),
+ (this._autoLevelCapping = -1),
+ (this._url = null),
+ this.networkControllers.forEach((n) => n.destroy()),
+ (this.networkControllers.length = 0),
+ this.coreComponents.forEach((n) => n.destroy()),
+ (this.coreComponents.length = 0));
+ const e = this.config;
+ ((e.xhrSetup = e.fetchSetup = void 0), (this.userConfig = null));
+ }
+ attachMedia(e) {
+ if (!e || ("media" in e && !e.media)) {
+ const s = new Error(`attachMedia failed: invalid argument (${e})`);
+ this.trigger(L.ERROR, {
+ type: h0.OTHER_ERROR,
+ details: $.ATTACH_MEDIA_ERROR,
+ fatal: !0,
+ error: s,
+ });
+ return;
+ }
+ (this.logger.log("attachMedia"),
+ this._media &&
+ (this.logger.warn("media must be detached before attaching"),
+ this.detachMedia()));
+ const n = "media" in e,
+ i = n ? e.media : e,
+ r = n ? e : { media: i };
+ ((this._media = i), this.trigger(L.MEDIA_ATTACHING, r));
+ }
+ detachMedia() {
+ (this.logger.log("detachMedia"),
+ this.trigger(L.MEDIA_DETACHING, {}),
+ (this._media = null));
+ }
+ transferMedia() {
+ this._media = null;
+ const e = this.bufferController.transferMedia();
+ return (this.trigger(L.MEDIA_DETACHING, { transferMedia: e }), e);
+ }
+ loadSource(e) {
+ this.stopLoad();
+ const n = this.media,
+ i = this._url,
+ r = (this._url = dM.buildAbsoluteURL(self.location.href, e, {
+ alwaysNormalize: !0,
+ }));
+ ((this._autoLevelCapping = -1),
+ (this._maxHdcpLevel = null),
+ this.logger.log(`loadSource:${r}`),
+ n &&
+ i &&
+ (i !== r || this.bufferController.hasSourceTypes()) &&
+ (this.detachMedia(), this.attachMedia(n)),
+ this.trigger(L.MANIFEST_LOADING, { url: e }));
+ }
+ get url() {
+ return this._url;
+ }
+ get hasEnoughToStart() {
+ return this.streamController.hasEnoughToStart;
+ }
+ get startPosition() {
+ return this.streamController.startPositionValue;
+ }
+ startLoad(e = -1, n) {
+ (this.logger.log(`startLoad(${e + (n ? ", " : "")})`),
+ (this.started = !0),
+ this.resumeBuffering());
+ for (
+ let i = 0;
+ i < this.networkControllers.length &&
+ (this.networkControllers[i].startLoad(e, n),
+ !(!this.started || !this.networkControllers));
+ i++
+ );
+ }
+ stopLoad() {
+ (this.logger.log("stopLoad"), (this.started = !1));
+ for (
+ let e = 0;
+ e < this.networkControllers.length &&
+ (this.networkControllers[e].stopLoad(),
+ !(this.started || !this.networkControllers));
+ e++
+ );
+ }
+ get loadingEnabled() {
+ return this.started;
+ }
+ get bufferingEnabled() {
+ return this.streamController.bufferingEnabled;
+ }
+ resumeBuffering() {
+ this.bufferingEnabled ||
+ (this.logger.log("resume buffering"),
+ this.networkControllers.forEach((e) => {
+ e.resumeBuffering && e.resumeBuffering();
+ }));
+ }
+ pauseBuffering() {
+ this.bufferingEnabled &&
+ (this.logger.log("pause buffering"),
+ this.networkControllers.forEach((e) => {
+ e.pauseBuffering && e.pauseBuffering();
+ }));
+ }
+ get inFlightFragments() {
+ const e = { [z0.MAIN]: this.streamController.inFlightFrag };
+ return (
+ this.audioStreamController &&
+ (e[z0.AUDIO] = this.audioStreamController.inFlightFrag),
+ this.subtititleStreamController &&
+ (e[z0.SUBTITLE] = this.subtititleStreamController.inFlightFrag),
+ e
+ );
+ }
+ swapAudioCodec() {
+ (this.logger.log("swapAudioCodec"), this.streamController.swapAudioCodec());
+ }
+ recoverMediaError() {
+ this.logger.log("recoverMediaError");
+ const e = this._media,
+ n = e?.currentTime;
+ (this.detachMedia(), e && (this.attachMedia(e), n && this.startLoad(n)));
+ }
+ removeLevel(e) {
+ this.levelController.removeLevel(e);
+ }
+ get sessionId() {
+ let e = this._sessionId;
+ return (e || (e = this._sessionId = pD()), e);
+ }
+ get levels() {
+ const e = this.levelController.levels;
+ return e || [];
+ }
+ get latestLevelDetails() {
+ return this.streamController.getLevelDetails() || null;
+ }
+ get loadLevelObj() {
+ return this.levelController.loadLevelObj;
+ }
+ get currentLevel() {
+ return this.streamController.currentLevel;
+ }
+ set currentLevel(e) {
+ (this.logger.log(`set currentLevel:${e}`),
+ (this.levelController.manualLevel = e),
+ this.streamController.immediateLevelSwitch());
+ }
+ get nextLevel() {
+ return this.streamController.nextLevel;
+ }
+ set nextLevel(e) {
+ (this.logger.log(`set nextLevel:${e}`),
+ (this.levelController.manualLevel = e),
+ this.streamController.nextLevelSwitch());
+ }
+ get loadLevel() {
+ return this.levelController.level;
+ }
+ set loadLevel(e) {
+ (this.logger.log(`set loadLevel:${e}`),
+ (this.levelController.manualLevel = e));
+ }
+ get nextLoadLevel() {
+ return this.levelController.nextLoadLevel;
+ }
+ set nextLoadLevel(e) {
+ this.levelController.nextLoadLevel = e;
+ }
+ get firstLevel() {
+ return Math.max(this.levelController.firstLevel, this.minAutoLevel);
+ }
+ set firstLevel(e) {
+ (this.logger.log(`set firstLevel:${e}`),
+ (this.levelController.firstLevel = e));
+ }
+ get startLevel() {
+ const e = this.levelController.startLevel;
+ return e === -1 && this.abrController.forcedAutoLevel > -1
+ ? this.abrController.forcedAutoLevel
+ : e;
+ }
+ set startLevel(e) {
+ (this.logger.log(`set startLevel:${e}`),
+ e !== -1 && (e = Math.max(e, this.minAutoLevel)),
+ (this.levelController.startLevel = e));
+ }
+ get capLevelToPlayerSize() {
+ return this.config.capLevelToPlayerSize;
+ }
+ set capLevelToPlayerSize(e) {
+ const n = !!e;
+ n !== this.config.capLevelToPlayerSize &&
+ (n
+ ? this.capLevelController.startCapping()
+ : (this.capLevelController.stopCapping(),
+ (this.autoLevelCapping = -1),
+ this.streamController.nextLevelSwitch()),
+ (this.config.capLevelToPlayerSize = n));
+ }
+ get autoLevelCapping() {
+ return this._autoLevelCapping;
+ }
+ get bandwidthEstimate() {
+ const { bwEstimator: e } = this.abrController;
+ return e ? e.getEstimate() : NaN;
+ }
+ set bandwidthEstimate(e) {
+ this.abrController.resetEstimator(e);
+ }
+ get abrEwmaDefaultEstimate() {
+ const { bwEstimator: e } = this.abrController;
+ return e ? e.defaultEstimate : NaN;
+ }
+ get ttfbEstimate() {
+ const { bwEstimator: e } = this.abrController;
+ return e ? e.getEstimateTTFB() : NaN;
+ }
+ set autoLevelCapping(e) {
+ this._autoLevelCapping !== e &&
+ (this.logger.log(`set autoLevelCapping:${e}`),
+ (this._autoLevelCapping = e),
+ this.levelController.checkMaxAutoUpdated());
+ }
+ get maxHdcpLevel() {
+ return this._maxHdcpLevel;
+ }
+ set maxHdcpLevel(e) {
+ oB(e) &&
+ this._maxHdcpLevel !== e &&
+ ((this._maxHdcpLevel = e), this.levelController.checkMaxAutoUpdated());
+ }
+ get autoLevelEnabled() {
+ return this.levelController.manualLevel === -1;
+ }
+ get manualLevel() {
+ return this.levelController.manualLevel;
+ }
+ get minAutoLevel() {
+ const {
+ levels: e,
+ config: { minAutoBitrate: n },
+ } = this;
+ if (!e) return 0;
+ const i = e.length;
+ for (let r = 0; r < i; r++) if (e[r].maxBitrate >= n) return r;
+ return 0;
+ }
+ get maxAutoLevel() {
+ const { levels: e, autoLevelCapping: n, maxHdcpLevel: i } = this;
+ let r;
+ if ((n === -1 && e != null && e.length ? (r = e.length - 1) : (r = n), i))
+ for (let s = r; s--; ) {
+ const o = e[s].attrs["HDCP-LEVEL"];
+ if (o && o <= i) return s;
+ }
+ return r;
+ }
+ get firstAutoLevel() {
+ return this.abrController.firstAutoLevel;
+ }
+ get nextAutoLevel() {
+ return this.abrController.nextAutoLevel;
+ }
+ set nextAutoLevel(e) {
+ this.abrController.nextAutoLevel = e;
+ }
+ get playingDate() {
+ return this.streamController.currentProgramDateTime;
+ }
+ get mainForwardBufferInfo() {
+ return this.streamController.getMainFwdBufferInfo();
+ }
+ get maxBufferLength() {
+ return this.streamController.maxBufferLength;
+ }
+ setAudioOption(e) {
+ var n;
+ return (
+ ((n = this.audioTrackController) == null
+ ? void 0
+ : n.setAudioOption(e)) || null
+ );
+ }
+ setSubtitleOption(e) {
+ var n;
+ return (
+ ((n = this.subtitleTrackController) == null
+ ? void 0
+ : n.setSubtitleOption(e)) || null
+ );
+ }
+ get allAudioTracks() {
+ const e = this.audioTrackController;
+ return e ? e.allAudioTracks : [];
+ }
+ get audioTracks() {
+ const e = this.audioTrackController;
+ return e ? e.audioTracks : [];
+ }
+ get audioTrack() {
+ const e = this.audioTrackController;
+ return e ? e.audioTrack : -1;
+ }
+ set audioTrack(e) {
+ const n = this.audioTrackController;
+ n && (n.audioTrack = e);
+ }
+ get allSubtitleTracks() {
+ const e = this.subtitleTrackController;
+ return e ? e.allSubtitleTracks : [];
+ }
+ get subtitleTracks() {
+ const e = this.subtitleTrackController;
+ return e ? e.subtitleTracks : [];
+ }
+ get subtitleTrack() {
+ const e = this.subtitleTrackController;
+ return e ? e.subtitleTrack : -1;
+ }
+ get media() {
+ return this._media;
+ }
+ set subtitleTrack(e) {
+ const n = this.subtitleTrackController;
+ n && (n.subtitleTrack = e);
+ }
+ get subtitleDisplay() {
+ const e = this.subtitleTrackController;
+ return e ? e.subtitleDisplay : !1;
+ }
+ set subtitleDisplay(e) {
+ const n = this.subtitleTrackController;
+ n && (n.subtitleDisplay = e);
+ }
+ get lowLatencyMode() {
+ return this.config.lowLatencyMode;
+ }
+ set lowLatencyMode(e) {
+ this.config.lowLatencyMode = e;
+ }
+ get liveSyncPosition() {
+ return this.latencyController.liveSyncPosition;
+ }
+ get latency() {
+ return this.latencyController.latency;
+ }
+ get maxLatency() {
+ return this.latencyController.maxLatency;
+ }
+ get targetLatency() {
+ return this.latencyController.targetLatency;
+ }
+ set targetLatency(e) {
+ this.latencyController.targetLatency = e;
+ }
+ get drift() {
+ return this.latencyController.drift;
+ }
+ get forceStartLoad() {
+ return this.streamController.forceStartLoad;
+ }
+ get pathways() {
+ return this.levelController.pathways;
+ }
+ get pathwayPriority() {
+ return this.levelController.pathwayPriority;
+ }
+ set pathwayPriority(e) {
+ this.levelController.pathwayPriority = e;
+ }
+ get bufferedToEnd() {
+ var e;
+ return !!((e = this.bufferController) != null && e.bufferedToEnd);
+ }
+ get interstitialsManager() {
+ var e;
+ return (
+ ((e = this.interstitialsController) == null
+ ? void 0
+ : e.interstitialsManager) || null
+ );
+ }
+ getMediaDecodingInfo(e, n = this.allAudioTracks) {
+ const i = sg(n);
+ return ig(e, i, navigator.mediaCapabilities);
+ }
+}
+Kn.defaultConfig = void 0;
+var Cu = {},
+ Le = {};
+const mC = "Á",
+ WC = "á",
+ RC = "Ă",
+ yC = "ă",
+ LC = "∾",
+ vC = "∿",
+ EC = "∾̳",
+ TC = "Â",
+ _C = "â",
+ xC = "´",
+ SC = "А",
+ wC = "а",
+ NC = "Æ",
+ BC = "æ",
+ IC = "",
+ DC = "𝔄",
+ CC = "𝔞",
+ kC = "À",
+ PC = "à",
+ XC = "ℵ",
+ FC = "ℵ",
+ UC = "Α",
+ $C = "α",
+ HC = "Ā",
+ GC = "ā",
+ VC = "⨿",
+ jC = "&",
+ KC = "&",
+ YC = "⩕",
+ QC = "⩓",
+ JC = "∧",
+ ZC = "⩜",
+ ek = "⩘",
+ tk = "⩚",
+ nk = "∠",
+ ik = "⦤",
+ rk = "∠",
+ sk = "⦨",
+ ok = "⦩",
+ ak = "⦪",
+ ck = "⦫",
+ uk = "⦬",
+ bk = "⦭",
+ pk = "⦮",
+ lk = "⦯",
+ Mk = "∡",
+ dk = "∟",
+ fk = "⊾",
+ zk = "⦝",
+ Ok = "∢",
+ hk = "Å",
+ Ak = "⍼",
+ qk = "Ą",
+ gk = "ą",
+ mk = "𝔸",
+ Wk = "𝕒",
+ Rk = "⩯",
+ yk = "≈",
+ Lk = "⩰",
+ vk = "≊",
+ Ek = "≋",
+ Tk = "'",
+ _k = "",
+ xk = "≈",
+ Sk = "≊",
+ wk = "Å",
+ Nk = "å",
+ Bk = "𝒜",
+ Ik = "𝒶",
+ Dk = "≔",
+ Ck = "*",
+ kk = "≈",
+ Pk = "≍",
+ Xk = "Ã",
+ Fk = "ã",
+ Uk = "Ä",
+ $k = "ä",
+ Hk = "∳",
+ Gk = "⨑",
+ Vk = "≌",
+ jk = "϶",
+ Kk = "‵",
+ Yk = "∽",
+ Qk = "⋍",
+ Jk = "∖",
+ Zk = "⫧",
+ eP = "⊽",
+ tP = "⌅",
+ nP = "⌆",
+ iP = "⌅",
+ rP = "⎵",
+ sP = "⎶",
+ oP = "≌",
+ aP = "Б",
+ cP = "б",
+ uP = "„",
+ bP = "∵",
+ pP = "∵",
+ lP = "∵",
+ MP = "⦰",
+ dP = "϶",
+ fP = "ℬ",
+ zP = "ℬ",
+ OP = "Β",
+ hP = "β",
+ AP = "ℶ",
+ qP = "≬",
+ gP = "𝔅",
+ mP = "𝔟",
+ WP = "⋂",
+ RP = "◯",
+ yP = "⋃",
+ LP = "⨀",
+ vP = "⨁",
+ EP = "⨂",
+ TP = "⨆",
+ _P = "★",
+ xP = "▽",
+ SP = "△",
+ wP = "⨄",
+ NP = "⋁",
+ BP = "⋀",
+ IP = "⤍",
+ DP = "⧫",
+ CP = "▪",
+ kP = "▴",
+ PP = "▾",
+ XP = "◂",
+ FP = "▸",
+ UP = "␣",
+ $P = "▒",
+ HP = "░",
+ GP = "▓",
+ VP = "█",
+ jP = "=⃥",
+ KP = "≡⃥",
+ YP = "⫭",
+ QP = "⌐",
+ JP = "𝔹",
+ ZP = "𝕓",
+ eX = "⊥",
+ tX = "⊥",
+ nX = "⋈",
+ iX = "⧉",
+ rX = "┐",
+ sX = "╕",
+ oX = "╖",
+ aX = "╗",
+ cX = "┌",
+ uX = "╒",
+ bX = "╓",
+ pX = "╔",
+ lX = "─",
+ MX = "═",
+ dX = "┬",
+ fX = "╤",
+ zX = "╥",
+ OX = "╦",
+ hX = "┴",
+ AX = "╧",
+ qX = "╨",
+ gX = "╩",
+ mX = "⊟",
+ WX = "⊞",
+ RX = "⊠",
+ yX = "┘",
+ LX = "╛",
+ vX = "╜",
+ EX = "╝",
+ TX = "└",
+ _X = "╘",
+ xX = "╙",
+ SX = "╚",
+ wX = "│",
+ NX = "║",
+ BX = "┼",
+ IX = "╪",
+ DX = "╫",
+ CX = "╬",
+ kX = "┤",
+ PX = "╡",
+ XX = "╢",
+ FX = "╣",
+ UX = "├",
+ $X = "╞",
+ HX = "╟",
+ GX = "╠",
+ VX = "‵",
+ jX = "˘",
+ KX = "˘",
+ YX = "¦",
+ QX = "𝒷",
+ JX = "ℬ",
+ ZX = "⁏",
+ eF = "∽",
+ tF = "⋍",
+ nF = "⧅",
+ iF = "\\",
+ rF = "⟈",
+ sF = "•",
+ oF = "•",
+ aF = "≎",
+ cF = "⪮",
+ uF = "≏",
+ bF = "≎",
+ pF = "≏",
+ lF = "Ć",
+ MF = "ć",
+ dF = "⩄",
+ fF = "⩉",
+ zF = "⩋",
+ OF = "∩",
+ hF = "⋒",
+ AF = "⩇",
+ qF = "⩀",
+ gF = "ⅅ",
+ mF = "∩︀",
+ WF = "⁁",
+ RF = "ˇ",
+ yF = "ℭ",
+ LF = "⩍",
+ vF = "Č",
+ EF = "č",
+ TF = "Ç",
+ _F = "ç",
+ xF = "Ĉ",
+ SF = "ĉ",
+ wF = "∰",
+ NF = "⩌",
+ BF = "⩐",
+ IF = "Ċ",
+ DF = "ċ",
+ CF = "¸",
+ kF = "¸",
+ PF = "⦲",
+ XF = "¢",
+ FF = "·",
+ UF = "·",
+ $F = "𝔠",
+ HF = "ℭ",
+ GF = "Ч",
+ VF = "ч",
+ jF = "✓",
+ KF = "✓",
+ YF = "Χ",
+ QF = "χ",
+ JF = "ˆ",
+ ZF = "≗",
+ eU = "↺",
+ tU = "↻",
+ nU = "⊛",
+ iU = "⊚",
+ rU = "⊝",
+ sU = "⊙",
+ oU = "®",
+ aU = "Ⓢ",
+ cU = "⊖",
+ uU = "⊕",
+ bU = "⊗",
+ pU = "○",
+ lU = "⧃",
+ MU = "≗",
+ dU = "⨐",
+ fU = "⫯",
+ zU = "⧂",
+ OU = "∲",
+ hU = "”",
+ AU = "’",
+ qU = "♣",
+ gU = "♣",
+ mU = ":",
+ WU = "∷",
+ RU = "⩴",
+ yU = "≔",
+ LU = "≔",
+ vU = ",",
+ EU = "@",
+ TU = "∁",
+ _U = "∘",
+ xU = "∁",
+ SU = "ℂ",
+ wU = "≅",
+ NU = "⩭",
+ BU = "≡",
+ IU = "∮",
+ DU = "∯",
+ CU = "∮",
+ kU = "𝕔",
+ PU = "ℂ",
+ XU = "∐",
+ FU = "∐",
+ UU = "©",
+ $U = "©",
+ HU = "℗",
+ GU = "∳",
+ VU = "↵",
+ jU = "✗",
+ KU = "⨯",
+ YU = "𝒞",
+ QU = "𝒸",
+ JU = "⫏",
+ ZU = "⫑",
+ e$ = "⫐",
+ t$ = "⫒",
+ n$ = "⋯",
+ i$ = "⤸",
+ r$ = "⤵",
+ s$ = "⋞",
+ o$ = "⋟",
+ a$ = "↶",
+ c$ = "⤽",
+ u$ = "⩈",
+ b$ = "⩆",
+ p$ = "≍",
+ l$ = "∪",
+ M$ = "⋓",
+ d$ = "⩊",
+ f$ = "⊍",
+ z$ = "⩅",
+ O$ = "∪︀",
+ h$ = "↷",
+ A$ = "⤼",
+ q$ = "⋞",
+ g$ = "⋟",
+ m$ = "⋎",
+ W$ = "⋏",
+ R$ = "¤",
+ y$ = "↶",
+ L$ = "↷",
+ v$ = "⋎",
+ E$ = "⋏",
+ T$ = "∲",
+ _$ = "∱",
+ x$ = "⌭",
+ S$ = "†",
+ w$ = "‡",
+ N$ = "ℸ",
+ B$ = "↓",
+ I$ = "↡",
+ D$ = "⇓",
+ C$ = "‐",
+ k$ = "⫤",
+ P$ = "⊣",
+ X$ = "⤏",
+ F$ = "˝",
+ U$ = "Ď",
+ $$ = "ď",
+ H$ = "Д",
+ G$ = "д",
+ V$ = "‡",
+ j$ = "⇊",
+ K$ = "ⅅ",
+ Y$ = "ⅆ",
+ Q$ = "⤑",
+ J$ = "⩷",
+ Z$ = "°",
+ eH = "∇",
+ tH = "Δ",
+ nH = "δ",
+ iH = "⦱",
+ rH = "⥿",
+ sH = "𝔇",
+ oH = "𝔡",
+ aH = "⥥",
+ cH = "⇃",
+ uH = "⇂",
+ bH = "´",
+ pH = "˙",
+ lH = "˝",
+ MH = "`",
+ dH = "˜",
+ fH = "⋄",
+ zH = "⋄",
+ OH = "⋄",
+ hH = "♦",
+ AH = "♦",
+ qH = "¨",
+ gH = "ⅆ",
+ mH = "ϝ",
+ WH = "⋲",
+ RH = "÷",
+ yH = "÷",
+ LH = "⋇",
+ vH = "⋇",
+ EH = "Ђ",
+ TH = "ђ",
+ _H = "⌞",
+ xH = "⌍",
+ SH = "$",
+ wH = "𝔻",
+ NH = "𝕕",
+ BH = "¨",
+ IH = "˙",
+ DH = "⃜",
+ CH = "≐",
+ kH = "≑",
+ PH = "≐",
+ XH = "∸",
+ FH = "∔",
+ UH = "⊡",
+ $H = "⌆",
+ HH = "∯",
+ GH = "¨",
+ VH = "⇓",
+ jH = "⇐",
+ KH = "⇔",
+ YH = "⫤",
+ QH = "⟸",
+ JH = "⟺",
+ ZH = "⟹",
+ eG = "⇒",
+ tG = "⊨",
+ nG = "⇑",
+ iG = "⇕",
+ rG = "∥",
+ sG = "⤓",
+ oG = "↓",
+ aG = "↓",
+ cG = "⇓",
+ uG = "⇵",
+ bG = "̑",
+ pG = "⇊",
+ lG = "⇃",
+ MG = "⇂",
+ dG = "⥐",
+ fG = "⥞",
+ zG = "⥖",
+ OG = "↽",
+ hG = "⥟",
+ AG = "⥗",
+ qG = "⇁",
+ gG = "↧",
+ mG = "⊤",
+ WG = "⤐",
+ RG = "⌟",
+ yG = "⌌",
+ LG = "𝒟",
+ vG = "𝒹",
+ EG = "Ѕ",
+ TG = "ѕ",
+ _G = "⧶",
+ xG = "Đ",
+ SG = "đ",
+ wG = "⋱",
+ NG = "▿",
+ BG = "▾",
+ IG = "⇵",
+ DG = "⥯",
+ CG = "⦦",
+ kG = "Џ",
+ PG = "џ",
+ XG = "⟿",
+ FG = "É",
+ UG = "é",
+ $G = "⩮",
+ HG = "Ě",
+ GG = "ě",
+ VG = "Ê",
+ jG = "ê",
+ KG = "≖",
+ YG = "≕",
+ QG = "Э",
+ JG = "э",
+ ZG = "⩷",
+ eV = "Ė",
+ tV = "ė",
+ nV = "≑",
+ iV = "ⅇ",
+ rV = "≒",
+ sV = "𝔈",
+ oV = "𝔢",
+ aV = "⪚",
+ cV = "È",
+ uV = "è",
+ bV = "⪖",
+ pV = "⪘",
+ lV = "⪙",
+ MV = "∈",
+ dV = "⏧",
+ fV = "ℓ",
+ zV = "⪕",
+ OV = "⪗",
+ hV = "Ē",
+ AV = "ē",
+ qV = "∅",
+ gV = "∅",
+ mV = "◻",
+ WV = "∅",
+ RV = "▫",
+ yV = " ",
+ LV = " ",
+ vV = " ",
+ EV = "Ŋ",
+ TV = "ŋ",
+ _V = " ",
+ xV = "Ę",
+ SV = "ę",
+ wV = "𝔼",
+ NV = "𝕖",
+ BV = "⋕",
+ IV = "⧣",
+ DV = "⩱",
+ CV = "ε",
+ kV = "Ε",
+ PV = "ε",
+ XV = "ϵ",
+ FV = "≖",
+ UV = "≕",
+ $V = "≂",
+ HV = "⪖",
+ GV = "⪕",
+ VV = "⩵",
+ jV = "=",
+ KV = "≂",
+ YV = "≟",
+ QV = "⇌",
+ JV = "≡",
+ ZV = "⩸",
+ ej = "⧥",
+ tj = "⥱",
+ nj = "≓",
+ ij = "ℯ",
+ rj = "ℰ",
+ sj = "≐",
+ oj = "⩳",
+ aj = "≂",
+ cj = "Η",
+ uj = "η",
+ bj = "Ð",
+ pj = "ð",
+ lj = "Ë",
+ Mj = "ë",
+ dj = "€",
+ fj = "!",
+ zj = "∃",
+ Oj = "∃",
+ hj = "ℰ",
+ Aj = "ⅇ",
+ qj = "ⅇ",
+ gj = "≒",
+ mj = "Ф",
+ Wj = "ф",
+ Rj = "♀",
+ yj = "ffi",
+ Lj = "ff",
+ vj = "ffl",
+ Ej = "𝔉",
+ Tj = "𝔣",
+ _j = "fi",
+ xj = "◼",
+ Sj = "▪",
+ wj = "fj",
+ Nj = "♭",
+ Bj = "fl",
+ Ij = "▱",
+ Dj = "ƒ",
+ Cj = "𝔽",
+ kj = "𝕗",
+ Pj = "∀",
+ Xj = "∀",
+ Fj = "⋔",
+ Uj = "⫙",
+ $j = "ℱ",
+ Hj = "⨍",
+ Gj = "½",
+ Vj = "⅓",
+ jj = "¼",
+ Kj = "⅕",
+ Yj = "⅙",
+ Qj = "⅛",
+ Jj = "⅔",
+ Zj = "⅖",
+ eK = "¾",
+ tK = "⅗",
+ nK = "⅜",
+ iK = "⅘",
+ rK = "⅚",
+ sK = "⅝",
+ oK = "⅞",
+ aK = "⁄",
+ cK = "⌢",
+ uK = "𝒻",
+ bK = "ℱ",
+ pK = "ǵ",
+ lK = "Γ",
+ MK = "γ",
+ dK = "Ϝ",
+ fK = "ϝ",
+ zK = "⪆",
+ OK = "Ğ",
+ hK = "ğ",
+ AK = "Ģ",
+ qK = "Ĝ",
+ gK = "ĝ",
+ mK = "Г",
+ WK = "г",
+ RK = "Ġ",
+ yK = "ġ",
+ LK = "≥",
+ vK = "≧",
+ EK = "⪌",
+ TK = "⋛",
+ _K = "≥",
+ xK = "≧",
+ SK = "⩾",
+ wK = "⪩",
+ NK = "⩾",
+ BK = "⪀",
+ IK = "⪂",
+ DK = "⪄",
+ CK = "⋛︀",
+ kK = "⪔",
+ PK = "𝔊",
+ XK = "𝔤",
+ FK = "≫",
+ UK = "⋙",
+ $K = "⋙",
+ HK = "ℷ",
+ GK = "Ѓ",
+ VK = "ѓ",
+ jK = "⪥",
+ KK = "≷",
+ YK = "⪒",
+ QK = "⪤",
+ JK = "⪊",
+ ZK = "⪊",
+ eY = "⪈",
+ tY = "≩",
+ nY = "⪈",
+ iY = "≩",
+ rY = "⋧",
+ sY = "𝔾",
+ oY = "𝕘",
+ aY = "`",
+ cY = "≥",
+ uY = "⋛",
+ bY = "≧",
+ pY = "⪢",
+ lY = "≷",
+ MY = "⩾",
+ dY = "≳",
+ fY = "𝒢",
+ zY = "ℊ",
+ OY = "≳",
+ hY = "⪎",
+ AY = "⪐",
+ qY = "⪧",
+ gY = "⩺",
+ mY = ">",
+ WY = ">",
+ RY = "≫",
+ yY = "⋗",
+ LY = "⦕",
+ vY = "⩼",
+ EY = "⪆",
+ TY = "⥸",
+ _Y = "⋗",
+ xY = "⋛",
+ SY = "⪌",
+ wY = "≷",
+ NY = "≳",
+ BY = "≩︀",
+ IY = "≩︀",
+ DY = "ˇ",
+ CY = " ",
+ kY = "½",
+ PY = "ℋ",
+ XY = "Ъ",
+ FY = "ъ",
+ UY = "⥈",
+ $Y = "↔",
+ HY = "⇔",
+ GY = "↭",
+ VY = "^",
+ jY = "ℏ",
+ KY = "Ĥ",
+ YY = "ĥ",
+ QY = "♥",
+ JY = "♥",
+ ZY = "…",
+ eQ = "⊹",
+ tQ = "𝔥",
+ nQ = "ℌ",
+ iQ = "ℋ",
+ rQ = "⤥",
+ sQ = "⤦",
+ oQ = "⇿",
+ aQ = "∻",
+ cQ = "↩",
+ uQ = "↪",
+ bQ = "𝕙",
+ pQ = "ℍ",
+ lQ = "―",
+ MQ = "─",
+ dQ = "𝒽",
+ fQ = "ℋ",
+ zQ = "ℏ",
+ OQ = "Ħ",
+ hQ = "ħ",
+ AQ = "≎",
+ qQ = "≏",
+ gQ = "⁃",
+ mQ = "‐",
+ WQ = "Í",
+ RQ = "í",
+ yQ = "",
+ LQ = "Î",
+ vQ = "î",
+ EQ = "И",
+ TQ = "и",
+ _Q = "İ",
+ xQ = "Е",
+ SQ = "е",
+ wQ = "¡",
+ NQ = "⇔",
+ BQ = "𝔦",
+ IQ = "ℑ",
+ DQ = "Ì",
+ CQ = "ì",
+ kQ = "ⅈ",
+ PQ = "⨌",
+ XQ = "∭",
+ FQ = "⧜",
+ UQ = "℩",
+ $Q = "IJ",
+ HQ = "ij",
+ GQ = "Ī",
+ VQ = "ī",
+ jQ = "ℑ",
+ KQ = "ⅈ",
+ YQ = "ℐ",
+ QQ = "ℑ",
+ JQ = "ı",
+ ZQ = "ℑ",
+ eJ = "⊷",
+ tJ = "Ƶ",
+ nJ = "⇒",
+ iJ = "℅",
+ rJ = "∞",
+ sJ = "⧝",
+ oJ = "ı",
+ aJ = "⊺",
+ cJ = "∫",
+ uJ = "∬",
+ bJ = "ℤ",
+ pJ = "∫",
+ lJ = "⊺",
+ MJ = "⋂",
+ dJ = "⨗",
+ fJ = "⨼",
+ zJ = "",
+ OJ = "",
+ hJ = "Ё",
+ AJ = "ё",
+ qJ = "Į",
+ gJ = "į",
+ mJ = "𝕀",
+ WJ = "𝕚",
+ RJ = "Ι",
+ yJ = "ι",
+ LJ = "⨼",
+ vJ = "¿",
+ EJ = "𝒾",
+ TJ = "ℐ",
+ _J = "∈",
+ xJ = "⋵",
+ SJ = "⋹",
+ wJ = "⋴",
+ NJ = "⋳",
+ BJ = "∈",
+ IJ = "",
+ DJ = "Ĩ",
+ CJ = "ĩ",
+ kJ = "І",
+ PJ = "і",
+ XJ = "Ï",
+ FJ = "ï",
+ UJ = "Ĵ",
+ $J = "ĵ",
+ HJ = "Й",
+ GJ = "й",
+ VJ = "𝔍",
+ jJ = "𝔧",
+ KJ = "ȷ",
+ YJ = "𝕁",
+ QJ = "𝕛",
+ JJ = "𝒥",
+ ZJ = "𝒿",
+ eZ = "Ј",
+ tZ = "ј",
+ nZ = "Є",
+ iZ = "є",
+ rZ = "Κ",
+ sZ = "κ",
+ oZ = "ϰ",
+ aZ = "Ķ",
+ cZ = "ķ",
+ uZ = "К",
+ bZ = "к",
+ pZ = "𝔎",
+ lZ = "𝔨",
+ MZ = "ĸ",
+ dZ = "Х",
+ fZ = "х",
+ zZ = "Ќ",
+ OZ = "ќ",
+ hZ = "𝕂",
+ AZ = "𝕜",
+ qZ = "𝒦",
+ gZ = "𝓀",
+ mZ = "⇚",
+ WZ = "Ĺ",
+ RZ = "ĺ",
+ yZ = "⦴",
+ LZ = "ℒ",
+ vZ = "Λ",
+ EZ = "λ",
+ TZ = "⟨",
+ _Z = "⟪",
+ xZ = "⦑",
+ SZ = "⟨",
+ wZ = "⪅",
+ NZ = "ℒ",
+ BZ = "«",
+ IZ = "⇤",
+ DZ = "⤟",
+ CZ = "←",
+ kZ = "↞",
+ PZ = "⇐",
+ XZ = "⤝",
+ FZ = "↩",
+ UZ = "↫",
+ $Z = "⤹",
+ HZ = "⥳",
+ GZ = "↢",
+ VZ = "⤙",
+ jZ = "⤛",
+ KZ = "⪫",
+ YZ = "⪭",
+ QZ = "⪭︀",
+ JZ = "⤌",
+ ZZ = "⤎",
+ e00 = "❲",
+ t00 = "{",
+ n00 = "[",
+ i00 = "⦋",
+ r00 = "⦏",
+ s00 = "⦍",
+ o00 = "Ľ",
+ a00 = "ľ",
+ c00 = "Ļ",
+ u00 = "ļ",
+ b00 = "⌈",
+ p00 = "{",
+ l00 = "Л",
+ M00 = "л",
+ d00 = "⤶",
+ f00 = "“",
+ z00 = "„",
+ O00 = "⥧",
+ h00 = "⥋",
+ A00 = "↲",
+ q00 = "≤",
+ g00 = "≦",
+ m00 = "⟨",
+ W00 = "⇤",
+ R00 = "←",
+ y00 = "←",
+ L00 = "⇐",
+ v00 = "⇆",
+ E00 = "↢",
+ T00 = "⌈",
+ _00 = "⟦",
+ x00 = "⥡",
+ S00 = "⥙",
+ w00 = "⇃",
+ N00 = "⌊",
+ B00 = "↽",
+ I00 = "↼",
+ D00 = "⇇",
+ C00 = "↔",
+ k00 = "↔",
+ P00 = "⇔",
+ X00 = "⇆",
+ F00 = "⇋",
+ U00 = "↭",
+ $00 = "⥎",
+ H00 = "↤",
+ G00 = "⊣",
+ V00 = "⥚",
+ j00 = "⋋",
+ K00 = "⧏",
+ Y00 = "⊲",
+ Q00 = "⊴",
+ J00 = "⥑",
+ Z00 = "⥠",
+ e10 = "⥘",
+ t10 = "↿",
+ n10 = "⥒",
+ i10 = "↼",
+ r10 = "⪋",
+ s10 = "⋚",
+ o10 = "≤",
+ a10 = "≦",
+ c10 = "⩽",
+ u10 = "⪨",
+ b10 = "⩽",
+ p10 = "⩿",
+ l10 = "⪁",
+ M10 = "⪃",
+ d10 = "⋚︀",
+ f10 = "⪓",
+ z10 = "⪅",
+ O10 = "⋖",
+ h10 = "⋚",
+ A10 = "⪋",
+ q10 = "⋚",
+ g10 = "≦",
+ m10 = "≶",
+ W10 = "≶",
+ R10 = "⪡",
+ y10 = "≲",
+ L10 = "⩽",
+ v10 = "≲",
+ E10 = "⥼",
+ T10 = "⌊",
+ _10 = "𝔏",
+ x10 = "𝔩",
+ S10 = "≶",
+ w10 = "⪑",
+ N10 = "⥢",
+ B10 = "↽",
+ I10 = "↼",
+ D10 = "⥪",
+ C10 = "▄",
+ k10 = "Љ",
+ P10 = "љ",
+ X10 = "⇇",
+ F10 = "≪",
+ U10 = "⋘",
+ $10 = "⌞",
+ H10 = "⇚",
+ G10 = "⥫",
+ V10 = "◺",
+ j10 = "Ŀ",
+ K10 = "ŀ",
+ Y10 = "⎰",
+ Q10 = "⎰",
+ J10 = "⪉",
+ Z10 = "⪉",
+ ee0 = "⪇",
+ te0 = "≨",
+ ne0 = "⪇",
+ ie0 = "≨",
+ re0 = "⋦",
+ se0 = "⟬",
+ oe0 = "⇽",
+ ae0 = "⟦",
+ ce0 = "⟵",
+ ue0 = "⟵",
+ be0 = "⟸",
+ pe0 = "⟷",
+ le0 = "⟷",
+ Me0 = "⟺",
+ de0 = "⟼",
+ fe0 = "⟶",
+ ze0 = "⟶",
+ Oe0 = "⟹",
+ he0 = "↫",
+ Ae0 = "↬",
+ qe0 = "⦅",
+ ge0 = "𝕃",
+ me0 = "𝕝",
+ We0 = "⨭",
+ Re0 = "⨴",
+ ye0 = "∗",
+ Le0 = "_",
+ ve0 = "↙",
+ Ee0 = "↘",
+ Te0 = "◊",
+ _e0 = "◊",
+ xe0 = "⧫",
+ Se0 = "(",
+ we0 = "⦓",
+ Ne0 = "⇆",
+ Be0 = "⌟",
+ Ie0 = "⇋",
+ De0 = "⥭",
+ Ce0 = "",
+ ke0 = "⊿",
+ Pe0 = "‹",
+ Xe0 = "𝓁",
+ Fe0 = "ℒ",
+ Ue0 = "↰",
+ $e0 = "↰",
+ He0 = "≲",
+ Ge0 = "⪍",
+ Ve0 = "⪏",
+ je0 = "[",
+ Ke0 = "‘",
+ Ye0 = "‚",
+ Qe0 = "Ł",
+ Je0 = "ł",
+ Ze0 = "⪦",
+ et0 = "⩹",
+ tt0 = "<",
+ nt0 = "<",
+ it0 = "≪",
+ rt0 = "⋖",
+ st0 = "⋋",
+ ot0 = "⋉",
+ at0 = "⥶",
+ ct0 = "⩻",
+ ut0 = "◃",
+ bt0 = "⊴",
+ pt0 = "◂",
+ lt0 = "⦖",
+ Mt0 = "⥊",
+ dt0 = "⥦",
+ ft0 = "≨︀",
+ zt0 = "≨︀",
+ Ot0 = "¯",
+ ht0 = "♂",
+ At0 = "✠",
+ qt0 = "✠",
+ gt0 = "↦",
+ mt0 = "↦",
+ Wt0 = "↧",
+ Rt0 = "↤",
+ yt0 = "↥",
+ Lt0 = "▮",
+ vt0 = "⨩",
+ Et0 = "М",
+ Tt0 = "м",
+ _t0 = "—",
+ xt0 = "∺",
+ St0 = "∡",
+ wt0 = " ",
+ Nt0 = "ℳ",
+ Bt0 = "𝔐",
+ It0 = "𝔪",
+ Dt0 = "℧",
+ Ct0 = "µ",
+ kt0 = "*",
+ Pt0 = "⫰",
+ Xt0 = "∣",
+ Ft0 = "·",
+ Ut0 = "⊟",
+ $t0 = "−",
+ Ht0 = "∸",
+ Gt0 = "⨪",
+ Vt0 = "∓",
+ jt0 = "⫛",
+ Kt0 = "…",
+ Yt0 = "∓",
+ Qt0 = "⊧",
+ Jt0 = "𝕄",
+ Zt0 = "𝕞",
+ en0 = "∓",
+ tn0 = "𝓂",
+ nn0 = "ℳ",
+ in0 = "∾",
+ rn0 = "Μ",
+ sn0 = "μ",
+ on0 = "⊸",
+ an0 = "⊸",
+ cn0 = "∇",
+ un0 = "Ń",
+ bn0 = "ń",
+ pn0 = "∠⃒",
+ ln0 = "≉",
+ Mn0 = "⩰̸",
+ dn0 = "≋̸",
+ fn0 = "ʼn",
+ zn0 = "≉",
+ On0 = "♮",
+ hn0 = "ℕ",
+ An0 = "♮",
+ qn0 = " ",
+ gn0 = "≎̸",
+ mn0 = "≏̸",
+ Wn0 = "⩃",
+ Rn0 = "Ň",
+ yn0 = "ň",
+ Ln0 = "Ņ",
+ vn0 = "ņ",
+ En0 = "≇",
+ Tn0 = "⩭̸",
+ _n0 = "⩂",
+ xn0 = "Н",
+ Sn0 = "н",
+ wn0 = "–",
+ Nn0 = "⤤",
+ Bn0 = "↗",
+ In0 = "⇗",
+ Dn0 = "↗",
+ Cn0 = "≠",
+ kn0 = "≐̸",
+ Pn0 = "",
+ Xn0 = "",
+ Fn0 = "",
+ Un0 = "",
+ $n0 = "≢",
+ Hn0 = "⤨",
+ Gn0 = "≂̸",
+ Vn0 = "≫",
+ jn0 = "≪",
+ Kn0 = `
+`,
+ Yn0 = "∄",
+ Qn0 = "∄",
+ Jn0 = "𝔑",
+ Zn0 = "𝔫",
+ ei0 = "≧̸",
+ ti0 = "≱",
+ ni0 = "≱",
+ ii0 = "≧̸",
+ ri0 = "⩾̸",
+ si0 = "⩾̸",
+ oi0 = "⋙̸",
+ ai0 = "≵",
+ ci0 = "≫⃒",
+ ui0 = "≯",
+ bi0 = "≯",
+ pi0 = "≫̸",
+ li0 = "↮",
+ Mi0 = "⇎",
+ di0 = "⫲",
+ fi0 = "∋",
+ zi0 = "⋼",
+ Oi0 = "⋺",
+ hi0 = "∋",
+ Ai0 = "Њ",
+ qi0 = "њ",
+ gi0 = "↚",
+ mi0 = "⇍",
+ Wi0 = "‥",
+ Ri0 = "≦̸",
+ yi0 = "≰",
+ Li0 = "↚",
+ vi0 = "⇍",
+ Ei0 = "↮",
+ Ti0 = "⇎",
+ _i0 = "≰",
+ xi0 = "≦̸",
+ Si0 = "⩽̸",
+ wi0 = "⩽̸",
+ Ni0 = "≮",
+ Bi0 = "⋘̸",
+ Ii0 = "≴",
+ Di0 = "≪⃒",
+ Ci0 = "≮",
+ ki0 = "⋪",
+ Pi0 = "⋬",
+ Xi0 = "≪̸",
+ Fi0 = "∤",
+ Ui0 = "",
+ $i0 = " ",
+ Hi0 = "𝕟",
+ Gi0 = "ℕ",
+ Vi0 = "⫬",
+ ji0 = "¬",
+ Ki0 = "≢",
+ Yi0 = "≭",
+ Qi0 = "∦",
+ Ji0 = "∉",
+ Zi0 = "≠",
+ er0 = "≂̸",
+ tr0 = "∄",
+ nr0 = "≯",
+ ir0 = "≱",
+ rr0 = "≧̸",
+ sr0 = "≫̸",
+ or0 = "≹",
+ ar0 = "⩾̸",
+ cr0 = "≵",
+ ur0 = "≎̸",
+ br0 = "≏̸",
+ pr0 = "∉",
+ lr0 = "⋵̸",
+ Mr0 = "⋹̸",
+ dr0 = "∉",
+ fr0 = "⋷",
+ zr0 = "⋶",
+ Or0 = "⧏̸",
+ hr0 = "⋪",
+ Ar0 = "⋬",
+ qr0 = "≮",
+ gr0 = "≰",
+ mr0 = "≸",
+ Wr0 = "≪̸",
+ Rr0 = "⩽̸",
+ yr0 = "≴",
+ Lr0 = "⪢̸",
+ vr0 = "⪡̸",
+ Er0 = "∌",
+ Tr0 = "∌",
+ _r0 = "⋾",
+ xr0 = "⋽",
+ Sr0 = "⊀",
+ wr0 = "⪯̸",
+ Nr0 = "⋠",
+ Br0 = "∌",
+ Ir0 = "⧐̸",
+ Dr0 = "⋫",
+ Cr0 = "⋭",
+ kr0 = "⊏̸",
+ Pr0 = "⋢",
+ Xr0 = "⊐̸",
+ Fr0 = "⋣",
+ Ur0 = "⊂⃒",
+ $r0 = "⊈",
+ Hr0 = "⊁",
+ Gr0 = "⪰̸",
+ Vr0 = "⋡",
+ jr0 = "≿̸",
+ Kr0 = "⊃⃒",
+ Yr0 = "⊉",
+ Qr0 = "≁",
+ Jr0 = "≄",
+ Zr0 = "≇",
+ es0 = "≉",
+ ts0 = "∤",
+ ns0 = "∦",
+ is0 = "∦",
+ rs0 = "⫽⃥",
+ ss0 = "∂̸",
+ os0 = "⨔",
+ as0 = "⊀",
+ cs0 = "⋠",
+ us0 = "⊀",
+ bs0 = "⪯̸",
+ ps0 = "⪯̸",
+ ls0 = "⤳̸",
+ Ms0 = "↛",
+ ds0 = "⇏",
+ fs0 = "↝̸",
+ zs0 = "↛",
+ Os0 = "⇏",
+ hs0 = "⋫",
+ As0 = "⋭",
+ qs0 = "⊁",
+ gs0 = "⋡",
+ ms0 = "⪰̸",
+ Ws0 = "𝒩",
+ Rs0 = "𝓃",
+ ys0 = "∤",
+ Ls0 = "∦",
+ vs0 = "≁",
+ Es0 = "≄",
+ Ts0 = "≄",
+ _s0 = "∤",
+ xs0 = "∦",
+ Ss0 = "⋢",
+ ws0 = "⋣",
+ Ns0 = "⊄",
+ Bs0 = "⫅̸",
+ Is0 = "⊈",
+ Ds0 = "⊂⃒",
+ Cs0 = "⊈",
+ ks0 = "⫅̸",
+ Ps0 = "⊁",
+ Xs0 = "⪰̸",
+ Fs0 = "⊅",
+ Us0 = "⫆̸",
+ $s0 = "⊉",
+ Hs0 = "⊃⃒",
+ Gs0 = "⊉",
+ Vs0 = "⫆̸",
+ js0 = "≹",
+ Ks0 = "Ñ",
+ Ys0 = "ñ",
+ Qs0 = "≸",
+ Js0 = "⋪",
+ Zs0 = "⋬",
+ eo0 = "⋫",
+ to0 = "⋭",
+ no0 = "Ν",
+ io0 = "ν",
+ ro0 = "#",
+ so0 = "№",
+ oo0 = " ",
+ ao0 = "≍⃒",
+ co0 = "⊬",
+ uo0 = "⊭",
+ bo0 = "⊮",
+ po0 = "⊯",
+ lo0 = "≥⃒",
+ Mo0 = ">⃒",
+ do0 = "⤄",
+ fo0 = "⧞",
+ zo0 = "⤂",
+ Oo0 = "≤⃒",
+ ho0 = "<⃒",
+ Ao0 = "⊴⃒",
+ qo0 = "⤃",
+ go0 = "⊵⃒",
+ mo0 = "∼⃒",
+ Wo0 = "⤣",
+ Ro0 = "↖",
+ yo0 = "⇖",
+ Lo0 = "↖",
+ vo0 = "⤧",
+ Eo0 = "Ó",
+ To0 = "ó",
+ _o0 = "⊛",
+ xo0 = "Ô",
+ So0 = "ô",
+ wo0 = "⊚",
+ No0 = "О",
+ Bo0 = "о",
+ Io0 = "⊝",
+ Do0 = "Ő",
+ Co0 = "ő",
+ ko0 = "⨸",
+ Po0 = "⊙",
+ Xo0 = "⦼",
+ Fo0 = "Œ",
+ Uo0 = "œ",
+ $o0 = "⦿",
+ Ho0 = "𝔒",
+ Go0 = "𝔬",
+ Vo0 = "˛",
+ jo0 = "Ò",
+ Ko0 = "ò",
+ Yo0 = "⧁",
+ Qo0 = "⦵",
+ Jo0 = "Ω",
+ Zo0 = "∮",
+ ea0 = "↺",
+ ta0 = "⦾",
+ na0 = "⦻",
+ ia0 = "‾",
+ ra0 = "⧀",
+ sa0 = "Ō",
+ oa0 = "ō",
+ aa0 = "Ω",
+ ca0 = "ω",
+ ua0 = "Ο",
+ ba0 = "ο",
+ pa0 = "⦶",
+ la0 = "⊖",
+ Ma0 = "𝕆",
+ da0 = "𝕠",
+ fa0 = "⦷",
+ za0 = "“",
+ Oa0 = "‘",
+ ha0 = "⦹",
+ Aa0 = "⊕",
+ qa0 = "↻",
+ ga0 = "⩔",
+ ma0 = "∨",
+ Wa0 = "⩝",
+ Ra0 = "ℴ",
+ ya0 = "ℴ",
+ La0 = "ª",
+ va0 = "º",
+ Ea0 = "⊶",
+ Ta0 = "⩖",
+ _a0 = "⩗",
+ xa0 = "⩛",
+ Sa0 = "Ⓢ",
+ wa0 = "𝒪",
+ Na0 = "ℴ",
+ Ba0 = "Ø",
+ Ia0 = "ø",
+ Da0 = "⊘",
+ Ca0 = "Õ",
+ ka0 = "õ",
+ Pa0 = "⨶",
+ Xa0 = "⨷",
+ Fa0 = "⊗",
+ Ua0 = "Ö",
+ $a0 = "ö",
+ Ha0 = "⌽",
+ Ga0 = "‾",
+ Va0 = "⏞",
+ ja0 = "⎴",
+ Ka0 = "⏜",
+ Ya0 = "¶",
+ Qa0 = "∥",
+ Ja0 = "∥",
+ Za0 = "⫳",
+ ec0 = "⫽",
+ tc0 = "∂",
+ nc0 = "∂",
+ ic0 = "П",
+ rc0 = "п",
+ sc0 = "%",
+ oc0 = ".",
+ ac0 = "‰",
+ cc0 = "⊥",
+ uc0 = "‱",
+ bc0 = "𝔓",
+ pc0 = "𝔭",
+ lc0 = "Φ",
+ Mc0 = "φ",
+ dc0 = "ϕ",
+ fc0 = "ℳ",
+ zc0 = "☎",
+ Oc0 = "Π",
+ hc0 = "π",
+ Ac0 = "⋔",
+ qc0 = "ϖ",
+ gc0 = "ℏ",
+ mc0 = "ℎ",
+ Wc0 = "ℏ",
+ Rc0 = "⨣",
+ yc0 = "⊞",
+ Lc0 = "⨢",
+ vc0 = "+",
+ Ec0 = "∔",
+ Tc0 = "⨥",
+ _c0 = "⩲",
+ xc0 = "±",
+ Sc0 = "±",
+ wc0 = "⨦",
+ Nc0 = "⨧",
+ Bc0 = "±",
+ Ic0 = "ℌ",
+ Dc0 = "⨕",
+ Cc0 = "𝕡",
+ kc0 = "ℙ",
+ Pc0 = "£",
+ Xc0 = "⪷",
+ Fc0 = "⪻",
+ Uc0 = "≺",
+ $c0 = "≼",
+ Hc0 = "⪷",
+ Gc0 = "≺",
+ Vc0 = "≼",
+ jc0 = "≺",
+ Kc0 = "⪯",
+ Yc0 = "≼",
+ Qc0 = "≾",
+ Jc0 = "⪯",
+ Zc0 = "⪹",
+ e20 = "⪵",
+ t20 = "⋨",
+ n20 = "⪯",
+ i20 = "⪳",
+ r20 = "≾",
+ s20 = "′",
+ o20 = "″",
+ a20 = "ℙ",
+ c20 = "⪹",
+ u20 = "⪵",
+ b20 = "⋨",
+ p20 = "∏",
+ l20 = "∏",
+ M20 = "⌮",
+ d20 = "⌒",
+ f20 = "⌓",
+ z20 = "∝",
+ O20 = "∝",
+ h20 = "∷",
+ A20 = "∝",
+ q20 = "≾",
+ g20 = "⊰",
+ m20 = "𝒫",
+ W20 = "𝓅",
+ R20 = "Ψ",
+ y20 = "ψ",
+ L20 = " ",
+ v20 = "𝔔",
+ E20 = "𝔮",
+ T20 = "⨌",
+ _20 = "𝕢",
+ x20 = "ℚ",
+ S20 = "⁗",
+ w20 = "𝒬",
+ N20 = "𝓆",
+ B20 = "ℍ",
+ I20 = "⨖",
+ D20 = "?",
+ C20 = "≟",
+ k20 = '"',
+ P20 = '"',
+ X20 = "⇛",
+ F20 = "∽̱",
+ U20 = "Ŕ",
+ $20 = "ŕ",
+ H20 = "√",
+ G20 = "⦳",
+ V20 = "⟩",
+ j20 = "⟫",
+ K20 = "⦒",
+ Y20 = "⦥",
+ Q20 = "⟩",
+ J20 = "»",
+ Z20 = "⥵",
+ eu0 = "⇥",
+ tu0 = "⤠",
+ nu0 = "⤳",
+ iu0 = "→",
+ ru0 = "↠",
+ su0 = "⇒",
+ ou0 = "⤞",
+ au0 = "↪",
+ cu0 = "↬",
+ uu0 = "⥅",
+ bu0 = "⥴",
+ pu0 = "⤖",
+ lu0 = "↣",
+ Mu0 = "↝",
+ du0 = "⤚",
+ fu0 = "⤜",
+ zu0 = "∶",
+ Ou0 = "ℚ",
+ hu0 = "⤍",
+ Au0 = "⤏",
+ qu0 = "⤐",
+ gu0 = "❳",
+ mu0 = "}",
+ Wu0 = "]",
+ Ru0 = "⦌",
+ yu0 = "⦎",
+ Lu0 = "⦐",
+ vu0 = "Ř",
+ Eu0 = "ř",
+ Tu0 = "Ŗ",
+ _u0 = "ŗ",
+ xu0 = "⌉",
+ Su0 = "}",
+ wu0 = "Р",
+ Nu0 = "р",
+ Bu0 = "⤷",
+ Iu0 = "⥩",
+ Du0 = "”",
+ Cu0 = "”",
+ ku0 = "↳",
+ Pu0 = "ℜ",
+ Xu0 = "ℛ",
+ Fu0 = "ℜ",
+ Uu0 = "ℝ",
+ $u0 = "ℜ",
+ Hu0 = "▭",
+ Gu0 = "®",
+ Vu0 = "®",
+ ju0 = "∋",
+ Ku0 = "⇋",
+ Yu0 = "⥯",
+ Qu0 = "⥽",
+ Ju0 = "⌋",
+ Zu0 = "𝔯",
+ eb0 = "ℜ",
+ tb0 = "⥤",
+ nb0 = "⇁",
+ ib0 = "⇀",
+ rb0 = "⥬",
+ sb0 = "Ρ",
+ ob0 = "ρ",
+ ab0 = "ϱ",
+ cb0 = "⟩",
+ ub0 = "⇥",
+ bb0 = "→",
+ pb0 = "→",
+ lb0 = "⇒",
+ Mb0 = "⇄",
+ db0 = "↣",
+ fb0 = "⌉",
+ zb0 = "⟧",
+ Ob0 = "⥝",
+ hb0 = "⥕",
+ Ab0 = "⇂",
+ qb0 = "⌋",
+ gb0 = "⇁",
+ mb0 = "⇀",
+ Wb0 = "⇄",
+ Rb0 = "⇌",
+ yb0 = "⇉",
+ Lb0 = "↝",
+ vb0 = "↦",
+ Eb0 = "⊢",
+ Tb0 = "⥛",
+ _b0 = "⋌",
+ xb0 = "⧐",
+ Sb0 = "⊳",
+ wb0 = "⊵",
+ Nb0 = "⥏",
+ Bb0 = "⥜",
+ Ib0 = "⥔",
+ Db0 = "↾",
+ Cb0 = "⥓",
+ kb0 = "⇀",
+ Pb0 = "˚",
+ Xb0 = "≓",
+ Fb0 = "⇄",
+ Ub0 = "⇌",
+ $b0 = "",
+ Hb0 = "⎱",
+ Gb0 = "⎱",
+ Vb0 = "⫮",
+ jb0 = "⟭",
+ Kb0 = "⇾",
+ Yb0 = "⟧",
+ Qb0 = "⦆",
+ Jb0 = "𝕣",
+ Zb0 = "ℝ",
+ ep0 = "⨮",
+ tp0 = "⨵",
+ np0 = "⥰",
+ ip0 = ")",
+ rp0 = "⦔",
+ sp0 = "⨒",
+ op0 = "⇉",
+ ap0 = "⇛",
+ cp0 = "›",
+ up0 = "𝓇",
+ bp0 = "ℛ",
+ pp0 = "↱",
+ lp0 = "↱",
+ Mp0 = "]",
+ dp0 = "’",
+ fp0 = "’",
+ zp0 = "⋌",
+ Op0 = "⋊",
+ hp0 = "▹",
+ Ap0 = "⊵",
+ qp0 = "▸",
+ gp0 = "⧎",
+ mp0 = "⧴",
+ Wp0 = "⥨",
+ Rp0 = "℞",
+ yp0 = "Ś",
+ Lp0 = "ś",
+ vp0 = "‚",
+ Ep0 = "⪸",
+ Tp0 = "Š",
+ _p0 = "š",
+ xp0 = "⪼",
+ Sp0 = "≻",
+ wp0 = "≽",
+ Np0 = "⪰",
+ Bp0 = "⪴",
+ Ip0 = "Ş",
+ Dp0 = "ş",
+ Cp0 = "Ŝ",
+ kp0 = "ŝ",
+ Pp0 = "⪺",
+ Xp0 = "⪶",
+ Fp0 = "⋩",
+ Up0 = "⨓",
+ $p0 = "≿",
+ Hp0 = "С",
+ Gp0 = "с",
+ Vp0 = "⊡",
+ jp0 = "⋅",
+ Kp0 = "⩦",
+ Yp0 = "⤥",
+ Qp0 = "↘",
+ Jp0 = "⇘",
+ Zp0 = "↘",
+ el0 = "§",
+ tl0 = ";",
+ nl0 = "⤩",
+ il0 = "∖",
+ rl0 = "∖",
+ sl0 = "✶",
+ ol0 = "𝔖",
+ al0 = "𝔰",
+ cl0 = "⌢",
+ ul0 = "♯",
+ bl0 = "Щ",
+ pl0 = "щ",
+ ll0 = "Ш",
+ Ml0 = "ш",
+ dl0 = "↓",
+ fl0 = "←",
+ zl0 = "∣",
+ Ol0 = "∥",
+ hl0 = "→",
+ Al0 = "↑",
+ ql0 = "",
+ gl0 = "Σ",
+ ml0 = "σ",
+ Wl0 = "ς",
+ Rl0 = "ς",
+ yl0 = "∼",
+ Ll0 = "⩪",
+ vl0 = "≃",
+ El0 = "≃",
+ Tl0 = "⪞",
+ _l0 = "⪠",
+ xl0 = "⪝",
+ Sl0 = "⪟",
+ wl0 = "≆",
+ Nl0 = "⨤",
+ Bl0 = "⥲",
+ Il0 = "←",
+ Dl0 = "∘",
+ Cl0 = "∖",
+ kl0 = "⨳",
+ Pl0 = "⧤",
+ Xl0 = "∣",
+ Fl0 = "⌣",
+ Ul0 = "⪪",
+ $l0 = "⪬",
+ Hl0 = "⪬︀",
+ Gl0 = "Ь",
+ Vl0 = "ь",
+ jl0 = "⌿",
+ Kl0 = "⧄",
+ Yl0 = "/",
+ Ql0 = "𝕊",
+ Jl0 = "𝕤",
+ Zl0 = "♠",
+ eM0 = "♠",
+ tM0 = "∥",
+ nM0 = "⊓",
+ iM0 = "⊓︀",
+ rM0 = "⊔",
+ sM0 = "⊔︀",
+ oM0 = "√",
+ aM0 = "⊏",
+ cM0 = "⊑",
+ uM0 = "⊏",
+ bM0 = "⊑",
+ pM0 = "⊐",
+ lM0 = "⊒",
+ MM0 = "⊐",
+ dM0 = "⊒",
+ fM0 = "□",
+ zM0 = "□",
+ OM0 = "⊓",
+ hM0 = "⊏",
+ AM0 = "⊑",
+ qM0 = "⊐",
+ gM0 = "⊒",
+ mM0 = "⊔",
+ WM0 = "▪",
+ RM0 = "□",
+ yM0 = "▪",
+ LM0 = "→",
+ vM0 = "𝒮",
+ EM0 = "𝓈",
+ TM0 = "∖",
+ _M0 = "⌣",
+ xM0 = "⋆",
+ SM0 = "⋆",
+ wM0 = "☆",
+ NM0 = "★",
+ BM0 = "ϵ",
+ IM0 = "ϕ",
+ DM0 = "¯",
+ CM0 = "⊂",
+ kM0 = "⋐",
+ PM0 = "⪽",
+ XM0 = "⫅",
+ FM0 = "⊆",
+ UM0 = "⫃",
+ $M0 = "⫁",
+ HM0 = "⫋",
+ GM0 = "⊊",
+ VM0 = "⪿",
+ jM0 = "⥹",
+ KM0 = "⊂",
+ YM0 = "⋐",
+ QM0 = "⊆",
+ JM0 = "⫅",
+ ZM0 = "⊆",
+ ed0 = "⊊",
+ td0 = "⫋",
+ nd0 = "⫇",
+ id0 = "⫕",
+ rd0 = "⫓",
+ sd0 = "⪸",
+ od0 = "≻",
+ ad0 = "≽",
+ cd0 = "≻",
+ ud0 = "⪰",
+ bd0 = "≽",
+ pd0 = "≿",
+ ld0 = "⪰",
+ Md0 = "⪺",
+ dd0 = "⪶",
+ fd0 = "⋩",
+ zd0 = "≿",
+ Od0 = "∋",
+ hd0 = "∑",
+ Ad0 = "∑",
+ qd0 = "♪",
+ gd0 = "¹",
+ md0 = "²",
+ Wd0 = "³",
+ Rd0 = "⊃",
+ yd0 = "⋑",
+ Ld0 = "⪾",
+ vd0 = "⫘",
+ Ed0 = "⫆",
+ Td0 = "⊇",
+ _d0 = "⫄",
+ xd0 = "⊃",
+ Sd0 = "⊇",
+ wd0 = "⟉",
+ Nd0 = "⫗",
+ Bd0 = "⥻",
+ Id0 = "⫂",
+ Dd0 = "⫌",
+ Cd0 = "⊋",
+ kd0 = "⫀",
+ Pd0 = "⊃",
+ Xd0 = "⋑",
+ Fd0 = "⊇",
+ Ud0 = "⫆",
+ $d0 = "⊋",
+ Hd0 = "⫌",
+ Gd0 = "⫈",
+ Vd0 = "⫔",
+ jd0 = "⫖",
+ Kd0 = "⤦",
+ Yd0 = "↙",
+ Qd0 = "⇙",
+ Jd0 = "↙",
+ Zd0 = "⤪",
+ ef0 = "ß",
+ tf0 = " ",
+ nf0 = "⌖",
+ if0 = "Τ",
+ rf0 = "τ",
+ sf0 = "⎴",
+ of0 = "Ť",
+ af0 = "ť",
+ cf0 = "Ţ",
+ uf0 = "ţ",
+ bf0 = "Т",
+ pf0 = "т",
+ lf0 = "⃛",
+ Mf0 = "⌕",
+ df0 = "𝔗",
+ ff0 = "𝔱",
+ zf0 = "∴",
+ Of0 = "∴",
+ hf0 = "∴",
+ Af0 = "Θ",
+ qf0 = "θ",
+ gf0 = "ϑ",
+ mf0 = "ϑ",
+ Wf0 = "≈",
+ Rf0 = "∼",
+ yf0 = " ",
+ Lf0 = " ",
+ vf0 = " ",
+ Ef0 = "≈",
+ Tf0 = "∼",
+ _f0 = "Þ",
+ xf0 = "þ",
+ Sf0 = "˜",
+ wf0 = "∼",
+ Nf0 = "≃",
+ Bf0 = "≅",
+ If0 = "≈",
+ Df0 = "⨱",
+ Cf0 = "⊠",
+ kf0 = "×",
+ Pf0 = "⨰",
+ Xf0 = "∭",
+ Ff0 = "⤨",
+ Uf0 = "⌶",
+ $f0 = "⫱",
+ Hf0 = "⊤",
+ Gf0 = "𝕋",
+ Vf0 = "𝕥",
+ jf0 = "⫚",
+ Kf0 = "⤩",
+ Yf0 = "‴",
+ Qf0 = "™",
+ Jf0 = "™",
+ Zf0 = "▵",
+ ez0 = "▿",
+ tz0 = "◃",
+ nz0 = "⊴",
+ iz0 = "≜",
+ rz0 = "▹",
+ sz0 = "⊵",
+ oz0 = "◬",
+ az0 = "≜",
+ cz0 = "⨺",
+ uz0 = "⃛",
+ bz0 = "⨹",
+ pz0 = "⧍",
+ lz0 = "⨻",
+ Mz0 = "⏢",
+ dz0 = "𝒯",
+ fz0 = "𝓉",
+ zz0 = "Ц",
+ Oz0 = "ц",
+ hz0 = "Ћ",
+ Az0 = "ћ",
+ qz0 = "Ŧ",
+ gz0 = "ŧ",
+ mz0 = "≬",
+ Wz0 = "↞",
+ Rz0 = "↠",
+ yz0 = "Ú",
+ Lz0 = "ú",
+ vz0 = "↑",
+ Ez0 = "↟",
+ Tz0 = "⇑",
+ _z0 = "⥉",
+ xz0 = "Ў",
+ Sz0 = "ў",
+ wz0 = "Ŭ",
+ Nz0 = "ŭ",
+ Bz0 = "Û",
+ Iz0 = "û",
+ Dz0 = "У",
+ Cz0 = "у",
+ kz0 = "⇅",
+ Pz0 = "Ű",
+ Xz0 = "ű",
+ Fz0 = "⥮",
+ Uz0 = "⥾",
+ $z0 = "𝔘",
+ Hz0 = "𝔲",
+ Gz0 = "Ù",
+ Vz0 = "ù",
+ jz0 = "⥣",
+ Kz0 = "↿",
+ Yz0 = "↾",
+ Qz0 = "▀",
+ Jz0 = "⌜",
+ Zz0 = "⌜",
+ e30 = "⌏",
+ t30 = "◸",
+ n30 = "Ū",
+ i30 = "ū",
+ r30 = "¨",
+ s30 = "_",
+ o30 = "⏟",
+ a30 = "⎵",
+ c30 = "⏝",
+ u30 = "⋃",
+ b30 = "⊎",
+ p30 = "Ų",
+ l30 = "ų",
+ M30 = "𝕌",
+ d30 = "𝕦",
+ f30 = "⤒",
+ z30 = "↑",
+ O30 = "↑",
+ h30 = "⇑",
+ A30 = "⇅",
+ q30 = "↕",
+ g30 = "↕",
+ m30 = "⇕",
+ W30 = "⥮",
+ R30 = "↿",
+ y30 = "↾",
+ L30 = "⊎",
+ v30 = "↖",
+ E30 = "↗",
+ T30 = "υ",
+ _30 = "ϒ",
+ x30 = "ϒ",
+ S30 = "Υ",
+ w30 = "υ",
+ N30 = "↥",
+ B30 = "⊥",
+ I30 = "⇈",
+ D30 = "⌝",
+ C30 = "⌝",
+ k30 = "⌎",
+ P30 = "Ů",
+ X30 = "ů",
+ F30 = "◹",
+ U30 = "𝒰",
+ $30 = "𝓊",
+ H30 = "⋰",
+ G30 = "Ũ",
+ V30 = "ũ",
+ j30 = "▵",
+ K30 = "▴",
+ Y30 = "⇈",
+ Q30 = "Ü",
+ J30 = "ü",
+ Z30 = "⦧",
+ eO0 = "⦜",
+ tO0 = "ϵ",
+ nO0 = "ϰ",
+ iO0 = "∅",
+ rO0 = "ϕ",
+ sO0 = "ϖ",
+ oO0 = "∝",
+ aO0 = "↕",
+ cO0 = "⇕",
+ uO0 = "ϱ",
+ bO0 = "ς",
+ pO0 = "⊊︀",
+ lO0 = "⫋︀",
+ MO0 = "⊋︀",
+ dO0 = "⫌︀",
+ fO0 = "ϑ",
+ zO0 = "⊲",
+ OO0 = "⊳",
+ hO0 = "⫨",
+ AO0 = "⫫",
+ qO0 = "⫩",
+ gO0 = "В",
+ mO0 = "в",
+ WO0 = "⊢",
+ RO0 = "⊨",
+ yO0 = "⊩",
+ LO0 = "⊫",
+ vO0 = "⫦",
+ EO0 = "⊻",
+ TO0 = "∨",
+ _O0 = "⋁",
+ xO0 = "≚",
+ SO0 = "⋮",
+ wO0 = "|",
+ NO0 = "‖",
+ BO0 = "|",
+ IO0 = "‖",
+ DO0 = "∣",
+ CO0 = "|",
+ kO0 = "❘",
+ PO0 = "≀",
+ XO0 = " ",
+ FO0 = "𝔙",
+ UO0 = "𝔳",
+ $O0 = "⊲",
+ HO0 = "⊂⃒",
+ GO0 = "⊃⃒",
+ VO0 = "𝕍",
+ jO0 = "𝕧",
+ KO0 = "∝",
+ YO0 = "⊳",
+ QO0 = "𝒱",
+ JO0 = "𝓋",
+ ZO0 = "⫋︀",
+ eh0 = "⊊︀",
+ th0 = "⫌︀",
+ nh0 = "⊋︀",
+ ih0 = "⊪",
+ rh0 = "⦚",
+ sh0 = "Ŵ",
+ oh0 = "ŵ",
+ ah0 = "⩟",
+ ch0 = "∧",
+ uh0 = "⋀",
+ bh0 = "≙",
+ ph0 = "℘",
+ lh0 = "𝔚",
+ Mh0 = "𝔴",
+ dh0 = "𝕎",
+ fh0 = "𝕨",
+ zh0 = "℘",
+ Oh0 = "≀",
+ hh0 = "≀",
+ Ah0 = "𝒲",
+ qh0 = "𝓌",
+ gh0 = "⋂",
+ mh0 = "◯",
+ Wh0 = "⋃",
+ Rh0 = "▽",
+ yh0 = "𝔛",
+ Lh0 = "𝔵",
+ vh0 = "⟷",
+ Eh0 = "⟺",
+ Th0 = "Ξ",
+ _h0 = "ξ",
+ xh0 = "⟵",
+ Sh0 = "⟸",
+ wh0 = "⟼",
+ Nh0 = "⋻",
+ Bh0 = "⨀",
+ Ih0 = "𝕏",
+ Dh0 = "𝕩",
+ Ch0 = "⨁",
+ kh0 = "⨂",
+ Ph0 = "⟶",
+ Xh0 = "⟹",
+ Fh0 = "𝒳",
+ Uh0 = "𝓍",
+ $h0 = "⨆",
+ Hh0 = "⨄",
+ Gh0 = "△",
+ Vh0 = "⋁",
+ jh0 = "⋀",
+ Kh0 = "Ý",
+ Yh0 = "ý",
+ Qh0 = "Я",
+ Jh0 = "я",
+ Zh0 = "Ŷ",
+ eA0 = "ŷ",
+ tA0 = "Ы",
+ nA0 = "ы",
+ iA0 = "¥",
+ rA0 = "𝔜",
+ sA0 = "𝔶",
+ oA0 = "Ї",
+ aA0 = "ї",
+ cA0 = "𝕐",
+ uA0 = "𝕪",
+ bA0 = "𝒴",
+ pA0 = "𝓎",
+ lA0 = "Ю",
+ MA0 = "ю",
+ dA0 = "ÿ",
+ fA0 = "Ÿ",
+ zA0 = "Ź",
+ OA0 = "ź",
+ hA0 = "Ž",
+ AA0 = "ž",
+ qA0 = "З",
+ gA0 = "з",
+ mA0 = "Ż",
+ WA0 = "ż",
+ RA0 = "ℨ",
+ yA0 = "",
+ LA0 = "Ζ",
+ vA0 = "ζ",
+ EA0 = "𝔷",
+ TA0 = "ℨ",
+ _A0 = "Ж",
+ xA0 = "ж",
+ SA0 = "⇝",
+ wA0 = "𝕫",
+ NA0 = "ℤ",
+ BA0 = "𝒵",
+ IA0 = "𝓏",
+ DA0 = "",
+ CA0 = "",
+ O6 = {
+ Aacute: mC,
+ aacute: WC,
+ Abreve: RC,
+ abreve: yC,
+ ac: LC,
+ acd: vC,
+ acE: EC,
+ Acirc: TC,
+ acirc: _C,
+ acute: xC,
+ Acy: SC,
+ acy: wC,
+ AElig: NC,
+ aelig: BC,
+ af: IC,
+ Afr: DC,
+ afr: CC,
+ Agrave: kC,
+ agrave: PC,
+ alefsym: XC,
+ aleph: FC,
+ Alpha: UC,
+ alpha: $C,
+ Amacr: HC,
+ amacr: GC,
+ amalg: VC,
+ amp: jC,
+ AMP: KC,
+ andand: YC,
+ And: QC,
+ and: JC,
+ andd: ZC,
+ andslope: ek,
+ andv: tk,
+ ang: nk,
+ ange: ik,
+ angle: rk,
+ angmsdaa: sk,
+ angmsdab: ok,
+ angmsdac: ak,
+ angmsdad: ck,
+ angmsdae: uk,
+ angmsdaf: bk,
+ angmsdag: pk,
+ angmsdah: lk,
+ angmsd: Mk,
+ angrt: dk,
+ angrtvb: fk,
+ angrtvbd: zk,
+ angsph: Ok,
+ angst: hk,
+ angzarr: Ak,
+ Aogon: qk,
+ aogon: gk,
+ Aopf: mk,
+ aopf: Wk,
+ apacir: Rk,
+ ap: yk,
+ apE: Lk,
+ ape: vk,
+ apid: Ek,
+ apos: Tk,
+ ApplyFunction: _k,
+ approx: xk,
+ approxeq: Sk,
+ Aring: wk,
+ aring: Nk,
+ Ascr: Bk,
+ ascr: Ik,
+ Assign: Dk,
+ ast: Ck,
+ asymp: kk,
+ asympeq: Pk,
+ Atilde: Xk,
+ atilde: Fk,
+ Auml: Uk,
+ auml: $k,
+ awconint: Hk,
+ awint: Gk,
+ backcong: Vk,
+ backepsilon: jk,
+ backprime: Kk,
+ backsim: Yk,
+ backsimeq: Qk,
+ Backslash: Jk,
+ Barv: Zk,
+ barvee: eP,
+ barwed: tP,
+ Barwed: nP,
+ barwedge: iP,
+ bbrk: rP,
+ bbrktbrk: sP,
+ bcong: oP,
+ Bcy: aP,
+ bcy: cP,
+ bdquo: uP,
+ becaus: bP,
+ because: pP,
+ Because: lP,
+ bemptyv: MP,
+ bepsi: dP,
+ bernou: fP,
+ Bernoullis: zP,
+ Beta: OP,
+ beta: hP,
+ beth: AP,
+ between: qP,
+ Bfr: gP,
+ bfr: mP,
+ bigcap: WP,
+ bigcirc: RP,
+ bigcup: yP,
+ bigodot: LP,
+ bigoplus: vP,
+ bigotimes: EP,
+ bigsqcup: TP,
+ bigstar: _P,
+ bigtriangledown: xP,
+ bigtriangleup: SP,
+ biguplus: wP,
+ bigvee: NP,
+ bigwedge: BP,
+ bkarow: IP,
+ blacklozenge: DP,
+ blacksquare: CP,
+ blacktriangle: kP,
+ blacktriangledown: PP,
+ blacktriangleleft: XP,
+ blacktriangleright: FP,
+ blank: UP,
+ blk12: $P,
+ blk14: HP,
+ blk34: GP,
+ block: VP,
+ bne: jP,
+ bnequiv: KP,
+ bNot: YP,
+ bnot: QP,
+ Bopf: JP,
+ bopf: ZP,
+ bot: eX,
+ bottom: tX,
+ bowtie: nX,
+ boxbox: iX,
+ boxdl: rX,
+ boxdL: sX,
+ boxDl: oX,
+ boxDL: aX,
+ boxdr: cX,
+ boxdR: uX,
+ boxDr: bX,
+ boxDR: pX,
+ boxh: lX,
+ boxH: MX,
+ boxhd: dX,
+ boxHd: fX,
+ boxhD: zX,
+ boxHD: OX,
+ boxhu: hX,
+ boxHu: AX,
+ boxhU: qX,
+ boxHU: gX,
+ boxminus: mX,
+ boxplus: WX,
+ boxtimes: RX,
+ boxul: yX,
+ boxuL: LX,
+ boxUl: vX,
+ boxUL: EX,
+ boxur: TX,
+ boxuR: _X,
+ boxUr: xX,
+ boxUR: SX,
+ boxv: wX,
+ boxV: NX,
+ boxvh: BX,
+ boxvH: IX,
+ boxVh: DX,
+ boxVH: CX,
+ boxvl: kX,
+ boxvL: PX,
+ boxVl: XX,
+ boxVL: FX,
+ boxvr: UX,
+ boxvR: $X,
+ boxVr: HX,
+ boxVR: GX,
+ bprime: VX,
+ breve: jX,
+ Breve: KX,
+ brvbar: YX,
+ bscr: QX,
+ Bscr: JX,
+ bsemi: ZX,
+ bsim: eF,
+ bsime: tF,
+ bsolb: nF,
+ bsol: iF,
+ bsolhsub: rF,
+ bull: sF,
+ bullet: oF,
+ bump: aF,
+ bumpE: cF,
+ bumpe: uF,
+ Bumpeq: bF,
+ bumpeq: pF,
+ Cacute: lF,
+ cacute: MF,
+ capand: dF,
+ capbrcup: fF,
+ capcap: zF,
+ cap: OF,
+ Cap: hF,
+ capcup: AF,
+ capdot: qF,
+ CapitalDifferentialD: gF,
+ caps: mF,
+ caret: WF,
+ caron: RF,
+ Cayleys: yF,
+ ccaps: LF,
+ Ccaron: vF,
+ ccaron: EF,
+ Ccedil: TF,
+ ccedil: _F,
+ Ccirc: xF,
+ ccirc: SF,
+ Cconint: wF,
+ ccups: NF,
+ ccupssm: BF,
+ Cdot: IF,
+ cdot: DF,
+ cedil: CF,
+ Cedilla: kF,
+ cemptyv: PF,
+ cent: XF,
+ centerdot: FF,
+ CenterDot: UF,
+ cfr: $F,
+ Cfr: HF,
+ CHcy: GF,
+ chcy: VF,
+ check: jF,
+ checkmark: KF,
+ Chi: YF,
+ chi: QF,
+ circ: JF,
+ circeq: ZF,
+ circlearrowleft: eU,
+ circlearrowright: tU,
+ circledast: nU,
+ circledcirc: iU,
+ circleddash: rU,
+ CircleDot: sU,
+ circledR: oU,
+ circledS: aU,
+ CircleMinus: cU,
+ CirclePlus: uU,
+ CircleTimes: bU,
+ cir: pU,
+ cirE: lU,
+ cire: MU,
+ cirfnint: dU,
+ cirmid: fU,
+ cirscir: zU,
+ ClockwiseContourIntegral: OU,
+ CloseCurlyDoubleQuote: hU,
+ CloseCurlyQuote: AU,
+ clubs: qU,
+ clubsuit: gU,
+ colon: mU,
+ Colon: WU,
+ Colone: RU,
+ colone: yU,
+ coloneq: LU,
+ comma: vU,
+ commat: EU,
+ comp: TU,
+ compfn: _U,
+ complement: xU,
+ complexes: SU,
+ cong: wU,
+ congdot: NU,
+ Congruent: BU,
+ conint: IU,
+ Conint: DU,
+ ContourIntegral: CU,
+ copf: kU,
+ Copf: PU,
+ coprod: XU,
+ Coproduct: FU,
+ copy: UU,
+ COPY: $U,
+ copysr: HU,
+ CounterClockwiseContourIntegral: GU,
+ crarr: VU,
+ cross: jU,
+ Cross: KU,
+ Cscr: YU,
+ cscr: QU,
+ csub: JU,
+ csube: ZU,
+ csup: e$,
+ csupe: t$,
+ ctdot: n$,
+ cudarrl: i$,
+ cudarrr: r$,
+ cuepr: s$,
+ cuesc: o$,
+ cularr: a$,
+ cularrp: c$,
+ cupbrcap: u$,
+ cupcap: b$,
+ CupCap: p$,
+ cup: l$,
+ Cup: M$,
+ cupcup: d$,
+ cupdot: f$,
+ cupor: z$,
+ cups: O$,
+ curarr: h$,
+ curarrm: A$,
+ curlyeqprec: q$,
+ curlyeqsucc: g$,
+ curlyvee: m$,
+ curlywedge: W$,
+ curren: R$,
+ curvearrowleft: y$,
+ curvearrowright: L$,
+ cuvee: v$,
+ cuwed: E$,
+ cwconint: T$,
+ cwint: _$,
+ cylcty: x$,
+ dagger: S$,
+ Dagger: w$,
+ daleth: N$,
+ darr: B$,
+ Darr: I$,
+ dArr: D$,
+ dash: C$,
+ Dashv: k$,
+ dashv: P$,
+ dbkarow: X$,
+ dblac: F$,
+ Dcaron: U$,
+ dcaron: $$,
+ Dcy: H$,
+ dcy: G$,
+ ddagger: V$,
+ ddarr: j$,
+ DD: K$,
+ dd: Y$,
+ DDotrahd: Q$,
+ ddotseq: J$,
+ deg: Z$,
+ Del: eH,
+ Delta: tH,
+ delta: nH,
+ demptyv: iH,
+ dfisht: rH,
+ Dfr: sH,
+ dfr: oH,
+ dHar: aH,
+ dharl: cH,
+ dharr: uH,
+ DiacriticalAcute: bH,
+ DiacriticalDot: pH,
+ DiacriticalDoubleAcute: lH,
+ DiacriticalGrave: MH,
+ DiacriticalTilde: dH,
+ diam: fH,
+ diamond: zH,
+ Diamond: OH,
+ diamondsuit: hH,
+ diams: AH,
+ die: qH,
+ DifferentialD: gH,
+ digamma: mH,
+ disin: WH,
+ div: RH,
+ divide: yH,
+ divideontimes: LH,
+ divonx: vH,
+ DJcy: EH,
+ djcy: TH,
+ dlcorn: _H,
+ dlcrop: xH,
+ dollar: SH,
+ Dopf: wH,
+ dopf: NH,
+ Dot: BH,
+ dot: IH,
+ DotDot: DH,
+ doteq: CH,
+ doteqdot: kH,
+ DotEqual: PH,
+ dotminus: XH,
+ dotplus: FH,
+ dotsquare: UH,
+ doublebarwedge: $H,
+ DoubleContourIntegral: HH,
+ DoubleDot: GH,
+ DoubleDownArrow: VH,
+ DoubleLeftArrow: jH,
+ DoubleLeftRightArrow: KH,
+ DoubleLeftTee: YH,
+ DoubleLongLeftArrow: QH,
+ DoubleLongLeftRightArrow: JH,
+ DoubleLongRightArrow: ZH,
+ DoubleRightArrow: eG,
+ DoubleRightTee: tG,
+ DoubleUpArrow: nG,
+ DoubleUpDownArrow: iG,
+ DoubleVerticalBar: rG,
+ DownArrowBar: sG,
+ downarrow: oG,
+ DownArrow: aG,
+ Downarrow: cG,
+ DownArrowUpArrow: uG,
+ DownBreve: bG,
+ downdownarrows: pG,
+ downharpoonleft: lG,
+ downharpoonright: MG,
+ DownLeftRightVector: dG,
+ DownLeftTeeVector: fG,
+ DownLeftVectorBar: zG,
+ DownLeftVector: OG,
+ DownRightTeeVector: hG,
+ DownRightVectorBar: AG,
+ DownRightVector: qG,
+ DownTeeArrow: gG,
+ DownTee: mG,
+ drbkarow: WG,
+ drcorn: RG,
+ drcrop: yG,
+ Dscr: LG,
+ dscr: vG,
+ DScy: EG,
+ dscy: TG,
+ dsol: _G,
+ Dstrok: xG,
+ dstrok: SG,
+ dtdot: wG,
+ dtri: NG,
+ dtrif: BG,
+ duarr: IG,
+ duhar: DG,
+ dwangle: CG,
+ DZcy: kG,
+ dzcy: PG,
+ dzigrarr: XG,
+ Eacute: FG,
+ eacute: UG,
+ easter: $G,
+ Ecaron: HG,
+ ecaron: GG,
+ Ecirc: VG,
+ ecirc: jG,
+ ecir: KG,
+ ecolon: YG,
+ Ecy: QG,
+ ecy: JG,
+ eDDot: ZG,
+ Edot: eV,
+ edot: tV,
+ eDot: nV,
+ ee: iV,
+ efDot: rV,
+ Efr: sV,
+ efr: oV,
+ eg: aV,
+ Egrave: cV,
+ egrave: uV,
+ egs: bV,
+ egsdot: pV,
+ el: lV,
+ Element: MV,
+ elinters: dV,
+ ell: fV,
+ els: zV,
+ elsdot: OV,
+ Emacr: hV,
+ emacr: AV,
+ empty: qV,
+ emptyset: gV,
+ EmptySmallSquare: mV,
+ emptyv: WV,
+ EmptyVerySmallSquare: RV,
+ emsp13: yV,
+ emsp14: LV,
+ emsp: vV,
+ ENG: EV,
+ eng: TV,
+ ensp: _V,
+ Eogon: xV,
+ eogon: SV,
+ Eopf: wV,
+ eopf: NV,
+ epar: BV,
+ eparsl: IV,
+ eplus: DV,
+ epsi: CV,
+ Epsilon: kV,
+ epsilon: PV,
+ epsiv: XV,
+ eqcirc: FV,
+ eqcolon: UV,
+ eqsim: $V,
+ eqslantgtr: HV,
+ eqslantless: GV,
+ Equal: VV,
+ equals: jV,
+ EqualTilde: KV,
+ equest: YV,
+ Equilibrium: QV,
+ equiv: JV,
+ equivDD: ZV,
+ eqvparsl: ej,
+ erarr: tj,
+ erDot: nj,
+ escr: ij,
+ Escr: rj,
+ esdot: sj,
+ Esim: oj,
+ esim: aj,
+ Eta: cj,
+ eta: uj,
+ ETH: bj,
+ eth: pj,
+ Euml: lj,
+ euml: Mj,
+ euro: dj,
+ excl: fj,
+ exist: zj,
+ Exists: Oj,
+ expectation: hj,
+ exponentiale: Aj,
+ ExponentialE: qj,
+ fallingdotseq: gj,
+ Fcy: mj,
+ fcy: Wj,
+ female: Rj,
+ ffilig: yj,
+ fflig: Lj,
+ ffllig: vj,
+ Ffr: Ej,
+ ffr: Tj,
+ filig: _j,
+ FilledSmallSquare: xj,
+ FilledVerySmallSquare: Sj,
+ fjlig: wj,
+ flat: Nj,
+ fllig: Bj,
+ fltns: Ij,
+ fnof: Dj,
+ Fopf: Cj,
+ fopf: kj,
+ forall: Pj,
+ ForAll: Xj,
+ fork: Fj,
+ forkv: Uj,
+ Fouriertrf: $j,
+ fpartint: Hj,
+ frac12: Gj,
+ frac13: Vj,
+ frac14: jj,
+ frac15: Kj,
+ frac16: Yj,
+ frac18: Qj,
+ frac23: Jj,
+ frac25: Zj,
+ frac34: eK,
+ frac35: tK,
+ frac38: nK,
+ frac45: iK,
+ frac56: rK,
+ frac58: sK,
+ frac78: oK,
+ frasl: aK,
+ frown: cK,
+ fscr: uK,
+ Fscr: bK,
+ gacute: pK,
+ Gamma: lK,
+ gamma: MK,
+ Gammad: dK,
+ gammad: fK,
+ gap: zK,
+ Gbreve: OK,
+ gbreve: hK,
+ Gcedil: AK,
+ Gcirc: qK,
+ gcirc: gK,
+ Gcy: mK,
+ gcy: WK,
+ Gdot: RK,
+ gdot: yK,
+ ge: LK,
+ gE: vK,
+ gEl: EK,
+ gel: TK,
+ geq: _K,
+ geqq: xK,
+ geqslant: SK,
+ gescc: wK,
+ ges: NK,
+ gesdot: BK,
+ gesdoto: IK,
+ gesdotol: DK,
+ gesl: CK,
+ gesles: kK,
+ Gfr: PK,
+ gfr: XK,
+ gg: FK,
+ Gg: UK,
+ ggg: $K,
+ gimel: HK,
+ GJcy: GK,
+ gjcy: VK,
+ gla: jK,
+ gl: KK,
+ glE: YK,
+ glj: QK,
+ gnap: JK,
+ gnapprox: ZK,
+ gne: eY,
+ gnE: tY,
+ gneq: nY,
+ gneqq: iY,
+ gnsim: rY,
+ Gopf: sY,
+ gopf: oY,
+ grave: aY,
+ GreaterEqual: cY,
+ GreaterEqualLess: uY,
+ GreaterFullEqual: bY,
+ GreaterGreater: pY,
+ GreaterLess: lY,
+ GreaterSlantEqual: MY,
+ GreaterTilde: dY,
+ Gscr: fY,
+ gscr: zY,
+ gsim: OY,
+ gsime: hY,
+ gsiml: AY,
+ gtcc: qY,
+ gtcir: gY,
+ gt: mY,
+ GT: WY,
+ Gt: RY,
+ gtdot: yY,
+ gtlPar: LY,
+ gtquest: vY,
+ gtrapprox: EY,
+ gtrarr: TY,
+ gtrdot: _Y,
+ gtreqless: xY,
+ gtreqqless: SY,
+ gtrless: wY,
+ gtrsim: NY,
+ gvertneqq: BY,
+ gvnE: IY,
+ Hacek: DY,
+ hairsp: CY,
+ half: kY,
+ hamilt: PY,
+ HARDcy: XY,
+ hardcy: FY,
+ harrcir: UY,
+ harr: $Y,
+ hArr: HY,
+ harrw: GY,
+ Hat: VY,
+ hbar: jY,
+ Hcirc: KY,
+ hcirc: YY,
+ hearts: QY,
+ heartsuit: JY,
+ hellip: ZY,
+ hercon: eQ,
+ hfr: tQ,
+ Hfr: nQ,
+ HilbertSpace: iQ,
+ hksearow: rQ,
+ hkswarow: sQ,
+ hoarr: oQ,
+ homtht: aQ,
+ hookleftarrow: cQ,
+ hookrightarrow: uQ,
+ hopf: bQ,
+ Hopf: pQ,
+ horbar: lQ,
+ HorizontalLine: MQ,
+ hscr: dQ,
+ Hscr: fQ,
+ hslash: zQ,
+ Hstrok: OQ,
+ hstrok: hQ,
+ HumpDownHump: AQ,
+ HumpEqual: qQ,
+ hybull: gQ,
+ hyphen: mQ,
+ Iacute: WQ,
+ iacute: RQ,
+ ic: yQ,
+ Icirc: LQ,
+ icirc: vQ,
+ Icy: EQ,
+ icy: TQ,
+ Idot: _Q,
+ IEcy: xQ,
+ iecy: SQ,
+ iexcl: wQ,
+ iff: NQ,
+ ifr: BQ,
+ Ifr: IQ,
+ Igrave: DQ,
+ igrave: CQ,
+ ii: kQ,
+ iiiint: PQ,
+ iiint: XQ,
+ iinfin: FQ,
+ iiota: UQ,
+ IJlig: $Q,
+ ijlig: HQ,
+ Imacr: GQ,
+ imacr: VQ,
+ image: jQ,
+ ImaginaryI: KQ,
+ imagline: YQ,
+ imagpart: QQ,
+ imath: JQ,
+ Im: ZQ,
+ imof: eJ,
+ imped: tJ,
+ Implies: nJ,
+ incare: iJ,
+ in: "∈",
+ infin: rJ,
+ infintie: sJ,
+ inodot: oJ,
+ intcal: aJ,
+ int: cJ,
+ Int: uJ,
+ integers: bJ,
+ Integral: pJ,
+ intercal: lJ,
+ Intersection: MJ,
+ intlarhk: dJ,
+ intprod: fJ,
+ InvisibleComma: zJ,
+ InvisibleTimes: OJ,
+ IOcy: hJ,
+ iocy: AJ,
+ Iogon: qJ,
+ iogon: gJ,
+ Iopf: mJ,
+ iopf: WJ,
+ Iota: RJ,
+ iota: yJ,
+ iprod: LJ,
+ iquest: vJ,
+ iscr: EJ,
+ Iscr: TJ,
+ isin: _J,
+ isindot: xJ,
+ isinE: SJ,
+ isins: wJ,
+ isinsv: NJ,
+ isinv: BJ,
+ it: IJ,
+ Itilde: DJ,
+ itilde: CJ,
+ Iukcy: kJ,
+ iukcy: PJ,
+ Iuml: XJ,
+ iuml: FJ,
+ Jcirc: UJ,
+ jcirc: $J,
+ Jcy: HJ,
+ jcy: GJ,
+ Jfr: VJ,
+ jfr: jJ,
+ jmath: KJ,
+ Jopf: YJ,
+ jopf: QJ,
+ Jscr: JJ,
+ jscr: ZJ,
+ Jsercy: eZ,
+ jsercy: tZ,
+ Jukcy: nZ,
+ jukcy: iZ,
+ Kappa: rZ,
+ kappa: sZ,
+ kappav: oZ,
+ Kcedil: aZ,
+ kcedil: cZ,
+ Kcy: uZ,
+ kcy: bZ,
+ Kfr: pZ,
+ kfr: lZ,
+ kgreen: MZ,
+ KHcy: dZ,
+ khcy: fZ,
+ KJcy: zZ,
+ kjcy: OZ,
+ Kopf: hZ,
+ kopf: AZ,
+ Kscr: qZ,
+ kscr: gZ,
+ lAarr: mZ,
+ Lacute: WZ,
+ lacute: RZ,
+ laemptyv: yZ,
+ lagran: LZ,
+ Lambda: vZ,
+ lambda: EZ,
+ lang: TZ,
+ Lang: _Z,
+ langd: xZ,
+ langle: SZ,
+ lap: wZ,
+ Laplacetrf: NZ,
+ laquo: BZ,
+ larrb: IZ,
+ larrbfs: DZ,
+ larr: CZ,
+ Larr: kZ,
+ lArr: PZ,
+ larrfs: XZ,
+ larrhk: FZ,
+ larrlp: UZ,
+ larrpl: $Z,
+ larrsim: HZ,
+ larrtl: GZ,
+ latail: VZ,
+ lAtail: jZ,
+ lat: KZ,
+ late: YZ,
+ lates: QZ,
+ lbarr: JZ,
+ lBarr: ZZ,
+ lbbrk: e00,
+ lbrace: t00,
+ lbrack: n00,
+ lbrke: i00,
+ lbrksld: r00,
+ lbrkslu: s00,
+ Lcaron: o00,
+ lcaron: a00,
+ Lcedil: c00,
+ lcedil: u00,
+ lceil: b00,
+ lcub: p00,
+ Lcy: l00,
+ lcy: M00,
+ ldca: d00,
+ ldquo: f00,
+ ldquor: z00,
+ ldrdhar: O00,
+ ldrushar: h00,
+ ldsh: A00,
+ le: q00,
+ lE: g00,
+ LeftAngleBracket: m00,
+ LeftArrowBar: W00,
+ leftarrow: R00,
+ LeftArrow: y00,
+ Leftarrow: L00,
+ LeftArrowRightArrow: v00,
+ leftarrowtail: E00,
+ LeftCeiling: T00,
+ LeftDoubleBracket: _00,
+ LeftDownTeeVector: x00,
+ LeftDownVectorBar: S00,
+ LeftDownVector: w00,
+ LeftFloor: N00,
+ leftharpoondown: B00,
+ leftharpoonup: I00,
+ leftleftarrows: D00,
+ leftrightarrow: C00,
+ LeftRightArrow: k00,
+ Leftrightarrow: P00,
+ leftrightarrows: X00,
+ leftrightharpoons: F00,
+ leftrightsquigarrow: U00,
+ LeftRightVector: $00,
+ LeftTeeArrow: H00,
+ LeftTee: G00,
+ LeftTeeVector: V00,
+ leftthreetimes: j00,
+ LeftTriangleBar: K00,
+ LeftTriangle: Y00,
+ LeftTriangleEqual: Q00,
+ LeftUpDownVector: J00,
+ LeftUpTeeVector: Z00,
+ LeftUpVectorBar: e10,
+ LeftUpVector: t10,
+ LeftVectorBar: n10,
+ LeftVector: i10,
+ lEg: r10,
+ leg: s10,
+ leq: o10,
+ leqq: a10,
+ leqslant: c10,
+ lescc: u10,
+ les: b10,
+ lesdot: p10,
+ lesdoto: l10,
+ lesdotor: M10,
+ lesg: d10,
+ lesges: f10,
+ lessapprox: z10,
+ lessdot: O10,
+ lesseqgtr: h10,
+ lesseqqgtr: A10,
+ LessEqualGreater: q10,
+ LessFullEqual: g10,
+ LessGreater: m10,
+ lessgtr: W10,
+ LessLess: R10,
+ lesssim: y10,
+ LessSlantEqual: L10,
+ LessTilde: v10,
+ lfisht: E10,
+ lfloor: T10,
+ Lfr: _10,
+ lfr: x10,
+ lg: S10,
+ lgE: w10,
+ lHar: N10,
+ lhard: B10,
+ lharu: I10,
+ lharul: D10,
+ lhblk: C10,
+ LJcy: k10,
+ ljcy: P10,
+ llarr: X10,
+ ll: F10,
+ Ll: U10,
+ llcorner: $10,
+ Lleftarrow: H10,
+ llhard: G10,
+ lltri: V10,
+ Lmidot: j10,
+ lmidot: K10,
+ lmoustache: Y10,
+ lmoust: Q10,
+ lnap: J10,
+ lnapprox: Z10,
+ lne: ee0,
+ lnE: te0,
+ lneq: ne0,
+ lneqq: ie0,
+ lnsim: re0,
+ loang: se0,
+ loarr: oe0,
+ lobrk: ae0,
+ longleftarrow: ce0,
+ LongLeftArrow: ue0,
+ Longleftarrow: be0,
+ longleftrightarrow: pe0,
+ LongLeftRightArrow: le0,
+ Longleftrightarrow: Me0,
+ longmapsto: de0,
+ longrightarrow: fe0,
+ LongRightArrow: ze0,
+ Longrightarrow: Oe0,
+ looparrowleft: he0,
+ looparrowright: Ae0,
+ lopar: qe0,
+ Lopf: ge0,
+ lopf: me0,
+ loplus: We0,
+ lotimes: Re0,
+ lowast: ye0,
+ lowbar: Le0,
+ LowerLeftArrow: ve0,
+ LowerRightArrow: Ee0,
+ loz: Te0,
+ lozenge: _e0,
+ lozf: xe0,
+ lpar: Se0,
+ lparlt: we0,
+ lrarr: Ne0,
+ lrcorner: Be0,
+ lrhar: Ie0,
+ lrhard: De0,
+ lrm: Ce0,
+ lrtri: ke0,
+ lsaquo: Pe0,
+ lscr: Xe0,
+ Lscr: Fe0,
+ lsh: Ue0,
+ Lsh: $e0,
+ lsim: He0,
+ lsime: Ge0,
+ lsimg: Ve0,
+ lsqb: je0,
+ lsquo: Ke0,
+ lsquor: Ye0,
+ Lstrok: Qe0,
+ lstrok: Je0,
+ ltcc: Ze0,
+ ltcir: et0,
+ lt: tt0,
+ LT: nt0,
+ Lt: it0,
+ ltdot: rt0,
+ lthree: st0,
+ ltimes: ot0,
+ ltlarr: at0,
+ ltquest: ct0,
+ ltri: ut0,
+ ltrie: bt0,
+ ltrif: pt0,
+ ltrPar: lt0,
+ lurdshar: Mt0,
+ luruhar: dt0,
+ lvertneqq: ft0,
+ lvnE: zt0,
+ macr: Ot0,
+ male: ht0,
+ malt: At0,
+ maltese: qt0,
+ Map: "⤅",
+ map: gt0,
+ mapsto: mt0,
+ mapstodown: Wt0,
+ mapstoleft: Rt0,
+ mapstoup: yt0,
+ marker: Lt0,
+ mcomma: vt0,
+ Mcy: Et0,
+ mcy: Tt0,
+ mdash: _t0,
+ mDDot: xt0,
+ measuredangle: St0,
+ MediumSpace: wt0,
+ Mellintrf: Nt0,
+ Mfr: Bt0,
+ mfr: It0,
+ mho: Dt0,
+ micro: Ct0,
+ midast: kt0,
+ midcir: Pt0,
+ mid: Xt0,
+ middot: Ft0,
+ minusb: Ut0,
+ minus: $t0,
+ minusd: Ht0,
+ minusdu: Gt0,
+ MinusPlus: Vt0,
+ mlcp: jt0,
+ mldr: Kt0,
+ mnplus: Yt0,
+ models: Qt0,
+ Mopf: Jt0,
+ mopf: Zt0,
+ mp: en0,
+ mscr: tn0,
+ Mscr: nn0,
+ mstpos: in0,
+ Mu: rn0,
+ mu: sn0,
+ multimap: on0,
+ mumap: an0,
+ nabla: cn0,
+ Nacute: un0,
+ nacute: bn0,
+ nang: pn0,
+ nap: ln0,
+ napE: Mn0,
+ napid: dn0,
+ napos: fn0,
+ napprox: zn0,
+ natural: On0,
+ naturals: hn0,
+ natur: An0,
+ nbsp: qn0,
+ nbump: gn0,
+ nbumpe: mn0,
+ ncap: Wn0,
+ Ncaron: Rn0,
+ ncaron: yn0,
+ Ncedil: Ln0,
+ ncedil: vn0,
+ ncong: En0,
+ ncongdot: Tn0,
+ ncup: _n0,
+ Ncy: xn0,
+ ncy: Sn0,
+ ndash: wn0,
+ nearhk: Nn0,
+ nearr: Bn0,
+ neArr: In0,
+ nearrow: Dn0,
+ ne: Cn0,
+ nedot: kn0,
+ NegativeMediumSpace: Pn0,
+ NegativeThickSpace: Xn0,
+ NegativeThinSpace: Fn0,
+ NegativeVeryThinSpace: Un0,
+ nequiv: $n0,
+ nesear: Hn0,
+ nesim: Gn0,
+ NestedGreaterGreater: Vn0,
+ NestedLessLess: jn0,
+ NewLine: Kn0,
+ nexist: Yn0,
+ nexists: Qn0,
+ Nfr: Jn0,
+ nfr: Zn0,
+ ngE: ei0,
+ nge: ti0,
+ ngeq: ni0,
+ ngeqq: ii0,
+ ngeqslant: ri0,
+ nges: si0,
+ nGg: oi0,
+ ngsim: ai0,
+ nGt: ci0,
+ ngt: ui0,
+ ngtr: bi0,
+ nGtv: pi0,
+ nharr: li0,
+ nhArr: Mi0,
+ nhpar: di0,
+ ni: fi0,
+ nis: zi0,
+ nisd: Oi0,
+ niv: hi0,
+ NJcy: Ai0,
+ njcy: qi0,
+ nlarr: gi0,
+ nlArr: mi0,
+ nldr: Wi0,
+ nlE: Ri0,
+ nle: yi0,
+ nleftarrow: Li0,
+ nLeftarrow: vi0,
+ nleftrightarrow: Ei0,
+ nLeftrightarrow: Ti0,
+ nleq: _i0,
+ nleqq: xi0,
+ nleqslant: Si0,
+ nles: wi0,
+ nless: Ni0,
+ nLl: Bi0,
+ nlsim: Ii0,
+ nLt: Di0,
+ nlt: Ci0,
+ nltri: ki0,
+ nltrie: Pi0,
+ nLtv: Xi0,
+ nmid: Fi0,
+ NoBreak: Ui0,
+ NonBreakingSpace: $i0,
+ nopf: Hi0,
+ Nopf: Gi0,
+ Not: Vi0,
+ not: ji0,
+ NotCongruent: Ki0,
+ NotCupCap: Yi0,
+ NotDoubleVerticalBar: Qi0,
+ NotElement: Ji0,
+ NotEqual: Zi0,
+ NotEqualTilde: er0,
+ NotExists: tr0,
+ NotGreater: nr0,
+ NotGreaterEqual: ir0,
+ NotGreaterFullEqual: rr0,
+ NotGreaterGreater: sr0,
+ NotGreaterLess: or0,
+ NotGreaterSlantEqual: ar0,
+ NotGreaterTilde: cr0,
+ NotHumpDownHump: ur0,
+ NotHumpEqual: br0,
+ notin: pr0,
+ notindot: lr0,
+ notinE: Mr0,
+ notinva: dr0,
+ notinvb: fr0,
+ notinvc: zr0,
+ NotLeftTriangleBar: Or0,
+ NotLeftTriangle: hr0,
+ NotLeftTriangleEqual: Ar0,
+ NotLess: qr0,
+ NotLessEqual: gr0,
+ NotLessGreater: mr0,
+ NotLessLess: Wr0,
+ NotLessSlantEqual: Rr0,
+ NotLessTilde: yr0,
+ NotNestedGreaterGreater: Lr0,
+ NotNestedLessLess: vr0,
+ notni: Er0,
+ notniva: Tr0,
+ notnivb: _r0,
+ notnivc: xr0,
+ NotPrecedes: Sr0,
+ NotPrecedesEqual: wr0,
+ NotPrecedesSlantEqual: Nr0,
+ NotReverseElement: Br0,
+ NotRightTriangleBar: Ir0,
+ NotRightTriangle: Dr0,
+ NotRightTriangleEqual: Cr0,
+ NotSquareSubset: kr0,
+ NotSquareSubsetEqual: Pr0,
+ NotSquareSuperset: Xr0,
+ NotSquareSupersetEqual: Fr0,
+ NotSubset: Ur0,
+ NotSubsetEqual: $r0,
+ NotSucceeds: Hr0,
+ NotSucceedsEqual: Gr0,
+ NotSucceedsSlantEqual: Vr0,
+ NotSucceedsTilde: jr0,
+ NotSuperset: Kr0,
+ NotSupersetEqual: Yr0,
+ NotTilde: Qr0,
+ NotTildeEqual: Jr0,
+ NotTildeFullEqual: Zr0,
+ NotTildeTilde: es0,
+ NotVerticalBar: ts0,
+ nparallel: ns0,
+ npar: is0,
+ nparsl: rs0,
+ npart: ss0,
+ npolint: os0,
+ npr: as0,
+ nprcue: cs0,
+ nprec: us0,
+ npreceq: bs0,
+ npre: ps0,
+ nrarrc: ls0,
+ nrarr: Ms0,
+ nrArr: ds0,
+ nrarrw: fs0,
+ nrightarrow: zs0,
+ nRightarrow: Os0,
+ nrtri: hs0,
+ nrtrie: As0,
+ nsc: qs0,
+ nsccue: gs0,
+ nsce: ms0,
+ Nscr: Ws0,
+ nscr: Rs0,
+ nshortmid: ys0,
+ nshortparallel: Ls0,
+ nsim: vs0,
+ nsime: Es0,
+ nsimeq: Ts0,
+ nsmid: _s0,
+ nspar: xs0,
+ nsqsube: Ss0,
+ nsqsupe: ws0,
+ nsub: Ns0,
+ nsubE: Bs0,
+ nsube: Is0,
+ nsubset: Ds0,
+ nsubseteq: Cs0,
+ nsubseteqq: ks0,
+ nsucc: Ps0,
+ nsucceq: Xs0,
+ nsup: Fs0,
+ nsupE: Us0,
+ nsupe: $s0,
+ nsupset: Hs0,
+ nsupseteq: Gs0,
+ nsupseteqq: Vs0,
+ ntgl: js0,
+ Ntilde: Ks0,
+ ntilde: Ys0,
+ ntlg: Qs0,
+ ntriangleleft: Js0,
+ ntrianglelefteq: Zs0,
+ ntriangleright: eo0,
+ ntrianglerighteq: to0,
+ Nu: no0,
+ nu: io0,
+ num: ro0,
+ numero: so0,
+ numsp: oo0,
+ nvap: ao0,
+ nvdash: co0,
+ nvDash: uo0,
+ nVdash: bo0,
+ nVDash: po0,
+ nvge: lo0,
+ nvgt: Mo0,
+ nvHarr: do0,
+ nvinfin: fo0,
+ nvlArr: zo0,
+ nvle: Oo0,
+ nvlt: ho0,
+ nvltrie: Ao0,
+ nvrArr: qo0,
+ nvrtrie: go0,
+ nvsim: mo0,
+ nwarhk: Wo0,
+ nwarr: Ro0,
+ nwArr: yo0,
+ nwarrow: Lo0,
+ nwnear: vo0,
+ Oacute: Eo0,
+ oacute: To0,
+ oast: _o0,
+ Ocirc: xo0,
+ ocirc: So0,
+ ocir: wo0,
+ Ocy: No0,
+ ocy: Bo0,
+ odash: Io0,
+ Odblac: Do0,
+ odblac: Co0,
+ odiv: ko0,
+ odot: Po0,
+ odsold: Xo0,
+ OElig: Fo0,
+ oelig: Uo0,
+ ofcir: $o0,
+ Ofr: Ho0,
+ ofr: Go0,
+ ogon: Vo0,
+ Ograve: jo0,
+ ograve: Ko0,
+ ogt: Yo0,
+ ohbar: Qo0,
+ ohm: Jo0,
+ oint: Zo0,
+ olarr: ea0,
+ olcir: ta0,
+ olcross: na0,
+ oline: ia0,
+ olt: ra0,
+ Omacr: sa0,
+ omacr: oa0,
+ Omega: aa0,
+ omega: ca0,
+ Omicron: ua0,
+ omicron: ba0,
+ omid: pa0,
+ ominus: la0,
+ Oopf: Ma0,
+ oopf: da0,
+ opar: fa0,
+ OpenCurlyDoubleQuote: za0,
+ OpenCurlyQuote: Oa0,
+ operp: ha0,
+ oplus: Aa0,
+ orarr: qa0,
+ Or: ga0,
+ or: ma0,
+ ord: Wa0,
+ order: Ra0,
+ orderof: ya0,
+ ordf: La0,
+ ordm: va0,
+ origof: Ea0,
+ oror: Ta0,
+ orslope: _a0,
+ orv: xa0,
+ oS: Sa0,
+ Oscr: wa0,
+ oscr: Na0,
+ Oslash: Ba0,
+ oslash: Ia0,
+ osol: Da0,
+ Otilde: Ca0,
+ otilde: ka0,
+ otimesas: Pa0,
+ Otimes: Xa0,
+ otimes: Fa0,
+ Ouml: Ua0,
+ ouml: $a0,
+ ovbar: Ha0,
+ OverBar: Ga0,
+ OverBrace: Va0,
+ OverBracket: ja0,
+ OverParenthesis: Ka0,
+ para: Ya0,
+ parallel: Qa0,
+ par: Ja0,
+ parsim: Za0,
+ parsl: ec0,
+ part: tc0,
+ PartialD: nc0,
+ Pcy: ic0,
+ pcy: rc0,
+ percnt: sc0,
+ period: oc0,
+ permil: ac0,
+ perp: cc0,
+ pertenk: uc0,
+ Pfr: bc0,
+ pfr: pc0,
+ Phi: lc0,
+ phi: Mc0,
+ phiv: dc0,
+ phmmat: fc0,
+ phone: zc0,
+ Pi: Oc0,
+ pi: hc0,
+ pitchfork: Ac0,
+ piv: qc0,
+ planck: gc0,
+ planckh: mc0,
+ plankv: Wc0,
+ plusacir: Rc0,
+ plusb: yc0,
+ pluscir: Lc0,
+ plus: vc0,
+ plusdo: Ec0,
+ plusdu: Tc0,
+ pluse: _c0,
+ PlusMinus: xc0,
+ plusmn: Sc0,
+ plussim: wc0,
+ plustwo: Nc0,
+ pm: Bc0,
+ Poincareplane: Ic0,
+ pointint: Dc0,
+ popf: Cc0,
+ Popf: kc0,
+ pound: Pc0,
+ prap: Xc0,
+ Pr: Fc0,
+ pr: Uc0,
+ prcue: $c0,
+ precapprox: Hc0,
+ prec: Gc0,
+ preccurlyeq: Vc0,
+ Precedes: jc0,
+ PrecedesEqual: Kc0,
+ PrecedesSlantEqual: Yc0,
+ PrecedesTilde: Qc0,
+ preceq: Jc0,
+ precnapprox: Zc0,
+ precneqq: e20,
+ precnsim: t20,
+ pre: n20,
+ prE: i20,
+ precsim: r20,
+ prime: s20,
+ Prime: o20,
+ primes: a20,
+ prnap: c20,
+ prnE: u20,
+ prnsim: b20,
+ prod: p20,
+ Product: l20,
+ profalar: M20,
+ profline: d20,
+ profsurf: f20,
+ prop: z20,
+ Proportional: O20,
+ Proportion: h20,
+ propto: A20,
+ prsim: q20,
+ prurel: g20,
+ Pscr: m20,
+ pscr: W20,
+ Psi: R20,
+ psi: y20,
+ puncsp: L20,
+ Qfr: v20,
+ qfr: E20,
+ qint: T20,
+ qopf: _20,
+ Qopf: x20,
+ qprime: S20,
+ Qscr: w20,
+ qscr: N20,
+ quaternions: B20,
+ quatint: I20,
+ quest: D20,
+ questeq: C20,
+ quot: k20,
+ QUOT: P20,
+ rAarr: X20,
+ race: F20,
+ Racute: U20,
+ racute: $20,
+ radic: H20,
+ raemptyv: G20,
+ rang: V20,
+ Rang: j20,
+ rangd: K20,
+ range: Y20,
+ rangle: Q20,
+ raquo: J20,
+ rarrap: Z20,
+ rarrb: eu0,
+ rarrbfs: tu0,
+ rarrc: nu0,
+ rarr: iu0,
+ Rarr: ru0,
+ rArr: su0,
+ rarrfs: ou0,
+ rarrhk: au0,
+ rarrlp: cu0,
+ rarrpl: uu0,
+ rarrsim: bu0,
+ Rarrtl: pu0,
+ rarrtl: lu0,
+ rarrw: Mu0,
+ ratail: du0,
+ rAtail: fu0,
+ ratio: zu0,
+ rationals: Ou0,
+ rbarr: hu0,
+ rBarr: Au0,
+ RBarr: qu0,
+ rbbrk: gu0,
+ rbrace: mu0,
+ rbrack: Wu0,
+ rbrke: Ru0,
+ rbrksld: yu0,
+ rbrkslu: Lu0,
+ Rcaron: vu0,
+ rcaron: Eu0,
+ Rcedil: Tu0,
+ rcedil: _u0,
+ rceil: xu0,
+ rcub: Su0,
+ Rcy: wu0,
+ rcy: Nu0,
+ rdca: Bu0,
+ rdldhar: Iu0,
+ rdquo: Du0,
+ rdquor: Cu0,
+ rdsh: ku0,
+ real: Pu0,
+ realine: Xu0,
+ realpart: Fu0,
+ reals: Uu0,
+ Re: $u0,
+ rect: Hu0,
+ reg: Gu0,
+ REG: Vu0,
+ ReverseElement: ju0,
+ ReverseEquilibrium: Ku0,
+ ReverseUpEquilibrium: Yu0,
+ rfisht: Qu0,
+ rfloor: Ju0,
+ rfr: Zu0,
+ Rfr: eb0,
+ rHar: tb0,
+ rhard: nb0,
+ rharu: ib0,
+ rharul: rb0,
+ Rho: sb0,
+ rho: ob0,
+ rhov: ab0,
+ RightAngleBracket: cb0,
+ RightArrowBar: ub0,
+ rightarrow: bb0,
+ RightArrow: pb0,
+ Rightarrow: lb0,
+ RightArrowLeftArrow: Mb0,
+ rightarrowtail: db0,
+ RightCeiling: fb0,
+ RightDoubleBracket: zb0,
+ RightDownTeeVector: Ob0,
+ RightDownVectorBar: hb0,
+ RightDownVector: Ab0,
+ RightFloor: qb0,
+ rightharpoondown: gb0,
+ rightharpoonup: mb0,
+ rightleftarrows: Wb0,
+ rightleftharpoons: Rb0,
+ rightrightarrows: yb0,
+ rightsquigarrow: Lb0,
+ RightTeeArrow: vb0,
+ RightTee: Eb0,
+ RightTeeVector: Tb0,
+ rightthreetimes: _b0,
+ RightTriangleBar: xb0,
+ RightTriangle: Sb0,
+ RightTriangleEqual: wb0,
+ RightUpDownVector: Nb0,
+ RightUpTeeVector: Bb0,
+ RightUpVectorBar: Ib0,
+ RightUpVector: Db0,
+ RightVectorBar: Cb0,
+ RightVector: kb0,
+ ring: Pb0,
+ risingdotseq: Xb0,
+ rlarr: Fb0,
+ rlhar: Ub0,
+ rlm: $b0,
+ rmoustache: Hb0,
+ rmoust: Gb0,
+ rnmid: Vb0,
+ roang: jb0,
+ roarr: Kb0,
+ robrk: Yb0,
+ ropar: Qb0,
+ ropf: Jb0,
+ Ropf: Zb0,
+ roplus: ep0,
+ rotimes: tp0,
+ RoundImplies: np0,
+ rpar: ip0,
+ rpargt: rp0,
+ rppolint: sp0,
+ rrarr: op0,
+ Rrightarrow: ap0,
+ rsaquo: cp0,
+ rscr: up0,
+ Rscr: bp0,
+ rsh: pp0,
+ Rsh: lp0,
+ rsqb: Mp0,
+ rsquo: dp0,
+ rsquor: fp0,
+ rthree: zp0,
+ rtimes: Op0,
+ rtri: hp0,
+ rtrie: Ap0,
+ rtrif: qp0,
+ rtriltri: gp0,
+ RuleDelayed: mp0,
+ ruluhar: Wp0,
+ rx: Rp0,
+ Sacute: yp0,
+ sacute: Lp0,
+ sbquo: vp0,
+ scap: Ep0,
+ Scaron: Tp0,
+ scaron: _p0,
+ Sc: xp0,
+ sc: Sp0,
+ sccue: wp0,
+ sce: Np0,
+ scE: Bp0,
+ Scedil: Ip0,
+ scedil: Dp0,
+ Scirc: Cp0,
+ scirc: kp0,
+ scnap: Pp0,
+ scnE: Xp0,
+ scnsim: Fp0,
+ scpolint: Up0,
+ scsim: $p0,
+ Scy: Hp0,
+ scy: Gp0,
+ sdotb: Vp0,
+ sdot: jp0,
+ sdote: Kp0,
+ searhk: Yp0,
+ searr: Qp0,
+ seArr: Jp0,
+ searrow: Zp0,
+ sect: el0,
+ semi: tl0,
+ seswar: nl0,
+ setminus: il0,
+ setmn: rl0,
+ sext: sl0,
+ Sfr: ol0,
+ sfr: al0,
+ sfrown: cl0,
+ sharp: ul0,
+ SHCHcy: bl0,
+ shchcy: pl0,
+ SHcy: ll0,
+ shcy: Ml0,
+ ShortDownArrow: dl0,
+ ShortLeftArrow: fl0,
+ shortmid: zl0,
+ shortparallel: Ol0,
+ ShortRightArrow: hl0,
+ ShortUpArrow: Al0,
+ shy: ql0,
+ Sigma: gl0,
+ sigma: ml0,
+ sigmaf: Wl0,
+ sigmav: Rl0,
+ sim: yl0,
+ simdot: Ll0,
+ sime: vl0,
+ simeq: El0,
+ simg: Tl0,
+ simgE: _l0,
+ siml: xl0,
+ simlE: Sl0,
+ simne: wl0,
+ simplus: Nl0,
+ simrarr: Bl0,
+ slarr: Il0,
+ SmallCircle: Dl0,
+ smallsetminus: Cl0,
+ smashp: kl0,
+ smeparsl: Pl0,
+ smid: Xl0,
+ smile: Fl0,
+ smt: Ul0,
+ smte: $l0,
+ smtes: Hl0,
+ SOFTcy: Gl0,
+ softcy: Vl0,
+ solbar: jl0,
+ solb: Kl0,
+ sol: Yl0,
+ Sopf: Ql0,
+ sopf: Jl0,
+ spades: Zl0,
+ spadesuit: eM0,
+ spar: tM0,
+ sqcap: nM0,
+ sqcaps: iM0,
+ sqcup: rM0,
+ sqcups: sM0,
+ Sqrt: oM0,
+ sqsub: aM0,
+ sqsube: cM0,
+ sqsubset: uM0,
+ sqsubseteq: bM0,
+ sqsup: pM0,
+ sqsupe: lM0,
+ sqsupset: MM0,
+ sqsupseteq: dM0,
+ square: fM0,
+ Square: zM0,
+ SquareIntersection: OM0,
+ SquareSubset: hM0,
+ SquareSubsetEqual: AM0,
+ SquareSuperset: qM0,
+ SquareSupersetEqual: gM0,
+ SquareUnion: mM0,
+ squarf: WM0,
+ squ: RM0,
+ squf: yM0,
+ srarr: LM0,
+ Sscr: vM0,
+ sscr: EM0,
+ ssetmn: TM0,
+ ssmile: _M0,
+ sstarf: xM0,
+ Star: SM0,
+ star: wM0,
+ starf: NM0,
+ straightepsilon: BM0,
+ straightphi: IM0,
+ strns: DM0,
+ sub: CM0,
+ Sub: kM0,
+ subdot: PM0,
+ subE: XM0,
+ sube: FM0,
+ subedot: UM0,
+ submult: $M0,
+ subnE: HM0,
+ subne: GM0,
+ subplus: VM0,
+ subrarr: jM0,
+ subset: KM0,
+ Subset: YM0,
+ subseteq: QM0,
+ subseteqq: JM0,
+ SubsetEqual: ZM0,
+ subsetneq: ed0,
+ subsetneqq: td0,
+ subsim: nd0,
+ subsub: id0,
+ subsup: rd0,
+ succapprox: sd0,
+ succ: od0,
+ succcurlyeq: ad0,
+ Succeeds: cd0,
+ SucceedsEqual: ud0,
+ SucceedsSlantEqual: bd0,
+ SucceedsTilde: pd0,
+ succeq: ld0,
+ succnapprox: Md0,
+ succneqq: dd0,
+ succnsim: fd0,
+ succsim: zd0,
+ SuchThat: Od0,
+ sum: hd0,
+ Sum: Ad0,
+ sung: qd0,
+ sup1: gd0,
+ sup2: md0,
+ sup3: Wd0,
+ sup: Rd0,
+ Sup: yd0,
+ supdot: Ld0,
+ supdsub: vd0,
+ supE: Ed0,
+ supe: Td0,
+ supedot: _d0,
+ Superset: xd0,
+ SupersetEqual: Sd0,
+ suphsol: wd0,
+ suphsub: Nd0,
+ suplarr: Bd0,
+ supmult: Id0,
+ supnE: Dd0,
+ supne: Cd0,
+ supplus: kd0,
+ supset: Pd0,
+ Supset: Xd0,
+ supseteq: Fd0,
+ supseteqq: Ud0,
+ supsetneq: $d0,
+ supsetneqq: Hd0,
+ supsim: Gd0,
+ supsub: Vd0,
+ supsup: jd0,
+ swarhk: Kd0,
+ swarr: Yd0,
+ swArr: Qd0,
+ swarrow: Jd0,
+ swnwar: Zd0,
+ szlig: ef0,
+ Tab: tf0,
+ target: nf0,
+ Tau: if0,
+ tau: rf0,
+ tbrk: sf0,
+ Tcaron: of0,
+ tcaron: af0,
+ Tcedil: cf0,
+ tcedil: uf0,
+ Tcy: bf0,
+ tcy: pf0,
+ tdot: lf0,
+ telrec: Mf0,
+ Tfr: df0,
+ tfr: ff0,
+ there4: zf0,
+ therefore: Of0,
+ Therefore: hf0,
+ Theta: Af0,
+ theta: qf0,
+ thetasym: gf0,
+ thetav: mf0,
+ thickapprox: Wf0,
+ thicksim: Rf0,
+ ThickSpace: yf0,
+ ThinSpace: Lf0,
+ thinsp: vf0,
+ thkap: Ef0,
+ thksim: Tf0,
+ THORN: _f0,
+ thorn: xf0,
+ tilde: Sf0,
+ Tilde: wf0,
+ TildeEqual: Nf0,
+ TildeFullEqual: Bf0,
+ TildeTilde: If0,
+ timesbar: Df0,
+ timesb: Cf0,
+ times: kf0,
+ timesd: Pf0,
+ tint: Xf0,
+ toea: Ff0,
+ topbot: Uf0,
+ topcir: $f0,
+ top: Hf0,
+ Topf: Gf0,
+ topf: Vf0,
+ topfork: jf0,
+ tosa: Kf0,
+ tprime: Yf0,
+ trade: Qf0,
+ TRADE: Jf0,
+ triangle: Zf0,
+ triangledown: ez0,
+ triangleleft: tz0,
+ trianglelefteq: nz0,
+ triangleq: iz0,
+ triangleright: rz0,
+ trianglerighteq: sz0,
+ tridot: oz0,
+ trie: az0,
+ triminus: cz0,
+ TripleDot: uz0,
+ triplus: bz0,
+ trisb: pz0,
+ tritime: lz0,
+ trpezium: Mz0,
+ Tscr: dz0,
+ tscr: fz0,
+ TScy: zz0,
+ tscy: Oz0,
+ TSHcy: hz0,
+ tshcy: Az0,
+ Tstrok: qz0,
+ tstrok: gz0,
+ twixt: mz0,
+ twoheadleftarrow: Wz0,
+ twoheadrightarrow: Rz0,
+ Uacute: yz0,
+ uacute: Lz0,
+ uarr: vz0,
+ Uarr: Ez0,
+ uArr: Tz0,
+ Uarrocir: _z0,
+ Ubrcy: xz0,
+ ubrcy: Sz0,
+ Ubreve: wz0,
+ ubreve: Nz0,
+ Ucirc: Bz0,
+ ucirc: Iz0,
+ Ucy: Dz0,
+ ucy: Cz0,
+ udarr: kz0,
+ Udblac: Pz0,
+ udblac: Xz0,
+ udhar: Fz0,
+ ufisht: Uz0,
+ Ufr: $z0,
+ ufr: Hz0,
+ Ugrave: Gz0,
+ ugrave: Vz0,
+ uHar: jz0,
+ uharl: Kz0,
+ uharr: Yz0,
+ uhblk: Qz0,
+ ulcorn: Jz0,
+ ulcorner: Zz0,
+ ulcrop: e30,
+ ultri: t30,
+ Umacr: n30,
+ umacr: i30,
+ uml: r30,
+ UnderBar: s30,
+ UnderBrace: o30,
+ UnderBracket: a30,
+ UnderParenthesis: c30,
+ Union: u30,
+ UnionPlus: b30,
+ Uogon: p30,
+ uogon: l30,
+ Uopf: M30,
+ uopf: d30,
+ UpArrowBar: f30,
+ uparrow: z30,
+ UpArrow: O30,
+ Uparrow: h30,
+ UpArrowDownArrow: A30,
+ updownarrow: q30,
+ UpDownArrow: g30,
+ Updownarrow: m30,
+ UpEquilibrium: W30,
+ upharpoonleft: R30,
+ upharpoonright: y30,
+ uplus: L30,
+ UpperLeftArrow: v30,
+ UpperRightArrow: E30,
+ upsi: T30,
+ Upsi: _30,
+ upsih: x30,
+ Upsilon: S30,
+ upsilon: w30,
+ UpTeeArrow: N30,
+ UpTee: B30,
+ upuparrows: I30,
+ urcorn: D30,
+ urcorner: C30,
+ urcrop: k30,
+ Uring: P30,
+ uring: X30,
+ urtri: F30,
+ Uscr: U30,
+ uscr: $30,
+ utdot: H30,
+ Utilde: G30,
+ utilde: V30,
+ utri: j30,
+ utrif: K30,
+ uuarr: Y30,
+ Uuml: Q30,
+ uuml: J30,
+ uwangle: Z30,
+ vangrt: eO0,
+ varepsilon: tO0,
+ varkappa: nO0,
+ varnothing: iO0,
+ varphi: rO0,
+ varpi: sO0,
+ varpropto: oO0,
+ varr: aO0,
+ vArr: cO0,
+ varrho: uO0,
+ varsigma: bO0,
+ varsubsetneq: pO0,
+ varsubsetneqq: lO0,
+ varsupsetneq: MO0,
+ varsupsetneqq: dO0,
+ vartheta: fO0,
+ vartriangleleft: zO0,
+ vartriangleright: OO0,
+ vBar: hO0,
+ Vbar: AO0,
+ vBarv: qO0,
+ Vcy: gO0,
+ vcy: mO0,
+ vdash: WO0,
+ vDash: RO0,
+ Vdash: yO0,
+ VDash: LO0,
+ Vdashl: vO0,
+ veebar: EO0,
+ vee: TO0,
+ Vee: _O0,
+ veeeq: xO0,
+ vellip: SO0,
+ verbar: wO0,
+ Verbar: NO0,
+ vert: BO0,
+ Vert: IO0,
+ VerticalBar: DO0,
+ VerticalLine: CO0,
+ VerticalSeparator: kO0,
+ VerticalTilde: PO0,
+ VeryThinSpace: XO0,
+ Vfr: FO0,
+ vfr: UO0,
+ vltri: $O0,
+ vnsub: HO0,
+ vnsup: GO0,
+ Vopf: VO0,
+ vopf: jO0,
+ vprop: KO0,
+ vrtri: YO0,
+ Vscr: QO0,
+ vscr: JO0,
+ vsubnE: ZO0,
+ vsubne: eh0,
+ vsupnE: th0,
+ vsupne: nh0,
+ Vvdash: ih0,
+ vzigzag: rh0,
+ Wcirc: sh0,
+ wcirc: oh0,
+ wedbar: ah0,
+ wedge: ch0,
+ Wedge: uh0,
+ wedgeq: bh0,
+ weierp: ph0,
+ Wfr: lh0,
+ wfr: Mh0,
+ Wopf: dh0,
+ wopf: fh0,
+ wp: zh0,
+ wr: Oh0,
+ wreath: hh0,
+ Wscr: Ah0,
+ wscr: qh0,
+ xcap: gh0,
+ xcirc: mh0,
+ xcup: Wh0,
+ xdtri: Rh0,
+ Xfr: yh0,
+ xfr: Lh0,
+ xharr: vh0,
+ xhArr: Eh0,
+ Xi: Th0,
+ xi: _h0,
+ xlarr: xh0,
+ xlArr: Sh0,
+ xmap: wh0,
+ xnis: Nh0,
+ xodot: Bh0,
+ Xopf: Ih0,
+ xopf: Dh0,
+ xoplus: Ch0,
+ xotime: kh0,
+ xrarr: Ph0,
+ xrArr: Xh0,
+ Xscr: Fh0,
+ xscr: Uh0,
+ xsqcup: $h0,
+ xuplus: Hh0,
+ xutri: Gh0,
+ xvee: Vh0,
+ xwedge: jh0,
+ Yacute: Kh0,
+ yacute: Yh0,
+ YAcy: Qh0,
+ yacy: Jh0,
+ Ycirc: Zh0,
+ ycirc: eA0,
+ Ycy: tA0,
+ ycy: nA0,
+ yen: iA0,
+ Yfr: rA0,
+ yfr: sA0,
+ YIcy: oA0,
+ yicy: aA0,
+ Yopf: cA0,
+ yopf: uA0,
+ Yscr: bA0,
+ yscr: pA0,
+ YUcy: lA0,
+ yucy: MA0,
+ yuml: dA0,
+ Yuml: fA0,
+ Zacute: zA0,
+ zacute: OA0,
+ Zcaron: hA0,
+ zcaron: AA0,
+ Zcy: qA0,
+ zcy: gA0,
+ Zdot: mA0,
+ zdot: WA0,
+ zeetrf: RA0,
+ ZeroWidthSpace: yA0,
+ Zeta: LA0,
+ zeta: vA0,
+ zfr: EA0,
+ Zfr: TA0,
+ ZHcy: _A0,
+ zhcy: xA0,
+ zigrarr: SA0,
+ zopf: wA0,
+ Zopf: NA0,
+ Zscr: BA0,
+ zscr: IA0,
+ zwj: DA0,
+ zwnj: CA0,
+ },
+ kA0 = "Á",
+ PA0 = "á",
+ XA0 = "Â",
+ FA0 = "â",
+ UA0 = "´",
+ $A0 = "Æ",
+ HA0 = "æ",
+ GA0 = "À",
+ VA0 = "à",
+ jA0 = "&",
+ KA0 = "&",
+ YA0 = "Å",
+ QA0 = "å",
+ JA0 = "Ã",
+ ZA0 = "ã",
+ e40 = "Ä",
+ t40 = "ä",
+ n40 = "¦",
+ i40 = "Ç",
+ r40 = "ç",
+ s40 = "¸",
+ o40 = "¢",
+ a40 = "©",
+ c40 = "©",
+ u40 = "¤",
+ b40 = "°",
+ p40 = "÷",
+ l40 = "É",
+ M40 = "é",
+ d40 = "Ê",
+ f40 = "ê",
+ z40 = "È",
+ O40 = "è",
+ h40 = "Ð",
+ A40 = "ð",
+ q40 = "Ë",
+ g40 = "ë",
+ m40 = "½",
+ W40 = "¼",
+ R40 = "¾",
+ y40 = ">",
+ L40 = ">",
+ v40 = "Í",
+ E40 = "í",
+ T40 = "Î",
+ _40 = "î",
+ x40 = "¡",
+ S40 = "Ì",
+ w40 = "ì",
+ N40 = "¿",
+ B40 = "Ï",
+ I40 = "ï",
+ D40 = "«",
+ C40 = "<",
+ k40 = "<",
+ P40 = "¯",
+ X40 = "µ",
+ F40 = "·",
+ U40 = " ",
+ $40 = "¬",
+ H40 = "Ñ",
+ G40 = "ñ",
+ V40 = "Ó",
+ j40 = "ó",
+ K40 = "Ô",
+ Y40 = "ô",
+ Q40 = "Ò",
+ J40 = "ò",
+ Z40 = "ª",
+ eq0 = "º",
+ tq0 = "Ø",
+ nq0 = "ø",
+ iq0 = "Õ",
+ rq0 = "õ",
+ sq0 = "Ö",
+ oq0 = "ö",
+ aq0 = "¶",
+ cq0 = "±",
+ uq0 = "£",
+ bq0 = '"',
+ pq0 = '"',
+ lq0 = "»",
+ Mq0 = "®",
+ dq0 = "®",
+ fq0 = "§",
+ zq0 = "",
+ Oq0 = "¹",
+ hq0 = "²",
+ Aq0 = "³",
+ qq0 = "ß",
+ gq0 = "Þ",
+ mq0 = "þ",
+ Wq0 = "×",
+ Rq0 = "Ú",
+ yq0 = "ú",
+ Lq0 = "Û",
+ vq0 = "û",
+ Eq0 = "Ù",
+ Tq0 = "ù",
+ _q0 = "¨",
+ xq0 = "Ü",
+ Sq0 = "ü",
+ wq0 = "Ý",
+ Nq0 = "ý",
+ Bq0 = "¥",
+ Iq0 = "ÿ",
+ Dq0 = {
+ Aacute: kA0,
+ aacute: PA0,
+ Acirc: XA0,
+ acirc: FA0,
+ acute: UA0,
+ AElig: $A0,
+ aelig: HA0,
+ Agrave: GA0,
+ agrave: VA0,
+ amp: jA0,
+ AMP: KA0,
+ Aring: YA0,
+ aring: QA0,
+ Atilde: JA0,
+ atilde: ZA0,
+ Auml: e40,
+ auml: t40,
+ brvbar: n40,
+ Ccedil: i40,
+ ccedil: r40,
+ cedil: s40,
+ cent: o40,
+ copy: a40,
+ COPY: c40,
+ curren: u40,
+ deg: b40,
+ divide: p40,
+ Eacute: l40,
+ eacute: M40,
+ Ecirc: d40,
+ ecirc: f40,
+ Egrave: z40,
+ egrave: O40,
+ ETH: h40,
+ eth: A40,
+ Euml: q40,
+ euml: g40,
+ frac12: m40,
+ frac14: W40,
+ frac34: R40,
+ gt: y40,
+ GT: L40,
+ Iacute: v40,
+ iacute: E40,
+ Icirc: T40,
+ icirc: _40,
+ iexcl: x40,
+ Igrave: S40,
+ igrave: w40,
+ iquest: N40,
+ Iuml: B40,
+ iuml: I40,
+ laquo: D40,
+ lt: C40,
+ LT: k40,
+ macr: P40,
+ micro: X40,
+ middot: F40,
+ nbsp: U40,
+ not: $40,
+ Ntilde: H40,
+ ntilde: G40,
+ Oacute: V40,
+ oacute: j40,
+ Ocirc: K40,
+ ocirc: Y40,
+ Ograve: Q40,
+ ograve: J40,
+ ordf: Z40,
+ ordm: eq0,
+ Oslash: tq0,
+ oslash: nq0,
+ Otilde: iq0,
+ otilde: rq0,
+ Ouml: sq0,
+ ouml: oq0,
+ para: aq0,
+ plusmn: cq0,
+ pound: uq0,
+ quot: bq0,
+ QUOT: pq0,
+ raquo: lq0,
+ reg: Mq0,
+ REG: dq0,
+ sect: fq0,
+ shy: zq0,
+ sup1: Oq0,
+ sup2: hq0,
+ sup3: Aq0,
+ szlig: qq0,
+ THORN: gq0,
+ thorn: mq0,
+ times: Wq0,
+ Uacute: Rq0,
+ uacute: yq0,
+ Ucirc: Lq0,
+ ucirc: vq0,
+ Ugrave: Eq0,
+ ugrave: Tq0,
+ uml: _q0,
+ Uuml: xq0,
+ uuml: Sq0,
+ Yacute: wq0,
+ yacute: Nq0,
+ yen: Bq0,
+ yuml: Iq0,
+ },
+ Cq0 = "&",
+ kq0 = "'",
+ Pq0 = ">",
+ Xq0 = "<",
+ Fq0 = '"',
+ h6 = { amp: Cq0, apos: kq0, gt: Pq0, lt: Xq0, quot: Fq0 };
+var Si = {};
+const Uq0 = {
+ 0: 65533,
+ 128: 8364,
+ 130: 8218,
+ 131: 402,
+ 132: 8222,
+ 133: 8230,
+ 134: 8224,
+ 135: 8225,
+ 136: 710,
+ 137: 8240,
+ 138: 352,
+ 139: 8249,
+ 140: 338,
+ 142: 381,
+ 145: 8216,
+ 146: 8217,
+ 147: 8220,
+ 148: 8221,
+ 149: 8226,
+ 150: 8211,
+ 151: 8212,
+ 152: 732,
+ 153: 8482,
+ 154: 353,
+ 155: 8250,
+ 156: 339,
+ 158: 382,
+ 159: 376,
+};
+var nO;
+function $q0() {
+ if (nO) return Si;
+ nO = 1;
+ var t =
+ (Si && Si.__importDefault) ||
+ function (r) {
+ return r && r.__esModule ? r : { default: r };
+ };
+ Object.defineProperty(Si, "__esModule", { value: !0 });
+ var e = t(Uq0),
+ n =
+ String.fromCodePoint ||
+ function (r) {
+ var s = "";
+ return (
+ r > 65535 &&
+ ((r -= 65536),
+ (s += String.fromCharCode(((r >>> 10) & 1023) | 55296)),
+ (r = 56320 | (r & 1023))),
+ (s += String.fromCharCode(r)),
+ s
+ );
+ };
+ function i(r) {
+ return (r >= 55296 && r <= 57343) || r > 1114111
+ ? "�"
+ : (r in e.default && (r = e.default[r]), n(r));
+ }
+ return ((Si.default = i), Si);
+}
+var iO;
+function rO() {
+ if (iO) return Le;
+ iO = 1;
+ var t =
+ (Le && Le.__importDefault) ||
+ function (c) {
+ return c && c.__esModule ? c : { default: c };
+ };
+ (Object.defineProperty(Le, "__esModule", { value: !0 }),
+ (Le.decodeHTML = Le.decodeHTMLStrict = Le.decodeXML = void 0));
+ var e = t(O6),
+ n = t(Dq0),
+ i = t(h6),
+ r = t($q0()),
+ s = /&(?:[a-zA-Z0-9]+|#[xX][\da-fA-F]+|#\d+);/g;
+ ((Le.decodeXML = o(i.default)), (Le.decodeHTMLStrict = o(e.default)));
+ function o(c) {
+ var b = u(c);
+ return function (l) {
+ return String(l).replace(s, b);
+ };
+ }
+ var a = function (c, b) {
+ return c < b ? 1 : -1;
+ };
+ Le.decodeHTML = (function () {
+ for (
+ var c = Object.keys(n.default).sort(a),
+ b = Object.keys(e.default).sort(a),
+ l = 0,
+ p = 0;
+ l < b.length;
+ l++
+ )
+ c[p] === b[l] ? ((b[l] += ";?"), p++) : (b[l] += ";");
+ var M = new RegExp(
+ "&(?:" + b.join("|") + "|#[xX][\\da-fA-F]+;?|#\\d+;?)",
+ "g",
+ ),
+ d = u(e.default);
+ function O(f) {
+ return (f.substr(-1) !== ";" && (f += ";"), d(f));
+ }
+ return function (f) {
+ return String(f).replace(M, O);
+ };
+ })();
+ function u(c) {
+ return function (l) {
+ if (l.charAt(1) === "#") {
+ var p = l.charAt(2);
+ return p === "X" || p === "x"
+ ? r.default(parseInt(l.substr(3), 16))
+ : r.default(parseInt(l.substr(2), 10));
+ }
+ return c[l.slice(1, -1)] || l;
+ };
+ }
+ return Le;
+}
+var x1 = {},
+ sO;
+function oO() {
+ if (sO) return x1;
+ sO = 1;
+ var t =
+ (x1 && x1.__importDefault) ||
+ function (z) {
+ return z && z.__esModule ? z : { default: z };
+ };
+ (Object.defineProperty(x1, "__esModule", { value: !0 }),
+ (x1.escapeUTF8 =
+ x1.escape =
+ x1.encodeNonAsciiHTML =
+ x1.encodeHTML =
+ x1.encodeXML =
+ void 0));
+ var e = t(h6),
+ n = a(e.default),
+ i = u(n);
+ x1.encodeXML = f(n);
+ var r = t(O6),
+ s = a(r.default),
+ o = u(s);
+ ((x1.encodeHTML = p(s, o)), (x1.encodeNonAsciiHTML = f(s)));
+ function a(z) {
+ return Object.keys(z)
+ .sort()
+ .reduce(function (g, A) {
+ return ((g[z[A]] = "&" + A + ";"), g);
+ }, {});
+ }
+ function u(z) {
+ for (var g = [], A = [], h = 0, q = Object.keys(z); h < q.length; h++) {
+ var v = q[h];
+ v.length === 1 ? g.push("\\" + v) : A.push(v);
+ }
+ g.sort();
+ for (var m = 0; m < g.length - 1; m++) {
+ for (
+ var E = m;
+ E < g.length - 1 && g[E].charCodeAt(1) + 1 === g[E + 1].charCodeAt(1);
+ )
+ E += 1;
+ var _ = 1 + E - m;
+ _ < 3 || g.splice(m, _, g[m] + "-" + g[E]);
+ }
+ return (A.unshift("[" + g.join("") + "]"), new RegExp(A.join("|"), "g"));
+ }
+ var c =
+ /(?:[\x80-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g,
+ b =
+ String.prototype.codePointAt != null
+ ? function (z) {
+ return z.codePointAt(0);
+ }
+ : function (z) {
+ return (
+ (z.charCodeAt(0) - 55296) * 1024 + z.charCodeAt(1) - 56320 + 65536
+ );
+ };
+ function l(z) {
+ return (
+ "" +
+ (z.length > 1 ? b(z) : z.charCodeAt(0)).toString(16).toUpperCase() +
+ ";"
+ );
+ }
+ function p(z, g) {
+ return function (A) {
+ return A.replace(g, function (h) {
+ return z[h];
+ }).replace(c, l);
+ };
+ }
+ var M = new RegExp(i.source + "|" + c.source, "g");
+ function d(z) {
+ return z.replace(M, l);
+ }
+ x1.escape = d;
+ function O(z) {
+ return z.replace(i, l);
+ }
+ x1.escapeUTF8 = O;
+ function f(z) {
+ return function (g) {
+ return g.replace(M, function (A) {
+ return z[A] || l(A);
+ });
+ };
+ }
+ return x1;
+}
+var aO;
+function Hq0() {
+ return (
+ aO ||
+ ((aO = 1),
+ (function (t) {
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.decodeXMLStrict =
+ t.decodeHTML5Strict =
+ t.decodeHTML4Strict =
+ t.decodeHTML5 =
+ t.decodeHTML4 =
+ t.decodeHTMLStrict =
+ t.decodeHTML =
+ t.decodeXML =
+ t.encodeHTML5 =
+ t.encodeHTML4 =
+ t.escapeUTF8 =
+ t.escape =
+ t.encodeNonAsciiHTML =
+ t.encodeHTML =
+ t.encodeXML =
+ t.encode =
+ t.decodeStrict =
+ t.decode =
+ void 0));
+ var e = rO(),
+ n = oO();
+ function i(u, c) {
+ return (!c || c <= 0 ? e.decodeXML : e.decodeHTML)(u);
+ }
+ t.decode = i;
+ function r(u, c) {
+ return (!c || c <= 0 ? e.decodeXML : e.decodeHTMLStrict)(u);
+ }
+ t.decodeStrict = r;
+ function s(u, c) {
+ return (!c || c <= 0 ? n.encodeXML : n.encodeHTML)(u);
+ }
+ t.encode = s;
+ var o = oO();
+ (Object.defineProperty(t, "encodeXML", {
+ enumerable: !0,
+ get: function () {
+ return o.encodeXML;
+ },
+ }),
+ Object.defineProperty(t, "encodeHTML", {
+ enumerable: !0,
+ get: function () {
+ return o.encodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "encodeNonAsciiHTML", {
+ enumerable: !0,
+ get: function () {
+ return o.encodeNonAsciiHTML;
+ },
+ }),
+ Object.defineProperty(t, "escape", {
+ enumerable: !0,
+ get: function () {
+ return o.escape;
+ },
+ }),
+ Object.defineProperty(t, "escapeUTF8", {
+ enumerable: !0,
+ get: function () {
+ return o.escapeUTF8;
+ },
+ }),
+ Object.defineProperty(t, "encodeHTML4", {
+ enumerable: !0,
+ get: function () {
+ return o.encodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "encodeHTML5", {
+ enumerable: !0,
+ get: function () {
+ return o.encodeHTML;
+ },
+ }));
+ var a = rO();
+ (Object.defineProperty(t, "decodeXML", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeXML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTMLStrict", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML4", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML5", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML4Strict", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML5Strict", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeXMLStrict", {
+ enumerable: !0,
+ get: function () {
+ return a.decodeXML;
+ },
+ }));
+ })(Cu)),
+ Cu
+ );
+}
+var ku, cO;
+function Gq0() {
+ if (cO) return ku;
+ cO = 1;
+ function t(W, x) {
+ if (!(W instanceof x))
+ throw new TypeError("Cannot call a class as a function");
+ }
+ function e(W, x) {
+ for (var B = 0; B < x.length; B++) {
+ var N = x[B];
+ ((N.enumerable = N.enumerable || !1),
+ (N.configurable = !0),
+ "value" in N && (N.writable = !0),
+ Object.defineProperty(W, N.key, N));
+ }
+ }
+ function n(W, x, B) {
+ return (x && e(W.prototype, x), W);
+ }
+ function i(W, x) {
+ var B = (typeof Symbol < "u" && W[Symbol.iterator]) || W["@@iterator"];
+ if (!B) {
+ if (Array.isArray(W) || (B = r(W)) || x) {
+ B && (W = B);
+ var N = 0,
+ I = function () {};
+ return {
+ s: I,
+ n: function () {
+ return N >= W.length ? { done: !0 } : { done: !1, value: W[N++] };
+ },
+ e: function (Y) {
+ throw Y;
+ },
+ f: I,
+ };
+ }
+ throw new TypeError(`Invalid attempt to iterate non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`);
+ }
+ var k = !0,
+ F = !1,
+ Q;
+ return {
+ s: function () {
+ B = B.call(W);
+ },
+ n: function () {
+ var Y = B.next();
+ return ((k = Y.done), Y);
+ },
+ e: function (Y) {
+ ((F = !0), (Q = Y));
+ },
+ f: function () {
+ try {
+ !k && B.return != null && B.return();
+ } finally {
+ if (F) throw Q;
+ }
+ },
+ };
+ }
+ function r(W, x) {
+ if (W) {
+ if (typeof W == "string") return s(W, x);
+ var B = Object.prototype.toString.call(W).slice(8, -1);
+ if (
+ (B === "Object" && W.constructor && (B = W.constructor.name),
+ B === "Map" || B === "Set")
+ )
+ return Array.from(W);
+ if (
+ B === "Arguments" ||
+ /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(B)
+ )
+ return s(W, x);
+ }
+ }
+ function s(W, x) {
+ (x == null || x > W.length) && (x = W.length);
+ for (var B = 0, N = new Array(x); B < x; B++) N[B] = W[B];
+ return N;
+ }
+ var o = Hq0(),
+ a = {
+ fg: "#FFF",
+ bg: "#000",
+ newline: !1,
+ escapeXML: !1,
+ stream: !1,
+ colors: u(),
+ };
+ function u() {
+ var W = {
+ 0: "#000",
+ 1: "#A00",
+ 2: "#0A0",
+ 3: "#A50",
+ 4: "#00A",
+ 5: "#A0A",
+ 6: "#0AA",
+ 7: "#AAA",
+ 8: "#555",
+ 9: "#F55",
+ 10: "#5F5",
+ 11: "#FF5",
+ 12: "#55F",
+ 13: "#F5F",
+ 14: "#5FF",
+ 15: "#FFF",
+ };
+ return (
+ f(0, 5).forEach(function (x) {
+ f(0, 5).forEach(function (B) {
+ f(0, 5).forEach(function (N) {
+ return c(x, B, N, W);
+ });
+ });
+ }),
+ f(0, 23).forEach(function (x) {
+ var B = x + 232,
+ N = b(x * 10 + 8);
+ W[B] = "#" + N + N + N;
+ }),
+ W
+ );
+ }
+ function c(W, x, B, N) {
+ var I = 16 + W * 36 + x * 6 + B,
+ k = W > 0 ? W * 40 + 55 : 0,
+ F = x > 0 ? x * 40 + 55 : 0,
+ Q = B > 0 ? B * 40 + 55 : 0;
+ N[I] = l([k, F, Q]);
+ }
+ function b(W) {
+ for (var x = W.toString(16); x.length < 2; ) x = "0" + x;
+ return x;
+ }
+ function l(W) {
+ var x = [],
+ B = i(W),
+ N;
+ try {
+ for (B.s(); !(N = B.n()).done; ) {
+ var I = N.value;
+ x.push(b(I));
+ }
+ } catch (k) {
+ B.e(k);
+ } finally {
+ B.f();
+ }
+ return "#" + x.join("");
+ }
+ function p(W, x, B, N) {
+ var I;
+ return (
+ x === "text"
+ ? (I = A(B, N))
+ : x === "display"
+ ? (I = d(W, B, N))
+ : x === "xterm256Foreground"
+ ? (I = v(W, N.colors[B]))
+ : x === "xterm256Background"
+ ? (I = m(W, N.colors[B]))
+ : x === "rgb" && (I = M(W, B)),
+ I
+ );
+ }
+ function M(W, x) {
+ x = x.substring(2).slice(0, -1);
+ var B = +x.substr(0, 2),
+ N = x.substring(5).split(";"),
+ I = N.map(function (k) {
+ return ("0" + Number(k).toString(16)).substr(-2);
+ }).join("");
+ return q(W, (B === 38 ? "color:#" : "background-color:#") + I);
+ }
+ function d(W, x, B) {
+ x = parseInt(x, 10);
+ var N = {
+ "-1": function () {
+ return "
";
+ },
+ 0: function () {
+ return W.length && O(W);
+ },
+ 1: function () {
+ return h(W, "b");
+ },
+ 3: function () {
+ return h(W, "i");
+ },
+ 4: function () {
+ return h(W, "u");
+ },
+ 8: function () {
+ return q(W, "display:none");
+ },
+ 9: function () {
+ return h(W, "strike");
+ },
+ 22: function () {
+ return q(
+ W,
+ "font-weight:normal;text-decoration:none;font-style:normal",
+ );
+ },
+ 23: function () {
+ return E(W, "i");
+ },
+ 24: function () {
+ return E(W, "u");
+ },
+ 39: function () {
+ return v(W, B.fg);
+ },
+ 49: function () {
+ return m(W, B.bg);
+ },
+ 53: function () {
+ return q(W, "text-decoration:overline");
+ },
+ },
+ I;
+ return (
+ N[x]
+ ? (I = N[x]())
+ : 4 < x && x < 7
+ ? (I = h(W, "blink"))
+ : 29 < x && x < 38
+ ? (I = v(W, B.colors[x - 30]))
+ : 39 < x && x < 48
+ ? (I = m(W, B.colors[x - 40]))
+ : 89 < x && x < 98
+ ? (I = v(W, B.colors[8 + (x - 90)]))
+ : 99 < x && x < 108 && (I = m(W, B.colors[8 + (x - 100)])),
+ I
+ );
+ }
+ function O(W) {
+ var x = W.slice(0);
+ return (
+ (W.length = 0),
+ x
+ .reverse()
+ .map(function (B) {
+ return "" + B + ">";
+ })
+ .join("")
+ );
+ }
+ function f(W, x) {
+ for (var B = [], N = W; N <= x; N++) B.push(N);
+ return B;
+ }
+ function z(W) {
+ return function (x) {
+ return (W === null || x.category !== W) && W !== "all";
+ };
+ }
+ function g(W) {
+ W = parseInt(W, 10);
+ var x = null;
+ return (
+ W === 0
+ ? (x = "all")
+ : W === 1
+ ? (x = "bold")
+ : 2 < W && W < 5
+ ? (x = "underline")
+ : 4 < W && W < 7
+ ? (x = "blink")
+ : W === 8
+ ? (x = "hide")
+ : W === 9
+ ? (x = "strike")
+ : (29 < W && W < 38) || W === 39 || (89 < W && W < 98)
+ ? (x = "foreground-color")
+ : ((39 < W && W < 48) || W === 49 || (99 < W && W < 108)) &&
+ (x = "background-color"),
+ x
+ );
+ }
+ function A(W, x) {
+ return x.escapeXML ? o.encodeXML(W) : W;
+ }
+ function h(W, x, B) {
+ return (
+ B || (B = ""),
+ W.push(x),
+ "<".concat(x).concat(B ? ' style="'.concat(B, '"') : "", ">")
+ );
+ }
+ function q(W, x) {
+ return h(W, "span", x);
+ }
+ function v(W, x) {
+ return h(W, "span", "color:" + x);
+ }
+ function m(W, x) {
+ return h(W, "span", "background-color:" + x);
+ }
+ function E(W, x) {
+ var B;
+ if ((W.slice(-1)[0] === x && (B = W.pop()), B)) return "" + x + ">";
+ }
+ function _(W, x, B) {
+ var N = !1,
+ I = 3;
+ function k() {
+ return "";
+ }
+ function F(R, w) {
+ return (B("xterm256Foreground", w), "");
+ }
+ function Q(R, w) {
+ return (B("xterm256Background", w), "");
+ }
+ function n0(R) {
+ return (x.newline ? B("display", -1) : B("text", R), "");
+ }
+ function Y(R, w) {
+ ((N = !0),
+ w.trim().length === 0 && (w = "0"),
+ (w = w.trimRight(";").split(";")));
+ var D = i(w),
+ C;
+ try {
+ for (D.s(); !(C = D.n()).done; ) {
+ var X = C.value;
+ B("display", X);
+ }
+ } catch (J) {
+ D.e(J);
+ } finally {
+ D.f();
+ }
+ return "";
+ }
+ function Z(R) {
+ return (B("text", R), "");
+ }
+ function i0(R) {
+ return (B("rgb", R), "");
+ }
+ var M0 = [
+ { pattern: /^\x08+/, sub: k },
+ { pattern: /^\x1b\[[012]?K/, sub: k },
+ { pattern: /^\x1b\[\(B/, sub: k },
+ { pattern: /^\x1b\[[34]8;2;\d+;\d+;\d+m/, sub: i0 },
+ { pattern: /^\x1b\[38;5;(\d+)m/, sub: F },
+ { pattern: /^\x1b\[48;5;(\d+)m/, sub: Q },
+ { pattern: /^\n/, sub: n0 },
+ { pattern: /^\r+\n/, sub: n0 },
+ { pattern: /^\r/, sub: n0 },
+ { pattern: /^\x1b\[((?:\d{1,3};?)+|)m/, sub: Y },
+ { pattern: /^\x1b\[\d?J/, sub: k },
+ { pattern: /^\x1b\[\d{0,3};\d{0,3}f/, sub: k },
+ { pattern: /^\x1b\[?[\d;]{0,3}/, sub: k },
+ { pattern: /^(([^\x1b\x08\r\n])+)/, sub: Z },
+ ];
+ function u0(R, w) {
+ (w > I && N) || ((N = !1), (W = W.replace(R.pattern, R.sub)));
+ }
+ var b0 = [],
+ P = W,
+ t0 = P.length;
+ e: for (; t0 > 0; ) {
+ for (var r0 = 0, c0 = 0, G = M0.length; c0 < G; r0 = ++c0) {
+ var S = M0[r0];
+ if ((u0(S, r0), W.length !== t0)) {
+ t0 = W.length;
+ continue e;
+ }
+ }
+ if (W.length === t0) break;
+ (b0.push(0), (t0 = W.length));
+ }
+ return b0;
+ }
+ function T(W, x, B) {
+ return (
+ x !== "text" &&
+ ((W = W.filter(z(g(B)))),
+ W.push({ token: x, data: B, category: g(B) })),
+ W
+ );
+ }
+ var y = (function () {
+ function W(x) {
+ (t(this, W),
+ (x = x || {}),
+ x.colors && (x.colors = Object.assign({}, a.colors, x.colors)),
+ (this.options = Object.assign({}, a, x)),
+ (this.stack = []),
+ (this.stickyStack = []));
+ }
+ return (
+ n(W, [
+ {
+ key: "toHtml",
+ value: function (B) {
+ var N = this;
+ B = typeof B == "string" ? [B] : B;
+ var I = this.stack,
+ k = this.options,
+ F = [];
+ return (
+ this.stickyStack.forEach(function (Q) {
+ var n0 = p(I, Q.token, Q.data, k);
+ n0 && F.push(n0);
+ }),
+ _(B.join(""), k, function (Q, n0) {
+ var Y = p(I, Q, n0, k);
+ (Y && F.push(Y),
+ k.stream && (N.stickyStack = T(N.stickyStack, Q, n0)));
+ }),
+ I.length && F.push(O(I)),
+ F.join("")
+ );
+ },
+ },
+ ]),
+ W
+ );
+ })();
+ return ((ku = y), ku);
+}
+var Vq0 = Gq0();
+const qg0 = jc(Vq0);
+var ve = {},
+ Ee = {},
+ Pu = {},
+ Te = {},
+ Go = {},
+ uO;
+function jq0() {
+ return (
+ uO ||
+ ((uO = 1),
+ Object.defineProperty(Go, "__esModule", { value: !0 }),
+ (Go.default = new Uint16Array(
+ 'ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'
+ .split("")
+ .map(function (t) {
+ return t.charCodeAt(0);
+ }),
+ ))),
+ Go
+ );
+}
+var Vo = {},
+ bO;
+function Kq0() {
+ return (
+ bO ||
+ ((bO = 1),
+ Object.defineProperty(Vo, "__esModule", { value: !0 }),
+ (Vo.default = new Uint16Array(
+ "Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function (t) {
+ return t.charCodeAt(0);
+ }),
+ ))),
+ Vo
+ );
+}
+var Xu = {},
+ pO;
+function lO() {
+ return (
+ pO ||
+ ((pO = 1),
+ (function (t) {
+ var e;
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.replaceCodePoint = t.fromCodePoint = void 0));
+ var n = new Map([
+ [0, 65533],
+ [128, 8364],
+ [130, 8218],
+ [131, 402],
+ [132, 8222],
+ [133, 8230],
+ [134, 8224],
+ [135, 8225],
+ [136, 710],
+ [137, 8240],
+ [138, 352],
+ [139, 8249],
+ [140, 338],
+ [142, 381],
+ [145, 8216],
+ [146, 8217],
+ [147, 8220],
+ [148, 8221],
+ [149, 8226],
+ [150, 8211],
+ [151, 8212],
+ [152, 732],
+ [153, 8482],
+ [154, 353],
+ [155, 8250],
+ [156, 339],
+ [158, 382],
+ [159, 376],
+ ]);
+ t.fromCodePoint =
+ (e = String.fromCodePoint) !== null && e !== void 0
+ ? e
+ : function (s) {
+ var o = "";
+ return (
+ s > 65535 &&
+ ((s -= 65536),
+ (o += String.fromCharCode(((s >>> 10) & 1023) | 55296)),
+ (s = 56320 | (s & 1023))),
+ (o += String.fromCharCode(s)),
+ o
+ );
+ };
+ function i(s) {
+ var o;
+ return (s >= 55296 && s <= 57343) || s > 1114111
+ ? 65533
+ : (o = n.get(s)) !== null && o !== void 0
+ ? o
+ : s;
+ }
+ t.replaceCodePoint = i;
+ function r(s) {
+ return (0, t.fromCodePoint)(i(s));
+ }
+ t.default = r;
+ })(Xu)),
+ Xu
+ );
+}
+var MO;
+function A6() {
+ return (
+ MO ||
+ ((MO = 1),
+ (function (t) {
+ var e =
+ (Te && Te.__createBinding) ||
+ (Object.create
+ ? function (y, W, x, B) {
+ B === void 0 && (B = x);
+ var N = Object.getOwnPropertyDescriptor(W, x);
+ ((!N ||
+ ("get" in N
+ ? !W.__esModule
+ : N.writable || N.configurable)) &&
+ (N = {
+ enumerable: !0,
+ get: function () {
+ return W[x];
+ },
+ }),
+ Object.defineProperty(y, B, N));
+ }
+ : function (y, W, x, B) {
+ (B === void 0 && (B = x), (y[B] = W[x]));
+ }),
+ n =
+ (Te && Te.__setModuleDefault) ||
+ (Object.create
+ ? function (y, W) {
+ Object.defineProperty(y, "default", {
+ enumerable: !0,
+ value: W,
+ });
+ }
+ : function (y, W) {
+ y.default = W;
+ }),
+ i =
+ (Te && Te.__importStar) ||
+ function (y) {
+ if (y && y.__esModule) return y;
+ var W = {};
+ if (y != null)
+ for (var x in y)
+ x !== "default" &&
+ Object.prototype.hasOwnProperty.call(y, x) &&
+ e(W, y, x);
+ return (n(W, y), W);
+ },
+ r =
+ (Te && Te.__importDefault) ||
+ function (y) {
+ return y && y.__esModule ? y : { default: y };
+ };
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.decodeXML =
+ t.decodeHTMLStrict =
+ t.decodeHTMLAttribute =
+ t.decodeHTML =
+ t.determineBranch =
+ t.EntityDecoder =
+ t.DecodingMode =
+ t.BinTrieFlags =
+ t.fromCodePoint =
+ t.replaceCodePoint =
+ t.decodeCodePoint =
+ t.xmlDecodeTree =
+ t.htmlDecodeTree =
+ void 0));
+ var s = r(jq0());
+ t.htmlDecodeTree = s.default;
+ var o = r(Kq0());
+ t.xmlDecodeTree = o.default;
+ var a = i(lO());
+ t.decodeCodePoint = a.default;
+ var u = lO();
+ (Object.defineProperty(t, "replaceCodePoint", {
+ enumerable: !0,
+ get: function () {
+ return u.replaceCodePoint;
+ },
+ }),
+ Object.defineProperty(t, "fromCodePoint", {
+ enumerable: !0,
+ get: function () {
+ return u.fromCodePoint;
+ },
+ }));
+ var c;
+ (function (y) {
+ ((y[(y.NUM = 35)] = "NUM"),
+ (y[(y.SEMI = 59)] = "SEMI"),
+ (y[(y.EQUALS = 61)] = "EQUALS"),
+ (y[(y.ZERO = 48)] = "ZERO"),
+ (y[(y.NINE = 57)] = "NINE"),
+ (y[(y.LOWER_A = 97)] = "LOWER_A"),
+ (y[(y.LOWER_F = 102)] = "LOWER_F"),
+ (y[(y.LOWER_X = 120)] = "LOWER_X"),
+ (y[(y.LOWER_Z = 122)] = "LOWER_Z"),
+ (y[(y.UPPER_A = 65)] = "UPPER_A"),
+ (y[(y.UPPER_F = 70)] = "UPPER_F"),
+ (y[(y.UPPER_Z = 90)] = "UPPER_Z"));
+ })(c || (c = {}));
+ var b = 32,
+ l;
+ (function (y) {
+ ((y[(y.VALUE_LENGTH = 49152)] = "VALUE_LENGTH"),
+ (y[(y.BRANCH_LENGTH = 16256)] = "BRANCH_LENGTH"),
+ (y[(y.JUMP_TABLE = 127)] = "JUMP_TABLE"));
+ })((l = t.BinTrieFlags || (t.BinTrieFlags = {})));
+ function p(y) {
+ return y >= c.ZERO && y <= c.NINE;
+ }
+ function M(y) {
+ return (
+ (y >= c.UPPER_A && y <= c.UPPER_F) ||
+ (y >= c.LOWER_A && y <= c.LOWER_F)
+ );
+ }
+ function d(y) {
+ return (
+ (y >= c.UPPER_A && y <= c.UPPER_Z) ||
+ (y >= c.LOWER_A && y <= c.LOWER_Z) ||
+ p(y)
+ );
+ }
+ function O(y) {
+ return y === c.EQUALS || d(y);
+ }
+ var f;
+ (function (y) {
+ ((y[(y.EntityStart = 0)] = "EntityStart"),
+ (y[(y.NumericStart = 1)] = "NumericStart"),
+ (y[(y.NumericDecimal = 2)] = "NumericDecimal"),
+ (y[(y.NumericHex = 3)] = "NumericHex"),
+ (y[(y.NamedEntity = 4)] = "NamedEntity"));
+ })(f || (f = {}));
+ var z;
+ (function (y) {
+ ((y[(y.Legacy = 0)] = "Legacy"),
+ (y[(y.Strict = 1)] = "Strict"),
+ (y[(y.Attribute = 2)] = "Attribute"));
+ })((z = t.DecodingMode || (t.DecodingMode = {})));
+ var g = (function () {
+ function y(W, x, B) {
+ ((this.decodeTree = W),
+ (this.emitCodePoint = x),
+ (this.errors = B),
+ (this.state = f.EntityStart),
+ (this.consumed = 1),
+ (this.result = 0),
+ (this.treeIndex = 0),
+ (this.excess = 1),
+ (this.decodeMode = z.Strict));
+ }
+ return (
+ (y.prototype.startEntity = function (W) {
+ ((this.decodeMode = W),
+ (this.state = f.EntityStart),
+ (this.result = 0),
+ (this.treeIndex = 0),
+ (this.excess = 1),
+ (this.consumed = 1));
+ }),
+ (y.prototype.write = function (W, x) {
+ switch (this.state) {
+ case f.EntityStart:
+ return W.charCodeAt(x) === c.NUM
+ ? ((this.state = f.NumericStart),
+ (this.consumed += 1),
+ this.stateNumericStart(W, x + 1))
+ : ((this.state = f.NamedEntity),
+ this.stateNamedEntity(W, x));
+ case f.NumericStart:
+ return this.stateNumericStart(W, x);
+ case f.NumericDecimal:
+ return this.stateNumericDecimal(W, x);
+ case f.NumericHex:
+ return this.stateNumericHex(W, x);
+ case f.NamedEntity:
+ return this.stateNamedEntity(W, x);
+ }
+ }),
+ (y.prototype.stateNumericStart = function (W, x) {
+ return x >= W.length
+ ? -1
+ : (W.charCodeAt(x) | b) === c.LOWER_X
+ ? ((this.state = f.NumericHex),
+ (this.consumed += 1),
+ this.stateNumericHex(W, x + 1))
+ : ((this.state = f.NumericDecimal),
+ this.stateNumericDecimal(W, x));
+ }),
+ (y.prototype.addToNumericResult = function (W, x, B, N) {
+ if (x !== B) {
+ var I = B - x;
+ ((this.result =
+ this.result * Math.pow(N, I) + parseInt(W.substr(x, I), N)),
+ (this.consumed += I));
+ }
+ }),
+ (y.prototype.stateNumericHex = function (W, x) {
+ for (var B = x; x < W.length; ) {
+ var N = W.charCodeAt(x);
+ if (p(N) || M(N)) x += 1;
+ else
+ return (
+ this.addToNumericResult(W, B, x, 16),
+ this.emitNumericEntity(N, 3)
+ );
+ }
+ return (this.addToNumericResult(W, B, x, 16), -1);
+ }),
+ (y.prototype.stateNumericDecimal = function (W, x) {
+ for (var B = x; x < W.length; ) {
+ var N = W.charCodeAt(x);
+ if (p(N)) x += 1;
+ else
+ return (
+ this.addToNumericResult(W, B, x, 10),
+ this.emitNumericEntity(N, 2)
+ );
+ }
+ return (this.addToNumericResult(W, B, x, 10), -1);
+ }),
+ (y.prototype.emitNumericEntity = function (W, x) {
+ var B;
+ if (this.consumed <= x)
+ return (
+ (B = this.errors) === null ||
+ B === void 0 ||
+ B.absenceOfDigitsInNumericCharacterReference(this.consumed),
+ 0
+ );
+ if (W === c.SEMI) this.consumed += 1;
+ else if (this.decodeMode === z.Strict) return 0;
+ return (
+ this.emitCodePoint(
+ (0, a.replaceCodePoint)(this.result),
+ this.consumed,
+ ),
+ this.errors &&
+ (W !== c.SEMI &&
+ this.errors.missingSemicolonAfterCharacterReference(),
+ this.errors.validateNumericCharacterReference(this.result)),
+ this.consumed
+ );
+ }),
+ (y.prototype.stateNamedEntity = function (W, x) {
+ for (
+ var B = this.decodeTree,
+ N = B[this.treeIndex],
+ I = (N & l.VALUE_LENGTH) >> 14;
+ x < W.length;
+ x++, this.excess++
+ ) {
+ var k = W.charCodeAt(x);
+ if (
+ ((this.treeIndex = h(
+ B,
+ N,
+ this.treeIndex + Math.max(1, I),
+ k,
+ )),
+ this.treeIndex < 0)
+ )
+ return this.result === 0 ||
+ (this.decodeMode === z.Attribute && (I === 0 || O(k)))
+ ? 0
+ : this.emitNotTerminatedNamedEntity();
+ if (
+ ((N = B[this.treeIndex]),
+ (I = (N & l.VALUE_LENGTH) >> 14),
+ I !== 0)
+ ) {
+ if (k === c.SEMI)
+ return this.emitNamedEntityData(
+ this.treeIndex,
+ I,
+ this.consumed + this.excess,
+ );
+ this.decodeMode !== z.Strict &&
+ ((this.result = this.treeIndex),
+ (this.consumed += this.excess),
+ (this.excess = 0));
+ }
+ }
+ return -1;
+ }),
+ (y.prototype.emitNotTerminatedNamedEntity = function () {
+ var W,
+ x = this,
+ B = x.result,
+ N = x.decodeTree,
+ I = (N[B] & l.VALUE_LENGTH) >> 14;
+ return (
+ this.emitNamedEntityData(B, I, this.consumed),
+ (W = this.errors) === null ||
+ W === void 0 ||
+ W.missingSemicolonAfterCharacterReference(),
+ this.consumed
+ );
+ }),
+ (y.prototype.emitNamedEntityData = function (W, x, B) {
+ var N = this.decodeTree;
+ return (
+ this.emitCodePoint(
+ x === 1 ? N[W] & ~l.VALUE_LENGTH : N[W + 1],
+ B,
+ ),
+ x === 3 && this.emitCodePoint(N[W + 2], B),
+ B
+ );
+ }),
+ (y.prototype.end = function () {
+ var W;
+ switch (this.state) {
+ case f.NamedEntity:
+ return this.result !== 0 &&
+ (this.decodeMode !== z.Attribute ||
+ this.result === this.treeIndex)
+ ? this.emitNotTerminatedNamedEntity()
+ : 0;
+ case f.NumericDecimal:
+ return this.emitNumericEntity(0, 2);
+ case f.NumericHex:
+ return this.emitNumericEntity(0, 3);
+ case f.NumericStart:
+ return (
+ (W = this.errors) === null ||
+ W === void 0 ||
+ W.absenceOfDigitsInNumericCharacterReference(
+ this.consumed,
+ ),
+ 0
+ );
+ case f.EntityStart:
+ return 0;
+ }
+ }),
+ y
+ );
+ })();
+ t.EntityDecoder = g;
+ function A(y) {
+ var W = "",
+ x = new g(y, function (B) {
+ return (W += (0, a.fromCodePoint)(B));
+ });
+ return function (N, I) {
+ for (var k = 0, F = 0; (F = N.indexOf("&", F)) >= 0; ) {
+ ((W += N.slice(k, F)), x.startEntity(I));
+ var Q = x.write(N, F + 1);
+ if (Q < 0) {
+ k = F + x.end();
+ break;
+ }
+ ((k = F + Q), (F = Q === 0 ? k + 1 : k));
+ }
+ var n0 = W + N.slice(k);
+ return ((W = ""), n0);
+ };
+ }
+ function h(y, W, x, B) {
+ var N = (W & l.BRANCH_LENGTH) >> 7,
+ I = W & l.JUMP_TABLE;
+ if (N === 0) return I !== 0 && B === I ? x : -1;
+ if (I) {
+ var k = B - I;
+ return k < 0 || k >= N ? -1 : y[x + k] - 1;
+ }
+ for (var F = x, Q = F + N - 1; F <= Q; ) {
+ var n0 = (F + Q) >>> 1,
+ Y = y[n0];
+ if (Y < B) F = n0 + 1;
+ else if (Y > B) Q = n0 - 1;
+ else return y[n0 + N];
+ }
+ return -1;
+ }
+ t.determineBranch = h;
+ var q = A(s.default),
+ v = A(o.default);
+ function m(y, W) {
+ return (W === void 0 && (W = z.Legacy), q(y, W));
+ }
+ t.decodeHTML = m;
+ function E(y) {
+ return q(y, z.Attribute);
+ }
+ t.decodeHTMLAttribute = E;
+ function _(y) {
+ return q(y, z.Strict);
+ }
+ t.decodeHTMLStrict = _;
+ function T(y) {
+ return v(y, z.Strict);
+ }
+ t.decodeXML = T;
+ })(Te)),
+ Te
+ );
+}
+var dO;
+function q6() {
+ return (
+ dO ||
+ ((dO = 1),
+ (function (t) {
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.QuoteType = void 0));
+ var e = A6(),
+ n;
+ (function (p) {
+ ((p[(p.Tab = 9)] = "Tab"),
+ (p[(p.NewLine = 10)] = "NewLine"),
+ (p[(p.FormFeed = 12)] = "FormFeed"),
+ (p[(p.CarriageReturn = 13)] = "CarriageReturn"),
+ (p[(p.Space = 32)] = "Space"),
+ (p[(p.ExclamationMark = 33)] = "ExclamationMark"),
+ (p[(p.Number = 35)] = "Number"),
+ (p[(p.Amp = 38)] = "Amp"),
+ (p[(p.SingleQuote = 39)] = "SingleQuote"),
+ (p[(p.DoubleQuote = 34)] = "DoubleQuote"),
+ (p[(p.Dash = 45)] = "Dash"),
+ (p[(p.Slash = 47)] = "Slash"),
+ (p[(p.Zero = 48)] = "Zero"),
+ (p[(p.Nine = 57)] = "Nine"),
+ (p[(p.Semi = 59)] = "Semi"),
+ (p[(p.Lt = 60)] = "Lt"),
+ (p[(p.Eq = 61)] = "Eq"),
+ (p[(p.Gt = 62)] = "Gt"),
+ (p[(p.Questionmark = 63)] = "Questionmark"),
+ (p[(p.UpperA = 65)] = "UpperA"),
+ (p[(p.LowerA = 97)] = "LowerA"),
+ (p[(p.UpperF = 70)] = "UpperF"),
+ (p[(p.LowerF = 102)] = "LowerF"),
+ (p[(p.UpperZ = 90)] = "UpperZ"),
+ (p[(p.LowerZ = 122)] = "LowerZ"),
+ (p[(p.LowerX = 120)] = "LowerX"),
+ (p[(p.OpeningSquareBracket = 91)] = "OpeningSquareBracket"));
+ })(n || (n = {}));
+ var i;
+ (function (p) {
+ ((p[(p.Text = 1)] = "Text"),
+ (p[(p.BeforeTagName = 2)] = "BeforeTagName"),
+ (p[(p.InTagName = 3)] = "InTagName"),
+ (p[(p.InSelfClosingTag = 4)] = "InSelfClosingTag"),
+ (p[(p.BeforeClosingTagName = 5)] = "BeforeClosingTagName"),
+ (p[(p.InClosingTagName = 6)] = "InClosingTagName"),
+ (p[(p.AfterClosingTagName = 7)] = "AfterClosingTagName"),
+ (p[(p.BeforeAttributeName = 8)] = "BeforeAttributeName"),
+ (p[(p.InAttributeName = 9)] = "InAttributeName"),
+ (p[(p.AfterAttributeName = 10)] = "AfterAttributeName"),
+ (p[(p.BeforeAttributeValue = 11)] = "BeforeAttributeValue"),
+ (p[(p.InAttributeValueDq = 12)] = "InAttributeValueDq"),
+ (p[(p.InAttributeValueSq = 13)] = "InAttributeValueSq"),
+ (p[(p.InAttributeValueNq = 14)] = "InAttributeValueNq"),
+ (p[(p.BeforeDeclaration = 15)] = "BeforeDeclaration"),
+ (p[(p.InDeclaration = 16)] = "InDeclaration"),
+ (p[(p.InProcessingInstruction = 17)] = "InProcessingInstruction"),
+ (p[(p.BeforeComment = 18)] = "BeforeComment"),
+ (p[(p.CDATASequence = 19)] = "CDATASequence"),
+ (p[(p.InSpecialComment = 20)] = "InSpecialComment"),
+ (p[(p.InCommentLike = 21)] = "InCommentLike"),
+ (p[(p.BeforeSpecialS = 22)] = "BeforeSpecialS"),
+ (p[(p.SpecialStartSequence = 23)] = "SpecialStartSequence"),
+ (p[(p.InSpecialTag = 24)] = "InSpecialTag"),
+ (p[(p.BeforeEntity = 25)] = "BeforeEntity"),
+ (p[(p.BeforeNumericEntity = 26)] = "BeforeNumericEntity"),
+ (p[(p.InNamedEntity = 27)] = "InNamedEntity"),
+ (p[(p.InNumericEntity = 28)] = "InNumericEntity"),
+ (p[(p.InHexEntity = 29)] = "InHexEntity"));
+ })(i || (i = {}));
+ function r(p) {
+ return (
+ p === n.Space ||
+ p === n.NewLine ||
+ p === n.Tab ||
+ p === n.FormFeed ||
+ p === n.CarriageReturn
+ );
+ }
+ function s(p) {
+ return p === n.Slash || p === n.Gt || r(p);
+ }
+ function o(p) {
+ return p >= n.Zero && p <= n.Nine;
+ }
+ function a(p) {
+ return (
+ (p >= n.LowerA && p <= n.LowerZ) || (p >= n.UpperA && p <= n.UpperZ)
+ );
+ }
+ function u(p) {
+ return (
+ (p >= n.UpperA && p <= n.UpperF) || (p >= n.LowerA && p <= n.LowerF)
+ );
+ }
+ var c;
+ (function (p) {
+ ((p[(p.NoValue = 0)] = "NoValue"),
+ (p[(p.Unquoted = 1)] = "Unquoted"),
+ (p[(p.Single = 2)] = "Single"),
+ (p[(p.Double = 3)] = "Double"));
+ })((c = t.QuoteType || (t.QuoteType = {})));
+ var b = {
+ Cdata: new Uint8Array([67, 68, 65, 84, 65, 91]),
+ CdataEnd: new Uint8Array([93, 93, 62]),
+ CommentEnd: new Uint8Array([45, 45, 62]),
+ ScriptEnd: new Uint8Array([60, 47, 115, 99, 114, 105, 112, 116]),
+ StyleEnd: new Uint8Array([60, 47, 115, 116, 121, 108, 101]),
+ TitleEnd: new Uint8Array([60, 47, 116, 105, 116, 108, 101]),
+ },
+ l = (function () {
+ function p(M, d) {
+ var O = M.xmlMode,
+ f = O === void 0 ? !1 : O,
+ z = M.decodeEntities,
+ g = z === void 0 ? !0 : z;
+ ((this.cbs = d),
+ (this.state = i.Text),
+ (this.buffer = ""),
+ (this.sectionStart = 0),
+ (this.index = 0),
+ (this.baseState = i.Text),
+ (this.isSpecial = !1),
+ (this.running = !0),
+ (this.offset = 0),
+ (this.currentSequence = void 0),
+ (this.sequenceIndex = 0),
+ (this.trieIndex = 0),
+ (this.trieCurrent = 0),
+ (this.entityResult = 0),
+ (this.entityExcess = 0),
+ (this.xmlMode = f),
+ (this.decodeEntities = g),
+ (this.entityTrie = f ? e.xmlDecodeTree : e.htmlDecodeTree));
+ }
+ return (
+ (p.prototype.reset = function () {
+ ((this.state = i.Text),
+ (this.buffer = ""),
+ (this.sectionStart = 0),
+ (this.index = 0),
+ (this.baseState = i.Text),
+ (this.currentSequence = void 0),
+ (this.running = !0),
+ (this.offset = 0));
+ }),
+ (p.prototype.write = function (M) {
+ ((this.offset += this.buffer.length),
+ (this.buffer = M),
+ this.parse());
+ }),
+ (p.prototype.end = function () {
+ this.running && this.finish();
+ }),
+ (p.prototype.pause = function () {
+ this.running = !1;
+ }),
+ (p.prototype.resume = function () {
+ ((this.running = !0),
+ this.index < this.buffer.length + this.offset &&
+ this.parse());
+ }),
+ (p.prototype.getIndex = function () {
+ return this.index;
+ }),
+ (p.prototype.getSectionStart = function () {
+ return this.sectionStart;
+ }),
+ (p.prototype.stateText = function (M) {
+ M === n.Lt || (!this.decodeEntities && this.fastForwardTo(n.Lt))
+ ? (this.index > this.sectionStart &&
+ this.cbs.ontext(this.sectionStart, this.index),
+ (this.state = i.BeforeTagName),
+ (this.sectionStart = this.index))
+ : this.decodeEntities &&
+ M === n.Amp &&
+ (this.state = i.BeforeEntity);
+ }),
+ (p.prototype.stateSpecialStartSequence = function (M) {
+ var d = this.sequenceIndex === this.currentSequence.length,
+ O = d
+ ? s(M)
+ : (M | 32) === this.currentSequence[this.sequenceIndex];
+ if (!O) this.isSpecial = !1;
+ else if (!d) {
+ this.sequenceIndex++;
+ return;
+ }
+ ((this.sequenceIndex = 0),
+ (this.state = i.InTagName),
+ this.stateInTagName(M));
+ }),
+ (p.prototype.stateInSpecialTag = function (M) {
+ if (this.sequenceIndex === this.currentSequence.length) {
+ if (M === n.Gt || r(M)) {
+ var d = this.index - this.currentSequence.length;
+ if (this.sectionStart < d) {
+ var O = this.index;
+ ((this.index = d),
+ this.cbs.ontext(this.sectionStart, d),
+ (this.index = O));
+ }
+ ((this.isSpecial = !1),
+ (this.sectionStart = d + 2),
+ this.stateInClosingTagName(M));
+ return;
+ }
+ this.sequenceIndex = 0;
+ }
+ (M | 32) === this.currentSequence[this.sequenceIndex]
+ ? (this.sequenceIndex += 1)
+ : this.sequenceIndex === 0
+ ? this.currentSequence === b.TitleEnd
+ ? this.decodeEntities &&
+ M === n.Amp &&
+ (this.state = i.BeforeEntity)
+ : this.fastForwardTo(n.Lt) && (this.sequenceIndex = 1)
+ : (this.sequenceIndex = +(M === n.Lt));
+ }),
+ (p.prototype.stateCDATASequence = function (M) {
+ M === b.Cdata[this.sequenceIndex]
+ ? ++this.sequenceIndex === b.Cdata.length &&
+ ((this.state = i.InCommentLike),
+ (this.currentSequence = b.CdataEnd),
+ (this.sequenceIndex = 0),
+ (this.sectionStart = this.index + 1))
+ : ((this.sequenceIndex = 0),
+ (this.state = i.InDeclaration),
+ this.stateInDeclaration(M));
+ }),
+ (p.prototype.fastForwardTo = function (M) {
+ for (; ++this.index < this.buffer.length + this.offset; )
+ if (this.buffer.charCodeAt(this.index - this.offset) === M)
+ return !0;
+ return (
+ (this.index = this.buffer.length + this.offset - 1),
+ !1
+ );
+ }),
+ (p.prototype.stateInCommentLike = function (M) {
+ M === this.currentSequence[this.sequenceIndex]
+ ? ++this.sequenceIndex === this.currentSequence.length &&
+ (this.currentSequence === b.CdataEnd
+ ? this.cbs.oncdata(this.sectionStart, this.index, 2)
+ : this.cbs.oncomment(this.sectionStart, this.index, 2),
+ (this.sequenceIndex = 0),
+ (this.sectionStart = this.index + 1),
+ (this.state = i.Text))
+ : this.sequenceIndex === 0
+ ? this.fastForwardTo(this.currentSequence[0]) &&
+ (this.sequenceIndex = 1)
+ : M !== this.currentSequence[this.sequenceIndex - 1] &&
+ (this.sequenceIndex = 0);
+ }),
+ (p.prototype.isTagStartChar = function (M) {
+ return this.xmlMode ? !s(M) : a(M);
+ }),
+ (p.prototype.startSpecial = function (M, d) {
+ ((this.isSpecial = !0),
+ (this.currentSequence = M),
+ (this.sequenceIndex = d),
+ (this.state = i.SpecialStartSequence));
+ }),
+ (p.prototype.stateBeforeTagName = function (M) {
+ if (M === n.ExclamationMark)
+ ((this.state = i.BeforeDeclaration),
+ (this.sectionStart = this.index + 1));
+ else if (M === n.Questionmark)
+ ((this.state = i.InProcessingInstruction),
+ (this.sectionStart = this.index + 1));
+ else if (this.isTagStartChar(M)) {
+ var d = M | 32;
+ ((this.sectionStart = this.index),
+ !this.xmlMode && d === b.TitleEnd[2]
+ ? this.startSpecial(b.TitleEnd, 3)
+ : (this.state =
+ !this.xmlMode && d === b.ScriptEnd[2]
+ ? i.BeforeSpecialS
+ : i.InTagName));
+ } else
+ M === n.Slash
+ ? (this.state = i.BeforeClosingTagName)
+ : ((this.state = i.Text), this.stateText(M));
+ }),
+ (p.prototype.stateInTagName = function (M) {
+ s(M) &&
+ (this.cbs.onopentagname(this.sectionStart, this.index),
+ (this.sectionStart = -1),
+ (this.state = i.BeforeAttributeName),
+ this.stateBeforeAttributeName(M));
+ }),
+ (p.prototype.stateBeforeClosingTagName = function (M) {
+ r(M) ||
+ (M === n.Gt
+ ? (this.state = i.Text)
+ : ((this.state = this.isTagStartChar(M)
+ ? i.InClosingTagName
+ : i.InSpecialComment),
+ (this.sectionStart = this.index)));
+ }),
+ (p.prototype.stateInClosingTagName = function (M) {
+ (M === n.Gt || r(M)) &&
+ (this.cbs.onclosetag(this.sectionStart, this.index),
+ (this.sectionStart = -1),
+ (this.state = i.AfterClosingTagName),
+ this.stateAfterClosingTagName(M));
+ }),
+ (p.prototype.stateAfterClosingTagName = function (M) {
+ (M === n.Gt || this.fastForwardTo(n.Gt)) &&
+ ((this.state = i.Text),
+ (this.baseState = i.Text),
+ (this.sectionStart = this.index + 1));
+ }),
+ (p.prototype.stateBeforeAttributeName = function (M) {
+ M === n.Gt
+ ? (this.cbs.onopentagend(this.index),
+ this.isSpecial
+ ? ((this.state = i.InSpecialTag),
+ (this.sequenceIndex = 0))
+ : (this.state = i.Text),
+ (this.baseState = this.state),
+ (this.sectionStart = this.index + 1))
+ : M === n.Slash
+ ? (this.state = i.InSelfClosingTag)
+ : r(M) ||
+ ((this.state = i.InAttributeName),
+ (this.sectionStart = this.index));
+ }),
+ (p.prototype.stateInSelfClosingTag = function (M) {
+ M === n.Gt
+ ? (this.cbs.onselfclosingtag(this.index),
+ (this.state = i.Text),
+ (this.baseState = i.Text),
+ (this.sectionStart = this.index + 1),
+ (this.isSpecial = !1))
+ : r(M) ||
+ ((this.state = i.BeforeAttributeName),
+ this.stateBeforeAttributeName(M));
+ }),
+ (p.prototype.stateInAttributeName = function (M) {
+ (M === n.Eq || s(M)) &&
+ (this.cbs.onattribname(this.sectionStart, this.index),
+ (this.sectionStart = -1),
+ (this.state = i.AfterAttributeName),
+ this.stateAfterAttributeName(M));
+ }),
+ (p.prototype.stateAfterAttributeName = function (M) {
+ M === n.Eq
+ ? (this.state = i.BeforeAttributeValue)
+ : M === n.Slash || M === n.Gt
+ ? (this.cbs.onattribend(c.NoValue, this.index),
+ (this.state = i.BeforeAttributeName),
+ this.stateBeforeAttributeName(M))
+ : r(M) ||
+ (this.cbs.onattribend(c.NoValue, this.index),
+ (this.state = i.InAttributeName),
+ (this.sectionStart = this.index));
+ }),
+ (p.prototype.stateBeforeAttributeValue = function (M) {
+ M === n.DoubleQuote
+ ? ((this.state = i.InAttributeValueDq),
+ (this.sectionStart = this.index + 1))
+ : M === n.SingleQuote
+ ? ((this.state = i.InAttributeValueSq),
+ (this.sectionStart = this.index + 1))
+ : r(M) ||
+ ((this.sectionStart = this.index),
+ (this.state = i.InAttributeValueNq),
+ this.stateInAttributeValueNoQuotes(M));
+ }),
+ (p.prototype.handleInAttributeValue = function (M, d) {
+ M === d || (!this.decodeEntities && this.fastForwardTo(d))
+ ? (this.cbs.onattribdata(this.sectionStart, this.index),
+ (this.sectionStart = -1),
+ this.cbs.onattribend(
+ d === n.DoubleQuote ? c.Double : c.Single,
+ this.index,
+ ),
+ (this.state = i.BeforeAttributeName))
+ : this.decodeEntities &&
+ M === n.Amp &&
+ ((this.baseState = this.state),
+ (this.state = i.BeforeEntity));
+ }),
+ (p.prototype.stateInAttributeValueDoubleQuotes = function (M) {
+ this.handleInAttributeValue(M, n.DoubleQuote);
+ }),
+ (p.prototype.stateInAttributeValueSingleQuotes = function (M) {
+ this.handleInAttributeValue(M, n.SingleQuote);
+ }),
+ (p.prototype.stateInAttributeValueNoQuotes = function (M) {
+ r(M) || M === n.Gt
+ ? (this.cbs.onattribdata(this.sectionStart, this.index),
+ (this.sectionStart = -1),
+ this.cbs.onattribend(c.Unquoted, this.index),
+ (this.state = i.BeforeAttributeName),
+ this.stateBeforeAttributeName(M))
+ : this.decodeEntities &&
+ M === n.Amp &&
+ ((this.baseState = this.state),
+ (this.state = i.BeforeEntity));
+ }),
+ (p.prototype.stateBeforeDeclaration = function (M) {
+ M === n.OpeningSquareBracket
+ ? ((this.state = i.CDATASequence), (this.sequenceIndex = 0))
+ : (this.state =
+ M === n.Dash ? i.BeforeComment : i.InDeclaration);
+ }),
+ (p.prototype.stateInDeclaration = function (M) {
+ (M === n.Gt || this.fastForwardTo(n.Gt)) &&
+ (this.cbs.ondeclaration(this.sectionStart, this.index),
+ (this.state = i.Text),
+ (this.sectionStart = this.index + 1));
+ }),
+ (p.prototype.stateInProcessingInstruction = function (M) {
+ (M === n.Gt || this.fastForwardTo(n.Gt)) &&
+ (this.cbs.onprocessinginstruction(
+ this.sectionStart,
+ this.index,
+ ),
+ (this.state = i.Text),
+ (this.sectionStart = this.index + 1));
+ }),
+ (p.prototype.stateBeforeComment = function (M) {
+ M === n.Dash
+ ? ((this.state = i.InCommentLike),
+ (this.currentSequence = b.CommentEnd),
+ (this.sequenceIndex = 2),
+ (this.sectionStart = this.index + 1))
+ : (this.state = i.InDeclaration);
+ }),
+ (p.prototype.stateInSpecialComment = function (M) {
+ (M === n.Gt || this.fastForwardTo(n.Gt)) &&
+ (this.cbs.oncomment(this.sectionStart, this.index, 0),
+ (this.state = i.Text),
+ (this.sectionStart = this.index + 1));
+ }),
+ (p.prototype.stateBeforeSpecialS = function (M) {
+ var d = M | 32;
+ d === b.ScriptEnd[3]
+ ? this.startSpecial(b.ScriptEnd, 4)
+ : d === b.StyleEnd[3]
+ ? this.startSpecial(b.StyleEnd, 4)
+ : ((this.state = i.InTagName), this.stateInTagName(M));
+ }),
+ (p.prototype.stateBeforeEntity = function (M) {
+ ((this.entityExcess = 1),
+ (this.entityResult = 0),
+ M === n.Number
+ ? (this.state = i.BeforeNumericEntity)
+ : M === n.Amp ||
+ ((this.trieIndex = 0),
+ (this.trieCurrent = this.entityTrie[0]),
+ (this.state = i.InNamedEntity),
+ this.stateInNamedEntity(M)));
+ }),
+ (p.prototype.stateInNamedEntity = function (M) {
+ if (
+ ((this.entityExcess += 1),
+ (this.trieIndex = (0, e.determineBranch)(
+ this.entityTrie,
+ this.trieCurrent,
+ this.trieIndex + 1,
+ M,
+ )),
+ this.trieIndex < 0)
+ ) {
+ (this.emitNamedEntity(), this.index--);
+ return;
+ }
+ this.trieCurrent = this.entityTrie[this.trieIndex];
+ var d = this.trieCurrent & e.BinTrieFlags.VALUE_LENGTH;
+ if (d) {
+ var O = (d >> 14) - 1;
+ if (!this.allowLegacyEntity() && M !== n.Semi)
+ this.trieIndex += O;
+ else {
+ var f = this.index - this.entityExcess + 1;
+ (f > this.sectionStart &&
+ this.emitPartial(this.sectionStart, f),
+ (this.entityResult = this.trieIndex),
+ (this.trieIndex += O),
+ (this.entityExcess = 0),
+ (this.sectionStart = this.index + 1),
+ O === 0 && this.emitNamedEntity());
+ }
+ }
+ }),
+ (p.prototype.emitNamedEntity = function () {
+ if (((this.state = this.baseState), this.entityResult !== 0)) {
+ var M =
+ (this.entityTrie[this.entityResult] &
+ e.BinTrieFlags.VALUE_LENGTH) >>
+ 14;
+ switch (M) {
+ case 1: {
+ this.emitCodePoint(
+ this.entityTrie[this.entityResult] &
+ ~e.BinTrieFlags.VALUE_LENGTH,
+ );
+ break;
+ }
+ case 2: {
+ this.emitCodePoint(
+ this.entityTrie[this.entityResult + 1],
+ );
+ break;
+ }
+ case 3:
+ (this.emitCodePoint(
+ this.entityTrie[this.entityResult + 1],
+ ),
+ this.emitCodePoint(
+ this.entityTrie[this.entityResult + 2],
+ ));
+ }
+ }
+ }),
+ (p.prototype.stateBeforeNumericEntity = function (M) {
+ (M | 32) === n.LowerX
+ ? (this.entityExcess++, (this.state = i.InHexEntity))
+ : ((this.state = i.InNumericEntity),
+ this.stateInNumericEntity(M));
+ }),
+ (p.prototype.emitNumericEntity = function (M) {
+ var d = this.index - this.entityExcess - 1,
+ O = d + 2 + +(this.state === i.InHexEntity);
+ (O !== this.index &&
+ (d > this.sectionStart &&
+ this.emitPartial(this.sectionStart, d),
+ (this.sectionStart = this.index + Number(M)),
+ this.emitCodePoint(
+ (0, e.replaceCodePoint)(this.entityResult),
+ )),
+ (this.state = this.baseState));
+ }),
+ (p.prototype.stateInNumericEntity = function (M) {
+ M === n.Semi
+ ? this.emitNumericEntity(!0)
+ : o(M)
+ ? ((this.entityResult =
+ this.entityResult * 10 + (M - n.Zero)),
+ this.entityExcess++)
+ : (this.allowLegacyEntity()
+ ? this.emitNumericEntity(!1)
+ : (this.state = this.baseState),
+ this.index--);
+ }),
+ (p.prototype.stateInHexEntity = function (M) {
+ M === n.Semi
+ ? this.emitNumericEntity(!0)
+ : o(M)
+ ? ((this.entityResult =
+ this.entityResult * 16 + (M - n.Zero)),
+ this.entityExcess++)
+ : u(M)
+ ? ((this.entityResult =
+ this.entityResult * 16 + ((M | 32) - n.LowerA + 10)),
+ this.entityExcess++)
+ : (this.allowLegacyEntity()
+ ? this.emitNumericEntity(!1)
+ : (this.state = this.baseState),
+ this.index--);
+ }),
+ (p.prototype.allowLegacyEntity = function () {
+ return (
+ !this.xmlMode &&
+ (this.baseState === i.Text ||
+ this.baseState === i.InSpecialTag)
+ );
+ }),
+ (p.prototype.cleanup = function () {
+ this.running &&
+ this.sectionStart !== this.index &&
+ (this.state === i.Text ||
+ (this.state === i.InSpecialTag && this.sequenceIndex === 0)
+ ? (this.cbs.ontext(this.sectionStart, this.index),
+ (this.sectionStart = this.index))
+ : (this.state === i.InAttributeValueDq ||
+ this.state === i.InAttributeValueSq ||
+ this.state === i.InAttributeValueNq) &&
+ (this.cbs.onattribdata(this.sectionStart, this.index),
+ (this.sectionStart = this.index)));
+ }),
+ (p.prototype.shouldContinue = function () {
+ return (
+ this.index < this.buffer.length + this.offset && this.running
+ );
+ }),
+ (p.prototype.parse = function () {
+ for (; this.shouldContinue(); ) {
+ var M = this.buffer.charCodeAt(this.index - this.offset);
+ switch (this.state) {
+ case i.Text: {
+ this.stateText(M);
+ break;
+ }
+ case i.SpecialStartSequence: {
+ this.stateSpecialStartSequence(M);
+ break;
+ }
+ case i.InSpecialTag: {
+ this.stateInSpecialTag(M);
+ break;
+ }
+ case i.CDATASequence: {
+ this.stateCDATASequence(M);
+ break;
+ }
+ case i.InAttributeValueDq: {
+ this.stateInAttributeValueDoubleQuotes(M);
+ break;
+ }
+ case i.InAttributeName: {
+ this.stateInAttributeName(M);
+ break;
+ }
+ case i.InCommentLike: {
+ this.stateInCommentLike(M);
+ break;
+ }
+ case i.InSpecialComment: {
+ this.stateInSpecialComment(M);
+ break;
+ }
+ case i.BeforeAttributeName: {
+ this.stateBeforeAttributeName(M);
+ break;
+ }
+ case i.InTagName: {
+ this.stateInTagName(M);
+ break;
+ }
+ case i.InClosingTagName: {
+ this.stateInClosingTagName(M);
+ break;
+ }
+ case i.BeforeTagName: {
+ this.stateBeforeTagName(M);
+ break;
+ }
+ case i.AfterAttributeName: {
+ this.stateAfterAttributeName(M);
+ break;
+ }
+ case i.InAttributeValueSq: {
+ this.stateInAttributeValueSingleQuotes(M);
+ break;
+ }
+ case i.BeforeAttributeValue: {
+ this.stateBeforeAttributeValue(M);
+ break;
+ }
+ case i.BeforeClosingTagName: {
+ this.stateBeforeClosingTagName(M);
+ break;
+ }
+ case i.AfterClosingTagName: {
+ this.stateAfterClosingTagName(M);
+ break;
+ }
+ case i.BeforeSpecialS: {
+ this.stateBeforeSpecialS(M);
+ break;
+ }
+ case i.InAttributeValueNq: {
+ this.stateInAttributeValueNoQuotes(M);
+ break;
+ }
+ case i.InSelfClosingTag: {
+ this.stateInSelfClosingTag(M);
+ break;
+ }
+ case i.InDeclaration: {
+ this.stateInDeclaration(M);
+ break;
+ }
+ case i.BeforeDeclaration: {
+ this.stateBeforeDeclaration(M);
+ break;
+ }
+ case i.BeforeComment: {
+ this.stateBeforeComment(M);
+ break;
+ }
+ case i.InProcessingInstruction: {
+ this.stateInProcessingInstruction(M);
+ break;
+ }
+ case i.InNamedEntity: {
+ this.stateInNamedEntity(M);
+ break;
+ }
+ case i.BeforeEntity: {
+ this.stateBeforeEntity(M);
+ break;
+ }
+ case i.InHexEntity: {
+ this.stateInHexEntity(M);
+ break;
+ }
+ case i.InNumericEntity: {
+ this.stateInNumericEntity(M);
+ break;
+ }
+ default:
+ this.stateBeforeNumericEntity(M);
+ }
+ this.index++;
+ }
+ this.cleanup();
+ }),
+ (p.prototype.finish = function () {
+ (this.state === i.InNamedEntity && this.emitNamedEntity(),
+ this.sectionStart < this.index && this.handleTrailingData(),
+ this.cbs.onend());
+ }),
+ (p.prototype.handleTrailingData = function () {
+ var M = this.buffer.length + this.offset;
+ this.state === i.InCommentLike
+ ? this.currentSequence === b.CdataEnd
+ ? this.cbs.oncdata(this.sectionStart, M, 0)
+ : this.cbs.oncomment(this.sectionStart, M, 0)
+ : this.state === i.InNumericEntity && this.allowLegacyEntity()
+ ? this.emitNumericEntity(!1)
+ : this.state === i.InHexEntity && this.allowLegacyEntity()
+ ? this.emitNumericEntity(!1)
+ : this.state === i.InTagName ||
+ this.state === i.BeforeAttributeName ||
+ this.state === i.BeforeAttributeValue ||
+ this.state === i.AfterAttributeName ||
+ this.state === i.InAttributeName ||
+ this.state === i.InAttributeValueSq ||
+ this.state === i.InAttributeValueDq ||
+ this.state === i.InAttributeValueNq ||
+ this.state === i.InClosingTagName ||
+ this.cbs.ontext(this.sectionStart, M);
+ }),
+ (p.prototype.emitPartial = function (M, d) {
+ this.baseState !== i.Text && this.baseState !== i.InSpecialTag
+ ? this.cbs.onattribdata(M, d)
+ : this.cbs.ontext(M, d);
+ }),
+ (p.prototype.emitCodePoint = function (M) {
+ this.baseState !== i.Text && this.baseState !== i.InSpecialTag
+ ? this.cbs.onattribentity(M)
+ : this.cbs.ontextentity(M);
+ }),
+ p
+ );
+ })();
+ t.default = l;
+ })(Pu)),
+ Pu
+ );
+}
+var fO;
+function zO() {
+ if (fO) return Ee;
+ fO = 1;
+ var t =
+ (Ee && Ee.__createBinding) ||
+ (Object.create
+ ? function (f, z, g, A) {
+ A === void 0 && (A = g);
+ var h = Object.getOwnPropertyDescriptor(z, g);
+ ((!h ||
+ ("get" in h ? !z.__esModule : h.writable || h.configurable)) &&
+ (h = {
+ enumerable: !0,
+ get: function () {
+ return z[g];
+ },
+ }),
+ Object.defineProperty(f, A, h));
+ }
+ : function (f, z, g, A) {
+ (A === void 0 && (A = g), (f[A] = z[g]));
+ }),
+ e =
+ (Ee && Ee.__setModuleDefault) ||
+ (Object.create
+ ? function (f, z) {
+ Object.defineProperty(f, "default", { enumerable: !0, value: z });
+ }
+ : function (f, z) {
+ f.default = z;
+ }),
+ n =
+ (Ee && Ee.__importStar) ||
+ function (f) {
+ if (f && f.__esModule) return f;
+ var z = {};
+ if (f != null)
+ for (var g in f)
+ g !== "default" &&
+ Object.prototype.hasOwnProperty.call(f, g) &&
+ t(z, f, g);
+ return (e(z, f), z);
+ };
+ (Object.defineProperty(Ee, "__esModule", { value: !0 }),
+ (Ee.Parser = void 0));
+ var i = n(q6()),
+ r = A6(),
+ s = new Set([
+ "input",
+ "option",
+ "optgroup",
+ "select",
+ "button",
+ "datalist",
+ "textarea",
+ ]),
+ o = new Set(["p"]),
+ a = new Set(["thead", "tbody"]),
+ u = new Set(["dd", "dt"]),
+ c = new Set(["rt", "rp"]),
+ b = new Map([
+ ["tr", new Set(["tr", "th", "td"])],
+ ["th", new Set(["th"])],
+ ["td", new Set(["thead", "th", "td"])],
+ ["body", new Set(["head", "link", "script"])],
+ ["li", new Set(["li"])],
+ ["p", o],
+ ["h1", o],
+ ["h2", o],
+ ["h3", o],
+ ["h4", o],
+ ["h5", o],
+ ["h6", o],
+ ["select", s],
+ ["input", s],
+ ["output", s],
+ ["button", s],
+ ["datalist", s],
+ ["textarea", s],
+ ["option", new Set(["option"])],
+ ["optgroup", new Set(["optgroup", "option"])],
+ ["dd", u],
+ ["dt", u],
+ ["address", o],
+ ["article", o],
+ ["aside", o],
+ ["blockquote", o],
+ ["details", o],
+ ["div", o],
+ ["dl", o],
+ ["fieldset", o],
+ ["figcaption", o],
+ ["figure", o],
+ ["footer", o],
+ ["form", o],
+ ["header", o],
+ ["hr", o],
+ ["main", o],
+ ["nav", o],
+ ["ol", o],
+ ["pre", o],
+ ["section", o],
+ ["table", o],
+ ["ul", o],
+ ["rt", c],
+ ["rp", c],
+ ["tbody", a],
+ ["tfoot", a],
+ ]),
+ l = new Set([
+ "area",
+ "base",
+ "basefont",
+ "br",
+ "col",
+ "command",
+ "embed",
+ "frame",
+ "hr",
+ "img",
+ "input",
+ "isindex",
+ "keygen",
+ "link",
+ "meta",
+ "param",
+ "source",
+ "track",
+ "wbr",
+ ]),
+ p = new Set(["math", "svg"]),
+ M = new Set([
+ "mi",
+ "mo",
+ "mn",
+ "ms",
+ "mtext",
+ "annotation-xml",
+ "foreignobject",
+ "desc",
+ "title",
+ ]),
+ d = /\s|\//,
+ O = (function () {
+ function f(z, g) {
+ g === void 0 && (g = {});
+ var A, h, q, v, m;
+ ((this.options = g),
+ (this.startIndex = 0),
+ (this.endIndex = 0),
+ (this.openTagStart = 0),
+ (this.tagname = ""),
+ (this.attribname = ""),
+ (this.attribvalue = ""),
+ (this.attribs = null),
+ (this.stack = []),
+ (this.foreignContext = []),
+ (this.buffers = []),
+ (this.bufferOffset = 0),
+ (this.writeIndex = 0),
+ (this.ended = !1),
+ (this.cbs = z ?? {}),
+ (this.lowerCaseTagNames =
+ (A = g.lowerCaseTags) !== null && A !== void 0 ? A : !g.xmlMode),
+ (this.lowerCaseAttributeNames =
+ (h = g.lowerCaseAttributeNames) !== null && h !== void 0
+ ? h
+ : !g.xmlMode),
+ (this.tokenizer = new (
+ (q = g.Tokenizer) !== null && q !== void 0 ? q : i.default
+ )(this.options, this)),
+ (m = (v = this.cbs).onparserinit) === null ||
+ m === void 0 ||
+ m.call(v, this));
+ }
+ return (
+ (f.prototype.ontext = function (z, g) {
+ var A,
+ h,
+ q = this.getSlice(z, g);
+ ((this.endIndex = g - 1),
+ (h = (A = this.cbs).ontext) === null ||
+ h === void 0 ||
+ h.call(A, q),
+ (this.startIndex = g));
+ }),
+ (f.prototype.ontextentity = function (z) {
+ var g,
+ A,
+ h = this.tokenizer.getSectionStart();
+ ((this.endIndex = h - 1),
+ (A = (g = this.cbs).ontext) === null ||
+ A === void 0 ||
+ A.call(g, (0, r.fromCodePoint)(z)),
+ (this.startIndex = h));
+ }),
+ (f.prototype.isVoidElement = function (z) {
+ return !this.options.xmlMode && l.has(z);
+ }),
+ (f.prototype.onopentagname = function (z, g) {
+ this.endIndex = g;
+ var A = this.getSlice(z, g);
+ (this.lowerCaseTagNames && (A = A.toLowerCase()),
+ this.emitOpenTag(A));
+ }),
+ (f.prototype.emitOpenTag = function (z) {
+ var g, A, h, q;
+ ((this.openTagStart = this.startIndex), (this.tagname = z));
+ var v = !this.options.xmlMode && b.get(z);
+ if (v)
+ for (
+ ;
+ this.stack.length > 0 && v.has(this.stack[this.stack.length - 1]);
+ ) {
+ var m = this.stack.pop();
+ (A = (g = this.cbs).onclosetag) === null ||
+ A === void 0 ||
+ A.call(g, m, !0);
+ }
+ (this.isVoidElement(z) ||
+ (this.stack.push(z),
+ p.has(z)
+ ? this.foreignContext.push(!0)
+ : M.has(z) && this.foreignContext.push(!1)),
+ (q = (h = this.cbs).onopentagname) === null ||
+ q === void 0 ||
+ q.call(h, z),
+ this.cbs.onopentag && (this.attribs = {}));
+ }),
+ (f.prototype.endOpenTag = function (z) {
+ var g, A;
+ ((this.startIndex = this.openTagStart),
+ this.attribs &&
+ ((A = (g = this.cbs).onopentag) === null ||
+ A === void 0 ||
+ A.call(g, this.tagname, this.attribs, z),
+ (this.attribs = null)),
+ this.cbs.onclosetag &&
+ this.isVoidElement(this.tagname) &&
+ this.cbs.onclosetag(this.tagname, !0),
+ (this.tagname = ""));
+ }),
+ (f.prototype.onopentagend = function (z) {
+ ((this.endIndex = z), this.endOpenTag(!1), (this.startIndex = z + 1));
+ }),
+ (f.prototype.onclosetag = function (z, g) {
+ var A, h, q, v, m, E;
+ this.endIndex = g;
+ var _ = this.getSlice(z, g);
+ if (
+ (this.lowerCaseTagNames && (_ = _.toLowerCase()),
+ (p.has(_) || M.has(_)) && this.foreignContext.pop(),
+ this.isVoidElement(_))
+ )
+ !this.options.xmlMode &&
+ _ === "br" &&
+ ((h = (A = this.cbs).onopentagname) === null ||
+ h === void 0 ||
+ h.call(A, "br"),
+ (v = (q = this.cbs).onopentag) === null ||
+ v === void 0 ||
+ v.call(q, "br", {}, !0),
+ (E = (m = this.cbs).onclosetag) === null ||
+ E === void 0 ||
+ E.call(m, "br", !1));
+ else {
+ var T = this.stack.lastIndexOf(_);
+ if (T !== -1)
+ if (this.cbs.onclosetag)
+ for (var y = this.stack.length - T; y--; )
+ this.cbs.onclosetag(this.stack.pop(), y !== 0);
+ else this.stack.length = T;
+ else
+ !this.options.xmlMode &&
+ _ === "p" &&
+ (this.emitOpenTag("p"), this.closeCurrentTag(!0));
+ }
+ this.startIndex = g + 1;
+ }),
+ (f.prototype.onselfclosingtag = function (z) {
+ ((this.endIndex = z),
+ this.options.xmlMode ||
+ this.options.recognizeSelfClosing ||
+ this.foreignContext[this.foreignContext.length - 1]
+ ? (this.closeCurrentTag(!1), (this.startIndex = z + 1))
+ : this.onopentagend(z));
+ }),
+ (f.prototype.closeCurrentTag = function (z) {
+ var g,
+ A,
+ h = this.tagname;
+ (this.endOpenTag(z),
+ this.stack[this.stack.length - 1] === h &&
+ ((A = (g = this.cbs).onclosetag) === null ||
+ A === void 0 ||
+ A.call(g, h, !z),
+ this.stack.pop()));
+ }),
+ (f.prototype.onattribname = function (z, g) {
+ this.startIndex = z;
+ var A = this.getSlice(z, g);
+ this.attribname = this.lowerCaseAttributeNames ? A.toLowerCase() : A;
+ }),
+ (f.prototype.onattribdata = function (z, g) {
+ this.attribvalue += this.getSlice(z, g);
+ }),
+ (f.prototype.onattribentity = function (z) {
+ this.attribvalue += (0, r.fromCodePoint)(z);
+ }),
+ (f.prototype.onattribend = function (z, g) {
+ var A, h;
+ ((this.endIndex = g),
+ (h = (A = this.cbs).onattribute) === null ||
+ h === void 0 ||
+ h.call(
+ A,
+ this.attribname,
+ this.attribvalue,
+ z === i.QuoteType.Double
+ ? '"'
+ : z === i.QuoteType.Single
+ ? "'"
+ : z === i.QuoteType.NoValue
+ ? void 0
+ : null,
+ ),
+ this.attribs &&
+ !Object.prototype.hasOwnProperty.call(
+ this.attribs,
+ this.attribname,
+ ) &&
+ (this.attribs[this.attribname] = this.attribvalue),
+ (this.attribvalue = ""));
+ }),
+ (f.prototype.getInstructionName = function (z) {
+ var g = z.search(d),
+ A = g < 0 ? z : z.substr(0, g);
+ return (this.lowerCaseTagNames && (A = A.toLowerCase()), A);
+ }),
+ (f.prototype.ondeclaration = function (z, g) {
+ this.endIndex = g;
+ var A = this.getSlice(z, g);
+ if (this.cbs.onprocessinginstruction) {
+ var h = this.getInstructionName(A);
+ this.cbs.onprocessinginstruction("!".concat(h), "!".concat(A));
+ }
+ this.startIndex = g + 1;
+ }),
+ (f.prototype.onprocessinginstruction = function (z, g) {
+ this.endIndex = g;
+ var A = this.getSlice(z, g);
+ if (this.cbs.onprocessinginstruction) {
+ var h = this.getInstructionName(A);
+ this.cbs.onprocessinginstruction("?".concat(h), "?".concat(A));
+ }
+ this.startIndex = g + 1;
+ }),
+ (f.prototype.oncomment = function (z, g, A) {
+ var h, q, v, m;
+ ((this.endIndex = g),
+ (q = (h = this.cbs).oncomment) === null ||
+ q === void 0 ||
+ q.call(h, this.getSlice(z, g - A)),
+ (m = (v = this.cbs).oncommentend) === null ||
+ m === void 0 ||
+ m.call(v),
+ (this.startIndex = g + 1));
+ }),
+ (f.prototype.oncdata = function (z, g, A) {
+ var h, q, v, m, E, _, T, y, W, x;
+ this.endIndex = g;
+ var B = this.getSlice(z, g - A);
+ (this.options.xmlMode || this.options.recognizeCDATA
+ ? ((q = (h = this.cbs).oncdatastart) === null ||
+ q === void 0 ||
+ q.call(h),
+ (m = (v = this.cbs).ontext) === null ||
+ m === void 0 ||
+ m.call(v, B),
+ (_ = (E = this.cbs).oncdataend) === null ||
+ _ === void 0 ||
+ _.call(E))
+ : ((y = (T = this.cbs).oncomment) === null ||
+ y === void 0 ||
+ y.call(T, "[CDATA[".concat(B, "]]")),
+ (x = (W = this.cbs).oncommentend) === null ||
+ x === void 0 ||
+ x.call(W)),
+ (this.startIndex = g + 1));
+ }),
+ (f.prototype.onend = function () {
+ var z, g;
+ if (this.cbs.onclosetag) {
+ this.endIndex = this.startIndex;
+ for (
+ var A = this.stack.length;
+ A > 0;
+ this.cbs.onclosetag(this.stack[--A], !0)
+ );
+ }
+ (g = (z = this.cbs).onend) === null || g === void 0 || g.call(z);
+ }),
+ (f.prototype.reset = function () {
+ var z, g, A, h;
+ ((g = (z = this.cbs).onreset) === null || g === void 0 || g.call(z),
+ this.tokenizer.reset(),
+ (this.tagname = ""),
+ (this.attribname = ""),
+ (this.attribs = null),
+ (this.stack.length = 0),
+ (this.startIndex = 0),
+ (this.endIndex = 0),
+ (h = (A = this.cbs).onparserinit) === null ||
+ h === void 0 ||
+ h.call(A, this),
+ (this.buffers.length = 0),
+ (this.bufferOffset = 0),
+ (this.writeIndex = 0),
+ (this.ended = !1));
+ }),
+ (f.prototype.parseComplete = function (z) {
+ (this.reset(), this.end(z));
+ }),
+ (f.prototype.getSlice = function (z, g) {
+ for (; z - this.bufferOffset >= this.buffers[0].length; )
+ this.shiftBuffer();
+ for (
+ var A = this.buffers[0].slice(
+ z - this.bufferOffset,
+ g - this.bufferOffset,
+ );
+ g - this.bufferOffset > this.buffers[0].length;
+ )
+ (this.shiftBuffer(),
+ (A += this.buffers[0].slice(0, g - this.bufferOffset)));
+ return A;
+ }),
+ (f.prototype.shiftBuffer = function () {
+ ((this.bufferOffset += this.buffers[0].length),
+ this.writeIndex--,
+ this.buffers.shift());
+ }),
+ (f.prototype.write = function (z) {
+ var g, A;
+ if (this.ended) {
+ (A = (g = this.cbs).onerror) === null ||
+ A === void 0 ||
+ A.call(g, new Error(".write() after done!"));
+ return;
+ }
+ (this.buffers.push(z),
+ this.tokenizer.running &&
+ (this.tokenizer.write(z), this.writeIndex++));
+ }),
+ (f.prototype.end = function (z) {
+ var g, A;
+ if (this.ended) {
+ (A = (g = this.cbs).onerror) === null ||
+ A === void 0 ||
+ A.call(g, new Error(".end() after done!"));
+ return;
+ }
+ (z && this.write(z), (this.ended = !0), this.tokenizer.end());
+ }),
+ (f.prototype.pause = function () {
+ this.tokenizer.pause();
+ }),
+ (f.prototype.resume = function () {
+ for (
+ this.tokenizer.resume();
+ this.tokenizer.running && this.writeIndex < this.buffers.length;
+ )
+ this.tokenizer.write(this.buffers[this.writeIndex++]);
+ this.ended && this.tokenizer.end();
+ }),
+ (f.prototype.parseChunk = function (z) {
+ this.write(z);
+ }),
+ (f.prototype.done = function (z) {
+ this.end(z);
+ }),
+ f
+ );
+ })();
+ return ((Ee.Parser = O), Ee);
+}
+var kn = {},
+ Fu = {},
+ OO;
+function co() {
+ return (
+ OO ||
+ ((OO = 1),
+ (function (t) {
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.Doctype =
+ t.CDATA =
+ t.Tag =
+ t.Style =
+ t.Script =
+ t.Comment =
+ t.Directive =
+ t.Text =
+ t.Root =
+ t.isTag =
+ t.ElementType =
+ void 0));
+ var e;
+ (function (i) {
+ ((i.Root = "root"),
+ (i.Text = "text"),
+ (i.Directive = "directive"),
+ (i.Comment = "comment"),
+ (i.Script = "script"),
+ (i.Style = "style"),
+ (i.Tag = "tag"),
+ (i.CDATA = "cdata"),
+ (i.Doctype = "doctype"));
+ })((e = t.ElementType || (t.ElementType = {})));
+ function n(i) {
+ return i.type === e.Tag || i.type === e.Script || i.type === e.Style;
+ }
+ ((t.isTag = n),
+ (t.Root = e.Root),
+ (t.Text = e.Text),
+ (t.Directive = e.Directive),
+ (t.Comment = e.Comment),
+ (t.Script = e.Script),
+ (t.Style = e.Style),
+ (t.Tag = e.Tag),
+ (t.CDATA = e.CDATA),
+ (t.Doctype = e.Doctype));
+ })(Fu)),
+ Fu
+ );
+}
+var L0 = {},
+ hO;
+function AO() {
+ if (hO) return L0;
+ hO = 1;
+ var t =
+ (L0 && L0.__extends) ||
+ (function () {
+ var q = function (v, m) {
+ return (
+ (q =
+ Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array &&
+ function (E, _) {
+ E.__proto__ = _;
+ }) ||
+ function (E, _) {
+ for (var T in _)
+ Object.prototype.hasOwnProperty.call(_, T) && (E[T] = _[T]);
+ }),
+ q(v, m)
+ );
+ };
+ return function (v, m) {
+ if (typeof m != "function" && m !== null)
+ throw new TypeError(
+ "Class extends value " +
+ String(m) +
+ " is not a constructor or null",
+ );
+ q(v, m);
+ function E() {
+ this.constructor = v;
+ }
+ v.prototype =
+ m === null
+ ? Object.create(m)
+ : ((E.prototype = m.prototype), new E());
+ };
+ })(),
+ e =
+ (L0 && L0.__assign) ||
+ function () {
+ return (
+ (e =
+ Object.assign ||
+ function (q) {
+ for (var v, m = 1, E = arguments.length; m < E; m++) {
+ v = arguments[m];
+ for (var _ in v)
+ Object.prototype.hasOwnProperty.call(v, _) && (q[_] = v[_]);
+ }
+ return q;
+ }),
+ e.apply(this, arguments)
+ );
+ };
+ (Object.defineProperty(L0, "__esModule", { value: !0 }),
+ (L0.cloneNode =
+ L0.hasChildren =
+ L0.isDocument =
+ L0.isDirective =
+ L0.isComment =
+ L0.isText =
+ L0.isCDATA =
+ L0.isTag =
+ L0.Element =
+ L0.Document =
+ L0.CDATA =
+ L0.NodeWithChildren =
+ L0.ProcessingInstruction =
+ L0.Comment =
+ L0.Text =
+ L0.DataNode =
+ L0.Node =
+ void 0));
+ var n = co(),
+ i = (function () {
+ function q() {
+ ((this.parent = null),
+ (this.prev = null),
+ (this.next = null),
+ (this.startIndex = null),
+ (this.endIndex = null));
+ }
+ return (
+ Object.defineProperty(q.prototype, "parentNode", {
+ get: function () {
+ return this.parent;
+ },
+ set: function (v) {
+ this.parent = v;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(q.prototype, "previousSibling", {
+ get: function () {
+ return this.prev;
+ },
+ set: function (v) {
+ this.prev = v;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(q.prototype, "nextSibling", {
+ get: function () {
+ return this.next;
+ },
+ set: function (v) {
+ this.next = v;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ (q.prototype.cloneNode = function (v) {
+ return (v === void 0 && (v = !1), A(this, v));
+ }),
+ q
+ );
+ })();
+ L0.Node = i;
+ var r = (function (q) {
+ t(v, q);
+ function v(m) {
+ var E = q.call(this) || this;
+ return ((E.data = m), E);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeValue", {
+ get: function () {
+ return this.data;
+ },
+ set: function (m) {
+ this.data = m;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(i);
+ L0.DataNode = r;
+ var s = (function (q) {
+ t(v, q);
+ function v() {
+ var m = (q !== null && q.apply(this, arguments)) || this;
+ return ((m.type = n.ElementType.Text), m);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 3;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(r);
+ L0.Text = s;
+ var o = (function (q) {
+ t(v, q);
+ function v() {
+ var m = (q !== null && q.apply(this, arguments)) || this;
+ return ((m.type = n.ElementType.Comment), m);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 8;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(r);
+ L0.Comment = o;
+ var a = (function (q) {
+ t(v, q);
+ function v(m, E) {
+ var _ = q.call(this, E) || this;
+ return ((_.name = m), (_.type = n.ElementType.Directive), _);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(r);
+ L0.ProcessingInstruction = a;
+ var u = (function (q) {
+ t(v, q);
+ function v(m) {
+ var E = q.call(this) || this;
+ return ((E.children = m), E);
+ }
+ return (
+ Object.defineProperty(v.prototype, "firstChild", {
+ get: function () {
+ var m;
+ return (m = this.children[0]) !== null && m !== void 0 ? m : null;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(v.prototype, "lastChild", {
+ get: function () {
+ return this.children.length > 0
+ ? this.children[this.children.length - 1]
+ : null;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(v.prototype, "childNodes", {
+ get: function () {
+ return this.children;
+ },
+ set: function (m) {
+ this.children = m;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(i);
+ L0.NodeWithChildren = u;
+ var c = (function (q) {
+ t(v, q);
+ function v() {
+ var m = (q !== null && q.apply(this, arguments)) || this;
+ return ((m.type = n.ElementType.CDATA), m);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 4;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(u);
+ L0.CDATA = c;
+ var b = (function (q) {
+ t(v, q);
+ function v() {
+ var m = (q !== null && q.apply(this, arguments)) || this;
+ return ((m.type = n.ElementType.Root), m);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 9;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(u);
+ L0.Document = b;
+ var l = (function (q) {
+ t(v, q);
+ function v(m, E, _, T) {
+ (_ === void 0 && (_ = []),
+ T === void 0 &&
+ (T =
+ m === "script"
+ ? n.ElementType.Script
+ : m === "style"
+ ? n.ElementType.Style
+ : n.ElementType.Tag));
+ var y = q.call(this, _) || this;
+ return ((y.name = m), (y.attribs = E), (y.type = T), y);
+ }
+ return (
+ Object.defineProperty(v.prototype, "nodeType", {
+ get: function () {
+ return 1;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(v.prototype, "tagName", {
+ get: function () {
+ return this.name;
+ },
+ set: function (m) {
+ this.name = m;
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ Object.defineProperty(v.prototype, "attributes", {
+ get: function () {
+ var m = this;
+ return Object.keys(this.attribs).map(function (E) {
+ var _, T;
+ return {
+ name: E,
+ value: m.attribs[E],
+ namespace:
+ (_ = m["x-attribsNamespace"]) === null || _ === void 0
+ ? void 0
+ : _[E],
+ prefix:
+ (T = m["x-attribsPrefix"]) === null || T === void 0
+ ? void 0
+ : T[E],
+ };
+ });
+ },
+ enumerable: !1,
+ configurable: !0,
+ }),
+ v
+ );
+ })(u);
+ L0.Element = l;
+ function p(q) {
+ return (0, n.isTag)(q);
+ }
+ L0.isTag = p;
+ function M(q) {
+ return q.type === n.ElementType.CDATA;
+ }
+ L0.isCDATA = M;
+ function d(q) {
+ return q.type === n.ElementType.Text;
+ }
+ L0.isText = d;
+ function O(q) {
+ return q.type === n.ElementType.Comment;
+ }
+ L0.isComment = O;
+ function f(q) {
+ return q.type === n.ElementType.Directive;
+ }
+ L0.isDirective = f;
+ function z(q) {
+ return q.type === n.ElementType.Root;
+ }
+ L0.isDocument = z;
+ function g(q) {
+ return Object.prototype.hasOwnProperty.call(q, "children");
+ }
+ L0.hasChildren = g;
+ function A(q, v) {
+ v === void 0 && (v = !1);
+ var m;
+ if (d(q)) m = new s(q.data);
+ else if (O(q)) m = new o(q.data);
+ else if (p(q)) {
+ var E = v ? h(q.children) : [],
+ _ = new l(q.name, e({}, q.attribs), E);
+ (E.forEach(function (x) {
+ return (x.parent = _);
+ }),
+ q.namespace != null && (_.namespace = q.namespace),
+ q["x-attribsNamespace"] &&
+ (_["x-attribsNamespace"] = e({}, q["x-attribsNamespace"])),
+ q["x-attribsPrefix"] &&
+ (_["x-attribsPrefix"] = e({}, q["x-attribsPrefix"])),
+ (m = _));
+ } else if (M(q)) {
+ var E = v ? h(q.children) : [],
+ T = new c(E);
+ (E.forEach(function (B) {
+ return (B.parent = T);
+ }),
+ (m = T));
+ } else if (z(q)) {
+ var E = v ? h(q.children) : [],
+ y = new b(E);
+ (E.forEach(function (B) {
+ return (B.parent = y);
+ }),
+ q["x-mode"] && (y["x-mode"] = q["x-mode"]),
+ (m = y));
+ } else if (f(q)) {
+ var W = new a(q.name, q.data);
+ (q["x-name"] != null &&
+ ((W["x-name"] = q["x-name"]),
+ (W["x-publicId"] = q["x-publicId"]),
+ (W["x-systemId"] = q["x-systemId"])),
+ (m = W));
+ } else throw new Error("Not implemented yet: ".concat(q.type));
+ return (
+ (m.startIndex = q.startIndex),
+ (m.endIndex = q.endIndex),
+ q.sourceCodeLocation != null &&
+ (m.sourceCodeLocation = q.sourceCodeLocation),
+ m
+ );
+ }
+ L0.cloneNode = A;
+ function h(q) {
+ for (
+ var v = q.map(function (E) {
+ return A(E, !0);
+ }),
+ m = 1;
+ m < v.length;
+ m++
+ )
+ ((v[m].prev = v[m - 1]), (v[m - 1].next = v[m]));
+ return v;
+ }
+ return L0;
+}
+var qO;
+function _n() {
+ return (
+ qO ||
+ ((qO = 1),
+ (function (t) {
+ var e =
+ (kn && kn.__createBinding) ||
+ (Object.create
+ ? function (a, u, c, b) {
+ b === void 0 && (b = c);
+ var l = Object.getOwnPropertyDescriptor(u, c);
+ ((!l ||
+ ("get" in l
+ ? !u.__esModule
+ : l.writable || l.configurable)) &&
+ (l = {
+ enumerable: !0,
+ get: function () {
+ return u[c];
+ },
+ }),
+ Object.defineProperty(a, b, l));
+ }
+ : function (a, u, c, b) {
+ (b === void 0 && (b = c), (a[b] = u[c]));
+ }),
+ n =
+ (kn && kn.__exportStar) ||
+ function (a, u) {
+ for (var c in a)
+ c !== "default" &&
+ !Object.prototype.hasOwnProperty.call(u, c) &&
+ e(u, a, c);
+ };
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.DomHandler = void 0));
+ var i = co(),
+ r = AO();
+ n(AO(), t);
+ var s = { withStartIndices: !1, withEndIndices: !1, xmlMode: !1 },
+ o = (function () {
+ function a(u, c, b) {
+ ((this.dom = []),
+ (this.root = new r.Document(this.dom)),
+ (this.done = !1),
+ (this.tagStack = [this.root]),
+ (this.lastNode = null),
+ (this.parser = null),
+ typeof c == "function" && ((b = c), (c = s)),
+ typeof u == "object" && ((c = u), (u = void 0)),
+ (this.callback = u ?? null),
+ (this.options = c ?? s),
+ (this.elementCB = b ?? null));
+ }
+ return (
+ (a.prototype.onparserinit = function (u) {
+ this.parser = u;
+ }),
+ (a.prototype.onreset = function () {
+ ((this.dom = []),
+ (this.root = new r.Document(this.dom)),
+ (this.done = !1),
+ (this.tagStack = [this.root]),
+ (this.lastNode = null),
+ (this.parser = null));
+ }),
+ (a.prototype.onend = function () {
+ this.done ||
+ ((this.done = !0),
+ (this.parser = null),
+ this.handleCallback(null));
+ }),
+ (a.prototype.onerror = function (u) {
+ this.handleCallback(u);
+ }),
+ (a.prototype.onclosetag = function () {
+ this.lastNode = null;
+ var u = this.tagStack.pop();
+ (this.options.withEndIndices &&
+ (u.endIndex = this.parser.endIndex),
+ this.elementCB && this.elementCB(u));
+ }),
+ (a.prototype.onopentag = function (u, c) {
+ var b = this.options.xmlMode ? i.ElementType.Tag : void 0,
+ l = new r.Element(u, c, void 0, b);
+ (this.addNode(l), this.tagStack.push(l));
+ }),
+ (a.prototype.ontext = function (u) {
+ var c = this.lastNode;
+ if (c && c.type === i.ElementType.Text)
+ ((c.data += u),
+ this.options.withEndIndices &&
+ (c.endIndex = this.parser.endIndex));
+ else {
+ var b = new r.Text(u);
+ (this.addNode(b), (this.lastNode = b));
+ }
+ }),
+ (a.prototype.oncomment = function (u) {
+ if (
+ this.lastNode &&
+ this.lastNode.type === i.ElementType.Comment
+ ) {
+ this.lastNode.data += u;
+ return;
+ }
+ var c = new r.Comment(u);
+ (this.addNode(c), (this.lastNode = c));
+ }),
+ (a.prototype.oncommentend = function () {
+ this.lastNode = null;
+ }),
+ (a.prototype.oncdatastart = function () {
+ var u = new r.Text(""),
+ c = new r.CDATA([u]);
+ (this.addNode(c), (u.parent = c), (this.lastNode = u));
+ }),
+ (a.prototype.oncdataend = function () {
+ this.lastNode = null;
+ }),
+ (a.prototype.onprocessinginstruction = function (u, c) {
+ var b = new r.ProcessingInstruction(u, c);
+ this.addNode(b);
+ }),
+ (a.prototype.handleCallback = function (u) {
+ if (typeof this.callback == "function")
+ this.callback(u, this.dom);
+ else if (u) throw u;
+ }),
+ (a.prototype.addNode = function (u) {
+ var c = this.tagStack[this.tagStack.length - 1],
+ b = c.children[c.children.length - 1];
+ (this.options.withStartIndices &&
+ (u.startIndex = this.parser.startIndex),
+ this.options.withEndIndices &&
+ (u.endIndex = this.parser.endIndex),
+ c.children.push(u),
+ b && ((u.prev = b), (b.next = u)),
+ (u.parent = c),
+ (this.lastNode = null));
+ }),
+ a
+ );
+ })();
+ ((t.DomHandler = o), (t.default = o));
+ })(kn)),
+ kn
+ );
+}
+var Pn = {},
+ Qe = {},
+ C1 = {},
+ Uu = {},
+ _e = {},
+ jo = {},
+ gO;
+function Yq0() {
+ return (
+ gO ||
+ ((gO = 1),
+ Object.defineProperty(jo, "__esModule", { value: !0 }),
+ (jo.default = new Uint16Array(
+ 'ᵁ<Õıʊҝջאٵ۞ޢߖࠏઑඡ༉༦ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲϏϢϸontourIntegraìȹoɴ\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲy;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱còJTabcdfgorstרׯؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ߂ߐĀiyޱrc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣসে্ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४ĀnrࢃgleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpwਖਛgȀLRlr৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼અઋp;椅y;䐜Ādl੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑඞcy;䐊cute;䅃ƀaeyહાron;䅇dil;䅅;䐝ƀgswે૰ativeƀMTV૨ediumSpace;怋hiĀcn૦ëeryThiîtedĀGLଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷreak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪௫ఄ಄ದൡඅ櫬Āoungruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater;EFGLSTஶஷ扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨setĀ;Eೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂෛ෧ขภยา฿ไlig;䅒cute耻Ó䃓Āiyීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲcr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬืde耻Õ䃕es;樷ml耻Ö䃖erĀBP๋Āar๐๓r;怾acĀek๚;揞et;掴arenthesis;揜ҀacfhilorsງຊຏຒດຝະrtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ檻cedesȀ;EST່້扺qual;檯lantEqual;扼ilde;找me;怳Ādpuct;戏ortionĀ;aȥl;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL憒ar;懥eftArrow;懄eiling;按oǵ\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄቕቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHcቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗ĀeiቻDzኀ\0ኇefore;戴a;䎘ĀcnኘkSpace;쀀 Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtèa;䎖r;愨pf;愤cr;쀀𝒵ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒;Eaeiopᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;eᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;eᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰᝃᝈ០៦ᠹᡐᜍ᥈ᥰot;櫭ĀcrᛶkȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;tbrk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯᝳ;䎲;愶een;扬r;쀀𝔟gcostuvwឍឝឳេ៕៛ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀakoᠦᠵĀcn៲ᠣkƀlst֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ;敛;敘;攘;攔;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģbar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;elƀ;bhᥨᥩᥫ䁜;槅sub;柈ŬᥴlĀ;e怢t»pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭒\0᯽\0ᰌƀcprᦲute;䄇̀;abcdsᦿᧀᧄ᧕᧙戩nd;橄rcup;橉Āau᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r;Ecefms᩠ᩢᩫ᪤᪪旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ\0\0aĀ;t䀬;䁀ƀ;fl戁îᅠeĀmxent»eóɍǧ\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯delprvw᭠᭬᭷ᮂᮬᯔarrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;pᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰻᰿ᱝᱩᱵᲞᲬᲷᴍᵻᶑᶫᶻ᷆᷍ròar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂᳖᳜᳠mƀ;oș᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄĀDoḆᴴoôĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»ṺƀaeiἒἚls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧\0耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₥₰₴⃰℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽ƀ;qsؾٌlanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqrⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0proør;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼ròòΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonóquigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roøurĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨íistĀ;sடr;쀀𝔫ȀEest⩦⩹⩼ƀ;qs⩭ƀ;qs⩴lanôií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast⭕⭚⭟lleìl;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖchimpqu⮽⯍⯙⬄⯤⯯Ȁ;cerല⯆ഷ⯉uå;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭ååഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñĀ;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;cⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācrir;榿;쀀𝔬ͯ\0\0\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕⶥⶨrò᪀Āirⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔǒr;榷rp;榹;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ\0\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ脀¶;l䂶leìЃɩ\0\0m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳ᤈ⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t⾴ïrel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⋢⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔ABHabcdefhilmnoprstuxけさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstwガクシスゼゾダッデナp;極Ā;fゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ìâヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘rrowĀ;tㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowóarpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓ròaòՑ;怏oustĀ;a㈞掱che»mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì耻䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;qኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫwar;椪lig耻ß䃟㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rëƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproøim»ኬsðኞĀas㚺㚮ðrn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈadempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xôheadĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roðtré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜtré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'
+ .split("")
+ .map(function (t) {
+ return t.charCodeAt(0);
+ }),
+ ))),
+ jo
+ );
+}
+var Ko = {},
+ mO;
+function Qq0() {
+ return (
+ mO ||
+ ((mO = 1),
+ Object.defineProperty(Ko, "__esModule", { value: !0 }),
+ (Ko.default = new Uint16Array(
+ "Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(function (t) {
+ return t.charCodeAt(0);
+ }),
+ ))),
+ Ko
+ );
+}
+var $u = {},
+ WO;
+function RO() {
+ return (
+ WO ||
+ ((WO = 1),
+ (function (t) {
+ var e;
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.replaceCodePoint = t.fromCodePoint = void 0));
+ var n = new Map([
+ [0, 65533],
+ [128, 8364],
+ [130, 8218],
+ [131, 402],
+ [132, 8222],
+ [133, 8230],
+ [134, 8224],
+ [135, 8225],
+ [136, 710],
+ [137, 8240],
+ [138, 352],
+ [139, 8249],
+ [140, 338],
+ [142, 381],
+ [145, 8216],
+ [146, 8217],
+ [147, 8220],
+ [148, 8221],
+ [149, 8226],
+ [150, 8211],
+ [151, 8212],
+ [152, 732],
+ [153, 8482],
+ [154, 353],
+ [155, 8250],
+ [156, 339],
+ [158, 382],
+ [159, 376],
+ ]);
+ t.fromCodePoint =
+ (e = String.fromCodePoint) !== null && e !== void 0
+ ? e
+ : function (s) {
+ var o = "";
+ return (
+ s > 65535 &&
+ ((s -= 65536),
+ (o += String.fromCharCode(((s >>> 10) & 1023) | 55296)),
+ (s = 56320 | (s & 1023))),
+ (o += String.fromCharCode(s)),
+ o
+ );
+ };
+ function i(s) {
+ var o;
+ return (s >= 55296 && s <= 57343) || s > 1114111
+ ? 65533
+ : (o = n.get(s)) !== null && o !== void 0
+ ? o
+ : s;
+ }
+ t.replaceCodePoint = i;
+ function r(s) {
+ return (0, t.fromCodePoint)(i(s));
+ }
+ t.default = r;
+ })($u)),
+ $u
+ );
+}
+var yO;
+function LO() {
+ return (
+ yO ||
+ ((yO = 1),
+ (function (t) {
+ var e =
+ (_e && _e.__createBinding) ||
+ (Object.create
+ ? function (y, W, x, B) {
+ B === void 0 && (B = x);
+ var N = Object.getOwnPropertyDescriptor(W, x);
+ ((!N ||
+ ("get" in N
+ ? !W.__esModule
+ : N.writable || N.configurable)) &&
+ (N = {
+ enumerable: !0,
+ get: function () {
+ return W[x];
+ },
+ }),
+ Object.defineProperty(y, B, N));
+ }
+ : function (y, W, x, B) {
+ (B === void 0 && (B = x), (y[B] = W[x]));
+ }),
+ n =
+ (_e && _e.__setModuleDefault) ||
+ (Object.create
+ ? function (y, W) {
+ Object.defineProperty(y, "default", {
+ enumerable: !0,
+ value: W,
+ });
+ }
+ : function (y, W) {
+ y.default = W;
+ }),
+ i =
+ (_e && _e.__importStar) ||
+ function (y) {
+ if (y && y.__esModule) return y;
+ var W = {};
+ if (y != null)
+ for (var x in y)
+ x !== "default" &&
+ Object.prototype.hasOwnProperty.call(y, x) &&
+ e(W, y, x);
+ return (n(W, y), W);
+ },
+ r =
+ (_e && _e.__importDefault) ||
+ function (y) {
+ return y && y.__esModule ? y : { default: y };
+ };
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.decodeXML =
+ t.decodeHTMLStrict =
+ t.decodeHTMLAttribute =
+ t.decodeHTML =
+ t.determineBranch =
+ t.EntityDecoder =
+ t.DecodingMode =
+ t.BinTrieFlags =
+ t.fromCodePoint =
+ t.replaceCodePoint =
+ t.decodeCodePoint =
+ t.xmlDecodeTree =
+ t.htmlDecodeTree =
+ void 0));
+ var s = r(Yq0());
+ t.htmlDecodeTree = s.default;
+ var o = r(Qq0());
+ t.xmlDecodeTree = o.default;
+ var a = i(RO());
+ t.decodeCodePoint = a.default;
+ var u = RO();
+ (Object.defineProperty(t, "replaceCodePoint", {
+ enumerable: !0,
+ get: function () {
+ return u.replaceCodePoint;
+ },
+ }),
+ Object.defineProperty(t, "fromCodePoint", {
+ enumerable: !0,
+ get: function () {
+ return u.fromCodePoint;
+ },
+ }));
+ var c;
+ (function (y) {
+ ((y[(y.NUM = 35)] = "NUM"),
+ (y[(y.SEMI = 59)] = "SEMI"),
+ (y[(y.EQUALS = 61)] = "EQUALS"),
+ (y[(y.ZERO = 48)] = "ZERO"),
+ (y[(y.NINE = 57)] = "NINE"),
+ (y[(y.LOWER_A = 97)] = "LOWER_A"),
+ (y[(y.LOWER_F = 102)] = "LOWER_F"),
+ (y[(y.LOWER_X = 120)] = "LOWER_X"),
+ (y[(y.LOWER_Z = 122)] = "LOWER_Z"),
+ (y[(y.UPPER_A = 65)] = "UPPER_A"),
+ (y[(y.UPPER_F = 70)] = "UPPER_F"),
+ (y[(y.UPPER_Z = 90)] = "UPPER_Z"));
+ })(c || (c = {}));
+ var b = 32,
+ l;
+ (function (y) {
+ ((y[(y.VALUE_LENGTH = 49152)] = "VALUE_LENGTH"),
+ (y[(y.BRANCH_LENGTH = 16256)] = "BRANCH_LENGTH"),
+ (y[(y.JUMP_TABLE = 127)] = "JUMP_TABLE"));
+ })((l = t.BinTrieFlags || (t.BinTrieFlags = {})));
+ function p(y) {
+ return y >= c.ZERO && y <= c.NINE;
+ }
+ function M(y) {
+ return (
+ (y >= c.UPPER_A && y <= c.UPPER_F) ||
+ (y >= c.LOWER_A && y <= c.LOWER_F)
+ );
+ }
+ function d(y) {
+ return (
+ (y >= c.UPPER_A && y <= c.UPPER_Z) ||
+ (y >= c.LOWER_A && y <= c.LOWER_Z) ||
+ p(y)
+ );
+ }
+ function O(y) {
+ return y === c.EQUALS || d(y);
+ }
+ var f;
+ (function (y) {
+ ((y[(y.EntityStart = 0)] = "EntityStart"),
+ (y[(y.NumericStart = 1)] = "NumericStart"),
+ (y[(y.NumericDecimal = 2)] = "NumericDecimal"),
+ (y[(y.NumericHex = 3)] = "NumericHex"),
+ (y[(y.NamedEntity = 4)] = "NamedEntity"));
+ })(f || (f = {}));
+ var z;
+ (function (y) {
+ ((y[(y.Legacy = 0)] = "Legacy"),
+ (y[(y.Strict = 1)] = "Strict"),
+ (y[(y.Attribute = 2)] = "Attribute"));
+ })((z = t.DecodingMode || (t.DecodingMode = {})));
+ var g = (function () {
+ function y(W, x, B) {
+ ((this.decodeTree = W),
+ (this.emitCodePoint = x),
+ (this.errors = B),
+ (this.state = f.EntityStart),
+ (this.consumed = 1),
+ (this.result = 0),
+ (this.treeIndex = 0),
+ (this.excess = 1),
+ (this.decodeMode = z.Strict));
+ }
+ return (
+ (y.prototype.startEntity = function (W) {
+ ((this.decodeMode = W),
+ (this.state = f.EntityStart),
+ (this.result = 0),
+ (this.treeIndex = 0),
+ (this.excess = 1),
+ (this.consumed = 1));
+ }),
+ (y.prototype.write = function (W, x) {
+ switch (this.state) {
+ case f.EntityStart:
+ return W.charCodeAt(x) === c.NUM
+ ? ((this.state = f.NumericStart),
+ (this.consumed += 1),
+ this.stateNumericStart(W, x + 1))
+ : ((this.state = f.NamedEntity),
+ this.stateNamedEntity(W, x));
+ case f.NumericStart:
+ return this.stateNumericStart(W, x);
+ case f.NumericDecimal:
+ return this.stateNumericDecimal(W, x);
+ case f.NumericHex:
+ return this.stateNumericHex(W, x);
+ case f.NamedEntity:
+ return this.stateNamedEntity(W, x);
+ }
+ }),
+ (y.prototype.stateNumericStart = function (W, x) {
+ return x >= W.length
+ ? -1
+ : (W.charCodeAt(x) | b) === c.LOWER_X
+ ? ((this.state = f.NumericHex),
+ (this.consumed += 1),
+ this.stateNumericHex(W, x + 1))
+ : ((this.state = f.NumericDecimal),
+ this.stateNumericDecimal(W, x));
+ }),
+ (y.prototype.addToNumericResult = function (W, x, B, N) {
+ if (x !== B) {
+ var I = B - x;
+ ((this.result =
+ this.result * Math.pow(N, I) + parseInt(W.substr(x, I), N)),
+ (this.consumed += I));
+ }
+ }),
+ (y.prototype.stateNumericHex = function (W, x) {
+ for (var B = x; x < W.length; ) {
+ var N = W.charCodeAt(x);
+ if (p(N) || M(N)) x += 1;
+ else
+ return (
+ this.addToNumericResult(W, B, x, 16),
+ this.emitNumericEntity(N, 3)
+ );
+ }
+ return (this.addToNumericResult(W, B, x, 16), -1);
+ }),
+ (y.prototype.stateNumericDecimal = function (W, x) {
+ for (var B = x; x < W.length; ) {
+ var N = W.charCodeAt(x);
+ if (p(N)) x += 1;
+ else
+ return (
+ this.addToNumericResult(W, B, x, 10),
+ this.emitNumericEntity(N, 2)
+ );
+ }
+ return (this.addToNumericResult(W, B, x, 10), -1);
+ }),
+ (y.prototype.emitNumericEntity = function (W, x) {
+ var B;
+ if (this.consumed <= x)
+ return (
+ (B = this.errors) === null ||
+ B === void 0 ||
+ B.absenceOfDigitsInNumericCharacterReference(this.consumed),
+ 0
+ );
+ if (W === c.SEMI) this.consumed += 1;
+ else if (this.decodeMode === z.Strict) return 0;
+ return (
+ this.emitCodePoint(
+ (0, a.replaceCodePoint)(this.result),
+ this.consumed,
+ ),
+ this.errors &&
+ (W !== c.SEMI &&
+ this.errors.missingSemicolonAfterCharacterReference(),
+ this.errors.validateNumericCharacterReference(this.result)),
+ this.consumed
+ );
+ }),
+ (y.prototype.stateNamedEntity = function (W, x) {
+ for (
+ var B = this.decodeTree,
+ N = B[this.treeIndex],
+ I = (N & l.VALUE_LENGTH) >> 14;
+ x < W.length;
+ x++, this.excess++
+ ) {
+ var k = W.charCodeAt(x);
+ if (
+ ((this.treeIndex = h(
+ B,
+ N,
+ this.treeIndex + Math.max(1, I),
+ k,
+ )),
+ this.treeIndex < 0)
+ )
+ return this.result === 0 ||
+ (this.decodeMode === z.Attribute && (I === 0 || O(k)))
+ ? 0
+ : this.emitNotTerminatedNamedEntity();
+ if (
+ ((N = B[this.treeIndex]),
+ (I = (N & l.VALUE_LENGTH) >> 14),
+ I !== 0)
+ ) {
+ if (k === c.SEMI)
+ return this.emitNamedEntityData(
+ this.treeIndex,
+ I,
+ this.consumed + this.excess,
+ );
+ this.decodeMode !== z.Strict &&
+ ((this.result = this.treeIndex),
+ (this.consumed += this.excess),
+ (this.excess = 0));
+ }
+ }
+ return -1;
+ }),
+ (y.prototype.emitNotTerminatedNamedEntity = function () {
+ var W,
+ x = this,
+ B = x.result,
+ N = x.decodeTree,
+ I = (N[B] & l.VALUE_LENGTH) >> 14;
+ return (
+ this.emitNamedEntityData(B, I, this.consumed),
+ (W = this.errors) === null ||
+ W === void 0 ||
+ W.missingSemicolonAfterCharacterReference(),
+ this.consumed
+ );
+ }),
+ (y.prototype.emitNamedEntityData = function (W, x, B) {
+ var N = this.decodeTree;
+ return (
+ this.emitCodePoint(
+ x === 1 ? N[W] & ~l.VALUE_LENGTH : N[W + 1],
+ B,
+ ),
+ x === 3 && this.emitCodePoint(N[W + 2], B),
+ B
+ );
+ }),
+ (y.prototype.end = function () {
+ var W;
+ switch (this.state) {
+ case f.NamedEntity:
+ return this.result !== 0 &&
+ (this.decodeMode !== z.Attribute ||
+ this.result === this.treeIndex)
+ ? this.emitNotTerminatedNamedEntity()
+ : 0;
+ case f.NumericDecimal:
+ return this.emitNumericEntity(0, 2);
+ case f.NumericHex:
+ return this.emitNumericEntity(0, 3);
+ case f.NumericStart:
+ return (
+ (W = this.errors) === null ||
+ W === void 0 ||
+ W.absenceOfDigitsInNumericCharacterReference(
+ this.consumed,
+ ),
+ 0
+ );
+ case f.EntityStart:
+ return 0;
+ }
+ }),
+ y
+ );
+ })();
+ t.EntityDecoder = g;
+ function A(y) {
+ var W = "",
+ x = new g(y, function (B) {
+ return (W += (0, a.fromCodePoint)(B));
+ });
+ return function (N, I) {
+ for (var k = 0, F = 0; (F = N.indexOf("&", F)) >= 0; ) {
+ ((W += N.slice(k, F)), x.startEntity(I));
+ var Q = x.write(N, F + 1);
+ if (Q < 0) {
+ k = F + x.end();
+ break;
+ }
+ ((k = F + Q), (F = Q === 0 ? k + 1 : k));
+ }
+ var n0 = W + N.slice(k);
+ return ((W = ""), n0);
+ };
+ }
+ function h(y, W, x, B) {
+ var N = (W & l.BRANCH_LENGTH) >> 7,
+ I = W & l.JUMP_TABLE;
+ if (N === 0) return I !== 0 && B === I ? x : -1;
+ if (I) {
+ var k = B - I;
+ return k < 0 || k >= N ? -1 : y[x + k] - 1;
+ }
+ for (var F = x, Q = F + N - 1; F <= Q; ) {
+ var n0 = (F + Q) >>> 1,
+ Y = y[n0];
+ if (Y < B) F = n0 + 1;
+ else if (Y > B) Q = n0 - 1;
+ else return y[n0 + N];
+ }
+ return -1;
+ }
+ t.determineBranch = h;
+ var q = A(s.default),
+ v = A(o.default);
+ function m(y, W) {
+ return (W === void 0 && (W = z.Legacy), q(y, W));
+ }
+ t.decodeHTML = m;
+ function E(y) {
+ return q(y, z.Attribute);
+ }
+ t.decodeHTMLAttribute = E;
+ function _(y) {
+ return q(y, z.Strict);
+ }
+ t.decodeHTMLStrict = _;
+ function T(y) {
+ return v(y, z.Strict);
+ }
+ t.decodeXML = T;
+ })(_e)),
+ _e
+ );
+}
+var Wt = {},
+ Yo = {},
+ vO;
+function Jq0() {
+ if (vO) return Yo;
+ ((vO = 1), Object.defineProperty(Yo, "__esModule", { value: !0 }));
+ function t(e) {
+ for (var n = 1; n < e.length; n++) e[n][0] += e[n - 1][0] + 1;
+ return e;
+ }
+ return (
+ (Yo.default = new Map(
+ t([
+ [9, "	"],
+ [0, "
"],
+ [22, "!"],
+ [0, """],
+ [0, "#"],
+ [0, "$"],
+ [0, "%"],
+ [0, "&"],
+ [0, "'"],
+ [0, "("],
+ [0, ")"],
+ [0, "*"],
+ [0, "+"],
+ [0, ","],
+ [1, "."],
+ [0, "/"],
+ [10, ":"],
+ [0, ";"],
+ [0, { v: "<", n: 8402, o: "<⃒" }],
+ [0, { v: "=", n: 8421, o: "=⃥" }],
+ [0, { v: ">", n: 8402, o: ">⃒" }],
+ [0, "?"],
+ [0, "@"],
+ [26, "["],
+ [0, "\"],
+ [0, "]"],
+ [0, "^"],
+ [0, "_"],
+ [0, "`"],
+ [5, { n: 106, o: "fj" }],
+ [20, "{"],
+ [0, "|"],
+ [0, "}"],
+ [34, " "],
+ [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, "»"],
+ [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, "Ö"],
+ [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, "ñ"],
+ [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, "Č"],
+ [0, "č"],
+ [0, "Ď"],
+ [0, "ď"],
+ [0, "Đ"],
+ [0, "đ"],
+ [0, "Ē"],
+ [0, "ē"],
+ [2, "Ė"],
+ [0, "ė"],
+ [0, "Ę"],
+ [0, "ę"],
+ [0, "Ě"],
+ [0, "ě"],
+ [0, "Ĝ"],
+ [0, "ĝ"],
+ [0, "Ğ"],
+ [0, "ğ"],
+ [0, "Ġ"],
+ [0, "ġ"],
+ [0, "Ģ"],
+ [1, "Ĥ"],
+ [0, "ĥ"],
+ [0, "Ħ"],
+ [0, "ħ"],
+ [0, "Ĩ"],
+ [0, "ĩ"],
+ [0, "Ī"],
+ [0, "ī"],
+ [2, "Į"],
+ [0, "į"],
+ [0, "İ"],
+ [0, "ı"],
+ [0, "IJ"],
+ [0, "ij"],
+ [0, "Ĵ"],
+ [0, "ĵ"],
+ [0, "Ķ"],
+ [0, "ķ"],
+ [0, "ĸ"],
+ [0, "Ĺ"],
+ [0, "ĺ"],
+ [0, "Ļ"],
+ [0, "ļ"],
+ [0, "Ľ"],
+ [0, "ľ"],
+ [0, "Ŀ"],
+ [0, "ŀ"],
+ [0, "Ł"],
+ [0, "ł"],
+ [0, "Ń"],
+ [0, "ń"],
+ [0, "Ņ"],
+ [0, "ņ"],
+ [0, "Ň"],
+ [0, "ň"],
+ [0, "ʼn"],
+ [0, "Ŋ"],
+ [0, "ŋ"],
+ [0, "Ō"],
+ [0, "ō"],
+ [2, "Ő"],
+ [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, "ū"],
+ [0, "Ŭ"],
+ [0, "ŭ"],
+ [0, "Ů"],
+ [0, "ů"],
+ [0, "Ű"],
+ [0, "ű"],
+ [0, "Ų"],
+ [0, "ų"],
+ [0, "Ŵ"],
+ [0, "ŵ"],
+ [0, "Ŷ"],
+ [0, "ŷ"],
+ [0, "Ÿ"],
+ [0, "Ź"],
+ [0, "ź"],
+ [0, "Ż"],
+ [0, "ż"],
+ [0, "Ž"],
+ [0, "ž"],
+ [19, "ƒ"],
+ [34, "Ƶ"],
+ [63, "ǵ"],
+ [65, "ȷ"],
+ [142, "ˆ"],
+ [0, "ˇ"],
+ [16, "˘"],
+ [0, "˙"],
+ [0, "˚"],
+ [0, "˛"],
+ [0, "˜"],
+ [0, "˝"],
+ [51, "̑"],
+ [127, "Α"],
+ [0, "Β"],
+ [0, "Γ"],
+ [0, "Δ"],
+ [0, "Ε"],
+ [0, "Ζ"],
+ [0, "Η"],
+ [0, "Θ"],
+ [0, "Ι"],
+ [0, "Κ"],
+ [0, "Λ"],
+ [0, "Μ"],
+ [0, "Ν"],
+ [0, "Ξ"],
+ [0, "Ο"],
+ [0, "Π"],
+ [0, "Ρ"],
+ [1, "Σ"],
+ [0, "Τ"],
+ [0, "Υ"],
+ [0, "Φ"],
+ [0, "Χ"],
+ [0, "Ψ"],
+ [0, "Ω"],
+ [7, "α"],
+ [0, "β"],
+ [0, "γ"],
+ [0, "δ"],
+ [0, "ε"],
+ [0, "ζ"],
+ [0, "η"],
+ [0, "θ"],
+ [0, "ι"],
+ [0, "κ"],
+ [0, "λ"],
+ [0, "μ"],
+ [0, "ν"],
+ [0, "ξ"],
+ [0, "ο"],
+ [0, "π"],
+ [0, "ρ"],
+ [0, "ς"],
+ [0, "σ"],
+ [0, "τ"],
+ [0, "υ"],
+ [0, "φ"],
+ [0, "χ"],
+ [0, "ψ"],
+ [0, "ω"],
+ [7, "ϑ"],
+ [0, "ϒ"],
+ [2, "ϕ"],
+ [0, "ϖ"],
+ [5, "Ϝ"],
+ [0, "ϝ"],
+ [18, "ϰ"],
+ [0, "ϱ"],
+ [3, "ϵ"],
+ [0, "϶"],
+ [10, "Ё"],
+ [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, "Н"],
+ [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, "и"],
+ [0, "й"],
+ [0, "к"],
+ [0, "л"],
+ [0, "м"],
+ [0, "н"],
+ [0, "о"],
+ [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, "ќ"],
+ [1, "ў"],
+ [0, "џ"],
+ [7074, " "],
+ [0, " "],
+ [0, " "],
+ [0, " "],
+ [1, " "],
+ [0, " "],
+ [0, " "],
+ [0, " "],
+ [0, "​"],
+ [0, ""],
+ [0, ""],
+ [0, ""],
+ [0, ""],
+ [0, "‐"],
+ [2, "–"],
+ [0, "—"],
+ [0, "―"],
+ [0, "‖"],
+ [1, "‘"],
+ [0, "’"],
+ [0, "‚"],
+ [1, "“"],
+ [0, "”"],
+ [0, "„"],
+ [1, "†"],
+ [0, "‡"],
+ [0, "•"],
+ [2, "‥"],
+ [0, "…"],
+ [9, "‰"],
+ [0, "‱"],
+ [0, "′"],
+ [0, "″"],
+ [0, "‴"],
+ [0, "‵"],
+ [3, "‹"],
+ [0, "›"],
+ [3, "‾"],
+ [2, "⁁"],
+ [1, "⁃"],
+ [0, "⁄"],
+ [10, "⁏"],
+ [7, "⁗"],
+ [7, { v: " ", n: 8202, o: "  " }],
+ [0, "⁠"],
+ [0, "⁡"],
+ [0, "⁢"],
+ [0, "⁣"],
+ [72, "€"],
+ [46, "⃛"],
+ [0, "⃜"],
+ [37, "ℂ"],
+ [2, "℅"],
+ [4, "ℊ"],
+ [0, "ℋ"],
+ [0, "ℌ"],
+ [0, "ℍ"],
+ [0, "ℎ"],
+ [0, "ℏ"],
+ [0, "ℐ"],
+ [0, "ℑ"],
+ [0, "ℒ"],
+ [0, "ℓ"],
+ [1, "ℕ"],
+ [0, "№"],
+ [0, "℗"],
+ [0, "℘"],
+ [0, "ℙ"],
+ [0, "ℚ"],
+ [0, "ℛ"],
+ [0, "ℜ"],
+ [0, "ℝ"],
+ [0, "℞"],
+ [3, "™"],
+ [1, "ℤ"],
+ [2, "℧"],
+ [0, "ℨ"],
+ [0, "℩"],
+ [2, "ℬ"],
+ [0, "ℭ"],
+ [1, "ℯ"],
+ [0, "ℰ"],
+ [0, "ℱ"],
+ [1, "ℳ"],
+ [0, "ℴ"],
+ [0, "ℵ"],
+ [0, "ℶ"],
+ [0, "ℷ"],
+ [0, "ℸ"],
+ [12, "ⅅ"],
+ [0, "ⅆ"],
+ [0, "ⅇ"],
+ [0, "ⅈ"],
+ [10, "⅓"],
+ [0, "⅔"],
+ [0, "⅕"],
+ [0, "⅖"],
+ [0, "⅗"],
+ [0, "⅘"],
+ [0, "⅙"],
+ [0, "⅚"],
+ [0, "⅛"],
+ [0, "⅜"],
+ [0, "⅝"],
+ [0, "⅞"],
+ [49, "←"],
+ [0, "↑"],
+ [0, "→"],
+ [0, "↓"],
+ [0, "↔"],
+ [0, "↕"],
+ [0, "↖"],
+ [0, "↗"],
+ [0, "↘"],
+ [0, "↙"],
+ [0, "↚"],
+ [0, "↛"],
+ [1, { v: "↝", n: 824, o: "↝̸" }],
+ [0, "↞"],
+ [0, "↟"],
+ [0, "↠"],
+ [0, "↡"],
+ [0, "↢"],
+ [0, "↣"],
+ [0, "↤"],
+ [0, "↥"],
+ [0, "↦"],
+ [0, "↧"],
+ [1, "↩"],
+ [0, "↪"],
+ [0, "↫"],
+ [0, "↬"],
+ [0, "↭"],
+ [0, "↮"],
+ [1, "↰"],
+ [0, "↱"],
+ [0, "↲"],
+ [0, "↳"],
+ [1, "↵"],
+ [0, "↶"],
+ [0, "↷"],
+ [2, "↺"],
+ [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, "⇕"],
+ [0, "⇖"],
+ [0, "⇗"],
+ [0, "⇘"],
+ [0, "⇙"],
+ [0, "⇚"],
+ [0, "⇛"],
+ [1, "⇝"],
+ [6, "⇤"],
+ [0, "⇥"],
+ [15, "⇵"],
+ [7, "⇽"],
+ [0, "⇾"],
+ [0, "⇿"],
+ [0, "∀"],
+ [0, "∁"],
+ [0, { v: "∂", n: 824, o: "∂̸" }],
+ [0, "∃"],
+ [0, "∄"],
+ [0, "∅"],
+ [1, "∇"],
+ [0, "∈"],
+ [0, "∉"],
+ [1, "∋"],
+ [0, "∌"],
+ [2, "∏"],
+ [0, "∐"],
+ [0, "∑"],
+ [0, "−"],
+ [0, "∓"],
+ [0, "∔"],
+ [1, "∖"],
+ [0, "∗"],
+ [0, "∘"],
+ [1, "√"],
+ [2, "∝"],
+ [0, "∞"],
+ [0, "∟"],
+ [0, { v: "∠", n: 8402, o: "∠⃒" }],
+ [0, "∡"],
+ [0, "∢"],
+ [0, "∣"],
+ [0, "∤"],
+ [0, "∥"],
+ [0, "∦"],
+ [0, "∧"],
+ [0, "∨"],
+ [0, { v: "∩", n: 65024, o: "∩︀" }],
+ [0, { v: "∪", n: 65024, o: "∪︀" }],
+ [0, "∫"],
+ [0, "∬"],
+ [0, "∭"],
+ [0, "∮"],
+ [0, "∯"],
+ [0, "∰"],
+ [0, "∱"],
+ [0, "∲"],
+ [0, "∳"],
+ [0, "∴"],
+ [0, "∵"],
+ [0, "∶"],
+ [0, "∷"],
+ [0, "∸"],
+ [1, "∺"],
+ [0, "∻"],
+ [0, { v: "∼", n: 8402, o: "∼⃒" }],
+ [0, { v: "∽", n: 817, o: "∽̱" }],
+ [0, { v: "∾", n: 819, o: "∾̳" }],
+ [0, "∿"],
+ [0, "≀"],
+ [0, "≁"],
+ [0, { v: "≂", n: 824, o: "≂̸" }],
+ [0, "≃"],
+ [0, "≄"],
+ [0, "≅"],
+ [0, "≆"],
+ [0, "≇"],
+ [0, "≈"],
+ [0, "≉"],
+ [0, "≊"],
+ [0, { v: "≋", n: 824, o: "≋̸" }],
+ [0, "≌"],
+ [0, { v: "≍", n: 8402, o: "≍⃒" }],
+ [0, { v: "≎", n: 824, o: "≎̸" }],
+ [0, { v: "≏", n: 824, o: "≏̸" }],
+ [0, { v: "≐", n: 824, o: "≐̸" }],
+ [0, "≑"],
+ [0, "≒"],
+ [0, "≓"],
+ [0, "≔"],
+ [0, "≕"],
+ [0, "≖"],
+ [0, "≗"],
+ [1, "≙"],
+ [0, "≚"],
+ [1, "≜"],
+ [2, "≟"],
+ [0, "≠"],
+ [0, { v: "≡", n: 8421, o: "≡⃥" }],
+ [0, "≢"],
+ [1, { v: "≤", n: 8402, o: "≤⃒" }],
+ [0, { v: "≥", n: 8402, o: "≥⃒" }],
+ [0, { v: "≦", n: 824, o: "≦̸" }],
+ [0, { v: "≧", n: 824, o: "≧̸" }],
+ [0, { v: "≨", n: 65024, o: "≨︀" }],
+ [0, { v: "≩", n: 65024, o: "≩︀" }],
+ [
+ 0,
+ {
+ v: "≪",
+ n: new Map(
+ t([
+ [824, "≪̸"],
+ [7577, "≪⃒"],
+ ]),
+ ),
+ },
+ ],
+ [
+ 0,
+ {
+ v: "≫",
+ n: new Map(
+ t([
+ [824, "≫̸"],
+ [7577, "≫⃒"],
+ ]),
+ ),
+ },
+ ],
+ [0, "≬"],
+ [0, "≭"],
+ [0, "≮"],
+ [0, "≯"],
+ [0, "≰"],
+ [0, "≱"],
+ [0, "≲"],
+ [0, "≳"],
+ [0, "≴"],
+ [0, "≵"],
+ [0, "≶"],
+ [0, "≷"],
+ [0, "≸"],
+ [0, "≹"],
+ [0, "≺"],
+ [0, "≻"],
+ [0, "≼"],
+ [0, "≽"],
+ [0, "≾"],
+ [0, { v: "≿", n: 824, o: "≿̸" }],
+ [0, "⊀"],
+ [0, "⊁"],
+ [0, { v: "⊂", n: 8402, o: "⊂⃒" }],
+ [0, { v: "⊃", n: 8402, o: "⊃⃒" }],
+ [0, "⊄"],
+ [0, "⊅"],
+ [0, "⊆"],
+ [0, "⊇"],
+ [0, "⊈"],
+ [0, "⊉"],
+ [0, { v: "⊊", n: 65024, o: "⊊︀" }],
+ [0, { v: "⊋", n: 65024, o: "⊋︀" }],
+ [1, "⊍"],
+ [0, "⊎"],
+ [0, { v: "⊏", n: 824, o: "⊏̸" }],
+ [0, { v: "⊐", n: 824, o: "⊐̸" }],
+ [0, "⊑"],
+ [0, "⊒"],
+ [0, { v: "⊓", n: 65024, o: "⊓︀" }],
+ [0, { v: "⊔", n: 65024, o: "⊔︀" }],
+ [0, "⊕"],
+ [0, "⊖"],
+ [0, "⊗"],
+ [0, "⊘"],
+ [0, "⊙"],
+ [0, "⊚"],
+ [0, "⊛"],
+ [1, "⊝"],
+ [0, "⊞"],
+ [0, "⊟"],
+ [0, "⊠"],
+ [0, "⊡"],
+ [0, "⊢"],
+ [0, "⊣"],
+ [0, "⊤"],
+ [0, "⊥"],
+ [1, "⊧"],
+ [0, "⊨"],
+ [0, "⊩"],
+ [0, "⊪"],
+ [0, "⊫"],
+ [0, "⊬"],
+ [0, "⊭"],
+ [0, "⊮"],
+ [0, "⊯"],
+ [0, "⊰"],
+ [1, "⊲"],
+ [0, "⊳"],
+ [0, { v: "⊴", n: 8402, o: "⊴⃒" }],
+ [0, { v: "⊵", n: 8402, o: "⊵⃒" }],
+ [0, "⊶"],
+ [0, "⊷"],
+ [0, "⊸"],
+ [0, "⊹"],
+ [0, "⊺"],
+ [0, "⊻"],
+ [1, "⊽"],
+ [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, { v: "⋘", n: 824, o: "⋘̸" }],
+ [0, { v: "⋙", n: 824, o: "⋙̸" }],
+ [0, { v: "⋚", n: 65024, o: "⋚︀" }],
+ [0, { v: "⋛", n: 65024, o: "⋛︀" }],
+ [2, "⋞"],
+ [0, "⋟"],
+ [0, "⋠"],
+ [0, "⋡"],
+ [0, "⋢"],
+ [0, "⋣"],
+ [2, "⋦"],
+ [0, "⋧"],
+ [0, "⋨"],
+ [0, "⋩"],
+ [0, "⋪"],
+ [0, "⋫"],
+ [0, "⋬"],
+ [0, "⋭"],
+ [0, "⋮"],
+ [0, "⋯"],
+ [0, "⋰"],
+ [0, "⋱"],
+ [0, "⋲"],
+ [0, "⋳"],
+ [0, "⋴"],
+ [0, { v: "⋵", n: 824, o: "⋵̸" }],
+ [0, "⋶"],
+ [0, "⋷"],
+ [1, { v: "⋹", n: 824, o: "⋹̸" }],
+ [0, "⋺"],
+ [0, "⋻"],
+ [0, "⋼"],
+ [0, "⋽"],
+ [0, "⋾"],
+ [6, "⌅"],
+ [0, "⌆"],
+ [1, "⌈"],
+ [0, "⌉"],
+ [0, "⌊"],
+ [0, "⌋"],
+ [0, "⌌"],
+ [0, "⌍"],
+ [0, "⌎"],
+ [0, "⌏"],
+ [0, "⌐"],
+ [1, "⌒"],
+ [0, "⌓"],
+ [1, "⌕"],
+ [0, "⌖"],
+ [5, "⌜"],
+ [0, "⌝"],
+ [0, "⌞"],
+ [0, "⌟"],
+ [2, "⌢"],
+ [0, "⌣"],
+ [9, "⌭"],
+ [0, "⌮"],
+ [7, "⌶"],
+ [6, "⌽"],
+ [1, "⌿"],
+ [60, "⍼"],
+ [51, "⎰"],
+ [0, "⎱"],
+ [2, "⎴"],
+ [0, "⎵"],
+ [0, "⎶"],
+ [37, "⏜"],
+ [0, "⏝"],
+ [0, "⏞"],
+ [0, "⏟"],
+ [2, "⏢"],
+ [4, "⏧"],
+ [59, "␣"],
+ [164, "Ⓢ"],
+ [55, "─"],
+ [1, "│"],
+ [9, "┌"],
+ [3, "┐"],
+ [3, "└"],
+ [3, "┘"],
+ [3, "├"],
+ [7, "┤"],
+ [7, "┬"],
+ [7, "┴"],
+ [7, "┼"],
+ [19, "═"],
+ [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, "╫"],
+ [0, "╬"],
+ [19, "▀"],
+ [3, "▄"],
+ [3, "█"],
+ [8, "░"],
+ [0, "▒"],
+ [0, "▓"],
+ [13, "□"],
+ [8, "▪"],
+ [0, "▫"],
+ [1, "▭"],
+ [0, "▮"],
+ [2, "▱"],
+ [1, "△"],
+ [0, "▴"],
+ [0, "▵"],
+ [2, "▸"],
+ [0, "▹"],
+ [3, "▽"],
+ [0, "▾"],
+ [0, "▿"],
+ [2, "◂"],
+ [0, "◃"],
+ [6, "◊"],
+ [0, "○"],
+ [32, "◬"],
+ [2, "◯"],
+ [8, "◸"],
+ [0, "◹"],
+ [0, "◺"],
+ [0, "◻"],
+ [0, "◼"],
+ [8, "★"],
+ [0, "☆"],
+ [7, "☎"],
+ [49, "♀"],
+ [1, "♂"],
+ [29, "♠"],
+ [2, "♣"],
+ [1, "♥"],
+ [0, "♦"],
+ [3, "♪"],
+ [2, "♭"],
+ [0, "♮"],
+ [0, "♯"],
+ [163, "✓"],
+ [3, "✗"],
+ [8, "✠"],
+ [21, "✶"],
+ [33, "❘"],
+ [25, "❲"],
+ [0, "❳"],
+ [84, "⟈"],
+ [0, "⟉"],
+ [28, "⟦"],
+ [0, "⟧"],
+ [0, "〈"],
+ [0, "〉"],
+ [0, "⟪"],
+ [0, "⟫"],
+ [0, "⟬"],
+ [0, "⟭"],
+ [7, "⟵"],
+ [0, "⟶"],
+ [0, "⟷"],
+ [0, "⟸"],
+ [0, "⟹"],
+ [0, "⟺"],
+ [1, "⟼"],
+ [2, "⟿"],
+ [258, "⤂"],
+ [0, "⤃"],
+ [0, "⤄"],
+ [0, "⤅"],
+ [6, "⤌"],
+ [0, "⤍"],
+ [0, "⤎"],
+ [0, "⤏"],
+ [0, "⤐"],
+ [0, "⤑"],
+ [0, "⤒"],
+ [0, "⤓"],
+ [2, "⤖"],
+ [2, "⤙"],
+ [0, "⤚"],
+ [0, "⤛"],
+ [0, "⤜"],
+ [0, "⤝"],
+ [0, "⤞"],
+ [0, "⤟"],
+ [0, "⤠"],
+ [2, "⤣"],
+ [0, "⤤"],
+ [0, "⤥"],
+ [0, "⤦"],
+ [0, "⤧"],
+ [0, "⤨"],
+ [0, "⤩"],
+ [0, "⤪"],
+ [8, { v: "⤳", n: 824, o: "⤳̸" }],
+ [1, "⤵"],
+ [0, "⤶"],
+ [0, "⤷"],
+ [0, "⤸"],
+ [0, "⤹"],
+ [2, "⤼"],
+ [0, "⤽"],
+ [7, "⥅"],
+ [2, "⥈"],
+ [0, "⥉"],
+ [0, "⥊"],
+ [0, "⥋"],
+ [2, "⥎"],
+ [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, "⥩"],
+ [0, "⥪"],
+ [0, "⥫"],
+ [0, "⥬"],
+ [0, "⥭"],
+ [0, "⥮"],
+ [0, "⥯"],
+ [0, "⥰"],
+ [0, "⥱"],
+ [0, "⥲"],
+ [0, "⥳"],
+ [0, "⥴"],
+ [0, "⥵"],
+ [0, "⥶"],
+ [1, "⥸"],
+ [0, "⥹"],
+ [1, "⥻"],
+ [0, "⥼"],
+ [0, "⥽"],
+ [0, "⥾"],
+ [0, "⥿"],
+ [5, "⦅"],
+ [0, "⦆"],
+ [4, "⦋"],
+ [0, "⦌"],
+ [0, "⦍"],
+ [0, "⦎"],
+ [0, "⦏"],
+ [0, "⦐"],
+ [0, "⦑"],
+ [0, "⦒"],
+ [0, "⦓"],
+ [0, "⦔"],
+ [0, "⦕"],
+ [0, "⦖"],
+ [3, "⦚"],
+ [1, "⦜"],
+ [0, "⦝"],
+ [6, "⦤"],
+ [0, "⦥"],
+ [0, "⦦"],
+ [0, "⦧"],
+ [0, "⦨"],
+ [0, "⦩"],
+ [0, "⦪"],
+ [0, "⦫"],
+ [0, "⦬"],
+ [0, "⦭"],
+ [0, "⦮"],
+ [0, "⦯"],
+ [0, "⦰"],
+ [0, "⦱"],
+ [0, "⦲"],
+ [0, "⦳"],
+ [0, "⦴"],
+ [0, "⦵"],
+ [0, "⦶"],
+ [0, "⦷"],
+ [1, "⦹"],
+ [1, "⦻"],
+ [0, "⦼"],
+ [1, "⦾"],
+ [0, "⦿"],
+ [0, "⧀"],
+ [0, "⧁"],
+ [0, "⧂"],
+ [0, "⧃"],
+ [0, "⧄"],
+ [0, "⧅"],
+ [3, "⧉"],
+ [3, "⧍"],
+ [0, "⧎"],
+ [0, { v: "⧏", n: 824, o: "⧏̸" }],
+ [0, { v: "⧐", n: 824, o: "⧐̸" }],
+ [11, "⧜"],
+ [0, "⧝"],
+ [0, "⧞"],
+ [4, "⧣"],
+ [0, "⧤"],
+ [0, "⧥"],
+ [5, "⧫"],
+ [8, "⧴"],
+ [1, "⧶"],
+ [9, "⨀"],
+ [0, "⨁"],
+ [0, "⨂"],
+ [1, "⨄"],
+ [1, "⨆"],
+ [5, "⨌"],
+ [0, "⨍"],
+ [2, "⨐"],
+ [0, "⨑"],
+ [0, "⨒"],
+ [0, "⨓"],
+ [0, "⨔"],
+ [0, "⨕"],
+ [0, "⨖"],
+ [0, "⨗"],
+ [10, "⨢"],
+ [0, "⨣"],
+ [0, "⨤"],
+ [0, "⨥"],
+ [0, "⨦"],
+ [0, "⨧"],
+ [1, "⨩"],
+ [0, "⨪"],
+ [2, "⨭"],
+ [0, "⨮"],
+ [0, "⨯"],
+ [0, "⨰"],
+ [0, "⨱"],
+ [1, "⨳"],
+ [0, "⨴"],
+ [0, "⨵"],
+ [0, "⨶"],
+ [0, "⨷"],
+ [0, "⨸"],
+ [0, "⨹"],
+ [0, "⨺"],
+ [0, "⨻"],
+ [0, "⨼"],
+ [2, "⨿"],
+ [0, "⩀"],
+ [1, "⩂"],
+ [0, "⩃"],
+ [0, "⩄"],
+ [0, "⩅"],
+ [0, "⩆"],
+ [0, "⩇"],
+ [0, "⩈"],
+ [0, "⩉"],
+ [0, "⩊"],
+ [0, "⩋"],
+ [0, "⩌"],
+ [0, "⩍"],
+ [2, "⩐"],
+ [2, "⩓"],
+ [0, "⩔"],
+ [0, "⩕"],
+ [0, "⩖"],
+ [0, "⩗"],
+ [0, "⩘"],
+ [1, "⩚"],
+ [0, "⩛"],
+ [0, "⩜"],
+ [0, "⩝"],
+ [1, "⩟"],
+ [6, "⩦"],
+ [3, "⩪"],
+ [2, { v: "⩭", n: 824, o: "⩭̸" }],
+ [0, "⩮"],
+ [0, "⩯"],
+ [0, { v: "⩰", n: 824, o: "⩰̸" }],
+ [0, "⩱"],
+ [0, "⩲"],
+ [0, "⩳"],
+ [0, "⩴"],
+ [0, "⩵"],
+ [1, "⩷"],
+ [0, "⩸"],
+ [0, "⩹"],
+ [0, "⩺"],
+ [0, "⩻"],
+ [0, "⩼"],
+ [0, { v: "⩽", n: 824, o: "⩽̸" }],
+ [0, { v: "⩾", n: 824, o: "⩾̸" }],
+ [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, "⪙"],
+ [0, "⪚"],
+ [2, "⪝"],
+ [0, "⪞"],
+ [0, "⪟"],
+ [0, "⪠"],
+ [0, { v: "⪡", n: 824, o: "⪡̸" }],
+ [0, { v: "⪢", n: 824, o: "⪢̸" }],
+ [1, "⪤"],
+ [0, "⪥"],
+ [0, "⪦"],
+ [0, "⪧"],
+ [0, "⪨"],
+ [0, "⪩"],
+ [0, "⪪"],
+ [0, "⪫"],
+ [0, { v: "⪬", n: 65024, o: "⪬︀" }],
+ [0, { v: "⪭", n: 65024, o: "⪭︀" }],
+ [0, "⪮"],
+ [0, { v: "⪯", n: 824, o: "⪯̸" }],
+ [0, { v: "⪰", n: 824, o: "⪰̸" }],
+ [2, "⪳"],
+ [0, "⪴"],
+ [0, "⪵"],
+ [0, "⪶"],
+ [0, "⪷"],
+ [0, "⪸"],
+ [0, "⪹"],
+ [0, "⪺"],
+ [0, "⪻"],
+ [0, "⪼"],
+ [0, "⪽"],
+ [0, "⪾"],
+ [0, "⪿"],
+ [0, "⫀"],
+ [0, "⫁"],
+ [0, "⫂"],
+ [0, "⫃"],
+ [0, "⫄"],
+ [0, { v: "⫅", n: 824, o: "⫅̸" }],
+ [0, { v: "⫆", n: 824, o: "⫆̸" }],
+ [0, "⫇"],
+ [0, "⫈"],
+ [2, { v: "⫋", n: 65024, o: "⫋︀" }],
+ [0, { v: "⫌", n: 65024, o: "⫌︀" }],
+ [2, "⫏"],
+ [0, "⫐"],
+ [0, "⫑"],
+ [0, "⫒"],
+ [0, "⫓"],
+ [0, "⫔"],
+ [0, "⫕"],
+ [0, "⫖"],
+ [0, "⫗"],
+ [0, "⫘"],
+ [0, "⫙"],
+ [0, "⫚"],
+ [0, "⫛"],
+ [8, "⫤"],
+ [1, "⫦"],
+ [0, "⫧"],
+ [0, "⫨"],
+ [0, "⫩"],
+ [1, "⫫"],
+ [0, "⫬"],
+ [0, "⫭"],
+ [0, "⫮"],
+ [0, "⫯"],
+ [0, "⫰"],
+ [0, "⫱"],
+ [0, "⫲"],
+ [0, "⫳"],
+ [9, { v: "⫽", n: 8421, o: "⫽⃥" }],
+ [
+ 44343,
+ {
+ n: new Map(
+ t([
+ [56476, "𝒜"],
+ [1, "𝒞"],
+ [0, "𝒟"],
+ [2, "𝒢"],
+ [2, "𝒥"],
+ [0, "𝒦"],
+ [2, "𝒩"],
+ [0, "𝒪"],
+ [0, "𝒫"],
+ [0, "𝒬"],
+ [1, "𝒮"],
+ [0, "𝒯"],
+ [0, "𝒰"],
+ [0, "𝒱"],
+ [0, "𝒲"],
+ [0, "𝒳"],
+ [0, "𝒴"],
+ [0, "𝒵"],
+ [0, "𝒶"],
+ [0, "𝒷"],
+ [0, "𝒸"],
+ [0, "𝒹"],
+ [1, "𝒻"],
+ [1, "𝒽"],
+ [0, "𝒾"],
+ [0, "𝒿"],
+ [0, "𝓀"],
+ [0, "𝓁"],
+ [0, "𝓂"],
+ [0, "𝓃"],
+ [1, "𝓅"],
+ [0, "𝓆"],
+ [0, "𝓇"],
+ [0, "𝓈"],
+ [0, "𝓉"],
+ [0, "𝓊"],
+ [0, "𝓋"],
+ [0, "𝓌"],
+ [0, "𝓍"],
+ [0, "𝓎"],
+ [0, "𝓏"],
+ [52, "𝔄"],
+ [0, "𝔅"],
+ [1, "𝔇"],
+ [0, "𝔈"],
+ [0, "𝔉"],
+ [0, "𝔊"],
+ [2, "𝔍"],
+ [0, "𝔎"],
+ [0, "𝔏"],
+ [0, "𝔐"],
+ [0, "𝔑"],
+ [0, "𝔒"],
+ [0, "𝔓"],
+ [0, "𝔔"],
+ [1, "𝔖"],
+ [0, "𝔗"],
+ [0, "𝔘"],
+ [0, "𝔙"],
+ [0, "𝔚"],
+ [0, "𝔛"],
+ [0, "𝔜"],
+ [1, "𝔞"],
+ [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, "𝔹"],
+ [1, "𝔻"],
+ [0, "𝔼"],
+ [0, "𝔽"],
+ [0, "𝔾"],
+ [1, "𝕀"],
+ [0, "𝕁"],
+ [0, "𝕂"],
+ [0, "𝕃"],
+ [0, "𝕄"],
+ [1, "𝕆"],
+ [3, "𝕊"],
+ [0, "𝕋"],
+ [0, "𝕌"],
+ [0, "𝕍"],
+ [0, "𝕎"],
+ [0, "𝕏"],
+ [0, "𝕐"],
+ [1, "𝕒"],
+ [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, "𝕫"],
+ ]),
+ ),
+ },
+ ],
+ [8906, "ff"],
+ [0, "fi"],
+ [0, "fl"],
+ [0, "ffi"],
+ [0, "ffl"],
+ ]),
+ )),
+ Yo
+ );
+}
+var Hu = {},
+ EO;
+function Bp() {
+ return (
+ EO ||
+ ((EO = 1),
+ (function (t) {
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.escapeText =
+ t.escapeAttribute =
+ t.escapeUTF8 =
+ t.escape =
+ t.encodeXML =
+ t.getCodePoint =
+ t.xmlReplacer =
+ void 0),
+ (t.xmlReplacer = /["&'<>$\x80-\uFFFF]/g));
+ var e = new Map([
+ [34, """],
+ [38, "&"],
+ [39, "'"],
+ [60, "<"],
+ [62, ">"],
+ ]);
+ t.getCodePoint =
+ String.prototype.codePointAt != null
+ ? function (r, s) {
+ return r.codePointAt(s);
+ }
+ : function (r, s) {
+ return (r.charCodeAt(s) & 64512) === 55296
+ ? (r.charCodeAt(s) - 55296) * 1024 +
+ r.charCodeAt(s + 1) -
+ 56320 +
+ 65536
+ : r.charCodeAt(s);
+ };
+ function n(r) {
+ for (var s = "", o = 0, a; (a = t.xmlReplacer.exec(r)) !== null; ) {
+ var u = a.index,
+ c = r.charCodeAt(u),
+ b = e.get(c);
+ b !== void 0
+ ? ((s += r.substring(o, u) + b), (o = u + 1))
+ : ((s += ""
+ .concat(r.substring(o, u), "")
+ .concat((0, t.getCodePoint)(r, u).toString(16), ";")),
+ (o = t.xmlReplacer.lastIndex += +((c & 64512) === 55296)));
+ }
+ return s + r.substr(o);
+ }
+ ((t.encodeXML = n), (t.escape = n));
+ function i(r, s) {
+ return function (a) {
+ for (var u, c = 0, b = ""; (u = r.exec(a)); )
+ (c !== u.index && (b += a.substring(c, u.index)),
+ (b += s.get(u[0].charCodeAt(0))),
+ (c = u.index + 1));
+ return b + a.substring(c);
+ };
+ }
+ ((t.escapeUTF8 = i(/[&<>'"]/g, e)),
+ (t.escapeAttribute = i(
+ /["&\u00A0]/g,
+ new Map([
+ [34, """],
+ [38, "&"],
+ [160, " "],
+ ]),
+ )),
+ (t.escapeText = i(
+ /[&<>\u00A0]/g,
+ new Map([
+ [38, "&"],
+ [60, "<"],
+ [62, ">"],
+ [160, " "],
+ ]),
+ )));
+ })(Hu)),
+ Hu
+ );
+}
+var TO;
+function _O() {
+ if (TO) return Wt;
+ TO = 1;
+ var t =
+ (Wt && Wt.__importDefault) ||
+ function (a) {
+ return a && a.__esModule ? a : { default: a };
+ };
+ (Object.defineProperty(Wt, "__esModule", { value: !0 }),
+ (Wt.encodeNonAsciiHTML = Wt.encodeHTML = void 0));
+ var e = t(Jq0()),
+ n = Bp(),
+ i = /[\t\n!-,./:-@[-`\f{-}$\x80-\uFFFF]/g;
+ function r(a) {
+ return o(i, a);
+ }
+ Wt.encodeHTML = r;
+ function s(a) {
+ return o(n.xmlReplacer, a);
+ }
+ Wt.encodeNonAsciiHTML = s;
+ function o(a, u) {
+ for (var c = "", b = 0, l; (l = a.exec(u)) !== null; ) {
+ var p = l.index;
+ c += u.substring(b, p);
+ var M = u.charCodeAt(p),
+ d = e.default.get(M);
+ if (typeof d == "object") {
+ if (p + 1 < u.length) {
+ var O = u.charCodeAt(p + 1),
+ f =
+ typeof d.n == "number" ? (d.n === O ? d.o : void 0) : d.n.get(O);
+ if (f !== void 0) {
+ ((c += f), (b = a.lastIndex += 1));
+ continue;
+ }
+ }
+ d = d.v;
+ }
+ if (d !== void 0) ((c += d), (b = p + 1));
+ else {
+ var z = (0, n.getCodePoint)(u, p);
+ ((c += "".concat(z.toString(16), ";")),
+ (b = a.lastIndex += +(z !== M)));
+ }
+ }
+ return c + u.substr(b);
+ }
+ return Wt;
+}
+var xO;
+function Zq0() {
+ return (
+ xO ||
+ ((xO = 1),
+ (function (t) {
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.decodeXMLStrict =
+ t.decodeHTML5Strict =
+ t.decodeHTML4Strict =
+ t.decodeHTML5 =
+ t.decodeHTML4 =
+ t.decodeHTMLAttribute =
+ t.decodeHTMLStrict =
+ t.decodeHTML =
+ t.decodeXML =
+ t.DecodingMode =
+ t.EntityDecoder =
+ t.encodeHTML5 =
+ t.encodeHTML4 =
+ t.encodeNonAsciiHTML =
+ t.encodeHTML =
+ t.escapeText =
+ t.escapeAttribute =
+ t.escapeUTF8 =
+ t.escape =
+ t.encodeXML =
+ t.encode =
+ t.decodeStrict =
+ t.decode =
+ t.EncodingMode =
+ t.EntityLevel =
+ void 0));
+ var e = LO(),
+ n = _O(),
+ i = Bp(),
+ r;
+ (function (p) {
+ ((p[(p.XML = 0)] = "XML"), (p[(p.HTML = 1)] = "HTML"));
+ })((r = t.EntityLevel || (t.EntityLevel = {})));
+ var s;
+ (function (p) {
+ ((p[(p.UTF8 = 0)] = "UTF8"),
+ (p[(p.ASCII = 1)] = "ASCII"),
+ (p[(p.Extensive = 2)] = "Extensive"),
+ (p[(p.Attribute = 3)] = "Attribute"),
+ (p[(p.Text = 4)] = "Text"));
+ })((s = t.EncodingMode || (t.EncodingMode = {})));
+ function o(p, M) {
+ M === void 0 && (M = r.XML);
+ var d = typeof M == "number" ? M : M.level;
+ if (d === r.HTML) {
+ var O = typeof M == "object" ? M.mode : void 0;
+ return (0, e.decodeHTML)(p, O);
+ }
+ return (0, e.decodeXML)(p);
+ }
+ t.decode = o;
+ function a(p, M) {
+ var d;
+ M === void 0 && (M = r.XML);
+ var O = typeof M == "number" ? { level: M } : M;
+ return (
+ ((d = O.mode) !== null && d !== void 0) ||
+ (O.mode = e.DecodingMode.Strict),
+ o(p, O)
+ );
+ }
+ t.decodeStrict = a;
+ function u(p, M) {
+ M === void 0 && (M = r.XML);
+ var d = typeof M == "number" ? { level: M } : M;
+ return d.mode === s.UTF8
+ ? (0, i.escapeUTF8)(p)
+ : d.mode === s.Attribute
+ ? (0, i.escapeAttribute)(p)
+ : d.mode === s.Text
+ ? (0, i.escapeText)(p)
+ : d.level === r.HTML
+ ? d.mode === s.ASCII
+ ? (0, n.encodeNonAsciiHTML)(p)
+ : (0, n.encodeHTML)(p)
+ : (0, i.encodeXML)(p);
+ }
+ t.encode = u;
+ var c = Bp();
+ (Object.defineProperty(t, "encodeXML", {
+ enumerable: !0,
+ get: function () {
+ return c.encodeXML;
+ },
+ }),
+ Object.defineProperty(t, "escape", {
+ enumerable: !0,
+ get: function () {
+ return c.escape;
+ },
+ }),
+ Object.defineProperty(t, "escapeUTF8", {
+ enumerable: !0,
+ get: function () {
+ return c.escapeUTF8;
+ },
+ }),
+ Object.defineProperty(t, "escapeAttribute", {
+ enumerable: !0,
+ get: function () {
+ return c.escapeAttribute;
+ },
+ }),
+ Object.defineProperty(t, "escapeText", {
+ enumerable: !0,
+ get: function () {
+ return c.escapeText;
+ },
+ }));
+ var b = _O();
+ (Object.defineProperty(t, "encodeHTML", {
+ enumerable: !0,
+ get: function () {
+ return b.encodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "encodeNonAsciiHTML", {
+ enumerable: !0,
+ get: function () {
+ return b.encodeNonAsciiHTML;
+ },
+ }),
+ Object.defineProperty(t, "encodeHTML4", {
+ enumerable: !0,
+ get: function () {
+ return b.encodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "encodeHTML5", {
+ enumerable: !0,
+ get: function () {
+ return b.encodeHTML;
+ },
+ }));
+ var l = LO();
+ (Object.defineProperty(t, "EntityDecoder", {
+ enumerable: !0,
+ get: function () {
+ return l.EntityDecoder;
+ },
+ }),
+ Object.defineProperty(t, "DecodingMode", {
+ enumerable: !0,
+ get: function () {
+ return l.DecodingMode;
+ },
+ }),
+ Object.defineProperty(t, "decodeXML", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeXML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTMLStrict", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTMLAttribute", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTMLAttribute;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML4", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML5", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTML;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML4Strict", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeHTML5Strict", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeHTMLStrict;
+ },
+ }),
+ Object.defineProperty(t, "decodeXMLStrict", {
+ enumerable: !0,
+ get: function () {
+ return l.decodeXML;
+ },
+ }));
+ })(Uu)),
+ Uu
+ );
+}
+var Xn = {},
+ SO;
+function e50() {
+ return (
+ SO ||
+ ((SO = 1),
+ Object.defineProperty(Xn, "__esModule", { value: !0 }),
+ (Xn.attributeNames = Xn.elementNames = void 0),
+ (Xn.elementNames = new Map(
+ [
+ "altGlyph",
+ "altGlyphDef",
+ "altGlyphItem",
+ "animateColor",
+ "animateMotion",
+ "animateTransform",
+ "clipPath",
+ "feBlend",
+ "feColorMatrix",
+ "feComponentTransfer",
+ "feComposite",
+ "feConvolveMatrix",
+ "feDiffuseLighting",
+ "feDisplacementMap",
+ "feDistantLight",
+ "feDropShadow",
+ "feFlood",
+ "feFuncA",
+ "feFuncB",
+ "feFuncG",
+ "feFuncR",
+ "feGaussianBlur",
+ "feImage",
+ "feMerge",
+ "feMergeNode",
+ "feMorphology",
+ "feOffset",
+ "fePointLight",
+ "feSpecularLighting",
+ "feSpotLight",
+ "feTile",
+ "feTurbulence",
+ "foreignObject",
+ "glyphRef",
+ "linearGradient",
+ "radialGradient",
+ "textPath",
+ ].map(function (t) {
+ return [t.toLowerCase(), t];
+ }),
+ )),
+ (Xn.attributeNames = new Map(
+ [
+ "definitionURL",
+ "attributeName",
+ "attributeType",
+ "baseFrequency",
+ "baseProfile",
+ "calcMode",
+ "clipPathUnits",
+ "diffuseConstant",
+ "edgeMode",
+ "filterUnits",
+ "glyphRef",
+ "gradientTransform",
+ "gradientUnits",
+ "kernelMatrix",
+ "kernelUnitLength",
+ "keyPoints",
+ "keySplines",
+ "keyTimes",
+ "lengthAdjust",
+ "limitingConeAngle",
+ "markerHeight",
+ "markerUnits",
+ "markerWidth",
+ "maskContentUnits",
+ "maskUnits",
+ "numOctaves",
+ "pathLength",
+ "patternContentUnits",
+ "patternTransform",
+ "patternUnits",
+ "pointsAtX",
+ "pointsAtY",
+ "pointsAtZ",
+ "preserveAlpha",
+ "preserveAspectRatio",
+ "primitiveUnits",
+ "refX",
+ "refY",
+ "repeatCount",
+ "repeatDur",
+ "requiredExtensions",
+ "requiredFeatures",
+ "specularConstant",
+ "specularExponent",
+ "spreadMethod",
+ "startOffset",
+ "stdDeviation",
+ "stitchTiles",
+ "surfaceScale",
+ "systemLanguage",
+ "tableValues",
+ "targetX",
+ "targetY",
+ "textLength",
+ "viewBox",
+ "viewTarget",
+ "xChannelSelector",
+ "yChannelSelector",
+ "zoomAndPan",
+ ].map(function (t) {
+ return [t.toLowerCase(), t];
+ }),
+ ))),
+ Xn
+ );
+}
+var wO;
+function t50() {
+ if (wO) return C1;
+ wO = 1;
+ var t =
+ (C1 && C1.__assign) ||
+ function () {
+ return (
+ (t =
+ Object.assign ||
+ function (h) {
+ for (var q, v = 1, m = arguments.length; v < m; v++) {
+ q = arguments[v];
+ for (var E in q)
+ Object.prototype.hasOwnProperty.call(q, E) && (h[E] = q[E]);
+ }
+ return h;
+ }),
+ t.apply(this, arguments)
+ );
+ },
+ e =
+ (C1 && C1.__createBinding) ||
+ (Object.create
+ ? function (h, q, v, m) {
+ m === void 0 && (m = v);
+ var E = Object.getOwnPropertyDescriptor(q, v);
+ ((!E ||
+ ("get" in E ? !q.__esModule : E.writable || E.configurable)) &&
+ (E = {
+ enumerable: !0,
+ get: function () {
+ return q[v];
+ },
+ }),
+ Object.defineProperty(h, m, E));
+ }
+ : function (h, q, v, m) {
+ (m === void 0 && (m = v), (h[m] = q[v]));
+ }),
+ n =
+ (C1 && C1.__setModuleDefault) ||
+ (Object.create
+ ? function (h, q) {
+ Object.defineProperty(h, "default", { enumerable: !0, value: q });
+ }
+ : function (h, q) {
+ h.default = q;
+ }),
+ i =
+ (C1 && C1.__importStar) ||
+ function (h) {
+ if (h && h.__esModule) return h;
+ var q = {};
+ if (h != null)
+ for (var v in h)
+ v !== "default" &&
+ Object.prototype.hasOwnProperty.call(h, v) &&
+ e(q, h, v);
+ return (n(q, h), q);
+ };
+ (Object.defineProperty(C1, "__esModule", { value: !0 }),
+ (C1.render = void 0));
+ var r = i(co()),
+ s = Zq0(),
+ o = e50(),
+ a = new Set([
+ "style",
+ "script",
+ "xmp",
+ "iframe",
+ "noembed",
+ "noframes",
+ "plaintext",
+ "noscript",
+ ]);
+ function u(h) {
+ return h.replace(/"/g, """);
+ }
+ function c(h, q) {
+ var v;
+ if (h) {
+ var m =
+ ((v = q.encodeEntities) !== null && v !== void 0
+ ? v
+ : q.decodeEntities) === !1
+ ? u
+ : q.xmlMode || q.encodeEntities !== "utf8"
+ ? s.encodeXML
+ : s.escapeAttribute;
+ return Object.keys(h)
+ .map(function (E) {
+ var _,
+ T,
+ y = (_ = h[E]) !== null && _ !== void 0 ? _ : "";
+ return (
+ q.xmlMode === "foreign" &&
+ (E =
+ (T = o.attributeNames.get(E)) !== null && T !== void 0 ? T : E),
+ !q.emptyAttrs && !q.xmlMode && y === ""
+ ? E
+ : "".concat(E, '="').concat(m(y), '"')
+ );
+ })
+ .join(" ");
+ }
+ }
+ var b = new Set([
+ "area",
+ "base",
+ "basefont",
+ "br",
+ "col",
+ "command",
+ "embed",
+ "frame",
+ "hr",
+ "img",
+ "input",
+ "isindex",
+ "keygen",
+ "link",
+ "meta",
+ "param",
+ "source",
+ "track",
+ "wbr",
+ ]);
+ function l(h, q) {
+ q === void 0 && (q = {});
+ for (var v = ("length" in h) ? h : [h], m = "", E = 0; E < v.length; E++)
+ m += p(v[E], q);
+ return m;
+ }
+ ((C1.render = l), (C1.default = l));
+ function p(h, q) {
+ switch (h.type) {
+ case r.Root:
+ return l(h.children, q);
+ case r.Doctype:
+ case r.Directive:
+ return f(h);
+ case r.Comment:
+ return A(h);
+ case r.CDATA:
+ return g(h);
+ case r.Script:
+ case r.Style:
+ case r.Tag:
+ return O(h, q);
+ case r.Text:
+ return z(h, q);
+ }
+ }
+ var M = new Set([
+ "mi",
+ "mo",
+ "mn",
+ "ms",
+ "mtext",
+ "annotation-xml",
+ "foreignObject",
+ "desc",
+ "title",
+ ]),
+ d = new Set(["svg", "math"]);
+ function O(h, q) {
+ var v;
+ (q.xmlMode === "foreign" &&
+ ((h.name =
+ (v = o.elementNames.get(h.name)) !== null && v !== void 0 ? v : h.name),
+ h.parent && M.has(h.parent.name) && (q = t(t({}, q), { xmlMode: !1 }))),
+ !q.xmlMode && d.has(h.name) && (q = t(t({}, q), { xmlMode: "foreign" })));
+ var m = "<".concat(h.name),
+ E = c(h.attribs, q);
+ return (
+ E && (m += " ".concat(E)),
+ h.children.length === 0 &&
+ (q.xmlMode
+ ? q.selfClosingTags !== !1
+ : q.selfClosingTags && b.has(h.name))
+ ? (q.xmlMode || (m += " "), (m += "/>"))
+ : ((m += ">"),
+ h.children.length > 0 && (m += l(h.children, q)),
+ (q.xmlMode || !b.has(h.name)) && (m += "".concat(h.name, ">"))),
+ m
+ );
+ }
+ function f(h) {
+ return "<".concat(h.data, ">");
+ }
+ function z(h, q) {
+ var v,
+ m = h.data || "";
+ return (
+ ((v = q.encodeEntities) !== null && v !== void 0
+ ? v
+ : q.decodeEntities) !== !1 &&
+ !(!q.xmlMode && h.parent && a.has(h.parent.name)) &&
+ (m =
+ q.xmlMode || q.encodeEntities !== "utf8"
+ ? (0, s.encodeXML)(m)
+ : (0, s.escapeText)(m)),
+ m
+ );
+ }
+ function g(h) {
+ return "");
+ }
+ function A(h) {
+ return "");
+ }
+ return C1;
+}
+var NO;
+function g6() {
+ if (NO) return Qe;
+ NO = 1;
+ var t =
+ (Qe && Qe.__importDefault) ||
+ function (c) {
+ return c && c.__esModule ? c : { default: c };
+ };
+ (Object.defineProperty(Qe, "__esModule", { value: !0 }),
+ (Qe.getOuterHTML = r),
+ (Qe.getInnerHTML = s),
+ (Qe.getText = o),
+ (Qe.textContent = a),
+ (Qe.innerText = u));
+ var e = _n(),
+ n = t(t50()),
+ i = co();
+ function r(c, b) {
+ return (0, n.default)(c, b);
+ }
+ function s(c, b) {
+ return (0, e.hasChildren)(c)
+ ? c.children
+ .map(function (l) {
+ return r(l, b);
+ })
+ .join("")
+ : "";
+ }
+ function o(c) {
+ return Array.isArray(c)
+ ? c.map(o).join("")
+ : (0, e.isTag)(c)
+ ? c.name === "br"
+ ? `
+`
+ : o(c.children)
+ : (0, e.isCDATA)(c)
+ ? o(c.children)
+ : (0, e.isText)(c)
+ ? c.data
+ : "";
+ }
+ function a(c) {
+ return Array.isArray(c)
+ ? c.map(a).join("")
+ : (0, e.hasChildren)(c) && !(0, e.isComment)(c)
+ ? a(c.children)
+ : (0, e.isText)(c)
+ ? c.data
+ : "";
+ }
+ function u(c) {
+ return Array.isArray(c)
+ ? c.map(u).join("")
+ : (0, e.hasChildren)(c) &&
+ (c.type === i.ElementType.Tag || (0, e.isCDATA)(c))
+ ? u(c.children)
+ : (0, e.isText)(c)
+ ? c.data
+ : "";
+ }
+ return Qe;
+}
+var xe = {},
+ BO;
+function n50() {
+ if (BO) return xe;
+ ((BO = 1),
+ Object.defineProperty(xe, "__esModule", { value: !0 }),
+ (xe.getChildren = e),
+ (xe.getParent = n),
+ (xe.getSiblings = i),
+ (xe.getAttributeValue = r),
+ (xe.hasAttrib = s),
+ (xe.getName = o),
+ (xe.nextElementSibling = a),
+ (xe.prevElementSibling = u));
+ var t = _n();
+ function e(c) {
+ return (0, t.hasChildren)(c) ? c.children : [];
+ }
+ function n(c) {
+ return c.parent || null;
+ }
+ function i(c) {
+ var b,
+ l,
+ p = n(c);
+ if (p != null) return e(p);
+ for (var M = [c], d = c.prev, O = c.next; d != null; )
+ (M.unshift(d), (b = d), (d = b.prev));
+ for (; O != null; ) (M.push(O), (l = O), (O = l.next));
+ return M;
+ }
+ function r(c, b) {
+ var l;
+ return (l = c.attribs) === null || l === void 0 ? void 0 : l[b];
+ }
+ function s(c, b) {
+ return (
+ c.attribs != null &&
+ Object.prototype.hasOwnProperty.call(c.attribs, b) &&
+ c.attribs[b] != null
+ );
+ }
+ function o(c) {
+ return c.name;
+ }
+ function a(c) {
+ for (var b, l = c.next; l !== null && !(0, t.isTag)(l); )
+ ((b = l), (l = b.next));
+ return l;
+ }
+ function u(c) {
+ for (var b, l = c.prev; l !== null && !(0, t.isTag)(l); )
+ ((b = l), (l = b.prev));
+ return l;
+ }
+ return xe;
+}
+var Rt = {},
+ IO;
+function i50() {
+ if (IO) return Rt;
+ ((IO = 1),
+ Object.defineProperty(Rt, "__esModule", { value: !0 }),
+ (Rt.removeElement = t),
+ (Rt.replaceElement = e),
+ (Rt.appendChild = n),
+ (Rt.append = i),
+ (Rt.prependChild = r),
+ (Rt.prepend = s));
+ function t(o) {
+ if (
+ (o.prev && (o.prev.next = o.next),
+ o.next && (o.next.prev = o.prev),
+ o.parent)
+ ) {
+ var a = o.parent.children,
+ u = a.lastIndexOf(o);
+ u >= 0 && a.splice(u, 1);
+ }
+ ((o.next = null), (o.prev = null), (o.parent = null));
+ }
+ function e(o, a) {
+ var u = (a.prev = o.prev);
+ u && (u.next = a);
+ var c = (a.next = o.next);
+ c && (c.prev = a);
+ var b = (a.parent = o.parent);
+ if (b) {
+ var l = b.children;
+ ((l[l.lastIndexOf(o)] = a), (o.parent = null));
+ }
+ }
+ function n(o, a) {
+ if ((t(a), (a.next = null), (a.parent = o), o.children.push(a) > 1)) {
+ var u = o.children[o.children.length - 2];
+ ((u.next = a), (a.prev = u));
+ } else a.prev = null;
+ }
+ function i(o, a) {
+ t(a);
+ var u = o.parent,
+ c = o.next;
+ if (((a.next = c), (a.prev = o), (o.next = a), (a.parent = u), c)) {
+ if (((c.prev = a), u)) {
+ var b = u.children;
+ b.splice(b.lastIndexOf(c), 0, a);
+ }
+ } else u && u.children.push(a);
+ }
+ function r(o, a) {
+ if ((t(a), (a.parent = o), (a.prev = null), o.children.unshift(a) !== 1)) {
+ var u = o.children[1];
+ ((u.prev = a), (a.next = u));
+ } else a.next = null;
+ }
+ function s(o, a) {
+ t(a);
+ var u = o.parent;
+ if (u) {
+ var c = u.children;
+ c.splice(c.indexOf(o), 0, a);
+ }
+ (o.prev && (o.prev.next = a),
+ (a.parent = u),
+ (a.prev = o.prev),
+ (a.next = o),
+ (o.prev = a));
+ }
+ return Rt;
+}
+var yt = {},
+ DO;
+function m6() {
+ if (DO) return yt;
+ ((DO = 1),
+ Object.defineProperty(yt, "__esModule", { value: !0 }),
+ (yt.filter = e),
+ (yt.find = n),
+ (yt.findOneChild = i),
+ (yt.findOne = r),
+ (yt.existsOne = s),
+ (yt.findAll = o));
+ var t = _n();
+ function e(a, u, c, b) {
+ return (
+ c === void 0 && (c = !0),
+ b === void 0 && (b = 1 / 0),
+ n(a, Array.isArray(u) ? u : [u], c, b)
+ );
+ }
+ function n(a, u, c, b) {
+ for (var l = [], p = [Array.isArray(u) ? u : [u]], M = [0]; ; ) {
+ if (M[0] >= p[0].length) {
+ if (M.length === 1) return l;
+ (p.shift(), M.shift());
+ continue;
+ }
+ var d = p[0][M[0]++];
+ if (a(d) && (l.push(d), --b <= 0)) return l;
+ c &&
+ (0, t.hasChildren)(d) &&
+ d.children.length > 0 &&
+ (M.unshift(0), p.unshift(d.children));
+ }
+ }
+ function i(a, u) {
+ return u.find(a);
+ }
+ function r(a, u, c) {
+ c === void 0 && (c = !0);
+ for (var b = Array.isArray(u) ? u : [u], l = 0; l < b.length; l++) {
+ var p = b[l];
+ if ((0, t.isTag)(p) && a(p)) return p;
+ if (c && (0, t.hasChildren)(p) && p.children.length > 0) {
+ var M = r(a, p.children, !0);
+ if (M) return M;
+ }
+ }
+ return null;
+ }
+ function s(a, u) {
+ return (Array.isArray(u) ? u : [u]).some(function (c) {
+ return (
+ ((0, t.isTag)(c) && a(c)) || ((0, t.hasChildren)(c) && s(a, c.children))
+ );
+ });
+ }
+ function o(a, u) {
+ for (var c = [], b = [Array.isArray(u) ? u : [u]], l = [0]; ; ) {
+ if (l[0] >= b[0].length) {
+ if (b.length === 1) return c;
+ (b.shift(), l.shift());
+ continue;
+ }
+ var p = b[0][l[0]++];
+ ((0, t.isTag)(p) && a(p) && c.push(p),
+ (0, t.hasChildren)(p) &&
+ p.children.length > 0 &&
+ (l.unshift(0), b.unshift(p.children)));
+ }
+ }
+ return yt;
+}
+var Lt = {},
+ CO;
+function W6() {
+ if (CO) return Lt;
+ ((CO = 1),
+ Object.defineProperty(Lt, "__esModule", { value: !0 }),
+ (Lt.testElement = o),
+ (Lt.getElements = a),
+ (Lt.getElementById = u),
+ (Lt.getElementsByTagName = c),
+ (Lt.getElementsByClassName = b),
+ (Lt.getElementsByTagType = l));
+ var t = _n(),
+ e = m6(),
+ n = {
+ tag_name: function (p) {
+ return typeof p == "function"
+ ? function (M) {
+ return (0, t.isTag)(M) && p(M.name);
+ }
+ : p === "*"
+ ? t.isTag
+ : function (M) {
+ return (0, t.isTag)(M) && M.name === p;
+ };
+ },
+ tag_type: function (p) {
+ return typeof p == "function"
+ ? function (M) {
+ return p(M.type);
+ }
+ : function (M) {
+ return M.type === p;
+ };
+ },
+ tag_contains: function (p) {
+ return typeof p == "function"
+ ? function (M) {
+ return (0, t.isText)(M) && p(M.data);
+ }
+ : function (M) {
+ return (0, t.isText)(M) && M.data === p;
+ };
+ },
+ };
+ function i(p, M) {
+ return typeof M == "function"
+ ? function (d) {
+ return (0, t.isTag)(d) && M(d.attribs[p]);
+ }
+ : function (d) {
+ return (0, t.isTag)(d) && d.attribs[p] === M;
+ };
+ }
+ function r(p, M) {
+ return function (d) {
+ return p(d) || M(d);
+ };
+ }
+ function s(p) {
+ var M = Object.keys(p).map(function (d) {
+ var O = p[d];
+ return Object.prototype.hasOwnProperty.call(n, d) ? n[d](O) : i(d, O);
+ });
+ return M.length === 0 ? null : M.reduce(r);
+ }
+ function o(p, M) {
+ var d = s(p);
+ return d ? d(M) : !0;
+ }
+ function a(p, M, d, O) {
+ O === void 0 && (O = 1 / 0);
+ var f = s(p);
+ return f ? (0, e.filter)(f, M, d, O) : [];
+ }
+ function u(p, M, d) {
+ return (
+ d === void 0 && (d = !0),
+ Array.isArray(M) || (M = [M]),
+ (0, e.findOne)(i("id", p), M, d)
+ );
+ }
+ function c(p, M, d, O) {
+ return (
+ d === void 0 && (d = !0),
+ O === void 0 && (O = 1 / 0),
+ (0, e.filter)(n.tag_name(p), M, d, O)
+ );
+ }
+ function b(p, M, d, O) {
+ return (
+ d === void 0 && (d = !0),
+ O === void 0 && (O = 1 / 0),
+ (0, e.filter)(i("class", p), M, d, O)
+ );
+ }
+ function l(p, M, d, O) {
+ return (
+ d === void 0 && (d = !0),
+ O === void 0 && (O = 1 / 0),
+ (0, e.filter)(n.tag_type(p), M, d, O)
+ );
+ }
+ return Lt;
+}
+var tn = {},
+ kO;
+function r50() {
+ if (kO) return tn;
+ ((kO = 1),
+ Object.defineProperty(tn, "__esModule", { value: !0 }),
+ (tn.DocumentPosition = void 0),
+ (tn.removeSubsets = e),
+ (tn.compareDocumentPosition = i),
+ (tn.uniqueSort = r));
+ var t = _n();
+ function e(s) {
+ for (var o = s.length; --o >= 0; ) {
+ var a = s[o];
+ if (o > 0 && s.lastIndexOf(a, o - 1) >= 0) {
+ s.splice(o, 1);
+ continue;
+ }
+ for (var u = a.parent; u; u = u.parent)
+ if (s.includes(u)) {
+ s.splice(o, 1);
+ break;
+ }
+ }
+ return s;
+ }
+ var n;
+ (function (s) {
+ ((s[(s.DISCONNECTED = 1)] = "DISCONNECTED"),
+ (s[(s.PRECEDING = 2)] = "PRECEDING"),
+ (s[(s.FOLLOWING = 4)] = "FOLLOWING"),
+ (s[(s.CONTAINS = 8)] = "CONTAINS"),
+ (s[(s.CONTAINED_BY = 16)] = "CONTAINED_BY"));
+ })(n || (tn.DocumentPosition = n = {}));
+ function i(s, o) {
+ var a = [],
+ u = [];
+ if (s === o) return 0;
+ for (var c = (0, t.hasChildren)(s) ? s : s.parent; c; )
+ (a.unshift(c), (c = c.parent));
+ for (c = (0, t.hasChildren)(o) ? o : o.parent; c; )
+ (u.unshift(c), (c = c.parent));
+ for (var b = Math.min(a.length, u.length), l = 0; l < b && a[l] === u[l]; )
+ l++;
+ if (l === 0) return n.DISCONNECTED;
+ var p = a[l - 1],
+ M = p.children,
+ d = a[l],
+ O = u[l];
+ return M.indexOf(d) > M.indexOf(O)
+ ? p === o
+ ? n.FOLLOWING | n.CONTAINED_BY
+ : n.FOLLOWING
+ : p === s
+ ? n.PRECEDING | n.CONTAINS
+ : n.PRECEDING;
+ }
+ function r(s) {
+ return (
+ (s = s.filter(function (o, a, u) {
+ return !u.includes(o, a + 1);
+ })),
+ s.sort(function (o, a) {
+ var u = i(o, a);
+ return u & n.PRECEDING ? -1 : u & n.FOLLOWING ? 1 : 0;
+ }),
+ s
+ );
+ }
+ return tn;
+}
+var Qo = {},
+ PO;
+function s50() {
+ if (PO) return Qo;
+ ((PO = 1),
+ Object.defineProperty(Qo, "__esModule", { value: !0 }),
+ (Qo.getFeed = n));
+ var t = g6(),
+ e = W6();
+ function n(p) {
+ var M = u(l, p);
+ return M ? (M.name === "feed" ? i(M) : r(M)) : null;
+ }
+ function i(p) {
+ var M,
+ d = p.children,
+ O = {
+ type: "atom",
+ items: (0, e.getElementsByTagName)("entry", d).map(function (g) {
+ var A,
+ h = g.children,
+ q = { media: a(h) };
+ (b(q, "id", "id", h), b(q, "title", "title", h));
+ var v =
+ (A = u("link", h)) === null || A === void 0
+ ? void 0
+ : A.attribs.href;
+ v && (q.link = v);
+ var m = c("summary", h) || c("content", h);
+ m && (q.description = m);
+ var E = c("updated", h);
+ return (E && (q.pubDate = new Date(E)), q);
+ }),
+ };
+ (b(O, "id", "id", d), b(O, "title", "title", d));
+ var f =
+ (M = u("link", d)) === null || M === void 0 ? void 0 : M.attribs.href;
+ (f && (O.link = f), b(O, "description", "subtitle", d));
+ var z = c("updated", d);
+ return (z && (O.updated = new Date(z)), b(O, "author", "email", d, !0), O);
+ }
+ function r(p) {
+ var M,
+ d,
+ O =
+ (d =
+ (M = u("channel", p.children)) === null || M === void 0
+ ? void 0
+ : M.children) !== null && d !== void 0
+ ? d
+ : [],
+ f = {
+ type: p.name.substr(0, 3),
+ id: "",
+ items: (0, e.getElementsByTagName)("item", p.children).map(
+ function (g) {
+ var A = g.children,
+ h = { media: a(A) };
+ (b(h, "id", "guid", A),
+ b(h, "title", "title", A),
+ b(h, "link", "link", A),
+ b(h, "description", "description", A));
+ var q = c("pubDate", A) || c("dc:date", A);
+ return (q && (h.pubDate = new Date(q)), h);
+ },
+ ),
+ };
+ (b(f, "title", "title", O),
+ b(f, "link", "link", O),
+ b(f, "description", "description", O));
+ var z = c("lastBuildDate", O);
+ return (
+ z && (f.updated = new Date(z)),
+ b(f, "author", "managingEditor", O, !0),
+ f
+ );
+ }
+ var s = ["url", "type", "lang"],
+ o = [
+ "fileSize",
+ "bitrate",
+ "framerate",
+ "samplingrate",
+ "channels",
+ "duration",
+ "height",
+ "width",
+ ];
+ function a(p) {
+ return (0, e.getElementsByTagName)("media:content", p).map(function (M) {
+ for (
+ var d = M.attribs,
+ O = { medium: d.medium, isDefault: !!d.isDefault },
+ f = 0,
+ z = s;
+ f < z.length;
+ f++
+ ) {
+ var g = z[f];
+ d[g] && (O[g] = d[g]);
+ }
+ for (var A = 0, h = o; A < h.length; A++) {
+ var g = h[A];
+ d[g] && (O[g] = parseInt(d[g], 10));
+ }
+ return (d.expression && (O.expression = d.expression), O);
+ });
+ }
+ function u(p, M) {
+ return (0, e.getElementsByTagName)(p, M, !0, 1)[0];
+ }
+ function c(p, M, d) {
+ return (
+ d === void 0 && (d = !1),
+ (0, t.textContent)((0, e.getElementsByTagName)(p, M, d, 1)).trim()
+ );
+ }
+ function b(p, M, d, O, f) {
+ f === void 0 && (f = !1);
+ var z = c(d, O, f);
+ z && (p[M] = z);
+ }
+ function l(p) {
+ return p === "rss" || p === "feed" || p === "rdf:RDF";
+ }
+ return Qo;
+}
+var XO;
+function Gu() {
+ return (
+ XO ||
+ ((XO = 1),
+ (function (t) {
+ var e =
+ (Pn && Pn.__createBinding) ||
+ (Object.create
+ ? function (r, s, o, a) {
+ a === void 0 && (a = o);
+ var u = Object.getOwnPropertyDescriptor(s, o);
+ ((!u ||
+ ("get" in u
+ ? !s.__esModule
+ : u.writable || u.configurable)) &&
+ (u = {
+ enumerable: !0,
+ get: function () {
+ return s[o];
+ },
+ }),
+ Object.defineProperty(r, a, u));
+ }
+ : function (r, s, o, a) {
+ (a === void 0 && (a = o), (r[a] = s[o]));
+ }),
+ n =
+ (Pn && Pn.__exportStar) ||
+ function (r, s) {
+ for (var o in r)
+ o !== "default" &&
+ !Object.prototype.hasOwnProperty.call(s, o) &&
+ e(s, r, o);
+ };
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.hasChildren =
+ t.isDocument =
+ t.isComment =
+ t.isText =
+ t.isCDATA =
+ t.isTag =
+ void 0),
+ n(g6(), t),
+ n(n50(), t),
+ n(i50(), t),
+ n(m6(), t),
+ n(W6(), t),
+ n(r50(), t),
+ n(s50(), t));
+ var i = _n();
+ (Object.defineProperty(t, "isTag", {
+ enumerable: !0,
+ get: function () {
+ return i.isTag;
+ },
+ }),
+ Object.defineProperty(t, "isCDATA", {
+ enumerable: !0,
+ get: function () {
+ return i.isCDATA;
+ },
+ }),
+ Object.defineProperty(t, "isText", {
+ enumerable: !0,
+ get: function () {
+ return i.isText;
+ },
+ }),
+ Object.defineProperty(t, "isComment", {
+ enumerable: !0,
+ get: function () {
+ return i.isComment;
+ },
+ }),
+ Object.defineProperty(t, "isDocument", {
+ enumerable: !0,
+ get: function () {
+ return i.isDocument;
+ },
+ }),
+ Object.defineProperty(t, "hasChildren", {
+ enumerable: !0,
+ get: function () {
+ return i.hasChildren;
+ },
+ }));
+ })(Pn)),
+ Pn
+ );
+}
+var FO;
+function o50() {
+ return (
+ FO ||
+ ((FO = 1),
+ (function (t) {
+ var e =
+ (ve && ve.__createBinding) ||
+ (Object.create
+ ? function (z, g, A, h) {
+ h === void 0 && (h = A);
+ var q = Object.getOwnPropertyDescriptor(g, A);
+ ((!q ||
+ ("get" in q
+ ? !g.__esModule
+ : q.writable || q.configurable)) &&
+ (q = {
+ enumerable: !0,
+ get: function () {
+ return g[A];
+ },
+ }),
+ Object.defineProperty(z, h, q));
+ }
+ : function (z, g, A, h) {
+ (h === void 0 && (h = A), (z[h] = g[A]));
+ }),
+ n =
+ (ve && ve.__setModuleDefault) ||
+ (Object.create
+ ? function (z, g) {
+ Object.defineProperty(z, "default", {
+ enumerable: !0,
+ value: g,
+ });
+ }
+ : function (z, g) {
+ z.default = g;
+ }),
+ i =
+ (ve && ve.__importStar) ||
+ function (z) {
+ if (z && z.__esModule) return z;
+ var g = {};
+ if (z != null)
+ for (var A in z)
+ A !== "default" &&
+ Object.prototype.hasOwnProperty.call(z, A) &&
+ e(g, z, A);
+ return (n(g, z), g);
+ },
+ r =
+ (ve && ve.__importDefault) ||
+ function (z) {
+ return z && z.__esModule ? z : { default: z };
+ };
+ (Object.defineProperty(t, "__esModule", { value: !0 }),
+ (t.DomUtils =
+ t.parseFeed =
+ t.getFeed =
+ t.ElementType =
+ t.Tokenizer =
+ t.createDomStream =
+ t.parseDOM =
+ t.parseDocument =
+ t.DefaultHandler =
+ t.DomHandler =
+ t.Parser =
+ void 0));
+ var s = zO(),
+ o = zO();
+ Object.defineProperty(t, "Parser", {
+ enumerable: !0,
+ get: function () {
+ return o.Parser;
+ },
+ });
+ var a = _n(),
+ u = _n();
+ (Object.defineProperty(t, "DomHandler", {
+ enumerable: !0,
+ get: function () {
+ return u.DomHandler;
+ },
+ }),
+ Object.defineProperty(t, "DefaultHandler", {
+ enumerable: !0,
+ get: function () {
+ return u.DomHandler;
+ },
+ }));
+ function c(z, g) {
+ var A = new a.DomHandler(void 0, g);
+ return (new s.Parser(A, g).end(z), A.root);
+ }
+ t.parseDocument = c;
+ function b(z, g) {
+ return c(z, g).children;
+ }
+ t.parseDOM = b;
+ function l(z, g, A) {
+ var h = new a.DomHandler(z, g, A);
+ return new s.Parser(h, g);
+ }
+ t.createDomStream = l;
+ var p = q6();
+ (Object.defineProperty(t, "Tokenizer", {
+ enumerable: !0,
+ get: function () {
+ return r(p).default;
+ },
+ }),
+ (t.ElementType = i(co())));
+ var M = Gu(),
+ d = Gu();
+ Object.defineProperty(t, "getFeed", {
+ enumerable: !0,
+ get: function () {
+ return d.getFeed;
+ },
+ });
+ var O = { xmlMode: !0 };
+ function f(z, g) {
+ return (g === void 0 && (g = O), (0, M.getFeed)(b(z, g)));
+ }
+ ((t.parseFeed = f), (t.DomUtils = i(Gu())));
+ })(ve)),
+ ve
+ );
+}
+var Vu, UO;
+function a50() {
+ return (
+ UO ||
+ ((UO = 1),
+ (Vu = (t) => {
+ if (typeof t != "string") throw new TypeError("Expected a string");
+ return t.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&").replace(/-/g, "\\x2d");
+ })),
+ Vu
+ );
+}
+var Jo = {},
+ $O;
+function c50() {
+ if ($O) return Jo;
+ (($O = 1), Object.defineProperty(Jo, "__esModule", { value: !0 }));
+ function t(n) {
+ return Object.prototype.toString.call(n) === "[object Object]";
+ }
+ function e(n) {
+ var i, r;
+ return t(n) === !1
+ ? !1
+ : ((i = n.constructor),
+ i === void 0
+ ? !0
+ : ((r = i.prototype),
+ !(t(r) === !1 || r.hasOwnProperty("isPrototypeOf") === !1)));
+ }
+ return ((Jo.isPlainObject = e), Jo);
+}
+var ju, HO;
+function u50() {
+ if (HO) return ju;
+ HO = 1;
+ var t = function (g) {
+ return e(g) && !n(g);
+ };
+ function e(z) {
+ return !!z && typeof z == "object";
+ }
+ function n(z) {
+ var g = Object.prototype.toString.call(z);
+ return g === "[object RegExp]" || g === "[object Date]" || s(z);
+ }
+ var i = typeof Symbol == "function" && Symbol.for,
+ r = i ? Symbol.for("react.element") : 60103;
+ function s(z) {
+ return z.$$typeof === r;
+ }
+ function o(z) {
+ return Array.isArray(z) ? [] : {};
+ }
+ function a(z, g) {
+ return g.clone !== !1 && g.isMergeableObject(z) ? O(o(z), z, g) : z;
+ }
+ function u(z, g, A) {
+ return z.concat(g).map(function (h) {
+ return a(h, A);
+ });
+ }
+ function c(z, g) {
+ if (!g.customMerge) return O;
+ var A = g.customMerge(z);
+ return typeof A == "function" ? A : O;
+ }
+ function b(z) {
+ return Object.getOwnPropertySymbols
+ ? Object.getOwnPropertySymbols(z).filter(function (g) {
+ return Object.propertyIsEnumerable.call(z, g);
+ })
+ : [];
+ }
+ function l(z) {
+ return Object.keys(z).concat(b(z));
+ }
+ function p(z, g) {
+ try {
+ return g in z;
+ } catch {
+ return !1;
+ }
+ }
+ function M(z, g) {
+ return (
+ p(z, g) &&
+ !(
+ Object.hasOwnProperty.call(z, g) &&
+ Object.propertyIsEnumerable.call(z, g)
+ )
+ );
+ }
+ function d(z, g, A) {
+ var h = {};
+ return (
+ A.isMergeableObject(z) &&
+ l(z).forEach(function (q) {
+ h[q] = a(z[q], A);
+ }),
+ l(g).forEach(function (q) {
+ M(z, q) ||
+ (p(z, q) && A.isMergeableObject(g[q])
+ ? (h[q] = c(q, A)(z[q], g[q], A))
+ : (h[q] = a(g[q], A)));
+ }),
+ h
+ );
+ }
+ function O(z, g, A) {
+ ((A = A || {}),
+ (A.arrayMerge = A.arrayMerge || u),
+ (A.isMergeableObject = A.isMergeableObject || t),
+ (A.cloneUnlessOtherwiseSpecified = a));
+ var h = Array.isArray(g),
+ q = Array.isArray(z),
+ v = h === q;
+ return v ? (h ? A.arrayMerge(z, g, A) : d(z, g, A)) : a(g, A);
+ }
+ O.all = function (g, A) {
+ if (!Array.isArray(g)) throw new Error("first argument should be an array");
+ return g.reduce(function (h, q) {
+ return O(h, q, A);
+ }, {});
+ };
+ var f = O;
+ return ((ju = f), ju);
+}
+var ya = { exports: {} },
+ b50 = ya.exports,
+ GO;
+function p50() {
+ return (
+ GO ||
+ ((GO = 1),
+ (function (t) {
+ (function (e, n) {
+ t.exports ? (t.exports = n()) : (e.parseSrcset = n());
+ })(b50, function () {
+ return function (e) {
+ function n(h) {
+ return (
+ h === " " ||
+ h === " " ||
+ h ===
+ `
+` ||
+ h === "\f" ||
+ h === "\r"
+ );
+ }
+ function i(h) {
+ var q,
+ v = h.exec(e.substring(f));
+ if (v) return ((q = v[0]), (f += q.length), q);
+ }
+ for (
+ var r = e.length,
+ s = /^[ \t\n\r\u000c]+/,
+ o = /^[, \t\n\r\u000c]+/,
+ a = /^[^ \t\n\r\u000c]+/,
+ u = /[,]+$/,
+ c = /^\d+$/,
+ b = /^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,
+ l,
+ p,
+ M,
+ d,
+ O,
+ f = 0,
+ z = [];
+ ;
+ ) {
+ if ((i(o), f >= r)) return z;
+ ((l = i(a)),
+ (p = []),
+ l.slice(-1) === "," ? ((l = l.replace(u, "")), A()) : g());
+ }
+ function g() {
+ for (i(s), M = "", d = "in descriptor"; ; ) {
+ if (((O = e.charAt(f)), d === "in descriptor"))
+ if (n(O))
+ M && (p.push(M), (M = ""), (d = "after descriptor"));
+ else if (O === ",") {
+ ((f += 1), M && p.push(M), A());
+ return;
+ } else if (O === "(") ((M = M + O), (d = "in parens"));
+ else if (O === "") {
+ (M && p.push(M), A());
+ return;
+ } else M = M + O;
+ else if (d === "in parens")
+ if (O === ")") ((M = M + O), (d = "in descriptor"));
+ else if (O === "") {
+ (p.push(M), A());
+ return;
+ } else M = M + O;
+ else if (d === "after descriptor" && !n(O))
+ if (O === "") {
+ A();
+ return;
+ } else ((d = "in descriptor"), (f -= 1));
+ f += 1;
+ }
+ }
+ function A() {
+ var h = !1,
+ q,
+ v,
+ m,
+ E,
+ _ = {},
+ T,
+ y,
+ W,
+ x,
+ B;
+ for (E = 0; E < p.length; E++)
+ ((T = p[E]),
+ (y = T[T.length - 1]),
+ (W = T.substring(0, T.length - 1)),
+ (x = parseInt(W, 10)),
+ (B = parseFloat(W)),
+ c.test(W) && y === "w"
+ ? ((q || v) && (h = !0), x === 0 ? (h = !0) : (q = x))
+ : b.test(W) && y === "x"
+ ? ((q || v || m) && (h = !0), B < 0 ? (h = !0) : (v = B))
+ : c.test(W) && y === "h"
+ ? ((m || v) && (h = !0), x === 0 ? (h = !0) : (m = x))
+ : (h = !0));
+ h
+ ? console &&
+ console.log &&
+ console.log(
+ "Invalid srcset descriptor found in '" +
+ e +
+ "' at '" +
+ T +
+ "'.",
+ )
+ : ((_.url = l),
+ q && (_.w = q),
+ v && (_.d = v),
+ m && (_.h = m),
+ z.push(_));
+ }
+ };
+ });
+ })(ya)),
+ ya.exports
+ );
+}
+var Zo = { exports: {} },
+ VO;
+function l50() {
+ if (VO) return Zo.exports;
+ VO = 1;
+ var t = String,
+ e = function () {
+ return {
+ isColorSupported: !1,
+ reset: t,
+ bold: t,
+ dim: t,
+ italic: t,
+ underline: t,
+ inverse: t,
+ hidden: t,
+ strikethrough: t,
+ black: t,
+ red: t,
+ green: t,
+ yellow: t,
+ blue: t,
+ magenta: t,
+ cyan: t,
+ white: t,
+ gray: t,
+ bgBlack: t,
+ bgRed: t,
+ bgGreen: t,
+ bgYellow: t,
+ bgBlue: t,
+ bgMagenta: t,
+ bgCyan: t,
+ bgWhite: t,
+ blackBright: t,
+ redBright: t,
+ greenBright: t,
+ yellowBright: t,
+ blueBright: t,
+ magentaBright: t,
+ cyanBright: t,
+ whiteBright: t,
+ bgBlackBright: t,
+ bgRedBright: t,
+ bgGreenBright: t,
+ bgYellowBright: t,
+ bgBlueBright: t,
+ bgMagentaBright: t,
+ bgCyanBright: t,
+ bgWhiteBright: t,
+ };
+ };
+ return ((Zo.exports = e()), (Zo.exports.createColors = e), Zo.exports);
+}
+const M50 = {},
+ d50 = Object.freeze(
+ Object.defineProperty(
+ { __proto__: null, default: M50 },
+ Symbol.toStringTag,
+ { value: "Module" },
+ ),
+ ),
+ Be = tq(d50);
+var Ku, jO;
+function CM() {
+ if (jO) return Ku;
+ jO = 1;
+ let t = l50(),
+ e = Be;
+ class n extends Error {
+ constructor(r, s, o, a, u, c) {
+ (super(r),
+ (this.name = "CssSyntaxError"),
+ (this.reason = r),
+ u && (this.file = u),
+ a && (this.source = a),
+ c && (this.plugin = c),
+ typeof s < "u" &&
+ typeof o < "u" &&
+ (typeof s == "number"
+ ? ((this.line = s), (this.column = o))
+ : ((this.line = s.line),
+ (this.column = s.column),
+ (this.endLine = o.line),
+ (this.endColumn = o.column))),
+ this.setMessage(),
+ Error.captureStackTrace && Error.captureStackTrace(this, n));
+ }
+ setMessage() {
+ ((this.message = this.plugin ? this.plugin + ": " : ""),
+ (this.message += this.file ? this.file : ""),
+ typeof this.line < "u" &&
+ (this.message += ":" + this.line + ":" + this.column),
+ (this.message += ": " + this.reason));
+ }
+ showSourceCode(r) {
+ if (!this.source) return "";
+ let s = this.source;
+ r == null && (r = t.isColorSupported);
+ let o = (M) => M,
+ a = (M) => M,
+ u = (M) => M;
+ if (r) {
+ let { bold: M, gray: d, red: O } = t.createColors(!0);
+ ((a = (f) => M(O(f))), (o = (f) => d(f)), e && (u = (f) => e(f)));
+ }
+ let c = s.split(/\r?\n/),
+ b = Math.max(this.line - 3, 0),
+ l = Math.min(this.line + 2, c.length),
+ p = String(l).length;
+ return c.slice(b, l).map((M, d) => {
+ let O = b + 1 + d,
+ f = " " + (" " + O).slice(-p) + " | ";
+ if (O === this.line) {
+ if (M.length > 160) {
+ let g = 20,
+ A = Math.max(0, this.column - g),
+ h = Math.max(this.column + g, this.endColumn + g),
+ q = M.slice(A, h),
+ v =
+ o(f.replace(/\d/g, " ")) +
+ M.slice(0, Math.min(this.column - 1, g - 1)).replace(
+ /[^\t]/g,
+ " ",
+ );
+ return (
+ a(">") +
+ o(f) +
+ u(q) +
+ `
+ ` +
+ v +
+ a("^")
+ );
+ }
+ let z =
+ o(f.replace(/\d/g, " ")) +
+ M.slice(0, this.column - 1).replace(/[^\t]/g, " ");
+ return (
+ a(">") +
+ o(f) +
+ u(M) +
+ `
+ ` +
+ z +
+ a("^")
+ );
+ }
+ return " " + o(f) + u(M);
+ }).join(`
+`);
+ }
+ toString() {
+ let r = this.showSourceCode();
+ return (
+ r &&
+ (r =
+ `
+
+` +
+ r +
+ `
+`),
+ this.name + ": " + this.message + r
+ );
+ }
+ }
+ return ((Ku = n), (n.default = n), Ku);
+}
+var Yu, KO;
+function R6() {
+ if (KO) return Yu;
+ KO = 1;
+ const t = {
+ after: `
+`,
+ beforeClose: `
+`,
+ beforeComment: `
+`,
+ beforeDecl: `
+`,
+ beforeOpen: " ",
+ beforeRule: `
+`,
+ colon: ": ",
+ commentLeft: " ",
+ commentRight: " ",
+ emptyBody: "",
+ indent: " ",
+ semicolon: !1,
+ };
+ function e(i) {
+ return i[0].toUpperCase() + i.slice(1);
+ }
+ class n {
+ constructor(r) {
+ this.builder = r;
+ }
+ atrule(r, s) {
+ let o = "@" + r.name,
+ a = r.params ? this.rawValue(r, "params") : "";
+ if (
+ (typeof r.raws.afterName < "u"
+ ? (o += r.raws.afterName)
+ : a && (o += " "),
+ r.nodes)
+ )
+ this.block(r, o + a);
+ else {
+ let u = (r.raws.between || "") + (s ? ";" : "");
+ this.builder(o + a + u, r);
+ }
+ }
+ beforeAfter(r, s) {
+ let o;
+ r.type === "decl"
+ ? (o = this.raw(r, null, "beforeDecl"))
+ : r.type === "comment"
+ ? (o = this.raw(r, null, "beforeComment"))
+ : s === "before"
+ ? (o = this.raw(r, null, "beforeRule"))
+ : (o = this.raw(r, null, "beforeClose"));
+ let a = r.parent,
+ u = 0;
+ for (; a && a.type !== "root"; ) ((u += 1), (a = a.parent));
+ if (
+ o.includes(`
+`)
+ ) {
+ let c = this.raw(r, null, "indent");
+ if (c.length) for (let b = 0; b < u; b++) o += c;
+ }
+ return o;
+ }
+ block(r, s) {
+ let o = this.raw(r, "between", "beforeOpen");
+ this.builder(s + o + "{", r, "start");
+ let a;
+ (r.nodes && r.nodes.length
+ ? (this.body(r), (a = this.raw(r, "after")))
+ : (a = this.raw(r, "after", "emptyBody")),
+ a && this.builder(a),
+ this.builder("}", r, "end"));
+ }
+ body(r) {
+ let s = r.nodes.length - 1;
+ for (; s > 0 && r.nodes[s].type === "comment"; ) s -= 1;
+ let o = this.raw(r, "semicolon");
+ for (let a = 0; a < r.nodes.length; a++) {
+ let u = r.nodes[a],
+ c = this.raw(u, "before");
+ (c && this.builder(c), this.stringify(u, s !== a || o));
+ }
+ }
+ comment(r) {
+ let s = this.raw(r, "left", "commentLeft"),
+ o = this.raw(r, "right", "commentRight");
+ this.builder("/*" + s + r.text + o + "*/", r);
+ }
+ decl(r, s) {
+ let o = this.raw(r, "between", "colon"),
+ a = r.prop + o + this.rawValue(r, "value");
+ (r.important && (a += r.raws.important || " !important"),
+ s && (a += ";"),
+ this.builder(a, r));
+ }
+ document(r) {
+ this.body(r);
+ }
+ raw(r, s, o) {
+ let a;
+ if ((o || (o = s), s && ((a = r.raws[s]), typeof a < "u"))) return a;
+ let u = r.parent;
+ if (
+ o === "before" &&
+ (!u ||
+ (u.type === "root" && u.first === r) ||
+ (u && u.type === "document"))
+ )
+ return "";
+ if (!u) return t[o];
+ let c = r.root();
+ if ((c.rawCache || (c.rawCache = {}), typeof c.rawCache[o] < "u"))
+ return c.rawCache[o];
+ if (o === "before" || o === "after") return this.beforeAfter(r, o);
+ {
+ let b = "raw" + e(o);
+ this[b]
+ ? (a = this[b](c, r))
+ : c.walk((l) => {
+ if (((a = l.raws[s]), typeof a < "u")) return !1;
+ });
+ }
+ return (typeof a > "u" && (a = t[o]), (c.rawCache[o] = a), a);
+ }
+ rawBeforeClose(r) {
+ let s;
+ return (
+ r.walk((o) => {
+ if (o.nodes && o.nodes.length > 0 && typeof o.raws.after < "u")
+ return (
+ (s = o.raws.after),
+ s.includes(`
+`) && (s = s.replace(/[^\n]+$/, "")),
+ !1
+ );
+ }),
+ s && (s = s.replace(/\S/g, "")),
+ s
+ );
+ }
+ rawBeforeComment(r, s) {
+ let o;
+ return (
+ r.walkComments((a) => {
+ if (typeof a.raws.before < "u")
+ return (
+ (o = a.raws.before),
+ o.includes(`
+`) && (o = o.replace(/[^\n]+$/, "")),
+ !1
+ );
+ }),
+ typeof o > "u"
+ ? (o = this.raw(s, null, "beforeDecl"))
+ : o && (o = o.replace(/\S/g, "")),
+ o
+ );
+ }
+ rawBeforeDecl(r, s) {
+ let o;
+ return (
+ r.walkDecls((a) => {
+ if (typeof a.raws.before < "u")
+ return (
+ (o = a.raws.before),
+ o.includes(`
+`) && (o = o.replace(/[^\n]+$/, "")),
+ !1
+ );
+ }),
+ typeof o > "u"
+ ? (o = this.raw(s, null, "beforeRule"))
+ : o && (o = o.replace(/\S/g, "")),
+ o
+ );
+ }
+ rawBeforeOpen(r) {
+ let s;
+ return (
+ r.walk((o) => {
+ if (o.type !== "decl" && ((s = o.raws.between), typeof s < "u"))
+ return !1;
+ }),
+ s
+ );
+ }
+ rawBeforeRule(r) {
+ let s;
+ return (
+ r.walk((o) => {
+ if (
+ o.nodes &&
+ (o.parent !== r || r.first !== o) &&
+ typeof o.raws.before < "u"
+ )
+ return (
+ (s = o.raws.before),
+ s.includes(`
+`) && (s = s.replace(/[^\n]+$/, "")),
+ !1
+ );
+ }),
+ s && (s = s.replace(/\S/g, "")),
+ s
+ );
+ }
+ rawColon(r) {
+ let s;
+ return (
+ r.walkDecls((o) => {
+ if (typeof o.raws.between < "u")
+ return ((s = o.raws.between.replace(/[^\s:]/g, "")), !1);
+ }),
+ s
+ );
+ }
+ rawEmptyBody(r) {
+ let s;
+ return (
+ r.walk((o) => {
+ if (
+ o.nodes &&
+ o.nodes.length === 0 &&
+ ((s = o.raws.after), typeof s < "u")
+ )
+ return !1;
+ }),
+ s
+ );
+ }
+ rawIndent(r) {
+ if (r.raws.indent) return r.raws.indent;
+ let s;
+ return (
+ r.walk((o) => {
+ let a = o.parent;
+ if (
+ a &&
+ a !== r &&
+ a.parent &&
+ a.parent === r &&
+ typeof o.raws.before < "u"
+ ) {
+ let u = o.raws.before.split(`
+`);
+ return ((s = u[u.length - 1]), (s = s.replace(/\S/g, "")), !1);
+ }
+ }),
+ s
+ );
+ }
+ rawSemicolon(r) {
+ let s;
+ return (
+ r.walk((o) => {
+ if (
+ o.nodes &&
+ o.nodes.length &&
+ o.last.type === "decl" &&
+ ((s = o.raws.semicolon), typeof s < "u")
+ )
+ return !1;
+ }),
+ s
+ );
+ }
+ rawValue(r, s) {
+ let o = r[s],
+ a = r.raws[s];
+ return a && a.value === o ? a.raw : o;
+ }
+ root(r) {
+ (this.body(r), r.raws.after && this.builder(r.raws.after));
+ }
+ rule(r) {
+ (this.block(r, this.rawValue(r, "selector")),
+ r.raws.ownSemicolon && this.builder(r.raws.ownSemicolon, r, "end"));
+ }
+ stringify(r, s) {
+ if (!this[r.type])
+ throw new Error(
+ "Unknown AST node type " +
+ r.type +
+ ". Maybe you need to change PostCSS stringifier.",
+ );
+ this[r.type](r, s);
+ }
+ }
+ return ((Yu = n), (n.default = n), Yu);
+}
+var Qu, YO;
+function f2() {
+ if (YO) return Qu;
+ YO = 1;
+ let t = R6();
+ function e(n, i) {
+ new t(i).stringify(n);
+ }
+ return ((Qu = e), (e.default = e), Qu);
+}
+var ea = {},
+ QO;
+function kM() {
+ return (
+ QO || ((QO = 1), (ea.isClean = Symbol("isClean")), (ea.my = Symbol("my"))),
+ ea
+ );
+}
+var Ju, JO;
+function z2() {
+ if (JO) return Ju;
+ JO = 1;
+ let t = CM(),
+ e = R6(),
+ n = f2(),
+ { isClean: i, my: r } = kM();
+ function s(u, c) {
+ let b = new u.constructor();
+ for (let l in u) {
+ if (!Object.prototype.hasOwnProperty.call(u, l) || l === "proxyCache")
+ continue;
+ let p = u[l],
+ M = typeof p;
+ l === "parent" && M === "object"
+ ? c && (b[l] = c)
+ : l === "source"
+ ? (b[l] = p)
+ : Array.isArray(p)
+ ? (b[l] = p.map((d) => s(d, b)))
+ : (M === "object" && p !== null && (p = s(p)), (b[l] = p));
+ }
+ return b;
+ }
+ function o(u, c) {
+ if (c && typeof c.offset < "u") return c.offset;
+ let b = 1,
+ l = 1,
+ p = 0;
+ for (let M = 0; M < u.length; M++) {
+ if (l === c.line && b === c.column) {
+ p = M;
+ break;
+ }
+ u[M] ===
+ `
+`
+ ? ((b = 1), (l += 1))
+ : (b += 1);
+ }
+ return p;
+ }
+ class a {
+ get proxyOf() {
+ return this;
+ }
+ constructor(c = {}) {
+ ((this.raws = {}), (this[i] = !1), (this[r] = !0));
+ for (let b in c)
+ if (b === "nodes") {
+ this.nodes = [];
+ for (let l of c[b])
+ typeof l.clone == "function"
+ ? this.append(l.clone())
+ : this.append(l);
+ } else this[b] = c[b];
+ }
+ addToError(c) {
+ if (
+ ((c.postcssNode = this),
+ c.stack && this.source && /\n\s{4}at /.test(c.stack))
+ ) {
+ let b = this.source;
+ c.stack = c.stack.replace(
+ /\n\s{4}at /,
+ `$&${b.input.from}:${b.start.line}:${b.start.column}$&`,
+ );
+ }
+ return c;
+ }
+ after(c) {
+ return (this.parent.insertAfter(this, c), this);
+ }
+ assign(c = {}) {
+ for (let b in c) this[b] = c[b];
+ return this;
+ }
+ before(c) {
+ return (this.parent.insertBefore(this, c), this);
+ }
+ cleanRaws(c) {
+ (delete this.raws.before,
+ delete this.raws.after,
+ c || delete this.raws.between);
+ }
+ clone(c = {}) {
+ let b = s(this);
+ for (let l in c) b[l] = c[l];
+ return b;
+ }
+ cloneAfter(c = {}) {
+ let b = this.clone(c);
+ return (this.parent.insertAfter(this, b), b);
+ }
+ cloneBefore(c = {}) {
+ let b = this.clone(c);
+ return (this.parent.insertBefore(this, b), b);
+ }
+ error(c, b = {}) {
+ if (this.source) {
+ let { end: l, start: p } = this.rangeBy(b);
+ return this.source.input.error(
+ c,
+ { column: p.column, line: p.line },
+ { column: l.column, line: l.line },
+ b,
+ );
+ }
+ return new t(c);
+ }
+ getProxyProcessor() {
+ return {
+ get(c, b) {
+ return b === "proxyOf"
+ ? c
+ : b === "root"
+ ? () => c.root().toProxy()
+ : c[b];
+ },
+ set(c, b, l) {
+ return (
+ c[b] === l ||
+ ((c[b] = l),
+ (b === "prop" ||
+ b === "value" ||
+ b === "name" ||
+ b === "params" ||
+ b === "important" ||
+ b === "text") &&
+ c.markDirty()),
+ !0
+ );
+ },
+ };
+ }
+ markClean() {
+ this[i] = !0;
+ }
+ markDirty() {
+ if (this[i]) {
+ this[i] = !1;
+ let c = this;
+ for (; (c = c.parent); ) c[i] = !1;
+ }
+ }
+ next() {
+ if (!this.parent) return;
+ let c = this.parent.index(this);
+ return this.parent.nodes[c + 1];
+ }
+ positionBy(c = {}) {
+ let b = this.source.start;
+ if (c.index) b = this.positionInside(c.index);
+ else if (c.word) {
+ let l =
+ "document" in this.source.input
+ ? this.source.input.document
+ : this.source.input.css,
+ M = l
+ .slice(o(l, this.source.start), o(l, this.source.end))
+ .indexOf(c.word);
+ M !== -1 && (b = this.positionInside(M));
+ }
+ return b;
+ }
+ positionInside(c) {
+ let b = this.source.start.column,
+ l = this.source.start.line,
+ p =
+ "document" in this.source.input
+ ? this.source.input.document
+ : this.source.input.css,
+ M = o(p, this.source.start),
+ d = M + c;
+ for (let O = M; O < d; O++)
+ p[O] ===
+ `
+`
+ ? ((b = 1), (l += 1))
+ : (b += 1);
+ return { column: b, line: l, offset: d };
+ }
+ prev() {
+ if (!this.parent) return;
+ let c = this.parent.index(this);
+ return this.parent.nodes[c - 1];
+ }
+ rangeBy(c = {}) {
+ let b =
+ "document" in this.source.input
+ ? this.source.input.document
+ : this.source.input.css,
+ l = {
+ column: this.source.start.column,
+ line: this.source.start.line,
+ offset: o(b, this.source.start),
+ },
+ p = this.source.end
+ ? {
+ column: this.source.end.column + 1,
+ line: this.source.end.line,
+ offset:
+ typeof this.source.end.offset == "number"
+ ? this.source.end.offset
+ : o(b, this.source.end) + 1,
+ }
+ : { column: l.column + 1, line: l.line, offset: l.offset + 1 };
+ if (c.word) {
+ let d = b
+ .slice(o(b, this.source.start), o(b, this.source.end))
+ .indexOf(c.word);
+ d !== -1 &&
+ ((l = this.positionInside(d)),
+ (p = this.positionInside(d + c.word.length)));
+ } else
+ (c.start
+ ? (l = {
+ column: c.start.column,
+ line: c.start.line,
+ offset: o(b, c.start),
+ })
+ : c.index && (l = this.positionInside(c.index)),
+ c.end
+ ? (p = {
+ column: c.end.column,
+ line: c.end.line,
+ offset: o(b, c.end),
+ })
+ : typeof c.endIndex == "number"
+ ? (p = this.positionInside(c.endIndex))
+ : c.index && (p = this.positionInside(c.index + 1)));
+ return (
+ (p.line < l.line || (p.line === l.line && p.column <= l.column)) &&
+ (p = { column: l.column + 1, line: l.line, offset: l.offset + 1 }),
+ { end: p, start: l }
+ );
+ }
+ raw(c, b) {
+ return new e().raw(this, c, b);
+ }
+ remove() {
+ return (
+ this.parent && this.parent.removeChild(this),
+ (this.parent = void 0),
+ this
+ );
+ }
+ replaceWith(...c) {
+ if (this.parent) {
+ let b = this,
+ l = !1;
+ for (let p of c)
+ p === this
+ ? (l = !0)
+ : l
+ ? (this.parent.insertAfter(b, p), (b = p))
+ : this.parent.insertBefore(b, p);
+ l || this.remove();
+ }
+ return this;
+ }
+ root() {
+ let c = this;
+ for (; c.parent && c.parent.type !== "document"; ) c = c.parent;
+ return c;
+ }
+ toJSON(c, b) {
+ let l = {},
+ p = b == null;
+ b = b || new Map();
+ let M = 0;
+ for (let d in this) {
+ if (
+ !Object.prototype.hasOwnProperty.call(this, d) ||
+ d === "parent" ||
+ d === "proxyCache"
+ )
+ continue;
+ let O = this[d];
+ if (Array.isArray(O))
+ l[d] = O.map((f) =>
+ typeof f == "object" && f.toJSON ? f.toJSON(null, b) : f,
+ );
+ else if (typeof O == "object" && O.toJSON) l[d] = O.toJSON(null, b);
+ else if (d === "source") {
+ if (O == null) continue;
+ let f = b.get(O.input);
+ (f == null && ((f = M), b.set(O.input, M), M++),
+ (l[d] = { end: O.end, inputId: f, start: O.start }));
+ } else l[d] = O;
+ }
+ return (p && (l.inputs = [...b.keys()].map((d) => d.toJSON())), l);
+ }
+ toProxy() {
+ return (
+ this.proxyCache ||
+ (this.proxyCache = new Proxy(this, this.getProxyProcessor())),
+ this.proxyCache
+ );
+ }
+ toString(c = n) {
+ c.stringify && (c = c.stringify);
+ let b = "";
+ return (
+ c(this, (l) => {
+ b += l;
+ }),
+ b
+ );
+ }
+ warn(c, b, l = {}) {
+ let p = { node: this };
+ for (let M in l) p[M] = l[M];
+ return c.warn(b, p);
+ }
+ }
+ return ((Ju = a), (a.default = a), Ju);
+}
+var Zu, ZO;
+function O2() {
+ if (ZO) return Zu;
+ ZO = 1;
+ let t = z2();
+ class e extends t {
+ constructor(i) {
+ (super(i), (this.type = "comment"));
+ }
+ }
+ return ((Zu = e), (e.default = e), Zu);
+}
+var eb, eh;
+function h2() {
+ if (eh) return eb;
+ eh = 1;
+ let t = z2();
+ class e extends t {
+ get variable() {
+ return this.prop.startsWith("--") || this.prop[0] === "$";
+ }
+ constructor(i) {
+ (i &&
+ typeof i.value < "u" &&
+ typeof i.value != "string" &&
+ (i = { ...i, value: String(i.value) }),
+ super(i),
+ (this.type = "decl"));
+ }
+ }
+ return ((eb = e), (e.default = e), eb);
+}
+var tb, th;
+function mi() {
+ if (th) return tb;
+ th = 1;
+ let t = O2(),
+ e = h2(),
+ n = z2(),
+ { isClean: i, my: r } = kM(),
+ s,
+ o,
+ a,
+ u;
+ function c(p) {
+ return p.map(
+ (M) => (M.nodes && (M.nodes = c(M.nodes)), delete M.source, M),
+ );
+ }
+ function b(p) {
+ if (((p[i] = !1), p.proxyOf.nodes)) for (let M of p.proxyOf.nodes) b(M);
+ }
+ class l extends n {
+ get first() {
+ if (this.proxyOf.nodes) return this.proxyOf.nodes[0];
+ }
+ get last() {
+ if (this.proxyOf.nodes)
+ return this.proxyOf.nodes[this.proxyOf.nodes.length - 1];
+ }
+ append(...M) {
+ for (let d of M) {
+ let O = this.normalize(d, this.last);
+ for (let f of O) this.proxyOf.nodes.push(f);
+ }
+ return (this.markDirty(), this);
+ }
+ cleanRaws(M) {
+ if ((super.cleanRaws(M), this.nodes))
+ for (let d of this.nodes) d.cleanRaws(M);
+ }
+ each(M) {
+ if (!this.proxyOf.nodes) return;
+ let d = this.getIterator(),
+ O,
+ f;
+ for (
+ ;
+ this.indexes[d] < this.proxyOf.nodes.length &&
+ ((O = this.indexes[d]), (f = M(this.proxyOf.nodes[O], O)), f !== !1);
+ )
+ this.indexes[d] += 1;
+ return (delete this.indexes[d], f);
+ }
+ every(M) {
+ return this.nodes.every(M);
+ }
+ getIterator() {
+ (this.lastEach || (this.lastEach = 0),
+ this.indexes || (this.indexes = {}),
+ (this.lastEach += 1));
+ let M = this.lastEach;
+ return ((this.indexes[M] = 0), M);
+ }
+ getProxyProcessor() {
+ return {
+ get(M, d) {
+ return d === "proxyOf"
+ ? M
+ : M[d]
+ ? d === "each" || (typeof d == "string" && d.startsWith("walk"))
+ ? (...O) =>
+ M[d](
+ ...O.map((f) =>
+ typeof f == "function"
+ ? (z, g) => f(z.toProxy(), g)
+ : f,
+ ),
+ )
+ : d === "every" || d === "some"
+ ? (O) => M[d]((f, ...z) => O(f.toProxy(), ...z))
+ : d === "root"
+ ? () => M.root().toProxy()
+ : d === "nodes"
+ ? M.nodes.map((O) => O.toProxy())
+ : d === "first" || d === "last"
+ ? M[d].toProxy()
+ : M[d]
+ : M[d];
+ },
+ set(M, d, O) {
+ return (
+ M[d] === O ||
+ ((M[d] = O),
+ (d === "name" || d === "params" || d === "selector") &&
+ M.markDirty()),
+ !0
+ );
+ },
+ };
+ }
+ index(M) {
+ return typeof M == "number"
+ ? M
+ : (M.proxyOf && (M = M.proxyOf), this.proxyOf.nodes.indexOf(M));
+ }
+ insertAfter(M, d) {
+ let O = this.index(M),
+ f = this.normalize(d, this.proxyOf.nodes[O]).reverse();
+ O = this.index(M);
+ for (let g of f) this.proxyOf.nodes.splice(O + 1, 0, g);
+ let z;
+ for (let g in this.indexes)
+ ((z = this.indexes[g]), O < z && (this.indexes[g] = z + f.length));
+ return (this.markDirty(), this);
+ }
+ insertBefore(M, d) {
+ let O = this.index(M),
+ f = O === 0 ? "prepend" : !1,
+ z = this.normalize(d, this.proxyOf.nodes[O], f).reverse();
+ O = this.index(M);
+ for (let A of z) this.proxyOf.nodes.splice(O, 0, A);
+ let g;
+ for (let A in this.indexes)
+ ((g = this.indexes[A]), O <= g && (this.indexes[A] = g + z.length));
+ return (this.markDirty(), this);
+ }
+ normalize(M, d) {
+ if (typeof M == "string") M = c(o(M).nodes);
+ else if (typeof M > "u") M = [];
+ else if (Array.isArray(M)) {
+ M = M.slice(0);
+ for (let f of M) f.parent && f.parent.removeChild(f, "ignore");
+ } else if (M.type === "root" && this.type !== "document") {
+ M = M.nodes.slice(0);
+ for (let f of M) f.parent && f.parent.removeChild(f, "ignore");
+ } else if (M.type) M = [M];
+ else if (M.prop) {
+ if (typeof M.value > "u")
+ throw new Error("Value field is missed in node creation");
+ (typeof M.value != "string" && (M.value = String(M.value)),
+ (M = [new e(M)]));
+ } else if (M.selector || M.selectors) M = [new u(M)];
+ else if (M.name) M = [new s(M)];
+ else if (M.text) M = [new t(M)];
+ else throw new Error("Unknown node type in node creation");
+ return M.map(
+ (f) => (
+ f[r] || l.rebuild(f),
+ (f = f.proxyOf),
+ f.parent && f.parent.removeChild(f),
+ f[i] && b(f),
+ f.raws || (f.raws = {}),
+ typeof f.raws.before > "u" &&
+ d &&
+ typeof d.raws.before < "u" &&
+ (f.raws.before = d.raws.before.replace(/\S/g, "")),
+ (f.parent = this.proxyOf),
+ f
+ ),
+ );
+ }
+ prepend(...M) {
+ M = M.reverse();
+ for (let d of M) {
+ let O = this.normalize(d, this.first, "prepend").reverse();
+ for (let f of O) this.proxyOf.nodes.unshift(f);
+ for (let f in this.indexes)
+ this.indexes[f] = this.indexes[f] + O.length;
+ }
+ return (this.markDirty(), this);
+ }
+ push(M) {
+ return ((M.parent = this), this.proxyOf.nodes.push(M), this);
+ }
+ removeAll() {
+ for (let M of this.proxyOf.nodes) M.parent = void 0;
+ return ((this.proxyOf.nodes = []), this.markDirty(), this);
+ }
+ removeChild(M) {
+ ((M = this.index(M)),
+ (this.proxyOf.nodes[M].parent = void 0),
+ this.proxyOf.nodes.splice(M, 1));
+ let d;
+ for (let O in this.indexes)
+ ((d = this.indexes[O]), d >= M && (this.indexes[O] = d - 1));
+ return (this.markDirty(), this);
+ }
+ replaceValues(M, d, O) {
+ return (
+ O || ((O = d), (d = {})),
+ this.walkDecls((f) => {
+ (d.props && !d.props.includes(f.prop)) ||
+ (d.fast && !f.value.includes(d.fast)) ||
+ (f.value = f.value.replace(M, O));
+ }),
+ this.markDirty(),
+ this
+ );
+ }
+ some(M) {
+ return this.nodes.some(M);
+ }
+ walk(M) {
+ return this.each((d, O) => {
+ let f;
+ try {
+ f = M(d, O);
+ } catch (z) {
+ throw d.addToError(z);
+ }
+ return (f !== !1 && d.walk && (f = d.walk(M)), f);
+ });
+ }
+ walkAtRules(M, d) {
+ return d
+ ? M instanceof RegExp
+ ? this.walk((O, f) => {
+ if (O.type === "atrule" && M.test(O.name)) return d(O, f);
+ })
+ : this.walk((O, f) => {
+ if (O.type === "atrule" && O.name === M) return d(O, f);
+ })
+ : ((d = M),
+ this.walk((O, f) => {
+ if (O.type === "atrule") return d(O, f);
+ }));
+ }
+ walkComments(M) {
+ return this.walk((d, O) => {
+ if (d.type === "comment") return M(d, O);
+ });
+ }
+ walkDecls(M, d) {
+ return d
+ ? M instanceof RegExp
+ ? this.walk((O, f) => {
+ if (O.type === "decl" && M.test(O.prop)) return d(O, f);
+ })
+ : this.walk((O, f) => {
+ if (O.type === "decl" && O.prop === M) return d(O, f);
+ })
+ : ((d = M),
+ this.walk((O, f) => {
+ if (O.type === "decl") return d(O, f);
+ }));
+ }
+ walkRules(M, d) {
+ return d
+ ? M instanceof RegExp
+ ? this.walk((O, f) => {
+ if (O.type === "rule" && M.test(O.selector)) return d(O, f);
+ })
+ : this.walk((O, f) => {
+ if (O.type === "rule" && O.selector === M) return d(O, f);
+ })
+ : ((d = M),
+ this.walk((O, f) => {
+ if (O.type === "rule") return d(O, f);
+ }));
+ }
+ }
+ return (
+ (l.registerParse = (p) => {
+ o = p;
+ }),
+ (l.registerRule = (p) => {
+ u = p;
+ }),
+ (l.registerAtRule = (p) => {
+ s = p;
+ }),
+ (l.registerRoot = (p) => {
+ a = p;
+ }),
+ (tb = l),
+ (l.default = l),
+ (l.rebuild = (p) => {
+ (p.type === "atrule"
+ ? Object.setPrototypeOf(p, s.prototype)
+ : p.type === "rule"
+ ? Object.setPrototypeOf(p, u.prototype)
+ : p.type === "decl"
+ ? Object.setPrototypeOf(p, e.prototype)
+ : p.type === "comment"
+ ? Object.setPrototypeOf(p, t.prototype)
+ : p.type === "root" && Object.setPrototypeOf(p, a.prototype),
+ (p[r] = !0),
+ p.nodes &&
+ p.nodes.forEach((M) => {
+ l.rebuild(M);
+ }));
+ }),
+ tb
+ );
+}
+var nb, nh;
+function PM() {
+ if (nh) return nb;
+ nh = 1;
+ let t = mi();
+ class e extends t {
+ constructor(i) {
+ (super(i), (this.type = "atrule"));
+ }
+ append(...i) {
+ return (this.proxyOf.nodes || (this.nodes = []), super.append(...i));
+ }
+ prepend(...i) {
+ return (this.proxyOf.nodes || (this.nodes = []), super.prepend(...i));
+ }
+ }
+ return ((nb = e), (e.default = e), t.registerAtRule(e), nb);
+}
+var ib, ih;
+function XM() {
+ if (ih) return ib;
+ ih = 1;
+ let t = mi(),
+ e,
+ n;
+ class i extends t {
+ constructor(s) {
+ (super({ type: "document", ...s }), this.nodes || (this.nodes = []));
+ }
+ toResult(s = {}) {
+ return new e(new n(), this, s).stringify();
+ }
+ }
+ return (
+ (i.registerLazyResult = (r) => {
+ e = r;
+ }),
+ (i.registerProcessor = (r) => {
+ n = r;
+ }),
+ (ib = i),
+ (i.default = i),
+ ib
+ );
+}
+var rb, rh;
+function f50() {
+ if (rh) return rb;
+ rh = 1;
+ let t = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
+ return (
+ (rb = {
+ nanoid: (i = 21) => {
+ let r = "",
+ s = i | 0;
+ for (; s--; ) r += t[(Math.random() * 64) | 0];
+ return r;
+ },
+ customAlphabet:
+ (i, r = 21) =>
+ (s = r) => {
+ let o = "",
+ a = s | 0;
+ for (; a--; ) o += i[(Math.random() * i.length) | 0];
+ return o;
+ },
+ }),
+ rb
+ );
+}
+var sb, sh;
+function y6() {
+ if (sh) return sb;
+ sh = 1;
+ let { existsSync: t, readFileSync: e } = Be,
+ { dirname: n, join: i } = Be,
+ { SourceMapConsumer: r, SourceMapGenerator: s } = Be;
+ function o(u) {
+ return Buffer ? Buffer.from(u, "base64").toString() : window.atob(u);
+ }
+ class a {
+ constructor(c, b) {
+ if (b.map === !1) return;
+ (this.loadAnnotation(c),
+ (this.inline = this.startWith(this.annotation, "data:")));
+ let l = b.map ? b.map.prev : void 0,
+ p = this.loadMap(b.from, l);
+ (!this.mapFile && b.from && (this.mapFile = b.from),
+ this.mapFile && (this.root = n(this.mapFile)),
+ p && (this.text = p));
+ }
+ consumer() {
+ return (
+ this.consumerCache || (this.consumerCache = new r(this.text)),
+ this.consumerCache
+ );
+ }
+ decodeInline(c) {
+ let b = /^data:application\/json;charset=utf-?8;base64,/,
+ l = /^data:application\/json;base64,/,
+ p = /^data:application\/json;charset=utf-?8,/,
+ M = /^data:application\/json,/,
+ d = c.match(p) || c.match(M);
+ if (d) return decodeURIComponent(c.substr(d[0].length));
+ let O = c.match(b) || c.match(l);
+ if (O) return o(c.substr(O[0].length));
+ let f = c.match(/data:application\/json;([^,]+),/)[1];
+ throw new Error("Unsupported source map encoding " + f);
+ }
+ getAnnotationURL(c) {
+ return c.replace(/^\/\*\s*# sourceMappingURL=/, "").trim();
+ }
+ isMap(c) {
+ return typeof c != "object"
+ ? !1
+ : typeof c.mappings == "string" ||
+ typeof c._mappings == "string" ||
+ Array.isArray(c.sections);
+ }
+ loadAnnotation(c) {
+ let b = c.match(/\/\*\s*# sourceMappingURL=/g);
+ if (!b) return;
+ let l = c.lastIndexOf(b.pop()),
+ p = c.indexOf("*/", l);
+ l > -1 &&
+ p > -1 &&
+ (this.annotation = this.getAnnotationURL(c.substring(l, p)));
+ }
+ loadFile(c) {
+ if (((this.root = n(c)), t(c)))
+ return ((this.mapFile = c), e(c, "utf-8").toString().trim());
+ }
+ loadMap(c, b) {
+ if (b === !1) return !1;
+ if (b) {
+ if (typeof b == "string") return b;
+ if (typeof b == "function") {
+ let l = b(c);
+ if (l) {
+ let p = this.loadFile(l);
+ if (!p)
+ throw new Error(
+ "Unable to load previous source map: " + l.toString(),
+ );
+ return p;
+ }
+ } else {
+ if (b instanceof r) return s.fromSourceMap(b).toString();
+ if (b instanceof s) return b.toString();
+ if (this.isMap(b)) return JSON.stringify(b);
+ throw new Error(
+ "Unsupported previous source map format: " + b.toString(),
+ );
+ }
+ } else {
+ if (this.inline) return this.decodeInline(this.annotation);
+ if (this.annotation) {
+ let l = this.annotation;
+ return (c && (l = i(n(c), l)), this.loadFile(l));
+ }
+ }
+ }
+ startWith(c, b) {
+ return c ? c.substr(0, b.length) === b : !1;
+ }
+ withContent() {
+ return !!(
+ this.consumer().sourcesContent &&
+ this.consumer().sourcesContent.length > 0
+ );
+ }
+ }
+ return ((sb = a), (a.default = a), sb);
+}
+var ob, oh;
+function A2() {
+ if (oh) return ob;
+ oh = 1;
+ let { nanoid: t } = f50(),
+ { isAbsolute: e, resolve: n } = Be,
+ { SourceMapConsumer: i, SourceMapGenerator: r } = Be,
+ { fileURLToPath: s, pathToFileURL: o } = Be,
+ a = CM(),
+ u = y6(),
+ c = Be,
+ b = Symbol("lineToIndexCache"),
+ l = !!(i && r),
+ p = !!(n && e);
+ function M(O) {
+ if (O[b]) return O[b];
+ let f = O.css.split(`
+`),
+ z = new Array(f.length),
+ g = 0;
+ for (let A = 0, h = f.length; A < h; A++)
+ ((z[A] = g), (g += f[A].length + 1));
+ return ((O[b] = z), z);
+ }
+ class d {
+ get from() {
+ return this.file || this.id;
+ }
+ constructor(f, z = {}) {
+ if (f === null || typeof f > "u" || (typeof f == "object" && !f.toString))
+ throw new Error(`PostCSS received ${f} instead of CSS string`);
+ if (
+ ((this.css = f.toString()),
+ this.css[0] === "\uFEFF" || this.css[0] === ""
+ ? ((this.hasBOM = !0), (this.css = this.css.slice(1)))
+ : (this.hasBOM = !1),
+ (this.document = this.css),
+ z.document && (this.document = z.document.toString()),
+ z.from &&
+ (!p || /^\w+:\/\//.test(z.from) || e(z.from)
+ ? (this.file = z.from)
+ : (this.file = n(z.from))),
+ p && l)
+ ) {
+ let g = new u(this.css, z);
+ if (g.text) {
+ this.map = g;
+ let A = g.consumer().file;
+ !this.file && A && (this.file = this.mapResolve(A));
+ }
+ }
+ (this.file || (this.id = ""),
+ this.map && (this.map.file = this.from));
+ }
+ error(f, z, g, A = {}) {
+ let h, q, v, m, E;
+ if (z && typeof z == "object") {
+ let T = z,
+ y = g;
+ if (typeof T.offset == "number") {
+ m = T.offset;
+ let W = this.fromOffset(m);
+ ((z = W.line), (g = W.col));
+ } else
+ ((z = T.line), (g = T.column), (m = this.fromLineAndColumn(z, g)));
+ if (typeof y.offset == "number") {
+ v = y.offset;
+ let W = this.fromOffset(v);
+ ((q = W.line), (h = W.col));
+ } else
+ ((q = y.line),
+ (h = y.column),
+ (v = this.fromLineAndColumn(y.line, y.column)));
+ } else if (g) m = this.fromLineAndColumn(z, g);
+ else {
+ m = z;
+ let T = this.fromOffset(m);
+ ((z = T.line), (g = T.col));
+ }
+ let _ = this.origin(z, g, q, h);
+ return (
+ _
+ ? (E = new a(
+ f,
+ _.endLine === void 0
+ ? _.line
+ : { column: _.column, line: _.line },
+ _.endLine === void 0
+ ? _.column
+ : { column: _.endColumn, line: _.endLine },
+ _.source,
+ _.file,
+ A.plugin,
+ ))
+ : (E = new a(
+ f,
+ q === void 0 ? z : { column: g, line: z },
+ q === void 0 ? g : { column: h, line: q },
+ this.css,
+ this.file,
+ A.plugin,
+ )),
+ (E.input = {
+ column: g,
+ endColumn: h,
+ endLine: q,
+ endOffset: v,
+ line: z,
+ offset: m,
+ source: this.css,
+ }),
+ this.file &&
+ (o && (E.input.url = o(this.file).toString()),
+ (E.input.file = this.file)),
+ E
+ );
+ }
+ fromLineAndColumn(f, z) {
+ return M(this)[f - 1] + z - 1;
+ }
+ fromOffset(f) {
+ let z = M(this),
+ g = z[z.length - 1],
+ A = 0;
+ if (f >= g) A = z.length - 1;
+ else {
+ let h = z.length - 2,
+ q;
+ for (; A < h; )
+ if (((q = A + ((h - A) >> 1)), f < z[q])) h = q - 1;
+ else if (f >= z[q + 1]) A = q + 1;
+ else {
+ A = q;
+ break;
+ }
+ }
+ return { col: f - z[A] + 1, line: A + 1 };
+ }
+ mapResolve(f) {
+ return /^\w+:\/\//.test(f)
+ ? f
+ : n(this.map.consumer().sourceRoot || this.map.root || ".", f);
+ }
+ origin(f, z, g, A) {
+ if (!this.map) return !1;
+ let h = this.map.consumer(),
+ q = h.originalPositionFor({ column: z, line: f });
+ if (!q.source) return !1;
+ let v;
+ typeof g == "number" &&
+ (v = h.originalPositionFor({ column: A, line: g }));
+ let m;
+ e(q.source)
+ ? (m = o(q.source))
+ : (m = new URL(
+ q.source,
+ this.map.consumer().sourceRoot || o(this.map.mapFile),
+ ));
+ let E = {
+ column: q.column,
+ endColumn: v && v.column,
+ endLine: v && v.line,
+ line: q.line,
+ url: m.toString(),
+ };
+ if (m.protocol === "file:")
+ if (s) E.file = s(m);
+ else
+ throw new Error(
+ "file: protocol is not available in this PostCSS build",
+ );
+ let _ = h.sourceContentFor(q.source);
+ return (_ && (E.source = _), E);
+ }
+ toJSON() {
+ let f = {};
+ for (let z of ["hasBOM", "css", "file", "id"])
+ this[z] != null && (f[z] = this[z]);
+ return (
+ this.map &&
+ ((f.map = { ...this.map }),
+ f.map.consumerCache && (f.map.consumerCache = void 0)),
+ f
+ );
+ }
+ }
+ return (
+ (ob = d),
+ (d.default = d),
+ c && c.registerInput && c.registerInput(d),
+ ob
+ );
+}
+var ab, ah;
+function uo() {
+ if (ah) return ab;
+ ah = 1;
+ let t = mi(),
+ e,
+ n;
+ class i extends t {
+ constructor(s) {
+ (super(s), (this.type = "root"), this.nodes || (this.nodes = []));
+ }
+ normalize(s, o, a) {
+ let u = super.normalize(s);
+ if (o) {
+ if (a === "prepend")
+ this.nodes.length > 1
+ ? (o.raws.before = this.nodes[1].raws.before)
+ : delete o.raws.before;
+ else if (this.first !== o)
+ for (let c of u) c.raws.before = o.raws.before;
+ }
+ return u;
+ }
+ removeChild(s, o) {
+ let a = this.index(s);
+ return (
+ !o &&
+ a === 0 &&
+ this.nodes.length > 1 &&
+ (this.nodes[1].raws.before = this.nodes[a].raws.before),
+ super.removeChild(s)
+ );
+ }
+ toResult(s = {}) {
+ return new e(new n(), this, s).stringify();
+ }
+ }
+ return (
+ (i.registerLazyResult = (r) => {
+ e = r;
+ }),
+ (i.registerProcessor = (r) => {
+ n = r;
+ }),
+ (ab = i),
+ (i.default = i),
+ t.registerRoot(i),
+ ab
+ );
+}
+var cb, ch;
+function L6() {
+ if (ch) return cb;
+ ch = 1;
+ let t = {
+ comma(e) {
+ return t.split(e, [","], !0);
+ },
+ space(e) {
+ let n = [
+ " ",
+ `
+`,
+ " ",
+ ];
+ return t.split(e, n);
+ },
+ split(e, n, i) {
+ let r = [],
+ s = "",
+ o = !1,
+ a = 0,
+ u = !1,
+ c = "",
+ b = !1;
+ for (let l of e)
+ (b
+ ? (b = !1)
+ : l === "\\"
+ ? (b = !0)
+ : u
+ ? l === c && (u = !1)
+ : l === '"' || l === "'"
+ ? ((u = !0), (c = l))
+ : l === "("
+ ? (a += 1)
+ : l === ")"
+ ? a > 0 && (a -= 1)
+ : a === 0 && n.includes(l) && (o = !0),
+ o ? (s !== "" && r.push(s.trim()), (s = ""), (o = !1)) : (s += l));
+ return ((i || s !== "") && r.push(s.trim()), r);
+ },
+ };
+ return ((cb = t), (t.default = t), cb);
+}
+var ub, uh;
+function FM() {
+ if (uh) return ub;
+ uh = 1;
+ let t = mi(),
+ e = L6();
+ class n extends t {
+ get selectors() {
+ return e.comma(this.selector);
+ }
+ set selectors(r) {
+ let s = this.selector ? this.selector.match(/,\s*/) : null,
+ o = s ? s[0] : "," + this.raw("between", "beforeOpen");
+ this.selector = r.join(o);
+ }
+ constructor(r) {
+ (super(r), (this.type = "rule"), this.nodes || (this.nodes = []));
+ }
+ }
+ return ((ub = n), (n.default = n), t.registerRule(n), ub);
+}
+var bb, bh;
+function z50() {
+ if (bh) return bb;
+ bh = 1;
+ let t = PM(),
+ e = O2(),
+ n = h2(),
+ i = A2(),
+ r = y6(),
+ s = uo(),
+ o = FM();
+ function a(u, c) {
+ if (Array.isArray(u)) return u.map((p) => a(p));
+ let { inputs: b, ...l } = u;
+ if (b) {
+ c = [];
+ for (let p of b) {
+ let M = { ...p, __proto__: i.prototype };
+ (M.map && (M.map = { ...M.map, __proto__: r.prototype }), c.push(M));
+ }
+ }
+ if ((l.nodes && (l.nodes = u.nodes.map((p) => a(p, c))), l.source)) {
+ let { inputId: p, ...M } = l.source;
+ ((l.source = M), p != null && (l.source.input = c[p]));
+ }
+ if (l.type === "root") return new s(l);
+ if (l.type === "decl") return new n(l);
+ if (l.type === "rule") return new o(l);
+ if (l.type === "comment") return new e(l);
+ if (l.type === "atrule") return new t(l);
+ throw new Error("Unknown node type: " + u.type);
+ }
+ return ((bb = a), (a.default = a), bb);
+}
+var pb, ph;
+function v6() {
+ if (ph) return pb;
+ ph = 1;
+ let { dirname: t, relative: e, resolve: n, sep: i } = Be,
+ { SourceMapConsumer: r, SourceMapGenerator: s } = Be,
+ { pathToFileURL: o } = Be,
+ a = A2(),
+ u = !!(r && s),
+ c = !!(t && n && e && i);
+ class b {
+ constructor(p, M, d, O) {
+ ((this.stringify = p),
+ (this.mapOpts = d.map || {}),
+ (this.root = M),
+ (this.opts = d),
+ (this.css = O),
+ (this.originalCSS = O),
+ (this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute),
+ (this.memoizedFileURLs = new Map()),
+ (this.memoizedPaths = new Map()),
+ (this.memoizedURLs = new Map()));
+ }
+ addAnnotation() {
+ let p;
+ this.isInline()
+ ? (p =
+ "data:application/json;base64," +
+ this.toBase64(this.map.toString()))
+ : typeof this.mapOpts.annotation == "string"
+ ? (p = this.mapOpts.annotation)
+ : typeof this.mapOpts.annotation == "function"
+ ? (p = this.mapOpts.annotation(this.opts.to, this.root))
+ : (p = this.outputFile() + ".map");
+ let M = `
+`;
+ (this.css.includes(`\r
+`) &&
+ (M = `\r
+`),
+ (this.css += M + "/*# sourceMappingURL=" + p + " */"));
+ }
+ applyPrevMaps() {
+ for (let p of this.previous()) {
+ let M = this.toUrl(this.path(p.file)),
+ d = p.root || t(p.file),
+ O;
+ (this.mapOpts.sourcesContent === !1
+ ? ((O = new r(p.text)), O.sourcesContent && (O.sourcesContent = null))
+ : (O = p.consumer()),
+ this.map.applySourceMap(O, M, this.toUrl(this.path(d))));
+ }
+ }
+ clearAnnotation() {
+ if (this.mapOpts.annotation !== !1)
+ if (this.root) {
+ let p;
+ for (let M = this.root.nodes.length - 1; M >= 0; M--)
+ ((p = this.root.nodes[M]),
+ p.type === "comment" &&
+ p.text.startsWith("# sourceMappingURL=") &&
+ this.root.removeChild(M));
+ } else
+ this.css &&
+ (this.css = this.css.replace(/\n*\/\*#[\S\s]*?\*\/$/gm, ""));
+ }
+ generate() {
+ if ((this.clearAnnotation(), c && u && this.isMap()))
+ return this.generateMap();
+ {
+ let p = "";
+ return (
+ this.stringify(this.root, (M) => {
+ p += M;
+ }),
+ [p]
+ );
+ }
+ }
+ generateMap() {
+ if (this.root) this.generateString();
+ else if (this.previous().length === 1) {
+ let p = this.previous()[0].consumer();
+ ((p.file = this.outputFile()),
+ (this.map = s.fromSourceMap(p, { ignoreInvalidMapping: !0 })));
+ } else
+ ((this.map = new s({
+ file: this.outputFile(),
+ ignoreInvalidMapping: !0,
+ })),
+ this.map.addMapping({
+ generated: { column: 0, line: 1 },
+ original: { column: 0, line: 1 },
+ source: this.opts.from
+ ? this.toUrl(this.path(this.opts.from))
+ : "",
+ }));
+ return (
+ this.isSourcesContent() && this.setSourcesContent(),
+ this.root && this.previous().length > 0 && this.applyPrevMaps(),
+ this.isAnnotation() && this.addAnnotation(),
+ this.isInline() ? [this.css] : [this.css, this.map]
+ );
+ }
+ generateString() {
+ ((this.css = ""),
+ (this.map = new s({
+ file: this.outputFile(),
+ ignoreInvalidMapping: !0,
+ })));
+ let p = 1,
+ M = 1,
+ d = "",
+ O = {
+ generated: { column: 0, line: 0 },
+ original: { column: 0, line: 0 },
+ source: "",
+ },
+ f,
+ z;
+ this.stringify(this.root, (g, A, h) => {
+ if (
+ ((this.css += g),
+ A &&
+ h !== "end" &&
+ ((O.generated.line = p),
+ (O.generated.column = M - 1),
+ A.source && A.source.start
+ ? ((O.source = this.sourcePath(A)),
+ (O.original.line = A.source.start.line),
+ (O.original.column = A.source.start.column - 1),
+ this.map.addMapping(O))
+ : ((O.source = d),
+ (O.original.line = 1),
+ (O.original.column = 0),
+ this.map.addMapping(O))),
+ (z = g.match(/\n/g)),
+ z
+ ? ((p += z.length),
+ (f = g.lastIndexOf(`
+`)),
+ (M = g.length - f))
+ : (M += g.length),
+ A && h !== "start")
+ ) {
+ let q = A.parent || { raws: {} };
+ (!(A.type === "decl" || (A.type === "atrule" && !A.nodes)) ||
+ A !== q.last ||
+ q.raws.semicolon) &&
+ (A.source && A.source.end
+ ? ((O.source = this.sourcePath(A)),
+ (O.original.line = A.source.end.line),
+ (O.original.column = A.source.end.column - 1),
+ (O.generated.line = p),
+ (O.generated.column = M - 2),
+ this.map.addMapping(O))
+ : ((O.source = d),
+ (O.original.line = 1),
+ (O.original.column = 0),
+ (O.generated.line = p),
+ (O.generated.column = M - 1),
+ this.map.addMapping(O)));
+ }
+ });
+ }
+ isAnnotation() {
+ return this.isInline()
+ ? !0
+ : typeof this.mapOpts.annotation < "u"
+ ? this.mapOpts.annotation
+ : this.previous().length
+ ? this.previous().some((p) => p.annotation)
+ : !0;
+ }
+ isInline() {
+ if (typeof this.mapOpts.inline < "u") return this.mapOpts.inline;
+ let p = this.mapOpts.annotation;
+ return typeof p < "u" && p !== !0
+ ? !1
+ : this.previous().length
+ ? this.previous().some((M) => M.inline)
+ : !0;
+ }
+ isMap() {
+ return typeof this.opts.map < "u"
+ ? !!this.opts.map
+ : this.previous().length > 0;
+ }
+ isSourcesContent() {
+ return typeof this.mapOpts.sourcesContent < "u"
+ ? this.mapOpts.sourcesContent
+ : this.previous().length
+ ? this.previous().some((p) => p.withContent())
+ : !0;
+ }
+ outputFile() {
+ return this.opts.to
+ ? this.path(this.opts.to)
+ : this.opts.from
+ ? this.path(this.opts.from)
+ : "to.css";
+ }
+ path(p) {
+ if (
+ this.mapOpts.absolute ||
+ p.charCodeAt(0) === 60 ||
+ /^\w+:\/\//.test(p)
+ )
+ return p;
+ let M = this.memoizedPaths.get(p);
+ if (M) return M;
+ let d = this.opts.to ? t(this.opts.to) : ".";
+ typeof this.mapOpts.annotation == "string" &&
+ (d = t(n(d, this.mapOpts.annotation)));
+ let O = e(d, p);
+ return (this.memoizedPaths.set(p, O), O);
+ }
+ previous() {
+ if (!this.previousMaps)
+ if (((this.previousMaps = []), this.root))
+ this.root.walk((p) => {
+ if (p.source && p.source.input.map) {
+ let M = p.source.input.map;
+ this.previousMaps.includes(M) || this.previousMaps.push(M);
+ }
+ });
+ else {
+ let p = new a(this.originalCSS, this.opts);
+ p.map && this.previousMaps.push(p.map);
+ }
+ return this.previousMaps;
+ }
+ setSourcesContent() {
+ let p = {};
+ if (this.root)
+ this.root.walk((M) => {
+ if (M.source) {
+ let d = M.source.input.from;
+ if (d && !p[d]) {
+ p[d] = !0;
+ let O = this.usesFileUrls
+ ? this.toFileUrl(d)
+ : this.toUrl(this.path(d));
+ this.map.setSourceContent(O, M.source.input.css);
+ }
+ }
+ });
+ else if (this.css) {
+ let M = this.opts.from
+ ? this.toUrl(this.path(this.opts.from))
+ : "";
+ this.map.setSourceContent(M, this.css);
+ }
+ }
+ sourcePath(p) {
+ return this.mapOpts.from
+ ? this.toUrl(this.mapOpts.from)
+ : this.usesFileUrls
+ ? this.toFileUrl(p.source.input.from)
+ : this.toUrl(this.path(p.source.input.from));
+ }
+ toBase64(p) {
+ return Buffer
+ ? Buffer.from(p).toString("base64")
+ : window.btoa(unescape(encodeURIComponent(p)));
+ }
+ toFileUrl(p) {
+ let M = this.memoizedFileURLs.get(p);
+ if (M) return M;
+ if (o) {
+ let d = o(p).toString();
+ return (this.memoizedFileURLs.set(p, d), d);
+ } else
+ throw new Error(
+ "`map.absolute` option is not available in this PostCSS build",
+ );
+ }
+ toUrl(p) {
+ let M = this.memoizedURLs.get(p);
+ if (M) return M;
+ i === "\\" && (p = p.replace(/\\/g, "/"));
+ let d = encodeURI(p).replace(/[#?]/g, encodeURIComponent);
+ return (this.memoizedURLs.set(p, d), d);
+ }
+ }
+ return ((pb = b), pb);
+}
+var lb, lh;
+function O50() {
+ if (lh) return lb;
+ lh = 1;
+ const t = 39,
+ e = 34,
+ n = 92,
+ i = 47,
+ r = 10,
+ s = 32,
+ o = 12,
+ a = 9,
+ u = 13,
+ c = 91,
+ b = 93,
+ l = 40,
+ p = 41,
+ M = 123,
+ d = 125,
+ O = 59,
+ f = 42,
+ z = 58,
+ g = 64,
+ A = /[\t\n\f\r "#'()/;[\\\]{}]/g,
+ h = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g,
+ q = /.[\r\n"'(/\\]/,
+ v = /[\da-f]/i;
+ return (
+ (lb = function (E, _ = {}) {
+ let T = E.css.valueOf(),
+ y = _.ignoreErrors,
+ W,
+ x,
+ B,
+ N,
+ I,
+ k,
+ F,
+ Q,
+ n0,
+ Y,
+ Z = T.length,
+ i0 = 0,
+ M0 = [],
+ u0 = [];
+ function b0() {
+ return i0;
+ }
+ function P(G) {
+ throw E.error("Unclosed " + G, i0);
+ }
+ function t0() {
+ return u0.length === 0 && i0 >= Z;
+ }
+ function r0(G) {
+ if (u0.length) return u0.pop();
+ if (i0 >= Z) return;
+ let S = G ? G.ignoreUnclosed : !1;
+ switch (((W = T.charCodeAt(i0)), W)) {
+ case r:
+ case s:
+ case a:
+ case u:
+ case o: {
+ N = i0;
+ do ((N += 1), (W = T.charCodeAt(N)));
+ while (W === s || W === r || W === a || W === u || W === o);
+ ((k = ["space", T.slice(i0, N)]), (i0 = N - 1));
+ break;
+ }
+ case c:
+ case b:
+ case M:
+ case d:
+ case z:
+ case O:
+ case p: {
+ let R = String.fromCharCode(W);
+ k = [R, R, i0];
+ break;
+ }
+ case l: {
+ if (
+ ((Y = M0.length ? M0.pop()[1] : ""),
+ (n0 = T.charCodeAt(i0 + 1)),
+ Y === "url" &&
+ n0 !== t &&
+ n0 !== e &&
+ n0 !== s &&
+ n0 !== r &&
+ n0 !== a &&
+ n0 !== o &&
+ n0 !== u)
+ ) {
+ N = i0;
+ do {
+ if (((F = !1), (N = T.indexOf(")", N + 1)), N === -1))
+ if (y || S) {
+ N = i0;
+ break;
+ } else P("bracket");
+ for (Q = N; T.charCodeAt(Q - 1) === n; ) ((Q -= 1), (F = !F));
+ } while (F);
+ ((k = ["brackets", T.slice(i0, N + 1), i0, N]), (i0 = N));
+ } else
+ ((N = T.indexOf(")", i0 + 1)),
+ (x = T.slice(i0, N + 1)),
+ N === -1 || q.test(x)
+ ? (k = ["(", "(", i0])
+ : ((k = ["brackets", x, i0, N]), (i0 = N)));
+ break;
+ }
+ case t:
+ case e: {
+ ((I = W === t ? "'" : '"'), (N = i0));
+ do {
+ if (((F = !1), (N = T.indexOf(I, N + 1)), N === -1))
+ if (y || S) {
+ N = i0 + 1;
+ break;
+ } else P("string");
+ for (Q = N; T.charCodeAt(Q - 1) === n; ) ((Q -= 1), (F = !F));
+ } while (F);
+ ((k = ["string", T.slice(i0, N + 1), i0, N]), (i0 = N));
+ break;
+ }
+ case g: {
+ ((A.lastIndex = i0 + 1),
+ A.test(T),
+ A.lastIndex === 0 ? (N = T.length - 1) : (N = A.lastIndex - 2),
+ (k = ["at-word", T.slice(i0, N + 1), i0, N]),
+ (i0 = N));
+ break;
+ }
+ case n: {
+ for (N = i0, B = !0; T.charCodeAt(N + 1) === n; )
+ ((N += 1), (B = !B));
+ if (
+ ((W = T.charCodeAt(N + 1)),
+ B &&
+ W !== i &&
+ W !== s &&
+ W !== r &&
+ W !== a &&
+ W !== u &&
+ W !== o &&
+ ((N += 1), v.test(T.charAt(N))))
+ ) {
+ for (; v.test(T.charAt(N + 1)); ) N += 1;
+ T.charCodeAt(N + 1) === s && (N += 1);
+ }
+ ((k = ["word", T.slice(i0, N + 1), i0, N]), (i0 = N));
+ break;
+ }
+ default: {
+ W === i && T.charCodeAt(i0 + 1) === f
+ ? ((N = T.indexOf("*/", i0 + 2) + 1),
+ N === 0 && (y || S ? (N = T.length) : P("comment")),
+ (k = ["comment", T.slice(i0, N + 1), i0, N]),
+ (i0 = N))
+ : ((h.lastIndex = i0 + 1),
+ h.test(T),
+ h.lastIndex === 0 ? (N = T.length - 1) : (N = h.lastIndex - 2),
+ (k = ["word", T.slice(i0, N + 1), i0, N]),
+ M0.push(k),
+ (i0 = N));
+ break;
+ }
+ }
+ return (i0++, k);
+ }
+ function c0(G) {
+ u0.push(G);
+ }
+ return { back: c0, endOfFile: t0, nextToken: r0, position: b0 };
+ }),
+ lb
+ );
+}
+var Mb, Mh;
+function h50() {
+ if (Mh) return Mb;
+ Mh = 1;
+ let t = PM(),
+ e = O2(),
+ n = h2(),
+ i = uo(),
+ r = FM(),
+ s = O50();
+ const o = { empty: !0, space: !0 };
+ function a(c) {
+ for (let b = c.length - 1; b >= 0; b--) {
+ let l = c[b],
+ p = l[3] || l[2];
+ if (p) return p;
+ }
+ }
+ class u {
+ constructor(b) {
+ ((this.input = b),
+ (this.root = new i()),
+ (this.current = this.root),
+ (this.spaces = ""),
+ (this.semicolon = !1),
+ this.createTokenizer(),
+ (this.root.source = {
+ input: b,
+ start: { column: 1, line: 1, offset: 0 },
+ }));
+ }
+ atrule(b) {
+ let l = new t();
+ ((l.name = b[1].slice(1)),
+ l.name === "" && this.unnamedAtrule(l, b),
+ this.init(l, b[2]));
+ let p,
+ M,
+ d,
+ O = !1,
+ f = !1,
+ z = [],
+ g = [];
+ for (; !this.tokenizer.endOfFile(); ) {
+ if (
+ ((b = this.tokenizer.nextToken()),
+ (p = b[0]),
+ p === "(" || p === "["
+ ? g.push(p === "(" ? ")" : "]")
+ : p === "{" && g.length > 0
+ ? g.push("}")
+ : p === g[g.length - 1] && g.pop(),
+ g.length === 0)
+ )
+ if (p === ";") {
+ ((l.source.end = this.getPosition(b[2])),
+ l.source.end.offset++,
+ (this.semicolon = !0));
+ break;
+ } else if (p === "{") {
+ f = !0;
+ break;
+ } else if (p === "}") {
+ if (z.length > 0) {
+ for (d = z.length - 1, M = z[d]; M && M[0] === "space"; )
+ M = z[--d];
+ M &&
+ ((l.source.end = this.getPosition(M[3] || M[2])),
+ l.source.end.offset++);
+ }
+ this.end(b);
+ break;
+ } else z.push(b);
+ else z.push(b);
+ if (this.tokenizer.endOfFile()) {
+ O = !0;
+ break;
+ }
+ }
+ ((l.raws.between = this.spacesAndCommentsFromEnd(z)),
+ z.length
+ ? ((l.raws.afterName = this.spacesAndCommentsFromStart(z)),
+ this.raw(l, "params", z),
+ O &&
+ ((b = z[z.length - 1]),
+ (l.source.end = this.getPosition(b[3] || b[2])),
+ l.source.end.offset++,
+ (this.spaces = l.raws.between),
+ (l.raws.between = "")))
+ : ((l.raws.afterName = ""), (l.params = "")),
+ f && ((l.nodes = []), (this.current = l)));
+ }
+ checkMissedSemicolon(b) {
+ let l = this.colon(b);
+ if (l === !1) return;
+ let p = 0,
+ M;
+ for (
+ let d = l - 1;
+ d >= 0 && ((M = b[d]), !(M[0] !== "space" && ((p += 1), p === 2)));
+ d--
+ );
+ throw this.input.error(
+ "Missed semicolon",
+ M[0] === "word" ? M[3] + 1 : M[2],
+ );
+ }
+ colon(b) {
+ let l = 0,
+ p,
+ M,
+ d;
+ for (let [O, f] of b.entries()) {
+ if (
+ ((M = f),
+ (d = M[0]),
+ d === "(" && (l += 1),
+ d === ")" && (l -= 1),
+ l === 0 && d === ":")
+ )
+ if (!p) this.doubleColon(M);
+ else {
+ if (p[0] === "word" && p[1] === "progid") continue;
+ return O;
+ }
+ p = M;
+ }
+ return !1;
+ }
+ comment(b) {
+ let l = new e();
+ (this.init(l, b[2]),
+ (l.source.end = this.getPosition(b[3] || b[2])),
+ l.source.end.offset++);
+ let p = b[1].slice(2, -2);
+ if (/^\s*$/.test(p))
+ ((l.text = ""), (l.raws.left = p), (l.raws.right = ""));
+ else {
+ let M = p.match(/^(\s*)([^]*\S)(\s*)$/);
+ ((l.text = M[2]), (l.raws.left = M[1]), (l.raws.right = M[3]));
+ }
+ }
+ createTokenizer() {
+ this.tokenizer = s(this.input);
+ }
+ decl(b, l) {
+ let p = new n();
+ this.init(p, b[0][2]);
+ let M = b[b.length - 1];
+ for (
+ M[0] === ";" && ((this.semicolon = !0), b.pop()),
+ p.source.end = this.getPosition(M[3] || M[2] || a(b)),
+ p.source.end.offset++;
+ b[0][0] !== "word";
+ )
+ (b.length === 1 && this.unknownWord(b),
+ (p.raws.before += b.shift()[1]));
+ for (
+ p.source.start = this.getPosition(b[0][2]), p.prop = "";
+ b.length;
+ ) {
+ let g = b[0][0];
+ if (g === ":" || g === "space" || g === "comment") break;
+ p.prop += b.shift()[1];
+ }
+ p.raws.between = "";
+ let d;
+ for (; b.length; )
+ if (((d = b.shift()), d[0] === ":")) {
+ p.raws.between += d[1];
+ break;
+ } else
+ (d[0] === "word" && /\w/.test(d[1]) && this.unknownWord([d]),
+ (p.raws.between += d[1]));
+ (p.prop[0] === "_" || p.prop[0] === "*") &&
+ ((p.raws.before += p.prop[0]), (p.prop = p.prop.slice(1)));
+ let O = [],
+ f;
+ for (; b.length && ((f = b[0][0]), !(f !== "space" && f !== "comment")); )
+ O.push(b.shift());
+ this.precheckMissedSemicolon(b);
+ for (let g = b.length - 1; g >= 0; g--) {
+ if (((d = b[g]), d[1].toLowerCase() === "!important")) {
+ p.important = !0;
+ let A = this.stringFrom(b, g);
+ ((A = this.spacesFromEnd(b) + A),
+ A !== " !important" && (p.raws.important = A));
+ break;
+ } else if (d[1].toLowerCase() === "important") {
+ let A = b.slice(0),
+ h = "";
+ for (let q = g; q > 0; q--) {
+ let v = A[q][0];
+ if (h.trim().startsWith("!") && v !== "space") break;
+ h = A.pop()[1] + h;
+ }
+ h.trim().startsWith("!") &&
+ ((p.important = !0), (p.raws.important = h), (b = A));
+ }
+ if (d[0] !== "space" && d[0] !== "comment") break;
+ }
+ (b.some((g) => g[0] !== "space" && g[0] !== "comment") &&
+ ((p.raws.between += O.map((g) => g[1]).join("")), (O = [])),
+ this.raw(p, "value", O.concat(b), l),
+ p.value.includes(":") && !l && this.checkMissedSemicolon(b));
+ }
+ doubleColon(b) {
+ throw this.input.error(
+ "Double colon",
+ { offset: b[2] },
+ { offset: b[2] + b[1].length },
+ );
+ }
+ emptyRule(b) {
+ let l = new r();
+ (this.init(l, b[2]),
+ (l.selector = ""),
+ (l.raws.between = ""),
+ (this.current = l));
+ }
+ end(b) {
+ (this.current.nodes &&
+ this.current.nodes.length &&
+ (this.current.raws.semicolon = this.semicolon),
+ (this.semicolon = !1),
+ (this.current.raws.after =
+ (this.current.raws.after || "") + this.spaces),
+ (this.spaces = ""),
+ this.current.parent
+ ? ((this.current.source.end = this.getPosition(b[2])),
+ this.current.source.end.offset++,
+ (this.current = this.current.parent))
+ : this.unexpectedClose(b));
+ }
+ endFile() {
+ (this.current.parent && this.unclosedBlock(),
+ this.current.nodes &&
+ this.current.nodes.length &&
+ (this.current.raws.semicolon = this.semicolon),
+ (this.current.raws.after =
+ (this.current.raws.after || "") + this.spaces),
+ (this.root.source.end = this.getPosition(this.tokenizer.position())));
+ }
+ freeSemicolon(b) {
+ if (((this.spaces += b[1]), this.current.nodes)) {
+ let l = this.current.nodes[this.current.nodes.length - 1];
+ l &&
+ l.type === "rule" &&
+ !l.raws.ownSemicolon &&
+ ((l.raws.ownSemicolon = this.spaces),
+ (this.spaces = ""),
+ (l.source.end = this.getPosition(b[2])),
+ (l.source.end.offset += l.raws.ownSemicolon.length));
+ }
+ }
+ getPosition(b) {
+ let l = this.input.fromOffset(b);
+ return { column: l.col, line: l.line, offset: b };
+ }
+ init(b, l) {
+ (this.current.push(b),
+ (b.source = { input: this.input, start: this.getPosition(l) }),
+ (b.raws.before = this.spaces),
+ (this.spaces = ""),
+ b.type !== "comment" && (this.semicolon = !1));
+ }
+ other(b) {
+ let l = !1,
+ p = null,
+ M = !1,
+ d = null,
+ O = [],
+ f = b[1].startsWith("--"),
+ z = [],
+ g = b;
+ for (; g; ) {
+ if (((p = g[0]), z.push(g), p === "(" || p === "["))
+ (d || (d = g), O.push(p === "(" ? ")" : "]"));
+ else if (f && M && p === "{") (d || (d = g), O.push("}"));
+ else if (O.length === 0)
+ if (p === ";")
+ if (M) {
+ this.decl(z, f);
+ return;
+ } else break;
+ else if (p === "{") {
+ this.rule(z);
+ return;
+ } else if (p === "}") {
+ (this.tokenizer.back(z.pop()), (l = !0));
+ break;
+ } else p === ":" && (M = !0);
+ else p === O[O.length - 1] && (O.pop(), O.length === 0 && (d = null));
+ g = this.tokenizer.nextToken();
+ }
+ if (
+ (this.tokenizer.endOfFile() && (l = !0),
+ O.length > 0 && this.unclosedBracket(d),
+ l && M)
+ ) {
+ if (!f)
+ for (
+ ;
+ z.length &&
+ ((g = z[z.length - 1][0]), !(g !== "space" && g !== "comment"));
+ )
+ this.tokenizer.back(z.pop());
+ this.decl(z, f);
+ } else this.unknownWord(z);
+ }
+ parse() {
+ let b;
+ for (; !this.tokenizer.endOfFile(); )
+ switch (((b = this.tokenizer.nextToken()), b[0])) {
+ case "space":
+ this.spaces += b[1];
+ break;
+ case ";":
+ this.freeSemicolon(b);
+ break;
+ case "}":
+ this.end(b);
+ break;
+ case "comment":
+ this.comment(b);
+ break;
+ case "at-word":
+ this.atrule(b);
+ break;
+ case "{":
+ this.emptyRule(b);
+ break;
+ default:
+ this.other(b);
+ break;
+ }
+ this.endFile();
+ }
+ precheckMissedSemicolon() {}
+ raw(b, l, p, M) {
+ let d,
+ O,
+ f = p.length,
+ z = "",
+ g = !0,
+ A,
+ h;
+ for (let q = 0; q < f; q += 1)
+ ((d = p[q]),
+ (O = d[0]),
+ O === "space" && q === f - 1 && !M
+ ? (g = !1)
+ : O === "comment"
+ ? ((h = p[q - 1] ? p[q - 1][0] : "empty"),
+ (A = p[q + 1] ? p[q + 1][0] : "empty"),
+ !o[h] && !o[A]
+ ? z.slice(-1) === ","
+ ? (g = !1)
+ : (z += d[1])
+ : (g = !1))
+ : (z += d[1]));
+ if (!g) {
+ let q = p.reduce((v, m) => v + m[1], "");
+ b.raws[l] = { raw: q, value: z };
+ }
+ b[l] = z;
+ }
+ rule(b) {
+ b.pop();
+ let l = new r();
+ (this.init(l, b[0][2]),
+ (l.raws.between = this.spacesAndCommentsFromEnd(b)),
+ this.raw(l, "selector", b),
+ (this.current = l));
+ }
+ spacesAndCommentsFromEnd(b) {
+ let l,
+ p = "";
+ for (
+ ;
+ b.length &&
+ ((l = b[b.length - 1][0]), !(l !== "space" && l !== "comment"));
+ )
+ p = b.pop()[1] + p;
+ return p;
+ }
+ spacesAndCommentsFromStart(b) {
+ let l,
+ p = "";
+ for (; b.length && ((l = b[0][0]), !(l !== "space" && l !== "comment")); )
+ p += b.shift()[1];
+ return p;
+ }
+ spacesFromEnd(b) {
+ let l,
+ p = "";
+ for (; b.length && ((l = b[b.length - 1][0]), l === "space"); )
+ p = b.pop()[1] + p;
+ return p;
+ }
+ stringFrom(b, l) {
+ let p = "";
+ for (let M = l; M < b.length; M++) p += b[M][1];
+ return (b.splice(l, b.length - l), p);
+ }
+ unclosedBlock() {
+ let b = this.current.source.start;
+ throw this.input.error("Unclosed block", b.line, b.column);
+ }
+ unclosedBracket(b) {
+ throw this.input.error(
+ "Unclosed bracket",
+ { offset: b[2] },
+ { offset: b[2] + 1 },
+ );
+ }
+ unexpectedClose(b) {
+ throw this.input.error(
+ "Unexpected }",
+ { offset: b[2] },
+ { offset: b[2] + 1 },
+ );
+ }
+ unknownWord(b) {
+ throw this.input.error(
+ "Unknown word " + b[0][1],
+ { offset: b[0][2] },
+ { offset: b[0][2] + b[0][1].length },
+ );
+ }
+ unnamedAtrule(b, l) {
+ throw this.input.error(
+ "At-rule without name",
+ { offset: l[2] },
+ { offset: l[2] + l[1].length },
+ );
+ }
+ }
+ return ((Mb = u), Mb);
+}
+var db, dh;
+function UM() {
+ if (dh) return db;
+ dh = 1;
+ let t = mi(),
+ e = A2(),
+ n = h50();
+ function i(r, s) {
+ let o = new e(r, s),
+ a = new n(o);
+ try {
+ a.parse();
+ } catch (u) {
+ throw u;
+ }
+ return a.root;
+ }
+ return ((db = i), (i.default = i), t.registerParse(i), db);
+}
+var fb, fh;
+function E6() {
+ if (fh) return fb;
+ fh = 1;
+ class t {
+ constructor(n, i = {}) {
+ if (((this.type = "warning"), (this.text = n), i.node && i.node.source)) {
+ let r = i.node.rangeBy(i);
+ ((this.line = r.start.line),
+ (this.column = r.start.column),
+ (this.endLine = r.end.line),
+ (this.endColumn = r.end.column));
+ }
+ for (let r in i) this[r] = i[r];
+ }
+ toString() {
+ return this.node
+ ? this.node.error(this.text, {
+ index: this.index,
+ plugin: this.plugin,
+ word: this.word,
+ }).message
+ : this.plugin
+ ? this.plugin + ": " + this.text
+ : this.text;
+ }
+ }
+ return ((fb = t), (t.default = t), fb);
+}
+var zb, zh;
+function $M() {
+ if (zh) return zb;
+ zh = 1;
+ let t = E6();
+ class e {
+ get content() {
+ return this.css;
+ }
+ constructor(i, r, s) {
+ ((this.processor = i),
+ (this.messages = []),
+ (this.root = r),
+ (this.opts = s),
+ (this.css = ""),
+ (this.map = void 0));
+ }
+ toString() {
+ return this.css;
+ }
+ warn(i, r = {}) {
+ r.plugin ||
+ (this.lastPlugin &&
+ this.lastPlugin.postcssPlugin &&
+ (r.plugin = this.lastPlugin.postcssPlugin));
+ let s = new t(i, r);
+ return (this.messages.push(s), s);
+ }
+ warnings() {
+ return this.messages.filter((i) => i.type === "warning");
+ }
+ }
+ return ((zb = e), (e.default = e), zb);
+}
+var Ob, Oh;
+function T6() {
+ if (Oh) return Ob;
+ Oh = 1;
+ let t = mi(),
+ e = XM(),
+ n = v6(),
+ i = UM(),
+ r = $M(),
+ s = uo(),
+ o = f2(),
+ { isClean: a, my: u } = kM();
+ const c = {
+ atrule: "AtRule",
+ comment: "Comment",
+ decl: "Declaration",
+ document: "Document",
+ root: "Root",
+ rule: "Rule",
+ },
+ b = {
+ AtRule: !0,
+ AtRuleExit: !0,
+ Comment: !0,
+ CommentExit: !0,
+ Declaration: !0,
+ DeclarationExit: !0,
+ Document: !0,
+ DocumentExit: !0,
+ Once: !0,
+ OnceExit: !0,
+ postcssPlugin: !0,
+ prepare: !0,
+ Root: !0,
+ RootExit: !0,
+ Rule: !0,
+ RuleExit: !0,
+ },
+ l = { Once: !0, postcssPlugin: !0, prepare: !0 },
+ p = 0;
+ function M(A) {
+ return typeof A == "object" && typeof A.then == "function";
+ }
+ function d(A) {
+ let h = !1,
+ q = c[A.type];
+ return (
+ A.type === "decl"
+ ? (h = A.prop.toLowerCase())
+ : A.type === "atrule" && (h = A.name.toLowerCase()),
+ h && A.append
+ ? [q, q + "-" + h, p, q + "Exit", q + "Exit-" + h]
+ : h
+ ? [q, q + "-" + h, q + "Exit", q + "Exit-" + h]
+ : A.append
+ ? [q, p, q + "Exit"]
+ : [q, q + "Exit"]
+ );
+ }
+ function O(A) {
+ let h;
+ return (
+ A.type === "document"
+ ? (h = ["Document", p, "DocumentExit"])
+ : A.type === "root"
+ ? (h = ["Root", p, "RootExit"])
+ : (h = d(A)),
+ {
+ eventIndex: 0,
+ events: h,
+ iterator: 0,
+ node: A,
+ visitorIndex: 0,
+ visitors: [],
+ }
+ );
+ }
+ function f(A) {
+ return ((A[a] = !1), A.nodes && A.nodes.forEach((h) => f(h)), A);
+ }
+ let z = {};
+ class g {
+ get content() {
+ return this.stringify().content;
+ }
+ get css() {
+ return this.stringify().css;
+ }
+ get map() {
+ return this.stringify().map;
+ }
+ get messages() {
+ return this.sync().messages;
+ }
+ get opts() {
+ return this.result.opts;
+ }
+ get processor() {
+ return this.result.processor;
+ }
+ get root() {
+ return this.sync().root;
+ }
+ get [Symbol.toStringTag]() {
+ return "LazyResult";
+ }
+ constructor(h, q, v) {
+ ((this.stringified = !1), (this.processed = !1));
+ let m;
+ if (
+ typeof q == "object" &&
+ q !== null &&
+ (q.type === "root" || q.type === "document")
+ )
+ m = f(q);
+ else if (q instanceof g || q instanceof r)
+ ((m = f(q.root)),
+ q.map &&
+ (typeof v.map > "u" && (v.map = {}),
+ v.map.inline || (v.map.inline = !1),
+ (v.map.prev = q.map)));
+ else {
+ let E = i;
+ (v.syntax && (E = v.syntax.parse),
+ v.parser && (E = v.parser),
+ E.parse && (E = E.parse));
+ try {
+ m = E(q, v);
+ } catch (_) {
+ ((this.processed = !0), (this.error = _));
+ }
+ m && !m[u] && t.rebuild(m);
+ }
+ ((this.result = new r(h, m, v)),
+ (this.helpers = { ...z, postcss: z, result: this.result }),
+ (this.plugins = this.processor.plugins.map((E) =>
+ typeof E == "object" && E.prepare
+ ? { ...E, ...E.prepare(this.result) }
+ : E,
+ )));
+ }
+ async() {
+ return this.error
+ ? Promise.reject(this.error)
+ : this.processed
+ ? Promise.resolve(this.result)
+ : (this.processing || (this.processing = this.runAsync()),
+ this.processing);
+ }
+ catch(h) {
+ return this.async().catch(h);
+ }
+ finally(h) {
+ return this.async().then(h, h);
+ }
+ getAsyncError() {
+ throw new Error("Use process(css).then(cb) to work with async plugins");
+ }
+ handleError(h, q) {
+ let v = this.result.lastPlugin;
+ try {
+ (q && q.addToError(h),
+ (this.error = h),
+ h.name === "CssSyntaxError" && !h.plugin
+ ? ((h.plugin = v.postcssPlugin), h.setMessage())
+ : v.postcssVersion);
+ } catch (m) {
+ console && console.error && console.error(m);
+ }
+ return h;
+ }
+ prepareVisitors() {
+ this.listeners = {};
+ let h = (q, v, m) => {
+ (this.listeners[v] || (this.listeners[v] = []),
+ this.listeners[v].push([q, m]));
+ };
+ for (let q of this.plugins)
+ if (typeof q == "object")
+ for (let v in q) {
+ if (!b[v] && /^[A-Z]/.test(v))
+ throw new Error(
+ `Unknown event ${v} in ${q.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`,
+ );
+ if (!l[v])
+ if (typeof q[v] == "object")
+ for (let m in q[v])
+ m === "*"
+ ? h(q, v, q[v][m])
+ : h(q, v + "-" + m.toLowerCase(), q[v][m]);
+ else typeof q[v] == "function" && h(q, v, q[v]);
+ }
+ this.hasListener = Object.keys(this.listeners).length > 0;
+ }
+ async runAsync() {
+ this.plugin = 0;
+ for (let h = 0; h < this.plugins.length; h++) {
+ let q = this.plugins[h],
+ v = this.runOnRoot(q);
+ if (M(v))
+ try {
+ await v;
+ } catch (m) {
+ throw this.handleError(m);
+ }
+ }
+ if ((this.prepareVisitors(), this.hasListener)) {
+ let h = this.result.root;
+ for (; !h[a]; ) {
+ h[a] = !0;
+ let q = [O(h)];
+ for (; q.length > 0; ) {
+ let v = this.visitTick(q);
+ if (M(v))
+ try {
+ await v;
+ } catch (m) {
+ let E = q[q.length - 1].node;
+ throw this.handleError(m, E);
+ }
+ }
+ }
+ if (this.listeners.OnceExit)
+ for (let [q, v] of this.listeners.OnceExit) {
+ this.result.lastPlugin = q;
+ try {
+ if (h.type === "document") {
+ let m = h.nodes.map((E) => v(E, this.helpers));
+ await Promise.all(m);
+ } else await v(h, this.helpers);
+ } catch (m) {
+ throw this.handleError(m);
+ }
+ }
+ }
+ return ((this.processed = !0), this.stringify());
+ }
+ runOnRoot(h) {
+ this.result.lastPlugin = h;
+ try {
+ if (typeof h == "object" && h.Once) {
+ if (this.result.root.type === "document") {
+ let q = this.result.root.nodes.map((v) => h.Once(v, this.helpers));
+ return M(q[0]) ? Promise.all(q) : q;
+ }
+ return h.Once(this.result.root, this.helpers);
+ } else if (typeof h == "function")
+ return h(this.result.root, this.result);
+ } catch (q) {
+ throw this.handleError(q);
+ }
+ }
+ stringify() {
+ if (this.error) throw this.error;
+ if (this.stringified) return this.result;
+ ((this.stringified = !0), this.sync());
+ let h = this.result.opts,
+ q = o;
+ (h.syntax && (q = h.syntax.stringify),
+ h.stringifier && (q = h.stringifier),
+ q.stringify && (q = q.stringify));
+ let m = new n(q, this.result.root, this.result.opts).generate();
+ return ((this.result.css = m[0]), (this.result.map = m[1]), this.result);
+ }
+ sync() {
+ if (this.error) throw this.error;
+ if (this.processed) return this.result;
+ if (((this.processed = !0), this.processing)) throw this.getAsyncError();
+ for (let h of this.plugins) {
+ let q = this.runOnRoot(h);
+ if (M(q)) throw this.getAsyncError();
+ }
+ if ((this.prepareVisitors(), this.hasListener)) {
+ let h = this.result.root;
+ for (; !h[a]; ) ((h[a] = !0), this.walkSync(h));
+ if (this.listeners.OnceExit)
+ if (h.type === "document")
+ for (let q of h.nodes) this.visitSync(this.listeners.OnceExit, q);
+ else this.visitSync(this.listeners.OnceExit, h);
+ }
+ return this.result;
+ }
+ then(h, q) {
+ return this.async().then(h, q);
+ }
+ toString() {
+ return this.css;
+ }
+ visitSync(h, q) {
+ for (let [v, m] of h) {
+ this.result.lastPlugin = v;
+ let E;
+ try {
+ E = m(q, this.helpers);
+ } catch (_) {
+ throw this.handleError(_, q.proxyOf);
+ }
+ if (q.type !== "root" && q.type !== "document" && !q.parent) return !0;
+ if (M(E)) throw this.getAsyncError();
+ }
+ }
+ visitTick(h) {
+ let q = h[h.length - 1],
+ { node: v, visitors: m } = q;
+ if (v.type !== "root" && v.type !== "document" && !v.parent) {
+ h.pop();
+ return;
+ }
+ if (m.length > 0 && q.visitorIndex < m.length) {
+ let [_, T] = m[q.visitorIndex];
+ ((q.visitorIndex += 1),
+ q.visitorIndex === m.length &&
+ ((q.visitors = []), (q.visitorIndex = 0)),
+ (this.result.lastPlugin = _));
+ try {
+ return T(v.toProxy(), this.helpers);
+ } catch (y) {
+ throw this.handleError(y, v);
+ }
+ }
+ if (q.iterator !== 0) {
+ let _ = q.iterator,
+ T;
+ for (; (T = v.nodes[v.indexes[_]]); )
+ if (((v.indexes[_] += 1), !T[a])) {
+ ((T[a] = !0), h.push(O(T)));
+ return;
+ }
+ ((q.iterator = 0), delete v.indexes[_]);
+ }
+ let E = q.events;
+ for (; q.eventIndex < E.length; ) {
+ let _ = E[q.eventIndex];
+ if (((q.eventIndex += 1), _ === p)) {
+ v.nodes &&
+ v.nodes.length &&
+ ((v[a] = !0), (q.iterator = v.getIterator()));
+ return;
+ } else if (this.listeners[_]) {
+ q.visitors = this.listeners[_];
+ return;
+ }
+ }
+ h.pop();
+ }
+ walkSync(h) {
+ h[a] = !0;
+ let q = d(h);
+ for (let v of q)
+ if (v === p)
+ h.nodes &&
+ h.each((m) => {
+ m[a] || this.walkSync(m);
+ });
+ else {
+ let m = this.listeners[v];
+ if (m && this.visitSync(m, h.toProxy())) return;
+ }
+ }
+ warnings() {
+ return this.sync().warnings();
+ }
+ }
+ return (
+ (g.registerPostcss = (A) => {
+ z = A;
+ }),
+ (Ob = g),
+ (g.default = g),
+ s.registerLazyResult(g),
+ e.registerLazyResult(g),
+ Ob
+ );
+}
+var hb, hh;
+function A50() {
+ if (hh) return hb;
+ hh = 1;
+ let t = v6(),
+ e = UM();
+ const n = $M();
+ let i = f2();
+ class r {
+ get content() {
+ return this.result.css;
+ }
+ get css() {
+ return this.result.css;
+ }
+ get map() {
+ return this.result.map;
+ }
+ get messages() {
+ return [];
+ }
+ get opts() {
+ return this.result.opts;
+ }
+ get processor() {
+ return this.result.processor;
+ }
+ get root() {
+ if (this._root) return this._root;
+ let o,
+ a = e;
+ try {
+ o = a(this._css, this._opts);
+ } catch (u) {
+ this.error = u;
+ }
+ if (this.error) throw this.error;
+ return ((this._root = o), o);
+ }
+ get [Symbol.toStringTag]() {
+ return "NoWorkResult";
+ }
+ constructor(o, a, u) {
+ ((a = a.toString()),
+ (this.stringified = !1),
+ (this._processor = o),
+ (this._css = a),
+ (this._opts = u),
+ (this._map = void 0));
+ let c,
+ b = i;
+ ((this.result = new n(this._processor, c, this._opts)),
+ (this.result.css = a));
+ let l = this;
+ Object.defineProperty(this.result, "root", {
+ get() {
+ return l.root;
+ },
+ });
+ let p = new t(b, c, this._opts, a);
+ if (p.isMap()) {
+ let [M, d] = p.generate();
+ (M && (this.result.css = M), d && (this.result.map = d));
+ } else (p.clearAnnotation(), (this.result.css = p.css));
+ }
+ async() {
+ return this.error
+ ? Promise.reject(this.error)
+ : Promise.resolve(this.result);
+ }
+ catch(o) {
+ return this.async().catch(o);
+ }
+ finally(o) {
+ return this.async().then(o, o);
+ }
+ sync() {
+ if (this.error) throw this.error;
+ return this.result;
+ }
+ then(o, a) {
+ return this.async().then(o, a);
+ }
+ toString() {
+ return this._css;
+ }
+ warnings() {
+ return [];
+ }
+ }
+ return ((hb = r), (r.default = r), hb);
+}
+var Ab, Ah;
+function q50() {
+ if (Ah) return Ab;
+ Ah = 1;
+ let t = XM(),
+ e = T6(),
+ n = A50(),
+ i = uo();
+ class r {
+ constructor(o = []) {
+ ((this.version = "8.5.6"), (this.plugins = this.normalize(o)));
+ }
+ normalize(o) {
+ let a = [];
+ for (let u of o)
+ if (
+ (u.postcss === !0 ? (u = u()) : u.postcss && (u = u.postcss),
+ typeof u == "object" && Array.isArray(u.plugins))
+ )
+ a = a.concat(u.plugins);
+ else if (typeof u == "object" && u.postcssPlugin) a.push(u);
+ else if (typeof u == "function") a.push(u);
+ else if (!(typeof u == "object" && (u.parse || u.stringify)))
+ throw new Error(u + " is not a PostCSS plugin");
+ return a;
+ }
+ process(o, a = {}) {
+ return !this.plugins.length && !a.parser && !a.stringifier && !a.syntax
+ ? new n(this, o, a)
+ : new e(this, o, a);
+ }
+ use(o) {
+ return ((this.plugins = this.plugins.concat(this.normalize([o]))), this);
+ }
+ }
+ return (
+ (Ab = r),
+ (r.default = r),
+ i.registerProcessor(r),
+ t.registerProcessor(r),
+ Ab
+ );
+}
+var qb, qh;
+function g50() {
+ if (qh) return qb;
+ qh = 1;
+ var t = {};
+ let e = PM(),
+ n = O2(),
+ i = mi(),
+ r = CM(),
+ s = h2(),
+ o = XM(),
+ a = z50(),
+ u = A2(),
+ c = T6(),
+ b = L6(),
+ l = z2(),
+ p = UM(),
+ M = q50(),
+ d = $M(),
+ O = uo(),
+ f = FM(),
+ z = f2(),
+ g = E6();
+ function A(...h) {
+ return (h.length === 1 && Array.isArray(h[0]) && (h = h[0]), new M(h));
+ }
+ return (
+ (A.plugin = function (q, v) {
+ let m = !1;
+ function E(...T) {
+ console &&
+ console.warn &&
+ !m &&
+ ((m = !0),
+ console.warn(
+ q +
+ `: postcss.plugin was deprecated. Migration guide:
+https://evilmartians.com/chronicles/postcss-8-plugin-migration`,
+ ),
+ t.LANG &&
+ t.LANG.startsWith("cn") &&
+ console.warn(
+ q +
+ `: 里面 postcss.plugin 被弃用. 迁移指南:
+https://www.w3ctech.com/topic/2226`,
+ ));
+ let y = v(...T);
+ return ((y.postcssPlugin = q), (y.postcssVersion = new M().version), y);
+ }
+ let _;
+ return (
+ Object.defineProperty(E, "postcss", {
+ get() {
+ return (_ || (_ = E()), _);
+ },
+ }),
+ (E.process = function (T, y, W) {
+ return A([E(W)]).process(T, y);
+ }),
+ E
+ );
+ }),
+ (A.stringify = z),
+ (A.parse = p),
+ (A.fromJSON = a),
+ (A.list = b),
+ (A.comment = (h) => new n(h)),
+ (A.atRule = (h) => new e(h)),
+ (A.decl = (h) => new s(h)),
+ (A.rule = (h) => new f(h)),
+ (A.root = (h) => new O(h)),
+ (A.document = (h) => new o(h)),
+ (A.CssSyntaxError = r),
+ (A.Declaration = s),
+ (A.Container = i),
+ (A.Processor = M),
+ (A.Document = o),
+ (A.Comment = n),
+ (A.Warning = g),
+ (A.AtRule = e),
+ (A.Result = d),
+ (A.Input = u),
+ (A.Rule = f),
+ (A.Root = O),
+ (A.Node = l),
+ c.registerPostcss(A),
+ (qb = A),
+ (A.default = A),
+ qb
+ );
+}
+var gb, gh;
+function m50() {
+ if (gh) return gb;
+ gh = 1;
+ const t = o50(),
+ e = a50(),
+ { isPlainObject: n } = c50(),
+ i = u50(),
+ r = p50(),
+ { parse: s } = g50(),
+ o = [
+ "img",
+ "audio",
+ "video",
+ "picture",
+ "svg",
+ "object",
+ "map",
+ "iframe",
+ "embed",
+ ],
+ a = ["script", "style"];
+ function u(f, z) {
+ f &&
+ Object.keys(f).forEach(function (g) {
+ z(f[g], g);
+ });
+ }
+ function c(f, z) {
+ return {}.hasOwnProperty.call(f, z);
+ }
+ function b(f, z) {
+ const g = [];
+ return (
+ u(f, function (A) {
+ z(A) && g.push(A);
+ }),
+ g
+ );
+ }
+ function l(f) {
+ for (const z in f) if (c(f, z)) return !1;
+ return !0;
+ }
+ function p(f) {
+ return f
+ .map(function (z) {
+ if (!z.url) throw new Error("URL missing");
+ return (
+ z.url +
+ (z.w ? ` ${z.w}w` : "") +
+ (z.h ? ` ${z.h}h` : "") +
+ (z.d ? ` ${z.d}x` : "")
+ );
+ })
+ .join(", ");
+ }
+ gb = d;
+ const M = /^[^\0\t\n\f\r /<=>]+$/;
+ function d(f, z, g) {
+ if (f == null) return "";
+ typeof f == "number" && (f = f.toString());
+ let A = "",
+ h = "";
+ function q(G, S) {
+ const R = this;
+ ((this.tag = G),
+ (this.attribs = S || {}),
+ (this.tagPosition = A.length),
+ (this.text = ""),
+ (this.openingTagLength = 0),
+ (this.mediaChildren = []),
+ (this.updateParentNodeText = function () {
+ if (I.length) {
+ const w = I[I.length - 1];
+ w.text += R.text;
+ }
+ }),
+ (this.updateParentNodeMediaChildren = function () {
+ I.length &&
+ o.includes(this.tag) &&
+ I[I.length - 1].mediaChildren.push(this.tag);
+ }));
+ }
+ ((z = Object.assign({}, d.defaults, z)),
+ (z.parser = Object.assign({}, O, z.parser)));
+ const v = function (G) {
+ return z.allowedTags === !1 || (z.allowedTags || []).indexOf(G) > -1;
+ };
+ a.forEach(function (G) {
+ v(G) &&
+ !z.allowVulnerableTags &&
+ console.warn(`
+
+⚠️ Your \`allowedTags\` option includes, \`${G}\`, which is inherently
+vulnerable to XSS attacks. Please remove it from \`allowedTags\`.
+Or, to disable this warning, add the \`allowVulnerableTags\` option
+and ensure you are accounting for this risk.
+
+`);
+ });
+ const m = z.nonTextTags || ["script", "style", "textarea", "option"];
+ let E, _;
+ z.allowedAttributes &&
+ ((E = {}),
+ (_ = {}),
+ u(z.allowedAttributes, function (G, S) {
+ E[S] = [];
+ const R = [];
+ (G.forEach(function (w) {
+ typeof w == "string" && w.indexOf("*") >= 0
+ ? R.push(e(w).replace(/\\\*/g, ".*"))
+ : E[S].push(w);
+ }),
+ R.length && (_[S] = new RegExp("^(" + R.join("|") + ")$")));
+ }));
+ const T = {},
+ y = {},
+ W = {};
+ u(z.allowedClasses, function (G, S) {
+ if (
+ (E && (c(E, S) || (E[S] = []), E[S].push("class")),
+ (T[S] = G),
+ Array.isArray(G))
+ ) {
+ const R = [];
+ ((T[S] = []),
+ (W[S] = []),
+ G.forEach(function (w) {
+ typeof w == "string" && w.indexOf("*") >= 0
+ ? R.push(e(w).replace(/\\\*/g, ".*"))
+ : w instanceof RegExp
+ ? W[S].push(w)
+ : T[S].push(w);
+ }),
+ R.length && (y[S] = new RegExp("^(" + R.join("|") + ")$")));
+ }
+ });
+ const x = {};
+ let B;
+ u(z.transformTags, function (G, S) {
+ let R;
+ (typeof G == "function"
+ ? (R = G)
+ : typeof G == "string" && (R = d.simpleTransform(G)),
+ S === "*" ? (B = R) : (x[S] = R));
+ });
+ let N,
+ I,
+ k,
+ F,
+ Q,
+ n0,
+ Y = !1;
+ i0();
+ const Z = new t.Parser(
+ {
+ onopentag: function (G, S) {
+ if (
+ (z.onOpenTag && z.onOpenTag(G, S),
+ z.enforceHtmlBoundary && G === "html" && i0(),
+ Q)
+ ) {
+ n0++;
+ return;
+ }
+ const R = new q(G, S);
+ I.push(R);
+ let w = !1;
+ const D = !!R.text;
+ let C;
+ if (
+ (c(x, G) &&
+ ((C = x[G](G, S)),
+ (R.attribs = S = C.attribs),
+ C.text !== void 0 && (R.innerText = C.text),
+ G !== C.tagName &&
+ ((R.name = G = C.tagName), (F[N] = C.tagName))),
+ B &&
+ ((C = B(G, S)),
+ (R.attribs = S = C.attribs),
+ G !== C.tagName &&
+ ((R.name = G = C.tagName), (F[N] = C.tagName))),
+ (!v(G) ||
+ (z.disallowedTagsMode === "recursiveEscape" && !l(k)) ||
+ (z.nestingLimit != null && N >= z.nestingLimit)) &&
+ ((w = !0),
+ (k[N] = !0),
+ (z.disallowedTagsMode === "discard" ||
+ z.disallowedTagsMode === "completelyDiscard") &&
+ m.indexOf(G) !== -1 &&
+ ((Q = !0), (n0 = 1))),
+ N++,
+ w)
+ ) {
+ if (
+ z.disallowedTagsMode === "discard" ||
+ z.disallowedTagsMode === "completelyDiscard"
+ ) {
+ if (R.innerText && !D) {
+ const j = M0(R.innerText);
+ (z.textFilter ? (A += z.textFilter(j, G)) : (A += j), (Y = !0));
+ }
+ return;
+ }
+ ((h = A), (A = ""));
+ }
+ ((A += "<" + G),
+ G === "script" &&
+ (z.allowedScriptHostnames || z.allowedScriptDomains) &&
+ (R.innerText = ""),
+ w &&
+ (z.disallowedTagsMode === "escape" ||
+ z.disallowedTagsMode === "recursiveEscape") &&
+ z.preserveEscapedAttributes
+ ? u(S, function (j, H) {
+ A += " " + H + '="' + M0(j || "", !0) + '"';
+ })
+ : (!E || c(E, G) || E["*"]) &&
+ u(S, function (j, H) {
+ if (!M.test(H)) {
+ delete R.attribs[H];
+ return;
+ }
+ if (
+ j === "" &&
+ !z.allowedEmptyAttributes.includes(H) &&
+ (z.nonBooleanAttributes.includes(H) ||
+ z.nonBooleanAttributes.includes("*"))
+ ) {
+ delete R.attribs[H];
+ return;
+ }
+ let K = !1;
+ if (
+ !E ||
+ (c(E, G) && E[G].indexOf(H) !== -1) ||
+ (E["*"] && E["*"].indexOf(H) !== -1) ||
+ (c(_, G) && _[G].test(H)) ||
+ (_["*"] && _["*"].test(H))
+ )
+ K = !0;
+ else if (E && E[G]) {
+ for (const o0 of E[G])
+ if (n(o0) && o0.name && o0.name === H) {
+ K = !0;
+ let s0 = "";
+ if (o0.multiple === !0) {
+ const d0 = j.split(" ");
+ for (const O0 of d0)
+ o0.values.indexOf(O0) !== -1 &&
+ (s0 === "" ? (s0 = O0) : (s0 += " " + O0));
+ } else o0.values.indexOf(j) >= 0 && (s0 = j);
+ j = s0;
+ }
+ }
+ if (K) {
+ if (
+ z.allowedSchemesAppliedToAttributes.indexOf(H) !== -1 &&
+ u0(G, j)
+ ) {
+ delete R.attribs[H];
+ return;
+ }
+ if (G === "script" && H === "src") {
+ let o0 = !0;
+ try {
+ const s0 = b0(j);
+ if (
+ z.allowedScriptHostnames ||
+ z.allowedScriptDomains
+ ) {
+ const d0 = (z.allowedScriptHostnames || []).find(
+ function (q0) {
+ return q0 === s0.url.hostname;
+ },
+ ),
+ O0 = (z.allowedScriptDomains || []).find(
+ function (q0) {
+ return (
+ s0.url.hostname === q0 ||
+ s0.url.hostname.endsWith(`.${q0}`)
+ );
+ },
+ );
+ o0 = d0 || O0;
+ }
+ } catch {
+ o0 = !1;
+ }
+ if (!o0) {
+ delete R.attribs[H];
+ return;
+ }
+ }
+ if (G === "iframe" && H === "src") {
+ let o0 = !0;
+ try {
+ const s0 = b0(j);
+ if (s0.isRelativeUrl)
+ o0 = c(z, "allowIframeRelativeUrls")
+ ? z.allowIframeRelativeUrls
+ : !z.allowedIframeHostnames &&
+ !z.allowedIframeDomains;
+ else if (
+ z.allowedIframeHostnames ||
+ z.allowedIframeDomains
+ ) {
+ const d0 = (z.allowedIframeHostnames || []).find(
+ function (q0) {
+ return q0 === s0.url.hostname;
+ },
+ ),
+ O0 = (z.allowedIframeDomains || []).find(
+ function (q0) {
+ return (
+ s0.url.hostname === q0 ||
+ s0.url.hostname.endsWith(`.${q0}`)
+ );
+ },
+ );
+ o0 = d0 || O0;
+ }
+ } catch {
+ o0 = !1;
+ }
+ if (!o0) {
+ delete R.attribs[H];
+ return;
+ }
+ }
+ if (H === "srcset")
+ try {
+ let o0 = r(j);
+ if (
+ (o0.forEach(function (s0) {
+ u0("srcset", s0.url) && (s0.evil = !0);
+ }),
+ (o0 = b(o0, function (s0) {
+ return !s0.evil;
+ })),
+ o0.length)
+ )
+ ((j = p(
+ b(o0, function (s0) {
+ return !s0.evil;
+ }),
+ )),
+ (R.attribs[H] = j));
+ else {
+ delete R.attribs[H];
+ return;
+ }
+ } catch {
+ delete R.attribs[H];
+ return;
+ }
+ if (H === "class") {
+ const o0 = T[G],
+ s0 = T["*"],
+ d0 = y[G],
+ O0 = W[G],
+ q0 = W["*"],
+ N0 = y["*"],
+ x0 = [d0, N0].concat(O0, q0).filter(function (p1) {
+ return p1;
+ });
+ if (
+ (o0 && s0
+ ? (j = c0(j, i(o0, s0), x0))
+ : (j = c0(j, o0 || s0, x0)),
+ !j.length)
+ ) {
+ delete R.attribs[H];
+ return;
+ }
+ }
+ if (H === "style") {
+ if (z.parseStyleAttributes)
+ try {
+ const o0 = s(G + " {" + j + "}", { map: !1 }),
+ s0 = P(o0, z.allowedStyles);
+ if (((j = t0(s0)), j.length === 0)) {
+ delete R.attribs[H];
+ return;
+ }
+ } catch {
+ (typeof window < "u" &&
+ console.warn(
+ 'Failed to parse "' +
+ G +
+ " {" +
+ j +
+ `}", If you're running this in a browser, we recommend to disable style parsing: options.parseStyleAttributes: false, since this only works in a node environment due to a postcss dependency, More info: https://github.com/apostrophecms/sanitize-html/issues/547`,
+ ),
+ delete R.attribs[H]);
+ return;
+ }
+ else if (z.allowedStyles)
+ throw new Error(
+ "allowedStyles option cannot be used together with parseStyleAttributes: false.",
+ );
+ }
+ ((A += " " + H),
+ j && j.length
+ ? (A += '="' + M0(j, !0) + '"')
+ : z.allowedEmptyAttributes.includes(H) && (A += '=""'));
+ } else delete R.attribs[H];
+ }),
+ z.selfClosing.indexOf(G) !== -1
+ ? (A += " />")
+ : ((A += ">"),
+ R.innerText &&
+ !D &&
+ !z.textFilter &&
+ ((A += M0(R.innerText)), (Y = !0))),
+ w && ((A = h + M0(A)), (h = "")),
+ (R.openingTagLength = A.length - R.tagPosition));
+ },
+ ontext: function (G) {
+ if (Q) return;
+ const S = I[I.length - 1];
+ let R;
+ if (
+ (S && ((R = S.tag), (G = S.innerText !== void 0 ? S.innerText : G)),
+ z.disallowedTagsMode === "completelyDiscard" && !v(R))
+ )
+ G = "";
+ else if (
+ (z.disallowedTagsMode === "discard" ||
+ z.disallowedTagsMode === "completelyDiscard") &&
+ (R === "script" || R === "style")
+ )
+ A += G;
+ else if (!Y) {
+ const w = M0(G, !1);
+ z.textFilter ? (A += z.textFilter(w, R)) : (A += w);
+ }
+ if (I.length) {
+ const w = I[I.length - 1];
+ w.text += G;
+ }
+ },
+ onclosetag: function (G, S) {
+ if ((z.onCloseTag && z.onCloseTag(G, S), Q))
+ if ((n0--, !n0)) Q = !1;
+ else return;
+ const R = I.pop();
+ if (!R) return;
+ if (R.tag !== G) {
+ I.push(R);
+ return;
+ }
+ ((Q = z.enforceHtmlBoundary ? G === "html" : !1), N--);
+ const w = k[N];
+ if (w) {
+ if (
+ (delete k[N],
+ z.disallowedTagsMode === "discard" ||
+ z.disallowedTagsMode === "completelyDiscard")
+ ) {
+ R.updateParentNodeText();
+ return;
+ }
+ ((h = A), (A = ""));
+ }
+ if ((F[N] && ((G = F[N]), delete F[N]), z.exclusiveFilter)) {
+ const D = z.exclusiveFilter(R);
+ if (D === "excludeTag") {
+ (w && ((A = h), (h = "")),
+ (A =
+ A.substring(0, R.tagPosition) +
+ A.substring(R.tagPosition + R.openingTagLength)));
+ return;
+ } else if (D) {
+ A = A.substring(0, R.tagPosition);
+ return;
+ }
+ }
+ if (
+ (R.updateParentNodeMediaChildren(),
+ R.updateParentNodeText(),
+ z.selfClosing.indexOf(G) !== -1 ||
+ (S &&
+ !v(G) &&
+ ["escape", "recursiveEscape"].indexOf(z.disallowedTagsMode) >=
+ 0))
+ ) {
+ w && ((A = h), (h = ""));
+ return;
+ }
+ ((A += "" + G + ">"), w && ((A = h + M0(A)), (h = "")), (Y = !1));
+ },
+ },
+ z.parser,
+ );
+ return (Z.write(f), Z.end(), A);
+ function i0() {
+ ((A = ""), (N = 0), (I = []), (k = {}), (F = {}), (Q = !1), (n0 = 0));
+ }
+ function M0(G, S) {
+ return (
+ typeof G != "string" && (G = G + ""),
+ z.parser.decodeEntities &&
+ ((G = G.replace(/&/g, "&")
+ .replace(//g, ">")),
+ S && (G = G.replace(/"/g, """))),
+ (G = G.replace(/&(?![a-zA-Z0-9#]{1,20};)/g, "&")
+ .replace(//g, ">")),
+ S && (G = G.replace(/"/g, """)),
+ G
+ );
+ }
+ function u0(G, S) {
+ for (S = S.replace(/[\x00-\x20]+/g, ""); ; ) {
+ const D = S.indexOf("", D + 4);
+ if (C === -1) break;
+ S = S.substring(0, D) + S.substring(C + 3);
+ }
+ const R = S.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);
+ if (!R) return S.match(/^[/\\]{2}/) ? !z.allowProtocolRelative : !1;
+ const w = R[1].toLowerCase();
+ return c(z.allowedSchemesByTag, G)
+ ? z.allowedSchemesByTag[G].indexOf(w) === -1
+ : !z.allowedSchemes || z.allowedSchemes.indexOf(w) === -1;
+ }
+ function b0(G) {
+ if (
+ ((G = G.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/, "$1//")),
+ G.startsWith("relative:"))
+ )
+ throw new Error("relative: exploit attempt");
+ let S = "relative://relative-site";
+ for (let D = 0; D < 100; D++) S += `/${D}`;
+ const R = new URL(G, S);
+ return {
+ isRelativeUrl:
+ R && R.hostname === "relative-site" && R.protocol === "relative:",
+ url: R,
+ };
+ }
+ function P(G, S) {
+ if (!S) return G;
+ const R = G.nodes[0];
+ let w;
+ return (
+ S[R.selector] && S["*"]
+ ? (w = i(S[R.selector], S["*"]))
+ : (w = S[R.selector] || S["*"]),
+ w && (G.nodes[0].nodes = R.nodes.reduce(r0(w), [])),
+ G
+ );
+ }
+ function t0(G) {
+ return G.nodes[0].nodes
+ .reduce(function (S, R) {
+ return (
+ S.push(`${R.prop}:${R.value}${R.important ? " !important" : ""}`),
+ S
+ );
+ }, [])
+ .join(";");
+ }
+ function r0(G) {
+ return function (S, R) {
+ return (
+ c(G, R.prop) &&
+ G[R.prop].some(function (D) {
+ return D.test(R.value);
+ }) &&
+ S.push(R),
+ S
+ );
+ };
+ }
+ function c0(G, S, R) {
+ return S
+ ? ((G = G.split(/\s+/)),
+ G.filter(function (w) {
+ return (
+ S.indexOf(w) !== -1 ||
+ R.some(function (D) {
+ return D.test(w);
+ })
+ );
+ }).join(" "))
+ : G;
+ }
+ }
+ const O = { decodeEntities: !0 };
+ return (
+ (d.defaults = {
+ allowedTags: [
+ "address",
+ "article",
+ "aside",
+ "footer",
+ "header",
+ "h1",
+ "h2",
+ "h3",
+ "h4",
+ "h5",
+ "h6",
+ "hgroup",
+ "main",
+ "nav",
+ "section",
+ "blockquote",
+ "dd",
+ "div",
+ "dl",
+ "dt",
+ "figcaption",
+ "figure",
+ "hr",
+ "li",
+ "menu",
+ "ol",
+ "p",
+ "pre",
+ "ul",
+ "a",
+ "abbr",
+ "b",
+ "bdi",
+ "bdo",
+ "br",
+ "cite",
+ "code",
+ "data",
+ "dfn",
+ "em",
+ "i",
+ "kbd",
+ "mark",
+ "q",
+ "rb",
+ "rp",
+ "rt",
+ "rtc",
+ "ruby",
+ "s",
+ "samp",
+ "small",
+ "span",
+ "strong",
+ "sub",
+ "sup",
+ "time",
+ "u",
+ "var",
+ "wbr",
+ "caption",
+ "col",
+ "colgroup",
+ "table",
+ "tbody",
+ "td",
+ "tfoot",
+ "th",
+ "thead",
+ "tr",
+ ],
+ nonBooleanAttributes: [
+ "abbr",
+ "accept",
+ "accept-charset",
+ "accesskey",
+ "action",
+ "allow",
+ "alt",
+ "as",
+ "autocapitalize",
+ "autocomplete",
+ "blocking",
+ "charset",
+ "cite",
+ "class",
+ "color",
+ "cols",
+ "colspan",
+ "content",
+ "contenteditable",
+ "coords",
+ "crossorigin",
+ "data",
+ "datetime",
+ "decoding",
+ "dir",
+ "dirname",
+ "download",
+ "draggable",
+ "enctype",
+ "enterkeyhint",
+ "fetchpriority",
+ "for",
+ "form",
+ "formaction",
+ "formenctype",
+ "formmethod",
+ "formtarget",
+ "headers",
+ "height",
+ "hidden",
+ "high",
+ "href",
+ "hreflang",
+ "http-equiv",
+ "id",
+ "imagesizes",
+ "imagesrcset",
+ "inputmode",
+ "integrity",
+ "is",
+ "itemid",
+ "itemprop",
+ "itemref",
+ "itemtype",
+ "kind",
+ "label",
+ "lang",
+ "list",
+ "loading",
+ "low",
+ "max",
+ "maxlength",
+ "media",
+ "method",
+ "min",
+ "minlength",
+ "name",
+ "nonce",
+ "optimum",
+ "pattern",
+ "ping",
+ "placeholder",
+ "popover",
+ "popovertarget",
+ "popovertargetaction",
+ "poster",
+ "preload",
+ "referrerpolicy",
+ "rel",
+ "rows",
+ "rowspan",
+ "sandbox",
+ "scope",
+ "shape",
+ "size",
+ "sizes",
+ "slot",
+ "span",
+ "spellcheck",
+ "src",
+ "srcdoc",
+ "srclang",
+ "srcset",
+ "start",
+ "step",
+ "style",
+ "tabindex",
+ "target",
+ "title",
+ "translate",
+ "type",
+ "usemap",
+ "value",
+ "width",
+ "wrap",
+ "onauxclick",
+ "onafterprint",
+ "onbeforematch",
+ "onbeforeprint",
+ "onbeforeunload",
+ "onbeforetoggle",
+ "onblur",
+ "oncancel",
+ "oncanplay",
+ "oncanplaythrough",
+ "onchange",
+ "onclick",
+ "onclose",
+ "oncontextlost",
+ "oncontextmenu",
+ "oncontextrestored",
+ "oncopy",
+ "oncuechange",
+ "oncut",
+ "ondblclick",
+ "ondrag",
+ "ondragend",
+ "ondragenter",
+ "ondragleave",
+ "ondragover",
+ "ondragstart",
+ "ondrop",
+ "ondurationchange",
+ "onemptied",
+ "onended",
+ "onerror",
+ "onfocus",
+ "onformdata",
+ "onhashchange",
+ "oninput",
+ "oninvalid",
+ "onkeydown",
+ "onkeypress",
+ "onkeyup",
+ "onlanguagechange",
+ "onload",
+ "onloadeddata",
+ "onloadedmetadata",
+ "onloadstart",
+ "onmessage",
+ "onmessageerror",
+ "onmousedown",
+ "onmouseenter",
+ "onmouseleave",
+ "onmousemove",
+ "onmouseout",
+ "onmouseover",
+ "onmouseup",
+ "onoffline",
+ "ononline",
+ "onpagehide",
+ "onpageshow",
+ "onpaste",
+ "onpause",
+ "onplay",
+ "onplaying",
+ "onpopstate",
+ "onprogress",
+ "onratechange",
+ "onreset",
+ "onresize",
+ "onrejectionhandled",
+ "onscroll",
+ "onscrollend",
+ "onsecuritypolicyviolation",
+ "onseeked",
+ "onseeking",
+ "onselect",
+ "onslotchange",
+ "onstalled",
+ "onstorage",
+ "onsubmit",
+ "onsuspend",
+ "ontimeupdate",
+ "ontoggle",
+ "onunhandledrejection",
+ "onunload",
+ "onvolumechange",
+ "onwaiting",
+ "onwheel",
+ ],
+ disallowedTagsMode: "discard",
+ allowedAttributes: {
+ a: ["href", "name", "target"],
+ img: ["src", "srcset", "alt", "title", "width", "height", "loading"],
+ },
+ allowedEmptyAttributes: ["alt"],
+ selfClosing: [
+ "img",
+ "br",
+ "hr",
+ "area",
+ "base",
+ "basefont",
+ "input",
+ "link",
+ "meta",
+ ],
+ allowedSchemes: ["http", "https", "ftp", "mailto", "tel"],
+ allowedSchemesByTag: {},
+ allowedSchemesAppliedToAttributes: ["href", "src", "cite"],
+ allowProtocolRelative: !0,
+ enforceHtmlBoundary: !1,
+ parseStyleAttributes: !0,
+ preserveEscapedAttributes: !1,
+ }),
+ (d.simpleTransform = function (f, z, g) {
+ return (
+ (g = g === void 0 ? !0 : g),
+ (z = z || {}),
+ function (A, h) {
+ let q;
+ if (g) for (q in z) h[q] = z[q];
+ else h = z;
+ return { tagName: f, attribs: h };
+ }
+ );
+ }),
+ gb
+ );
+}
+var W50 = m50();
+const gg0 = jc(W50);
+export {
+ yl as $,
+ y50 as A,
+ Xp as B,
+ k4 as C,
+ x4 as D,
+ x50 as E,
+ F1 as F,
+ I50 as G,
+ X50 as H,
+ P50 as I,
+ fg0 as J,
+ Vr as K,
+ lA as L,
+ S4 as M,
+ Og0 as N,
+ Bc as O,
+ el as P,
+ N50 as Q,
+ dg0 as R,
+ w50 as S,
+ B50 as T,
+ Kn as U,
+ E50 as V,
+ T50 as W,
+ Pp as X,
+ zg0 as Y,
+ bg0 as Z,
+ Mg0 as _,
+ b1 as a,
+ Rl as a0,
+ gg0 as a1,
+ qg0 as a2,
+ pa as a3,
+ o1 as a4,
+ k50 as a5,
+ ll as a6,
+ Tl as a7,
+ Tm as a8,
+ lg0 as a9,
+ pg0 as aa,
+ F50 as ab,
+ U50 as ac,
+ zr as b,
+ _50 as c,
+ $50 as d,
+ wA as e,
+ Jp as f,
+ T1 as g,
+ L50 as h,
+ gl as i,
+ OW as j,
+ xb as k,
+ S50 as l,
+ ug0 as m,
+ v50 as n,
+ _b as o,
+ R50 as p,
+ D50 as q,
+ wc as r,
+ $1 as s,
+ F6 as t,
+ Xi as u,
+ C50 as v,
+ Rm as w,
+ w4 as x,
+ Wl as y,
+ ml as z,
+};
diff --git a/resources/re/vendor_rename_map.json b/resources/re/vendor_rename_map.json
new file mode 100644
index 0000000..9e26dfe
--- /dev/null
+++ b/resources/re/vendor_rename_map.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file