@vindral/web-sdk 4.3.0-2-ged356a90 → 4.3.0-4-g99bdcb75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{Bsr2f02Y.js → BTpwaR7x.js} +1 -1
- package/{ChB5iqY4.js → BsO2lOz0.js} +346 -335
- package/core.js +1 -1
- package/legacy.es.js +523 -512
- package/legacy.umd.js +9 -9
- package/package.json +1 -1
- package/player.js +2 -2
- package/vindral-player-component.js +2 -2
package/legacy.es.js
CHANGED
|
@@ -6857,9 +6857,9 @@ var lh = /* @__PURE__ */ new WeakMap(), uh = /* @__PURE__ */ new WeakMap(), dh =
|
|
|
6857
6857
|
constructor(e, t, n) {
|
|
6858
6858
|
I(this, hh), C(this, lh, void 0), C(this, uh, void 0), C(this, dh, new ye(100)), C(this, fh, void 0), C(this, ph, 0), C(this, mh, F.get().createContext("WebTransportConnection")), D(fh, this, n), D(lh, this, e), D(uh, this, t), T(hh, this, _h).call(this).catch((e) => {
|
|
6859
6859
|
k(mh, this).warn("Incoming streams handling ended with error", e), k(uh, this).markPostHandshake(), k(dh, this).close();
|
|
6860
|
-
}), k(lh, this).closed.
|
|
6860
|
+
}), k(lh, this).closed.finally(() => {
|
|
6861
6861
|
k(uh, this).markPostHandshake(), k(dh, this).close();
|
|
6862
|
-
});
|
|
6862
|
+
}).catch(b);
|
|
6863
6863
|
}
|
|
6864
6864
|
openSendStream() {
|
|
6865
6865
|
var e = this;
|
|
@@ -6879,7 +6879,7 @@ var lh = /* @__PURE__ */ new WeakMap(), uh = /* @__PURE__ */ new WeakMap(), dh =
|
|
|
6879
6879
|
closed() {
|
|
6880
6880
|
var e = this;
|
|
6881
6881
|
return j(function* () {
|
|
6882
|
-
yield k(lh, e).closed;
|
|
6882
|
+
yield k(lh, e).closed.catch(b);
|
|
6883
6883
|
})();
|
|
6884
6884
|
}
|
|
6885
6885
|
close() {
|
|
@@ -7801,7 +7801,7 @@ var l_ = /* @__PURE__ */ new WeakMap(), u_ = /* @__PURE__ */ new WeakMap(), d_ =
|
|
|
7801
7801
|
})();
|
|
7802
7802
|
}
|
|
7803
7803
|
closed() {
|
|
7804
|
-
return k(d_, this).closed();
|
|
7804
|
+
return Promise.race([k(d_, this).closed(), k(u_, this).closed()]);
|
|
7805
7805
|
}
|
|
7806
7806
|
catalog() {
|
|
7807
7807
|
return k(d_, this).catalog();
|
|
@@ -7982,7 +7982,7 @@ function N_(e) {
|
|
|
7982
7982
|
}
|
|
7983
7983
|
var P_ = 1e4, F_ = /* @__PURE__ */ new WeakMap(), I_ = /* @__PURE__ */ new WeakSet(), L_ = class e {
|
|
7984
7984
|
constructor(e, t, n) {
|
|
7985
|
-
I(this, I_), p(this, "ip", void 0), p(this, "value", void 0), C(this, F_, void 0), this.ip = n, this.value = new Pn(t), D(F_, this, T(I_, this, R_).call(this, e));
|
|
7985
|
+
I(this, I_), p(this, "ip", void 0), p(this, "value", void 0), C(this, F_, void 0), this.ip = n, this.value = new Pn(t), D(F_, this, T(I_, this, R_).call(this, e)), this.closed().catch(b);
|
|
7986
7986
|
}
|
|
7987
7987
|
closed() {
|
|
7988
7988
|
return k(F_, this);
|
|
@@ -8097,6 +8097,7 @@ var K_ = class {
|
|
|
8097
8097
|
}, q_ = /* @__PURE__ */ new WeakMap(), J_ = /* @__PURE__ */ new WeakMap(), Y_ = /* @__PURE__ */ new WeakMap(), X_ = /* @__PURE__ */ new WeakMap(), Z_ = /* @__PURE__ */ new WeakMap(), Q_ = /* @__PURE__ */ new WeakMap(), $_ = /* @__PURE__ */ new WeakMap(), ev = /* @__PURE__ */ new WeakMap(), tv = /* @__PURE__ */ new WeakMap(), nv = /* @__PURE__ */ new WeakMap(), rv = /* @__PURE__ */ new WeakSet(), iv = class e {
|
|
8098
8098
|
constructor(e, t, n) {
|
|
8099
8099
|
I(this, rv), C(this, q_, void 0), C(this, J_, void 0), C(this, Y_, void 0), C(this, X_, F.get().createContext("Player")), C(this, Z_, void 0), C(this, Q_, new Pn(void 0)), C(this, $_, new Pn(void 0)), C(this, ev, new Pn(void 0)), C(this, tv, void 0), C(this, nv, void 0), p(this, "subtitles", new K_(k(ev, this), "subtitles")), p(this, "video", new K_(k($_, this), "video")), p(this, "audio", new K_(k(Q_, this), "audio")), D(q_, this, e), D(J_, this, S_.start(n)), D(Y_, this, n), D(Z_, this, new Pn(t)), D(tv, this, new V_(t)), D(nv, this, Promise.race([
|
|
8100
|
+
T(rv, this, cv).call(this),
|
|
8100
8101
|
n.idleTimeout(),
|
|
8101
8102
|
T(rv, this, sv).call(this),
|
|
8102
8103
|
k(tv, this).closed()
|
|
@@ -8237,7 +8238,7 @@ function sv() {
|
|
|
8237
8238
|
try {
|
|
8238
8239
|
for (var l = X(t.catalog()), u; o = !(u = yield l.next()).done; o = !1) {
|
|
8239
8240
|
let t = u.value;
|
|
8240
|
-
yield Promise.all([T(rv, e,
|
|
8241
|
+
yield Promise.all([T(rv, e, lv).call(e, t, k($_, e)), T(rv, e, lv).call(e, t, k(Q_, e))]);
|
|
8241
8242
|
}
|
|
8242
8243
|
} catch (e) {
|
|
8243
8244
|
s = !0, c = e;
|
|
@@ -8260,7 +8261,17 @@ function sv() {
|
|
|
8260
8261
|
}
|
|
8261
8262
|
})();
|
|
8262
8263
|
}
|
|
8263
|
-
function cv(
|
|
8264
|
+
function cv() {
|
|
8265
|
+
var e = this;
|
|
8266
|
+
return j(function* () {
|
|
8267
|
+
try {
|
|
8268
|
+
return yield k(Y_, e).closed(), /* @__PURE__ */ Error("Stats closed");
|
|
8269
|
+
} catch (e) {
|
|
8270
|
+
return e;
|
|
8271
|
+
}
|
|
8272
|
+
})();
|
|
8273
|
+
}
|
|
8274
|
+
function lv(e, t) {
|
|
8264
8275
|
var n = this;
|
|
8265
8276
|
return j(function* () {
|
|
8266
8277
|
let r = t.current();
|
|
@@ -8276,74 +8287,74 @@ function cv(e, t) {
|
|
|
8276
8287
|
})();
|
|
8277
8288
|
}
|
|
8278
8289
|
V(), L(), w(), m(), A(), O(), E(), M();
|
|
8279
|
-
function
|
|
8290
|
+
function uv(e, t, n) {
|
|
8280
8291
|
let r = new URL("/voq/subscribe", e);
|
|
8281
8292
|
return r.searchParams.set("sessionId", t.sessionId), r.searchParams.set("clientId", t.clientId), r.searchParams.set("channelId", t.channelId), n && r.searchParams.set("authToken", n), r;
|
|
8282
8293
|
}
|
|
8283
|
-
var
|
|
8294
|
+
var dv = 1e4, fv = /* @__PURE__ */ new WeakMap(), pv = /* @__PURE__ */ new WeakMap(), mv = /* @__PURE__ */ new WeakMap(), hv = /* @__PURE__ */ new WeakMap(), $ = /* @__PURE__ */ new WeakMap(), gv = /* @__PURE__ */ new WeakMap(), _v = /* @__PURE__ */ new WeakMap(), vv = /* @__PURE__ */ new WeakMap(), yv = /* @__PURE__ */ new WeakMap(), bv = /* @__PURE__ */ new WeakMap(), xv = /* @__PURE__ */ new WeakMap(), Sv = /* @__PURE__ */ new WeakSet(), Cv = /* @__PURE__ */ new WeakMap(), wv = /* @__PURE__ */ new WeakMap(), Tv = /* @__PURE__ */ new WeakMap(), Ev = class e {
|
|
8284
8295
|
get estimatedBandwidth() {
|
|
8285
|
-
return k(
|
|
8296
|
+
return k(yv, this);
|
|
8286
8297
|
}
|
|
8287
8298
|
unload() {
|
|
8288
|
-
k(
|
|
8299
|
+
k(fv, this).off("send signal", k(wv, this)), k(fv, this).off("disconnect", this.disconnect), k(fv, this).off("text track", k(Cv, this)), this.disconnect();
|
|
8289
8300
|
}
|
|
8290
8301
|
suspend() {}
|
|
8291
8302
|
unsuspend() {}
|
|
8292
8303
|
getStatistics() {
|
|
8293
|
-
let e = k(
|
|
8304
|
+
let e = k(mv, this).transportType() === "webtransport" ? "moq" : "moq_ws";
|
|
8294
8305
|
return {
|
|
8295
|
-
edgeUrl: k(
|
|
8306
|
+
edgeUrl: k(mv, this).url(),
|
|
8296
8307
|
connectionProtocol: e,
|
|
8297
|
-
transportSelectionReason: k(
|
|
8308
|
+
transportSelectionReason: k(bv, this)
|
|
8298
8309
|
};
|
|
8299
8310
|
}
|
|
8300
8311
|
constructor(e, t, n, r, i, a, o, s) {
|
|
8301
|
-
I(this,
|
|
8312
|
+
I(this, Sv), C(this, fv, void 0), C(this, pv, void 0), C(this, mv, void 0), C(this, hv, "disconnected"), C(this, $, void 0), C(this, gv, /* @__PURE__ */ new Map()), C(this, _v, void 0), C(this, vv, void 0), C(this, yv, void 0), C(this, bv, void 0), C(this, xv, /* @__PURE__ */ new Map()), C(this, Cv, (e) => {
|
|
8302
8313
|
if (!e) {
|
|
8303
8314
|
k($, this).setSubtitleTrack(void 0).catch(b);
|
|
8304
8315
|
return;
|
|
8305
8316
|
}
|
|
8306
|
-
let t = k(
|
|
8317
|
+
let t = k(gv, this).get(jh(k($, this).namespace())), n = t == null ? void 0 : t.getTextTrack(e);
|
|
8307
8318
|
n && k($, this).setSubtitleTrack(n).catch(b);
|
|
8308
|
-
}), C(this,
|
|
8319
|
+
}), C(this, wv, (e) => {
|
|
8309
8320
|
switch (e.type) {
|
|
8310
8321
|
case "subscribe":
|
|
8311
|
-
if (k(
|
|
8312
|
-
k(
|
|
8322
|
+
if (k(Tv, this)) {
|
|
8323
|
+
k(pv, this).info("Ignoring - we are already switching");
|
|
8313
8324
|
return;
|
|
8314
8325
|
}
|
|
8315
|
-
D(
|
|
8316
|
-
k(
|
|
8326
|
+
D(Tv, this, !0), T(Sv, this, kv).call(this, e.subscription).catch((t) => {
|
|
8327
|
+
k(pv, this).error("error handling subscription", t), k(fv, this).emit("received signal", {
|
|
8317
8328
|
type: "subscription changed",
|
|
8318
8329
|
subscription: e.subscription,
|
|
8319
8330
|
reset: !0
|
|
8320
8331
|
});
|
|
8321
|
-
}).finally(() => D(
|
|
8332
|
+
}).finally(() => D(Tv, this, !1));
|
|
8322
8333
|
break;
|
|
8323
8334
|
case "telemetry":
|
|
8324
|
-
Dl(new URL("/api/telemetry", k(
|
|
8335
|
+
Dl(new URL("/api/telemetry", k(mv, this).url().replace("wss://", "https://")), {
|
|
8325
8336
|
body: e.body,
|
|
8326
8337
|
headers: { "Content-Type": "text/plain" }
|
|
8327
8338
|
}).catch(b);
|
|
8328
8339
|
break;
|
|
8329
8340
|
case "refresh auth":
|
|
8330
|
-
k(
|
|
8341
|
+
k(mv, this).updateAuthToken(e.token);
|
|
8331
8342
|
break;
|
|
8332
8343
|
}
|
|
8333
|
-
}), C(this,
|
|
8334
|
-
k(
|
|
8335
|
-
}), D(
|
|
8344
|
+
}), C(this, Tv, !1), p(this, "disconnect", (e = "Disconnect Requested") => {
|
|
8345
|
+
k(pv, this).info("Disconnecting", e), k(mv, this).close(), k($, this).close().catch(b), D(xv, this, /* @__PURE__ */ new Map()), T(Sv, this, Av).call(this, "disconnected");
|
|
8346
|
+
}), D(fv, this, e), D(pv, this, t), D(mv, this, n), D($, this, r), D(gv, this, i), D(_v, this, a), D(vv, this, o), D(bv, this, s), k(fv, this).on("send signal", k(wv, this)), k(fv, this).on("disconnect", this.disconnect), k(fv, this).on("text track", k(Cv, this)), T(Sv, this, Dv).call(this).catch(b), T(Sv, this, jv).call(this).catch(b);
|
|
8336
8347
|
}
|
|
8337
8348
|
static start(t, n, r, i, a) {
|
|
8338
8349
|
return j(function* () {
|
|
8339
8350
|
var o, s, c;
|
|
8340
|
-
let l = new Map(i.connectInfo.channels.map((e) => [jh(e.catalog.namespace), new
|
|
8351
|
+
let l = new Map(i.connectInfo.channels.map((e) => [jh(e.catalog.namespace), new Rv(new Pn(e.catalog))])), u = yield i.onConnectInfo(i.connectInfo), d = i.options.get("authenticationToken"), f, p;
|
|
8341
8352
|
switch (typeof i.edgeUrl) {
|
|
8342
8353
|
case "string":
|
|
8343
|
-
f =
|
|
8354
|
+
f = uv(i.edgeUrl, u, d);
|
|
8344
8355
|
break;
|
|
8345
8356
|
default:
|
|
8346
|
-
f =
|
|
8357
|
+
f = uv(i.edgeUrl.moqUrl || i.edgeUrl.moqWsUrl, u, d), p = uv(i.edgeUrl.moqWsUrl, u, d);
|
|
8347
8358
|
break;
|
|
8348
8359
|
}
|
|
8349
8360
|
let m = (o = i.connectInfo.channels.find((e) => e.channelId === u.channelId)) == null ? void 0 : o.catalog;
|
|
@@ -8369,9 +8380,9 @@ var uv = 1e4, dv = /* @__PURE__ */ new WeakMap(), fv = /* @__PURE__ */ new WeakM
|
|
|
8369
8380
|
audioTrack: g == null ? void 0 : g.track,
|
|
8370
8381
|
burstMs: u.burstMs || 0
|
|
8371
8382
|
}),
|
|
8372
|
-
rr(
|
|
8383
|
+
rr(dv, /* @__PURE__ */ Error("Timeout waiting for player to start")),
|
|
8373
8384
|
ee
|
|
8374
|
-
]), te = new
|
|
8385
|
+
]), te = new Rv(y.catalog());
|
|
8375
8386
|
l.set(jh(m.namespace), te), t.emit("received signal", {
|
|
8376
8387
|
type: "client ip",
|
|
8377
8388
|
ip: y.connectionInfo().ip
|
|
@@ -8381,28 +8392,28 @@ var uv = 1e4, dv = /* @__PURE__ */ new WeakMap(), fv = /* @__PURE__ */ new WeakM
|
|
|
8381
8392
|
n.error("Error getting DRM data", e);
|
|
8382
8393
|
});
|
|
8383
8394
|
let ne = new e(t, n, _, y, l, r, a, v);
|
|
8384
|
-
return u.textTrack && k(
|
|
8395
|
+
return u.textTrack && k(Cv, ne).call(ne, u.textTrack), ne;
|
|
8385
8396
|
})();
|
|
8386
8397
|
}
|
|
8387
8398
|
getState() {
|
|
8388
|
-
return k(
|
|
8399
|
+
return k(hv, this);
|
|
8389
8400
|
}
|
|
8390
8401
|
close() {
|
|
8391
|
-
k(
|
|
8402
|
+
k(mv, this).close();
|
|
8392
8403
|
}
|
|
8393
8404
|
closed() {
|
|
8394
|
-
return Promise.race([k(
|
|
8405
|
+
return Promise.race([k(mv, this).closed(), k($, this).closed()]);
|
|
8395
8406
|
}
|
|
8396
8407
|
};
|
|
8397
|
-
function
|
|
8408
|
+
function Dv() {
|
|
8398
8409
|
var e = this;
|
|
8399
8410
|
return j(function* () {
|
|
8400
|
-
k(
|
|
8411
|
+
k(mv, e).transportType() === "websocket" && (yield nr(5e3));
|
|
8401
8412
|
var t = !1, n = !1, r;
|
|
8402
8413
|
try {
|
|
8403
8414
|
for (var i = X(k($, e).stats()), a; t = !(a = yield i.next()).done; t = !1) {
|
|
8404
8415
|
let { rtt: t, estimatedBandwidth: n } = a.value;
|
|
8405
|
-
D(
|
|
8416
|
+
D(yv, e, n), k(vv, e).push(t), k(fv, e).emit("rtt", jt(k(vv, e).items()));
|
|
8406
8417
|
}
|
|
8407
8418
|
} catch (e) {
|
|
8408
8419
|
n = !0, r = e;
|
|
@@ -8415,26 +8426,26 @@ function Ev() {
|
|
|
8415
8426
|
}
|
|
8416
8427
|
})();
|
|
8417
8428
|
}
|
|
8418
|
-
function
|
|
8429
|
+
function Ov(e) {
|
|
8419
8430
|
var t = this;
|
|
8420
8431
|
return j(function* () {
|
|
8421
8432
|
var n;
|
|
8422
|
-
let r = yield k(
|
|
8433
|
+
let r = yield k(_v, t).connect({ channelId: e });
|
|
8423
8434
|
if (!lr(r)) throw Error("no moq connect info found");
|
|
8424
8435
|
let i = (n = r.channels.find((t) => t.channelId === e)) == null ? void 0 : n.catalog;
|
|
8425
8436
|
if (!i) throw Error("no catalog found");
|
|
8426
8437
|
return i;
|
|
8427
8438
|
})();
|
|
8428
8439
|
}
|
|
8429
|
-
function
|
|
8440
|
+
function kv(e) {
|
|
8430
8441
|
var t = this;
|
|
8431
8442
|
return j(function* () {
|
|
8432
8443
|
var n, r;
|
|
8433
|
-
k(
|
|
8434
|
-
let i = k($, t), a = k(
|
|
8435
|
-
if (a || (a = new
|
|
8444
|
+
k(pv, t).info("handle subscription", e);
|
|
8445
|
+
let i = k($, t), a = k(gv, t).get(e.channelId);
|
|
8446
|
+
if (a || (a = new Rv(new Pn(yield T(Sv, t, Ov).call(t, e.channelId))), k(gv, t).set(e.channelId, a)), i.namespace().join("/") !== a.namespace().join("/")) {
|
|
8436
8447
|
var o;
|
|
8437
|
-
k(
|
|
8448
|
+
k(pv, t).info("changing channel", e.channelId);
|
|
8438
8449
|
let n = a.getVideoTrack(e.video), r = a.getAudioTrack(e.audio);
|
|
8439
8450
|
yield i.zap({
|
|
8440
8451
|
namespace: a.namespace(),
|
|
@@ -8442,49 +8453,49 @@ function Ov(e) {
|
|
|
8442
8453
|
videoTrack: n == null ? void 0 : n.track,
|
|
8443
8454
|
audioTrack: r == null ? void 0 : r.track
|
|
8444
8455
|
}, 500), i.drm().then((e) => {
|
|
8445
|
-
e && k(
|
|
8456
|
+
e && k(fv, t).emit("received drm data", e.value);
|
|
8446
8457
|
}).catch((e) => {
|
|
8447
|
-
k(
|
|
8448
|
-
}), k(
|
|
8458
|
+
k(pv, t).error("Error getting DRM data", e);
|
|
8459
|
+
}), k(pv, t).info("switched channel", e.channelId), (o = k(gv, t).get(jh(i.namespace()))) == null || o.updateCatalog(i.catalog()), k(fv, t).emit("received signal", {
|
|
8449
8460
|
type: "subscription changed",
|
|
8450
8461
|
subscription: e
|
|
8451
8462
|
});
|
|
8452
8463
|
return;
|
|
8453
8464
|
}
|
|
8454
8465
|
let s = a.getVideoTrack(e.video), c = a.getAudioTrack(e.audio);
|
|
8455
|
-
yield Promise.all([s && s.track.name !== ((n = k($, t).videoTrack()) == null ? void 0 : n.name) ? k($, t).setVideoTrack(s.track) : void 0, c && c.track.name !== ((r = k($, t).audioTrack()) == null ? void 0 : r.name) ? k($, t).setAudioTrack(c.track) : void 0]), k(
|
|
8466
|
+
yield Promise.all([s && s.track.name !== ((n = k($, t).videoTrack()) == null ? void 0 : n.name) ? k($, t).setVideoTrack(s.track) : void 0, c && c.track.name !== ((r = k($, t).audioTrack()) == null ? void 0 : r.name) ? k($, t).setAudioTrack(c.track) : void 0]), k(fv, t).emit("received signal", {
|
|
8456
8467
|
type: "subscription changed",
|
|
8457
8468
|
subscription: e
|
|
8458
8469
|
});
|
|
8459
8470
|
})();
|
|
8460
8471
|
}
|
|
8461
|
-
function
|
|
8462
|
-
D(
|
|
8472
|
+
function Av(e) {
|
|
8473
|
+
D(hv, this, e), k(fv, this).emit("connection state", e);
|
|
8463
8474
|
}
|
|
8464
|
-
function
|
|
8475
|
+
function jv() {
|
|
8465
8476
|
var e = this;
|
|
8466
8477
|
return j(function* () {
|
|
8467
8478
|
try {
|
|
8468
|
-
T(
|
|
8469
|
-
T(
|
|
8470
|
-
T(
|
|
8471
|
-
T(
|
|
8472
|
-
]), yield k($, e).closed(), k(
|
|
8479
|
+
T(Sv, e, Av).call(e, "connecting"), k(pv, e).info("Connecting..."), T(Sv, e, Av).call(e, "connected"), yield Promise.all([
|
|
8480
|
+
T(Sv, e, Nv).call(e, k($, e).referenceClock(), k($, e).audio),
|
|
8481
|
+
T(Sv, e, Nv).call(e, k($, e).referenceClock(), k($, e).video),
|
|
8482
|
+
T(Sv, e, Mv).call(e, k($, e).subtitles)
|
|
8483
|
+
]), yield k($, e).closed(), k(mv, e).close(), k(pv, e).info("Session closed");
|
|
8473
8484
|
} catch (t) {
|
|
8474
|
-
k(
|
|
8485
|
+
k(pv, e).warn("Session error", t);
|
|
8475
8486
|
} finally {
|
|
8476
|
-
T(
|
|
8487
|
+
T(Sv, e, Av).call(e, "disconnected");
|
|
8477
8488
|
}
|
|
8478
8489
|
})();
|
|
8479
8490
|
}
|
|
8480
|
-
function
|
|
8491
|
+
function Mv(e) {
|
|
8481
8492
|
var t = this;
|
|
8482
8493
|
return j(function* () {
|
|
8483
8494
|
var n = !1, r = !1, i;
|
|
8484
8495
|
try {
|
|
8485
8496
|
for (var a = X(e), o; n = !(o = yield a.next()).done; n = !1) {
|
|
8486
8497
|
let e = o.value;
|
|
8487
|
-
k(
|
|
8498
|
+
k(fv, t).emit("text track data", e);
|
|
8488
8499
|
}
|
|
8489
8500
|
} catch (e) {
|
|
8490
8501
|
r = !0, i = e;
|
|
@@ -8497,7 +8508,7 @@ function jv(e) {
|
|
|
8497
8508
|
}
|
|
8498
8509
|
})();
|
|
8499
8510
|
}
|
|
8500
|
-
function
|
|
8511
|
+
function Nv(e, t) {
|
|
8501
8512
|
var n = this;
|
|
8502
8513
|
return j(function* () {
|
|
8503
8514
|
let r = "", i = "", a, o = k($, n).videoTrack() === void 0;
|
|
@@ -8522,18 +8533,18 @@ function Mv(e, t) {
|
|
|
8522
8533
|
drmTransition: a !== void 0 && a !== v
|
|
8523
8534
|
};
|
|
8524
8535
|
r = s, i = c, a = v;
|
|
8525
|
-
let h = p.producerReferenceTime(), g = k(
|
|
8536
|
+
let h = p.producerReferenceTime(), g = k(xv, n).get(t.track.namespace) || 0;
|
|
8526
8537
|
if (h && Date.now() - g > 1e3) {
|
|
8527
|
-
k(
|
|
8538
|
+
k(xv, n).set(t.track.namespace, Date.now());
|
|
8528
8539
|
let r = e.wallclock() - h.getTime();
|
|
8529
|
-
k(
|
|
8540
|
+
k(pv, n).debug("timing-info", {
|
|
8530
8541
|
mediaType: p.mediaType(),
|
|
8531
8542
|
referenceClock: e,
|
|
8532
8543
|
delta: r,
|
|
8533
8544
|
groupId: f,
|
|
8534
8545
|
timestamp: p.baseMediaDecodeTime() / p.timescale() * 1e3 + r,
|
|
8535
8546
|
wallclockTime: h.getTime()
|
|
8536
|
-
}), k(
|
|
8547
|
+
}), k(fv, n).emit("received signal", {
|
|
8537
8548
|
type: "timing info",
|
|
8538
8549
|
timingInfo: {
|
|
8539
8550
|
channelId: s,
|
|
@@ -8542,7 +8553,7 @@ function Mv(e, t) {
|
|
|
8542
8553
|
}
|
|
8543
8554
|
});
|
|
8544
8555
|
}
|
|
8545
|
-
k(
|
|
8556
|
+
k(fv, n).emit("received moq data", {
|
|
8546
8557
|
payload: p,
|
|
8547
8558
|
channelId: s,
|
|
8548
8559
|
groupId: f,
|
|
@@ -8550,7 +8561,7 @@ function Mv(e, t) {
|
|
|
8550
8561
|
codec: l,
|
|
8551
8562
|
codecString: u,
|
|
8552
8563
|
switchInfo: m,
|
|
8553
|
-
renditionId:
|
|
8564
|
+
renditionId: Pv(t.track.trackObject.name)
|
|
8554
8565
|
});
|
|
8555
8566
|
}
|
|
8556
8567
|
}
|
|
@@ -8576,54 +8587,54 @@ function Mv(e, t) {
|
|
|
8576
8587
|
}
|
|
8577
8588
|
})();
|
|
8578
8589
|
}
|
|
8579
|
-
function
|
|
8590
|
+
function Pv(e) {
|
|
8580
8591
|
return e.split("").reduce((e, t) => e = t.charCodeAt(0) + (e << 6) + (e << 16) - e, 0);
|
|
8581
8592
|
}
|
|
8582
|
-
var
|
|
8593
|
+
var Fv = /* @__PURE__ */ new WeakMap(), Iv = /* @__PURE__ */ new WeakMap(), Lv = /* @__PURE__ */ new WeakSet(), Rv = class {
|
|
8583
8594
|
constructor(e) {
|
|
8584
|
-
I(this,
|
|
8595
|
+
I(this, Lv), C(this, Fv, void 0), C(this, Iv, void 0), D(Fv, this, e), D(Iv, this, T(Lv, this, zv).call(this));
|
|
8585
8596
|
}
|
|
8586
8597
|
catalog() {
|
|
8587
|
-
return k(
|
|
8598
|
+
return k(Fv, this).current();
|
|
8588
8599
|
}
|
|
8589
8600
|
namespace() {
|
|
8590
|
-
return k(
|
|
8601
|
+
return k(Fv, this).current().namespace;
|
|
8591
8602
|
}
|
|
8592
8603
|
updateCatalog(e) {
|
|
8593
|
-
D(
|
|
8604
|
+
D(Fv, this, e);
|
|
8594
8605
|
}
|
|
8595
8606
|
getTextTrack(e) {
|
|
8596
|
-
return k(
|
|
8607
|
+
return k(Fv, this).current().tracks.find((t) => t.label === e);
|
|
8597
8608
|
}
|
|
8598
8609
|
getAudioTrack(e) {
|
|
8599
8610
|
if (!e.codec) return;
|
|
8600
|
-
let t = k(
|
|
8611
|
+
let t = k(Iv, this).filter((t) => !(!fr(t) || t.bitRate > e.bitRate || e.codec && t.codec !== e.codec || e.language && t.language !== e.language));
|
|
8601
8612
|
return t[t.length - 1];
|
|
8602
8613
|
}
|
|
8603
8614
|
getVideoTrack(e) {
|
|
8604
8615
|
if (!e.codec) return;
|
|
8605
|
-
let t = k(
|
|
8616
|
+
let t = k(Iv, this).filter((t) => !(!dr(t) || t.bitRate > e.bitRate || e.codec && t.codec !== e.codec));
|
|
8606
8617
|
return t[t.length - 1];
|
|
8607
8618
|
}
|
|
8608
8619
|
renditions() {
|
|
8609
|
-
return k(
|
|
8620
|
+
return k(Iv, this);
|
|
8610
8621
|
}
|
|
8611
8622
|
};
|
|
8612
|
-
function
|
|
8613
|
-
let [e, t] = k(
|
|
8623
|
+
function zv() {
|
|
8624
|
+
let [e, t] = k(Fv, this).value();
|
|
8614
8625
|
return ur(e);
|
|
8615
8626
|
}
|
|
8616
8627
|
//#endregion
|
|
8617
8628
|
//#region ../../libs/web-sdk/src/resolveEdgeUrl.ts
|
|
8618
|
-
var
|
|
8629
|
+
var Bv = (e, t) => {
|
|
8619
8630
|
var n, r;
|
|
8620
8631
|
let i = new URL("/subscribe", e);
|
|
8621
8632
|
return i.searchParams.append("channelId", t.channelId), i.searchParams.append("sessionId", t.sessionId), i.searchParams.append("clientId", t.clientId), (n = t.audio) != null && n.codec && (i.searchParams.append("audio.bitRate", Math.round(t.audio.bitRate).toString()), i.searchParams.append("audio.codec", t.audio.codec), t.audio.language && i.searchParams.append("audio.language", t.audio.language)), (r = t.video) != null && r.codec && (i.searchParams.append("video.width", t.video.width.toString()), i.searchParams.append("video.height", t.video.height.toString()), i.searchParams.append("video.bitRate", Math.round(t.video.bitRate).toString()), i.searchParams.append("video.codec", t.video.codec)), t.expectAdditionalConnection && i.searchParams.append("expectAdditionalConnection", t.expectAdditionalConnection.toString()), t.burstMs && i.searchParams.append("burstMs", t.burstMs.toString()), t.channelGroupId && i.searchParams.append("channelGroupId", t.channelGroupId), t.authToken && (i.searchParams.append("auth.token", t.authToken), i.searchParams.append("auth.type", "jwt")), i.toString();
|
|
8622
8633
|
};
|
|
8623
8634
|
wi(), V(), m(), z(), M();
|
|
8624
|
-
var
|
|
8635
|
+
var Vv = /* @__PURE__ */ function(e) {
|
|
8625
8636
|
return e[e.AuthenticationFailed = 4e3] = "AuthenticationFailed", e[e.AuthenticationRefreshFailed = 4001] = "AuthenticationRefreshFailed", e[e.AuthenticationExpired = 4002] = "AuthenticationExpired", e[e.ChannelNotFound = 4003] = "ChannelNotFound", e[e.Inactivity = 4010] = "Inactivity", e;
|
|
8626
|
-
}({}),
|
|
8637
|
+
}({}), Hv = class extends Ht {
|
|
8627
8638
|
constructor(e, t) {
|
|
8628
8639
|
var n;
|
|
8629
8640
|
super(), n = this, p(this, "options", void 0), p(this, "websockets", []), p(this, "logger", void 0), p(this, "reconnectState", { reconnectRetries: 0 }), p(this, "isSuspended", !1), p(this, "_connectionAttemptCount", 0), p(this, "connectStartTime", 0), p(this, "_connectTime", void 0), p(this, "shouldContinueConnecting", !1), p(this, "_isConnectInProgress", !1), p(this, "readyState", () => {
|
|
@@ -8665,19 +8676,19 @@ var Bv = /* @__PURE__ */ function(e) {
|
|
|
8665
8676
|
code: e.code,
|
|
8666
8677
|
isSuspended: this.isSuspended
|
|
8667
8678
|
})), this.close("one websocket was closed"), e.code) {
|
|
8668
|
-
case
|
|
8679
|
+
case Vv.AuthenticationFailed:
|
|
8669
8680
|
this.emit("error", pi(fi()));
|
|
8670
8681
|
break;
|
|
8671
|
-
case
|
|
8682
|
+
case Vv.AuthenticationRefreshFailed:
|
|
8672
8683
|
this.emit("error", pi(fi()));
|
|
8673
8684
|
break;
|
|
8674
|
-
case
|
|
8685
|
+
case Vv.AuthenticationExpired:
|
|
8675
8686
|
this.emit("error", mi(fi()));
|
|
8676
8687
|
break;
|
|
8677
|
-
case
|
|
8688
|
+
case Vv.ChannelNotFound:
|
|
8678
8689
|
this.emit("error", gi("internal", fi()));
|
|
8679
8690
|
break;
|
|
8680
|
-
case
|
|
8691
|
+
case Vv.Inactivity:
|
|
8681
8692
|
this.emit("error", hi("internal", fi()));
|
|
8682
8693
|
break;
|
|
8683
8694
|
default:
|
|
@@ -8728,10 +8739,10 @@ var Bv = /* @__PURE__ */ function(e) {
|
|
|
8728
8739
|
}
|
|
8729
8740
|
};
|
|
8730
8741
|
V(), m(), M();
|
|
8731
|
-
var
|
|
8732
|
-
let t = e ||
|
|
8733
|
-
return
|
|
8734
|
-
},
|
|
8742
|
+
var Uv, Wv = 65536 * 8, Gv = .9, Kv = 40, qv = (e) => {
|
|
8743
|
+
let t = e || Kv;
|
|
8744
|
+
return Wv * Gv * 1e3 / t;
|
|
8745
|
+
}, Jv = class e {
|
|
8735
8746
|
constructor(t, n, r, i) {
|
|
8736
8747
|
var a = this;
|
|
8737
8748
|
p(this, "emitter", void 0), p(this, "transport", void 0), p(this, "logger", void 0), p(this, "config", void 0), p(this, "rtts", void 0), p(this, "lastPingSentTime", Date.now()), p(this, "isPingInFlight", !1), p(this, "connectCount", 0), p(this, "missedPings", 0), p(this, "contextSwitchesInProgress", /* @__PURE__ */ new Set()), p(this, "contextSwitchesCompleted", /* @__PURE__ */ new Set()), p(this, "buffer", []), p(this, "disconnected", new x()), p(this, "unload", () => {
|
|
@@ -8781,7 +8792,7 @@ var Hv, Uv = 65536 * 8, Wv = .9, Gv = 40, Kv = (e) => {
|
|
|
8781
8792
|
}), p(this, "resolveEdgeUrl", j(function* () {
|
|
8782
8793
|
let e = a.config.connectInfo, t = yield a.config.onConnectInfo(e), n = a.config.options.getOverride("separateVideoSocketEnabled", t.channelId), r = a.config.options.get("media") === "audio+video", i = 1;
|
|
8783
8794
|
r && (i = n === !1 ? 1 : 2);
|
|
8784
|
-
let o =
|
|
8795
|
+
let o = Bv(a.config.edgeUrl, {
|
|
8785
8796
|
video: t.video,
|
|
8786
8797
|
audio: t.audio,
|
|
8787
8798
|
burstMs: t.burstMs,
|
|
@@ -8814,7 +8825,7 @@ var Hv, Uv = 65536 * 8, Wv = .9, Gv = 40, Kv = (e) => {
|
|
|
8814
8825
|
}
|
|
8815
8826
|
}
|
|
8816
8827
|
}), p(this, "connectWebSocketTransport", () => {
|
|
8817
|
-
let e = new
|
|
8828
|
+
let e = new Hv({
|
|
8818
8829
|
reconnectDelay: 1e3,
|
|
8819
8830
|
onMessage: this.onMessage,
|
|
8820
8831
|
reconnectHandler: this.config.reconnectHandler,
|
|
@@ -8855,57 +8866,57 @@ var Hv, Uv = 65536 * 8, Wv = .9, Gv = 40, Kv = (e) => {
|
|
|
8855
8866
|
return this.disconnected.promise;
|
|
8856
8867
|
}
|
|
8857
8868
|
};
|
|
8858
|
-
|
|
8859
|
-
let o = new
|
|
8869
|
+
Uv = Jv, p(Jv, "PING_INTERVAL", 5e3), p(Jv, "MAX_MISSED_PINGS", 4), p(Jv, "TLS_ROUNDTRIPS", 3), p(Jv, "start", (e, t, n, r) => new Promise((i, a) => {
|
|
8870
|
+
let o = new Uv(e, t, n, r);
|
|
8860
8871
|
o.transport.once("error", (e) => a(e)), o.transport.once("open", () => i(o));
|
|
8861
8872
|
})), w(), O(), A();
|
|
8862
|
-
var
|
|
8873
|
+
var Yv = (e) => {
|
|
8863
8874
|
var t;
|
|
8864
8875
|
return typeof e == "string" ? e : `${e.moqWsUrl}|${(t = e.moqUrl) == null ? "" : t}`;
|
|
8865
|
-
},
|
|
8876
|
+
}, Xv = /* @__PURE__ */ new WeakMap(), Zv = /* @__PURE__ */ new WeakMap(), Qv = /* @__PURE__ */ new WeakMap(), $v = /* @__PURE__ */ new WeakMap(), ey = class {
|
|
8866
8877
|
constructor(e) {
|
|
8867
|
-
C(this,
|
|
8878
|
+
C(this, Xv, void 0), C(this, Zv, []), C(this, Qv, /* @__PURE__ */ new Set()), C(this, $v, void 0), D(Xv, this, e);
|
|
8868
8879
|
}
|
|
8869
8880
|
select(e) {
|
|
8870
|
-
if (k(
|
|
8881
|
+
if (k(Xv, this).edgeUrl) return k(Xv, this).edgeUrl;
|
|
8871
8882
|
if (e.length > 0) {
|
|
8872
|
-
D(
|
|
8873
|
-
let t = new Set(k(
|
|
8874
|
-
for (let e of k(
|
|
8883
|
+
D(Zv, this, [...e]);
|
|
8884
|
+
let t = new Set(k(Zv, this).map((e) => Yv(e)));
|
|
8885
|
+
for (let e of k(Qv, this)) t.has(e) || k(Qv, this).delete(e);
|
|
8875
8886
|
}
|
|
8876
|
-
if (k(
|
|
8877
|
-
let t = k(
|
|
8878
|
-
t.length === 0 && (k(
|
|
8887
|
+
if (k(Zv, this).length === 0) return;
|
|
8888
|
+
let t = k(Zv, this).filter((e) => !k(Qv, this).has(Yv(e)));
|
|
8889
|
+
t.length === 0 && (k(Qv, this).clear(), t = k(Zv, this));
|
|
8879
8890
|
let n = t[0];
|
|
8880
|
-
if (n) return k(
|
|
8891
|
+
if (n) return k(Qv, this).add(Yv(n)), D($v, this, n), n;
|
|
8881
8892
|
}
|
|
8882
8893
|
shiftedEdge() {
|
|
8883
|
-
return k(
|
|
8894
|
+
return k($v, this);
|
|
8884
8895
|
}
|
|
8885
8896
|
reset() {
|
|
8886
|
-
D(
|
|
8897
|
+
D($v, this, void 0), D(Zv, this, []), k(Qv, this).clear();
|
|
8887
8898
|
}
|
|
8888
8899
|
};
|
|
8889
8900
|
wi(), V(), L(), m(), w(), O(), A(), z(), E(), M();
|
|
8890
|
-
var
|
|
8901
|
+
var ty, ny = /* @__PURE__ */ new WeakMap(), ry = /* @__PURE__ */ new WeakMap(), iy = /* @__PURE__ */ new WeakMap(), ay = /* @__PURE__ */ new WeakMap(), oy = /* @__PURE__ */ new WeakMap(), sy = /* @__PURE__ */ new WeakMap(), cy = /* @__PURE__ */ new WeakMap(), ly = /* @__PURE__ */ new WeakMap(), uy = /* @__PURE__ */ new WeakMap(), dy = /* @__PURE__ */ new WeakMap(), fy = /* @__PURE__ */ new WeakMap(), py = /* @__PURE__ */ new WeakMap(), my = /* @__PURE__ */ new WeakSet(), hy = /* @__PURE__ */ new WeakMap(), gy = /* @__PURE__ */ new WeakMap(), _y = class e {
|
|
8891
8902
|
constructor(t, n, r) {
|
|
8892
8903
|
var i = this;
|
|
8893
|
-
I(this,
|
|
8904
|
+
I(this, my), p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "config", void 0), p(this, "apiClient", void 0), p(this, "connectionImpl", void 0), C(this, ny, new S(10)), C(this, ry, !0), C(this, iy, void 0), C(this, ay, 0), C(this, oy, 0), C(this, sy, 0), C(this, cy, void 0), C(this, ly, void 0), C(this, uy, void 0), C(this, dy, void 0), p(this, "unload", () => {
|
|
8894
8905
|
var e;
|
|
8895
|
-
this.logger.debug("Unloading module..."), this.disconnect("Unloading"), (e = this.connectionImpl) == null || e.unload(), D(
|
|
8906
|
+
this.logger.debug("Unloading module..."), this.disconnect("Unloading"), (e = this.connectionImpl) == null || e.unload(), D(uy, this, void 0), this.logger.debug("Unloaded module");
|
|
8896
8907
|
}), p(this, "suspend", () => {
|
|
8897
8908
|
var e;
|
|
8898
|
-
D(
|
|
8909
|
+
D(ry, this, !1), (e = this.connectionImpl) == null || e.suspend();
|
|
8899
8910
|
}), p(this, "unsuspend", () => {
|
|
8900
8911
|
var e;
|
|
8901
|
-
D(
|
|
8912
|
+
D(ry, this, !0), (e = this.connectionImpl) == null || e.unsuspend(), this.connect();
|
|
8902
8913
|
}), p(this, "getState", () => this.connectionImpl ? this.connectionImpl.getState() : "disconnected"), p(this, "getStatistics", () => {
|
|
8903
|
-
let e = k(
|
|
8914
|
+
let e = k(oy, this) > 0 ? k(sy, this) / k(oy, this) : 0;
|
|
8904
8915
|
return this.connectionImpl ? R(R({}, this.connectionImpl.getStatistics()), {}, {
|
|
8905
|
-
rtt: Pt(k(
|
|
8916
|
+
rtt: Pt(k(ny, this).items()),
|
|
8906
8917
|
estimatedBandwidth: this.estimatedBandwidth,
|
|
8907
|
-
connectCount: k(
|
|
8908
|
-
connectionAttemptCount: k(
|
|
8918
|
+
connectCount: k(sy, this),
|
|
8919
|
+
connectionAttemptCount: k(oy, this),
|
|
8909
8920
|
connectionSuccessRatio: e
|
|
8910
8921
|
}) : {
|
|
8911
8922
|
rtt: {
|
|
@@ -8915,20 +8926,20 @@ var ey, ty = /* @__PURE__ */ new WeakMap(), ny = /* @__PURE__ */ new WeakMap(),
|
|
|
8915
8926
|
last: 0
|
|
8916
8927
|
},
|
|
8917
8928
|
estimatedBandwidth: 0,
|
|
8918
|
-
connectCount: k(
|
|
8919
|
-
connectionAttemptCount: k(
|
|
8929
|
+
connectCount: k(sy, this),
|
|
8930
|
+
connectionAttemptCount: k(oy, this),
|
|
8920
8931
|
connectionSuccessRatio: e,
|
|
8921
8932
|
connectionProtocol: void 0,
|
|
8922
8933
|
transportSelectionReason: void 0
|
|
8923
8934
|
};
|
|
8924
8935
|
}), p(this, "connect", () => {
|
|
8925
|
-
D(
|
|
8936
|
+
D(ry, this, !0), !k(iy, this) && D(iy, this, T(my, this, vy).call(this));
|
|
8926
8937
|
}), p(this, "disconnect", (e = "Disconnect Requested") => {
|
|
8927
8938
|
var t;
|
|
8928
|
-
D(
|
|
8939
|
+
D(ry, this, !1), k(gy, this).call(this), (t = this.connectionImpl) == null || t.close(e);
|
|
8929
8940
|
}), p(this, "reconnect", (e) => {
|
|
8930
8941
|
this.disconnect(e), this.connect();
|
|
8931
|
-
}), C(this,
|
|
8942
|
+
}), C(this, fy, j(function* () {
|
|
8932
8943
|
try {
|
|
8933
8944
|
return yield i.apiClient.connect(i.config.options.getOptions());
|
|
8934
8945
|
} catch (e) {
|
|
@@ -8939,7 +8950,7 @@ var ey, ty = /* @__PURE__ */ new WeakMap(), ny = /* @__PURE__ */ new WeakMap(),
|
|
|
8939
8950
|
}
|
|
8940
8951
|
throw i.emitter.emit("error", vi(e instanceof Error ? e : void 0)), e;
|
|
8941
8952
|
}
|
|
8942
|
-
})), C(this,
|
|
8953
|
+
})), C(this, py, j(function* () {
|
|
8943
8954
|
let t = Date.now(), n = () => Date.now() - t, r = globalThis.AbortController ? new AbortController() : void 0, a = setTimeout(() => r == null ? void 0 : r.abort(), e.PING_TIMEOUT);
|
|
8944
8955
|
try {
|
|
8945
8956
|
return yield fetch(new URL("/api/v4/connect/ping", i.config.options.get("url")).toString(), {
|
|
@@ -8951,56 +8962,56 @@ var ey, ty = /* @__PURE__ */ new WeakMap(), ny = /* @__PURE__ */ new WeakMap(),
|
|
|
8951
8962
|
} finally {
|
|
8952
8963
|
clearTimeout(a);
|
|
8953
8964
|
}
|
|
8954
|
-
})), C(this,
|
|
8955
|
-
k(
|
|
8965
|
+
})), C(this, hy, () => {
|
|
8966
|
+
k(gy, this).call(this), D(dy, this, setTimeout(() => {
|
|
8956
8967
|
var e;
|
|
8957
|
-
!k(
|
|
8968
|
+
!k(uy, this) || ((e = this.connectionImpl) == null ? void 0 : e.getState()) !== "connected" || (this.logger.debug("Connection remained stable for long enough, clearing cached fallback edges"), k(uy, this).reset(), D(dy, this, void 0));
|
|
8958
8969
|
}, e.EDGE_SELECTOR_RESET_TIMEOUT));
|
|
8959
|
-
}), C(this,
|
|
8960
|
-
k(
|
|
8970
|
+
}), C(this, gy, () => {
|
|
8971
|
+
k(dy, this) !== void 0 && (clearTimeout(k(dy, this)), D(dy, this, void 0));
|
|
8961
8972
|
}), this.logger = n, this.emitter = t, this.config = r, this.apiClient = new Al({
|
|
8962
8973
|
publicEndpoint: this.config.options.get("url").toString(),
|
|
8963
8974
|
tokenFactory: () => this.config.options.get("authenticationToken")
|
|
8964
8975
|
});
|
|
8965
8976
|
}
|
|
8966
8977
|
get rtt() {
|
|
8967
|
-
return k(
|
|
8978
|
+
return k(ny, this).items().length > 0 ? jt(k(ny, this).items()) : 0;
|
|
8968
8979
|
}
|
|
8969
8980
|
get estimatedBandwidth() {
|
|
8970
|
-
return this.connectionImpl && "estimatedBandwidth" in this.connectionImpl && this.connectionImpl.estimatedBandwidth ? this.connectionImpl.estimatedBandwidth :
|
|
8981
|
+
return this.connectionImpl && "estimatedBandwidth" in this.connectionImpl && this.connectionImpl.estimatedBandwidth ? this.connectionImpl.estimatedBandwidth : qv(this.rtt);
|
|
8971
8982
|
}
|
|
8972
8983
|
get firstConnectionTime() {
|
|
8973
|
-
return k(
|
|
8984
|
+
return k(cy, this);
|
|
8974
8985
|
}
|
|
8975
8986
|
get lastConnectionTime() {
|
|
8976
|
-
return k(
|
|
8987
|
+
return k(ly, this);
|
|
8977
8988
|
}
|
|
8978
8989
|
};
|
|
8979
|
-
|
|
8980
|
-
function
|
|
8990
|
+
ty = _y;
|
|
8991
|
+
function vy() {
|
|
8981
8992
|
var e = this;
|
|
8982
8993
|
return j(function* () {
|
|
8983
|
-
let t = new
|
|
8984
|
-
for (D(
|
|
8994
|
+
let t = new ey({ edgeUrl: e.config.options.get("edgeUrl") });
|
|
8995
|
+
for (D(uy, e, t), k(gy, e).call(e), D(ay, e, 0);;) {
|
|
8985
8996
|
var n, r, i;
|
|
8986
|
-
D(
|
|
8997
|
+
D(ay, e, (n = k(ay, e), n++, n)), D(oy, e, (r = k(oy, e), r++, r));
|
|
8987
8998
|
let o = !1;
|
|
8988
8999
|
try {
|
|
8989
9000
|
var a;
|
|
8990
|
-
let [n, r] = yield Promise.all([k(
|
|
8991
|
-
if (k(
|
|
9001
|
+
let [n, r] = yield Promise.all([k(fy, e).call(e), k(py, e).call(e)]);
|
|
9002
|
+
if (k(ny, e).clear(), r !== void 0 && k(ny, e).push(r / 2), !k(ry, e)) break;
|
|
8992
9003
|
let i = t.select(n.edges);
|
|
8993
9004
|
if (!i) throw new H("Failed to resolve edge url", {
|
|
8994
9005
|
isFatal: !0,
|
|
8995
9006
|
code: "failed_to_resolve_edge_url"
|
|
8996
9007
|
});
|
|
8997
|
-
lr(n) ? e.connectionImpl = yield
|
|
9008
|
+
lr(n) ? e.connectionImpl = yield Ev.start(e.emitter, e.logger, e.apiClient, R(R({}, e.config), {}, {
|
|
8998
9009
|
connectInfo: n,
|
|
8999
9010
|
edgeUrl: i
|
|
9000
|
-
}), k(
|
|
9011
|
+
}), k(ny, e)) : (xe(typeof i == "string", "Edge URL is expected to be a string"), e.connectionImpl = yield Jv.start(e.emitter, e.logger, R(R({}, e.config), {}, {
|
|
9001
9012
|
connectInfo: n,
|
|
9002
9013
|
edgeUrl: i
|
|
9003
|
-
}), k(
|
|
9014
|
+
}), k(ny, e))), k(hy, e).call(e), D(sy, e, (a = k(sy, e), a++, a)), D(ay, e, 0), D(ly, e, Date.now()), k(cy, e) || D(cy, e, k(ly, e)), yield e.connectionImpl.closed(), e.logger.info("Connection closed");
|
|
9004
9015
|
} catch (n) {
|
|
9005
9016
|
e.logger.warn("Failed to connect", n);
|
|
9006
9017
|
let r = t.shiftedEdge();
|
|
@@ -9012,29 +9023,29 @@ function _y() {
|
|
|
9012
9023
|
isFatal: !1
|
|
9013
9024
|
}));
|
|
9014
9025
|
}
|
|
9015
|
-
if ((i = e.connectionImpl) == null || i.unload(), e.connectionImpl = void 0, k(
|
|
9016
|
-
D(
|
|
9026
|
+
if ((i = e.connectionImpl) == null || i.unload(), e.connectionImpl = void 0, k(gy, e).call(e), o) {
|
|
9027
|
+
D(ry, e, !1);
|
|
9017
9028
|
break;
|
|
9018
9029
|
}
|
|
9019
|
-
if (!k(
|
|
9020
|
-
if (!(yield e.config.reconnectHandler({ reconnectRetries: k(
|
|
9030
|
+
if (!k(ry, e)) break;
|
|
9031
|
+
if (!(yield e.config.reconnectHandler({ reconnectRetries: k(ay, e) }))) {
|
|
9021
9032
|
e.emitter.emit("error", yi());
|
|
9022
9033
|
break;
|
|
9023
9034
|
}
|
|
9024
|
-
if (yield nr(1e3), !k(
|
|
9035
|
+
if (yield nr(1e3), !k(ry, e)) break;
|
|
9025
9036
|
}
|
|
9026
|
-
D(
|
|
9037
|
+
D(uy, e, void 0), k(gy, e).call(e), D(iy, e, void 0);
|
|
9027
9038
|
})();
|
|
9028
9039
|
}
|
|
9029
|
-
p(
|
|
9030
|
-
var
|
|
9040
|
+
p(_y, "PING_TIMEOUT", 1e3), p(_y, "EDGE_SELECTOR_RESET_TIMEOUT", 60 * 1e3), p(_y, "create", (e, t, n) => new ty(e, t, n)), V(), z(), m();
|
|
9041
|
+
var yy, by = () => ({
|
|
9031
9042
|
video: R(R({}, hr()), {}, { bitRate: mr() }),
|
|
9032
9043
|
audio: { bitRate: mr() }
|
|
9033
|
-
}),
|
|
9044
|
+
}), xy = () => ({
|
|
9034
9045
|
width: window.innerWidth,
|
|
9035
9046
|
height: window.innerHeight,
|
|
9036
9047
|
bitRate: mr()
|
|
9037
|
-
}),
|
|
9048
|
+
}), Sy = class e {
|
|
9038
9049
|
constructor(t, n, r, i) {
|
|
9039
9050
|
p(this, "emitter", void 0), p(this, "timers", new Bn()), p(this, "pictureInPictureSource", void 0), p(this, "element", void 0), p(this, "currentCap", void 0), p(this, "userSpecifiedCap", void 0), p(this, "renditionLevelSource", void 0), p(this, "resizeObserver", void 0), p(this, "elementSize", void 0), p(this, "_sizeBasedResolutionCapEnabled", void 0), p(this, "unload", () => {
|
|
9040
9051
|
var e;
|
|
@@ -9056,7 +9067,7 @@ var vy, yy = () => ({
|
|
|
9056
9067
|
this.timers.unload();
|
|
9057
9068
|
}), p(this, "setUserSpecifiedCap", (e) => {
|
|
9058
9069
|
var t;
|
|
9059
|
-
let n = (t = this.getUserSpecifiedCap()) == null ?
|
|
9070
|
+
let n = (t = this.getUserSpecifiedCap()) == null ? by() : t;
|
|
9060
9071
|
this.userSpecifiedCap = R(R({}, n), {}, {
|
|
9061
9072
|
video: R(R({}, n.video), e.video),
|
|
9062
9073
|
audio: R(R({}, n.audio), e.audio)
|
|
@@ -9080,7 +9091,7 @@ var vy, yy = () => ({
|
|
|
9080
9091
|
});
|
|
9081
9092
|
}), p(this, "evaluateConstraintCap", () => {
|
|
9082
9093
|
var e, t, n, r;
|
|
9083
|
-
let i = this.sizeBasedResolutionCapEnabled ? R(R({},
|
|
9094
|
+
let i = this.sizeBasedResolutionCapEnabled ? R(R({}, by()), {}, { video: xy() }) : by();
|
|
9084
9095
|
if (!this.resizeObserver) {
|
|
9085
9096
|
let e = this.element.getBoundingClientRect();
|
|
9086
9097
|
this.elementSize = {
|
|
@@ -9117,11 +9128,11 @@ var vy, yy = () => ({
|
|
|
9117
9128
|
this._sizeBasedResolutionCapEnabled = e, this.evaluateConstraintCap();
|
|
9118
9129
|
}
|
|
9119
9130
|
};
|
|
9120
|
-
|
|
9131
|
+
yy = Sy, p(Sy, "CHECK_SIZE_INTERVAL", 1e3), p(Sy, "create", (e, t, n, r) => new yy(e, t, n, r));
|
|
9121
9132
|
//#endregion
|
|
9122
9133
|
//#region ../../libs/web-sdk/src/decoders/audioCodecString.ts
|
|
9123
|
-
var
|
|
9124
|
-
|
|
9134
|
+
var Cy, wy = t((() => {
|
|
9135
|
+
Cy = (e) => {
|
|
9125
9136
|
switch (e) {
|
|
9126
9137
|
case "opus": return "opus";
|
|
9127
9138
|
case "aac": return "mp4a.40.2";
|
|
@@ -9132,8 +9143,8 @@ var Sy, Cy = t((() => {
|
|
|
9132
9143
|
}
|
|
9133
9144
|
}
|
|
9134
9145
|
};
|
|
9135
|
-
})),
|
|
9136
|
-
V(), m(),
|
|
9146
|
+
})), Ty, Ey = t((() => {
|
|
9147
|
+
V(), m(), Ty = class {
|
|
9137
9148
|
constructor() {
|
|
9138
9149
|
p(this, "map", /* @__PURE__ */ new Map());
|
|
9139
9150
|
}
|
|
@@ -9167,11 +9178,11 @@ var Sy, Cy = t((() => {
|
|
|
9167
9178
|
this.map.clear();
|
|
9168
9179
|
}
|
|
9169
9180
|
};
|
|
9170
|
-
})),
|
|
9171
|
-
Ia(), Lc(), V(),
|
|
9181
|
+
})), Dy = /* @__PURE__ */ n({ WebCodecsAudioDecoderContext: () => Ay }), Oy, ky, Ay, jy = t((() => {
|
|
9182
|
+
Ia(), Lc(), V(), wy(), Ey(), m(), z(), M(), ky = globalThis, Ay = class {
|
|
9172
9183
|
constructor(e) {
|
|
9173
9184
|
var t = this;
|
|
9174
|
-
p(this, "decodedSamples", []), p(this, "decoder", null), p(this, "logger", void 0), p(this, "initSegments", /* @__PURE__ */ new Map()), p(this, "previousSample", void 0), p(this, "previousCodec", void 0), p(this, "pendingSamples", new
|
|
9185
|
+
p(this, "decodedSamples", []), p(this, "decoder", null), p(this, "logger", void 0), p(this, "initSegments", /* @__PURE__ */ new Map()), p(this, "previousSample", void 0), p(this, "previousCodec", void 0), p(this, "pendingSamples", new Ty()), p(this, "errors", new S(10)), p(this, "resetDecoderState", () => {
|
|
9175
9186
|
this.pendingSamples.clear(), this.previousSample = void 0, this.previousCodec = void 0;
|
|
9176
9187
|
}), p(this, "ensureDecoder", () => ((!this.decoder || this.decoder.state === "closed") && (this.decoder = this.createDecoder()), this.decoder)), p(this, "createDecoder", () => new AudioDecoder({
|
|
9177
9188
|
output: (e) => {
|
|
@@ -9210,7 +9221,7 @@ var Sy, Cy = t((() => {
|
|
|
9210
9221
|
error: (e) => {
|
|
9211
9222
|
this.logger.error("Decoder error:", e.name, e.message), this.resetDecoderState(), this.errors.push(e);
|
|
9212
9223
|
}
|
|
9213
|
-
})), p(this, "buildCodecString",
|
|
9224
|
+
})), p(this, "buildCodecString", Cy), p(this, "getDescription", (e, t) => {
|
|
9214
9225
|
let n = this.initSegments.get(t.renditionId);
|
|
9215
9226
|
if (n && n.data.byteLength > 0 && n.codec === e) return n.data;
|
|
9216
9227
|
if (e === "opus") return Fc(t.channels, t.sampleRate);
|
|
@@ -9267,17 +9278,17 @@ var Sy, Cy = t((() => {
|
|
|
9267
9278
|
}
|
|
9268
9279
|
})), p(this, "error", () => this.errors.pop()), p(this, "take", () => this.decodedSamples.shift()), this.logger = e, this.decoder = this.createDecoder();
|
|
9269
9280
|
}
|
|
9270
|
-
},
|
|
9281
|
+
}, Oy = Ay, p(Ay, "isSupported", () => ky.AudioDecoder !== void 0), p(Ay, "create", function() {
|
|
9271
9282
|
var e = j(function* (e) {
|
|
9272
|
-
if (!
|
|
9273
|
-
return new
|
|
9283
|
+
if (!Oy.isSupported()) throw Error("WebCodecs AudioDecoder is not supported in this environment");
|
|
9284
|
+
return new Oy(e);
|
|
9274
9285
|
});
|
|
9275
9286
|
return function(t) {
|
|
9276
9287
|
return e.apply(this, arguments);
|
|
9277
9288
|
};
|
|
9278
9289
|
}());
|
|
9279
|
-
})),
|
|
9280
|
-
|
|
9290
|
+
})), My, Ny = t((() => {
|
|
9291
|
+
My = (function() {
|
|
9281
9292
|
var e = typeof document < "u" && document.currentScript ? document.currentScript.src : void 0;
|
|
9282
9293
|
return (function(t) {
|
|
9283
9294
|
t = t || {};
|
|
@@ -9478,10 +9489,10 @@ var Sy, Cy = t((() => {
|
|
|
9478
9489
|
return C(), t.ready;
|
|
9479
9490
|
});
|
|
9480
9491
|
})();
|
|
9481
|
-
})),
|
|
9482
|
-
|
|
9492
|
+
})), Py, Fy, Iy, Ly = t((() => {
|
|
9493
|
+
Ny(), m(), M(), Fy = /* @__PURE__ */ function(e) {
|
|
9483
9494
|
return e[e.OK = 0] = "OK", e[e["Bad argument"] = -1] = "Bad argument", e[e["Buffer too small"] = -2] = "Buffer too small", e[e["Internal error"] = -3] = "Internal error", e[e["Invalid packet"] = -4] = "Invalid packet", e[e.Unimplemented = -5] = "Unimplemented", e[e["Invalid state"] = -6] = "Invalid state", e[e["Memory allocation fail"] = -7] = "Memory allocation fail", e;
|
|
9484
|
-
}(
|
|
9495
|
+
}(Fy || {}), Iy = class e {
|
|
9485
9496
|
constructor(t, n, r) {
|
|
9486
9497
|
p(this, "opusModule", void 0), p(this, "decoderInstance", void 0), p(this, "opusBufferPointer", void 0), p(this, "pcmBufferPointer", void 0), p(this, "channels", void 0), p(this, "pcmBufferByteSize", () => e.MAX_SAMPLES * this.channels * Float32Array.BYTES_PER_ELEMENT), p(this, "unload", () => {
|
|
9487
9498
|
this.opusModule._free(this.opusBufferPointer), this.opusModule._free(this.pcmBufferPointer), this.opusModule._opus_decoder_destroy(this.decoderInstance);
|
|
@@ -9489,23 +9500,23 @@ var Sy, Cy = t((() => {
|
|
|
9489
9500
|
if (t.byteLength > e.MAX_OPUS_BUFFER) throw Error(`Opus packet too large (${t.byteLength} bytes), max ${e.MAX_OPUS_BUFFER} bytes`);
|
|
9490
9501
|
this.opusModule.HEAPU8.set(t, this.opusBufferPointer);
|
|
9491
9502
|
let n = this.opusModule._opus_decode_float(this.decoderInstance, this.opusBufferPointer, t.byteLength, this.pcmBufferPointer, e.MAX_SAMPLES, 0);
|
|
9492
|
-
if (n < 0) throw Error(`${
|
|
9503
|
+
if (n < 0) throw Error(`${Fy[n]} (${n})`);
|
|
9493
9504
|
let r = this.pcmBufferPointer / Float32Array.BYTES_PER_ELEMENT;
|
|
9494
9505
|
return this.opusModule.HEAPF32.subarray(r, r + n * this.channels);
|
|
9495
9506
|
}), this.opusModule = t, this.channels = r, this.decoderInstance = this.opusModule._opus_decoder_create(n, r, 0), this.opusBufferPointer = this.opusModule._malloc(e.MAX_OPUS_BUFFER), this.pcmBufferPointer = this.opusModule._malloc(this.pcmBufferByteSize());
|
|
9496
9507
|
}
|
|
9497
|
-
},
|
|
9508
|
+
}, Py = Iy, p(Iy, "MAX_OPUS_BUFFER", 16384), p(Iy, "MAX_SAMPLES", 6 * 960), p(Iy, "create", function() {
|
|
9498
9509
|
var e = j(function* (e, t) {
|
|
9499
|
-
return new
|
|
9510
|
+
return new Py(yield My(), e, t);
|
|
9500
9511
|
});
|
|
9501
9512
|
return function(t, n) {
|
|
9502
9513
|
return e.apply(this, arguments);
|
|
9503
9514
|
};
|
|
9504
9515
|
}());
|
|
9505
|
-
})),
|
|
9506
|
-
|
|
9507
|
-
})),
|
|
9508
|
-
wi(), V(),
|
|
9516
|
+
})), Ry = t((() => {
|
|
9517
|
+
Ly();
|
|
9518
|
+
})), zy = /* @__PURE__ */ n({ OpusDecoderContext: () => Vy }), By, Vy, Hy = t((() => {
|
|
9519
|
+
wi(), V(), Ry(), m(), z(), M(), Vy = class {
|
|
9509
9520
|
constructor(e) {
|
|
9510
9521
|
p(this, "decodedSamples", []), p(this, "decoder", void 0), p(this, "errors", new S(10)), p(this, "unload", () => {
|
|
9511
9522
|
this.decoder.unload();
|
|
@@ -9531,9 +9542,9 @@ var Sy, Cy = t((() => {
|
|
|
9531
9542
|
error() {
|
|
9532
9543
|
return this.errors.pop();
|
|
9533
9544
|
}
|
|
9534
|
-
},
|
|
9545
|
+
}, By = Vy, p(Vy, "create", function() {
|
|
9535
9546
|
var e = j(function* (e, t) {
|
|
9536
|
-
return new
|
|
9547
|
+
return new By(yield Iy.create(e, t));
|
|
9537
9548
|
});
|
|
9538
9549
|
return function(t, n) {
|
|
9539
9550
|
return e.apply(this, arguments);
|
|
@@ -9542,22 +9553,22 @@ var Sy, Cy = t((() => {
|
|
|
9542
9553
|
}));
|
|
9543
9554
|
//#endregion
|
|
9544
9555
|
//#region ../../libs/web-sdk/src/decoders/VideoDecoder.worker.ts?worker&inline
|
|
9545
|
-
function
|
|
9556
|
+
function Uy(e) {
|
|
9546
9557
|
let t;
|
|
9547
9558
|
try {
|
|
9548
|
-
if (t =
|
|
9559
|
+
if (t = Gy && (self.URL || self.webkitURL).createObjectURL(Gy), !t) throw "";
|
|
9549
9560
|
let n = new Worker(t, { name: e == null ? void 0 : e.name });
|
|
9550
9561
|
return n.addEventListener("error", () => {
|
|
9551
9562
|
(self.URL || self.webkitURL).revokeObjectURL(t);
|
|
9552
9563
|
}), n;
|
|
9553
9564
|
} catch (t) {
|
|
9554
|
-
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(
|
|
9565
|
+
return new Worker("data:text/javascript;charset=utf-8," + encodeURIComponent(Wy), { name: e == null ? void 0 : e.name });
|
|
9555
9566
|
}
|
|
9556
9567
|
}
|
|
9557
|
-
var
|
|
9558
|
-
Uy = "var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n(function() {\n var _e2, _t, _n, _a, _e3, _t2, _n2, _r, _b, _i, _c, _d, _e4;\n var e = class {\n constructor(e2 = 50) {\n __publicField(this, \"maxSize\");\n __publicField(this, \"values\", []);\n __publicField(this, \"start\", 0);\n __publicField(this, \"size\", () => this.values.length - this.start);\n __publicField(this, \"compact\", () => {\n if (this.start !== 0) {\n if (this.start >= this.values.length) {\n this.values = [], this.start = 0;\n return;\n }\n this.start < 32 && this.start * 2 < this.values.length || (this.values = this.values.slice(this.start), this.start = 0);\n }\n });\n __publicField(this, \"push\", (e2) => {\n this.isFull() && (this.start++, this.compact()), this.values.push(e2);\n });\n __publicField(this, \"clear\", () => {\n this.values = [], this.start = 0;\n });\n __publicField(this, \"pop\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values[this.start];\n return this.start++, this.compact(), e2;\n });\n __publicField(this, \"popLast\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values.pop();\n return this.start >= this.values.length && this.clear(), e2;\n });\n __publicField(this, \"peekFirst\", () => this.isEmpty() ? void 0 : this.values[this.start]);\n __publicField(this, \"peekLast\", () => this.isEmpty() ? void 0 : this.values[this.values.length - 1]);\n __publicField(this, \"isFull\", () => this.size() >= this.maxSize);\n __publicField(this, \"isEmpty\", () => this.size() === 0);\n __publicField(this, \"items\", () => this.start === 0 ? this.values : this.values.slice(this.start));\n __publicField(this, \"filterPop\", (e2) => {\n for (; !this.isEmpty(); ) {\n let t2 = this.peekFirst();\n if (t2 === void 0 || e2(t2)) return;\n this.pop();\n }\n });\n this.maxSize = e2;\n }\n }, t = (_a = class {\n constructor(e2, t2 = 0) {\n __privateAdd(this, _e2);\n __privateAdd(this, _t);\n __privateAdd(this, _n);\n __publicField(this, \"position\", () => __privateGet(this, _n));\n __publicField(this, \"peekBit\", () => this.getBit(__privateGet(this, _t), __privateGet(this, _n)));\n __publicField(this, \"readBit\", () => {\n let e2 = this.peekBit();\n return __privateWrapper(this, _n)._++, e2;\n });\n __publicField(this, \"readBits\", (e2) => {\n let t2 = 0;\n for (let n2 = 0; n2 < e2; n2++) t2 = t2 << 1 | (this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) ? 1 : 0);\n return t2;\n });\n __publicField(this, \"remainingBits\", () => __privateGet(this, _t).byteLength * 8 - __privateGet(this, _n));\n __publicField(this, \"readSignedExpGolomb\", () => {\n let e2 = this.readUnsignedExpGolomb();\n return e2 & 1 ? (e2 + 1) / 2 : -(e2 / 2);\n });\n __publicField(this, \"readUnsignedExpGolomb\", () => {\n let e2 = 0;\n for (; this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) === 0; ) e2++;\n let t2 = 1 << e2;\n for (let n2 = e2 - 1; n2 >= 0; n2--) t2 |= this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) << n2;\n return t2 - 1;\n });\n __publicField(this, \"getBit\", (e2, t2) => {\n if (e2.byteLength * 8 <= t2) throw Error(`BitReader: Out of bounds`);\n return e2[t2 >> 3] >> 7 - (t2 & 7) & 1;\n });\n __privateSet(this, _e2, e2), __privateSet(this, _t, new Uint8Array(__privateGet(this, _e2))), __privateSet(this, _n, t2);\n }\n bytes() {\n return __privateGet(this, _t);\n }\n }, _e2 = new WeakMap(), _t = new WeakMap(), _n = new WeakMap(), _a);\n let n = [`off`, `error`, `warn`, `info`, `debug`, `trace`];\n var r = (_b = class {\n constructor({ context: e2, logLevel: t2, debug: n2 }) {\n __privateAdd(this, _e3, /* @__PURE__ */ new Map());\n __privateAdd(this, _t2, ``);\n __privateAdd(this, _n2, false);\n __privateAdd(this, _r, `off`);\n __publicField(this, \"trace\", (...e2) => {\n });\n __publicField(this, \"debug\", (...e2) => {\n });\n __publicField(this, \"info\", (...e2) => {\n });\n __publicField(this, \"warn\", (...e2) => {\n });\n __publicField(this, \"error\", (...e2) => {\n });\n __publicField(this, \"table\", (...e2) => {\n });\n __publicField(this, \"count\", (...e2) => {\n });\n __privateSet(this, _t2, e2), __privateSet(this, _r, t2), __privateSet(this, _n2, n2 || false), this.setLevel(t2), this.setDebug(__privateGet(this, _n2));\n }\n setDebug(e2) {\n __privateSet(this, _n2, e2);\n for (let [t2, n2] of __privateGet(this, _e3)) n2.setDebug(e2);\n e2 ? (this.table = console.table.bind(console), this.count = console.count.bind(console)) : (this.table = () => {\n }, this.count = () => {\n });\n }\n setLevel(e2) {\n __privateSet(this, _r, e2);\n for (let [t3, n2] of __privateGet(this, _e3)) n2.setLevel(e2);\n let t2 = n.indexOf(e2);\n for (let [e3, r2] of n.entries()) r2 !== `off` && (e3 <= t2 ? this[r2] = console[r2].bind(console, `%c%s %c%s`, `font-weight:bold;`, r2.toUpperCase(), `font-weight:normal;`, __privateGet(this, _t2)) : this[r2] = () => {\n });\n }\n createContext(t2) {\n let n2 = __privateGet(this, _e3).get(t2);\n if (!n2) {\n let n3 = new _b({ context: `${t2}`, logLevel: __privateGet(this, _r), debug: __privateGet(this, _n2) });\n return __privateGet(this, _e3).set(t2, n3), n3;\n }\n return n2;\n }\n static get() {\n return __privateGet(_b, _i) || __privateSet(_b, _i, new _b({ context: `Vindral`, logLevel: `off` })), __privateGet(_b, _i);\n }\n }, _e3 = new WeakMap(), _t2 = new WeakMap(), _n2 = new WeakMap(), _r = new WeakMap(), _i = new WeakMap(), __privateAdd(_b, _i), _b);\n let i = { backgroundColor: `rgba(0,0,0,0.6)`, textPadding: 8, fontSize: `28px`, lineGap: 16 };\n function a(e2, t2) {\n let n2 = t2 * 0.05, r2 = e2 * 0.035;\n return `${Math.max(Math.round(Math.min(n2, r2)), 16)}px`;\n }\n function o(e2) {\n var _a2;\n let { subtitleWidth: t2, subtitleHeight: n2, canvasWidth: r2, canvasHeight: i2, containerWidth: a2, bottomPadding: o2 } = e2, s2 = (_a2 = e2.baseMargin) != null ? _a2 : 20, c2 = r2 / a2, l2 = t2 * c2, u2 = n2 * c2;\n return { drawWidth: l2, drawHeight: u2, x: (r2 - l2) / 2, y: i2 - u2 - (o2 + s2) * c2 };\n }\n var s = class extends Error {\n constructor(e2, t2, n2 = {}) {\n super(e2);\n __publicField(this, \"props\");\n __publicField(this, \"extra\", {});\n __publicField(this, \"code\", () => this.props.code);\n __publicField(this, \"isFatal\", () => this.props.isFatal);\n __publicField(this, \"source\", () => this.props.source);\n __publicField(this, \"type\", () => {\n var _a2;\n return (_a2 = this.props.type) != null ? _a2 : `external`;\n });\n __publicField(this, \"toStringifiable\", () => {\n var _a2;\n let e2 = this.source(), t2 = e2 instanceof Error ? e2.stack : this.stack;\n return __spreadProps(__spreadValues({}, this.extra), { code: this.props.code, isFatal: this.props.isFatal, type: this.props.type, message: this.message, sourceMessage: (_a2 = this.source()) == null ? void 0 : _a2.message, stack: t2 });\n });\n this.props = t2, this.extra = n2, Object.setPrototypeOf(this, new.target.prototype);\n }\n };\n let c = (e2, t2) => new s(`No init segment for rendition id ${e2} for channel ${t2}`, { isFatal: false, code: `missing_init_segment`, type: `internal` }), l = (e2) => {\n let t2 = e2.getUint32(0, false), n2 = e2.getUint8(0) << 16 | e2.getUint16(1, false), r2 = 0;\n return n2 === 1 ? r2 += 3 : t2 === 1 && (r2 += 4), r2;\n }, u = (e2) => l(new DataView(e2, 0)) !== 0, d = (e2, t2 = 0) => {\n for (let n2 = t2; n2 < e2.byteLength - 4; n2++) {\n let t3 = e2.getUint32(n2) === 1, r2 = (e2.getUint8(n2) << 16 | e2.getUint16(n2 + 1)) == 1;\n if (t3 || r2) return { position: n2, nalPrefixSize: t3 ? 4 : 3 };\n }\n }, f = (e2) => e2 & 31, p = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = d(n2);\n for (; r2; ) {\n let { position: i2, nalPrefixSize: a2 } = r2, o2 = d(n2, i2 + 4), s2 = o2 ? o2.position - i2 - a2 : void 0;\n if (!t2(new DataView(e2, i2 + a2, s2), a2)) return;\n r2 = o2;\n }\n }, m = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = 0;\n for (; r2 < e2.byteLength; ) {\n let i2 = n2.getUint32(r2);\n if (!t2(new DataView(e2, r2 + 4, i2))) return;\n r2 += i2 + 4;\n }\n }, h = (e2) => {\n let t2 = [], n2 = [];\n if (!u(e2)) {\n let r2 = new DataView(e2, 0), i2 = r2.getUint8(5) & 31, a2 = 6;\n for (let n3 = 0; n3 < i2; n3++) {\n let n4 = r2.getUint16(a2);\n t2.push(e2.slice(a2 + 2, a2 + 2 + n4)), a2 += n4 + 2;\n }\n let o2 = r2.getUint8(a2);\n a2 += 1;\n for (let t3 = 0; t3 < o2; t3++) {\n let t4 = r2.getUint16(a2);\n n2.push(e2.slice(a2 + 2, a2 + 2 + t4)), a2 += t4 + 2;\n }\n return { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }\n return p(e2, (e3) => {\n let r2 = e3.byteOffset + e3.byteLength;\n switch (f(e3.getUint8(0))) {\n case 8:\n n2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n case 7:\n t2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n }\n return true;\n }), { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }, g = (e2) => {\n var _a2;\n let n2 = new DataView(e2), r2 = n2.getUint8(1), i2 = n2.getUint8(2), a2 = n2.getUint8(3), o2 = new t(e2, 32);\n o2.readUnsignedExpGolomb();\n let s2 = 1;\n switch (r2) {\n case 100:\n case 110:\n case 122:\n case 244:\n case 44:\n case 83:\n case 86:\n case 118:\n case 128:\n case 138:\n case 144:\n if (s2 = o2.readUnsignedExpGolomb(), s2 === 3 && o2.readBits(1), o2.readUnsignedExpGolomb() + 8, o2.readUnsignedExpGolomb() + 8, o2.readBit(), o2.readBit()) {\n for (let e3 = 0; e3 < (s2 === 3 ? 12 : 8); e3++) if (o2.readBit()) {\n let t2 = e3 < 6 ? 16 : 64, n3 = 0, r3 = 8, i3 = 8;\n for (let e4 = 0; e4 < t2; e4++) i3 !== 0 && (n3 = o2.readSignedExpGolomb(), i3 = (r3 + n3 + 256) % 256), r3 = i3 === 0 ? r3 : i3;\n }\n }\n break;\n default:\n break;\n }\n o2.readUnsignedExpGolomb();\n let c2 = o2.readUnsignedExpGolomb();\n if (c2 === 0) o2.readUnsignedExpGolomb();\n else if (c2 === 1) throw Error(`Unhandled case`);\n o2.readUnsignedExpGolomb(), o2.readBit();\n let l2 = o2.readUnsignedExpGolomb(), u2 = o2.readUnsignedExpGolomb(), d2 = o2.readBit();\n d2 === 0 && o2.readBit(), o2.readBit();\n let f2 = l2 + 1, p2 = u2 + 1;\n if (p2 *= 2 - d2, p2 *= 16, f2 *= 16, o2.readBit()) {\n let e3 = s2 === 1 ? 1 : 0, t2 = 1 << (s2 === 1 || s2 === 2 ? 1 : 0), n3 = 2 - d2 << e3, r3 = o2.readUnsignedExpGolomb() * t2, i3 = o2.readUnsignedExpGolomb() * t2, a3 = o2.readUnsignedExpGolomb() * n3, c3 = o2.readUnsignedExpGolomb() * n3;\n f2 -= r3 + i3, p2 -= a3 + c3;\n }\n let m2 = { numerator: 1, denumerator: 1 };\n return o2.readBit() && o2.readBit() && (m2 = (_a2 = _[o2.readBits(8)]) != null ? _a2 : { numerator: 0, denumerator: 0 }), { width: f2, height: p2, pixelAspectRatio: m2, profileIdc: r2, constraintFlags: i2, levelIdc: a2 };\n }, _ = [{ numerator: 0, denumerator: 0 }, { numerator: 1, denumerator: 1 }, { numerator: 12, denumerator: 11 }, { numerator: 10, denumerator: 11 }, { numerator: 16, denumerator: 11 }, { numerator: 40, denumerator: 33 }, { numerator: 24, denumerator: 11 }, { numerator: 20, denumerator: 11 }, { numerator: 32, denumerator: 11 }, { numerator: 80, denumerator: 33 }, { numerator: 18, denumerator: 11 }, { numerator: 15, denumerator: 11 }, { numerator: 64, denumerator: 33 }, { numerator: 160, denumerator: 99 }, { numerator: 4, denumerator: 3 }, { numerator: 3, denumerator: 2 }, { numerator: 2, denumerator: 1 }], v = (e2) => {\n let n2 = new t(e2);\n return n2.peekBit() === 1 && n2.readBits(32), S(n2), C(n2);\n }, y = (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = v(e2), n2 = t2.seqProfile, r2 = (_b2 = (_a2 = t2.operatingPoints[0]) == null ? void 0 : _a2.seqLevelIdx) != null ? _b2 : 0, i2 = (_d2 = (_c2 = t2.operatingPoints[0]) == null ? void 0 : _c2.tier) != null ? _d2 : 0, a2 = t2.colorConfig.bitDepth, o2 = `av01.${n2}.${r2.toString().padStart(2, `0`)}${i2 === 0 ? `M` : `H`}.${a2.toString().padStart(2, `0`)}`;\n return { codecString: `${o2}.${t2.colorConfig.monoChrome ? 1 : 0}.${`${t2.colorConfig.subsamplingX}${t2.colorConfig.subsamplingY}${t2.colorConfig.chromaSamplePosition}`}.${t2.colorConfig.colorPrimaries.toString().padStart(2, `0`)}.${t2.colorConfig.transferCharacteristics.toString().padStart(2, `0`)}.${t2.colorConfig.matrixCoefficients.toString().padStart(2, `0`)}.${t2.colorConfig.colorRange ? 1 : 0}`, fallbackCodecString: o2, width: t2.maxFrameWidth, height: t2.maxFrameHeight };\n }, b = (e2) => {\n let t2 = 0, n2 = 0;\n for (let r2 = 0; r2 < 8; r2++) {\n let i2 = e2.readBits(8);\n if (t2 |= (i2 & 127) << r2 * 7, n2 += 1, (i2 & 128) != 128) break;\n }\n return [n2, t2];\n }, x = (e2) => {\n let t2 = 0;\n for (; t2 < 100 && e2.readBit() === 0; ) t2++;\n return t2 >= 32 ? 0 : e2.readBits(t2) + (1 << t2) - 1;\n }, S = (e2) => {\n let t2 = e2.remainingBits() / 8, n2 = e2.readBits(8);\n if (n2 >> 7 & 1) return;\n let r2 = n2 >> 3 & 15, i2 = n2 >> 2 & 1, a2 = n2 >> 1 & 1;\n i2 === 1 && e2.readBits(8);\n let [o2, s2] = a2 ? b(e2) : [0, t2];\n return { headerLength: 1 + i2 + o2, type: r2, obuSize: s2 };\n }, ee = (e2) => {\n let t2 = e2.readBits(32), n2 = e2.readBits(32), r2 = e2.readBit() !== 0, i2 = 0;\n return r2 && (i2 = x(e2) + 1), { timescale: n2, equalPictureInterval: r2, numUnitsInDisplayTick: t2, numTicksPerPicture: i2 };\n }, C = (e2) => {\n let t2 = e2.readBits(3), n2 = e2.readBit() !== 0, r2 = e2.readBit() !== 0, i2, a2 = false, o2 = false, s2 = false, c2 = 0, l2 = 0, u2 = [];\n if (r2) e2.readBits(5);\n else {\n if (o2 = e2.readBit() !== 0, o2 && (i2 = ee(e2), a2 = e2.readBit() !== 0, a2)) throw Error(`Not implemented`);\n s2 = e2.readBit() !== 0;\n let t3 = e2.readBits(5) + 1;\n for (let n3 = 0; n3 < t3; n3++) {\n let t4 = e2.readBits(12), n4 = e2.readBits(5), r3 = 0;\n if (n4 > 7 && (r3 = e2.readBit()), a2) throw Error(`decoderModelInfoPresentFlag==1`);\n s2 && e2.readBit() !== 0 && e2.readBits(4), u2.push({ tier: r3, operatingPointIdc: t4, seqLevelIdx: n4 });\n }\n }\n let d2 = e2.readBits(4) + 1, f2 = e2.readBits(4) + 1, p2 = e2.readBits(d2) + 1, m2 = e2.readBits(f2) + 1, h2 = false;\n h2 = r2 ? false : e2.readBit() !== 0, h2 && (c2 = e2.readBits(4) + 2, l2 = e2.readBits(3) + 1);\n let g2 = e2.readBit() !== 0, _2 = e2.readBit() !== 0, v2 = e2.readBit() !== 0, y2 = false, b2 = false, x2 = false, S2 = false, C2 = false, w2 = false, T2 = false, E2 = 2, D2 = 2, O2 = 0;\n r2 || (y2 = e2.readBit() !== 0, b2 = e2.readBit() !== 0, x2 = e2.readBit() !== 0, S2 = e2.readBit() !== 0, C2 = e2.readBit() !== 0, C2 && (w2 = e2.readBit() !== 0, T2 = e2.readBit() !== 0), E2 = e2.readBit() === 0 ? e2.readBit() : 2, D2 = E2 > 0 ? e2.readBit() > 0 ? 2 : e2.readBit() : 2, O2 = C2 ? e2.readBits(3) : 0);\n let k2 = e2.readBit() !== 0, A2 = e2.readBit() !== 0, j2 = e2.readBit() !== 0;\n return { seqProfile: t2, stillPicture: n2, reducedStillPictureHeader: r2, timingInfoPresentFlag: o2, timingInfo: i2 != null ? i2 : { equalPictureInterval: false, numUnitsInDisplayTick: 0, timescale: 0, numTicksPerPicture: 0 }, decoderModelInfoPresentFlag: a2, initialDisplayDelayPresentFlag: s2, operatingPoints: u2, frameWidthBits: d2, frameHeightBits: f2, maxFrameWidth: p2, maxFrameHeight: m2, frameIdNumbersPresentFlag: h2, deltaFrameIdLength: c2, additionalFrameIdLength: l2, use_128x128Superblock: g2, enableFilterIntra: _2, enableIntraEdgeFilter: v2, enableInterintraCompound: y2, enableMaskedCompound: b2, enableWarpedMotion: x2, enableDualFilter: S2, enableOrderHint: C2, enableJntComp: w2, enableRefFrameMvs: T2, seqForceScreenContentTools: E2, seqForceIntegerMv: D2, orderHintBits: O2, enableSuperres: k2, enableCdef: A2, enableRestoration: j2, colorConfig: te(e2, t2), filmGrainParamsPresent: e2.readBit() !== 0 };\n }, te = (e2, t2) => {\n let n2 = e2.readBit() !== 0, r2 = 8, i2 = false;\n t2 === 2 && n2 ? r2 = e2.readBit() === 0 ? 10 : 12 : t2 <= 2 && (r2 = n2 ? 10 : 8), i2 = t2 === 1 ? false : e2.readBit() !== 0;\n let a2 = i2 ? 1 : 3, o2 = e2.readBit() !== 0, s2 = 2, c2 = 2, l2 = 2, u2 = false, d2 = 0, f2 = 0, p2 = 0, m2 = false;\n return o2 && (s2 = e2.readBits(8), c2 = e2.readBits(8), l2 = e2.readBits(8)), i2 ? (u2 = e2.readBit() !== 0, d2 = 1, f2 = 1, p2 = 0, m2 = false, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : s2 === 1 && c2 === 13 && l2 === 0 ? (u2 = true, d2 = 0, f2 = 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : (u2 = e2.readBit() !== 0, t2 === 0 ? (d2 = 1, f2 = 1) : t2 === 1 ? (d2 = 0, f2 = 0) : r2 === 12 ? (d2 = e2.readBit(), f2 = d2 === 0 ? 0 : e2.readBit()) : (d2 = 1, f2 = 0), d2 !== 0 && f2 !== 0 && (p2 = e2.readBits(2)), m2 = e2.readBit() !== 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 });\n };\n var w = (function() {\n var e2 = typeof document < `u` && document.currentScript ? document.currentScript.src : void 0;\n return (function(t2) {\n t2 || (t2 = {});\n var n2;\n n2 || (n2 = t2 === void 0 ? {} : t2);\n var r2, i2;\n n2.ready = new Promise(function(e3, t3) {\n r2 = e3, i2 = t3;\n });\n var a2 = {}, o2;\n for (o2 in n2) n2.hasOwnProperty(o2) && (a2[o2] = n2[o2]);\n var s2 = ``, c2;\n s2 = self.location.href, e2 && (s2 = e2), s2 = s2.indexOf(`blob:`) === 0 ? `` : s2.substr(0, s2.lastIndexOf(`/`) + 1), c2 = function(e3) {\n try {\n var t3 = new XMLHttpRequest();\n return t3.open(`GET`, e3, false), t3.responseType = `arraybuffer`, t3.send(null), new Uint8Array(t3.response);\n } catch (t4) {\n if (e3 = ie2(e3)) return e3;\n throw t4;\n }\n };\n var l2 = n2.printErr || console.warn.bind(console);\n for (o2 in a2) a2.hasOwnProperty(o2) && (n2[o2] = a2[o2]);\n a2 = null;\n var u2;\n n2.wasmBinary && (u2 = n2.wasmBinary), n2.noExitRuntime, typeof WebAssembly != `object` && D2(`no native wasm support detected`);\n var d2, f2 = false, p2, m2, h2, g2, _2, v2, y2;\n function b2() {\n var e3 = d2.buffer;\n p2 = e3, n2.HEAP8 = m2 = new Int8Array(e3), n2.HEAP16 = g2 = new Int16Array(e3), n2.HEAP32 = _2 = new Int32Array(e3), n2.HEAPU8 = h2 = new Uint8Array(e3), n2.HEAPU16 = new Uint16Array(e3), n2.HEAPU32 = new Uint32Array(e3), n2.HEAPF32 = v2 = new Float32Array(e3), n2.HEAPF64 = y2 = new Float64Array(e3);\n }\n var x2, S2 = [], ee2 = [], C2 = [];\n function te2() {\n var e3 = n2.preRun.shift();\n S2.unshift(e3);\n }\n var w2 = 0, T2 = null, E2 = null;\n n2.preloadedImages = {}, n2.preloadedAudios = {};\n function D2(e3) {\n throw n2.onAbort && n2.onAbort(e3), l2(e3), f2 = true, e3 = new WebAssembly.RuntimeError(`abort(` + e3 + `). Build with -s ASSERTIONS=1 for more info.`), i2(e3), e3;\n }\n var O2 = `data:application/octet-stream;base64,`, k2 = `data:application/octet-stream;base64,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agwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0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FUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0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aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANA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NgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDg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OA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAH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IAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSEDIARBAWtBA08NAUEAIQEMAgtBASEBIABBrAlqKAIAIAAoApgJRw0DDAQLIARBfHEhCUEAIQEDQCACIAMgAUHYAWxqKALEAUEAR2ogAyABQQFyQdgBbGooAsQBQQBHaiADIAFBAnJB2AFsaigCxAFBAEdqIAMgAUEDckHYAWxqKALEAUEAR2ohAiABQQRqIQEgCUEEayIJDQALCyAGRQ0AA0AgAiADIAFB2AFsaigCxAFBAEdqIQIgAUEBaiEBIAZBAWsiBg0ACwtBASEBIAIgBEYNAQtBACEBCyABRQ0BIABBATYCnAkLIAAoArwJIQVBACEmQQAhMCMAQbABayIIJAAgAEG4CmoiMiIlKAIIIgEEQCAlKAIEIihBBnQhPyAoQTBsIUAgKEEFdCEiIChBUGwhHiABIChsIgFBBnQhQSABQQh0IUJBACAoQQN0Ih1rIhFBAXQhG0EAIChBBHQiIGsiGUECdCFDIBlBAXQhJCAIQRhqIS4gCEEMciFEA0ACQCAFKAIIIgNBAUYNAAJ/AkACQAJAAkACQCAFKALIASIBRQRAQQEhAgwBC0EFIQIgA0ECRw0AQQVBASAFKAIEIg0gASgCBEYbIQIgBSgCzAEiBw0BDAQLIAUoAswBIgdFBEBBACEHDAMLIANBAkcNASAFKAIEIQ0LIA0gBygCBEcNAQsgAkECciECCyACQQJxRQ0AAkAgBSgCAEEFTQRAIAcoAgBBBkkNAQsgCEEENgJAIAhBBDYCSCAIQQQ2AjggCEEENgIwQQEhDUEAIRpBAAwCC0ECIQxBAiENAkAgBS8BHA0AIAcvATANAEEBIQ0gBSgCdCAHKAJ8Rw0AIAUuAYQBIAcuAawBayIDIANBH3UiA2ogA3NBA0sNACAFLgGGASAHLgGuAWsiAyADQR91IgNqIANzQQNLIQ0LIAggDTYCMAJAIAUvAR4NACAHLwEyDQBBASEMIAUoAnQgBygCfEcNACAFLgGIASAHLgGwAWsiAyADQR91IgNqIANzQQNLDQAgBS4BigEgBy4BsgFrIgMgA0EfdSIDaiADc0EDSyEMCyAIIAw2AjhBAiEPQQIhEAJAIAUvASQNACAHLwE4DQBBASEQIAUoAnggBygCgAFHDQAgBS4BlAEgBy4BvAFrIgMgA0EfdSIDaiADc0EDSw0AIAUuAZYBIAcuAb4BayIDIANBH3UiA2ogA3NBA0shEAsgCCAQNgJAAkAgBS8BJg0AIAcvAToNAEEBIQ8gBSgCeCAHKAKAAUcNACAFLgGYASAHLgHAAWsiAyADQR91IgNqIANzQQNLDQAgBS4BmgEgBy4BwgFrIgMgA0EfdSIDaiADc0EDSyEPCyAIIA82AkhBACEaIAwgDXIgEHIgD3IiA0EARyENIANFDAELQQAhDSAIQQA2AkAgCEEANgJIIAhBADYCOCAIQQA2AjBBASEaQQELIQMCQAJAAkAgAkEEcSIzBEACQCAFKAIAIgJBBU0EQCABKAIAQQZJDQELIAhBBDYCdCAIQQQ2ApQBIAhBBDYCVCAIQQQ2AjRBASENDAILQQIhD0ECIRACQCAFLwEcDQAgAS8BJg0AQQEhECAFKAJ0IAEoAnhHDQAgBS4BhAEgAS4BmAFrIgQgBEEfdSIEaiAEc0EDSw0AIAUuAYYBIAEuAZoBayIEIARBH3UiBGogBHNBA0shEAsgCCAQNgI0AkAgBS8BIA0AIAEvASoNAEEBIQ8gBSgCdCABKAJ4Rw0AIAUuAYwBIAEuAaABayIEIARBH3UiBGogBHNBA0sNACAFLgGOASABLgGiAWsiBCAEQR91IgRqIARzQQNLIQ8LIAggDzYCVEECIQpBAiEMAkAgBS8BLA0AIAEvATYNAEEBIQwgBSgCfCABKAKAAUcNACAFLgGkASABLgG4AWsiBCAEQR91IgRqIARzQQNLDQAgBS4BpgEgAS4BugFrIgQgBEEfdSIEaiAEc0EDSyEMCyAIIAw2AnQCQCAFLwEwDQAgAS8BOg0AQQEhCiAFKAJ8IAEoAoABRw0AIAUuAawBIAEuAcABayIEIARBH3UiBGogBHNBA0sNACAFLgGuASABLgHCAWsiASABQR91IgFqIAFzQQNLIQoLIAggCjYClAFBASENIANFDQIgDyAQciAMciAKckEARyENDAILIAhBADYCdCAIQQA2ApQBIAhBADYCVCAIQQA2AjQgBSgCACECCyACQQZJDQAgCEEDNgKgASAIQoOAgIAwNwKkASAIQQM2ApABIAhBAzYCcCAIQQM2AqwBIAhCg4CAgDA3A5gBIAhCg4CAgDA3A4gBIAhCg4CAgDA3A4ABIAhCg4CAgDA3A3ggCEKDgICAMDcDaCAIQoOAgIAwNwNgIAhCg4CAgDA3A1ggCEKDgICAMDcCTCAIQQM2AkQgCEEDNgI8DAELAkACfyACQQNNBEAgAkECdEGMNWooAgAMAQtBBAtBAUYEQCAIAn8CQCAFLwEgIgkNACAFLwEcDQBBAAwBC0ECCzYCUCAIAn8CQCAFLwEiIgENACAFLwEeDQBBAAwBC0ECCzYCWCAIAn8CQCAFLwEoIgINACAFLwEkDQBBAAwBC0ECCzYCYCAIAn8CQCAFLwEqIgYNACAFLwEmDQBBAAwBC0ECCzYCaCAIQQIgCUEAR0EBdCAFLwEsIgcbNgJwIAhBAiABQQBHQQF0IAUvAS4iAxs2AnggCEECIAJBAEdBAXQgBS8BNCIEGzYCgAEgCEECIAZBAEdBAXQgBS8BNiILGzYCiAEgCCAFLwEwIg4gB3JBAEdBAXQ2ApABIAggBS8BMiIQIANyQQBHQQF0NgKYASAIIAUvATgiDCAEckEAR0EBdDYCoAEgCCAFLwE6IhIgC3JBAEdBAXQ2AqgBQQIhD0ECIQogCCAFLwEeBH9BAgVBACEPIAUvARxBAEdBAXQLNgI8IAhBAiAPIAUvASQiChs2AkQgBS8BJiEPIAggDCASckEAR0EBdDYCrAEgCCAMIBByQQBHQQF0NgKkASAIIA4gEHJBAEdBAXQ2ApwBIAggBCALckEAR0EBdDYCjAEgCCADIARyQQBHQQF0NgKEASAIIAMgB3JBAEdBAXQ2AnwgCCACIAZyQQBHQQF0NgJsIAggASACckEAR0EBdDYCZCAIIAEgCXJBAEdBAXQ2AlwgCCAKIA9yQQBHQQF0NgJMIAgoAqwBIRYgCCgCpAEhDyAIKAKcASEVIAgoAowBISEgCCgChAEhCiAIKAJ8ISkgCCgCbCEXIAgoAmQhASAIKAJcIQYgCCgCTCEJIAgoAkQhAiAIKAI8IQ4gCCgCqAEhAyAIKAKgASEqIAgoApgBIRwgCCgCkAEhIyAIKAKIASELIAgoAoABIRMgCCgCeCESIAgoAnAhFCAIKAJoIQcgCCgCYCEEIAgoAlghECAIKAJQIQwMAQsgCAJ/AkAgCAJ/AkACQAJAAkACQCAFKAIAQQJrDgIAAQILIAgCfwJAIAUvASAiIQ0AIAUvARwNAEEADAELQQILIgw2AlAgCAJ/AkAgBS8BIiIKDQAgBS8BHg0AQQAMAQtBAgsiEDYCWCAIAn8CQCAFLwEoIgENACAFLwEkDQBBAAwBC0ECCyIENgJgIAgCfwJAIAUvASoiFw0AIAUvASYNAEEADAELQQILIgc2AmggCAJ/AkAgBS8BMCIrDQAgBS8BLA0AQQAMAQtBAgsiIzYCkAEgCAJ/AkAgBS8BMiIVDQAgBS8BLg0AQQAMAQtBAgsiHDYCmAEgCAJ/AkAgBS8BOCIPDQAgBS8BNA0AQQAMAQtBAgsiKjYCoAEgCAJ/AkAgBS8BOiIWDQAgBS8BNg0AQQAMAQtBAgsiAzYCqAFBAiESQQIhFAJAICEgBS8BLCIscg0AQQEhFCAFLgGkASAFLgGMAWsiAiACQR91IgJqIAJzQQNLDQAgBS4BpgEgBS4BjgFrIgIgAkEfdSICaiACc0EDSw0AIAUoAnwgBSgCdEchFAsgCCAUNgJwAkAgCiAFLwEuIilyDQBBASESIAUuAagBIAUuAZABayICIAJBH3UiAmogAnNBA0sNACAFLgGqASAFLgGSAWsiAiACQR91IgJqIAJzQQNLDQAgBSgCfCAFKAJ0RyESCyAIIBI2AnhBAiELQQIhEwJAIAEgBS8BNCIfcg0AQQEhEyAFLgG0ASAFLgGcAWsiAiACQR91IgJqIAJzQQNLDQAgBS4BtgEgBS4BngFrIgIgAkEfdSICaiACc0EDSw0AIAUoAoABIAUoAnhHIRMLIAggEzYCgAECQCAXIAUvATYiLXINAEEBIQsgBS4BuAEgBS4BoAFrIgIgAkEfdSICaiACc0EDSw0AIAUuAboBIAUuAaIBayICIAJBH3UiAmogAnNBA0sNACAFKAKAASAFKAJ4RyELCyAIIAs2AogBIAUvAR4NAiAFLwEcBEBBAiEOIAhBAjYCPCAFLwEkIgYNBkEAIQlBAAwHC0EAIQ4gCEEANgI8QQAhCUEAIAUvASQiBkUNBhoMBQsgCAJ/AkAgBS8BICICDQAgBS8BHA0AQQAMAQtBAgsiDDYCUCAIAn8CQCAFLwEiIgoNACAFLwEeDQBBAAwBC0ECCyIQNgJYIAgCfwJAIAUvASgiDw0AIAUvASQNAEEADAELQQILIgQ2AmAgCAJ/AkAgBS8BKiIGDQAgBS8BJg0AQQAMAQtBAgsiBzYCaCAIIAUvASwiASACckEAR0EBdCIUNgJwIAggBS8BLiIfIApyQQBHQQF0IhI2AnggCCAFLwE0IisgD3JBAEdBAXQiEzYCgAEgCCAFLwE2IhcgBnJBAEdBAXQiCzYCiAEgCEECIAFBAEdBAXQgBS8BMCIVGyIjNgKQASAIQQIgH0EAR0EBdCAFLwEyIiwbIhw2ApgBIAhBAiArQQBHQQF0IAUvATgiLRsiKjYCoAEgCEECIBdBAEdBAXQgBS8BOiIWGyIDNgKoASAIAn8CQCAFLwEeIi8NACAFLwEcDQBBAAwBC0ECCyIONgI8IAUvASYEQCAFLwEkIQkMAwsgBS8BJCIJDQJBACEnQQAMAwsgBS4BhgEhBiAFLgGOASEBQQIhECAIAn9BAiAFLwEgIjQgBS8BHCIOcg0AGkEBIAUuAYwBIAUuAYQBayICIAJBH3UiAmogAnNBA0sNABogASAGayICIAJBH3UiAmogAnNBA0sLIgw2AlAgBS4BigEhCSAFLgGSASEKAkAgBS8BIiIVIAUvAR4iNXINAEEBIRAgBS4BkAEgBS4BiAFrIgIgAkEfdSICaiACc0EDSw0AIAogCWsiAiACQR91IgJqIAJzQQNLIRALIAggEDYCWCAFLgGWASEXIAUuAZ4BIQ9BAiEHIAgCf0ECIAUvASgiKSAFLwEkIjZyDQAaQQEgBS4BnAEgBS4BlAFrIgIgAkEfdSICaiACc0EDSw0AGiAPIBdrIgIgAkEfdSICaiACc0EDSwsiBDYCYCAFLgGaASE3IAUuAaIBIR8CQCAFLwEqIjggBS8BJiJFcg0AQQEhByAFLgGgASAFLgGYAWsiAiACQR91IgJqIAJzQQNLDQAgHyA3ayICIAJBH3UiAmogAnNBA0shBwsgCCAHNgJoIAUuAaYBIStBAiESQQIhFAJAIDQgBS8BLCI5cg0AQQEhFCAFLgGkASAFLgGMAWsiAiACQR91IgJqIAJzQQNLDQAgKyABayICIAJBH3UiAmogAnNBA0sNACAFKAJ8IAUoAnRHIRQLIAggFDYCcCAFLgGqASEWAkAgFSAFLwEuIixyDQBBASESIAUuAagBIAUuAZABayICIAJBH3UiAmogAnNBA0sNACAWIAprIgIgAkEfdSICaiACc0EDSw0AIAUoAnwgBSgCdEchEgsgCCASNgJ4IAUuAbYBISFBAiELQQIhEwJAICkgBS8BNCItcg0AQQEhEyAFLgG0ASAFLgGcAWsiAiACQR91IgJqIAJzQQNLDQAgISAPayICIAJBH3UiAmogAnNBA0sNACAFKAKAASAFKAJ4RyETCyAIIBM2AoABIAUuAboBIScCQCA4IAUvATYiOnINAEEBIQsgBS4BuAEgBS4BoAFrIgIgAkEfdSICaiACc0EDSw0AICcgH2siAiACQR91IgJqIAJzQQNLDQAgBSgCgAEgBSgCeEchCwsgCCALNgKIASAFLgGuASE7QQIhHCAIAn9BAiA5IAUvATAiRnINABpBASAFLgGsASAFLgGkAWsiAiACQR91IgJqIAJzQQNLDQAaIDsgK2siAiACQR91IgJqIAJzQQNLCyIjNgKQASAFLgGyASEvAkAgLCAFLwEyIjxyDQBBASEcIAUuAbABIAUuAagBayICIAJBH3UiAmogAnNBA0sNACAvIBZrIgIgAkEfdSICaiACc0EDSyEcCyAIIBw2ApgBIAUuAb4BITFBAiEDIAgCf0ECIC0gBS8BOCI9cg0AGkEBIAUuAbwBIAUuAbQBayICIAJBH3UiAmogAnNBA0sNABogMSAhayICIAJBH3UiAmogAnNBA0sLIio2AqABIAUuAcIBIT4CQCA6IAUvAToiR3INAEEBIQMgBS4BwAEgBS4BuAFrIgIgAkEfdSICaiACc0EDSw0AID4gJ2siAiACQR91IgJqIAJzQQNLIQMLIAggAzYCqAFBAiECIAgCf0ECIA4gNXINABpBASAFLgGIASAFLgGEAWsiDiAOQR91Ig5qIA5zQQNLDQAaIAkgBmsiBiAGQR91IgZqIAZzQQNLCyIONgI8AkAgNSA2cg0AQQEhAiAFLgGUASAFLgGIAWsiBiAGQR91IgZqIAZzQQNLDQAgFyAJayIJIAlBH3UiCWogCXNBA0sNACAFKAJ4IAUoAnRHIQILIAggAjYCREECIQYgCAJ/QQIgNiBFcg0AGkEBIAUuAZgBIAUuAZQBayIJIAlBH3UiCWogCXNBA0sNABogNyAXayIJIAlBH3UiCWogCXNBA0sLIgk2AkwCQCAVIDRyDQBBASEGIAUuAZABIAUuAYwBayIXIBdBH3UiF2ogF3NBA0sNACAKIAFrIgEgAUEfdSIBaiABc0EDSyEGCyAIIAY2AlxBAiEXQQIhAQJAIBUgKXINAEEBIQEgBS4BnAEgBS4BkAFrIhUgFUEfdSIVaiAVc0EDSw0AIA8gCmsiCiAKQR91IgpqIApzQQNLDQAgBSgCeCAFKAJ0RyEBCyAIIAE2AmQCQCApIDhyDQBBASEXIAUuAaABIAUuAZwBayIKIApBH3UiCmogCnNBA0sNACAfIA9rIgogCkEfdSIKaiAKc0EDSyEXCyAIIBc2AmxBAiEKIAgCf0ECICwgOXINABpBASAFLgGoASAFLgGkAWsiDyAPQR91Ig9qIA9zQQNLDQAaIBYgK2siDyAPQR91Ig9qIA9zQQNLCyIpNgJ8AkAgLCAtcg0AQQEhCiAFLgG0ASAFLgGoAWsiDyAPQR91Ig9qIA9zQQNLDQAgISAWayIPIA9BH3UiD2ogD3NBA0sNACAFKAKAASAFKAJ8RyEKCyAIIAo2AoQBQQIhFSAIAn9BAiAtIDpyDQAaQQEgBS4BuAEgBS4BtAFrIg8gD0EfdSIPaiAPc0EDSw0AGiAnICFrIg8gD0EfdSIPaiAPc0EDSwsiITYCjAECQCA8IEZyDQBBASEVIAUuAbABIAUuAawBayIPIA9BH3UiD2ogD3NBA0sNACAvIDtrIg8gD0EfdSIPaiAPc0EDSyEVCyAIIBU2ApwBQQIhFkECIQ8CQCA8ID1yDQBBASEPIAUuAbwBIAUuAbABayIfIB9BH3UiH2ogH3NBA0sNACAxIC9rIh8gH0EfdSIfaiAfc0EDSw0AIAUoAoABIAUoAnxHIQ8LIAggDzYCpAECQCA9IEdyDQBBASEWIAUuAcABIAUuAbwBayIfIB9BH3UiH2ogH3NBA0sNACA+IDFrIhYgFkEfdSIWaiAWc0EDSyEWCyAIIBY2AqwBDAULQQIhDiAIQQI2AjwgBS8BJCEGDAILIAlB//8DcUEARyEnQQILIgk2AkwgCCAWIC1yQQBHQQF0IhY2AqwBIAggFSAsckEAR0EBdCIVNgKcASAIIBcgK3JBAEdBAXQiITYCjAEgCCABIB9yQQBHQQF0Iik2AnxBAiEBIAhBAiAPQQBHQQF0IAYbIhc2AmwgCEECIAJBAEdBAXQgChsiBjYCXEECIQICQCAnDQAgLw0AQQEhAiAFLgGUASAFLgGIAWsiJyAnQR91IidqICdzQQNLDQAgBS4BlgEgBS4BigFrIicgJ0EfdSInaiAnc0EDSw0AIAUoAnggBSgCdEchAgsgCCACNgJEAkAgCiAPcg0AQQEhASAFLgGcASAFLgGQAWsiCiAKQR91IgpqIApzQQNLDQAgBS4BngEgBS4BkgFrIgogCkEfdSIKaiAKc0EDSw0AIAUoAnggBSgCdEchAQsgCCABNgJkQQIhD0ECIQoCQCAfICtyDQBBASEKIAUuAbQBIAUuAagBayIfIB9BH3UiH2ogH3NBA0sNACAFLgG2ASAFLgGqAWsiHyAfQR91Ih9qIB9zQQNLDQAgBSgCgAEgBSgCfEchCgsgCCAKNgKEAQJAICwgLXINAEEBIQ8gBS4BvAEgBS4BsAFrIh8gH0EfdSIfaiAfc0EDSw0AIAUuAb4BIAUuAbIBayIfIB9BH3UiH2ogH3NBA0sNACAFKAKAASAFKAJ8RyEPCyAIIA82AqQBDAILIAYhCUECCyICNgJEIAUvASYhJyAIIA8gFnJBAEdBAXQiFjYCrAEgCCAPIBVyQQBHQQF0Ig82AqQBIAhBAiArQQBHQQF0IBUbIhU2ApwBIAhBAiAXQQBHQQF0IAEbIhc2AmwgCEECIAFBAEdBAXQgChsiATYCZCAIQQIgCkEAR0EBdCAhGyIGNgJcIAggHyAtckEAR0EBdCIhNgKMASAIIB8gKXJBAEdBAXQiCjYChAEgCCApICxyQQBHQQF0Iik2AnwgCCAnIAlB//8DcXJBAEdBAXQiCTYCTAsgDCANciAQciAEciAHciAUciASciATciALciAjciAcciAqciADciAOciACciAJciAGciABciAXciApciAKciAhciAVciAPciAWckUNAQsgBSgCDCECIAggBSgCECIDIAUoAhQiAWoiBEEzIARBM0gbIgRBACAEQQBKG0HQF2otAAAiBDYCICAIIAEgAmoiCUEzIAlBM0gbIglBACAJQQBKGyIGQZAXai0AACIJNgIcIAggBkEDbEGQGGoiBzYCGAJAIBoNACABIAUoAswBKAIUIgZHBEAgCCABIAZqQQFqQQF2IgYgA2oiDUEzIA1BM0gbIg1BACANQQBKG0HQF2otAAA2AgggCCACIAZqIgZBMyAGQTNIGyIGQQAgBkEAShsiBkGQF2otAAA2AgQgCCAGQQNsQZAYajYCAAwBCyAIIAQ2AgggCCAJNgIEIAggBzYCAAsgMwRAAkAgASAFKALIASgCFCIGRwRAIAggASAGakEBakEBdiIBIANqIgNBMyADQTNIGyIDQQAgA0EAShtB0BdqLQAANgIUIAggASACaiIBQTMgAUEzSBsiAUEAIAFBAEobIgFBkBdqLQAANgIQIAFBA2xBkBhqIQcMAQsgCCAENgIUIAggCTYCEAsgCCAHNgIMCyAlKAIAICggMGwiFkEIdGogJkEEdGohA0EAIQ5BAyECIAhBMGohCwNAIAsoAgQiAQRAIAMgASBEICAQFgsgCygCDCIBBEAgA0EEaiABIC4gIBAWCyALKAIUIgEEQCADQQhqIAEgLiAgEBYLIAsoAhwiAQRAIANBDGogASAuICAQFgsgAiEJAkACQAJAIAsoAgAiASALKAIIIgdHDQAgASALKAIQRw0AIAEgCygCGEcNACABRQ0CIAggDkEMbGoiAigCCCENIAIoAgQhDiABQQRJDQEgDkECdkECaiETQRAhByADIQIDQAJAIAIgGWoiBC0AACIGIAItAAAiCmsiASABQR91IgFqIAFzIgEgDk8NACACICRqIhQtAAAiECAGayIPIA9BH3UiD2ogD3MgDU8NACACICBqIhUtAAAiDyAKayIMIAxBH3UiDGogDHMgDU8NAAJAIAEgE0kEQCACICJqIhctAAAhDAJ/IA0gAiAeaiIBLQAAIhIgBmsiHCAcQR91IhxqIBxzSwRAQQMhIyAEIA8gBiAKaiAQaiIEQQF0aiASakEEakEDdjoAACAUIAQgEmpBAmpBAnY6AAAgBEEEaiASQQNsaiESIAIgQ2otAAAMAQtBAiEjIAYgD2pBAmohEiAEIQEgEAshBCABIBIgBEEBdGogI3Y6AAAgDCAKayIBIAFBH3UiAWogAXMgDU8NASACIBAgBiAPaiAKaiIBQQF0aiAMakEEakEDdjoAACAVIAEgDGpBAmpBAnY6AAAgFyABIAxBA2xqIAIgQGotAABBAXRqQQRqQQN2OgAADAILIAQgBiAPaiAQQQF0akECakECdjoAAAsgAiAKIBBqIA9BAXRqQQJqQQJ2OgAACyACQQFqIQIgB0EBayIHDQALDAILAn8gAQRAIAggDkEMbGoiEyEUQQQhDSABIBMoAgBqQQFrLQAAIgRBAWohBkEAIARrIQ8gAyECA0ACQCATKAIEIAIgGWoiFS0AACIKIAItAAAiEGsiASABQR91IgFqIAFzTQ0AIBQoAggiByACICRqIhctAAAiDCAKayIBIAFBH3UiAWogAXNNDQAgAiAgaiIcLQAAIhIgEGsiASABQR91IgFqIAFzIAdPDQAgBCEBIAcgAiAeai0AACIjIAprIiEgIUEfdSIhaiAhc0sEQCAXIAwgDyAEIAogEGpBAWpBAXYgDEEBdGsgI2pBAXUiASABIARKGyABIA9IG2o6AAAgFCgCCCEHIAYhAQsgFSAKAn8gByACICJqLQAAIhUgEGsiFyAXQR91IhdqIBdzSwRAIBwgEiAPIAQgCiAQakEBakEBdiASQQF0ayAVakEBdSIHIAQgB0gbIAcgD0gbajoAACABQQFqIQELQQAgAWsiFQsgASAMIBJrIBAgCmtBAnRqQQRqQQN1IgcgASAHSBsgByAVSBsiAWpBsC5qLQAAOgAAIAIgECABa0GwLmotAAA6AAALIAJBAWohAiANQQFrIg0NAAsgCygCCCEHCyAHCwRAQQQhDSADQQRqIQIgCCAOQQxsaiITIRQgByATKAIAakEBay0AACIEQQFqIQZBACAEayEPA0ACQCATKAIEIAIgGWoiFS0AACIKIAItAAAiEGsiASABQR91IgFqIAFzTQ0AIBQoAggiByACICRqIhctAAAiDCAKayIBIAFBH3UiAWogAXNNDQAgAiAgaiIcLQAAIhIgEGsiASABQR91IgFqIAFzIAdPDQAgBCEBIAcgAiAeai0AACIjIAprIiEgIUEfdSIhaiAhc0sEQCAXIAwgDyAEIAogEGpBAWpBAXYgDEEBdGsgI2pBAXUiASABIARKGyABIA9IG2o6AAAgFCgCCCEHIAYhAQsgFSAKAn8gByACICJqLQAAIhUgEGsiFyAXQR91IhdqIBdzSwRAIBwgEiAPIAQgCiAQakEBakEBdiASQQF0ayAVakEBdSIHIAQgB0gbIAcgD0gbajoAACABQQFqIQELQQAgAWsiFQsgASAMIBJrIBAgCmtBAnRqQQRqQQN1IgcgASAHSBsgByAVSBsiAWpBsC5qLQAAOgAAIAIgECABa0GwLmotAAA6AAALIAJBAWohAiANQQFrIg0NAAsLIAsoAhAiAQRAIANBCGohAiAIIA5BDGxqIhMhFEEEIQ0gASATKAIAakEBay0AACIEQQFqIQZBACAEayEPA0ACQCATKAIEIAIgGWoiFS0AACIKIAItAAAiEGsiASABQR91IgFqIAFzTQ0AIBQoAggiByACICRqIhctAAAiDCAKayIBIAFBH3UiAWogAXNNDQAgAiAgaiIcLQAAIhIgEGsiASABQR91IgFqIAFzIAdPDQAgBCEBIAcgAiAeai0AACIjIAprIiEgIUEfdSIhaiAhc0sEQCAXIAwgDyAEIAogEGpBAWpBAXYgDEEBdGsgI2pBAXUiASABIARKGyABIA9IG2o6AAAgFCgCCCEHIAYhAQsgFSAKAn8gByACICJqLQAAIhUgEGsiFyAXQR91IhdqIBdzSwRAIBwgEiAPIAQgCiAQakEBakEBdiASQQF0ayAVakEBdSIHIAQgB0gbIAcgD0gbajoAACABQQFqIQELQQAgAWsiFQsgASAMIBJrIBAgCmtBAnRqQQRqQQN1IgcgASAHSBsgByAVSBsiAWpBsC5qLQAAOgAAIAIgECABa0GwLmotAAA6AAALIAJBAWohAiANQQFrIg0NAAsLIAsoAhgiAUUNASADQQxqIQIgCCAOQQxsaiISIRNBBCENIAEgEigCAGpBAWstAAAiBEEBaiEGQQAgBGshDwNAAkAgEigCBCACIBlqIhQtAAAiCiACLQAAIhBrIgEgAUEfdSIBaiABc00NACATKAIIIgcgAiAkaiIVLQAAIgwgCmsiASABQR91IgFqIAFzTQ0AIAIgIGoiFy0AACIOIBBrIgEgAUEfdSIBaiABcyAHTw0AIAQhASAHIAIgHmotAAAiHCAKayIjICNBH3UiI2ogI3NLBEAgFSAMIA8gBCAKIBBqQQFqQQF2IAxBAXRrIBxqQQF1IgEgASAEShsgASAPSBtqOgAAIBMoAgghByAGIQELIBQgCgJ/IAcgAiAiai0AACIUIBBrIhUgFUEfdSIVaiAVc0sEQCAXIA4gDyAEIAogEGpBAWpBAXYgDkEBdGsgFGpBAXUiByAEIAdIGyAHIA9IG2o6AAAgAUEBaiEBC0EAIAFrIhQLIAEgDCAOayAQIAprQQJ0akEEakEDdSIHIAEgB0gbIAcgFEgbIgFqQbAuai0AADoAACACIBAgAWtBsC5qLQAAOgAACyACQQFqIQIgDUEBayINDQALDAELIAEgAigCAGpBAWstAAAiAUEBaiEGQQAgAWshD0EQIQcgAyECA0ACQCACIBlqIhMtAAAiCiACLQAAIhBrIgQgBEEfdSIEaiAEcyAOTw0AIAIgJGoiFC0AACIMIAprIgQgBEEfdSIEaiAEcyANTw0AIAIgIGoiFS0AACISIBBrIgQgBEEfdSIEaiAEcyANTw0AIAEhBCANIAIgHmotAAAiFyAKayIcIBxBH3UiHGogHHNLBEAgFCAMIA8gASAKIBBqQQFqQQF2IAxBAXRrIBdqQQF1IgQgASAESBsgBCAPSBtqOgAAIAYhBAsgEyAKAn8gDSACICJqLQAAIhMgEGsiFCAUQR91IhRqIBRzSwRAIBUgEiAPIAEgCiAQakEBakEBdiASQQF0ayATakEBdSITIAEgE0gbIA8gE0obajoAACAEQQFqIQQLQQAgBGsiEwsgBCAMIBJrIBAgCmtBAnRqQQRqQQN1IgwgBCAMSBsgDCATSBsiBGpBsC5qLQAAOgAAIAIgECAEa0GwLmotAAA6AAALIAJBAWohAiAHQQFrIgcNAAsLIAlBAWshAiALQSBqIQsgAyA/aiEDQQIhDiAJDQALIAUoAgwhASAIIAUoAhAiAyAFKAIUIgQgBSgCGCIJaiICQTMgAkEzSBsiAkEAIAJBAEobQQJ0QeA9aigCACICaiIGQTMgBkEzSBsiBkEAIAZBAEobQdAXai0AACIGNgIgIAggASACaiIHQTMgB0EzSBsiB0EAIAdBAEobIgdBkBdqLQAAIg02AhwgCCAHQQNsQZAYaiIHNgIYAkAgGg0AIAQgBSgCzAEoAhQiC0cEQCAIIAIgCSALaiILQTMgC0EzSBsiC0EAIAtBAEobQQJ0QeA9aigCAGpBAWpBAXYiCyADaiIKQTMgCkEzSBsiCkEAIApBAEobQdAXai0AADYCCCAIIAEgC2oiC0EzIAtBM0gbIgtBACALQQBKGyILQZAXai0AADYCBCAIIAtBA2xBkBhqNgIADAELIAggBjYCCCAIIA02AgQgCCAHNgIACyAzBEACQCAEIAUoAsgBKAIUIgtHBEAgCCADIAIgCSALaiIEQTMgBEEzSBsiBEEAIARBAEobQQJ0QeA9aigCAGpBAWpBAXYiAmoiA0EzIANBM0gbIgNBACADQQBKG0HQF2otAAA2AhQgCCABIAJqIgFBMyABQTNIGyIBQQAgAUEAShsiAUGQF2otAAA2AhAgAUEDbEGQGGohBwwBCyAIIAY2AhQgCCANNgIQCyAIIAc2AgwLICUoAgAgQmogFkEGdGogJkEDdGoiAiBBaiENQQEhD0EAIRAgCEEwaiEHA0ACQCAHKAIEIgNFDQACQCAIKAIQIAJBAWsiCy0AACIBIAItAAAiBGsiCSAJQR91IglqIAlzTQ0AIAgoAhQiCiACQQJrLQAAIgkgAWsiBiAGQR91IgZqIAZzTQ0AIAogAi0AASIGIARrIgwgDEEfdSIMaiAMc00NACADQQNNBEAgCyABIAMgCCgCDGpBAWstAAAiC0F/cyIKIAtBAWoiCyAEIAFrQQJ0IAZrIAlqQQRqQQN1IgkgCSALShsgCSAKSBsiCWpBsC5qLQAAOgAAIAIgBCAJa0GwLmotAAA6AAAMAQsgCyABIAZqIAlBAXRqQQJqQQJ2OgAAIAIgBCAGQQF0aiAJakECakECdjoAAAsCQCAIKAIQIAIgHWoiAUEBayIKLQAAIgQgAS0AACIJayIGIAZBH3UiBmogBnNNDQAgCCgCFCIMIAFBAmstAAAiBiAEayILIAtBH3UiC2ogC3NNDQAgDCABLQABIgsgCWsiDiAOQR91Ig5qIA5zTQ0AIANBA00EQCAKIAMgCCgCDGpBAWstAAAiA0F/cyIKIANBAWoiDCAJIARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyAHKAIEIQMCQCAIKAIQIA1BAWsiCy0AACIBIA0tAAAiBGsiCSAJQR91IglqIAlzTQ0AIAgoAhQiCiANQQJrLQAAIgkgAWsiBiAGQR91IgZqIAZzTQ0AIAogDS0AASIGIARrIgwgDEEfdSIMaiAMc00NACADQQNNBEAgCyABIAMgCCgCDGpBAWstAAAiC0F/cyIKIAtBAWoiCyAEIAFrQQJ0IAZrIAlqQQRqQQN1IgkgCSALShsgCSAKSBsiCWpBsC5qLQAAOgAAIA0gBCAJa0GwLmotAAA6AAAMAQsgCyABIAZqIAlBAXRqQQJqQQJ2OgAAIA0gBCAGQQF0aiAJakECakECdjoAAAsgCCgCECANIB1qIgFBAWsiCi0AACIEIAEtAAAiCWsiBiAGQR91IgZqIAZzTQ0AIAgoAhQiDCABQQJrLQAAIgYgBGsiCyALQR91IgtqIAtzTQ0AIAwgAS0AASILIAlrIg4gDkEfdSIOaiAOc00NACADQQNNBEAgCiADIAgoAgxqQQFrLQAAIgNBf3MiCiADQQFqIgwgCSAEa0ECdCALayAGakEEakEDdSIDIAMgDEobIAMgCkgbIgMgBGpBsC5qLQAAOgAAIAEgCSADa0GwLmotAAA6AAAMAQsgCiAEIAtqIAZBAXRqQQJqQQJ2OgAAIAEgCSALQQF0aiAGakECakECdjoAAAsCQCAHKAIkIgNFDQACQCAIKAIQIAIgIGoiAUEBayIKLQAAIgQgAS0AACIJayIGIAZBH3UiBmogBnNNDQAgCCgCFCIMIAFBAmstAAAiBiAEayILIAtBH3UiC2ogC3NNDQAgDCABLQABIgsgCWsiDiAOQR91Ig5qIA5zTQ0AIANBA00EQCAKIAQgAyAIKAIMakEBay0AACIKQX9zIgwgCkEBaiIKIAkgBGtBAnQgC2sgBmpBBGpBA3UiBiAGIApKGyAGIAxIGyIGakGwLmotAAA6AAAgASAJIAZrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACwJAIAgoAhAgASAdaiIBQQFrIgotAAAiBCABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIUIgwgAUECay0AACIGIARrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgA0EDTQRAIAogAyAIKAIMakEBay0AACIDQX9zIgogA0EBaiIMIAkgBGtBAnQgC2sgBmpBBGpBA3UiAyADIAxKGyADIApIGyIDIARqQbAuai0AADoAACABIAkgA2tBsC5qLQAAOgAADAELIAogBCALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALIAcoAiQhAwJAIAgoAhAgDSAgaiIBQQFrIgotAAAiBCABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIUIgwgAUECay0AACIGIARrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgA0EDTQRAIAogBCADIAgoAgxqQQFrLQAAIgpBf3MiDCAKQQFqIgogCSAEa0ECdCALayAGakEEakEDdSIGIAYgCkobIAYgDEgbIgZqQbAuai0AADoAACABIAkgBmtBsC5qLQAAOgAADAELIAogBCALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALIAgoAhAgASAdaiIBQQFrIgotAAAiBCABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIUIgwgAUECay0AACIGIARrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgA0EDTQRAIAogAyAIKAIMakEBay0AACIDQX9zIgogA0EBaiIMIAkgBGtBAnQgC2sgBmpBBGpBA3UiAyADIAxKGyADIApIGyIDIARqQbAuai0AADoAACABIAkgA2tBsC5qLQAAOgAADAELIAogBCALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkAgBygCFCIDRQ0AIAJBBGohCwJAIAgoAhwgAi0AAyIBIAItAAQiBGsiCSAJQR91IglqIAlzTQ0AIAgoAiAiCiACLQACIgkgAWsiBiAGQR91IgZqIAZzTQ0AIAogAi0ABSIGIARrIgwgDEEfdSIMaiAMc00NACADQQNNBEAgAiAEIAMgCCgCGGpBAWstAAAiCkF/cyIMIApBAWoiCiAEIAFrQQJ0IAZrIAlqQQRqQQN1IgQgBCAKShsgBCAMSBsiBGtBsC5qLQAAOgAEIAIgASAEakGwLmotAAA6AAMMAQsgAiABIAZqIAlBAXRqQQJqQQJ2OgADIAIgBCAGQQF0aiAJakECakECdjoABAsCQCAIKAIcIAsgHWoiAUEBayIKLQAAIgQgAS0AACIJayIGIAZBH3UiBmogBnNNDQAgCCgCICIMIAFBAmstAAAiBiAEayILIAtBH3UiC2ogC3NNDQAgDCABLQABIgsgCWsiDiAOQR91Ig5qIA5zTQ0AIANBA00EQCAKIAMgCCgCGGpBAWstAAAiA0F/cyIKIANBAWoiDCAJIARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANQQRqIQsgBygCFCEDAkAgCCgCHCANLQADIgEgDS0ABCIEayIJIAlBH3UiCWogCXNNDQAgCCgCICIKIA0tAAIiCSABayIGIAZBH3UiBmogBnNNDQAgCiANLQAFIgYgBGsiDCAMQR91IgxqIAxzTQ0AIANBA00EQCANIAQgAyAIKAIYakEBay0AACIKQX9zIgwgCkEBaiIKIAQgAWtBAnQgBmsgCWpBBGpBA3UiBCAEIApKGyAEIAxIGyIEa0GwLmotAAA6AAQgDSABIARqQbAuai0AADoAAwwBCyANIAEgBmogCUEBdGpBAmpBAnY6AAMgDSAEIAZBAXRqIAlqQQJqQQJ2OgAECyAIKAIcIAsgHWoiAUEBayIKLQAAIgQgAS0AACIJayIGIAZBH3UiBmogBnNNDQAgCCgCICIMIAFBAmstAAAiBiAEayILIAtBH3UiC2ogC3NNDQAgDCABLQABIgsgCWsiDiAOQR91Ig5qIA5zTQ0AIANBA00EQCAKIAMgCCgCGGpBAWstAAAiA0F/cyIKIANBAWoiDCAJIARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACwJAIAcoAjQiA0UNACACICBqIgFBBGohBAJAIAgoAhwgAS0AAyIJIAEtAAQiBmsiCyALQR91IgtqIAtzTQ0AIAgoAiAiDCAEQQJrLQAAIgsgCWsiCiAKQR91IgpqIApzTQ0AIAwgAS0ABSIKIAZrIg4gDkEfdSIOaiAOc00NACADQQNNBEAgASADIAgoAhhqQQFrLQAAIgFBf3MiDCABQQFqIg4gBiAJa0ECdCAKayALakEEakEDdSIBIAEgDkobIAEgDEgbIgEgCWpBsC5qLQAAOgADIAQgBiABa0GwLmotAAA6AAAMAQsgASAJIApqIAtBAXRqQQJqQQJ2OgADIAQgBiAKQQF0aiALakECakECdjoAAAsCQCAIKAIcIAQgHWoiAUEBayIKLQAAIgQgAS0AACIJayIGIAZBH3UiBmogBnNNDQAgCCgCICIMIAFBAmstAAAiBiAEayILIAtBH3UiC2ogC3NNDQAgDCABLQABIgsgCWsiDiAOQR91Ig5qIA5zTQ0AIANBA00EQCAKIAMgCCgCGGpBAWstAAAiA0F/cyIKIANBAWoiDCAJIARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ`;\n if (!k2.startsWith(O2)) {\n var A2 = k2;\n k2 = n2.locateFile ? n2.locateFile(A2, s2) : s2 + A2;\n }\n function j2() {\n var e3 = k2;\n try {\n if (e3 == k2 && u2) return new Uint8Array(u2);\n var t3 = ie2(e3);\n if (t3) return t3;\n if (c2) return c2(e3);\n throw `both async and sync fetching of the wasm failed`;\n } catch (e4) {\n D2(e4);\n }\n }\n function ne2() {\n return u2 || typeof fetch != `function` ? Promise.resolve().then(function() {\n return j2();\n }) : fetch(k2, { credentials: `same-origin` }).then(function(e3) {\n if (!e3.ok) throw `failed to load wasm binary file at '` + k2 + `'`;\n return e3.arrayBuffer();\n }).catch(function() {\n return j2();\n });\n }\n var M2, N2;\n function P2(e3) {\n for (; 0 < e3.length; ) {\n var t3 = e3.shift();\n if (typeof t3 == `function`) t3(n2);\n else {\n var r3 = t3.u;\n typeof r3 == `number` ? t3.s === void 0 ? x2.get(r3)() : x2.get(r3)(t3.s) : r3(t3.s === void 0 ? null : t3.s);\n }\n }\n }\n var re2 = typeof atob == `function` ? atob : function(e3) {\n var t3 = ``, n3 = 0;\n e3 = e3.replace(/[^A-Za-z0-9\\+\\/=]/g, ``);\n do {\n var r3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), i3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), a3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), o3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++));\n r3 = r3 << 2 | i3 >> 4, i3 = (i3 & 15) << 4 | a3 >> 2;\n var s3 = (a3 & 3) << 6 | o3;\n t3 += String.fromCharCode(r3), a3 !== 64 && (t3 += String.fromCharCode(i3)), o3 !== 64 && (t3 += String.fromCharCode(s3));\n } while (n3 < e3.length);\n return t3;\n };\n function ie2(e3) {\n if (e3.startsWith(O2)) {\n try {\n var t3 = re2(e3.slice(O2.length)), n3 = new Uint8Array(t3.length);\n for (e3 = 0; e3 < t3.length; ++e3) n3[e3] = t3.charCodeAt(e3);\n } catch (e4) {\n throw Error(`Converting base64 string to bytes failed.`);\n }\n return n3;\n }\n }\n var F2 = { a: function(e3, t3, n3) {\n h2.copyWithin(e3, t3, t3 + n3);\n }, b: function(e3) {\n var t3 = h2.length;\n if (e3 >>>= 0, 2147483648 < e3) return false;\n for (var n3 = 1; 4 >= n3; n3 *= 2) {\n var r3 = t3 * (1 + 0.2 / n3);\n r3 = Math.min(r3, e3 + 100663296), r3 = Math.max(e3, r3), 0 < r3 % 65536 && (r3 += 65536 - r3 % 65536);\n a: {\n try {\n d2.grow(Math.min(2147483648, r3) - p2.byteLength + 65535 >>> 16), b2();\n var i3 = 1;\n break a;\n } catch (e4) {\n }\n i3 = void 0;\n }\n if (i3) return true;\n }\n return false;\n } };\n (function() {\n function e3(e4) {\n n2.asm = e4.exports, d2 = n2.asm.c, b2(), x2 = n2.asm.r, ee2.unshift(n2.asm.d), w2--, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), w2 == 0 && (T2 !== null && (clearInterval(T2), T2 = null), E2 && (e4 = E2, E2 = null, e4()));\n }\n function t3(t4) {\n e3(t4.instance);\n }\n function r3(e4) {\n return ne2().then(function(e5) {\n return WebAssembly.instantiate(e5, a3);\n }).then(e4, function(e5) {\n l2(`failed to asynchronously prepare wasm: ` + e5), D2(e5);\n });\n }\n var a3 = { a: F2 };\n if (w2++, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), n2.instantiateWasm) try {\n return n2.instantiateWasm(a3, e3);\n } catch (e4) {\n return l2(`Module.instantiateWasm callback failed with error: ` + e4), false;\n }\n return (function() {\n return u2 || typeof WebAssembly.instantiateStreaming != `function` || k2.startsWith(O2) || typeof fetch != `function` ? r3(t3) : fetch(k2, { credentials: `same-origin` }).then(function(e4) {\n return WebAssembly.instantiateStreaming(e4, a3).then(t3, function(e5) {\n return l2(`wasm streaming compile failed: ` + e5), l2(`falling back to ArrayBuffer instantiation`), r3(t3);\n });\n });\n })().catch(i2), {};\n })(), n2.___wasm_call_ctors = function() {\n return (n2.___wasm_call_ctors = n2.asm.d).apply(null, arguments);\n }, n2._memcpy = function() {\n return (n2._memcpy = n2.asm.e).apply(null, arguments);\n }, n2._h264bsdInit = function() {\n return (n2._h264bsdInit = n2.asm.f).apply(null, arguments);\n }, n2._malloc = function() {\n return (n2._malloc = n2.asm.g).apply(null, arguments);\n }, n2._h264bsdDecode = function() {\n return (n2._h264bsdDecode = n2.asm.h).apply(null, arguments);\n }, n2._free = function() {\n return (n2._free = n2.asm.i).apply(null, arguments);\n }, n2._h264bsdShutdown = function() {\n return (n2._h264bsdShutdown = n2.asm.j).apply(null, arguments);\n }, n2._h264bsdNextOutputPicture = function() {\n return (n2._h264bsdNextOutputPicture = n2.asm.k).apply(null, arguments);\n }, n2._h264bsdNextOutputPictureRGBA = function() {\n return (n2._h264bsdNextOutputPictureRGBA = n2.asm.l).apply(null, arguments);\n }, n2._h264bsdPicWidth = function() {\n return (n2._h264bsdPicWidth = n2.asm.m).apply(null, arguments);\n }, n2._h264bsdPicHeight = function() {\n return (n2._h264bsdPicHeight = n2.asm.n).apply(null, arguments);\n }, n2._h264bsdCroppingParams = function() {\n return (n2._h264bsdCroppingParams = n2.asm.o).apply(null, arguments);\n }, n2._h264bsdAlloc = function() {\n return (n2._h264bsdAlloc = n2.asm.p).apply(null, arguments);\n }, n2._h264bsdFree = function() {\n return (n2._h264bsdFree = n2.asm.q).apply(null, arguments);\n }, n2.setValue = function(e3, t3, n3) {\n switch (n3 || (n3 = `i8`), n3.charAt(n3.length - 1) === `*` && (n3 = `i32`), n3) {\n case `i1`:\n m2[e3 >> 0] = t3;\n break;\n case `i8`:\n m2[e3 >> 0] = t3;\n break;\n case `i16`:\n g2[e3 >> 1] = t3;\n break;\n case `i32`:\n _2[e3 >> 2] = t3;\n break;\n case `i64`:\n N2 = [t3 >>> 0, (M2 = t3, 1 <= +Math.abs(M2) ? 0 < M2 ? (Math.min(+Math.floor(M2 / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((M2 - +(~~M2 >>> 0)) / 4294967296) >>> 0 : 0)], _2[e3 >> 2] = N2[0], _2[e3 + 4 >> 2] = N2[1];\n break;\n case `float`:\n v2[e3 >> 2] = t3;\n break;\n case `double`:\n y2[e3 >> 3] = t3;\n break;\n default:\n D2(`invalid type for setValue: ` + n3);\n }\n }, n2.getValue = function(e3, t3) {\n switch (t3 || (t3 = `i8`), t3.charAt(t3.length - 1) === `*` && (t3 = `i32`), t3) {\n case `i1`:\n return m2[e3 >> 0];\n case `i8`:\n return m2[e3 >> 0];\n case `i16`:\n return g2[e3 >> 1];\n case `i32`:\n return _2[e3 >> 2];\n case `i64`:\n return _2[e3 >> 2];\n case `float`:\n return v2[e3 >> 2];\n case `double`:\n return y2[e3 >> 3];\n default:\n D2(`invalid type for getValue: ` + t3);\n }\n return null;\n };\n var I2;\n E2 = function e3() {\n I2 || L2(), I2 || (E2 = e3);\n };\n function L2() {\n function e3() {\n if (!I2 && (I2 = true, n2.calledRun = true, !f2)) {\n if (P2(ee2), r2(n2), n2.onRuntimeInitialized && n2.onRuntimeInitialized(), n2.postRun) for (typeof n2.postRun == `function` && (n2.postRun = [n2.postRun]); n2.postRun.length; ) {\n var e4 = n2.postRun.shift();\n C2.unshift(e4);\n }\n P2(C2);\n }\n }\n if (!(0 < w2)) {\n if (n2.preRun) for (typeof n2.preRun == `function` && (n2.preRun = [n2.preRun]); n2.preRun.length; ) te2();\n P2(S2), 0 < w2 || (n2.setStatus ? (n2.setStatus(`Running...`), setTimeout(function() {\n setTimeout(function() {\n n2.setStatus(``);\n }, 1), e3();\n }, 1)) : e3());\n }\n }\n if (n2.run = L2, n2.preInit) for (typeof n2.preInit == `function` && (n2.preInit = [n2.preInit]); 0 < n2.preInit.length; ) n2.preInit.pop()();\n return L2(), t2.ready;\n });\n })(), T = (function(e2) {\n return e2[e2.RDY = 0] = `RDY`, e2[e2.PIC_RDY = 1] = `PIC_RDY`, e2[e2.HDRS_RDY = 2] = `HDRS_RDY`, e2[e2.ERROR = 3] = `ERROR`, e2[e2.PARAM_SET_ERROR = 4] = `PARAM_SET_ERROR`, e2[e2.MEMALLOC_ERROR = 5] = `MEMALLOC_ERROR`, e2[e2.BYTE_STREAM_ERROR = 6] = `BYTE_STREAM_ERROR`, e2[e2.NAL_UNIT_ERROR = 7] = `NAL_UNIT_ERROR`, e2[e2.ACCESS_UNIT_BOUNDARY_CHECK_ERROR = 8] = `ACCESS_UNIT_BOUNDARY_CHECK_ERROR`, e2[e2.PENDING_ACTIVATION_ERROR = 9] = `PENDING_ACTIVATION_ERROR`, e2[e2.SEQ_PARAM_SET_ERROR = 10] = `SEQ_PARAM_SET_ERROR`, e2[e2.PIC_PARAM_SET_ERROR = 11] = `PIC_PARAM_SET_ERROR`, e2[e2.SLICE_HEADER_ERROR = 12] = `SLICE_HEADER_ERROR`, e2[e2.SLICE_DATA_ERROR = 13] = `SLICE_DATA_ERROR`, e2[e2.GAPS_IN_FRAME_NUM_ERROR = 14] = `GAPS_IN_FRAME_NUM_ERROR`, e2[e2.REORDERING_ERROR = 15] = `REORDERING_ERROR`, e2[e2.NO_INPUT = 1024] = `NO_INPUT`, e2;\n })(T || {});\n let E = (e2) => e2 >= 3 && e2 <= 15, D = (e2) => {\n switch (e2) {\n case T.MEMALLOC_ERROR:\n return `Memory allocation error`;\n case T.PARAM_SET_ERROR:\n return `Failed to activate param set`;\n case T.BYTE_STREAM_ERROR:\n return `Byte stream error`;\n case T.NAL_UNIT_ERROR:\n return `NAL unit error`;\n case T.ACCESS_UNIT_BOUNDARY_CHECK_ERROR:\n return `Access unit boundary check error`;\n case T.PENDING_ACTIVATION_ERROR:\n return `Pending activation error`;\n case T.SEQ_PARAM_SET_ERROR:\n return `Sequence parameter set error`;\n case T.PIC_PARAM_SET_ERROR:\n return `Picture parameter set error`;\n case T.SLICE_HEADER_ERROR:\n return `Slice header error`;\n case T.SLICE_DATA_ERROR:\n return `Slice data error`;\n case T.GAPS_IN_FRAME_NUM_ERROR:\n return `Gaps in frame num error`;\n case T.REORDERING_ERROR:\n return `Reordering error`;\n default:\n return `Decode error`;\n }\n };\n var O = (_c = class {\n constructor(e2) {\n __publicField(this, \"h264Module\");\n __publicField(this, \"decoderInstancePointer\", 0);\n __publicField(this, \"inputBufferPointer\", 0);\n __publicField(this, \"inputBufferLength\", 1024 * 1024);\n __publicField(this, \"bytesRead\", 0);\n __publicField(this, \"isIdrPointer\", 0);\n __publicField(this, \"picIdPointer\", 0);\n __publicField(this, \"numErrMbs\", 0);\n __publicField(this, \"croppingPointers\", { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 });\n __publicField(this, \"parameters\");\n __publicField(this, \"readI32\", (e2) => this.h264Module.HEAP32[e2 >> 2]);\n __publicField(this, \"getParameters\", () => this.parameters);\n __publicField(this, \"unload\", () => {\n this.shutdownDecoder(), this.h264Module._free(this.inputBufferPointer), this.h264Module._free(this.bytesRead), this.h264Module._free(this.isIdrPointer), this.h264Module._free(this.picIdPointer), this.h264Module._free(this.numErrMbs), this.h264Module._free(this.croppingPointers.croppingFlag), this.h264Module._free(this.croppingPointers.leftOffset), this.h264Module._free(this.croppingPointers.width), this.h264Module._free(this.croppingPointers.topOffset), this.h264Module._free(this.croppingPointers.height), this.inputBufferPointer = 0, this.bytesRead = 0, this.isIdrPointer = 0, this.picIdPointer = 0, this.numErrMbs = 0, this.decoderInstancePointer = 0, this.croppingPointers = { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 };\n });\n __publicField(this, \"shutdownDecoder\", () => {\n this.decoderInstancePointer !== 0 && (this.h264Module._h264bsdShutdown(this.decoderInstancePointer), this.h264Module._h264bsdFree(this.decoderInstancePointer)), this.decoderInstancePointer = 0, this.parameters = void 0;\n });\n __publicField(this, \"initDecoder\", () => {\n this.decoderInstancePointer = this.h264Module._h264bsdAlloc(), this.h264Module._h264bsdInit(this.decoderInstancePointer, 0);\n });\n __publicField(this, \"decode\", (e2) => {\n if (e2.byteLength > this.inputBufferLength) {\n let t3 = this.inputBufferLength;\n for (; t3 < e2.byteLength; ) t3 *= 2;\n let n3 = this.h264Module._malloc(t3);\n this.h264Module._free(this.inputBufferPointer), this.inputBufferPointer = n3, this.inputBufferLength = t3;\n }\n this.h264Module.HEAPU8.set(e2, this.inputBufferPointer);\n let t2 = e2.byteLength, n2 = 0, r2 = 0;\n do {\n r2 = this.h264Module._h264bsdDecode(this.decoderInstancePointer, this.inputBufferPointer + n2, t2, 0, this.bytesRead);\n let e3 = this.readI32(this.bytesRead);\n n2 += e3, t2 -= e3;\n } while (t2 > 0 && !E(r2));\n switch (r2) {\n case T.RDY:\n case T.PIC_RDY:\n case T.HDRS_RDY:\n if (r2 === T.PIC_RDY) return this.receiveFrame();\n if (r2 === T.HDRS_RDY) return this.receiveHeader();\n break;\n case T.NO_INPUT:\n break;\n default:\n throw Error(`${D(r2)} (${r2})`);\n }\n });\n __publicField(this, \"receiveFrame\", () => {\n let e2 = this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer, this.picIdPointer, this.isIdrPointer, this.numErrMbs);\n if (!e2) return;\n if (!this.parameters) {\n let e3 = this.h264Module._h264bsdPicWidth(this.decoderInstancePointer) * 16, t3 = this.h264Module._h264bsdPicHeight(this.decoderInstancePointer) * 16;\n this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer, this.croppingPointers.croppingFlag, this.croppingPointers.leftOffset, this.croppingPointers.width, this.croppingPointers.topOffset, this.croppingPointers.height);\n let n2 = this.readI32(this.croppingPointers.croppingFlag), r2 = this.readI32(this.croppingPointers.leftOffset), i2 = this.readI32(this.croppingPointers.width), a2 = this.readI32(this.croppingPointers.topOffset), o2 = this.readI32(this.croppingPointers.height);\n this.parameters = { width: e3, height: t3, cropping: n2 ? { left: r2, top: a2, width: i2, height: o2 } : void 0 };\n }\n let t2 = this.parameters.width * this.parameters.height * 3 / 2;\n return this.h264Module.HEAPU8.subarray(e2, e2 + t2);\n });\n __publicField(this, \"receiveHeader\", () => {\n });\n this.h264Module = e2, this.initDecoder(), this.inputBufferPointer = this.h264Module._malloc(this.inputBufferLength), this.bytesRead = e2._malloc(4), this.isIdrPointer = e2._malloc(4), this.picIdPointer = e2._malloc(4), this.numErrMbs = e2._malloc(4), this.croppingPointers = { croppingFlag: e2._malloc(4), leftOffset: e2._malloc(4), width: e2._malloc(4), topOffset: e2._malloc(4), height: e2._malloc(4) };\n }\n }, __publicField(_c, \"create\", () => __async(null, null, function* () {\n return new _c(yield w());\n })), _c);\n let k = (e2) => {\n let { pictureParameterSets: t2, sequenceParameterSets: n2 } = h(e2.data), r2 = [...n2, ...t2], i2 = new Uint8Array(r2.reduce((e3, t3) => e3 + t3.byteLength + 4, 0)), a2 = 0;\n return r2.forEach((e3) => {\n i2[0 + a2] = 0, i2[1 + a2] = 0, i2[2 + a2] = 0, i2[3 + a2] = 1, i2.set(new Uint8Array(e3), a2 + 4), a2 += e3.byteLength + 4;\n }), i2;\n };\n var A = (_d = class {\n constructor(e2) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"unload\", () => {\n this.decoder.unload();\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, r2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, i2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId;\n if (!this.previousSample) {\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n } else if (r2 || i2 || n2) {\n this.decoder.shutdownDecoder(), this.decoder.initDecoder();\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n }\n if (this.previousSample) {\n let t3 = this.previousSample;\n e2.timestamp / e2.timescale > (t3.timestamp + t3.duration * 2) / t3.timescale && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let a2 = Date.now();\n m(e2.data, (t3) => {\n var _a3, _b3, _c3, _d3;\n let n3 = new Uint8Array(t3.buffer, t3.byteOffset, t3.byteLength), r3 = this.decoder.decode(n3);\n if (r3) {\n if (!e2.buffer) throw Error(`Expected sample to contain buffer`);\n let t4 = this.decoder.getParameters();\n if (new Uint8Array(e2.buffer).set(r3), t4) {\n let n4 = [new Uint8Array(e2.buffer, 0, t4.width * t4.height), new Uint8Array(e2.buffer, t4.width * t4.height, t4.width / 2 * t4.height / 2), new Uint8Array(e2.buffer, t4.width * t4.height + t4.width / 2 * t4.height / 2, t4.width / 2 * t4.height / 2)];\n this.decodedSamples.push(__spreadProps(__spreadValues({}, e2), { buffer: e2.buffer, type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: (_b3 = (_a3 = t4.cropping) == null ? void 0 : _a3.width) != null ? _b3 : t4.width, height: (_d3 = (_c3 = t4.cropping) == null ? void 0 : _c3.height) != null ? _d3 : t4.height, codedWidth: t4.width, codedHeight: t4.height, data: n4, statistics: { decodeTime: Date.now() - a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } }));\n }\n }\n return true;\n });\n });\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.decoder = e2;\n }\n }, __publicField(_d, \"create\", () => __async(null, null, function* () {\n return new _d(yield O.create());\n })), _d), j = class {\n constructor() {\n __publicField(this, \"map\", /* @__PURE__ */ new Map());\n }\n enqueue(t2, n2) {\n let r2 = this.map.get(t2);\n if (r2) r2.push(n2);\n else {\n let r3 = new e(1 / 0);\n r3.push(n2), this.map.set(t2, r3);\n }\n }\n dequeue(e2) {\n let t2 = this.map.get(e2);\n if (!t2) return;\n let n2 = t2.pop();\n return t2.isEmpty() && this.map.delete(e2), n2;\n }\n dequeueWithFallback(e2) {\n let t2 = this.dequeue(e2);\n if (t2 !== void 0) return t2;\n for (let [e3, t3] of this.map) {\n let n2 = t3.pop();\n if (t3.isEmpty() && this.map.delete(e3), n2 !== void 0) return n2;\n }\n }\n removeLast(e2) {\n let t2 = this.map.get(e2);\n t2 && (t2.popLast(), t2.isEmpty() && this.map.delete(e2));\n }\n clear() {\n this.map.clear();\n }\n };\n let ne = globalThis, M = new Uint8Array(), N = new ArrayBuffer(0);\n var P = (_e4 = class {\n constructor(e2, t2 = `no-preference`) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\", null);\n __publicField(this, \"logger\");\n __publicField(this, \"hardwareAcceleration\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"previousCodec\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"pendingSamples\", new j());\n __publicField(this, \"errors\", new e(10));\n __publicField(this, \"pendingDecodeCount\", 0);\n __publicField(this, \"waitResolve\", null);\n __publicField(this, \"waitTargetCount\", 1);\n __publicField(this, \"consecutiveErrors\", 0);\n __publicField(this, \"effectiveHardwareAcceleration\");\n __publicField(this, \"clearPendingState\", () => {\n this.pendingSamples.clear(), this.pendingDecodeCount = 0, this.notifyWaiter();\n });\n __publicField(this, \"resetDecoderState\", () => {\n this.clearPendingState(), this.previousSample = void 0, this.previousCodec = void 0, this.isWaitingForSync = true;\n });\n __publicField(this, \"ensureDecoder\", () => ((!this.decoder || this.decoder.state === `closed`) && (this.decoder = this.createDecoder()), this.decoder));\n __publicField(this, \"recreateDecoder\", () => {\n this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = this.createDecoder(), this.resetDecoderState();\n });\n __publicField(this, \"notifyWaiter\", () => {\n if (this.waitResolve && (this.decodedSamples.length >= this.waitTargetCount || this.pendingDecodeCount <= 0 || !this.decoder)) {\n let e2 = this.waitResolve;\n this.waitResolve = null, this.waitTargetCount = 1, e2();\n }\n });\n __publicField(this, \"createDecoder\", () => new VideoDecoder({ output: (e2) => {\n let t2 = this.pendingSamples.dequeue(e2.timestamp), n2 = t2 == null ? void 0 : t2.decodeMetadata, r2 = n2 === void 0 ? 0 : Math.max(performance.now() - n2.startTime, 0), i2 = n2 === void 0 ? 0 : Math.max(n2.pendingBeforeEnqueue, 0) * Math.max(n2.frameDurationMs, 0), a2 = Math.max(0, r2 - i2), o2 = t2 == null ? void 0 : t2.sample;\n if (!o2) {\n e2.close(), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n return;\n }\n let s2 = __spreadProps(__spreadValues({}, o2), { type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: e2.displayWidth, height: e2.displayHeight, codedWidth: e2.codedWidth, codedHeight: e2.codedHeight, data: [M, M, M], buffer: N, videoFrame: e2, statistics: { decodeTime: a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } });\n this.decodedSamples.push(s2), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.consecutiveErrors = 0, this.notifyWaiter();\n }, error: (e2) => {\n if (this.logger.error(`Decoder error:`, e2.name, e2.message), this.errors.push(e2), this.consecutiveErrors++, this.consecutiveErrors >= _e4.maxConsecutiveErrors && this.effectiveHardwareAcceleration !== `prefer-software`) {\n this.logger.warn(`${this.consecutiveErrors} consecutive decoder errors, retrying with software decoding`), this.effectiveHardwareAcceleration = `prefer-software`, this.consecutiveErrors = 0, this.recreateDecoder();\n return;\n }\n if (!this.decoder || this.decoder.state === `closed`) {\n this.resetDecoderState();\n return;\n }\n this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n } }));\n __publicField(this, \"unload\", () => {\n this.decodedSamples.forEach((e2) => {\n e2.videoFrame && e2.videoFrame.close();\n }), this.decodedSamples = [], this.resetDecoderState(), this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = null;\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2, _e5;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = this.ensureDecoder(), r2 = t2.codec, i2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, a2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, o2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId, s2 = this.previousCodec !== r2;\n if (!this.previousSample || a2 || o2 || i2 || s2) {\n this.previousSample && n2.state === `configured` && n2.flush().catch((e3) => {\n this.logger.warn(`Failed to flush before reconfiguration:`, e3);\n });\n let i3, a3;\n if (r2 === `av1`) {\n let { codecString: e3, fallbackCodecString: n3, width: r3, height: o4 } = y(t2.data);\n a3 = n3;\n let s3 = new DataView(t2.data).getUint8(0), c2 = s3 !== void 0 && s3 & 128 ? t2.data : void 0;\n i3 = __spreadProps(__spreadValues({ codec: e3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration }, c2 ? { description: c2 } : {}), { codedWidth: r3, codedHeight: o4 });\n } else if (r2 === `h265`) {\n let n3 = t2.codecString;\n if (!n3) {\n this.logger.error(`Missing HEVC codec string in init segment, dropping sample`);\n return;\n }\n i3 = { codec: n3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: e2.width, codedHeight: e2.height };\n } else {\n let { sequenceParameterSets: e3 } = h(t2.data);\n if (e3.length === 0) {\n this.logger.error(`No SPS found in init segment, dropping sample`);\n return;\n }\n let n3 = e3[0];\n if (!n3) {\n this.logger.error(`Missing SPS payload in init segment, dropping sample`);\n return;\n }\n let r3 = g(n3);\n i3 = { codec: `avc1.${r3.profileIdc.toString(16).padStart(2, `0`)}${r3.constraintFlags.toString(16).padStart(2, `0`)}${r3.levelIdc.toString(16).padStart(2, `0`)}`, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: r3.width, codedHeight: r3.height };\n }\n let o3 = false;\n try {\n n2.configure(i3), o3 = true;\n } catch (t3) {\n if (r2 === `av1` && a3 && n2.state !== `closed`) try {\n n2.configure(__spreadProps(__spreadValues({}, i3), { codec: a3 })), o3 = true;\n } catch (e3) {\n }\n if (!o3) {\n this.logger.error(`Failed to configure decoder for ${r2} (rendition ${e2.renditionId}), dropping sample`, t3), this.errors.push(t3 instanceof Error ? t3 : Error(`Failed to configure decoder for ${r2}`)), this.previousSample = void 0, this.ensureDecoder();\n return;\n }\n }\n this.isWaitingForSync = true, this.previousCodec = r2;\n }\n if (e2.timescale <= 0) {\n this.logger.error(`Invalid timescale ${e2.timescale} in sample, dropping sample`);\n return;\n }\n if (this.previousSample && this.previousSample.timescale > 0) {\n let t3 = this.previousSample, n3 = (t3.timestamp + t3.duration * 2) / t3.timescale;\n e2.timestamp / e2.timescale > n3 && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let l2 = Math.floor(1e6 * (e2.timestamp + ((_e5 = e2.compositionTimeOffset) != null ? _e5 : 0)) / e2.timescale), u2 = Math.floor(1e6 * e2.duration / e2.timescale);\n try {\n let t3 = performance.now(), r3 = this.pendingDecodeCount, i3 = e2.duration / e2.timescale * 1e3, a3 = new EncodedVideoChunk({ type: e2.isSync ? `key` : `delta`, timestamp: l2, duration: u2 > 0 ? u2 : void 0, data: e2.data });\n this.pendingSamples.enqueue(l2, { sample: e2, decodeMetadata: { startTime: t3, pendingBeforeEnqueue: r3, frameDurationMs: i3 } }), n2.decode(a3), this.pendingDecodeCount++;\n } catch (e3) {\n this.logger.error(`Failed to decode chunk:`, e3), this.pendingSamples.removeLast(l2), this.previousSample = void 0, this.isWaitingForSync = true, this.ensureDecoder(), this.notifyWaiter();\n }\n });\n __publicField(this, \"flush\", () => __async(this, null, function* () {\n if (this.decoder && this.decoder.state === `configured`) try {\n yield this.decoder.flush();\n } catch (e2) {\n this.logger.error(`Failed to flush decoder:`, e2), this.resetDecoderState();\n }\n }));\n __publicField(this, \"waitForFrames\", (e2 = 1) => this.pendingDecodeCount <= 0 || this.decodedSamples.length >= e2 ? Promise.resolve() : new Promise((t2) => {\n var _a2;\n (_a2 = this.waitResolve) == null ? void 0 : _a2.call(this), this.waitResolve = t2, this.waitTargetCount = Math.max(1, e2), this.notifyWaiter();\n }));\n __publicField(this, \"pendingFrames\", () => this.pendingDecodeCount);\n __publicField(this, \"error\", () => this.errors.pop());\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.logger = e2, this.hardwareAcceleration = t2, this.effectiveHardwareAcceleration = t2, this.decoder = this.createDecoder();\n }\n }, __publicField(_e4, \"maxConsecutiveErrors\", 3), __publicField(_e4, \"isSupported\", () => ne.VideoDecoder !== void 0), __publicField(_e4, \"create\", (e2, n2 = `no-preference`) => __async(null, null, function* () {\n if (!_e4.isSupported()) throw Error(`WebCodecs VideoDecoder is not supported in this environment`);\n return new _e4(e2, n2);\n })), _e4), re = class {\n constructor() {\n __publicField(this, \"initialized\", false);\n __publicField(this, \"anchorMediaMs\", 0);\n __publicField(this, \"anchorPerfMs\", 0);\n }\n reset() {\n this.initialized = false, this.anchorMediaMs = 0, this.anchorPerfMs = 0;\n }\n estimate(e2 = performance.now()) {\n return this.initialized ? this.anchorMediaMs + (e2 - this.anchorPerfMs) : 0;\n }\n updateFromMainThread(e2, t2) {\n let n2 = performance.now(), r2 = e2 + Math.max(0, Date.now() - t2);\n if (!this.initialized) return this.setAnchor(r2, n2), `soft-correct`;\n let i2 = this.estimate(n2), a2 = r2 - i2;\n if (a2 < -400) return this.setAnchor(r2, n2), `resync`;\n if (a2 < -120) return `ignore`;\n if (a2 > 120) return this.setAnchor(r2, n2), `soft-correct`;\n let o2 = Math.max(-12, Math.min(12, a2 * 0.25));\n return this.setAnchor(i2 + o2, n2), `soft-correct`;\n }\n setAnchor(e2, t2) {\n this.anchorMediaMs = e2, this.anchorPerfMs = t2, this.initialized = true;\n }\n };\n let ie = new ArrayBuffer(0), F = self, I = r.get().createContext(`VideoDecoder.worker`), L = new re(), R, z = false, B, V, H = false, U = [], W, G = 0, K = 0, q = true, J, ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0, Q = __spreadValues({}, i), $ = { cues: [], containerWidth: 0, containerHeight: 0, devicePixelRatio: 1, bottomPadding: 0, canvas: void 0, context: void 0, logicalWidth: 0, logicalHeight: 0 }, le = () => {\n $.canvas || ($.canvas = new OffscreenCanvas(1, 1), $.context = $.canvas.getContext(`2d`, { alpha: true }));\n }, ue = (e2) => {\n e2.fillStyle = `white`, e2.textAlign = `left`, e2.textBaseline = `top`, e2.font = `${Q.fontSize} sans-serif`;\n }, de = (e2, t2, n2) => {\n let r2 = [], i2 = e2.split(` `), a2 = ``;\n for (; i2.length > 0; ) {\n ue(n2);\n let e3 = 0;\n for (; n2.measureText(a2 + (a2.length > 0 ? ` ` : ``) + i2[0]).width + Q.textPadding * 2 <= t2 && i2.length > 0; ) e3++, a2 += (a2.length > 0 ? ` ` : ``) + i2.shift();\n if (e3 === 0) {\n r2.push(i2.shift() || ``), a2 = ``;\n continue;\n }\n r2.push(a2), a2 = ``;\n }\n return r2;\n }, fe = () => {\n le();\n let e2 = $.context, t2 = $.canvas;\n if (!e2 || !t2) return;\n let n2 = $.devicePixelRatio, r2 = $.containerHeight || $.containerWidth * 9 / 16;\n Q.fontSize = a($.containerWidth, r2);\n let i2 = $.containerWidth || (B == null ? void 0 : B.width) || 960, o2 = $.cues.flatMap((t3) => t3.text.split(`\n`).flatMap((t4) => de(t4, i2, e2))).map((t3) => {\n ue(e2);\n let n3 = e2.measureText(t3);\n return { text: t3, size: { height: n3.fontBoundingBoxAscent + n3.fontBoundingBoxDescent + Q.textPadding * 2, width: n3.width + Q.textPadding * 2 } };\n });\n if (o2.length === 0) {\n $.logicalWidth = 0, $.logicalHeight = 0;\n return;\n }\n let s2 = Math.max(...o2.map((e3) => e3.size.width)), c2 = o2.reduce((e3, { size: t3 }) => e3 + t3.height, 0) + (o2.length - 1) * Q.lineGap;\n $.logicalWidth = s2, $.logicalHeight = c2, t2.width = s2 * n2, t2.height = c2 * n2, e2.setTransform(n2, 0, 0, n2, 0, 0), e2.clearRect(0, 0, t2.width, t2.height);\n let l2 = 0;\n for (let { size: t3, text: n3 } of o2) ue(e2), e2.fillStyle = Q.backgroundColor, e2.fillRect(0, l2, t3.width, t3.height), ue(e2), e2.fillText(n3, Q.textPadding, l2 + Q.textPadding), l2 += t3.height + Q.lineGap;\n }, pe = () => {\n if ($.cues.length === 0 || $.logicalWidth === 0 || $.logicalHeight === 0) return;\n let e2 = $.canvas;\n if (!B || !V || !e2) return;\n let t2 = o({ subtitleWidth: $.logicalWidth, subtitleHeight: $.logicalHeight, canvasWidth: B.width, canvasHeight: B.height, containerWidth: $.containerWidth || B.width, bottomPadding: $.bottomPadding });\n V.drawImage(e2, t2.x, t2.y, t2.drawWidth, t2.drawHeight);\n }, me = () => {\n U.forEach((e2) => {\n e2.videoFrame.close();\n }), U = [];\n }, he = (e2, t2) => {\n let n2 = (t2 - 400) / 1e3, r2 = (e2.sample.timestamp + (e2.sample.compositionTimeOffset || 0)) / e2.sample.timescale;\n U = U.filter((e3) => {\n let t3 = (e3.sample.timestamp + (e3.sample.compositionTimeOffset || 0)) / e3.sample.timescale, i2 = t3 > n2 && t3 <= r2;\n if (!i2) try {\n e3.videoFrame.close();\n } catch (e4) {\n }\n return i2;\n }), U.push(e2);\n }, ge = () => {\n J !== void 0 && (clearTimeout(J), J = void 0);\n }, _e = () => {\n W !== void 0 && (cancelAnimationFrame(W), W = void 0);\n }, ve = () => {\n G = 0, K = 0, q = true, L.reset(), ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0;\n }, ye = () => {\n _e(), ge(), me();\n }, be = (e2) => {\n !B || !V || ((B.width !== e2.displayWidth || B.height !== e2.displayHeight) && (B.width = e2.displayWidth, B.height = e2.displayHeight), V.drawImage(e2, 0, 0, B.width, B.height));\n }, xe = (e2) => {\n be(e2), pe();\n }, Se = (e2) => (e2.timestamp + (e2.compositionTimeOffset || 0)) / e2.timescale * 1e3, Ce = () => {\n var _a2, _b2;\n if (!H || !B || !V) {\n W = void 0;\n return;\n }\n let e2 = L.estimate(), t2 = e2 + 8, n2 = [], r2 = U[0];\n for (; r2 && Se(r2.sample) <= t2; ) {\n let e3 = U.shift();\n if (!e3) break;\n n2.push(e3), r2 = U[0];\n }\n let i2, a2 = 0;\n if (n2.length === 1) i2 = n2[0];\n else if (n2.length > 1) {\n let t3 = n2[n2.length - 1], r3 = n2[n2.length - 2];\n if (!t3 || !r3) {\n W = requestAnimationFrame(Ce);\n return;\n }\n if (e2 - Se(t3.sample) < 10) {\n U.unshift(t3), i2 = r3;\n for (let e3 = 0; e3 < n2.length - 2; e3++) (_a2 = n2[e3]) == null ? void 0 : _a2.videoFrame.close();\n a2 = Math.max(n2.length - 2, 0);\n } else {\n i2 = t3;\n for (let e3 = 0; e3 < n2.length - 1; e3++) (_b2 = n2[e3]) == null ? void 0 : _b2.videoFrame.close();\n a2 = n2.length - 1;\n }\n }\n if (i2) {\n try {\n xe(i2.videoFrame);\n } catch (e3) {\n I.error(`Failed to render VideoFrame to OffscreenCanvas:`, e3);\n }\n i2.videoFrame.close(), G++;\n }\n K += a2, W = requestAnimationFrame(Ce);\n }, we = (e2) => {\n e2.data = ie;\n }, Te = () => G !== oe || K !== se, Ee = (e2, t2, n2) => {\n var _a2, _b2;\n let r2 = H && Te(), i2 = Y > 0, a2 = (_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0, o2 = a2 !== ce;\n if (t2 === 0 && e2.length === 0 && !r2 && !i2 && !o2) return;\n let s2 = z ? H ? [] : e2.map((e3) => e3.videoFrame).filter((e3) => e3 !== void 0) : e2.map((e3) => e3.buffer), c2 = { type: `decoded samples`, samples: e2, timestamp: n2, samplesAcceptedCount: t2, decoderPendingCount: a2 };\n r2 && (c2.renderedFrameCount = G, c2.rendererDroppedFrameCount = K, oe = G, se = K), i2 && (c2.estimatedSampleCount = Y, c2.estimatedDecodeTimeSum = X, c2.estimatedTransportTimeToWorkerSum = Z, Y = 0, X = 0, Z = 0), F.postMessage(c2, s2), ce = a2;\n }, De = (e2) => {\n let t2 = e2.videoFrame;\n if (q && B && V) {\n q = false;\n try {\n xe(t2), G++;\n } finally {\n t2.close();\n }\n } else he({ videoFrame: t2, sample: e2 }, L.estimate());\n e2.statistics && (Y++, X += e2.statistics.decodeTime, Z += e2.statistics.transportTimeToWorker), e2.videoFrame = void 0;\n }, Oe = (e2, t2) => {\n let n2 = [], r2;\n for (; r2 = R == null ? void 0 : R.take(); ) {\n if (r2.statistics && (r2.statistics.transportTimeToWorker = e2 > 0 ? e2 : ae, r2.statistics.samplesInBatch = t2), H && r2.videoFrame) {\n De(r2);\n continue;\n }\n n2.push(r2);\n }\n return n2;\n }, ke = () => {\n var _a2, _b2;\n J = void 0, !(!z || !R) && (Ee(Oe(0, 1), 0, Date.now()), ((_b2 = (_a2 = R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae());\n }, Ae = () => {\n !z || J !== void 0 || (J = setTimeout(ke, 10));\n }, je = (e2, t2, n2, i2) => __async(null, null, function* () {\n try {\n if (r.get().setLevel(e2), ye(), ve(), t2 && P.isSupported()) try {\n let e3 = I.createContext(`WebCodecsVideo`);\n R = yield P.create(e3, n2), z = true, I.info(`Initialized WebCodecs video decoder`, { hardwareAcceleration: n2 });\n } catch (e3) {\n I.warn(`WebCodecs initialization failed, falling back to WASM:`, e3), R = yield A.create(), z = false, I.info(`Initialized WASM video decoder (WebCodecs fallback)`);\n }\n else R = yield A.create(), z = false, I.info(`Initialized WASM video decoder`);\n H = false, B = void 0, V = void 0, i2 && z ? (B = i2, V = i2.getContext(`2d`, { alpha: false, desynchronized: true }), V ? (H = true, I.info(`OffscreenCanvas rendering enabled`), W = requestAnimationFrame(Ce)) : (I.error(`Failed to get 2D context from OffscreenCanvas`), H = false, B = void 0)) : i2 && !z && I.warn(`OffscreenCanvas provided but WebCodecs is not in use - ignoring canvas`), F.postMessage({ type: `ready`, isWebCodecs: z, usingOffscreenCanvas: H });\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n });\n F.addEventListener(`message`, (e2) => {\n var _a2, _b2;\n switch (e2.data.type) {\n case `init`:\n je(e2.data.logLevel, e2.data.useWebCodecs, e2.data.webcodecsHardwareAcceleration, e2.data.offscreenCanvas);\n break;\n case `decode samples`:\n {\n let t2 = e2.data;\n try {\n let e3 = Date.now() - t2.timestamp;\n ae = e3, t2.currentTime !== void 0 && L.updateFromMainThread(t2.currentTime, t2.timestamp) === `resync` && (me(), q = true), t2.samples.forEach((e4) => {\n R == null ? void 0 : R.enqueue(e4);\n });\n let n2 = Oe(e3, t2.samples.length);\n for (let e4 of t2.samples) we(e4);\n Ee(n2, t2.samples.length, Date.now()), ((_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae();\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n }\n break;\n case `unload`:\n I.info(`Unloading video decoder worker`), R == null ? void 0 : R.unload(), R = void 0, ye(), ve();\n break;\n case `init segment`:\n R == null ? void 0 : R.initSegment(e2.data.initSegment);\n break;\n case `subtitle cues`:\n $.cues = e2.data.cues, $.containerWidth = e2.data.containerWidth, $.containerHeight = e2.data.containerHeight, $.devicePixelRatio = e2.data.devicePixelRatio, $.bottomPadding = e2.data.bottomPadding, fe();\n break;\n }\n });\n})();\n", Wy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", Uy], { type: "text/javascript;charset=utf-8" });
|
|
9559
|
-
})),
|
|
9560
|
-
V(),
|
|
9568
|
+
var Wy, Gy, Ky = t((() => {
|
|
9569
|
+
Wy = "var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), setter ? setter.call(obj, value) : member.set(obj, value), value);\nvar __privateWrapper = (obj, member, setter, getter) => ({\n set _(value) {\n __privateSet(obj, member, value, setter);\n },\n get _() {\n return __privateGet(obj, member, getter);\n }\n});\nvar __async = (__this, __arguments, generator) => {\n return new Promise((resolve, reject) => {\n var fulfilled = (value) => {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n };\n var rejected = (value) => {\n try {\n step(generator.throw(value));\n } catch (e) {\n reject(e);\n }\n };\n var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);\n step((generator = generator.apply(__this, __arguments)).next());\n });\n};\n(function() {\n var _e2, _t, _n, _a, _e3, _t2, _n2, _r, _b, _i, _c, _d, _e4;\n var e = class {\n constructor(e2 = 50) {\n __publicField(this, \"maxSize\");\n __publicField(this, \"values\", []);\n __publicField(this, \"start\", 0);\n __publicField(this, \"size\", () => this.values.length - this.start);\n __publicField(this, \"compact\", () => {\n if (this.start !== 0) {\n if (this.start >= this.values.length) {\n this.values = [], this.start = 0;\n return;\n }\n this.start < 32 && this.start * 2 < this.values.length || (this.values = this.values.slice(this.start), this.start = 0);\n }\n });\n __publicField(this, \"push\", (e2) => {\n this.isFull() && (this.start++, this.compact()), this.values.push(e2);\n });\n __publicField(this, \"clear\", () => {\n this.values = [], this.start = 0;\n });\n __publicField(this, \"pop\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values[this.start];\n return this.start++, this.compact(), e2;\n });\n __publicField(this, \"popLast\", () => {\n if (this.isEmpty()) return;\n let e2 = this.values.pop();\n return this.start >= this.values.length && this.clear(), e2;\n });\n __publicField(this, \"peekFirst\", () => this.isEmpty() ? void 0 : this.values[this.start]);\n __publicField(this, \"peekLast\", () => this.isEmpty() ? void 0 : this.values[this.values.length - 1]);\n __publicField(this, \"isFull\", () => this.size() >= this.maxSize);\n __publicField(this, \"isEmpty\", () => this.size() === 0);\n __publicField(this, \"items\", () => this.start === 0 ? this.values : this.values.slice(this.start));\n __publicField(this, \"filterPop\", (e2) => {\n for (; !this.isEmpty(); ) {\n let t2 = this.peekFirst();\n if (t2 === void 0 || e2(t2)) return;\n this.pop();\n }\n });\n this.maxSize = e2;\n }\n }, t = (_a = class {\n constructor(e2, t2 = 0) {\n __privateAdd(this, _e2);\n __privateAdd(this, _t);\n __privateAdd(this, _n);\n __publicField(this, \"position\", () => __privateGet(this, _n));\n __publicField(this, \"peekBit\", () => this.getBit(__privateGet(this, _t), __privateGet(this, _n)));\n __publicField(this, \"readBit\", () => {\n let e2 = this.peekBit();\n return __privateWrapper(this, _n)._++, e2;\n });\n __publicField(this, \"readBits\", (e2) => {\n let t2 = 0;\n for (let n2 = 0; n2 < e2; n2++) t2 = t2 << 1 | (this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) ? 1 : 0);\n return t2;\n });\n __publicField(this, \"remainingBits\", () => __privateGet(this, _t).byteLength * 8 - __privateGet(this, _n));\n __publicField(this, \"readSignedExpGolomb\", () => {\n let e2 = this.readUnsignedExpGolomb();\n return e2 & 1 ? (e2 + 1) / 2 : -(e2 / 2);\n });\n __publicField(this, \"readUnsignedExpGolomb\", () => {\n let e2 = 0;\n for (; this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) === 0; ) e2++;\n let t2 = 1 << e2;\n for (let n2 = e2 - 1; n2 >= 0; n2--) t2 |= this.getBit(__privateGet(this, _t), __privateWrapper(this, _n)._++) << n2;\n return t2 - 1;\n });\n __publicField(this, \"getBit\", (e2, t2) => {\n if (e2.byteLength * 8 <= t2) throw Error(`BitReader: Out of bounds`);\n return e2[t2 >> 3] >> 7 - (t2 & 7) & 1;\n });\n __privateSet(this, _e2, e2), __privateSet(this, _t, new Uint8Array(__privateGet(this, _e2))), __privateSet(this, _n, t2);\n }\n bytes() {\n return __privateGet(this, _t);\n }\n }, _e2 = new WeakMap(), _t = new WeakMap(), _n = new WeakMap(), _a);\n let n = [`off`, `error`, `warn`, `info`, `debug`, `trace`];\n var r = (_b = class {\n constructor({ context: e2, logLevel: t2, debug: n2 }) {\n __privateAdd(this, _e3, /* @__PURE__ */ new Map());\n __privateAdd(this, _t2, ``);\n __privateAdd(this, _n2, false);\n __privateAdd(this, _r, `off`);\n __publicField(this, \"trace\", (...e2) => {\n });\n __publicField(this, \"debug\", (...e2) => {\n });\n __publicField(this, \"info\", (...e2) => {\n });\n __publicField(this, \"warn\", (...e2) => {\n });\n __publicField(this, \"error\", (...e2) => {\n });\n __publicField(this, \"table\", (...e2) => {\n });\n __publicField(this, \"count\", (...e2) => {\n });\n __privateSet(this, _t2, e2), __privateSet(this, _r, t2), __privateSet(this, _n2, n2 || false), this.setLevel(t2), this.setDebug(__privateGet(this, _n2));\n }\n setDebug(e2) {\n __privateSet(this, _n2, e2);\n for (let [t2, n2] of __privateGet(this, _e3)) n2.setDebug(e2);\n e2 ? (this.table = console.table.bind(console), this.count = console.count.bind(console)) : (this.table = () => {\n }, this.count = () => {\n });\n }\n setLevel(e2) {\n __privateSet(this, _r, e2);\n for (let [t3, n2] of __privateGet(this, _e3)) n2.setLevel(e2);\n let t2 = n.indexOf(e2);\n for (let [e3, r2] of n.entries()) r2 !== `off` && (e3 <= t2 ? this[r2] = console[r2].bind(console, `%c%s %c%s`, `font-weight:bold;`, r2.toUpperCase(), `font-weight:normal;`, __privateGet(this, _t2)) : this[r2] = () => {\n });\n }\n createContext(t2) {\n let n2 = __privateGet(this, _e3).get(t2);\n if (!n2) {\n let n3 = new _b({ context: `${t2}`, logLevel: __privateGet(this, _r), debug: __privateGet(this, _n2) });\n return __privateGet(this, _e3).set(t2, n3), n3;\n }\n return n2;\n }\n static get() {\n return __privateGet(_b, _i) || __privateSet(_b, _i, new _b({ context: `Vindral`, logLevel: `off` })), __privateGet(_b, _i);\n }\n }, _e3 = new WeakMap(), _t2 = new WeakMap(), _n2 = new WeakMap(), _r = new WeakMap(), _i = new WeakMap(), __privateAdd(_b, _i), _b);\n let i = { backgroundColor: `rgba(0,0,0,0.6)`, textPadding: 8, fontSize: `28px`, lineGap: 16 };\n function a(e2, t2) {\n let n2 = t2 * 0.05, r2 = e2 * 0.035;\n return `${Math.max(Math.round(Math.min(n2, r2)), 16)}px`;\n }\n function o(e2) {\n var _a2;\n let { subtitleWidth: t2, subtitleHeight: n2, canvasWidth: r2, canvasHeight: i2, containerWidth: a2, bottomPadding: o2 } = e2, s2 = (_a2 = e2.baseMargin) != null ? _a2 : 20, c2 = r2 / a2, l2 = t2 * c2, u2 = n2 * c2;\n return { drawWidth: l2, drawHeight: u2, x: (r2 - l2) / 2, y: i2 - u2 - (o2 + s2) * c2 };\n }\n var s = class extends Error {\n constructor(e2, t2, n2 = {}) {\n super(e2);\n __publicField(this, \"props\");\n __publicField(this, \"extra\", {});\n __publicField(this, \"code\", () => this.props.code);\n __publicField(this, \"isFatal\", () => this.props.isFatal);\n __publicField(this, \"source\", () => this.props.source);\n __publicField(this, \"type\", () => {\n var _a2;\n return (_a2 = this.props.type) != null ? _a2 : `external`;\n });\n __publicField(this, \"toStringifiable\", () => {\n var _a2;\n let e2 = this.source(), t2 = e2 instanceof Error ? e2.stack : this.stack;\n return __spreadProps(__spreadValues({}, this.extra), { code: this.props.code, isFatal: this.props.isFatal, type: this.props.type, message: this.message, sourceMessage: (_a2 = this.source()) == null ? void 0 : _a2.message, stack: t2 });\n });\n this.props = t2, this.extra = n2, Object.setPrototypeOf(this, new.target.prototype);\n }\n };\n let c = (e2, t2) => new s(`No init segment for rendition id ${e2} for channel ${t2}`, { isFatal: false, code: `missing_init_segment`, type: `internal` }), l = (e2) => {\n let t2 = e2.getUint32(0, false), n2 = e2.getUint8(0) << 16 | e2.getUint16(1, false), r2 = 0;\n return n2 === 1 ? r2 += 3 : t2 === 1 && (r2 += 4), r2;\n }, u = (e2) => l(new DataView(e2, 0)) !== 0, d = (e2, t2 = 0) => {\n for (let n2 = t2; n2 < e2.byteLength - 4; n2++) {\n let t3 = e2.getUint32(n2) === 1, r2 = (e2.getUint8(n2) << 16 | e2.getUint16(n2 + 1)) == 1;\n if (t3 || r2) return { position: n2, nalPrefixSize: t3 ? 4 : 3 };\n }\n }, f = (e2) => e2 & 31, p = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = d(n2);\n for (; r2; ) {\n let { position: i2, nalPrefixSize: a2 } = r2, o2 = d(n2, i2 + 4), s2 = o2 ? o2.position - i2 - a2 : void 0;\n if (!t2(new DataView(e2, i2 + a2, s2), a2)) return;\n r2 = o2;\n }\n }, m = (e2, t2) => {\n let n2 = new DataView(e2, 0), r2 = 0;\n for (; r2 < e2.byteLength; ) {\n let i2 = n2.getUint32(r2);\n if (!t2(new DataView(e2, r2 + 4, i2))) return;\n r2 += i2 + 4;\n }\n }, h = (e2) => {\n let t2 = [], n2 = [];\n if (!u(e2)) {\n let r2 = new DataView(e2, 0), i2 = r2.getUint8(5) & 31, a2 = 6;\n for (let n3 = 0; n3 < i2; n3++) {\n let n4 = r2.getUint16(a2);\n t2.push(e2.slice(a2 + 2, a2 + 2 + n4)), a2 += n4 + 2;\n }\n let o2 = r2.getUint8(a2);\n a2 += 1;\n for (let t3 = 0; t3 < o2; t3++) {\n let t4 = r2.getUint16(a2);\n n2.push(e2.slice(a2 + 2, a2 + 2 + t4)), a2 += t4 + 2;\n }\n return { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }\n return p(e2, (e3) => {\n let r2 = e3.byteOffset + e3.byteLength;\n switch (f(e3.getUint8(0))) {\n case 8:\n n2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n case 7:\n t2.push(e3.buffer.slice(e3.byteOffset, r2));\n break;\n }\n return true;\n }), { sequenceParameterSets: t2, pictureParameterSets: n2 };\n }, g = (e2) => {\n var _a2;\n let n2 = new DataView(e2), r2 = n2.getUint8(1), i2 = n2.getUint8(2), a2 = n2.getUint8(3), o2 = new t(e2, 32);\n o2.readUnsignedExpGolomb();\n let s2 = 1;\n switch (r2) {\n case 100:\n case 110:\n case 122:\n case 244:\n case 44:\n case 83:\n case 86:\n case 118:\n case 128:\n case 138:\n case 144:\n if (s2 = o2.readUnsignedExpGolomb(), s2 === 3 && o2.readBits(1), o2.readUnsignedExpGolomb() + 8, o2.readUnsignedExpGolomb() + 8, o2.readBit(), o2.readBit()) {\n for (let e3 = 0; e3 < (s2 === 3 ? 12 : 8); e3++) if (o2.readBit()) {\n let t2 = e3 < 6 ? 16 : 64, n3 = 0, r3 = 8, i3 = 8;\n for (let e4 = 0; e4 < t2; e4++) i3 !== 0 && (n3 = o2.readSignedExpGolomb(), i3 = (r3 + n3 + 256) % 256), r3 = i3 === 0 ? r3 : i3;\n }\n }\n break;\n default:\n break;\n }\n o2.readUnsignedExpGolomb();\n let c2 = o2.readUnsignedExpGolomb();\n if (c2 === 0) o2.readUnsignedExpGolomb();\n else if (c2 === 1) throw Error(`Unhandled case`);\n o2.readUnsignedExpGolomb(), o2.readBit();\n let l2 = o2.readUnsignedExpGolomb(), u2 = o2.readUnsignedExpGolomb(), d2 = o2.readBit();\n d2 === 0 && o2.readBit(), o2.readBit();\n let f2 = l2 + 1, p2 = u2 + 1;\n if (p2 *= 2 - d2, p2 *= 16, f2 *= 16, o2.readBit()) {\n let e3 = s2 === 1 ? 1 : 0, t2 = 1 << (s2 === 1 || s2 === 2 ? 1 : 0), n3 = 2 - d2 << e3, r3 = o2.readUnsignedExpGolomb() * t2, i3 = o2.readUnsignedExpGolomb() * t2, a3 = o2.readUnsignedExpGolomb() * n3, c3 = o2.readUnsignedExpGolomb() * n3;\n f2 -= r3 + i3, p2 -= a3 + c3;\n }\n let m2 = { numerator: 1, denumerator: 1 };\n return o2.readBit() && o2.readBit() && (m2 = (_a2 = _[o2.readBits(8)]) != null ? _a2 : { numerator: 0, denumerator: 0 }), { width: f2, height: p2, pixelAspectRatio: m2, profileIdc: r2, constraintFlags: i2, levelIdc: a2 };\n }, _ = [{ numerator: 0, denumerator: 0 }, { numerator: 1, denumerator: 1 }, { numerator: 12, denumerator: 11 }, { numerator: 10, denumerator: 11 }, { numerator: 16, denumerator: 11 }, { numerator: 40, denumerator: 33 }, { numerator: 24, denumerator: 11 }, { numerator: 20, denumerator: 11 }, { numerator: 32, denumerator: 11 }, { numerator: 80, denumerator: 33 }, { numerator: 18, denumerator: 11 }, { numerator: 15, denumerator: 11 }, { numerator: 64, denumerator: 33 }, { numerator: 160, denumerator: 99 }, { numerator: 4, denumerator: 3 }, { numerator: 3, denumerator: 2 }, { numerator: 2, denumerator: 1 }], v = (e2) => {\n let n2 = new t(e2);\n return n2.peekBit() === 1 && n2.readBits(32), S(n2), C(n2);\n }, y = (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = v(e2), n2 = t2.seqProfile, r2 = (_b2 = (_a2 = t2.operatingPoints[0]) == null ? void 0 : _a2.seqLevelIdx) != null ? _b2 : 0, i2 = (_d2 = (_c2 = t2.operatingPoints[0]) == null ? void 0 : _c2.tier) != null ? _d2 : 0, a2 = t2.colorConfig.bitDepth, o2 = `av01.${n2}.${r2.toString().padStart(2, `0`)}${i2 === 0 ? `M` : `H`}.${a2.toString().padStart(2, `0`)}`;\n return { codecString: `${o2}.${t2.colorConfig.monoChrome ? 1 : 0}.${`${t2.colorConfig.subsamplingX}${t2.colorConfig.subsamplingY}${t2.colorConfig.chromaSamplePosition}`}.${t2.colorConfig.colorPrimaries.toString().padStart(2, `0`)}.${t2.colorConfig.transferCharacteristics.toString().padStart(2, `0`)}.${t2.colorConfig.matrixCoefficients.toString().padStart(2, `0`)}.${t2.colorConfig.colorRange ? 1 : 0}`, fallbackCodecString: o2, width: t2.maxFrameWidth, height: t2.maxFrameHeight };\n }, b = (e2) => {\n let t2 = 0, n2 = 0;\n for (let r2 = 0; r2 < 8; r2++) {\n let i2 = e2.readBits(8);\n if (t2 |= (i2 & 127) << r2 * 7, n2 += 1, (i2 & 128) != 128) break;\n }\n return [n2, t2];\n }, x = (e2) => {\n let t2 = 0;\n for (; t2 < 100 && e2.readBit() === 0; ) t2++;\n return t2 >= 32 ? 0 : e2.readBits(t2) + (1 << t2) - 1;\n }, S = (e2) => {\n let t2 = e2.remainingBits() / 8, n2 = e2.readBits(8);\n if (n2 >> 7 & 1) return;\n let r2 = n2 >> 3 & 15, i2 = n2 >> 2 & 1, a2 = n2 >> 1 & 1;\n i2 === 1 && e2.readBits(8);\n let [o2, s2] = a2 ? b(e2) : [0, t2];\n return { headerLength: 1 + i2 + o2, type: r2, obuSize: s2 };\n }, ee = (e2) => {\n let t2 = e2.readBits(32), n2 = e2.readBits(32), r2 = e2.readBit() !== 0, i2 = 0;\n return r2 && (i2 = x(e2) + 1), { timescale: n2, equalPictureInterval: r2, numUnitsInDisplayTick: t2, numTicksPerPicture: i2 };\n }, C = (e2) => {\n let t2 = e2.readBits(3), n2 = e2.readBit() !== 0, r2 = e2.readBit() !== 0, i2, a2 = false, o2 = false, s2 = false, c2 = 0, l2 = 0, u2 = [];\n if (r2) e2.readBits(5);\n else {\n if (o2 = e2.readBit() !== 0, o2 && (i2 = ee(e2), a2 = e2.readBit() !== 0, a2)) throw Error(`Not implemented`);\n s2 = e2.readBit() !== 0;\n let t3 = e2.readBits(5) + 1;\n for (let n3 = 0; n3 < t3; n3++) {\n let t4 = e2.readBits(12), n4 = e2.readBits(5), r3 = 0;\n if (n4 > 7 && (r3 = e2.readBit()), a2) throw Error(`decoderModelInfoPresentFlag==1`);\n s2 && e2.readBit() !== 0 && e2.readBits(4), u2.push({ tier: r3, operatingPointIdc: t4, seqLevelIdx: n4 });\n }\n }\n let d2 = e2.readBits(4) + 1, f2 = e2.readBits(4) + 1, p2 = e2.readBits(d2) + 1, m2 = e2.readBits(f2) + 1, h2 = false;\n h2 = r2 ? false : e2.readBit() !== 0, h2 && (c2 = e2.readBits(4) + 2, l2 = e2.readBits(3) + 1);\n let g2 = e2.readBit() !== 0, _2 = e2.readBit() !== 0, v2 = e2.readBit() !== 0, y2 = false, b2 = false, x2 = false, S2 = false, C2 = false, w2 = false, T2 = false, E2 = 2, D2 = 2, O2 = 0;\n r2 || (y2 = e2.readBit() !== 0, b2 = e2.readBit() !== 0, x2 = e2.readBit() !== 0, S2 = e2.readBit() !== 0, C2 = e2.readBit() !== 0, C2 && (w2 = e2.readBit() !== 0, T2 = e2.readBit() !== 0), E2 = e2.readBit() === 0 ? e2.readBit() : 2, D2 = E2 > 0 ? e2.readBit() > 0 ? 2 : e2.readBit() : 2, O2 = C2 ? e2.readBits(3) : 0);\n let k2 = e2.readBit() !== 0, A2 = e2.readBit() !== 0, j2 = e2.readBit() !== 0;\n return { seqProfile: t2, stillPicture: n2, reducedStillPictureHeader: r2, timingInfoPresentFlag: o2, timingInfo: i2 != null ? i2 : { equalPictureInterval: false, numUnitsInDisplayTick: 0, timescale: 0, numTicksPerPicture: 0 }, decoderModelInfoPresentFlag: a2, initialDisplayDelayPresentFlag: s2, operatingPoints: u2, frameWidthBits: d2, frameHeightBits: f2, maxFrameWidth: p2, maxFrameHeight: m2, frameIdNumbersPresentFlag: h2, deltaFrameIdLength: c2, additionalFrameIdLength: l2, use_128x128Superblock: g2, enableFilterIntra: _2, enableIntraEdgeFilter: v2, enableInterintraCompound: y2, enableMaskedCompound: b2, enableWarpedMotion: x2, enableDualFilter: S2, enableOrderHint: C2, enableJntComp: w2, enableRefFrameMvs: T2, seqForceScreenContentTools: E2, seqForceIntegerMv: D2, orderHintBits: O2, enableSuperres: k2, enableCdef: A2, enableRestoration: j2, colorConfig: te(e2, t2), filmGrainParamsPresent: e2.readBit() !== 0 };\n }, te = (e2, t2) => {\n let n2 = e2.readBit() !== 0, r2 = 8, i2 = false;\n t2 === 2 && n2 ? r2 = e2.readBit() === 0 ? 10 : 12 : t2 <= 2 && (r2 = n2 ? 10 : 8), i2 = t2 === 1 ? false : e2.readBit() !== 0;\n let a2 = i2 ? 1 : 3, o2 = e2.readBit() !== 0, s2 = 2, c2 = 2, l2 = 2, u2 = false, d2 = 0, f2 = 0, p2 = 0, m2 = false;\n return o2 && (s2 = e2.readBits(8), c2 = e2.readBits(8), l2 = e2.readBits(8)), i2 ? (u2 = e2.readBit() !== 0, d2 = 1, f2 = 1, p2 = 0, m2 = false, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : s2 === 1 && c2 === 13 && l2 === 0 ? (u2 = true, d2 = 0, f2 = 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 }) : (u2 = e2.readBit() !== 0, t2 === 0 ? (d2 = 1, f2 = 1) : t2 === 1 ? (d2 = 0, f2 = 0) : r2 === 12 ? (d2 = e2.readBit(), f2 = d2 === 0 ? 0 : e2.readBit()) : (d2 = 1, f2 = 0), d2 !== 0 && f2 !== 0 && (p2 = e2.readBits(2)), m2 = e2.readBit() !== 0, { highBitDepth: n2, bitDepth: r2, monoChrome: i2, chromaSamplePosition: p2, colorPrimaries: s2, colorRange: u2, matrixCoefficients: l2, numPlanes: a2, separateUvDeltaQ: m2, subsamplingX: d2, subsamplingY: f2, transferCharacteristics: c2 });\n };\n var w = (function() {\n var e2 = typeof document < `u` && document.currentScript ? document.currentScript.src : void 0;\n return (function(t2) {\n t2 || (t2 = {});\n var n2;\n n2 || (n2 = t2 === void 0 ? {} : t2);\n var r2, i2;\n n2.ready = new Promise(function(e3, t3) {\n r2 = e3, i2 = t3;\n });\n var a2 = {}, o2;\n for (o2 in n2) n2.hasOwnProperty(o2) && (a2[o2] = n2[o2]);\n var s2 = ``, c2;\n s2 = self.location.href, e2 && (s2 = e2), s2 = s2.indexOf(`blob:`) === 0 ? `` : s2.substr(0, s2.lastIndexOf(`/`) + 1), c2 = function(e3) {\n try {\n var t3 = new XMLHttpRequest();\n return t3.open(`GET`, e3, false), t3.responseType = `arraybuffer`, t3.send(null), new Uint8Array(t3.response);\n } catch (t4) {\n if (e3 = ie2(e3)) return e3;\n throw t4;\n }\n };\n var l2 = n2.printErr || console.warn.bind(console);\n for (o2 in a2) a2.hasOwnProperty(o2) && (n2[o2] = a2[o2]);\n a2 = null;\n var u2;\n n2.wasmBinary && (u2 = n2.wasmBinary), n2.noExitRuntime, typeof WebAssembly != `object` && D2(`no native wasm support detected`);\n var d2, f2 = false, p2, m2, h2, g2, _2, v2, y2;\n function b2() {\n var e3 = d2.buffer;\n p2 = e3, n2.HEAP8 = m2 = new Int8Array(e3), n2.HEAP16 = g2 = new Int16Array(e3), n2.HEAP32 = _2 = new Int32Array(e3), n2.HEAPU8 = h2 = new Uint8Array(e3), n2.HEAPU16 = new Uint16Array(e3), n2.HEAPU32 = new Uint32Array(e3), n2.HEAPF32 = v2 = new Float32Array(e3), n2.HEAPF64 = y2 = new Float64Array(e3);\n }\n var x2, S2 = [], ee2 = [], C2 = [];\n function te2() {\n var e3 = n2.preRun.shift();\n S2.unshift(e3);\n }\n var w2 = 0, T2 = null, E2 = null;\n n2.preloadedImages = {}, n2.preloadedAudios = {};\n function D2(e3) {\n throw n2.onAbort && n2.onAbort(e3), l2(e3), f2 = true, e3 = new WebAssembly.RuntimeError(`abort(` + e3 + `). Build with -s ASSERTIONS=1 for more info.`), i2(e3), e3;\n }\n var O2 = `data:application/octet-stream;base64,`, k2 = `data:application/octet-stream;base64,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agwNCyAEQRt2QeATagwMCyAEQRt2QYAUagwLCyAEQRp2QaAUagwKCyAEQRp2QeAUagwJCyAEQRp2QaAVagwICyAEQRp2QeAVagwHCyAEQRt2QaAWagwGCyAEQRx2QcAWagwFCyAEQRx2QdAWagwECyAEQR12QeAWagwDCyAEQR52QegWagwCCyAEQQBIBEBBASECDAQLQREhAiAKQQNGDQNBEiECIARB/////wNLDQNBIiECIApBAkYNA0EzQSMgBEGAgICAAkkbIQIMAwsgBEEXdkHAEmogBEEbdkGgEmogBEGAgICAAUkbCy0AACICDQEMBAtBAUERIARBf0obIQILIAJBBHYhByAGIAJBD3EiA2shAiAEIAN0IQQLIApBAWsiBQRAA0ACQCAHBEAgAkEKTQRAIABBICACaxALQX9GBEAMBwsgABAQIQRBICECCwJAAn8CQAJAAkACQAJAAkACQCAHQQFrDgYGAAECAwQFCyAEQR52Qe4WagwGCyAEQR52QfIWagwFCyAEQR12QfYWagwECyAEQR12Qf4WagwDCyAEQR12QYYXagwCCwJ/QfMAIARBGXZB8ABxayAEQYCAgIACTw0AGkH0ACAEQf////8ASw0AGkGFASAEQf///z9LDQAaQZYBIARB////H0sNABpBpwEgBEH///8PSw0AGkG4ASAEQf///wdLDQAaQckBIARB////A0sNABpB2gEgBEH///8BSw0AGkEAQesBIARBgICAAUkbCyIGQQR2IAdNDQIMCAsgBEEfdkHsFmoLLQAAIQYLIAZFBEAMBgsgCSAIQQJ0aiAGQQR2IgNBAWo2AgAgByADayEHIAIgBkEPcSIDayECIAQgA3QhBAwBCyAJIAhBAnRqQQE2AgBBACEHCyAIQQFqIgggBUcNAAsgASAHQQJ0aiAJQUBrIAVBAnRqKAIANgIAQQEgB3QhBiAFRQ0BIApBAmshAyAFQQFxBH8gASAJIANBAnQiBGooAgAgB2oiB0ECdGogCUFAayAEaigCADYCAEEBIAd0IAZyIQYgCkEDawUgAwshBCADRQ0BA0AgASAJIARBAnQiBWooAgAgB2oiA0ECdGogCUFAayAFaigCADYCACABIAkgBEEBayIFQQJ0IgxqKAIAIANqIgdBAnRqIAlBQGsgDGooAgA2AgBBASADdCAGckEBIAd0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FUUEQANAIAMgAiIALQAAOgAAIAMgAC0AAToAASADIAAtAAI6AAIgAyAALQADOgADIAMgAC0ABDoABCADIAAtAAU6AAUgAyAALQAGOgAGIAMgAC0ABzoAByADQQhqIQMgAEEIaiECIAdBCGsiBw0ACyAAQQdqIQALIAMgAC0AACAOEAQaIAEgCGohASAKQQFrIgoNAAsMAwsgC0EHcSEQIAQgBmogDWogBCAPIAQgD0obQX9zaiANQQAgDUEAShtrQQdJIREDQCALIQcgASEDIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAILIA4EQCALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEgCS0AACAMEAQiFSAMaiEDIAshByAJIQIgECIBBEADQCADIAIiAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohAiABQQFrIgENAAsLIBFFBEADQCADIAIiAC0AADoAACADIAAtAAE6AAEgAyAALQACOgACIAMgAC0AAzoAAyADIAAtAAQ6AAQgAyAALQAFOgAFIAMgAC0ABjoABiADIAAtAAc6AAcgA0EIaiEDIABBCGohAiAHQQhrIgcNAAsgAEEHaiEACyADIAAtAAAgDhAEGiAIIBVqIQEgCkEBayIKDQALDAILIAtBB3EhECAEIAZqIA1qIAQgDyAEIA9KG0F/c2ogDUEAIA1BAEoba0EHSSERA0AgASAJLQAAIAwQBCIBIAxqIQMgCyEHIAkhACAQIgIEQANAIAMgAC0AADoAACAHQQFrIQcgA0EBaiEDIABBAWohACACQQFrIgINAAsLIBFFBEADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyABIAhqIQEgCkEBayIKDQALDAELIAEgCCAKbGohAQsgEkUNACALQQdxIRAgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khEQNAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgECICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyARDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASAEIAlqIQkgEkEBayISDQALCwJAIBZFDQAgCSAEayEJIBdFBEAgFCAFa0EDcSIDBEADQCATQQFrIRMgASAJIAsQCCAIaiEBIANBAWsiAw0ACwsgFCAFQX9zakEDSQ0BA0AgASAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiAJIAsQCCAIaiEBIBNBBGsiEw0ACwwBCyALQQdxIQUgBCAGaiANaiAEIA8gBCAPShtBf3NqIA1BACANQQBKG2tBB0khBANAIAEhAyAMBEAgASAJLQAAIAwQBCAMaiEDCwJAIAtFBEAgCSEADAELIAshByAJIQAgBSICBEADQCADIAAtAAA6AAAgB0EBayEHIANBAWohAyAAQQFqIQAgAkEBayICDQALCyAEDQADQCADIAAtAAA6AAAgAyAALQABOgABIAMgAC0AAjoAAiADIAAtAAM6AAMgAyAALQAEOgAEIAMgAC0ABToABSADIAAtAAY6AAYgAyAALQAHOgAHIANBCGohAyAAQQhqIQAgB0EIayIHDQALCyAOBEAgAyAAQQFrLQAAIA4QBBoLIAEgCGohASATQQFrIhMNAAsLC+kCAQN/IAFBA3RB8DZqIgMoAgAhBSADLQAEIQMgAUEDdEGwNWoiAS0ABCEEAkAgASgCAEEERgRAIAIgBEEBdGouAQAhASAFQQRGBEAgASACIANBAXRqLgEAakEBakEBdQ8LAn8gACgCzAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALMASADQQF0ai4BHGpBAWpBAXUPCyAFQQRGBEAgAiADQQF0ai4BACEBAn8gACgCyAEiAgRAIAAoAgQgAigCBEYMAQtBAAtFDQEgASAAKALIASAEQQF0ai4BHGpBAWpBAXUPCwJ/IAAoAsgBIgEEQCAAKAIEIAEoAgRGDAELQQALIgIEfyAAKALIASAEQQF0ai4BHAVBAAshAQJ/IAAoAswBIgQEQCAAKAIEIAQoAgRGDAELQQALRQ0AIAAoAswBIANBAXRqLgEcIQAgAkUEQCAADwsgACABakEBakEBdSEBCyABC/IDAQN/IAEoAgAiA0H///8HRwRAIAEoAgQhBCAAIAIgAkEDcSACQRBJIgIbQQJ0IgVB8ClqKAIAQRBBCCACGyICbGogBUGwKWooAgBqIgAgAyAALQAAakGwLmotAAA6AAAgASgCCCEDIAAgBCAALQABakGwLmotAAA6AAEgASgCDCEEIAAgAyAALQACakGwLmotAAA6AAIgACAEIAAtAANqQbAuai0AADoAAyABKAIUIQMgACACaiIAIAEoAhAgAC0AAGpBsC5qLQAAOgAAIAEoAhghBCAAIAMgAC0AAWpBsC5qLQAAOgABIAEoAhwhAyAAIAQgAC0AAmpBsC5qLQAAOgACIAAgAyAALQADakGwLmotAAA6AAMgASgCJCEDIAAgAmoiACABKAIgIAAtAABqQbAuai0AADoAACABKAIoIQQgACADIAAtAAFqQbAuai0AADoAASABKAIsIQMgACAEIAAtAAJqQbAuai0AADoAAiAAIAMgAC0AA2pBsC5qLQAAOgADIAEoAjQhAyAAIAJqIgAgASgCMCAALQAAakGwLmotAAA6AAAgASgCOCECIAAgAyAALQABakGwLmotAAA6AAEgASgCPCEBIAAgAiAALQACakGwLmotAAA6AAIgACABIAAtAANqQbAuai0AADoAAwsL8CUBFH8gAyAFaiIbIAEuAQAiDkECdWohDSAEIAZqIhwgAS4BAiIKQQJ1aiELIAIoAghBBHQhAyACKAIEQQR0IQQgACAGQQR0aiAFaiEJAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAOQQNxQQR0IApBA3FBAnRyQdA7aigCAA4PAAECAwQFBgcICQoLDA0ODwsgAigCACAJIA0g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ADcDEAJ/AkAgAgRAIABBACAIa0HYAWxqKALEAQ0BC0EADAELIAYgCyAIQQR0ayIELQAFIAQtAARqIAQtAAZqIAQtAAdqIhggBC0AAyAELQACIAQtAAEgBC0AAGpqaiIXaiIFIAQtAA8gBC0ADiAELQANIAQtAAxqamoiGiAELQALIAQtAAogBC0ACSAELQAIampqIhlqIgRrIgc2AhQgBiAEIAVqIgo2AhBBASEbQQELIQUCQCANQQFrIAJGDQAgACAIQdgBbGooAsQBRQRADAELIAYgCyAIQQh0aiICLQAFIAItAARqIAItAAZqIAItAAdqIh4gAi0AAyACLQACIAItAAEgAi0AAGpqaiIfaiIEIAItAA8gAi0ADiACLQANIAItAAxqamoiICACLQALIAItAAogAi0ACSACLQAIampqIiFqIgJrIAdqIgc2AhQgBiACIARqIApqIgo2AhBBASEWIAVBAWohBQsCfwJAIANFDQAgAEEUaygCAEUNACAGIAtBAWsiAiAIQQZ0IhBqIgQgCEEEdCIJai0AACAELQAAaiAEIAhBBXQiDmotAABqIAQgCEEwbCIPai0AAGoiHCACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIh1qIgwgBCAQaiICIBBqIgQgCWotAAAgBC0AAGogBCAOai0AAGogBCAPai0AAGoiECACIA9qLQAAIAIgDmotAAAgAiAJai0AACACLQAAampqIg5qIgJrIgQ2AiAgBiACIAxqIApqIgo2AhBBASEPIAVBAWohCUEBDAELQQAhBCAFIQlBAAshAgJAAkACQAJAAkAgAyAIQQFrRwRAIAAoApwDDQELQQAhDCAFDQEMAgsgBCALQRBqIgQgCEEGdCIRaiIAIAhBBHQiDGotAAAgAC0AAGogACAIQQV0IhJqLQAAaiAAIAhBMGwiE2otAABqIAQgE2otAAAgBCASai0AACAEIAxqLQAAIAstABBqampqIgsgACARaiIAIBFqIgQgDGotAAAgBC0AAGogBCASai0AAGogBCATai0AAGoiESAAIBNqLQAAIAAgEmotAAAgACAMai0AACAALQAAampqIgBqIgxraiEEIAsgDGogCmohCkEBIQwgAkEBaiECIAlBAWohCSAPRSAFQQBHckUEQCAcIB1qIA5qIBBqIAAgC2ogEWpr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IAhrQQJ0ampBEGpBBXVBsC5qLQAAIAAtABBqQQFqQQF2OgAQIAAgAiALai0AACAHIAQgEGoiBEEEdGogBSANaiIFayAEIAVrQQJ0ampBEGpBBXVBsC5qLQAAIAAtAABqQQFqQQF2OgAAIAJBAWohAiAAQQFqIQAgAUEBaiEBIANBAWsiAw0ACyAAIBFqIQAgASAPaiEBIAIgD2ohAiAKQQFrIgoNAAsLIBJBwANqJAALtQUBBH8gACgCFCEDIAAoAhAhBCAAKAIEIQUgACgCDCICIAEpAgA3AgAgAiABKQIINwIIIAIgBUEEdCIAaiICIAEpAhA3AgAgAiABKQIYNwIIIAAgAmoiAiABKQIgNwIAIAIgASkCKDcCCCAAIAJqIgIgASkCMDcCACACIAEpAjg3AgggACACaiICIAEpAkA3AgAgAiABKQJINwIIIAAgAmoiAiABKQJQNwIAIAIgASkCWDcCCCAAIAJqIgIgASkCYDcCACACIAEpAmg3AgggACACaiICIAEpAnA3AgAgAiABKQJ4NwIIIAAgAmoiAiABKQKAATcCACACIAEpAogBNwIIIAAgAmoiAiABKQKQATcCACACIAEpApgBNwIIIAAgAmoiAiABKQKgATcCACACIAEpAqgBNwIIIAAgAmoiAiABKQKwATcCACACIAEpArgBNwIIIAAgAmoiAiABKQLAATcCACACIAEpAsgBNwIIIAAgAmoiAiABKQLQATcCACACIAEpAtgBNwIIIAAgAmoiAiABKQLgATcCACACIAEpAugBNwIIIAAgAmoiACABKQLwATcCACAAIAEpAvgBNwIIIAQgASkCgAI3AgAgBCAFQQN0IgBqIgQgASkCiAI3AgAgACAEaiIEIAEpApACNwIAIAAgBGoiBCABKQKYAjcCACAAIARqIgQgASkCoAI3AgAgACAEaiIEIAEpAqgCNwIAIAAgBGoiBCABKQKwAjcCACAAIARqIAEpArgCNwIAIAMgASkCwAI3AgAgACADaiIDIAEpAsgCNwIAIAAgA2oiAyABKQLQAjcCACAAIANqIgMgASkC2AI3AgAgACADaiIDIAEpAuACNwIAIAAgA2oiAyABKQLoAjcCACAAIANqIgMgASkC8AI3AgAgACADaiABKQL4AjcCAAsDAAELqAwBCn8CQCABQQRPBEBBACADayIMQQF0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aiICIAYoAgA2AgAgAiAGKAIkNgIMIAIgBigCHDYCBCACIAYoAiA2AgggACAEQQFqNgIQIAZBADYCGCAGKAIUDQAgACABQQFrIgE2AiwLIAEgA0sNAAsMAQsgASgCACECIAAoAgwgACgCECIDQQR0aiIBIAU2AgwgASACNgIAIAEgBzYCCCABIAY2AgQgACADQQFqNgIQIAAoAhwhAwsgACgCACADQQFqECYLC14BAX8gAEHECWoiACgCFCIEIAAoAhBJBH8gACAEQQFqNgIUIAAoAgwgBEEEdGoFQQALIgBFBEBBAA8LIAEgACgCBDYCACACIAAoAgw2AgAgAyAAKAIINgIAIAAoAgALtAMBA38DQCAAIAJBAnRqIgEoAhQiAwRAIAMoAigQBSABKAIUQQA2AiggASgCFCgCVBAFIAEoAhRBADYCVCABKAIUEAUgAUEANgIUCyACQQFqIgJBIEcNAAtBACECA0AgACACQQJ0aiIBKAKUASIDBEAgAygCFBAFIAEoApQBQQA2AhQgASgClAEoAhgQBSABKAKUAUEANgIYIAEoApQBKAIcEAUgASgClAFBADYCHCABKAKUASgCLBAFIAEoApQBQQA2AiwgASgClAEQBSABQQA2ApQBCyACQQFqIgJBgAJHDQALIAAoArAaEAUgAEEANgKwGiAAKAK8CRAFIABBADYCvAkgACgClAkQBSAAQQA2ApQJIAAoArwaIgEEQCABEAUgAEEANgK8GgtBACEBQQAhAwJAIABBxAlqIgIoAgAiAEUNACACKAIcQX9GBEAgACEBDAELIAAhAQNAIAEgA0EobCIAaigCBBAFIAIoAgAiASAAakEANgIEIANBAWoiAyACKAIcQQFqSQ0ACwsgARAFIAJBADYCACACKAIEEAUgAkEANgIEIAIoAgwQBSACQQA2AgwL/tEDAkN/An4jAEGQAWsiGCQAIBhBADYCDAJAAkACQCAAKAKQGkUNACAAKAKUGiABRw0AIBggAEGsGmooAgA2AiAgGCAAQaQaaikCADcDGCAAKQKcGiFIIBhBADYCICAYQQA2AhggGCBINwMQIBggSD4CFCAEIAAoApgaNgIADAELQQYhIgJ/IAEhCAJAAkAgAkEESQ0AIAgtAAANACAILQABDQAgCC0AAiINQQFLDQBBAyEGIAhBA2ohBUECIQcCQANA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NgIEIAEgA0EIahACIgINACADKAIIQR9LBEBBASECDAELIAEgBUEMahACIgINAEEBIQIgBSgCDCIEQQxLDQAgA0EBIARBBGp0NgIMIAEgBUEMahACIgINACAFKAIMIgJBAksEQEEBIQIMAQsgAyACNgIQAkACQAJAIAIOAgABAgsgASAFQQxqEAIiAg0CIAUoAgwiAkEMSwRAQQEhAgwDCyADQQEgAkEEanQ2AhQMAQtBASECIAFBARADIgRBf0YNASADIARBAUY2AhggASADQRxqEAYiAg0BIAEgA0EgahAGIgINASABIANBJGoQAiICDQFBASECIAMoAiQiBEH/AUsNASAEBEAgAyAEQQJ0EAoiAjYCKCACRQRAQf//AyECDAMLIAEgAhAGIgINAkEBIQYDQCAGIAMoAiRPDQIgBkECdCECIAZBAWohBiABIAIgAygCKGoQBiICRQ0ACwwCCyADQQA2AigLIAEgA0EsahACIgINAEEBIQIgAygCLEEQSw0AIAFBARADIgRBf0YNACADIARBAUY2AjAgASAFQQxqEAIiAg0AIAMgBSgCDEEBajYCNCABIAVBDGoQAiICDQBBASECIAMgBSgCDEEBajYCOCABQQEQA0EBakECSQ0AIAFBARADQX9GDQAgAUEBEAMiBEF/Rg0AIAMgBEEBRiICNgI8AkAgAkUEQCADKAI4IQkgAygCNCEGDAELIAEgA0FAaxACIgINASABIANBxABqEAIiAg0BIAEgA0HIAGoQAiICDQEgASADQcwAahACIgINAUEBIQIgAygCQCADKAJEQX9zIAMoAjQiBkEDdGpKDQEgAygCSCADKAJMQX9zIAMoAjgiCUEDdGpKDQELIAYgCWwhAkH/////ByEGAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADKAIEQQprDioAAQIDEBAQEBAQBAUGEBAQEBAQEAcICRAQEBAQEBAKCwwQEBAQEBAQDQ4QC0GApAkhBCACQeMASwwOC0GAjBUhBCACQYwDSwwNC0GA2DchBCACQYwDSwwMC0GA2DchBCACQYwDSwwLC0GA2DchBCACQYwDSwwKC0GAsO8AIQQgAkGYBksMCQtBgOy9ASEEIAJB1AxLDAgLQYDsvQEhBCACQdQMSwwHC0GA8KUDIQQgAkGQHEsMBgtBgIDg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OA0CIAEoAgAhEANAQQAhBEH/////ByEDQQAhAgNAIBAgAkEobGoiCigCGARAIAogBCAKKAIQIgogA0giDxshBCAKIAMgDxshAwsgAkEBaiICIAdNDQALAkAgBEUNACABKAIMIAEoAhAiA0EEdGoiAiAEKAIANgIAIAIgBCgCJDYCDCACIAQoAhw2AgQgAiAEKAIgNgIIIAEgA0EBajYCECAEQQA2AhggBCgCFA0AIAEgBkEBayIGNgIsCyAGIAdPDQALCyABKAIAIgMgB0EobGoiAiAFNgIMIAJCgICAgBA3AhAgAkEANgIYIAIgBTYCCCABIAlBAWo2AiggASAGQQFqNgIsIAMgB0EBahAmIAVBAWogASgCICIGcCIFIAhHDQALAkAgASgCECIJRQ0AIAEoAgAiBiABKAIcIgNBKGxqIgUoAgAhBCABKAIMIQdBACECA0AgBCAHIAJBBHRqKAIARwRAIAkgAkEBaiICRw0BDAILCyADRQ0AQQAhAgNAIAsgBiACQShsaiIJKAIARwRAIAMgAkEBaiICRw0BDAILCyAJIAQ2AgAgBSALNgIACyANDQQgASgCMCECDAILA0AMAAsACyANDQILIAIgCEYNACABIAggASgCICIBakEBayABcDYCMAtBAAwCCyABIAg2AjBBAAwBCyANCw0DCyAAQcQJaiIBIAEoAgAgASgCHEEobGoiATYCCCAAIAEoAgA2ArgKCyAAQdgKaiAdQdwHEAghFCAAQQE2AqQJIAAgGCkDiAE3AtAKIAAoApQJIQ0gAEGYC2ooAgAhA0EAIQlBACEQIAAoAhAiASgCNCIKIAEoAjgiBWwhBgJAIAAoAgwiASgCDCIHQQFGBEAgDUEAIAZBAnQQBBoMAQsCQAJAAkAgASgCECICQQNrQQJNBEAgASgCJCADbCIDIAYgAyAGSRshDyABKAIgIQMgAkF+cUEERw0BIAYgD2sgDyADGyEJCwJAAkACQAJAAkACQCACDgYBAgMABQQACyAGRQ0HIAZBA3EhECABKAIsIQJBACEBIAZBAWtBA08EQCAGQXxxIQQDQCANIAFBAnQiA2ogAiADaigCADYCACANIANBBHIiCWogAiAJaigCADYCACANIANBCHIiCWogAiAJaigCADYCACANIANBDHIiA2ogAiADaigCADYCACABQQRqIQEgBEEEayIEDQALCyAQRQ0HA0AgDSABQQJ0IgNqIAIgA2ooAgA2AgAgAUEBaiEBIBBBAWsiEA0ACwwHCyAHRQ0FIAEoAhQhA0EAIQkDQEEAIRAgBiAJTQ0HA0AgAyAQQQJ0aiIFKAIAIQQCQCAGIAlNDQAgBEUNAEEBIQEgCSECA0AgDSACQQJ0aiAQNgIAIAEgBSgCACIETw0BIAEgCWoiAiAGTw0BIAFBAWohAQwACwALIAcgEEEBaiIQS0EAIAYgBCAJaiIJSxsNAAsgBiAJSw0ACwwGCyAGRQ0FQQAhAQNAIA0gAUECdGogASAKbiICIAdsQQF2IAEgAiAKbGtqIAdwNgIAIAFBAWoiASAGRw0ACwwFCyABKAIcIQUgASgCGCEIAkAgBkUNACAHQQFrIQEgBkEHcSEQQQAhCSAGQQFrQQdPBEAgBkF4cSEEA0AgDSAJQQJ0IgJqIAE2AgAgDSACQQRyaiABNgIAIA0gAkEIcmogATYCACANIAJBDHJqIAE2AgAgDSACQRByaiABNgIAIA0gAkEUcmogATYCACANIAJBGHJqIAE2AgAgDSACQRxyaiABNgIAIAlBCGohCSAEQQhrIgQNAAsLIBBFDQADQCANIAlBAnRqIAE2AgAgCUEBaiEJIBBBAWsiEA0ACwsgB0ECayEBA0ACQCAIIAEiAkECdCIBaigCACIDIApuIgQgASAFaigCACIBIApuIglLDQAgAyAEIApsayIDIAEgCSAKbGsiBksNAANAIAQgCmwhByADIQEDQCANIAEgB2pBAnRqIAI2AgAgAUEBaiIBIAZNDQALIARBAWoiBCAJTQ0ACwsgAkEBayEBIAINAAsMBAsgCkUNAyAFRQ0DQQEgASgCICIHayEIIAVBfnEhBiAFQQFxIQtBACEDA0AgAyEBQQAhAiAGIQQgBUEBRwRAA0AgDSACIApsIBBqQQJ0aiAHIAggASAJSRs2AgAgDSACQQFyIApsIBBqQQJ0aiAHIAggAUEBaiAJSRs2AgAgAkECaiECIAFBAmohASAEQQJrIgQNAAsLIAsEQCANIAIgCmwgEGpBAnRqIAcgCCABIAlJGzYCAAsgAyAFaiEDIBBBAWoiECAKRw0ACwwDCyAGRQ0CQQEgASgCICICayEDIAZBA3EhBEEAIQEgBkEBa0EDTwRAIAZBfHEhBQNAIA0gAUECdGogAiADIAEgCUkbNgIAIA0gAUEBciIGQQJ0aiACIAMgBiAJSRs2AgAgDSABQQJyIgZBAnRqIAIgAyAGIAlJGzYCACANIAFBA3IiBkECdGogAiADIAYgCUkbNgIAIAFBBGohASAFQQRrIgUNAAsLIARFDQIDQCANIAFBAnRqIAIgAyABIAlJGzYCACABQQFqIQEgBEEBayIEDQALDAILAkAgBkUNACAGQQdxIQlBACECIAZBAWtBB08EQCAGQXhxIRADQCANIAJBAnQiAWpBATYCACANIAFBBHJqQQE2AgAgDSABQQhyakEBNgIAIA0gAUEMcmpBATYCACANIAFBEHJqQQE2AgAgDSABQRRyakEBNgIAIA0gAUEYcmpBATYCACANIAFBHHJqQQE2AgAgAkEIaiECIBBBCGsiEA0ACwsgCUUNAANAIA0gAkECdGpBATYCACACQQFqIQIgCUEBayIJDQALCyAPRQ0BIApBAWshDCAFQQFrIR1BASADQQF0IgFrIQQgAUEBayEGIANBAWshAiAFIANrQQF2IgghCyAKIANrQQF2IgchCSAIIQUgByEBQQAhEANAIA0gBSAKbCABakECdGoiESgCACIbQQFGBEAgEUEANgIACyAbQQFGIRECQAJAIAJBf0cNACABIAlHDQBBACECIAYhAyAJQQEgCUEBShtBAWsiASEJDAELAkAgAkEBRw0AIAEgB0cNAEEAIQIgBCEDIAdBAWoiASAMIAEgDEgbIgEhBwwBCwJAIANBf0cNACAFIAtHDQBBACEDIAQhAiALQQEgC0EBShtBAWsiBSELDAELAkAgA0EBRw0AIAUgCEcNAEEAIQMgBiECIAhBAWoiBSAdIAUgHUgbIgUhCAwBCyADIAVqIQUgASACaiEBCyAQIBFqIhAgD0kNAAsMAQsgBkUNAANADAALAAsLIABBxAlqIggQJEEPISICfyAAQeQKaigCACEFIABBhAtqKAIAIQlBACECIAgoAigiAwRAIAgoAgAhBANAIAQgAkEobGoiASgCFEEBa0EBTQRAIAEgBSABKAIMIgFJBH8gASAIKAIgawUgAQs2AggLIAJBAWoiAiADRw0ACwtBACAAQZwLaiINKAIARQ0AGkEAIQZBACANKAIEIgJBAksNABogBSEBA0ACQAJAAkACQAJAAkACQAJAIAIOAwABAwELIAEg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IAEgAmoiAS0AADoABCADIAEgAmoiAS0AADoABSADIAEgAmoiAS0AADoABiADIAEgAmoiAS0AADoAByADIAEgAmoiAS0AADoACCADIAEgAmoiAS0AADoACSADIAEgAmoiAS0AADoACiADIAEgAmoiAS0AADoACyADIAEgAmoiAS0AADoADCADIAEgAmoiAS0AADoADSADIAEgAmoiAS0AADoADiADIAEgAmotAAA6AA8gA0EQaiEDCyAdKAIAIAUgEGwiEEEIdGogDyAFQQN0IgFsQQN0aiALQQN0aiEKIAFB+P///wdxIQEgDkUEQCAIIAogAUF/c2oiAi0AADoAACAIIAogAWstAAA6AAEgCCACLQACOgACIAggAi0AAzoAAyAIIAItAAQ6AAQgCCACLQAFOgAFIAggAi0ABjoABiAIIAItAAc6AAcgCCACQQhqIgItAAA6AAggCCAQQQZ0IAJqIgJBCGstAAA6AAkgCCACQQdrLQAAOgAKIAggAkEGay0AADoACyAIIAJBBWstAAA6AAwgCCACQQRrLQAAOgANIAggAkEDay0AADoADiAIIAJBAmstAAA6AA8gCCACQQFrLQAAOgAQIAggAi0AADoAEQsgC0UNACADIApBAWsiAi0AADoAACADIAEgAmoiAi0AADoAASADIAEgAmoiAi0AADoAAiADIAEgAmoiAi0AADoAAyADIAEgAmoiAi0AADoABCADIAEgAmoiAi0AADoABSADIAEgAmoiAi0AADoABiADIAEgAmoiAi0AADoAByADIAEgAmogECAFa0EGdGoiAi0AADoACCADIAEgAmoiAi0AADoACSADIAEgAmoiAi0AADoACiADIAEgAmoiAi0AADoACyADIAEgAmoiAi0AADoADCADIAEgAmoiAi0AADoADSADIAEgAmoiAi0AADoADiADIAEgAmotAAA6AA8LAkACQEECIAYoAgAiAUEGRyABQQZJG0EBRgRAAn8gDCEDIA1ByAJqIQgCfyAGKALIASIBBEAgBigCBCABKAIERgwBC0EACyELAkAgE0UNACALRQ0AQQAgC0ECIAYoAsgBKAIAIgFBBkcgAUEGSRtBAkYbIQsLAn8gBigCzAEiAQRAIAYoAgQgASgCBEYMAQtBAAshBQJAIBNFDQAgBUUNAEEAIAVBAiAGKALMASgCACIBQQZHIAFBBkkbQQJGGyEFCwJ/IAYoAtQBIgEEQCAGKAIEIAEoAgRGDAELQQALIQICQCATRQ0AIAJFDQBBAiAGKALUASgCACIBQQZHIAFBBkkbQQJHIQILAkACQAJAAkACQAJAIAYoAgBBAWpBA3EOAwABAgMLQQEgBUUNBRpBASEHIAMhAQNAIAEgES0AIToAACABIBEtACI6AAEgASARLQAjOgACIAEgES0AJDoAAyABIBEtACU6AAQgASARLQAmOgAFIAEgES0AJzoABiABIBEtACg6AAcgASARLQApOgAIIAEgES0AKjoACSABIBEtACs6AAogASARLQAsOgALIAEgES0ALToADCABIBEtAC46AA0gASARLQAvOgAOIAEgES0AMDoADyAHQRBGDQQgAUEQaiEBIAdBAWohBwwACwALQQEgC0UNBBogAyEBA0AgASAHIBFqIgItAAA6AAAgASACLQAAOgABIAEgAi0AADoAAiABIAItAAA6AAMgASACLQAAOgAEIAEgAi0AADoABSABIAItAAA6AAYgASACLQAAOgAHIAEgAi0AADoACCABIAItAAA6AAkgASACLQAAOgAKIAEgAi0AADoACyABIAItAAA6AAwgASACLQAAOgANIAEgAi0AADoADiABIAItAAA6AA8gAUEQaiEBIAdBAWoiB0EQRw0ACwwCCyADAn8CQCALRQ0AIAVFDQAgES0ADyARLQAwIBEtAA4gES0ALyARLQANIBEtAC4gES0ADCARLQAtIBEtAAsgES0ALCARLQAKIBEtACsgES0ACSARLQAqIBEtAAggES0AKSARLQAHIBEtACggES0ABiARLQAnIBEtAAUgES0AJiARLQAEIBEtACUgES0AAyARLQAkIBEtAAIgES0AIyARLQABIBEtACIgES0AISARLQAAampqampqampqampqampqampqampqampqampqampqakEQakEFdgwBCyALBEAgES0ADyARLQAOIBEtAA0gES0ADCARLQALIBEtAAogES0ACSARLQAIIBEtAAcgES0ABiARLQAFIBEtAAQgES0AAyARLQACIBEtAAAgES0AAWpqampqampqampqampqakEIakEEdgwBC0GAASAFRQ0AGiARLQAwIBEtAC8gES0ALiARLQAtIBEtACwgES0AKyARLQAqIBEtACkgES0AKCAR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BS0AAyAFLQACIAUtAAAgBS0AAWpqakECakECdiIDCyEGIAIgA0H/AXFBgYKECGwiAzYAHCACIAZB/wFxQYGChAhsIgY2ABggAiADNgAUIAIgBjYAECACIAM2AAwgAiAGNgAIIAIgAzYABCACIAY2AAACQCAZBEAgBS0AByAFLQAGIAUtAAUgBS0ABGpqaiIKQQJqQQJ2IQMgEEUEQCADIQYMAgsgAyEGIActAAggBy0AByAHLQAGIAogBy0ABWpqampBBGpBA3YhAwwBCyAQRQRAQYABIQNBgAEhBgwBCyAHLQAIIActAAcgBy0ABSAHLQAGampqQQJqQQJ2IQMgBy0ABCAHLQADIActAAEgBy0AAmpqakECakECdiEGCyACIANB/wFxQYGChAhsIgM2ADwgAiAGQf8BcUGBgoQIbCIGNgA4IAIgAzYANCACIAY2ADAgAiADNgAsIAIgBjYAKCACIAM2ACQgAiAGNgAgDAQLIBkNAkEBDAULQQEgEEUNBBogAiAHLQABOgAAIAIgBy0AAToACCACIActAAE6ABAgAiAHLQABOgAYIAIgBy0AAToAICACIActAAE6ACggAiAHLQABOgAwIAIgBy0AAToAOCACIActAAI6AAEgAiAHLQACOgAJIAIgBy0AAjoAESACIActAAI6ABkgAiAHLQACOgAhIAIgBy0AAjoAKSACIActAAI6ADEgAiAHLQACOgA5IAIgBy0AAzoAAiACIActAAM6AAogAiAHLQADOgASIAIgBy0AAzoAGiACIActAAM6ACIgAiAHLQADOgAqIAIgBy0AAzoAMiACIActAAM6ADogAiAHLQAEOgADIAIgBy0ABDoACyACIActAAQ6ABMgAiAHLQAEOgAbIAIgBy0ABDoAIyACIActAAQ6ACsgAiAHLQAEOgAzIAIgBy0ABDoAOyACIActAAU6AAQgAiAHLQAFOgAMIAIgBy0ABToAFCACIActAAU6ABwgAiAHLQAFOgAkIAIgBy0ABToALCACIActAAU6ADQgAiAHLQAFOgA8IAIgBy0ABjoABSACIActAAY6AA0gAiAHLQAGOgAVIAIgBy0ABjoAHSACIActAAY6ACUgAiAHLQAGOgAtIAIgBy0ABjoANSACIActAAY6AD0gAiAHLQAHOgAGIAIgBy0ABzoADiACIActAAc6ABYgAiAH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IAMgDiARakGwLmotAAA6AAEgAigCHCERIAEtAAshDiADIBIgE2pBsC5qLQAAOgACIAMgDiARakGwLmotAAA6AAMgAigCJCERIAEtABEhDiADIAVqIgMgAigCICABLQAQakGwLmotAAA6AAAgAigCKCESIAEtABIhEyADIA4gEWpBsC5qLQAAOgABIAIoAiwhESABLQATIQ4gAyASIBNqQbAuai0AADoAAiADIA4gEWpBsC5qLQAAOgADIAIoAjQhESABLQAZIQ4gAyAFaiIDIAIoAjAgAS0AGGpBsC5qLQAAOgAAIAIoAjghEiABLQAaIRMgAyAOIBFqQbAuai0AADoAASACKAI8IQIgAS0AGyEBIAMgEiATakGwLmotAAA6AAIgAyABIAJqQbAuai0AADoAAwwBCyABKAIIIQIgAyABKAIANgIAIAMgB2oiAyACNgIAIAEoAhghAiADIAdqIgMgASgCEDYCACADIAdqIAI2AgALIAZBAWoiBkEYRw0ACwwBCyAdIAsQGAsgEEEgaiQAIAgiAw0BC0EAIQMLIAMLIgYNASAgKAK8CSApaigCxAEhAgJ/QQAhAwJAIBsoAgxBA3QgGygCEGsiAUUNAEEBIQMgAUEISw0AQQEgAUEBa3QgGxAQQSAgAWt2RwwBCyADCyAjKAIMckEARyEBAkACQCAUKAIEQQJrDgYAAQEBAQABCyAgIAQ2ArAJC0EBIQZBACABICAoApQJICAoApgJIAQQHSIEGw0BICIgAkEBRmohIiABDQALICBBrAlqKAIAICJqIgEgICgCmAlLDQAgICABNgKsCUEAIQYLICNBwANqJAAgBgsEQCAgKALYCiEAQQAhAyAgKAKoCSECAkAgIEGwCWooAgAiAUUNACAAIAFBAWsiAU8EQCABIQAMAQsgICgCvAkhBANAAkAgBCABQdgBbGooAgQgAkcNACADQQFqIgMgICgCECgCNCIJQQogCUEKSxtJDQAgASEADAILIAFBAWsiASAASw0ACwsDQAJAICAoArwJIABB2AFsaiIBKAIEIAJHDQAgASgCxAEiA0UNACABIANBAWs2AsQBICAoApQJICAoApgJIAAQHSIADQELC0ENISIMAgtBACEiQQAhAgJAAkACQAJAAkAgIEH8CmooAgAEQCAAKAKYCSIERQ0DIARBA3EhBiAAKAK8CSED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IARrQQJ0IAtrIAZqQQRqQQN1IgMgAyAMShsgAyAKSBsiAyAEakGwLmotAAA6AAAgASAJIANrQbAuai0AADoAAAwBCyAKIAQgC2ogBkEBdGpBAmpBAnY6AAAgASAJIAtBAXRqIAZqQQJqQQJ2OgAACyANICBqIgFBBGohAyAHKAI0IQQCQCAIKAIcIAEtAAMiCSABLQAEIgZrIgsgC0EfdSILaiALc00NACAIKAIgIgwgA0ECay0AACILIAlrIgogCkEfdSIKaiAKc00NACAMIAEtAAUiCiAGayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAEgBCAIKAIYakEBay0AACIBQX9zIgwgAUEBaiIOIAYgCWtBAnQgCmsgC2pBBGpBA3UiASABIA5KGyABIAxIGyIBIAlqQbAuai0AADoAAyADIAYgAWtBsC5qLQAAOgAADAELIAEgCSAKaiALQQF0akECakECdjoAAyADIAYgCkEBdGogC2pBAmpBAnY6AAALIAgoAhwgAyAdaiIBQQFrIgotAAAiAyABLQAAIglrIgYgBkEfdSIGaiAGc00NACAIKAIgIgwgAUECay0AACIGIANrIgsgC0EfdSILaiALc00NACAMIAEtAAEiCyAJayIOIA5BH3UiDmogDnNNDQAgBEEDTQRAIAogAyAEIAgoAhhqQQFrLQAAIgRBf3MiCiAEQQFqIgwgCSADa0ECdCALayAGakEEakEDdSIEIAQgDEobIAQgCkgbIgRqQbAuai0AADoAACABIAkgBGtBsC5qLQAAOgAADAELIAogAyALaiAGQQF0akECakECdjoAACABIAkgC0EBdGogBmpBAmpBAnY6AAALAkACQCAHKAIAIgEgBygCCCIMRw0AIAEgBygCEEcNACABIAcoAhhHDQAgAUUNASACIAEgCCAQQQxsaiIBIB0QGiANIAcoAgAgASAdEBoMAQsgAQRAIAggEEEMbGoiAyEJIAEgAygCAGpBAWstAAAiBEF/cyEBIARBAWohBgJAIAMoAgQiBCACIBFqIgwtAAAiCyACLQAAIgprIg4gDkEfdSIOaiAOc00NACAJKAIIIg4gAiAbai0AACISIAtrIhMgE0EfdSITaiATc00NACAOIAIgHWotAAAiEyAKayIUIBRBH3UiFGogFHNNDQAgDCABIAYgCiALa0ECdCATayAS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AAEAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAABAAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAA4AAAABAAAADwAAAP8AAAAAAAAA/wAAAAAAAAABAAAADgAAAAEAAAAPAAAABAAAAAQAAAAEAAAABQAAAAQAAAACAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAIAAAAEAAAACAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAgAAAAQAAAADAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAACAAAABAAAAAMAAAAEAAAACAAAAAQAAAAJAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAAQAAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAAGAAAABAAAAAcAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAYAAAAEAAAABwAAAAQAAAAMAAAABAAAAA0AAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAOAAAA/wAAAAQAAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAEAAAAOAAAABAAAAAEAAAD/AAAABAAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAgAAAAoAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAADwAAAAIAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAAPAAAAAgAAAAoAAAAEAAAABQAAAP8AAAAAAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABgAAAP8AAAAMAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAYAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAAQAAAAJAAAA/wAAAAwAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAACAAAA/wAAAAgAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAcAAAD/AAAAAgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAABwAAAP8AAAACAAAABAAAAA0AAAD/AAAACAAAAAMAAAAPAAAA/wAAAAAAAAD/AAAAAAAAAP8AAAAAAAAAAwAAAA8AAAAAAAAABQAAAP8AAAAAAAAA/wAAAAAAAAADAAAADwAAAAEAAAAKAAAA/wAAAAAAAAD/AAAAAAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAD/AAAAAAAAAP8AAAAAAAAA/wAAAAAAAAABAAAACwAAAAQAAAABAAAA/wAAAAAAAAD/AAAAAAAAAAEAAAALAAAAAQAAAA4AAAD/AAAAAAAAAP8AAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAP8AAAAAAAAA/wAAAAAAAAD/AEHUJwsVBwAAAAAAAAANAAAA/wAAAAAAAAD/AEH0JwsVBwAAAAQAAAACAAAA/wAAAAAAAAD/AEGUKAvZAQcAAAAEAAAAAgAAAAAAAAANAAAABAAAAAgAAAAEAAAAAwAAAP8AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAAQAAAADAAAABAAAAAkAAAD/AAAAAAAAAP8AAAAAAAAABAAAAAMAAAAEAAAABgAAAP8AAAAAAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAAEAAAADAAAAAAAAAAEAAAAAAAAAAQAAAAIAAAADAAAAAgAAAAMAAAAAAAAAAQAAAAAAAAABAAAAAgAAAAMAAAACAAAAAwAQfgpCwUEAAAABABBiCoLJQQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAgAAAAIAAAADAAAAAwAQbEuC8gGAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAQAAAAQAAAAFAAAAAgAAAAMAAAAGAAAABwAAAAgAAAAJAAAADAAAAA0AAAAKAAAACwAAAA4AAAAPAAAAAAAAAAEAAAABAEGENQshAQAAAAEAAAABAAAAAQAAAAIAAAACAAAAAQAAAAIAAAACAEG0NQsFBQAAAAQAQcQ1C8kGBwAAAAQAAAACAAAABAAAAAEAAAAEAAAABAAAAAQAAAADAAAABAAAAAYAAAAAAAAADQAAAAQAAAAIAAAAAAAAAA8AAAAEAAAACgAAAAQAAAAJAAAABAAAAAwAAAAEAAAACwAAAAQAAAAOAAAAAAAAABEAAAAEAAAAEAAAAAAAAAATAAAABAAAABIAAAAAAAAAFQAAAAQAAAAUAAAAAAAAABcAAAAEAAAAFgAAAAEAAAAKAAAAAQAAAAsAAAAEAAAAAAAAAAQAAAABAAAAAQAAAA4AAAABAAAADwAAAAQAAAAEAAAABAAAAAUAAAAEAAAAAgAAAAQAAAADAAAABAAAAAgAAAAEAAAACQAAAAQAAAAGAAAABAAAAAcAAAAEAAAADAAAAAQAAAANAAAAAQAAABIAAAABAAAAEwAAAAQAAAAQAAAABAAAABEAAAABAAAAFgAAAAEAAAAXAAAABAAAABQAAAAEAAAAFQAAAAEAAAALAAAAAQAAAA4AAAAEAAAAAQAAAP8AAAAEAAAAAQAAAA8AAAACAAAACgAAAAQAAAAFAAAA/wAAAAAAAAAEAAAAAwAAAAQAAAAGAAAABAAAAAkAAAD/AAAADAAAAAQAAAAHAAAA/wAAAAIAAAAEAAAADQAAAP8AAAAIAAAAAQAAABMAAAACAAAAEgAAAAQAAAARAAAA/wAAABAAAAABAAAAFwAAAAIAAAAWAAAABAAAABUAAAD/AAAAFAAAAAMAAAAPAAAAAQAAAAoAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAsAAAABAAAADgAAAAQAAAABAAAABAAAAAQAAAAAAAAABwAAAAQAAAACAAAAAAAAAA0AAAAEAAAACAAAAAQAAAADAAAABAAAAAYAAAAEAAAACQAAAAQAAAAMAAAAAwAAABMAAAABAAAAEgAAAAAAAAARAAAABAAAABAAAAADAAAAFwAAAAEAAAAWAAAAAAAAABUAAAAEAAAAFAAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAMAAAADAAAAAAAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwBBljwLLgEBAQEBAQICAgICAgMDAwMDAwQEBAQEBAUFBQUFBQYGBgYGBgcHBwcHBwgICAgAQdA8C0UKAAAADQAAABAAAAALAAAADgAAABIAAAANAAAAEAAAABQAAAAOAAAAEgAAABcAAAAQAAAAFAAAABkAAAASAAAAFwAAAB0AQaE9CzMBAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMEBQABAgMAQeQ9C8wCAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAdAAAAHgAAAB8AAAAgAAAAIAAAACEAAAAiAAAAIgAAACMAAAAjAAAAJAAAACQAAAAlAAAAJQAAACUAAAAmAAAAJgAAACYAAAAnAAAAJwAAACcAAAAnAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAvHw8AFxsdHgcLDQ4nKy0uEAMFCgwTFRocIyUqLAECBAgREhQYBgkWGSAhIiQoJikAEAECBAggAwUKDA8vBwsNDgYJHyMlKiwhIiQoJystLhESFBgTFRocFxsdHhYZJikAQbDAAAsDMCJQ`;\n if (!k2.startsWith(O2)) {\n var A2 = k2;\n k2 = n2.locateFile ? n2.locateFile(A2, s2) : s2 + A2;\n }\n function j2() {\n var e3 = k2;\n try {\n if (e3 == k2 && u2) return new Uint8Array(u2);\n var t3 = ie2(e3);\n if (t3) return t3;\n if (c2) return c2(e3);\n throw `both async and sync fetching of the wasm failed`;\n } catch (e4) {\n D2(e4);\n }\n }\n function ne2() {\n return u2 || typeof fetch != `function` ? Promise.resolve().then(function() {\n return j2();\n }) : fetch(k2, { credentials: `same-origin` }).then(function(e3) {\n if (!e3.ok) throw `failed to load wasm binary file at '` + k2 + `'`;\n return e3.arrayBuffer();\n }).catch(function() {\n return j2();\n });\n }\n var M2, N2;\n function P2(e3) {\n for (; 0 < e3.length; ) {\n var t3 = e3.shift();\n if (typeof t3 == `function`) t3(n2);\n else {\n var r3 = t3.u;\n typeof r3 == `number` ? t3.s === void 0 ? x2.get(r3)() : x2.get(r3)(t3.s) : r3(t3.s === void 0 ? null : t3.s);\n }\n }\n }\n var re2 = typeof atob == `function` ? atob : function(e3) {\n var t3 = ``, n3 = 0;\n e3 = e3.replace(/[^A-Za-z0-9\\+\\/=]/g, ``);\n do {\n var r3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), i3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), a3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++)), o3 = `ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`.indexOf(e3.charAt(n3++));\n r3 = r3 << 2 | i3 >> 4, i3 = (i3 & 15) << 4 | a3 >> 2;\n var s3 = (a3 & 3) << 6 | o3;\n t3 += String.fromCharCode(r3), a3 !== 64 && (t3 += String.fromCharCode(i3)), o3 !== 64 && (t3 += String.fromCharCode(s3));\n } while (n3 < e3.length);\n return t3;\n };\n function ie2(e3) {\n if (e3.startsWith(O2)) {\n try {\n var t3 = re2(e3.slice(O2.length)), n3 = new Uint8Array(t3.length);\n for (e3 = 0; e3 < t3.length; ++e3) n3[e3] = t3.charCodeAt(e3);\n } catch (e4) {\n throw Error(`Converting base64 string to bytes failed.`);\n }\n return n3;\n }\n }\n var F2 = { a: function(e3, t3, n3) {\n h2.copyWithin(e3, t3, t3 + n3);\n }, b: function(e3) {\n var t3 = h2.length;\n if (e3 >>>= 0, 2147483648 < e3) return false;\n for (var n3 = 1; 4 >= n3; n3 *= 2) {\n var r3 = t3 * (1 + 0.2 / n3);\n r3 = Math.min(r3, e3 + 100663296), r3 = Math.max(e3, r3), 0 < r3 % 65536 && (r3 += 65536 - r3 % 65536);\n a: {\n try {\n d2.grow(Math.min(2147483648, r3) - p2.byteLength + 65535 >>> 16), b2();\n var i3 = 1;\n break a;\n } catch (e4) {\n }\n i3 = void 0;\n }\n if (i3) return true;\n }\n return false;\n } };\n (function() {\n function e3(e4) {\n n2.asm = e4.exports, d2 = n2.asm.c, b2(), x2 = n2.asm.r, ee2.unshift(n2.asm.d), w2--, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), w2 == 0 && (T2 !== null && (clearInterval(T2), T2 = null), E2 && (e4 = E2, E2 = null, e4()));\n }\n function t3(t4) {\n e3(t4.instance);\n }\n function r3(e4) {\n return ne2().then(function(e5) {\n return WebAssembly.instantiate(e5, a3);\n }).then(e4, function(e5) {\n l2(`failed to asynchronously prepare wasm: ` + e5), D2(e5);\n });\n }\n var a3 = { a: F2 };\n if (w2++, n2.monitorRunDependencies && n2.monitorRunDependencies(w2), n2.instantiateWasm) try {\n return n2.instantiateWasm(a3, e3);\n } catch (e4) {\n return l2(`Module.instantiateWasm callback failed with error: ` + e4), false;\n }\n return (function() {\n return u2 || typeof WebAssembly.instantiateStreaming != `function` || k2.startsWith(O2) || typeof fetch != `function` ? r3(t3) : fetch(k2, { credentials: `same-origin` }).then(function(e4) {\n return WebAssembly.instantiateStreaming(e4, a3).then(t3, function(e5) {\n return l2(`wasm streaming compile failed: ` + e5), l2(`falling back to ArrayBuffer instantiation`), r3(t3);\n });\n });\n })().catch(i2), {};\n })(), n2.___wasm_call_ctors = function() {\n return (n2.___wasm_call_ctors = n2.asm.d).apply(null, arguments);\n }, n2._memcpy = function() {\n return (n2._memcpy = n2.asm.e).apply(null, arguments);\n }, n2._h264bsdInit = function() {\n return (n2._h264bsdInit = n2.asm.f).apply(null, arguments);\n }, n2._malloc = function() {\n return (n2._malloc = n2.asm.g).apply(null, arguments);\n }, n2._h264bsdDecode = function() {\n return (n2._h264bsdDecode = n2.asm.h).apply(null, arguments);\n }, n2._free = function() {\n return (n2._free = n2.asm.i).apply(null, arguments);\n }, n2._h264bsdShutdown = function() {\n return (n2._h264bsdShutdown = n2.asm.j).apply(null, arguments);\n }, n2._h264bsdNextOutputPicture = function() {\n return (n2._h264bsdNextOutputPicture = n2.asm.k).apply(null, arguments);\n }, n2._h264bsdNextOutputPictureRGBA = function() {\n return (n2._h264bsdNextOutputPictureRGBA = n2.asm.l).apply(null, arguments);\n }, n2._h264bsdPicWidth = function() {\n return (n2._h264bsdPicWidth = n2.asm.m).apply(null, arguments);\n }, n2._h264bsdPicHeight = function() {\n return (n2._h264bsdPicHeight = n2.asm.n).apply(null, arguments);\n }, n2._h264bsdCroppingParams = function() {\n return (n2._h264bsdCroppingParams = n2.asm.o).apply(null, arguments);\n }, n2._h264bsdAlloc = function() {\n return (n2._h264bsdAlloc = n2.asm.p).apply(null, arguments);\n }, n2._h264bsdFree = function() {\n return (n2._h264bsdFree = n2.asm.q).apply(null, arguments);\n }, n2.setValue = function(e3, t3, n3) {\n switch (n3 || (n3 = `i8`), n3.charAt(n3.length - 1) === `*` && (n3 = `i32`), n3) {\n case `i1`:\n m2[e3 >> 0] = t3;\n break;\n case `i8`:\n m2[e3 >> 0] = t3;\n break;\n case `i16`:\n g2[e3 >> 1] = t3;\n break;\n case `i32`:\n _2[e3 >> 2] = t3;\n break;\n case `i64`:\n N2 = [t3 >>> 0, (M2 = t3, 1 <= +Math.abs(M2) ? 0 < M2 ? (Math.min(+Math.floor(M2 / 4294967296), 4294967295) | 0) >>> 0 : ~~+Math.ceil((M2 - +(~~M2 >>> 0)) / 4294967296) >>> 0 : 0)], _2[e3 >> 2] = N2[0], _2[e3 + 4 >> 2] = N2[1];\n break;\n case `float`:\n v2[e3 >> 2] = t3;\n break;\n case `double`:\n y2[e3 >> 3] = t3;\n break;\n default:\n D2(`invalid type for setValue: ` + n3);\n }\n }, n2.getValue = function(e3, t3) {\n switch (t3 || (t3 = `i8`), t3.charAt(t3.length - 1) === `*` && (t3 = `i32`), t3) {\n case `i1`:\n return m2[e3 >> 0];\n case `i8`:\n return m2[e3 >> 0];\n case `i16`:\n return g2[e3 >> 1];\n case `i32`:\n return _2[e3 >> 2];\n case `i64`:\n return _2[e3 >> 2];\n case `float`:\n return v2[e3 >> 2];\n case `double`:\n return y2[e3 >> 3];\n default:\n D2(`invalid type for getValue: ` + t3);\n }\n return null;\n };\n var I2;\n E2 = function e3() {\n I2 || L2(), I2 || (E2 = e3);\n };\n function L2() {\n function e3() {\n if (!I2 && (I2 = true, n2.calledRun = true, !f2)) {\n if (P2(ee2), r2(n2), n2.onRuntimeInitialized && n2.onRuntimeInitialized(), n2.postRun) for (typeof n2.postRun == `function` && (n2.postRun = [n2.postRun]); n2.postRun.length; ) {\n var e4 = n2.postRun.shift();\n C2.unshift(e4);\n }\n P2(C2);\n }\n }\n if (!(0 < w2)) {\n if (n2.preRun) for (typeof n2.preRun == `function` && (n2.preRun = [n2.preRun]); n2.preRun.length; ) te2();\n P2(S2), 0 < w2 || (n2.setStatus ? (n2.setStatus(`Running...`), setTimeout(function() {\n setTimeout(function() {\n n2.setStatus(``);\n }, 1), e3();\n }, 1)) : e3());\n }\n }\n if (n2.run = L2, n2.preInit) for (typeof n2.preInit == `function` && (n2.preInit = [n2.preInit]); 0 < n2.preInit.length; ) n2.preInit.pop()();\n return L2(), t2.ready;\n });\n })(), T = (function(e2) {\n return e2[e2.RDY = 0] = `RDY`, e2[e2.PIC_RDY = 1] = `PIC_RDY`, e2[e2.HDRS_RDY = 2] = `HDRS_RDY`, e2[e2.ERROR = 3] = `ERROR`, e2[e2.PARAM_SET_ERROR = 4] = `PARAM_SET_ERROR`, e2[e2.MEMALLOC_ERROR = 5] = `MEMALLOC_ERROR`, e2[e2.BYTE_STREAM_ERROR = 6] = `BYTE_STREAM_ERROR`, e2[e2.NAL_UNIT_ERROR = 7] = `NAL_UNIT_ERROR`, e2[e2.ACCESS_UNIT_BOUNDARY_CHECK_ERROR = 8] = `ACCESS_UNIT_BOUNDARY_CHECK_ERROR`, e2[e2.PENDING_ACTIVATION_ERROR = 9] = `PENDING_ACTIVATION_ERROR`, e2[e2.SEQ_PARAM_SET_ERROR = 10] = `SEQ_PARAM_SET_ERROR`, e2[e2.PIC_PARAM_SET_ERROR = 11] = `PIC_PARAM_SET_ERROR`, e2[e2.SLICE_HEADER_ERROR = 12] = `SLICE_HEADER_ERROR`, e2[e2.SLICE_DATA_ERROR = 13] = `SLICE_DATA_ERROR`, e2[e2.GAPS_IN_FRAME_NUM_ERROR = 14] = `GAPS_IN_FRAME_NUM_ERROR`, e2[e2.REORDERING_ERROR = 15] = `REORDERING_ERROR`, e2[e2.NO_INPUT = 1024] = `NO_INPUT`, e2;\n })(T || {});\n let E = (e2) => e2 >= 3 && e2 <= 15, D = (e2) => {\n switch (e2) {\n case T.MEMALLOC_ERROR:\n return `Memory allocation error`;\n case T.PARAM_SET_ERROR:\n return `Failed to activate param set`;\n case T.BYTE_STREAM_ERROR:\n return `Byte stream error`;\n case T.NAL_UNIT_ERROR:\n return `NAL unit error`;\n case T.ACCESS_UNIT_BOUNDARY_CHECK_ERROR:\n return `Access unit boundary check error`;\n case T.PENDING_ACTIVATION_ERROR:\n return `Pending activation error`;\n case T.SEQ_PARAM_SET_ERROR:\n return `Sequence parameter set error`;\n case T.PIC_PARAM_SET_ERROR:\n return `Picture parameter set error`;\n case T.SLICE_HEADER_ERROR:\n return `Slice header error`;\n case T.SLICE_DATA_ERROR:\n return `Slice data error`;\n case T.GAPS_IN_FRAME_NUM_ERROR:\n return `Gaps in frame num error`;\n case T.REORDERING_ERROR:\n return `Reordering error`;\n default:\n return `Decode error`;\n }\n };\n var O = (_c = class {\n constructor(e2) {\n __publicField(this, \"h264Module\");\n __publicField(this, \"decoderInstancePointer\", 0);\n __publicField(this, \"inputBufferPointer\", 0);\n __publicField(this, \"inputBufferLength\", 1024 * 1024);\n __publicField(this, \"bytesRead\", 0);\n __publicField(this, \"isIdrPointer\", 0);\n __publicField(this, \"picIdPointer\", 0);\n __publicField(this, \"numErrMbs\", 0);\n __publicField(this, \"croppingPointers\", { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 });\n __publicField(this, \"parameters\");\n __publicField(this, \"readI32\", (e2) => this.h264Module.HEAP32[e2 >> 2]);\n __publicField(this, \"getParameters\", () => this.parameters);\n __publicField(this, \"unload\", () => {\n this.shutdownDecoder(), this.h264Module._free(this.inputBufferPointer), this.h264Module._free(this.bytesRead), this.h264Module._free(this.isIdrPointer), this.h264Module._free(this.picIdPointer), this.h264Module._free(this.numErrMbs), this.h264Module._free(this.croppingPointers.croppingFlag), this.h264Module._free(this.croppingPointers.leftOffset), this.h264Module._free(this.croppingPointers.width), this.h264Module._free(this.croppingPointers.topOffset), this.h264Module._free(this.croppingPointers.height), this.inputBufferPointer = 0, this.bytesRead = 0, this.isIdrPointer = 0, this.picIdPointer = 0, this.numErrMbs = 0, this.decoderInstancePointer = 0, this.croppingPointers = { croppingFlag: 0, leftOffset: 0, width: 0, topOffset: 0, height: 0 };\n });\n __publicField(this, \"shutdownDecoder\", () => {\n this.decoderInstancePointer !== 0 && (this.h264Module._h264bsdShutdown(this.decoderInstancePointer), this.h264Module._h264bsdFree(this.decoderInstancePointer)), this.decoderInstancePointer = 0, this.parameters = void 0;\n });\n __publicField(this, \"initDecoder\", () => {\n this.decoderInstancePointer = this.h264Module._h264bsdAlloc(), this.h264Module._h264bsdInit(this.decoderInstancePointer, 0);\n });\n __publicField(this, \"decode\", (e2) => {\n if (e2.byteLength > this.inputBufferLength) {\n let t3 = this.inputBufferLength;\n for (; t3 < e2.byteLength; ) t3 *= 2;\n let n3 = this.h264Module._malloc(t3);\n this.h264Module._free(this.inputBufferPointer), this.inputBufferPointer = n3, this.inputBufferLength = t3;\n }\n this.h264Module.HEAPU8.set(e2, this.inputBufferPointer);\n let t2 = e2.byteLength, n2 = 0, r2 = 0;\n do {\n r2 = this.h264Module._h264bsdDecode(this.decoderInstancePointer, this.inputBufferPointer + n2, t2, 0, this.bytesRead);\n let e3 = this.readI32(this.bytesRead);\n n2 += e3, t2 -= e3;\n } while (t2 > 0 && !E(r2));\n switch (r2) {\n case T.RDY:\n case T.PIC_RDY:\n case T.HDRS_RDY:\n if (r2 === T.PIC_RDY) return this.receiveFrame();\n if (r2 === T.HDRS_RDY) return this.receiveHeader();\n break;\n case T.NO_INPUT:\n break;\n default:\n throw Error(`${D(r2)} (${r2})`);\n }\n });\n __publicField(this, \"receiveFrame\", () => {\n let e2 = this.h264Module._h264bsdNextOutputPicture(this.decoderInstancePointer, this.picIdPointer, this.isIdrPointer, this.numErrMbs);\n if (!e2) return;\n if (!this.parameters) {\n let e3 = this.h264Module._h264bsdPicWidth(this.decoderInstancePointer) * 16, t3 = this.h264Module._h264bsdPicHeight(this.decoderInstancePointer) * 16;\n this.h264Module._h264bsdCroppingParams(this.decoderInstancePointer, this.croppingPointers.croppingFlag, this.croppingPointers.leftOffset, this.croppingPointers.width, this.croppingPointers.topOffset, this.croppingPointers.height);\n let n2 = this.readI32(this.croppingPointers.croppingFlag), r2 = this.readI32(this.croppingPointers.leftOffset), i2 = this.readI32(this.croppingPointers.width), a2 = this.readI32(this.croppingPointers.topOffset), o2 = this.readI32(this.croppingPointers.height);\n this.parameters = { width: e3, height: t3, cropping: n2 ? { left: r2, top: a2, width: i2, height: o2 } : void 0 };\n }\n let t2 = this.parameters.width * this.parameters.height * 3 / 2;\n return this.h264Module.HEAPU8.subarray(e2, e2 + t2);\n });\n __publicField(this, \"receiveHeader\", () => {\n });\n this.h264Module = e2, this.initDecoder(), this.inputBufferPointer = this.h264Module._malloc(this.inputBufferLength), this.bytesRead = e2._malloc(4), this.isIdrPointer = e2._malloc(4), this.picIdPointer = e2._malloc(4), this.numErrMbs = e2._malloc(4), this.croppingPointers = { croppingFlag: e2._malloc(4), leftOffset: e2._malloc(4), width: e2._malloc(4), topOffset: e2._malloc(4), height: e2._malloc(4) };\n }\n }, __publicField(_c, \"create\", () => __async(null, null, function* () {\n return new _c(yield w());\n })), _c);\n let k = (e2) => {\n let { pictureParameterSets: t2, sequenceParameterSets: n2 } = h(e2.data), r2 = [...n2, ...t2], i2 = new Uint8Array(r2.reduce((e3, t3) => e3 + t3.byteLength + 4, 0)), a2 = 0;\n return r2.forEach((e3) => {\n i2[0 + a2] = 0, i2[1 + a2] = 0, i2[2 + a2] = 0, i2[3 + a2] = 1, i2.set(new Uint8Array(e3), a2 + 4), a2 += e3.byteLength + 4;\n }), i2;\n };\n var A = (_d = class {\n constructor(e2) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"unload\", () => {\n this.decoder.unload();\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, r2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, i2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId;\n if (!this.previousSample) {\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n } else if (r2 || i2 || n2) {\n this.decoder.shutdownDecoder(), this.decoder.initDecoder();\n let e3 = k(t2);\n this.decoder.decode(e3), this.isWaitingForSync = true;\n }\n if (this.previousSample) {\n let t3 = this.previousSample;\n e2.timestamp / e2.timescale > (t3.timestamp + t3.duration * 2) / t3.timescale && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let a2 = Date.now();\n m(e2.data, (t3) => {\n var _a3, _b3, _c3, _d3;\n let n3 = new Uint8Array(t3.buffer, t3.byteOffset, t3.byteLength), r3 = this.decoder.decode(n3);\n if (r3) {\n if (!e2.buffer) throw Error(`Expected sample to contain buffer`);\n let t4 = this.decoder.getParameters();\n if (new Uint8Array(e2.buffer).set(r3), t4) {\n let n4 = [new Uint8Array(e2.buffer, 0, t4.width * t4.height), new Uint8Array(e2.buffer, t4.width * t4.height, t4.width / 2 * t4.height / 2), new Uint8Array(e2.buffer, t4.width * t4.height + t4.width / 2 * t4.height / 2, t4.width / 2 * t4.height / 2)];\n this.decodedSamples.push(__spreadProps(__spreadValues({}, e2), { buffer: e2.buffer, type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: (_b3 = (_a3 = t4.cropping) == null ? void 0 : _a3.width) != null ? _b3 : t4.width, height: (_d3 = (_c3 = t4.cropping) == null ? void 0 : _c3.height) != null ? _d3 : t4.height, codedWidth: t4.width, codedHeight: t4.height, data: n4, statistics: { decodeTime: Date.now() - a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } }));\n }\n }\n return true;\n });\n });\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.decoder = e2;\n }\n }, __publicField(_d, \"create\", () => __async(null, null, function* () {\n return new _d(yield O.create());\n })), _d), j = class {\n constructor() {\n __publicField(this, \"map\", /* @__PURE__ */ new Map());\n }\n enqueue(t2, n2) {\n let r2 = this.map.get(t2);\n if (r2) r2.push(n2);\n else {\n let r3 = new e(1 / 0);\n r3.push(n2), this.map.set(t2, r3);\n }\n }\n dequeue(e2) {\n let t2 = this.map.get(e2);\n if (!t2) return;\n let n2 = t2.pop();\n return t2.isEmpty() && this.map.delete(e2), n2;\n }\n dequeueWithFallback(e2) {\n let t2 = this.dequeue(e2);\n if (t2 !== void 0) return t2;\n for (let [e3, t3] of this.map) {\n let n2 = t3.pop();\n if (t3.isEmpty() && this.map.delete(e3), n2 !== void 0) return n2;\n }\n }\n removeLast(e2) {\n let t2 = this.map.get(e2);\n t2 && (t2.popLast(), t2.isEmpty() && this.map.delete(e2));\n }\n clear() {\n this.map.clear();\n }\n };\n let ne = globalThis, M = new Uint8Array(), N = new ArrayBuffer(0);\n var P = (_e4 = class {\n constructor(e2, t2 = `no-preference`) {\n __publicField(this, \"decodedSamples\", []);\n __publicField(this, \"decoder\", null);\n __publicField(this, \"logger\");\n __publicField(this, \"hardwareAcceleration\");\n __publicField(this, \"initSegments\", /* @__PURE__ */ new Map());\n __publicField(this, \"previousSample\");\n __publicField(this, \"previousCodec\");\n __publicField(this, \"isWaitingForSync\", true);\n __publicField(this, \"pendingSamples\", new j());\n __publicField(this, \"errors\", new e(10));\n __publicField(this, \"pendingDecodeCount\", 0);\n __publicField(this, \"waitResolve\", null);\n __publicField(this, \"waitTargetCount\", 1);\n __publicField(this, \"consecutiveErrors\", 0);\n __publicField(this, \"effectiveHardwareAcceleration\");\n __publicField(this, \"clearPendingState\", () => {\n this.pendingSamples.clear(), this.pendingDecodeCount = 0, this.notifyWaiter();\n });\n __publicField(this, \"resetDecoderState\", () => {\n this.clearPendingState(), this.previousSample = void 0, this.previousCodec = void 0, this.isWaitingForSync = true;\n });\n __publicField(this, \"ensureDecoder\", () => ((!this.decoder || this.decoder.state === `closed`) && (this.decoder = this.createDecoder()), this.decoder));\n __publicField(this, \"recreateDecoder\", () => {\n this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = this.createDecoder(), this.resetDecoderState();\n });\n __publicField(this, \"notifyWaiter\", () => {\n if (this.waitResolve && (this.decodedSamples.length >= this.waitTargetCount || this.pendingDecodeCount <= 0 || !this.decoder)) {\n let e2 = this.waitResolve;\n this.waitResolve = null, this.waitTargetCount = 1, e2();\n }\n });\n __publicField(this, \"createDecoder\", () => new VideoDecoder({ output: (e2) => {\n let t2 = this.pendingSamples.dequeue(e2.timestamp), n2 = t2 == null ? void 0 : t2.decodeMetadata, r2 = n2 === void 0 ? 0 : Math.max(performance.now() - n2.startTime, 0), i2 = n2 === void 0 ? 0 : Math.max(n2.pendingBeforeEnqueue, 0) * Math.max(n2.frameDurationMs, 0), a2 = Math.max(0, r2 - i2), o2 = t2 == null ? void 0 : t2.sample;\n if (!o2) {\n e2.close(), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n return;\n }\n let s2 = __spreadProps(__spreadValues({}, o2), { type: `video`, format: `yuv420`, colorPrimaries: `bt709`, width: e2.displayWidth, height: e2.displayHeight, codedWidth: e2.codedWidth, codedHeight: e2.codedHeight, data: [M, M, M], buffer: N, videoFrame: e2, statistics: { decodeTime: a2, transportTimeFromWorker: 0, transportTimeToWorker: 0, samplesInBatch: 1 } });\n this.decodedSamples.push(s2), this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.consecutiveErrors = 0, this.notifyWaiter();\n }, error: (e2) => {\n if (this.logger.error(`Decoder error:`, e2.name, e2.message), this.errors.push(e2), this.consecutiveErrors++, this.consecutiveErrors >= _e4.maxConsecutiveErrors && this.effectiveHardwareAcceleration !== `prefer-software`) {\n this.logger.warn(`${this.consecutiveErrors} consecutive decoder errors, retrying with software decoding`), this.effectiveHardwareAcceleration = `prefer-software`, this.consecutiveErrors = 0, this.recreateDecoder();\n return;\n }\n if (!this.decoder || this.decoder.state === `closed`) {\n this.resetDecoderState();\n return;\n }\n this.pendingDecodeCount = Math.max(0, this.pendingDecodeCount - 1), this.notifyWaiter();\n } }));\n __publicField(this, \"unload\", () => {\n this.decodedSamples.forEach((e2) => {\n e2.videoFrame && e2.videoFrame.close();\n }), this.decodedSamples = [], this.resetDecoderState(), this.decoder && this.decoder.state !== `closed` && this.decoder.close(), this.decoder = null;\n });\n __publicField(this, \"initSegment\", (e2) => {\n this.initSegments.set(e2.renditionId, e2);\n });\n __publicField(this, \"enqueue\", (e2) => {\n var _a2, _b2, _c2, _d2, _e5;\n let t2 = this.initSegments.get(e2.renditionId);\n if (!t2) throw c(e2.renditionId, e2.channelId);\n let n2 = this.ensureDecoder(), r2 = t2.codec, i2 = ((_a2 = this.previousSample) == null ? void 0 : _a2.width) !== e2.width || ((_b2 = this.previousSample) == null ? void 0 : _b2.height) !== e2.height, a2 = ((_c2 = this.previousSample) == null ? void 0 : _c2.channelId) !== e2.channelId, o2 = ((_d2 = this.previousSample) == null ? void 0 : _d2.renditionId) !== e2.renditionId, s2 = this.previousCodec !== r2;\n if (!this.previousSample || a2 || o2 || i2 || s2) {\n this.previousSample && n2.state === `configured` && n2.flush().catch((e3) => {\n this.logger.warn(`Failed to flush before reconfiguration:`, e3);\n });\n let i3, a3;\n if (r2 === `av1`) {\n let { codecString: e3, fallbackCodecString: n3, width: r3, height: o4 } = y(t2.data);\n a3 = n3;\n let s3 = new DataView(t2.data).getUint8(0), c2 = s3 !== void 0 && s3 & 128 ? t2.data : void 0;\n i3 = __spreadProps(__spreadValues({ codec: e3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration }, c2 ? { description: c2 } : {}), { codedWidth: r3, codedHeight: o4 });\n } else if (r2 === `h265`) {\n let n3 = t2.codecString;\n if (!n3) {\n this.logger.error(`Missing HEVC codec string in init segment, dropping sample`);\n return;\n }\n i3 = { codec: n3, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: e2.width, codedHeight: e2.height };\n } else {\n let { sequenceParameterSets: e3 } = h(t2.data);\n if (e3.length === 0) {\n this.logger.error(`No SPS found in init segment, dropping sample`);\n return;\n }\n let n3 = e3[0];\n if (!n3) {\n this.logger.error(`Missing SPS payload in init segment, dropping sample`);\n return;\n }\n let r3 = g(n3);\n i3 = { codec: `avc1.${r3.profileIdc.toString(16).padStart(2, `0`)}${r3.constraintFlags.toString(16).padStart(2, `0`)}${r3.levelIdc.toString(16).padStart(2, `0`)}`, optimizeForLatency: true, hardwareAcceleration: this.effectiveHardwareAcceleration, description: t2.data, codedWidth: r3.width, codedHeight: r3.height };\n }\n let o3 = false;\n try {\n n2.configure(i3), o3 = true;\n } catch (t3) {\n if (r2 === `av1` && a3 && n2.state !== `closed`) try {\n n2.configure(__spreadProps(__spreadValues({}, i3), { codec: a3 })), o3 = true;\n } catch (e3) {\n }\n if (!o3) {\n this.logger.error(`Failed to configure decoder for ${r2} (rendition ${e2.renditionId}), dropping sample`, t3), this.errors.push(t3 instanceof Error ? t3 : Error(`Failed to configure decoder for ${r2}`)), this.previousSample = void 0, this.ensureDecoder();\n return;\n }\n }\n this.isWaitingForSync = true, this.previousCodec = r2;\n }\n if (e2.timescale <= 0) {\n this.logger.error(`Invalid timescale ${e2.timescale} in sample, dropping sample`);\n return;\n }\n if (this.previousSample && this.previousSample.timescale > 0) {\n let t3 = this.previousSample, n3 = (t3.timestamp + t3.duration * 2) / t3.timescale;\n e2.timestamp / e2.timescale > n3 && (this.isWaitingForSync = true);\n }\n if (this.previousSample = e2, this.isWaitingForSync && !e2.isSync) return;\n this.isWaitingForSync = false;\n let l2 = Math.floor(1e6 * (e2.timestamp + ((_e5 = e2.compositionTimeOffset) != null ? _e5 : 0)) / e2.timescale), u2 = Math.floor(1e6 * e2.duration / e2.timescale);\n try {\n let t3 = performance.now(), r3 = this.pendingDecodeCount, i3 = e2.duration / e2.timescale * 1e3, a3 = new EncodedVideoChunk({ type: e2.isSync ? `key` : `delta`, timestamp: l2, duration: u2 > 0 ? u2 : void 0, data: e2.data });\n this.pendingSamples.enqueue(l2, { sample: e2, decodeMetadata: { startTime: t3, pendingBeforeEnqueue: r3, frameDurationMs: i3 } }), n2.decode(a3), this.pendingDecodeCount++;\n } catch (e3) {\n this.logger.error(`Failed to decode chunk:`, e3), this.pendingSamples.removeLast(l2), this.previousSample = void 0, this.isWaitingForSync = true, this.ensureDecoder(), this.notifyWaiter();\n }\n });\n __publicField(this, \"flush\", () => __async(this, null, function* () {\n if (this.decoder && this.decoder.state === `configured`) try {\n yield this.decoder.flush();\n } catch (e2) {\n this.logger.error(`Failed to flush decoder:`, e2), this.resetDecoderState();\n }\n }));\n __publicField(this, \"waitForFrames\", (e2 = 1) => this.pendingDecodeCount <= 0 || this.decodedSamples.length >= e2 ? Promise.resolve() : new Promise((t2) => {\n var _a2;\n (_a2 = this.waitResolve) == null ? void 0 : _a2.call(this), this.waitResolve = t2, this.waitTargetCount = Math.max(1, e2), this.notifyWaiter();\n }));\n __publicField(this, \"pendingFrames\", () => this.pendingDecodeCount);\n __publicField(this, \"error\", () => this.errors.pop());\n __publicField(this, \"take\", () => this.decodedSamples.shift());\n this.logger = e2, this.hardwareAcceleration = t2, this.effectiveHardwareAcceleration = t2, this.decoder = this.createDecoder();\n }\n }, __publicField(_e4, \"maxConsecutiveErrors\", 3), __publicField(_e4, \"isSupported\", () => ne.VideoDecoder !== void 0), __publicField(_e4, \"create\", (e2, n2 = `no-preference`) => __async(null, null, function* () {\n if (!_e4.isSupported()) throw Error(`WebCodecs VideoDecoder is not supported in this environment`);\n return new _e4(e2, n2);\n })), _e4), re = class {\n constructor() {\n __publicField(this, \"initialized\", false);\n __publicField(this, \"anchorMediaMs\", 0);\n __publicField(this, \"anchorPerfMs\", 0);\n }\n reset() {\n this.initialized = false, this.anchorMediaMs = 0, this.anchorPerfMs = 0;\n }\n estimate(e2 = performance.now()) {\n return this.initialized ? this.anchorMediaMs + (e2 - this.anchorPerfMs) : 0;\n }\n updateFromMainThread(e2, t2) {\n let n2 = performance.now(), r2 = e2 + Math.max(0, Date.now() - t2);\n if (!this.initialized) return this.setAnchor(r2, n2), `soft-correct`;\n let i2 = this.estimate(n2), a2 = r2 - i2;\n if (a2 < -400) return this.setAnchor(r2, n2), `resync`;\n if (a2 < -120) return `ignore`;\n if (a2 > 120) return this.setAnchor(r2, n2), `soft-correct`;\n let o2 = Math.max(-12, Math.min(12, a2 * 0.25));\n return this.setAnchor(i2 + o2, n2), `soft-correct`;\n }\n setAnchor(e2, t2) {\n this.anchorMediaMs = e2, this.anchorPerfMs = t2, this.initialized = true;\n }\n };\n let ie = new ArrayBuffer(0), F = self, I = r.get().createContext(`VideoDecoder.worker`), L = new re(), R, z = false, B, V, H = false, U = [], W, G = 0, K = 0, q = true, J, ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0, Q = __spreadValues({}, i), $ = { cues: [], containerWidth: 0, containerHeight: 0, devicePixelRatio: 1, bottomPadding: 0, canvas: void 0, context: void 0, logicalWidth: 0, logicalHeight: 0 }, le = () => {\n $.canvas || ($.canvas = new OffscreenCanvas(1, 1), $.context = $.canvas.getContext(`2d`, { alpha: true }));\n }, ue = (e2) => {\n e2.fillStyle = `white`, e2.textAlign = `left`, e2.textBaseline = `top`, e2.font = `${Q.fontSize} sans-serif`;\n }, de = (e2, t2, n2) => {\n let r2 = [], i2 = e2.split(` `), a2 = ``;\n for (; i2.length > 0; ) {\n ue(n2);\n let e3 = 0;\n for (; n2.measureText(a2 + (a2.length > 0 ? ` ` : ``) + i2[0]).width + Q.textPadding * 2 <= t2 && i2.length > 0; ) e3++, a2 += (a2.length > 0 ? ` ` : ``) + i2.shift();\n if (e3 === 0) {\n r2.push(i2.shift() || ``), a2 = ``;\n continue;\n }\n r2.push(a2), a2 = ``;\n }\n return r2;\n }, fe = () => {\n le();\n let e2 = $.context, t2 = $.canvas;\n if (!e2 || !t2) return;\n let n2 = $.devicePixelRatio, r2 = $.containerHeight || $.containerWidth * 9 / 16;\n Q.fontSize = a($.containerWidth, r2);\n let i2 = $.containerWidth || (B == null ? void 0 : B.width) || 960, o2 = $.cues.flatMap((t3) => t3.text.split(`\n`).flatMap((t4) => de(t4, i2, e2))).map((t3) => {\n ue(e2);\n let n3 = e2.measureText(t3);\n return { text: t3, size: { height: n3.fontBoundingBoxAscent + n3.fontBoundingBoxDescent + Q.textPadding * 2, width: n3.width + Q.textPadding * 2 } };\n });\n if (o2.length === 0) {\n $.logicalWidth = 0, $.logicalHeight = 0;\n return;\n }\n let s2 = Math.max(...o2.map((e3) => e3.size.width)), c2 = o2.reduce((e3, { size: t3 }) => e3 + t3.height, 0) + (o2.length - 1) * Q.lineGap;\n $.logicalWidth = s2, $.logicalHeight = c2, t2.width = s2 * n2, t2.height = c2 * n2, e2.setTransform(n2, 0, 0, n2, 0, 0), e2.clearRect(0, 0, t2.width, t2.height);\n let l2 = 0;\n for (let { size: t3, text: n3 } of o2) ue(e2), e2.fillStyle = Q.backgroundColor, e2.fillRect(0, l2, t3.width, t3.height), ue(e2), e2.fillText(n3, Q.textPadding, l2 + Q.textPadding), l2 += t3.height + Q.lineGap;\n }, pe = () => {\n if ($.cues.length === 0 || $.logicalWidth === 0 || $.logicalHeight === 0) return;\n let e2 = $.canvas;\n if (!B || !V || !e2) return;\n let t2 = o({ subtitleWidth: $.logicalWidth, subtitleHeight: $.logicalHeight, canvasWidth: B.width, canvasHeight: B.height, containerWidth: $.containerWidth || B.width, bottomPadding: $.bottomPadding });\n V.drawImage(e2, t2.x, t2.y, t2.drawWidth, t2.drawHeight);\n }, me = () => {\n U.forEach((e2) => {\n e2.videoFrame.close();\n }), U = [];\n }, he = (e2, t2) => {\n let n2 = (t2 - 400) / 1e3, r2 = (e2.sample.timestamp + (e2.sample.compositionTimeOffset || 0)) / e2.sample.timescale;\n U = U.filter((e3) => {\n let t3 = (e3.sample.timestamp + (e3.sample.compositionTimeOffset || 0)) / e3.sample.timescale, i2 = t3 > n2 && t3 <= r2;\n if (!i2) try {\n e3.videoFrame.close();\n } catch (e4) {\n }\n return i2;\n }), U.push(e2);\n }, ge = () => {\n J !== void 0 && (clearTimeout(J), J = void 0);\n }, _e = () => {\n W !== void 0 && (cancelAnimationFrame(W), W = void 0);\n }, ve = () => {\n G = 0, K = 0, q = true, L.reset(), ae = 0, oe = 0, se = 0, ce = 0, Y = 0, X = 0, Z = 0;\n }, ye = () => {\n _e(), ge(), me();\n }, be = (e2) => {\n !B || !V || ((B.width !== e2.displayWidth || B.height !== e2.displayHeight) && (B.width = e2.displayWidth, B.height = e2.displayHeight), V.drawImage(e2, 0, 0, B.width, B.height));\n }, xe = (e2) => {\n be(e2), pe();\n }, Se = (e2) => (e2.timestamp + (e2.compositionTimeOffset || 0)) / e2.timescale * 1e3, Ce = () => {\n var _a2, _b2;\n if (!H || !B || !V) {\n W = void 0;\n return;\n }\n let e2 = L.estimate(), t2 = e2 + 8, n2 = [], r2 = U[0];\n for (; r2 && Se(r2.sample) <= t2; ) {\n let e3 = U.shift();\n if (!e3) break;\n n2.push(e3), r2 = U[0];\n }\n let i2, a2 = 0;\n if (n2.length === 1) i2 = n2[0];\n else if (n2.length > 1) {\n let t3 = n2[n2.length - 1], r3 = n2[n2.length - 2];\n if (!t3 || !r3) {\n W = requestAnimationFrame(Ce);\n return;\n }\n if (e2 - Se(t3.sample) < 10) {\n U.unshift(t3), i2 = r3;\n for (let e3 = 0; e3 < n2.length - 2; e3++) (_a2 = n2[e3]) == null ? void 0 : _a2.videoFrame.close();\n a2 = Math.max(n2.length - 2, 0);\n } else {\n i2 = t3;\n for (let e3 = 0; e3 < n2.length - 1; e3++) (_b2 = n2[e3]) == null ? void 0 : _b2.videoFrame.close();\n a2 = n2.length - 1;\n }\n }\n if (i2) {\n try {\n xe(i2.videoFrame);\n } catch (e3) {\n I.error(`Failed to render VideoFrame to OffscreenCanvas:`, e3);\n }\n i2.videoFrame.close(), G++;\n }\n K += a2, W = requestAnimationFrame(Ce);\n }, we = (e2) => {\n e2.data = ie;\n }, Te = () => G !== oe || K !== se, Ee = (e2, t2, n2) => {\n var _a2, _b2;\n let r2 = H && Te(), i2 = Y > 0, a2 = (_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0, o2 = a2 !== ce;\n if (t2 === 0 && e2.length === 0 && !r2 && !i2 && !o2) return;\n let s2 = z ? H ? [] : e2.map((e3) => e3.videoFrame).filter((e3) => e3 !== void 0) : e2.map((e3) => e3.buffer), c2 = { type: `decoded samples`, samples: e2, timestamp: n2, samplesAcceptedCount: t2, decoderPendingCount: a2 };\n r2 && (c2.renderedFrameCount = G, c2.rendererDroppedFrameCount = K, oe = G, se = K), i2 && (c2.estimatedSampleCount = Y, c2.estimatedDecodeTimeSum = X, c2.estimatedTransportTimeToWorkerSum = Z, Y = 0, X = 0, Z = 0), F.postMessage(c2, s2), ce = a2;\n }, De = (e2) => {\n let t2 = e2.videoFrame;\n if (q && B && V) {\n q = false;\n try {\n xe(t2), G++;\n } finally {\n t2.close();\n }\n } else he({ videoFrame: t2, sample: e2 }, L.estimate());\n e2.statistics && (Y++, X += e2.statistics.decodeTime, Z += e2.statistics.transportTimeToWorker), e2.videoFrame = void 0;\n }, Oe = (e2, t2) => {\n let n2 = [], r2;\n for (; r2 = R == null ? void 0 : R.take(); ) {\n if (r2.statistics && (r2.statistics.transportTimeToWorker = e2 > 0 ? e2 : ae, r2.statistics.samplesInBatch = t2), H && r2.videoFrame) {\n De(r2);\n continue;\n }\n n2.push(r2);\n }\n return n2;\n }, ke = () => {\n var _a2, _b2;\n J = void 0, !(!z || !R) && (Ee(Oe(0, 1), 0, Date.now()), ((_b2 = (_a2 = R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae());\n }, Ae = () => {\n !z || J !== void 0 || (J = setTimeout(ke, 10));\n }, je = (e2, t2, n2, i2) => __async(null, null, function* () {\n try {\n if (r.get().setLevel(e2), ye(), ve(), t2 && P.isSupported()) try {\n let e3 = I.createContext(`WebCodecsVideo`);\n R = yield P.create(e3, n2), z = true, I.info(`Initialized WebCodecs video decoder`, { hardwareAcceleration: n2 });\n } catch (e3) {\n I.warn(`WebCodecs initialization failed, falling back to WASM:`, e3), R = yield A.create(), z = false, I.info(`Initialized WASM video decoder (WebCodecs fallback)`);\n }\n else R = yield A.create(), z = false, I.info(`Initialized WASM video decoder`);\n H = false, B = void 0, V = void 0, i2 && z ? (B = i2, V = i2.getContext(`2d`, { alpha: false, desynchronized: true }), V ? (H = true, I.info(`OffscreenCanvas rendering enabled`), W = requestAnimationFrame(Ce)) : (I.error(`Failed to get 2D context from OffscreenCanvas`), H = false, B = void 0)) : i2 && !z && I.warn(`OffscreenCanvas provided but WebCodecs is not in use - ignoring canvas`), F.postMessage({ type: `ready`, isWebCodecs: z, usingOffscreenCanvas: H });\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n });\n F.addEventListener(`message`, (e2) => {\n var _a2, _b2;\n switch (e2.data.type) {\n case `init`:\n je(e2.data.logLevel, e2.data.useWebCodecs, e2.data.webcodecsHardwareAcceleration, e2.data.offscreenCanvas);\n break;\n case `decode samples`:\n {\n let t2 = e2.data;\n try {\n let e3 = Date.now() - t2.timestamp;\n ae = e3, t2.currentTime !== void 0 && L.updateFromMainThread(t2.currentTime, t2.timestamp) === `resync` && (me(), q = true), t2.samples.forEach((e4) => {\n R == null ? void 0 : R.enqueue(e4);\n });\n let n2 = Oe(e3, t2.samples.length);\n for (let e4 of t2.samples) we(e4);\n Ee(n2, t2.samples.length, Date.now()), ((_b2 = (_a2 = R == null ? void 0 : R.pendingFrames) == null ? void 0 : _a2.call(R)) != null ? _b2 : 0) > 0 && Ae();\n } catch (e3) {\n F.postMessage({ type: `error`, message: e3 instanceof Error ? e3.message : void 0 });\n }\n }\n break;\n case `unload`:\n I.info(`Unloading video decoder worker`), R == null ? void 0 : R.unload(), R = void 0, ye(), ve();\n break;\n case `init segment`:\n R == null ? void 0 : R.initSegment(e2.data.initSegment);\n break;\n case `subtitle cues`:\n $.cues = e2.data.cues, $.containerWidth = e2.data.containerWidth, $.containerHeight = e2.data.containerHeight, $.devicePixelRatio = e2.data.devicePixelRatio, $.bottomPadding = e2.data.bottomPadding, fe();\n break;\n }\n });\n})();\n", Gy = typeof self < "u" && self.Blob && new Blob(["(self.URL || self.webkitURL).revokeObjectURL(self.location.href);", Wy], { type: "text/javascript;charset=utf-8" });
|
|
9570
|
+
})), qy = /* @__PURE__ */ n({ VideoDecoderWorkerContext: () => Yy }), Jy, Yy, Xy = t((() => {
|
|
9571
|
+
V(), Ky(), m(), z(), M(), Yy = class {
|
|
9561
9572
|
get isWebCodecs() {
|
|
9562
9573
|
return this._isWebCodecs;
|
|
9563
9574
|
}
|
|
@@ -9639,9 +9650,9 @@ var Uy, Wy, Gy = t((() => {
|
|
|
9639
9650
|
error() {
|
|
9640
9651
|
return this.errors.pop();
|
|
9641
9652
|
}
|
|
9642
|
-
},
|
|
9653
|
+
}, Jy = Yy, p(Yy, "create", function() {
|
|
9643
9654
|
var e = j(function* (e, t, n, r = !1, i = "no-preference", a, o) {
|
|
9644
|
-
let s = new
|
|
9655
|
+
let s = new Uy(), { isWebCodecs: c, usingOffscreenCanvas: l } = yield new Promise((n, o) => {
|
|
9645
9656
|
let c = !1, l = setTimeout(() => {
|
|
9646
9657
|
c || (c = !0, u(/* @__PURE__ */ Error("Decoder worker initialization timed out")));
|
|
9647
9658
|
}, 1e4), u = (e) => {
|
|
@@ -9695,7 +9706,7 @@ var Uy, Wy, Gy = t((() => {
|
|
|
9695
9706
|
} else u(n);
|
|
9696
9707
|
}
|
|
9697
9708
|
});
|
|
9698
|
-
return new
|
|
9709
|
+
return new Jy(s, e, n, o, c, l);
|
|
9699
9710
|
});
|
|
9700
9711
|
return function(t, n, r) {
|
|
9701
9712
|
return e.apply(this, arguments);
|
|
@@ -9703,11 +9714,11 @@ var Uy, Wy, Gy = t((() => {
|
|
|
9703
9714
|
}());
|
|
9704
9715
|
}));
|
|
9705
9716
|
wi(), V(), m(), z(), M();
|
|
9706
|
-
var
|
|
9717
|
+
var Zy = 5, Qy = 100, $y = 1e3, eb = class e {
|
|
9707
9718
|
constructor(e, t, n, r, i = !1, a = !1, o = !1) {
|
|
9708
9719
|
p(this, "timers", Bn.create()), p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "trackContexts", void 0), p(this, "playbackSource", void 0), p(this, "isSuspended", !1), p(this, "_webCodecsInUse", void 0), p(this, "_audioWebCodecsInUse", void 0), p(this, "_offscreenCanvasInUse", void 0), p(this, "currentVideoDecodeRate", 2), p(this, "decodeRateGraceIntervals", 3), p(this, "isAudioEmitRetryScheduled", !1), p(this, "videoKeyframeTimestamps", []), p(this, "load", () => {
|
|
9709
|
-
let e = this._audioWebCodecsInUse ? 20 :
|
|
9710
|
-
this.timers.setInterval(this.emitDecodedFrames, e), this.timers.setInterval(this.emitDecodeRate,
|
|
9720
|
+
let e = this._audioWebCodecsInUse ? 20 : Qy;
|
|
9721
|
+
this.timers.setInterval(this.emitDecodedFrames, e), this.timers.setInterval(this.emitDecodeRate, $y), this.emitter.on("init segment", this.onInitSegment), this.emitter.on("coded sample", this.decode);
|
|
9711
9722
|
}), p(this, "unload", () => {
|
|
9712
9723
|
this.trackContexts.forEach(({ decoderContext: e }) => e.unload()), this.timers.unload(), this.isAudioEmitRetryScheduled = !1, this.videoKeyframeTimestamps = [], this.emitter.off("init segment", this.onInitSegment), this.emitter.off("coded sample", this.decode);
|
|
9713
9724
|
}), p(this, "suspend", () => {
|
|
@@ -9764,7 +9775,7 @@ var Xy = 5, Zy = 100, Qy = 1e3, $y = class e {
|
|
|
9764
9775
|
if (this.isSuspended) return;
|
|
9765
9776
|
t.sampleDuration = e.duration / e.timescale * 1e3;
|
|
9766
9777
|
let n = e.compositionTimeOffset || 0, { decoderContext: r, buffer: i } = t, a = (e.timestamp + n) / e.timescale * 1e3, o = e.duration / e.timescale * 1e3, s = i[i.length - 1];
|
|
9767
|
-
if (!s || a -
|
|
9778
|
+
if (!s || a - Zy > s.end ? i.push({
|
|
9768
9779
|
start: a,
|
|
9769
9780
|
end: a + o
|
|
9770
9781
|
}) : a + o * 5 < s.end ? (t.buffer = [{
|
|
@@ -9840,7 +9851,7 @@ var Xy = 5, Zy = 100, Qy = 1e3, $y = class e {
|
|
|
9840
9851
|
case "audio": {
|
|
9841
9852
|
let t, r, i = !1;
|
|
9842
9853
|
if (s) {
|
|
9843
|
-
let { WebCodecsAudioDecoderContext: a } = yield Promise.resolve().then(() => (
|
|
9854
|
+
let { WebCodecsAudioDecoderContext: a } = yield Promise.resolve().then(() => (jy(), Dy));
|
|
9844
9855
|
if (i = a.isSupported(), i) try {
|
|
9845
9856
|
t = yield a.create(n.createContext("WebCodecsAudio")), p = !0;
|
|
9846
9857
|
} catch (t) {
|
|
@@ -9851,7 +9862,7 @@ var Xy = 5, Zy = 100, Qy = 1e3, $y = class e {
|
|
|
9851
9862
|
}
|
|
9852
9863
|
}
|
|
9853
9864
|
if (!t) if (e.codec === "opus") {
|
|
9854
|
-
let { OpusDecoderContext: n } = yield Promise.resolve().then(() => (
|
|
9865
|
+
let { OpusDecoderContext: n } = yield Promise.resolve().then(() => (Hy(), zy));
|
|
9855
9866
|
t = yield n.create(e.sampleRate || 48e3, e.channels || 2);
|
|
9856
9867
|
} else {
|
|
9857
9868
|
let t = s ? r ? `WebCodecs audio decoder initialization failed: ${r.message}` : i ? "WebCodecs audio decoder could not be initialized." : "WebCodecs AudioDecoder API is not supported in this environment." : "WebCodecs audio decoding is disabled.";
|
|
@@ -9867,7 +9878,7 @@ var Xy = 5, Zy = 100, Qy = 1e3, $y = class e {
|
|
|
9867
9878
|
break;
|
|
9868
9879
|
}
|
|
9869
9880
|
case "video": {
|
|
9870
|
-
let { VideoDecoderWorkerContext: t } = yield Promise.resolve().then(() => (
|
|
9881
|
+
let { VideoDecoderWorkerContext: t } = yield Promise.resolve().then(() => (Xy(), qy)), i = yield t.create(n.createContext("VideoDecoderWorker"), r, o, s, c, l, () => a.currentTime);
|
|
9871
9882
|
f = i.isWebCodecs, m = i.usingOffscreenCanvas, u.set(e.type, {
|
|
9872
9883
|
buffer: [],
|
|
9873
9884
|
decoderContext: i,
|
|
@@ -9888,7 +9899,7 @@ var Xy = 5, Zy = 100, Qy = 1e3, $y = class e {
|
|
|
9888
9899
|
//#endregion
|
|
9889
9900
|
//#region ../../libs/web-sdk/src/modules/DocumentStateModule.ts
|
|
9890
9901
|
m();
|
|
9891
|
-
var
|
|
9902
|
+
var tb, nb = class {
|
|
9892
9903
|
constructor(e) {
|
|
9893
9904
|
p(this, "emitter", void 0), p(this, "isVisibleCount", 0), p(this, "isHiddenCount", 0), p(this, "isOnlineCount", 0), p(this, "isOfflineCount", 0), p(this, "isActive", document.visibilityState === "visible"), p(this, "unload", () => {
|
|
9894
9905
|
document.removeEventListener("visibilitychange", this.onVisibilityChanged), window.removeEventListener("pagehide", this.onPageHide), window.removeEventListener("online", this.onOnline), window.removeEventListener("offline", this.onOffline);
|
|
@@ -9922,10 +9933,10 @@ var eb, tb = class {
|
|
|
9922
9933
|
return document.visibilityState === "visible";
|
|
9923
9934
|
}
|
|
9924
9935
|
};
|
|
9925
|
-
|
|
9926
|
-
var
|
|
9936
|
+
tb = nb, p(nb, "create", (e) => new tb(e)), V(), m(), z();
|
|
9937
|
+
var rb, ib = (e) => (t, n, r) => t.timestamp <= n || t.timestampAdded <= r - e, ab = class e {
|
|
9927
9938
|
constructor(t, n, r) {
|
|
9928
|
-
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "waitingEvents", []), p(this, "isTriggered",
|
|
9939
|
+
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "waitingEvents", []), p(this, "isTriggered", ib(e.EVENT_TIMEOUT)), p(this, "timeSource", void 0), p(this, "timers", new Bn()), p(this, "load", () => {
|
|
9929
9940
|
this.timers.setInterval(this.onBufferedStateChanged, e.EVENT_CHECK_INTERVAL), this.emitter.on("add event", this.addEvent);
|
|
9930
9941
|
}), p(this, "unload", () => {
|
|
9931
9942
|
this.timers.unload(), this.emitter.off("add event", this.addEvent);
|
|
@@ -9952,8 +9963,8 @@ var nb, rb = (e) => (t, n, r) => t.timestamp <= n || t.timestampAdded <= r - e,
|
|
|
9952
9963
|
}), this.logger = n, this.emitter = t, this.timeSource = r;
|
|
9953
9964
|
}
|
|
9954
9965
|
};
|
|
9955
|
-
|
|
9956
|
-
var
|
|
9966
|
+
rb = ab, p(ab, "EVENT_TIMEOUT", 5e3), p(ab, "EVENT_CHECK_INTERVAL", 20), p(ab, "create", (e, t, n) => new rb(e, t, n)), wi(), V(), m();
|
|
9967
|
+
var ob, sb = class e {
|
|
9957
9968
|
constructor(t) {
|
|
9958
9969
|
p(this, "emitter", void 0), p(this, "timers", Bn.create()), p(this, "bytesReceived", /* @__PURE__ */ new Map()), p(this, "timeoutInterval", void 0), p(this, "lastBytesUpdated", Date.now()), p(this, "load", () => {
|
|
9959
9970
|
this.emitter.on("connection state", this.onConnectionState), this.timers.setInterval(() => this.bytesReceived.forEach((e) => e.tick()), 100);
|
|
@@ -9988,8 +9999,8 @@ var ab, ob = class e {
|
|
|
9988
9999
|
}), this.emitter = t;
|
|
9989
10000
|
}
|
|
9990
10001
|
};
|
|
9991
|
-
|
|
9992
|
-
var
|
|
10002
|
+
ob = sb, p(sb, "NO_DATA_ERROR_TIMEOUT", 20 * 1e3), p(sb, "NO_DATA_TIMEOUT", 5 * 1e3), p(sb, "UPDATE_RECEIVED_BYTES_INTERVAL", 1e3), p(sb, "create", (e) => new ob(e)), V(), m();
|
|
10003
|
+
var cb = 1e3, lb = 50, ub = class e {
|
|
9993
10004
|
constructor(e) {
|
|
9994
10005
|
p(this, "logger", void 0), p(this, "trackingState", /* @__PURE__ */ new Map()), p(this, "runningJitter", /* @__PURE__ */ new Map()), p(this, "recentJitterSamples", /* @__PURE__ */ new Map()), p(this, "load", () => {
|
|
9995
10006
|
this.logger.debug("JitterModule loaded");
|
|
@@ -10010,9 +10021,9 @@ var sb = 1e3, cb = 50, lb = class e {
|
|
|
10010
10021
|
this.trackingState.set(a, {
|
|
10011
10022
|
lastArrivalTime: o,
|
|
10012
10023
|
lastTimestampMs: s,
|
|
10013
|
-
jitterSamples: new S(
|
|
10014
|
-
interArrivalTimes: new S(
|
|
10015
|
-
}), this.runningJitter.set(a, 0), this.recentJitterSamples.set(a, new S(
|
|
10024
|
+
jitterSamples: new S(cb),
|
|
10025
|
+
interArrivalTimes: new S(cb)
|
|
10026
|
+
}), this.runningJitter.set(a, 0), this.recentJitterSamples.set(a, new S(lb));
|
|
10016
10027
|
return;
|
|
10017
10028
|
}
|
|
10018
10029
|
let l = s - c.lastTimestampMs;
|
|
@@ -10025,7 +10036,7 @@ var sb = 1e3, cb = 50, lb = class e {
|
|
|
10025
10036
|
let f = (i = this.runningJitter.get(a)) == null ? 0 : i, p = f + (d - f) / 16;
|
|
10026
10037
|
this.runningJitter.set(a, p);
|
|
10027
10038
|
let m = this.recentJitterSamples.get(a);
|
|
10028
|
-
m || (m = new S(
|
|
10039
|
+
m || (m = new S(lb), this.recentJitterSamples.set(a, m)), m.push(d), c.lastArrivalTime = o, c.lastTimestampMs = s;
|
|
10029
10040
|
}
|
|
10030
10041
|
getJitterForType(e) {
|
|
10031
10042
|
for (let [i, a] of this.trackingState) if (i.startsWith(e)) {
|
|
@@ -10058,10 +10069,10 @@ var sb = 1e3, cb = 50, lb = class e {
|
|
|
10058
10069
|
}
|
|
10059
10070
|
};
|
|
10060
10071
|
wi(), V(), m(), M();
|
|
10061
|
-
var
|
|
10072
|
+
var db = () => window.AudioContext || window.webkitAudioContext, fb = class e extends Ht {
|
|
10062
10073
|
constructor() {
|
|
10063
10074
|
var t;
|
|
10064
|
-
super(), t = this, p(this, "context", new (
|
|
10075
|
+
super(), t = this, p(this, "context", new (db())()), p(this, "timers", Bn.create()), p(this, "previousCurrentTime", 0), p(this, "_isStuck", !1), p(this, "mediaStreamDestination", void 0), p(this, "unload", () => (this.timers.unload(), this.context.removeEventListener("statechange", this.onStateChange), this.context.state === "closed" ? Promise.resolve() : this.context.close())), p(this, "createGain", () => this.context.createGain()), p(this, "createBuffer", (e, t, n) => this.context.createBuffer(e, t, n)), p(this, "createBufferSource", () => this.context.createBufferSource()), p(this, "getMediaStreamDestination", () => (this.mediaStreamDestination || (this.mediaStreamDestination = this.context.createMediaStreamDestination()), this.mediaStreamDestination)), p(this, "getDefaultDestination", () => this.context.destination), p(this, "createSplitter", () => this.context.createChannelSplitter(2)), p(this, "resume", j(function* () {
|
|
10065
10076
|
try {
|
|
10066
10077
|
return yield Promise.race([t.context.resume(), rr(1e3, di())]);
|
|
10067
10078
|
} catch (e) {
|
|
@@ -10090,8 +10101,8 @@ var ub = () => window.AudioContext || window.webkitAudioContext, db = class e ex
|
|
|
10090
10101
|
return this.context.state;
|
|
10091
10102
|
}
|
|
10092
10103
|
};
|
|
10093
|
-
p(
|
|
10094
|
-
var
|
|
10104
|
+
p(fb, "CHECK_INTERVAL", 1e3), wi(), V(), m(), M(), z();
|
|
10105
|
+
var pb, mb = 150, hb = 400, gb = (e) => e === void 0 ? 5 : e <= mb ? 1 : e <= hb ? 2 : 5, _b = class extends Ht {
|
|
10095
10106
|
get isContextRunning() {
|
|
10096
10107
|
var e;
|
|
10097
10108
|
return ((e = this.audio) == null ? void 0 : e.state) === "running";
|
|
@@ -10132,7 +10143,7 @@ var fb, pb = 150, mb = 400, hb = (e) => e === void 0 ? 5 : e <= pb ? 1 : e <= mb
|
|
|
10132
10143
|
return this._bufferTime;
|
|
10133
10144
|
}
|
|
10134
10145
|
set bufferTime(e) {
|
|
10135
|
-
this._bufferTime = e, this.audioBufferMultiplier =
|
|
10146
|
+
this._bufferTime = e, this.audioBufferMultiplier = gb(e);
|
|
10136
10147
|
}
|
|
10137
10148
|
get audioNode() {
|
|
10138
10149
|
return this.splitter;
|
|
@@ -10222,14 +10233,14 @@ var fb, pb = 150, mb = 400, hb = (e) => e === void 0 ? 5 : e <= pb ? 1 : e <= mb
|
|
|
10222
10233
|
}
|
|
10223
10234
|
})), p(this, "getAudioContext", () => this.audio ? this.audio : this.setupContext()), p(this, "setupContext", () => {
|
|
10224
10235
|
var e, t, n;
|
|
10225
|
-
return (e = this.audio) == null || e.unload(), this.audio = new
|
|
10236
|
+
return (e = this.audio) == null || e.unload(), this.audio = new fb(), this.audio.on("state", (e) => {
|
|
10226
10237
|
this.logger.info("AudioContext state change", { state: e }), e === "running" && (this._muted = this._userProvidedMuted, this.setGain(this._volume)), !this.ignoreSuspendCalls && this.emit("state change", e);
|
|
10227
10238
|
}), this.audio.on("stuck", () => {
|
|
10228
10239
|
this.reInitWhenStuck && (this.logger.info("Re-init audio context"), this.setupContext(), this.resume().catch(b), this.emit("stuck"));
|
|
10229
10240
|
}), (t = this.gainNode) == null || t.disconnect(), this.gainNode = this.audio.createGain(), this.setGain(this._volume), this.startTime = this.audio.currentTime, (n = this.splitter) == null || n.disconnect(), this.splitter = this.audio.createSplitter(), this.audio;
|
|
10230
10241
|
}), p(this, "setGain", (e) => {
|
|
10231
10242
|
this.gainNode && (this.gainNode.gain.value = this._muted ? 0 : e);
|
|
10232
|
-
}), this._muted = n, this._userProvidedMuted = n, this.logger = e, this.clockSource = t, this.reInitWhenStuck = r, this._bufferTime = i, this.audioBufferMultiplier =
|
|
10243
|
+
}), this._muted = n, this._userProvidedMuted = n, this.logger = e, this.clockSource = t, this.reInitWhenStuck = r, this._bufferTime = i, this.audioBufferMultiplier = gb(i);
|
|
10233
10244
|
}
|
|
10234
10245
|
useMediaStreamDestination() {
|
|
10235
10246
|
var e;
|
|
@@ -10244,8 +10255,8 @@ var fb, pb = 150, mb = 400, hb = (e) => e === void 0 ? 5 : e <= pb ? 1 : e <= mb
|
|
|
10244
10255
|
};
|
|
10245
10256
|
//#endregion
|
|
10246
10257
|
//#region ../../libs/web-sdk/src/players/VideoPlayer.ts
|
|
10247
|
-
|
|
10248
|
-
var
|
|
10258
|
+
pb = _b, p(_b, "create", (e, t, n) => new pb(e, t, n)), m();
|
|
10259
|
+
var vb, yb = class {
|
|
10249
10260
|
constructor(e, t, n, r, i, a) {
|
|
10250
10261
|
p(this, "staleFrameThresholdMs", 400), p(this, "pool", void 0), p(this, "logger", void 0), p(this, "videoRenderer", new Ui()), p(this, "videoFrameCanvas2DRenderer", null), p(this, "renderQueue", []), p(this, "clockSource", void 0), p(this, "isFirstFrame", !0), p(this, "usingWebCodecs", !1), p(this, "onCanvasChangeCallback", void 0), p(this, "onRendererErrorCallback", void 0), p(this, "animationFrameRequest", void 0), p(this, "firstFrameAnimationFrameRequest", void 0), p(this, "pendingFirstFrameSample", void 0), p(this, "renderedFrameCount", 0), p(this, "rendererDroppedFrameCount", 0), p(this, "renderTargetSize", void 0), p(this, "load", () => {
|
|
10251
10262
|
this.videoRenderer.load(), this.subscribeToContextLost(this.videoRenderer);
|
|
@@ -10335,10 +10346,10 @@ var _b, vb = class {
|
|
|
10335
10346
|
}), this.logger = e, this.clockSource = t, this.pool = n, this.renderTargetSize = r || this.videoRenderer.canvas, this.onCanvasChangeCallback = i, this.onRendererErrorCallback = a;
|
|
10336
10347
|
}
|
|
10337
10348
|
};
|
|
10338
|
-
|
|
10339
|
-
var
|
|
10349
|
+
vb = yb, p(yb, "create", (e, t, n, r, i, a) => new vb(e, t, n, r, i, a)), w(), O(), A();
|
|
10350
|
+
var bb = /* @__PURE__ */ new WeakMap(), xb = class {
|
|
10340
10351
|
constructor() {
|
|
10341
|
-
C(this,
|
|
10352
|
+
C(this, bb, []), D(bb, this, []);
|
|
10342
10353
|
}
|
|
10343
10354
|
addTextTrack(e, t, n) {
|
|
10344
10355
|
let r = [], i = {
|
|
@@ -10355,41 +10366,41 @@ var yb = /* @__PURE__ */ new WeakMap(), bb = class {
|
|
|
10355
10366
|
t !== -1 && r.splice(t, 1);
|
|
10356
10367
|
}
|
|
10357
10368
|
};
|
|
10358
|
-
return k(
|
|
10369
|
+
return k(bb, this).push(i), i;
|
|
10359
10370
|
}
|
|
10360
10371
|
set language(e) {
|
|
10361
|
-
k(
|
|
10372
|
+
k(bb, this).forEach((t) => {
|
|
10362
10373
|
t.language === e ? t.mode = "showing" : t.mode = "hidden";
|
|
10363
10374
|
});
|
|
10364
10375
|
}
|
|
10365
10376
|
get language() {
|
|
10366
10377
|
var e;
|
|
10367
|
-
return (e = k(
|
|
10378
|
+
return (e = k(bb, this).find((e) => e.mode === "showing")) == null ? void 0 : e.language;
|
|
10368
10379
|
}
|
|
10369
10380
|
getActiveCues(e) {
|
|
10370
|
-
let t = k(
|
|
10381
|
+
let t = k(bb, this).find((e) => e.mode === "showing");
|
|
10371
10382
|
return t ? t.cues.filter(({ startTime: t, endTime: n }) => e >= t && e <= n) : [];
|
|
10372
10383
|
}
|
|
10373
10384
|
};
|
|
10374
10385
|
V(), m();
|
|
10375
|
-
var
|
|
10386
|
+
var Sb = (e, t) => {
|
|
10376
10387
|
let n;
|
|
10377
10388
|
for (n = t; e > 1; e--) n += t;
|
|
10378
10389
|
return n;
|
|
10379
|
-
},
|
|
10390
|
+
}, Cb = class {
|
|
10380
10391
|
constructor() {
|
|
10381
10392
|
p(this, "audio", void 0), p(this, "unmute", () => this.audio.play().catch(b));
|
|
10382
10393
|
let e = document.createElement("div");
|
|
10383
10394
|
e.innerHTML = "<audio x-webkit-airplay='deny'></audio>";
|
|
10384
10395
|
let t = e.children.item(0);
|
|
10385
|
-
if (t instanceof HTMLAudioElement) this.audio = t, this.audio.controls = !1, this.audio.disableRemotePlayback = !0, this.audio.preload = "auto", this.audio.src = "data:audio/mpeg;base64,//uQx" +
|
|
10396
|
+
if (t instanceof HTMLAudioElement) this.audio = t, this.audio.controls = !1, this.audio.disableRemotePlayback = !0, this.audio.preload = "auto", this.audio.src = "data:audio/mpeg;base64,//uQx" + Sb(23, "A") + "WGluZwAAAA8AAAACAAACcQCA" + Sb(16, "gICA") + Sb(66, "/") + "8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI" + Sb(320, "A") + "//sQxAADgnABGiAAQBCqgCRMAAgEAH" + Sb(15, "/") + "7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq" + Sb(18, "/") + "9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw" + Sb(97, "V") + "Q==", this.audio.loop = !1, this.audio.load();
|
|
10386
10397
|
else throw Error("Failed to create audio tag");
|
|
10387
10398
|
}
|
|
10388
10399
|
};
|
|
10389
10400
|
wi(), V(), m();
|
|
10390
|
-
var
|
|
10401
|
+
var wb, Tb = class {
|
|
10391
10402
|
constructor(e, t, n, r, i, a, o, s) {
|
|
10392
|
-
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "unmuter", new
|
|
10403
|
+
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "unmuter", new Cb()), p(this, "_isPaused", !1), p(this, "isDisconnected", !1), p(this, "timers", new Bn()), p(this, "isVideoRenderingEnabled", !0), p(this, "isLoaded", !1), p(this, "isSuspended", !0), p(this, "isVideoPlayerLoaded", !1), p(this, "textTracks", new xb()), p(this, "playbackRate", void 0), p(this, "reset", () => {}), p(this, "load", () => {
|
|
10393
10404
|
this.audioPlayer.useDefaultDestination(), this.emitter.on("decoded frame", this.onDecodedFrame), this.emitter.on("flush buffers", this.flushBuffers), this.isLoaded = !0, this.isVideoRenderingEnabled && (this.videoPlayer.load(), this.isVideoPlayerLoaded = !0, this.startTextTrackInterval());
|
|
10394
10405
|
}), p(this, "unload", () => {
|
|
10395
10406
|
this.emitter.off("target buffer time", this.onTargetBufferTime), this.emitter.off("decoded frame", this.onDecodedFrame), this.emitter.off("flush buffers", this.flushBuffers), this.audioPlayer.unload(), this.isVideoPlayerLoaded && (this.videoPlayer.unload(), this.isVideoPlayerLoaded = !1), this.timers.unload(), this.isLoaded = !1;
|
|
@@ -10425,7 +10436,7 @@ var Cb, wb = class {
|
|
|
10425
10436
|
e instanceof Error && this.emitter.emit("error", oi(!1, e));
|
|
10426
10437
|
}
|
|
10427
10438
|
this.isVideoRenderingEnabled && this.videoPlayer.onDecodedFrame(e);
|
|
10428
|
-
}), this.logger = t, this.emitter = e, this.pool = n, this.emitter.on("target buffer time", this.onTargetBufferTime), this.audioPlayer =
|
|
10439
|
+
}), this.logger = t, this.emitter = e, this.pool = n, this.emitter.on("target buffer time", this.onTargetBufferTime), this.audioPlayer = _b.create(this.logger.createContext("AudioPlayerModule"), r, {
|
|
10429
10440
|
muted: i,
|
|
10430
10441
|
reInitWhenStuck: !0,
|
|
10431
10442
|
bufferTime: s
|
|
@@ -10436,7 +10447,7 @@ var Cb, wb = class {
|
|
|
10436
10447
|
volume: this.volume,
|
|
10437
10448
|
isMuted: this.muted
|
|
10438
10449
|
});
|
|
10439
|
-
}), this.videoPlayer =
|
|
10450
|
+
}), this.videoPlayer = yb.create(this.logger.createContext("VideoPlayerModule"), this.audioPlayer, this.pool, void 0, o);
|
|
10440
10451
|
}
|
|
10441
10452
|
get volume() {
|
|
10442
10453
|
return this.audioPlayer.volume;
|
|
@@ -10492,10 +10503,10 @@ var Cb, wb = class {
|
|
|
10492
10503
|
this._isPaused = !0, this.audioPlayer.pause(), this.emitter.emit("media element state", "paused");
|
|
10493
10504
|
}
|
|
10494
10505
|
};
|
|
10495
|
-
|
|
10496
|
-
var
|
|
10506
|
+
wb = Tb, p(Tb, "create", (e, t, n, r, i, a, o, s) => new wb(e, t, n, r, i, a, o, s)), wi(), V(), m();
|
|
10507
|
+
var Eb, Db = class {
|
|
10497
10508
|
constructor(e, t, n, r, { muted: i, volume: a, type: o, poster: s, offscreenCanvas: c, bufferTime: l }) {
|
|
10498
|
-
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "isDisconnected", !0), p(this, "_userProvidedMuted", !1), p(this, "timers", new Bn()), p(this, "offscreenCanvas", void 0), p(this, "nativeTextTrack", void 0), p(this, "nativeTrackCues", []), p(this, "volumeState", void 0), p(this, "textTracks", new
|
|
10509
|
+
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "audioPlayer", void 0), p(this, "videoPlayer", void 0), p(this, "pool", void 0), p(this, "isDisconnected", !0), p(this, "_userProvidedMuted", !1), p(this, "timers", new Bn()), p(this, "offscreenCanvas", void 0), p(this, "nativeTextTrack", void 0), p(this, "nativeTrackCues", []), p(this, "volumeState", void 0), p(this, "textTracks", new xb()), p(this, "reset", () => {}), p(this, "load", () => {
|
|
10499
10510
|
this.mediaElement.load(), this.emitter.on("decoded frame", this.onDecodedFrame), this.emitter.on("flush buffers", this.flushBuffers), this.emitter.on("ios-hack: reset size", this.resetCanvasSize), this.emitter.on("enter picture in picture", this.onEnterIOSHack), this.emitter.on("exit picture in picture", this.onExitIOSHack), this.element().element.addEventListener("webkitendfullscreen", this.onExitIOSHack), this.element().element.addEventListener("webkitbeginfullscreen", this.onEnterIOSHack), this.videoPlayer.load(), this.nativeTextTrack = this.mediaElement.element.addTextTrack("subtitles", "", ""), this.nativeTextTrack.mode = "showing", this.timers.setInterval(() => {
|
|
10500
10511
|
if (!this.textTracks.language) {
|
|
10501
10512
|
this.clearNativeTrackCues();
|
|
@@ -10582,7 +10593,7 @@ var Tb, Eb = class {
|
|
|
10582
10593
|
this.updateVolumeState(), !e.isMuted && !this.audioPlayer.isContextRunning && this.activateAudioPlayer().catch(b), e.isMuted || (this._userProvidedMuted = !1);
|
|
10583
10594
|
}), this.mediaElement.on("media element state", (e) => {
|
|
10584
10595
|
e === "paused" && this.audioPlayer.flushBuffer(), this.emitter.emit("media element state", e);
|
|
10585
|
-
}), this.audioPlayer =
|
|
10596
|
+
}), this.audioPlayer = _b.create(this.logger.createContext("AudioPlayerModule"), r, {
|
|
10586
10597
|
muted: !1,
|
|
10587
10598
|
reInitWhenStuck: !1,
|
|
10588
10599
|
bufferTime: l
|
|
@@ -10590,7 +10601,7 @@ var Tb, Eb = class {
|
|
|
10590
10601
|
this.isDisconnected = !0;
|
|
10591
10602
|
}), this.audioPlayer.on("state change", (e) => {
|
|
10592
10603
|
e === "suspended" || e === "interrupted" ? this.mediaElement.muted = !0 : e === "running" && (this.mediaElement.muted = this._userProvidedMuted || document.visibilityState === "hidden"), this.updateVolumeState();
|
|
10593
|
-
}), this.videoPlayer =
|
|
10604
|
+
}), this.videoPlayer = yb.create(this.logger.createContext("VideoPlayerModule"), this.audioPlayer, this.pool, this.mediaElement.element, () => this.reconnectCanvasStream(), this.onVideoPlayerError), this.volumeState = {
|
|
10594
10605
|
volume: this.volume,
|
|
10595
10606
|
isMuted: this.muted
|
|
10596
10607
|
};
|
|
@@ -10648,8 +10659,8 @@ var Tb, Eb = class {
|
|
|
10648
10659
|
this.mediaElement.pause();
|
|
10649
10660
|
}
|
|
10650
10661
|
};
|
|
10651
|
-
|
|
10652
|
-
var
|
|
10662
|
+
Eb = Db, p(Db, "create", (e, t, n, r, i) => new Eb(e, t, n, r, i)), V(), m();
|
|
10663
|
+
var Ob = () => (e) => kb(e.buffered.start(0), e.buffered.end(e.buffered.length - 1)), kb = (e, t) => (n) => n.remove(Math.max(0, e), Math.min(Infinity, t)), Ab = (e) => (t) => t.appendBuffer(e), jb = (e) => (t) => t.changeType(e), Mb = (e) => (t) => e(t), Nb = class {
|
|
10653
10664
|
constructor(e) {
|
|
10654
10665
|
p(this, "commandQueue", []), p(this, "sourceBuffer", void 0), p(this, "errorCallback", void 0), p(this, "currentInit", void 0), p(this, "setErrorCallback", (e) => {
|
|
10655
10666
|
this.errorCallback = e;
|
|
@@ -10663,32 +10674,32 @@ var Db = () => (e) => Ob(e.buffered.start(0), e.buffered.end(e.buffered.length -
|
|
|
10663
10674
|
}
|
|
10664
10675
|
}), p(this, "appendBuffer", (e, t) => new Promise((n, r) => {
|
|
10665
10676
|
if (t && this.currentInit !== t) {
|
|
10666
|
-
let e = new kt(
|
|
10677
|
+
let e = new kt(Ab(t), n, r);
|
|
10667
10678
|
this.commandQueue.push(e), this.currentInit = t;
|
|
10668
10679
|
}
|
|
10669
|
-
let i = new kt(
|
|
10680
|
+
let i = new kt(Ab(e), n, r);
|
|
10670
10681
|
this.commandQueue.push(i), this.handleQueue();
|
|
10671
10682
|
})), p(this, "execute", (e) => new Promise((t, n) => {
|
|
10672
|
-
let r = new kt(
|
|
10683
|
+
let r = new kt(Mb(e), t, n);
|
|
10673
10684
|
this.commandQueue.push(r), this.handleQueue();
|
|
10674
10685
|
})), p(this, "buffered", () => this.sourceBuffer.buffered), p(this, "removeFromMediaSource", (e) => {
|
|
10675
10686
|
this.dispose(), e.removeSourceBuffer(this.sourceBuffer);
|
|
10676
10687
|
}), p(this, "dispose", () => {
|
|
10677
10688
|
this.sourceBuffer.removeEventListener("updateend", this.handleQueue), this.sourceBuffer.removeEventListener("error", this.onError), this.commandQueue = [], this.errorCallback = void 0;
|
|
10678
10689
|
}), p(this, "changeType", (e) => new Promise((t, n) => {
|
|
10679
|
-
let r = new kt(
|
|
10690
|
+
let r = new kt(jb(e), t, n);
|
|
10680
10691
|
this.commandQueue.push(r), this.handleQueue();
|
|
10681
10692
|
})), p(this, "removeBuffer", (e, t) => new Promise((n, r) => {
|
|
10682
|
-
let i = new kt(
|
|
10693
|
+
let i = new kt(kb(e, t), n, r);
|
|
10683
10694
|
this.commandQueue.push(i), this.handleQueue();
|
|
10684
10695
|
})), p(this, "flush", () => new Promise((e, t) => {
|
|
10685
|
-
let n = new kt(
|
|
10696
|
+
let n = new kt(Ob, e, t);
|
|
10686
10697
|
this.commandQueue.push(n), this.handleQueue();
|
|
10687
10698
|
})), this.sourceBuffer = e, this.sourceBuffer.addEventListener("updateend", this.handleQueue), this.sourceBuffer.addEventListener("error", this.onError);
|
|
10688
10699
|
}
|
|
10689
10700
|
};
|
|
10690
10701
|
V(), m();
|
|
10691
|
-
var
|
|
10702
|
+
var Pb = class extends Ht {
|
|
10692
10703
|
constructor() {
|
|
10693
10704
|
super(), p(this, "MediaSource", Be()), p(this, "mediaSource", new this.MediaSource()), p(this, "isOpen", () => this.mediaSource.readyState === "open"), p(this, "isClosed", () => this.mediaSource.readyState === "closed"), p(this, "isEnded", () => this.mediaSource.readyState === "ended"), p(this, "createObjectURL", () => URL.createObjectURL(this.mediaSource)), p(this, "attach", (e) => {
|
|
10694
10705
|
let t = e;
|
|
@@ -10704,7 +10715,7 @@ var Nb = class extends Ht {
|
|
|
10704
10715
|
this.mediaSource.endOfStream();
|
|
10705
10716
|
} catch (e) {}
|
|
10706
10717
|
e.srcObject && (e.srcObject = null), e.src !== "" && (URL.revokeObjectURL(e.src), e.removeAttribute("src")), e.load();
|
|
10707
|
-
}), p(this, "addSourceBuffer", (e) => new
|
|
10718
|
+
}), p(this, "addSourceBuffer", (e) => new Nb(this.mediaSource.addSourceBuffer(e))), p(this, "removeSourceBuffer", (e) => {
|
|
10708
10719
|
e.removeFromMediaSource(this.mediaSource);
|
|
10709
10720
|
}), p(this, "endOfStream", (e) => {
|
|
10710
10721
|
this.mediaSource.endOfStream(e);
|
|
@@ -10721,11 +10732,11 @@ var Nb = class extends Ht {
|
|
|
10721
10732
|
}), this.mediaSource.addEventListener("sourceopen", this.onSourceOpen), this.mediaSource.addEventListener("sourceclose", this.onSourceClosed), this.mediaSource.addEventListener("sourceended", this.onSourceEnded);
|
|
10722
10733
|
}
|
|
10723
10734
|
};
|
|
10724
|
-
p(
|
|
10735
|
+
p(Pb, "isTypeSupported", (e) => {
|
|
10725
10736
|
var t, n;
|
|
10726
10737
|
return (t = (n = Be()) == null ? void 0 : n.isTypeSupported(e)) == null ? !1 : t;
|
|
10727
10738
|
}), wi(), V(), m(), z(), M();
|
|
10728
|
-
var
|
|
10739
|
+
var Fb, Ib = class {
|
|
10729
10740
|
constructor() {
|
|
10730
10741
|
p(this, "initSegments", /* @__PURE__ */ new Map()), p(this, "set", (e, t, n) => {
|
|
10731
10742
|
var r;
|
|
@@ -10737,7 +10748,7 @@ var Pb, Fb = class {
|
|
|
10737
10748
|
});
|
|
10738
10749
|
}
|
|
10739
10750
|
};
|
|
10740
|
-
function
|
|
10751
|
+
function Lb(e, { mediaSource: t, mimeType: n, codec: r }) {
|
|
10741
10752
|
return R(R({}, e), {}, {
|
|
10742
10753
|
state: "initialized",
|
|
10743
10754
|
mimeType: n,
|
|
@@ -10749,10 +10760,10 @@ function Ib(e, { mediaSource: t, mimeType: n, codec: r }) {
|
|
|
10749
10760
|
lastBufferCleanupTime: Date.now()
|
|
10750
10761
|
});
|
|
10751
10762
|
}
|
|
10752
|
-
function
|
|
10763
|
+
function Rb({ initSegments: e, pendingSamples: t }) {
|
|
10753
10764
|
return {
|
|
10754
10765
|
state: "uninitialized",
|
|
10755
|
-
initSegments: e == null ? new
|
|
10766
|
+
initSegments: e == null ? new Ib() : e,
|
|
10756
10767
|
sequenceNumber: 0,
|
|
10757
10768
|
isWorkingOnPendingSamples: !1,
|
|
10758
10769
|
hasFirstSync: t.some((e) => e.isSync),
|
|
@@ -10762,10 +10773,10 @@ function Lb({ initSegments: e, pendingSamples: t }) {
|
|
|
10762
10773
|
successfulAppendCalls: 0
|
|
10763
10774
|
};
|
|
10764
10775
|
}
|
|
10765
|
-
var
|
|
10776
|
+
var zb = class {
|
|
10766
10777
|
constructor(e, t, n) {
|
|
10767
10778
|
var r = this;
|
|
10768
|
-
p(this, "maxChunkSize", 20), p(this, "minConsecutiveErrorsBeforeEmit", 5), p(this, "maxSecondsInBuffer", 60), p(this, "logger", void 0), p(this, "timers", Bn.create()), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "mediaSource", new
|
|
10779
|
+
p(this, "maxChunkSize", 20), p(this, "minConsecutiveErrorsBeforeEmit", 5), p(this, "maxSecondsInBuffer", 60), p(this, "logger", void 0), p(this, "timers", Bn.create()), p(this, "emitter", void 0), p(this, "mediaElement", void 0), p(this, "mediaSource", new Pb()), p(this, "trackContexts", /* @__PURE__ */ new Map()), p(this, "autoRecoverFromMediaErrors", !0), p(this, "quotaErrorCount", 0), p(this, "recoveredFromErrorCount", 0), p(this, "sourceOpenStartTime", Date.now()), p(this, "sourceOpenEndTime", Date.now()), p(this, "pendingTracksToAddSourceBuffers", void 0), p(this, "hasAddedInitialPosterFrame", !0), p(this, "videoKeyframeTimestamps", []), p(this, "isReopening", !1), p(this, "playbackStallCount", 0), p(this, "hasStartedPlayback", !1), p(this, "isPlaybackStalled", !1), p(this, "load", () => {
|
|
10769
10780
|
this.emitter.on("init segment", this.init), this.emitter.on("coded sample", this.onCodedSample), this.emitter.on("flush buffers", this.flushBuffers), this.emitter.on("fragment", this.onFragment);
|
|
10770
10781
|
}), p(this, "unload", () => {
|
|
10771
10782
|
this.logger.debug("Unloading module..."), this.emitter.off("init segment", this.init), this.emitter.off("coded sample", this.onCodedSample), this.emitter.off("flush buffers", this.flushBuffers), this.emitter.off("fragment", this.onFragment), this.mediaSource.off("source ended", this.onSourceEnded), this.mediaSource.off("source open", this.onSourceOpen), this.mediaElement.removeEventListener("error", this.onMediaElementError), this.mediaElement.removeEventListener("waiting", this.onPlaybackStall), this.mediaElement.removeEventListener("stalled", this.onPlaybackStall), this.mediaElement.removeEventListener("playing", this.onPlaybackProgress), this.mediaElement.removeEventListener("pause", this.onPlaybackPauseOrSeek), this.mediaElement.removeEventListener("seeking", this.onPlaybackPauseOrSeek), this.mediaSource.detach(this.mediaElement), this.trackContexts.forEach((e) => {
|
|
@@ -10802,7 +10813,7 @@ var Rb = class {
|
|
|
10802
10813
|
var n, r, i;
|
|
10803
10814
|
let a = e.get(t), o = (n = a == null ? void 0 : a.pendingSamples) == null ? [] : n, s = a == null ? void 0 : a.initSegments, c = (r = a == null ? void 0 : a.pendingSamplesOffset) == null ? 0 : r;
|
|
10804
10815
|
for (; c < o.length && !((i = o[c]) != null && i.isSync);) c++;
|
|
10805
|
-
let l =
|
|
10816
|
+
let l = Rb({
|
|
10806
10817
|
pendingSamples: o,
|
|
10807
10818
|
initSegments: s
|
|
10808
10819
|
});
|
|
@@ -10813,14 +10824,14 @@ var Rb = class {
|
|
|
10813
10824
|
this.trackContexts.forEach((e, n) => {
|
|
10814
10825
|
if (t.has(n)) return;
|
|
10815
10826
|
e.state === "initialized" && this.mediaSource.isOpen() && this.mediaSource.removeSourceBuffer(e.sourceBuffer);
|
|
10816
|
-
let r =
|
|
10827
|
+
let r = Rb({
|
|
10817
10828
|
pendingSamples: [],
|
|
10818
10829
|
initSegments: e.initSegments
|
|
10819
10830
|
});
|
|
10820
10831
|
this.trackContexts.set(n, r);
|
|
10821
10832
|
});
|
|
10822
10833
|
}), p(this, "isCurrentTrackContext", (e, t) => this.trackContexts.get(e) === t), p(this, "initializeSourceBuffer", (e, t) => {
|
|
10823
|
-
let n =
|
|
10834
|
+
let n = Lb(e, {
|
|
10824
10835
|
mimeType: t.mimeType,
|
|
10825
10836
|
mediaSource: this.mediaSource,
|
|
10826
10837
|
codec: t.codec
|
|
@@ -10847,9 +10858,9 @@ var Rb = class {
|
|
|
10847
10858
|
}
|
|
10848
10859
|
for (let t of e) {
|
|
10849
10860
|
let n = r.trackContexts.get(t.type);
|
|
10850
|
-
if (n || (n =
|
|
10861
|
+
if (n || (n = Rb({
|
|
10851
10862
|
pendingSamples: [],
|
|
10852
|
-
initSegments: new
|
|
10863
|
+
initSegments: new Ib()
|
|
10853
10864
|
}), r.trackContexts.set(t.type, n)), n.state === "initialized") {
|
|
10854
10865
|
if (t.mimeType !== n.sourceBufferMimeType) try {
|
|
10855
10866
|
yield n.sourceBuffer.changeType(t.mimeType), n.sourceBufferMimeType = t.mimeType;
|
|
@@ -10865,7 +10876,7 @@ var Rb = class {
|
|
|
10865
10876
|
r.logger.warn("removeSourceBuffer failed", { removeError: t }), r.reopenMediaSource("changeType recovery failed"), r.pendingTracksToAddSourceBuffers = e;
|
|
10866
10877
|
return;
|
|
10867
10878
|
}
|
|
10868
|
-
let a =
|
|
10879
|
+
let a = Rb({
|
|
10869
10880
|
pendingSamples: n.pendingSamples,
|
|
10870
10881
|
initSegments: n.initSegments
|
|
10871
10882
|
});
|
|
@@ -10889,7 +10900,7 @@ var Rb = class {
|
|
|
10889
10900
|
};
|
|
10890
10901
|
}), p(this, "getNextBufferedRangeStart", (e) => {
|
|
10891
10902
|
let t = this.getCommonBufferedRangesForCurrentTracks();
|
|
10892
|
-
if (t) return
|
|
10903
|
+
if (t) return Vb(e, t);
|
|
10893
10904
|
}), p(this, "getVideoKeyframeTimestamps", () => this.videoKeyframeTimestamps), p(this, "init", ({ initSegment: e, mimeType: t }) => {
|
|
10894
10905
|
this.logger.debug("Added init segment", {
|
|
10895
10906
|
channel: e.channelId,
|
|
@@ -10988,7 +10999,7 @@ var Rb = class {
|
|
|
10988
10999
|
let t = (e.timestamp + ((n = e.compositionTimeOffset) == null ? 0 : n)) / e.timescale * 1e3, r = this.videoKeyframeTimestamps[this.videoKeyframeTimestamps.length - 1];
|
|
10989
11000
|
r !== void 0 && t < r && (this.videoKeyframeTimestamps = []), this.videoKeyframeTimestamps.push(t), this.videoKeyframeTimestamps.length > 20 && (this.videoKeyframeTimestamps = this.videoKeyframeTimestamps.slice(-20));
|
|
10990
11001
|
}
|
|
10991
|
-
t.state !== "uninitialized" && (t.isWorkingOnPendingSamples ||
|
|
11002
|
+
t.state !== "uninitialized" && (t.isWorkingOnPendingSamples || Kb(t, this.append, this.maxChunkSize).catch((n) => {
|
|
10992
11003
|
if (t.isWorkingOnPendingSamples = !1, !this.isReopening) {
|
|
10993
11004
|
if (!this.isCurrentTrackContext(e.type, t)) {
|
|
10994
11005
|
this.logger.debug("Suppressing append error from stale track context", { type: e.type });
|
|
@@ -11072,14 +11083,14 @@ var Rb = class {
|
|
|
11072
11083
|
if (this.mediaSource.isClosed()) return;
|
|
11073
11084
|
let e = this.getInitializedTrackBuffers();
|
|
11074
11085
|
if (e.length !== 0) return this.getCommonBufferedRanges(e);
|
|
11075
|
-
}), p(this, "getCommonBufferedRanges", (e) => e.slice(1).reduce((e, t) =>
|
|
11086
|
+
}), p(this, "getCommonBufferedRanges", (e) => e.slice(1).reduce((e, t) => Hb(e, t), e[0] ? Array.from(e[0]) : [])), p(this, "getPlaybackStateForBufferedRanges", (e, t) => Bb(e, t) ? "playing" : "buffering"), this.logger = e, this.mediaElement = n, this.emitter = t;
|
|
11076
11087
|
}
|
|
11077
11088
|
};
|
|
11078
|
-
|
|
11079
|
-
let r = new
|
|
11089
|
+
Fb = zb, p(zb, "create", (e, t, n) => {
|
|
11090
|
+
let r = new Fb(e, t, n);
|
|
11080
11091
|
return r.setTrackContexts(), r.mediaSource.on("source ended", r.onSourceEnded), r.mediaSource.on("source open", r.onSourceOpen), n.addEventListener("error", r.onMediaElementError), n.addEventListener("waiting", r.onPlaybackStall), n.addEventListener("stalled", r.onPlaybackStall), n.addEventListener("playing", r.onPlaybackProgress), n.addEventListener("pause", r.onPlaybackPauseOrSeek), n.addEventListener("seeking", r.onPlaybackPauseOrSeek), r.mediaSource.attach(n), r;
|
|
11081
11092
|
});
|
|
11082
|
-
var
|
|
11093
|
+
var Bb = (e, t) => t.some((t) => t.start <= e && e < t.end), Vb = (e, t) => {
|
|
11083
11094
|
for (let r = 0; r < t.length; r++) {
|
|
11084
11095
|
let i = t[r];
|
|
11085
11096
|
if (i) {
|
|
@@ -11090,7 +11101,7 @@ var zb = (e, t) => t.some((t) => t.start <= e && e < t.end), Bb = (e, t) => {
|
|
|
11090
11101
|
}
|
|
11091
11102
|
}
|
|
11092
11103
|
}
|
|
11093
|
-
},
|
|
11104
|
+
}, Hb = (e, t) => {
|
|
11094
11105
|
let n = [], r = 0, i = 0;
|
|
11095
11106
|
for (; r < e.length && i < t.length;) {
|
|
11096
11107
|
let a = e[r], o = t[i];
|
|
@@ -11102,20 +11113,20 @@ var zb = (e, t) => t.some((t) => t.start <= e && e < t.end), Bb = (e, t) => {
|
|
|
11102
11113
|
}), a.end <= o.end ? r++ : i++;
|
|
11103
11114
|
}
|
|
11104
11115
|
return n;
|
|
11105
|
-
},
|
|
11116
|
+
}, Ub = (e, t) => {
|
|
11106
11117
|
var n;
|
|
11107
11118
|
let r = e.renditionId !== t.renditionId, i = e.channelId !== t.channelId, a = ((n = e.timestamp) == null ? 0 : n) > t.timestamp, o = e.type === "video" && t.type === "video" && "levelIdc" in e && "levelIdc" in t && e.levelIdc !== t.levelIdc, s = !1;
|
|
11108
11119
|
return e.type === "video" && t.type === "video" && "width" in e && "width" in t && (s = t.width !== e.width || t.height !== e.height), i || r || a || s || o;
|
|
11109
|
-
},
|
|
11120
|
+
}, Wb = 32, Gb = (e) => {
|
|
11110
11121
|
let t = e.pendingSamplesOffset;
|
|
11111
11122
|
if (t !== 0) {
|
|
11112
11123
|
if (t >= e.pendingSamples.length) {
|
|
11113
11124
|
e.pendingSamples = [], e.pendingSamplesOffset = 0;
|
|
11114
11125
|
return;
|
|
11115
11126
|
}
|
|
11116
|
-
t <
|
|
11127
|
+
t < Wb || t * 2 < e.pendingSamples.length || (e.pendingSamples = e.pendingSamples.slice(t), e.pendingSamplesOffset = 0);
|
|
11117
11128
|
}
|
|
11118
|
-
},
|
|
11129
|
+
}, Kb = function() {
|
|
11119
11130
|
var e = j(function* (e, t, n) {
|
|
11120
11131
|
for (e.isWorkingOnPendingSamples = !0; e.pendingSamplesOffset < e.pendingSamples.length;) {
|
|
11121
11132
|
let r = [], i = e.pendingSamplesOffset;
|
|
@@ -11123,7 +11134,7 @@ var zb = (e, t) => t.some((t) => t.start <= e && e < t.end), Bb = (e, t) => {
|
|
|
11123
11134
|
i = t;
|
|
11124
11135
|
let a = e.pendingSamples[t], o = e.pendingSamples[t + 1];
|
|
11125
11136
|
if (a && (r.push(a), o)) {
|
|
11126
|
-
if (
|
|
11137
|
+
if (Ub(a, o)) break;
|
|
11127
11138
|
let e = (a.timestamp + a.duration) / a.timescale;
|
|
11128
11139
|
if (o.timestamp / o.timescale - e > .1) break;
|
|
11129
11140
|
}
|
|
@@ -11131,7 +11142,7 @@ var zb = (e, t) => t.some((t) => t.start <= e && e < t.end), Bb = (e, t) => {
|
|
|
11131
11142
|
}
|
|
11132
11143
|
let a = r[0];
|
|
11133
11144
|
if (!a) break;
|
|
11134
|
-
yield t(r, e.previousSample ?
|
|
11145
|
+
yield t(r, e.previousSample ? Ub(e.previousSample, a) : !0), e.pendingSamplesOffset = i + 1, e.previousSample = r[r.length - 1], Gb(e);
|
|
11135
11146
|
}
|
|
11136
11147
|
e.isWorkingOnPendingSamples = !1;
|
|
11137
11148
|
});
|
|
@@ -11140,7 +11151,7 @@ var zb = (e, t) => t.some((t) => t.start <= e && e < t.end), Bb = (e, t) => {
|
|
|
11140
11151
|
};
|
|
11141
11152
|
}();
|
|
11142
11153
|
V(), m(), M();
|
|
11143
|
-
var
|
|
11154
|
+
var qb, Jb = class {
|
|
11144
11155
|
constructor(e, t) {
|
|
11145
11156
|
var n = this;
|
|
11146
11157
|
p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "element", void 0), p(this, "pictureInPictureWindow", void 0), p(this, "unload", () => {
|
|
@@ -11174,8 +11185,8 @@ var Kb, qb = class {
|
|
|
11174
11185
|
};
|
|
11175
11186
|
//#endregion
|
|
11176
11187
|
//#region ../../libs/web-sdk/src/modules/PlaybackModule.ts
|
|
11177
|
-
|
|
11178
|
-
var
|
|
11188
|
+
qb = Jb, p(Jb, "create", (e, t) => new qb(e, t)), m();
|
|
11189
|
+
var Yb, Xb = class {
|
|
11179
11190
|
constructor(e, t, n, r) {
|
|
11180
11191
|
p(this, "emitter", void 0), p(this, "logger", void 0), p(this, "clockSource", void 0), p(this, "state", "buffering"), p(this, "bufferFullness", 0), p(this, "targetBufferTime", void 0), p(this, "lastBufferStateEvent", "drained"), p(this, "firstFrameTime", void 0), p(this, "currentTimeIsInRange", !1), p(this, "needsInputForAudioCount", 0), p(this, "needsInputForVideoCount", 0), p(this, "unload", () => {
|
|
11181
11192
|
this.emitter.off("buffer state", this.onBufferedStateChanged), this.emitter.off("needs user input", this.onNeedsUserInput);
|
|
@@ -11193,22 +11204,22 @@ var Jb, Yb = class {
|
|
|
11193
11204
|
}), this.emitter = e, this.logger = t, this.clockSource = n, this.targetBufferTime = r, this.emitter.on("buffer state", this.onBufferedStateChanged), this.emitter.on("needs user input", this.onNeedsUserInput), this.emitter.emit("target buffer time", r);
|
|
11194
11205
|
}
|
|
11195
11206
|
};
|
|
11196
|
-
|
|
11197
|
-
var
|
|
11207
|
+
Yb = Xb, p(Xb, "create", (e, t, n, r) => new Yb(e, t, n, r)), V(), m();
|
|
11208
|
+
var Zb, Qb = () => ({
|
|
11198
11209
|
upgradesFromLevel: [],
|
|
11199
11210
|
downgradesFromLevel: [],
|
|
11200
11211
|
bufferingRanges: [],
|
|
11201
11212
|
activeRanges: [],
|
|
11202
11213
|
decodeRate: 2 ** 53 - 1
|
|
11203
|
-
}),
|
|
11214
|
+
}), $b = () => ({
|
|
11204
11215
|
levels: {},
|
|
11205
11216
|
levelDowngrades: [],
|
|
11206
11217
|
levelUpgrades: [],
|
|
11207
11218
|
bufferFullness: 0,
|
|
11208
|
-
general:
|
|
11209
|
-
}),
|
|
11219
|
+
general: Qb()
|
|
11220
|
+
}), ex = class {
|
|
11210
11221
|
constructor(e, t, n) {
|
|
11211
|
-
p(this, "minBufferFullnessLengthForRegression", 6), p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "timers", Bn.create()), p(this, "metrics",
|
|
11222
|
+
p(this, "minBufferFullnessLengthForRegression", 6), p(this, "logger", void 0), p(this, "emitter", void 0), p(this, "timers", Bn.create()), p(this, "metrics", $b()), p(this, "bufferFullness", new S(30)), p(this, "bufferFullnessRegression", void 0), p(this, "currentLevel", void 0), p(this, "isSuspended", !1), p(this, "_fatalQosCount", 0), p(this, "targetBufferTime", 0), p(this, "renditionLevelSource", void 0), p(this, "qualityIndexOrder", []), p(this, "hasAsserted", !1), p(this, "load", () => {
|
|
11212
11223
|
this.emitter.on("playback state", this.onPlaybackState), this.emitter.on("buffer fullness", this.onBufferFullness), this.emitter.on("rendition level changed", this.onRenditionLevelChanged), this.emitter.on("video decode rate", this.onVideoDecodeRate), this.emitter.on("target buffer time", this.onTargetBufferTime);
|
|
11213
11224
|
}), p(this, "unload", () => {
|
|
11214
11225
|
this.emitter.off("playback state", this.onPlaybackState), this.emitter.off("buffer fullness", this.onBufferFullness), this.emitter.off("rendition level changed", this.onRenditionLevelChanged), this.emitter.off("video decode rate", this.onVideoDecodeRate), this.emitter.off("target buffer time", this.onTargetBufferTime), this.suspend();
|
|
@@ -11276,14 +11287,14 @@ var Xb, Zb = () => ({
|
|
|
11276
11287
|
let d = !1;
|
|
11277
11288
|
if (e.from) {
|
|
11278
11289
|
var f;
|
|
11279
|
-
let e = (f = this.metrics.levels[l]) == null ?
|
|
11290
|
+
let e = (f = this.metrics.levels[l]) == null ? Qb() : f;
|
|
11280
11291
|
l < u ? e.upgradesFromLevel.push(Date.now()) : e.downgradesFromLevel.push(Date.now()), Hn(e.activeRanges);
|
|
11281
11292
|
let t = e.bufferingRanges[e.bufferingRanges.length - 1];
|
|
11282
11293
|
d = !!t && !t.end, Hn(e.bufferingRanges), this.metrics.levels[l] = e;
|
|
11283
11294
|
}
|
|
11284
11295
|
if (e.to) {
|
|
11285
11296
|
var p;
|
|
11286
|
-
let e = (p = this.metrics.levels[u]) == null ?
|
|
11297
|
+
let e = (p = this.metrics.levels[u]) == null ? Qb() : p;
|
|
11287
11298
|
Un(e.activeRanges), d && Un(e.bufferingRanges), this.metrics.levels[u] = e, this.currentLevel = u;
|
|
11288
11299
|
}
|
|
11289
11300
|
}), p(this, "onBufferFullness", (e) => {
|
|
@@ -11352,8 +11363,8 @@ var Xb, Zb = () => ({
|
|
|
11352
11363
|
Un(this.metrics.general.activeRanges);
|
|
11353
11364
|
}
|
|
11354
11365
|
};
|
|
11355
|
-
|
|
11356
|
-
var
|
|
11366
|
+
Zb = ex, p(ex, "create", (e, t, n) => new Zb(e, t, n)), V(), m();
|
|
11367
|
+
var tx, nx = class {
|
|
11357
11368
|
constructor(e, t) {
|
|
11358
11369
|
p(this, "renditions", /* @__PURE__ */ new Map()), p(this, "renditionLevels", []), p(this, "languages", []), p(this, "emitter", void 0), p(this, "subscriptionSource", void 0), p(this, "renditionLevelChangeCount", 0), p(this, "unload", () => {
|
|
11359
11370
|
this.emitter.off("renditions", this.onRenditions), this.emitter.off("subscription changed", this.onSubscriptionChanged);
|
|
@@ -11428,8 +11439,8 @@ var ex, tx = class {
|
|
|
11428
11439
|
}), p(this, "getCurrentSubscription", () => this.subscriptionSource.getCurrentSubscription()), this.subscriptionSource = t, this.emitter = e, this.emitter.on("renditions", this.onRenditions), this.emitter.on("subscription changed", this.onSubscriptionChanged);
|
|
11429
11440
|
}
|
|
11430
11441
|
};
|
|
11431
|
-
|
|
11432
|
-
var
|
|
11442
|
+
tx = nx, p(nx, "create", (e, t) => new tx(e, t)), V(), m();
|
|
11443
|
+
var rx, ix = (e) => JSON.parse(JSON.stringify(e)), ax = 1e4, ox = class {
|
|
11433
11444
|
constructor(e, t, n) {
|
|
11434
11445
|
p(this, "logger", void 0), p(this, "timers", new Bn()), p(this, "emitter", void 0), p(this, "targetSubscription", void 0), p(this, "currentSubscription", void 0), p(this, "_isSwitchingSubscription", !1), p(this, "pendingSubscriptionTimeoutId", void 0), p(this, "burstMs", 0), p(this, "unload", () => {
|
|
11435
11446
|
this.logger.debug("Unloading module..."), this.timers.unload(), this.emitter.off("subscription changed", this.onSubscriptionChanged), this.logger.debug("Unloaded module");
|
|
@@ -11467,21 +11478,21 @@ var nx, rx = (e) => JSON.parse(JSON.stringify(e)), ix = 1e4, ax = class {
|
|
|
11467
11478
|
this.logger.debug("onSubscriptionChanged", {
|
|
11468
11479
|
to: e,
|
|
11469
11480
|
reset: t
|
|
11470
|
-
}), t ? this.targetSubscription =
|
|
11481
|
+
}), t ? this.targetSubscription = ix(this.currentSubscription) : this.currentSubscription = ix(e), this._isSwitchingSubscription = this.isNewSubscription();
|
|
11471
11482
|
}), p(this, "scheduleSubscriptionChange", () => {
|
|
11472
|
-
this.targetSubscription =
|
|
11483
|
+
this.targetSubscription = ix(this.targetSubscription), this._isSwitchingSubscription = this.isNewSubscription();
|
|
11473
11484
|
let e = this.currentSubscription.channelId, t = this.targetSubscription.channelId, n = e !== t;
|
|
11474
11485
|
this._isSwitchingSubscription && (n && this.burstMs ? this.setBurst(this.burstMs) : this.setBurst(0), this.pendingSubscriptionTimeoutId && (this.timers.clearTimeout(this.pendingSubscriptionTimeoutId), this.pendingSubscriptionTimeoutId = void 0), n && this.timers.setTimeout(() => {
|
|
11475
|
-
this.currentSubscription.channelId === e && this.targetSubscription.channelId === t && (this.logger.warn("Channel switch timeout", t), this.targetSubscription =
|
|
11476
|
-
},
|
|
11486
|
+
this.currentSubscription.channelId === e && this.targetSubscription.channelId === t && (this.logger.warn("Channel switch timeout", t), this.targetSubscription = ix(this.currentSubscription), this.emitter.emit("channel switch timeout", t));
|
|
11487
|
+
}, ax), this.pendingSubscriptionTimeoutId = this.timers.setTimeout(() => this.emitter.emit("send signal", {
|
|
11477
11488
|
type: "subscribe",
|
|
11478
11489
|
subscription: this.getTargetSubscription()
|
|
11479
11490
|
}), 0));
|
|
11480
|
-
}), this.logger = e, this.targetSubscription = t, this.currentSubscription =
|
|
11491
|
+
}), this.logger = e, this.targetSubscription = t, this.currentSubscription = ix(t), this.emitter = n, this.emitter.on("subscription changed", this.onSubscriptionChanged);
|
|
11481
11492
|
}
|
|
11482
11493
|
};
|
|
11483
|
-
|
|
11484
|
-
var
|
|
11494
|
+
rx = ox, p(ox, "create", (e, t, n) => new rx(e, n, t)), V(), m(), z();
|
|
11495
|
+
var sx, cx = 5e3, lx = () => Qe() || Ye(), ux = (e) => e && lx() ? 100 : 0, dx = (e) => (t) => t > e, fx = {
|
|
11485
11496
|
seek: {
|
|
11486
11497
|
toleranceMs: 200,
|
|
11487
11498
|
toleranceMaxMs: 2500,
|
|
@@ -11513,7 +11524,7 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11513
11524
|
decayCooldownMultiplier: 3,
|
|
11514
11525
|
decayCheckInterval: 15e3
|
|
11515
11526
|
}
|
|
11516
|
-
},
|
|
11527
|
+
}, px = class {
|
|
11517
11528
|
get driftSamplesToCollect() {
|
|
11518
11529
|
return this._driftSamplesToCollect;
|
|
11519
11530
|
}
|
|
@@ -11559,7 +11570,7 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11559
11570
|
}), p(this, "processSample", (e) => {
|
|
11560
11571
|
var t;
|
|
11561
11572
|
if (!e.channelId) throw Error("Sample must be assigned to a channel");
|
|
11562
|
-
this.currentChannelId || (this.currentChannelId = e.channelId), this.timestampOffset || (this.timestampOffset = e.timestamp / e.timescale * 1e3 -
|
|
11573
|
+
this.currentChannelId || (this.currentChannelId = e.channelId), this.timestampOffset || (this.timestampOffset = e.timestamp / e.timescale * 1e3 - cx);
|
|
11563
11574
|
let n = e.type === "video" && e.isSync;
|
|
11564
11575
|
if (this.currentChannelId !== e.channelId) {
|
|
11565
11576
|
let t = 2 ** 53 - 1;
|
|
@@ -11576,7 +11587,7 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11576
11587
|
this.currentChannelId || (this.currentChannelId = e);
|
|
11577
11588
|
let r = t.mediaType();
|
|
11578
11589
|
if (!r) throw Error("Fragment must have a media type");
|
|
11579
|
-
this.timestampOffset || (this.timestampOffset = t.baseMediaDecodeTime() / t.timescale() * 1e3 -
|
|
11590
|
+
this.timestampOffset || (this.timestampOffset = t.baseMediaDecodeTime() / t.timescale() * 1e3 - cx);
|
|
11580
11591
|
let i = t.mediaType() === "video" && t.startsWithKeyframe();
|
|
11581
11592
|
if (this.currentChannelId !== e) {
|
|
11582
11593
|
let t = 2 ** 53 - 1;
|
|
@@ -11684,7 +11695,7 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11684
11695
|
return;
|
|
11685
11696
|
}
|
|
11686
11697
|
if (n >= this.getEffectiveSeekToleranceMs() || n < this.currentTimeshiftToleranceMs()) return;
|
|
11687
|
-
let r = Date.now() - this.config.seek.timeoutMs * this.state.timeshiftToleranceMultiplier, i = this.timeshiftAdjustmentTimestamps.filter(
|
|
11698
|
+
let r = Date.now() - this.config.seek.timeoutMs * this.state.timeshiftToleranceMultiplier, i = this.timeshiftAdjustmentTimestamps.filter(dx(r)).length;
|
|
11688
11699
|
if (i && this.state.timeshiftToleranceMultiplier > 2) {
|
|
11689
11700
|
this.logger.debug("Too many timeshifts within sliding window", {
|
|
11690
11701
|
timeshiftCooldownThreshold: r,
|
|
@@ -11764,7 +11775,7 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11764
11775
|
if (!r && !this.isAllowedToSyncIgnoringCooldown() || r && (this.isSeeking() || !this.currentChannelId || this.isSuspended || this.playbackSource.isPaused) || (this.driftSamples.push(t), !this.isSeekCooldownExpired()) || !r && this.driftSamples.items().length < this.driftSamplesToCollect && Math.abs(t) < 2e3) return;
|
|
11765
11776
|
let i = r ? t : Nt(this.driftSamples.items());
|
|
11766
11777
|
if (!r && this.tryPlaybackRateSync(i) || !r && this.shouldSkipNormalSeek(i)) return;
|
|
11767
|
-
let a = Date.now() - this.config.seek.timeoutMs * this.state.seekToleranceMultiplier, o = this.seekAdjustmentTimestamps.filter(
|
|
11778
|
+
let a = Date.now() - this.config.seek.timeoutMs * this.state.seekToleranceMultiplier, o = this.seekAdjustmentTimestamps.filter(dx(a)).length, s = this.currentEmergencySeekToleranceMs(), c = i > 0 && i >= s;
|
|
11768
11779
|
if (o && this.state.seekToleranceMultiplier > 2 && !r && !c) {
|
|
11769
11780
|
this.logger.debug("Too many seek adjustments within sliding window", {
|
|
11770
11781
|
seekCooldownThreshold: a,
|
|
@@ -11795,11 +11806,11 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11795
11806
|
let t = n >= e - this.config.seek.keyframeSearchBeforeMs, r = n <= e + this.config.seek.keyframeSearchAfterMs;
|
|
11796
11807
|
if (t && r) return n;
|
|
11797
11808
|
}
|
|
11798
|
-
}), this.logger = t, this.emitter = e, this.playbackSource = n, this.bufferSource = r, this.usesMse = a, this.seekOvershoot =
|
|
11799
|
-
seek: R({},
|
|
11800
|
-
timeshift: R({},
|
|
11801
|
-
playbackRate: R({},
|
|
11802
|
-
backoff: R({},
|
|
11809
|
+
}), this.logger = t, this.emitter = e, this.playbackSource = n, this.bufferSource = r, this.usesMse = a, this.seekOvershoot = ux(a), this.config = {
|
|
11810
|
+
seek: R({}, fx.seek),
|
|
11811
|
+
timeshift: R({}, fx.timeshift),
|
|
11812
|
+
playbackRate: R({}, fx.playbackRate),
|
|
11813
|
+
backoff: R({}, fx.backoff)
|
|
11803
11814
|
}, this.config.timeshift.enabled = i, a || (this.config.seek.toleranceMs = 50, this.config.timeshift.toleranceMs = 20, this.config.seek.aheadToleranceMs = 40), this.state = {
|
|
11804
11815
|
seekToleranceMultiplier: 1,
|
|
11805
11816
|
timeshiftToleranceMultiplier: 1
|
|
@@ -11861,8 +11872,8 @@ var ox, sx = 5e3, cx = () => Qe() || Ye(), lx = (e) => e && cx() ? 100 : 0, ux =
|
|
|
11861
11872
|
return this.serverCurrentTime - this.playbackSource.currentTime;
|
|
11862
11873
|
}
|
|
11863
11874
|
};
|
|
11864
|
-
|
|
11865
|
-
var
|
|
11875
|
+
sx = px, p(px, "create", (e, t, n, r, i, a = !0) => new sx(e, t, n, r, i, a)), wi(), V(), z(), m(), M();
|
|
11876
|
+
var mx, hx = {
|
|
11866
11877
|
enabled: !0,
|
|
11867
11878
|
interval: 3e4,
|
|
11868
11879
|
includeErrors: !0,
|
|
@@ -11871,11 +11882,11 @@ var px, mx = {
|
|
|
11871
11882
|
maxRetries: 10,
|
|
11872
11883
|
maxErrorReports: 50,
|
|
11873
11884
|
maxEvents: 50
|
|
11874
|
-
},
|
|
11885
|
+
}, gx = (e, t) => R(R({}, t), {}, {
|
|
11875
11886
|
type: e,
|
|
11876
11887
|
timestamp: (/* @__PURE__ */ new Date()).toISOString(),
|
|
11877
11888
|
discriminator: "web"
|
|
11878
|
-
}),
|
|
11889
|
+
}), _x = class {
|
|
11879
11890
|
constructor(e, t, n, r) {
|
|
11880
11891
|
var i = this;
|
|
11881
11892
|
p(this, "logger", void 0), p(this, "timers", new Bn()), p(this, "emitter", void 0), p(this, "options", void 0), p(this, "parentContext", void 0), p(this, "unsentLines", new S(100)), p(this, "retries", 0), p(this, "errorCount", 0), p(this, "eventCount", 0), p(this, "statsCount", 0), p(this, "unload", () => {
|
|
@@ -11892,7 +11903,7 @@ var px, mx = {
|
|
|
11892
11903
|
initiator: "interval"
|
|
11893
11904
|
}, n = {}) => {
|
|
11894
11905
|
if (!this.options.includeStats) return;
|
|
11895
|
-
let r = this.parentContext.getStatistics(), i =
|
|
11906
|
+
let r = this.parentContext.getStatistics(), i = gx("stats", R(R(R({}, n), r), {}, {
|
|
11896
11907
|
isFinal: e,
|
|
11897
11908
|
initiator: t,
|
|
11898
11909
|
count: this.statsCount++
|
|
@@ -11900,7 +11911,7 @@ var px, mx = {
|
|
|
11900
11911
|
this.unsentLines.push(i);
|
|
11901
11912
|
}), p(this, "addEvent", (e) => {
|
|
11902
11913
|
if (!this.options.includeEvents || this.eventCount > this.options.maxEvents) return;
|
|
11903
|
-
let t =
|
|
11914
|
+
let t = gx("event", R(R({}, this.parentContext.getStatistics()), e));
|
|
11904
11915
|
this.eventCount++, this.unsentLines.push(t);
|
|
11905
11916
|
}), p(this, "getStatistics", () => ({ errorCount: this.errorCount })), p(this, "send", function() {
|
|
11906
11917
|
var e = j(function* (e) {
|
|
@@ -11946,13 +11957,13 @@ var px, mx = {
|
|
|
11946
11957
|
if (t && e instanceof H) {
|
|
11947
11958
|
if (this.errorCount++, this.errorCount > n) return;
|
|
11948
11959
|
let t = this.parentContext.getStatistics();
|
|
11949
|
-
this.unsentLines.push(
|
|
11960
|
+
this.unsentLines.push(gx("error", R(R({}, t), e.toStringifiable())));
|
|
11950
11961
|
}
|
|
11951
|
-
}), this.logger = e, this.emitter = t, this.options = R(R({},
|
|
11962
|
+
}), this.logger = e, this.emitter = t, this.options = R(R({}, hx), n), this.parentContext = r;
|
|
11952
11963
|
}
|
|
11953
11964
|
};
|
|
11954
|
-
|
|
11955
|
-
var
|
|
11965
|
+
mx = _x, p(_x, "create", (e, t, n, r) => new mx(e, t, n, r)), V(), m();
|
|
11966
|
+
var vx, yx = class {
|
|
11956
11967
|
constructor(e, t, n) {
|
|
11957
11968
|
p(this, "logger", void 0), p(this, "element", void 0), p(this, "documentState", void 0), p(this, "timers", new Bn()), p(this, "unload", () => {
|
|
11958
11969
|
this.timers.unload();
|
|
@@ -11963,8 +11974,8 @@ var _x, vx = class {
|
|
|
11963
11974
|
};
|
|
11964
11975
|
//#endregion
|
|
11965
11976
|
//#region ../../libs/web-sdk/src/OptionsProvider.ts
|
|
11966
|
-
|
|
11967
|
-
var
|
|
11977
|
+
vx = yx, p(yx, "create", (e, t, n) => new vx(e, t, n)), m();
|
|
11978
|
+
var bx = [
|
|
11968
11979
|
"minBufferTime",
|
|
11969
11980
|
"maxBufferTime",
|
|
11970
11981
|
"burstEnabled",
|
|
@@ -11974,10 +11985,10 @@ var yx = [
|
|
|
11974
11985
|
"offscreenCanvasEnabled",
|
|
11975
11986
|
"videoCodecs"
|
|
11976
11987
|
];
|
|
11977
|
-
function
|
|
11978
|
-
return
|
|
11988
|
+
function xx(e) {
|
|
11989
|
+
return bx.includes(e);
|
|
11979
11990
|
}
|
|
11980
|
-
var
|
|
11991
|
+
var Sx = class {
|
|
11981
11992
|
constructor(e) {
|
|
11982
11993
|
p(this, "options", void 0), p(this, "overrides", /* @__PURE__ */ new Map()), this.options = e;
|
|
11983
11994
|
}
|
|
@@ -11991,7 +12002,7 @@ var xx = class {
|
|
|
11991
12002
|
this.options[e] = t;
|
|
11992
12003
|
}
|
|
11993
12004
|
get(e, t) {
|
|
11994
|
-
if (t &&
|
|
12005
|
+
if (t && xx(e)) {
|
|
11995
12006
|
var n;
|
|
11996
12007
|
let r = (n = this.overrides.get(t)) == null ? void 0 : n[e];
|
|
11997
12008
|
if (r !== void 0) return r;
|
|
@@ -12006,7 +12017,7 @@ var xx = class {
|
|
|
12006
12017
|
//#endregion
|
|
12007
12018
|
//#region ../../libs/web-sdk/src/processSampleTimestamps.ts
|
|
12008
12019
|
z();
|
|
12009
|
-
var
|
|
12020
|
+
var Cx = 6, wx = (e) => {
|
|
12010
12021
|
let t = [e], n = 0, r = 0, i = !1, a = (e, t) => {
|
|
12011
12022
|
var i, a;
|
|
12012
12023
|
if (e.flags && zc(e.flags)) {
|
|
@@ -12018,7 +12029,7 @@ var Sx = 6, Cx = (e) => {
|
|
|
12018
12029
|
return u > 0 && (r = u), R(R({}, e), {}, { duration: u > 0 ? u : r });
|
|
12019
12030
|
};
|
|
12020
12031
|
return (e, n = !1) => {
|
|
12021
|
-
if (e.flags && zc(e.flags) && n && (i = !i), !(n && t.length <
|
|
12032
|
+
if (e.flags && zc(e.flags) && n && (i = !i), !(n && t.length < Cx && i) && t.length > 0) {
|
|
12022
12033
|
i = !1;
|
|
12023
12034
|
let n = e;
|
|
12024
12035
|
for (let e = t.length - 1; e > 0; e--) {
|
|
@@ -12031,13 +12042,13 @@ var Sx = 6, Cx = (e) => {
|
|
|
12031
12042
|
}
|
|
12032
12043
|
return t.push(e), [];
|
|
12033
12044
|
};
|
|
12034
|
-
},
|
|
12045
|
+
}, Tx = ["mse", "wasm"], Ex = (e) => e == null ? Tx : e, Dx = (e) => {
|
|
12035
12046
|
if (!e) return !1;
|
|
12036
12047
|
let t = e.headers && Object.keys(e.headers).length > 0, n = e.queryParams && Object.keys(e.queryParams).length > 0;
|
|
12037
12048
|
return !!(t || n);
|
|
12038
|
-
},
|
|
12039
|
-
if (
|
|
12040
|
-
let r =
|
|
12049
|
+
}, Ox = (e, t, n) => {
|
|
12050
|
+
if (Dx(n)) return "mse";
|
|
12051
|
+
let r = Ex(e);
|
|
12041
12052
|
for (let e of r) switch (e) {
|
|
12042
12053
|
case "mse":
|
|
12043
12054
|
if (t) return "mse";
|
|
@@ -12052,7 +12063,7 @@ var Sx = 6, Cx = (e) => {
|
|
|
12052
12063
|
//#endregion
|
|
12053
12064
|
//#region ../../libs/web-sdk/src/sampleFromMessage.ts
|
|
12054
12065
|
z();
|
|
12055
|
-
var
|
|
12066
|
+
var kx = (e, t, n) => {
|
|
12056
12067
|
if (dr(t)) return R(R({}, e), {}, {
|
|
12057
12068
|
type: "video",
|
|
12058
12069
|
codec: t.codec,
|
|
@@ -12075,8 +12086,8 @@ var Ox = (e, t, n) => {
|
|
|
12075
12086
|
});
|
|
12076
12087
|
};
|
|
12077
12088
|
wi(), z();
|
|
12078
|
-
var
|
|
12079
|
-
if (!
|
|
12089
|
+
var Ax = (e, t) => e && typeof e == "object" && t in e, jx = (e) => !(typeof e != "object" || !Ax(e, "channelId") || typeof e.channelId != "string" || !Ax(e, "url") || typeof e.url != "string" || e.channelId.length === 0 || e.url.length === 0), Mx = (e) => {
|
|
12090
|
+
if (!jx(e)) throw new H("Invalid options", {
|
|
12080
12091
|
isFatal: !0,
|
|
12081
12092
|
code: "invalid_options"
|
|
12082
12093
|
});
|
|
@@ -12085,15 +12096,15 @@ var kx = (e, t) => e && typeof e == "object" && t in e, Ax = (e) => !(typeof e !
|
|
|
12085
12096
|
let n = t;
|
|
12086
12097
|
n[e] === void 0 && delete n[e];
|
|
12087
12098
|
}), t;
|
|
12088
|
-
},
|
|
12099
|
+
}, Nx = (e) => {
|
|
12089
12100
|
if (typeof e != "object" || !e) throw Error("not an object");
|
|
12090
12101
|
if (!("video" in e)) throw Error("missing video in subscription");
|
|
12091
12102
|
if (!("audio" in e)) throw Error("missing audio in subscription");
|
|
12092
12103
|
if (!("channelId" in e)) throw Error("missing channelId");
|
|
12093
12104
|
return !0;
|
|
12094
12105
|
};
|
|
12095
|
-
Ia(), Lc(),
|
|
12096
|
-
var
|
|
12106
|
+
Ia(), Lc(), wy(), m(), M();
|
|
12107
|
+
var Px = class {
|
|
12097
12108
|
constructor(e) {
|
|
12098
12109
|
var t = this;
|
|
12099
12110
|
p(this, "cache", /* @__PURE__ */ new Map()), p(this, "inFlight", /* @__PURE__ */ new Map()), p(this, "checkVideoSupport", function() {
|
|
@@ -12124,7 +12135,7 @@ var Nx = class {
|
|
|
12124
12135
|
if (typeof AudioDecoder > "u") return !1;
|
|
12125
12136
|
let r = AudioDecoder.isConfigSupported;
|
|
12126
12137
|
if (typeof r != "function") return !0;
|
|
12127
|
-
let i = (n = e.codecString) == null ?
|
|
12138
|
+
let i = (n = e.codecString) == null ? Cy(e.codec) : n, a = `audio|${i}|${e.sampleRate}|${e.channels}`, o = e.codec === "aac" ? Fa(e.channels, e.sampleRate) : e.codec === "opus" ? Fc(e.channels, e.sampleRate) : void 0;
|
|
12128
12139
|
return t.check(a, () => r({
|
|
12129
12140
|
codec: i,
|
|
12130
12141
|
sampleRate: e.sampleRate,
|
|
@@ -12156,10 +12167,10 @@ var Nx = class {
|
|
|
12156
12167
|
}
|
|
12157
12168
|
};
|
|
12158
12169
|
wi(), V(), m(), w(), z(), M(), A(), O();
|
|
12159
|
-
var
|
|
12170
|
+
var Fx = /* @__PURE__ */ new WeakMap(), Ix = /* @__PURE__ */ new WeakMap(), Lx = /* @__PURE__ */ new WeakMap(), Rx = class e extends Ht {
|
|
12160
12171
|
constructor(t) {
|
|
12161
12172
|
var n, r;
|
|
12162
|
-
super(), n = this, p(this, "pictureInPicture", void 0), p(this, "drm", void 0), p(this, "browser", rt()), p(this, "options", void 0), p(this, "element", void 0), p(this, "playbackSource", void 0), p(this, "emitter", new Ht()), p(this, "logger", void 0), p(this, "modules", void 0), p(this, "clientIp", void 0), p(this, "sessionId", void 0), p(this, "clientId", er()), p(this, "_channels", []), p(this, "createdAt", Date.now()), p(this, "offscreenCanvasElement", void 0), p(this, "webCodecsRenditionSupport", void 0), p(this, "hasCalledConnect", !1), p(this, "latestEmittedLanguages", []), p(this, "wakeLock", void 0), p(this, "pool", new ae(e.MAX_POOL_SIZE)), p(this, "userAgentInformation", new Qn()), p(this, "encryptedMediaExtensions", void 0), C(this,
|
|
12173
|
+
super(), n = this, p(this, "pictureInPicture", void 0), p(this, "drm", void 0), p(this, "browser", rt()), p(this, "options", void 0), p(this, "element", void 0), p(this, "playbackSource", void 0), p(this, "emitter", new Ht()), p(this, "logger", void 0), p(this, "modules", void 0), p(this, "clientIp", void 0), p(this, "sessionId", void 0), p(this, "clientId", er()), p(this, "_channels", []), p(this, "createdAt", Date.now()), p(this, "offscreenCanvasElement", void 0), p(this, "webCodecsRenditionSupport", void 0), p(this, "hasCalledConnect", !1), p(this, "latestEmittedLanguages", []), p(this, "wakeLock", void 0), p(this, "pool", new ae(e.MAX_POOL_SIZE)), p(this, "userAgentInformation", new Qn()), p(this, "encryptedMediaExtensions", void 0), C(this, Fx, 0), C(this, Ix, []), p(this, "sampleProcessingSesssions", /* @__PURE__ */ new Map()), p(this, "sizes", /* @__PURE__ */ new Map()), p(this, "isSuspended", !0), p(this, "disconnectTimeout", void 0), p(this, "offscreenSubtitleInterval", void 0), C(this, Lx, void 0), p(this, "attach", (e) => {
|
|
12163
12174
|
var t;
|
|
12164
12175
|
(t = this.wakeLock) == null || t.attach(e), e.appendChild(this.element);
|
|
12165
12176
|
}), p(this, "setElement", (e) => {
|
|
@@ -12242,20 +12253,20 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12242
12253
|
}), p(this, "updateTextTracks", (e) => {
|
|
12243
12254
|
let t = e.filter((e) => e.codec === "webvtt");
|
|
12244
12255
|
t.forEach((e) => {
|
|
12245
|
-
if (!k(
|
|
12256
|
+
if (!k(Ix, this).find((t) => t.language === e.language)) {
|
|
12246
12257
|
if (this.modules.canvasModule) {
|
|
12247
12258
|
let t = this.modules.canvasModule.textTracks.addTextTrack(e.kind, e.label || e.language || "", e.language || "");
|
|
12248
|
-
k(
|
|
12259
|
+
k(Ix, this).push(t);
|
|
12249
12260
|
} else if (this.mediaElement instanceof HTMLVideoElement) {
|
|
12250
12261
|
let t = this.mediaElement.addTextTrack(e.kind, e.label || e.language, e.language);
|
|
12251
|
-
k(
|
|
12262
|
+
k(Ix, this).push(t);
|
|
12252
12263
|
}
|
|
12253
12264
|
}
|
|
12254
12265
|
});
|
|
12255
|
-
for (let e of k(
|
|
12266
|
+
for (let e of k(Ix, this)) t.find((t) => t.language === e.language) ? e.mode === "disabled" && (e.mode = "hidden") : e.mode = "disabled";
|
|
12256
12267
|
this.emit("text tracks", this.textTracks);
|
|
12257
12268
|
}), p(this, "cleanupTextTracks", (e = this.currentTime - 2e4) => {
|
|
12258
|
-
k(
|
|
12269
|
+
k(Ix, this).forEach((t) => {
|
|
12259
12270
|
if (t.cues) for (let n of t.cues) n.endTime * 1e3 < e - 2e3 && t.removeCue(n);
|
|
12260
12271
|
});
|
|
12261
12272
|
}), p(this, "filterRenditions", function() {
|
|
@@ -12389,8 +12400,8 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12389
12400
|
u = void 0, d = void 0, n.logger.warn("Failed to enable OffscreenCanvas; falling back to main thread rendering", { error: e });
|
|
12390
12401
|
}
|
|
12391
12402
|
else s && n.logger.warn("OffscreenCanvas requested but not supported; falling back to main thread rendering");
|
|
12392
|
-
let f = yield
|
|
12393
|
-
if (m instanceof
|
|
12403
|
+
let f = yield eb.create(n.emitter, n.logger.createContext("DecoderModule"), n.options.get("logLevel"), r, n.playbackSource, n.pool, a, o, u), { videoRenderer: p } = f.getStatistics(), m = n.modules.canvasModule;
|
|
12404
|
+
if (m instanceof Tb) if (p === "OffscreenCanvas" && d) {
|
|
12394
12405
|
m.setVideoRenderingEnabled(!1);
|
|
12395
12406
|
let e = n.element;
|
|
12396
12407
|
e.parentElement ? e.parentElement.replaceChild(d, e) : n.logger.warn("OffscreenCanvas rendering is active but the current element is not attached to the DOM. Updating internal element reference only."), n.offscreenCanvasElement = d, n.setElement(d);
|
|
@@ -12402,10 +12413,10 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12402
12413
|
t.parentElement && t.parentElement.replaceChild(e, t), n.setElement(e);
|
|
12403
12414
|
}
|
|
12404
12415
|
}
|
|
12405
|
-
else m instanceof
|
|
12416
|
+
else m instanceof Db && (p === "OffscreenCanvas" && d ? (m.setOffscreenCanvas(d), n.offscreenCanvasElement = d) : (m.setOffscreenCanvas(void 0), n.offscreenCanvasElement = void 0));
|
|
12406
12417
|
(e = n.modules.decoder) == null || e.unload(), n.modules.decoder = f, n.modules.decoder.load(), n.setupOffscreenSubtitleRouting();
|
|
12407
12418
|
})), p(this, "setupOffscreenSubtitleRouting", () => {
|
|
12408
|
-
if (this.offscreenSubtitleInterval !== void 0 && (clearInterval(this.offscreenSubtitleInterval), this.offscreenSubtitleInterval = void 0), !this.offscreenCanvasElement || !this.modules.decoder || this.modules.canvasModule instanceof
|
|
12419
|
+
if (this.offscreenSubtitleInterval !== void 0 && (clearInterval(this.offscreenSubtitleInterval), this.offscreenSubtitleInterval = void 0), !this.offscreenCanvasElement || !this.modules.decoder || this.modules.canvasModule instanceof Db) return;
|
|
12409
12420
|
let e = this.modules.decoder, t = this.modules.canvasModule;
|
|
12410
12421
|
if (!t) return;
|
|
12411
12422
|
let n = !1;
|
|
@@ -12444,10 +12455,10 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12444
12455
|
e && "reset" in e && e.reset();
|
|
12445
12456
|
}), this.sampleProcessingSesssions.clear(), this.playbackSource.currentTime = 0, this.playbackSource.isActivated = !1;
|
|
12446
12457
|
}), p(this, "getRuntimeInfo", () => {
|
|
12447
|
-
let e = this.modules.canvasModule instanceof
|
|
12458
|
+
let e = this.modules.canvasModule instanceof Db ? !0 : void 0;
|
|
12448
12459
|
return R({
|
|
12449
12460
|
uptime: Date.now() - this.createdAt,
|
|
12450
|
-
version: "4.3.0-
|
|
12461
|
+
version: "4.3.0-4-g99bdcb75",
|
|
12451
12462
|
clientId: this.clientId,
|
|
12452
12463
|
sessionId: this.sessionId,
|
|
12453
12464
|
channelId: this.channelId,
|
|
@@ -12481,7 +12492,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12481
12492
|
}), p(this, "timeToFirstFrame", () => {
|
|
12482
12493
|
let e = this.modules.playback.getFirstFrameTime(), t = this.modules.connection.firstConnectionTime;
|
|
12483
12494
|
if (t && e) return e - t;
|
|
12484
|
-
}), this.options = new
|
|
12495
|
+
}), this.options = new Sx(R(R({}, _r), Mx(t))), t.telemetryEnabled === void 0 && ["localhost", "127.0.0.1"].includes(location.hostname) && this.options.set("telemetryEnabled", !1);
|
|
12485
12496
|
let i = {
|
|
12486
12497
|
channelId: this.options.get("channelId"),
|
|
12487
12498
|
audio: {
|
|
@@ -12494,16 +12505,16 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12494
12505
|
height: this.options.get("maxSize").height
|
|
12495
12506
|
}
|
|
12496
12507
|
}, a = F.get();
|
|
12497
|
-
a.setLevel(this.options.get("logLevel")), a.setDebug(!1), this.logger = a, this.webCodecsRenditionSupport = new
|
|
12508
|
+
a.setLevel(this.options.get("logLevel")), a.setDebug(!1), this.logger = a, this.webCodecsRenditionSupport = new Px(a), t.iosMediaElementEnabled !== void 0 && this.logger.warn("Option iosMediaElementEnabled is deprecated and will be removed in a future release. Use streamToMediaElementEnabled instead.");
|
|
12498
12509
|
let o = (r = t.streamToMediaElementEnabled) == null ? t.iosMediaElementEnabled : r;
|
|
12499
12510
|
o !== void 0 && (this.options.set("streamToMediaElementEnabled", o), this.options.set("iosMediaElementEnabled", o));
|
|
12500
12511
|
let s = t.mseEnabled !== void 0, c = t.decoders !== void 0;
|
|
12501
12512
|
s && this.logger.warn("Option mseEnabled is deprecated and will be removed in a future release. Use decoders instead (e.g. decoders: [\"wasm\"])."), s && !c && t.mseEnabled === !1 && this.options.set("decoders", ["wasm"]);
|
|
12502
|
-
let l =
|
|
12513
|
+
let l = Jb.create(this.emitter, this.logger.createContext("PictureInPictureModule")), u = Bn.create(), d = _y.create(this.emitter, this.logger.createContext("ConnectionModule"), {
|
|
12503
12514
|
reconnectHandler: this.options.get("reconnectHandler"),
|
|
12504
12515
|
options: this.options,
|
|
12505
12516
|
onConnectInfo: this.onConnectInfo
|
|
12506
|
-
}), f =
|
|
12517
|
+
}), f = ox.create(this.logger.createContext("SubscriptionModule"), this.emitter, i), m = nx.create(this.emitter, f), h = ex.create(this.emitter, this.logger.createContext("QualityOfServiceModule"), m), g = Xb.create(this.emitter, this.logger.createContext("PlaybackModule"), this, this.options.get("minBufferTime"));
|
|
12507
12518
|
this.encryptedMediaExtensions = new Ta(this.emitter, this.logger.createContext("EncryptedMediaExtensions"), t.drm), this.drm = {
|
|
12508
12519
|
setHeaders: (e) => {
|
|
12509
12520
|
this.encryptedMediaExtensions.headers = e;
|
|
@@ -12512,7 +12523,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12512
12523
|
this.encryptedMediaExtensions.queryParams = e;
|
|
12513
12524
|
}
|
|
12514
12525
|
};
|
|
12515
|
-
let _ =
|
|
12526
|
+
let _ = nb.create(this.emitter), v = this.options.get("poster"), ee = v === !0 ? this.getThumbnailUrl() : v || void 0, y, te, ne;
|
|
12516
12527
|
if (this.willUseMediaSource()) {
|
|
12517
12528
|
let e = new rl({
|
|
12518
12529
|
type: this.options.get("media") === "audio" ? "audio" : "video",
|
|
@@ -12522,9 +12533,9 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12522
12533
|
logger: this.logger.createContext("MediaElement"),
|
|
12523
12534
|
poster: ee
|
|
12524
12535
|
});
|
|
12525
|
-
e.on("buffer state", (e) => this.onMediaElementBufferState(e, y)), e.on("needs user input", (e) => this.emitter.emit("needs user input", e)), e.on("volume state", (e) => this.emit("volume state", e)), e.on("media element state", (e) => this.onMediaElementState(e)), this.element = e.element, this.playbackSource = e, Ta.isSupported() && this.encryptedMediaExtensions.attach(e.element), y =
|
|
12536
|
+
e.on("buffer state", (e) => this.onMediaElementBufferState(e, y)), e.on("needs user input", (e) => this.emitter.emit("needs user input", e)), e.on("volume state", (e) => this.emit("volume state", e)), e.on("media element state", (e) => this.onMediaElementState(e)), this.element = e.element, this.playbackSource = e, Ta.isSupported() && this.encryptedMediaExtensions.attach(e.element), y = zb.create(this.logger.createContext("MseModule"), this.emitter, this.element), this.options.get("pauseSupportEnabled") || (te = yx.create(this.logger.createContext("UnpauseModule"), e, _)), this.options.get("pictureInPictureEnabled") && this.emitter.emit("add picture in picture listener", { element: e.element });
|
|
12526
12537
|
} else if (this.options.get("streamToMediaElementEnabled") && Dt(this.browser)) {
|
|
12527
|
-
let e =
|
|
12538
|
+
let e = Db.create(this.emitter, this.logger.createContext("ModernCanvasModule"), this.pool, this, {
|
|
12528
12539
|
type: this.options.get("media") === "audio" ? "audio" : "video",
|
|
12529
12540
|
muted: this.options.get("muted") || this.options.get("media") === "video",
|
|
12530
12541
|
volume: this.options.get("volume"),
|
|
@@ -12534,10 +12545,10 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12534
12545
|
}), t = e.element();
|
|
12535
12546
|
this.element = t.element, this.playbackSource = e, ne = e;
|
|
12536
12547
|
let n = this.browser.platform.isIOS && this.browser.platform.iosVersion <= 15;
|
|
12537
|
-
this.options.get("pictureInPictureEnabled") && !n && this.emitter.emit("add picture in picture listener", { element: this.element }), this.options.get("pauseSupportEnabled") || (te =
|
|
12548
|
+
this.options.get("pictureInPictureEnabled") && !n && this.emitter.emit("add picture in picture listener", { element: this.element }), this.options.get("pauseSupportEnabled") || (te = yx.create(this.logger.createContext("UnpauseModule"), t, _));
|
|
12538
12549
|
} else {
|
|
12539
12550
|
let e;
|
|
12540
|
-
e =
|
|
12551
|
+
e = Tb.create(this.emitter, this.logger.createContext("LegacyCanvasModule"), this.pool, this, this.options.get("muted") || this.options.get("media") === "video", this.options.get("volume"), () => {
|
|
12541
12552
|
this.setElement(e.element());
|
|
12542
12553
|
}, this.options.get("minBufferTime")), this.element = e.element(), this.playbackSource = e, ne = e, this.options.get("iosWakeLockEnabled") && (this.wakeLock = new qc());
|
|
12543
12554
|
}
|
|
@@ -12554,9 +12565,9 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12554
12565
|
let re = this.willUseMediaSource(), ie = re ? !this.browser.platform.isWebKit : !0, oe = {
|
|
12555
12566
|
getTargetBufferTime: () => g.getTargetBufferTime(),
|
|
12556
12567
|
getNextBufferedRangeStart: y ? (e) => y.getNextBufferedRangeStart(e) : void 0
|
|
12557
|
-
}, b =
|
|
12568
|
+
}, b = px.create(this.emitter, this.logger.createContext("SyncModule"), this.playbackSource, oe, ie, re), se = ub.create(this.logger.createContext("JitterModule")), x = (this.options.get("edgeUrl") || this.options.get("url")).replace("wss://", "https://").replace("ws://", "http://").replace("//lb.", "//errors."), ce = new URL("/telemetry", x).toString();
|
|
12558
12569
|
this.modules = {
|
|
12559
|
-
telemetry:
|
|
12570
|
+
telemetry: _x.create(this.logger.createContext("TelemetryModule"), this.emitter, {
|
|
12560
12571
|
url: ce,
|
|
12561
12572
|
enabled: this.options.get("telemetryEnabled"),
|
|
12562
12573
|
includeStats: !1,
|
|
@@ -12566,10 +12577,10 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12566
12577
|
maxBufferTime: this.options.get("maxBufferTime"),
|
|
12567
12578
|
minBufferTime: this.options.get("minBufferTime")
|
|
12568
12579
|
}),
|
|
12569
|
-
incomingData:
|
|
12580
|
+
incomingData: sb.create(this.emitter),
|
|
12570
12581
|
adaptivity: ml.create(this.emitter, this.logger.createContext("AdaptivityModule"), h, { cooldownTime: Math.max(this.options.get("minBufferTime"), 2e3) }),
|
|
12571
|
-
constraintCap:
|
|
12572
|
-
event:
|
|
12582
|
+
constraintCap: Sy.create(this.emitter, this.element, m, this.options.get("abrEnabled") ? this.options.get("sizeBasedResolutionCapEnabled") : !1),
|
|
12583
|
+
event: ab.create(this.emitter, this.logger.createContext("EventModule"), b),
|
|
12573
12584
|
sync: b,
|
|
12574
12585
|
jitter: se,
|
|
12575
12586
|
documentState: _,
|
|
@@ -12622,7 +12633,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12622
12633
|
let r = ((t = (n = e.telemetry) == null ? void 0 : n.probability) == null ? 1 : t) >= Math.random();
|
|
12623
12634
|
if (e.telemetry) {
|
|
12624
12635
|
var i;
|
|
12625
|
-
(i = this.modules.telemetry) == null || i.unload(), this.modules.telemetry =
|
|
12636
|
+
(i = this.modules.telemetry) == null || i.unload(), this.modules.telemetry = _x.create(this.logger.createContext("TelemetryModule"), this.emitter, R(R({}, e.telemetry), {}, { enabled: this.options.get("telemetryEnabled") && r }), this), this.modules.telemetry.load();
|
|
12626
12637
|
}
|
|
12627
12638
|
}), this.emitter.on("adapt level", (e) => {
|
|
12628
12639
|
this.logger.debug("adapt level", { direction: e });
|
|
@@ -12654,8 +12665,8 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12654
12665
|
audio: R(R({}, this.targetSubscription.audio), d == null ? void 0 : d.audio)
|
|
12655
12666
|
})), this.emitter.emit("adapted level");
|
|
12656
12667
|
}), this.emitter.on("text track data", (e) => {
|
|
12657
|
-
let t = k(
|
|
12658
|
-
if (D(
|
|
12668
|
+
let t = k(Ix, this).find((t) => t.language === e.language), n = this.modules.sync.getTimeshiftOffset() / 1e3, r = n - k(Fx, this);
|
|
12669
|
+
if (D(Fx, this, n), t) {
|
|
12659
12670
|
if (t.cues) for (let e of t.cues) e.startTime -= r, e.endTime -= r;
|
|
12660
12671
|
for (let r of e.cues) {
|
|
12661
12672
|
let e = new VTTCue(r.startTime - n, r.endTime - n, r.text);
|
|
@@ -12669,19 +12680,19 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12669
12680
|
this.clientIp = t.ip;
|
|
12670
12681
|
break;
|
|
12671
12682
|
case "renditions":
|
|
12672
|
-
this.updateTextTracks(t.renditions), D(
|
|
12683
|
+
this.updateTextTracks(t.renditions), D(Lx, this, this.filterRenditions(t.renditions).then((e) => {
|
|
12673
12684
|
this.emitter.emit("renditions", {
|
|
12674
12685
|
renditions: e,
|
|
12675
12686
|
channelId: this.currentSubscription.channelId
|
|
12676
12687
|
}), this.emit("rendition levels", this.modules.renditions.getRenditionLevels()), this.emitLanguagesIfChanged();
|
|
12677
12688
|
}).finally(() => {
|
|
12678
|
-
D(
|
|
12689
|
+
D(Lx, this, void 0);
|
|
12679
12690
|
}));
|
|
12680
12691
|
break;
|
|
12681
12692
|
case "subscription changed":
|
|
12682
12693
|
var r;
|
|
12683
12694
|
try {
|
|
12684
|
-
|
|
12695
|
+
Nx(t.subscription);
|
|
12685
12696
|
} catch (e) {
|
|
12686
12697
|
this.emitter.emit("error", new H("Subscription failed validation", {
|
|
12687
12698
|
source: e instanceof Error ? e : void 0,
|
|
@@ -12796,7 +12807,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12796
12807
|
let ue = function() {
|
|
12797
12808
|
var e = j(function* (e) {
|
|
12798
12809
|
let t = e.channelId;
|
|
12799
|
-
k(
|
|
12810
|
+
k(Lx, n) && (yield k(Lx, n));
|
|
12800
12811
|
let r = n.modules.renditions.getRendition(e.renditionId, t);
|
|
12801
12812
|
if (!Vc(e.flags)) {
|
|
12802
12813
|
if (Hc(e.flags)) {
|
|
@@ -12804,8 +12815,8 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12804
12815
|
if (e.renditionId !== 0) {
|
|
12805
12816
|
let e = Yn(t);
|
|
12806
12817
|
if (e && e.language !== void 0) {
|
|
12807
|
-
let t = new $c().parse(e.content || ""), i = r / 1e3, a = k(
|
|
12808
|
-
if (D(
|
|
12818
|
+
let t = new $c().parse(e.content || ""), i = r / 1e3, a = k(Ix, n).find((t) => t.language === e.language), o = i - k(Fx, n);
|
|
12819
|
+
if (D(Fx, n, i), a) {
|
|
12809
12820
|
if (a.cues) for (let e of a.cues) e.startTime -= o, e.endTime -= o;
|
|
12810
12821
|
for (let e of t) {
|
|
12811
12822
|
let t = new VTTCue(e.startTime - i, e.endTime - i, e.text);
|
|
@@ -12837,10 +12848,10 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12837
12848
|
mimeType: s
|
|
12838
12849
|
}), n.emit("initialized media");
|
|
12839
12850
|
} else {
|
|
12840
|
-
let t =
|
|
12851
|
+
let t = kx(e, r, n.sizes.get(e.renditionId));
|
|
12841
12852
|
n.modules.jitter.recordSample(t);
|
|
12842
12853
|
let a = n.sampleProcessingSesssions.get(i);
|
|
12843
|
-
if (!a) a =
|
|
12854
|
+
if (!a) a = wx(n.modules.sync.processSample(t)), n.sampleProcessingSesssions.set(i, a);
|
|
12844
12855
|
else {
|
|
12845
12856
|
let e = n.willUseMediaSource() && n.isSwitchingRenditionLevel && t.type === "video", r = a(n.modules.sync.processSample(t), e), i = t;
|
|
12846
12857
|
r.forEach((e) => {
|
|
@@ -12948,7 +12959,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12948
12959
|
this.modules.subscription.setLanguage(e), this.alignSizeAndBitRate(this.targetSubscription);
|
|
12949
12960
|
}
|
|
12950
12961
|
set textTrack(e) {
|
|
12951
|
-
e !== this.textTrack && (k(
|
|
12962
|
+
e !== this.textTrack && (k(Ix, this).forEach((t) => {
|
|
12952
12963
|
if (t.label === e) t.mode = "showing";
|
|
12953
12964
|
else {
|
|
12954
12965
|
if (t.mode === "showing" && t.cues) for (let e of [...t.cues]) t.removeCue(e);
|
|
@@ -12957,11 +12968,11 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
12957
12968
|
}), this.emitter.emit("text track", e));
|
|
12958
12969
|
}
|
|
12959
12970
|
get textTracks() {
|
|
12960
|
-
return k(
|
|
12971
|
+
return k(Ix, this).filter((e) => e.mode !== "disabled").map((e) => e.label);
|
|
12961
12972
|
}
|
|
12962
12973
|
get textTrack() {
|
|
12963
12974
|
var e;
|
|
12964
|
-
return (e = k(
|
|
12975
|
+
return (e = k(Ix, this).find((e) => e.mode === "showing")) == null ? void 0 : e.label;
|
|
12965
12976
|
}
|
|
12966
12977
|
get channelId() {
|
|
12967
12978
|
var e, t;
|
|
@@ -13095,7 +13106,7 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
13095
13106
|
return this.modules.subscription.getTargetSubscription();
|
|
13096
13107
|
}
|
|
13097
13108
|
resolvedDecoder(e) {
|
|
13098
|
-
return
|
|
13109
|
+
return Ox(this.options.get("decoders", e), this.browser.supportsMediaSource, this.options.get("drm"));
|
|
13099
13110
|
}
|
|
13100
13111
|
willUseMediaSource() {
|
|
13101
13112
|
return this.resolvedDecoder() === "mse";
|
|
@@ -13114,89 +13125,89 @@ var Px = /* @__PURE__ */ new WeakMap(), Fx = /* @__PURE__ */ new WeakMap(), Ix =
|
|
|
13114
13125
|
return t === void 0 ? this.shouldUseWebCodecs(e) : t;
|
|
13115
13126
|
}
|
|
13116
13127
|
};
|
|
13117
|
-
p(
|
|
13118
|
-
var
|
|
13128
|
+
p(Rx, "MAX_POOL_SIZE", 10), p(Rx, "DISCONNECT_TIMEOUT", 15 * 1e3), p(Rx, "REMOVE_CUE_THRESHOLD", 1e3 * 10);
|
|
13129
|
+
var zx = {
|
|
13119
13130
|
bar: "_bar_qm7bl_1",
|
|
13120
13131
|
hidden: "_hidden_qm7bl_47"
|
|
13121
|
-
},
|
|
13132
|
+
}, Bx = "_withThumbnails_suenn_19", Vx = {
|
|
13122
13133
|
"channel-selection-item": "_channel-selection-item_suenn_1",
|
|
13123
13134
|
"channel-selection-item-selected": "_channel-selection-item-selected_suenn_8",
|
|
13124
13135
|
"channel-selection-item-image": "_channel-selection-item-image_suenn_13",
|
|
13125
|
-
withThumbnails:
|
|
13136
|
+
withThumbnails: Bx,
|
|
13126
13137
|
"hide-on-small": "_hide-on-small_suenn_27"
|
|
13127
|
-
},
|
|
13138
|
+
}, Hx = { "icon-button": "_icon-button_5fg7v_1" }, Ux = {
|
|
13128
13139
|
viewBox: "-10 -10 44 44",
|
|
13129
13140
|
content: "<g fill=\"none\" stroke=\"white\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\" clip-rule=\"evenodd\" />\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M17 14l2-2m0 0l2-2m-2 2l-2-2m2 2l2 2\" />\n </g>"
|
|
13130
|
-
},
|
|
13141
|
+
}, Wx = {
|
|
13131
13142
|
viewBox: "-160 -160 832 832",
|
|
13132
13143
|
content: "<path fill=\"white\" d=\"M208,432H160a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,208,432Z\"/><path fill=\"white\" d=\"M352,432H304a16,16,0,0,1-16-16V96a16,16,0,0,1,16-16h48a16,16,0,0,1,16,16V416A16,16,0,0,1,352,432Z\"/>"
|
|
13133
|
-
},
|
|
13144
|
+
}, Gx = {
|
|
13134
13145
|
viewBox: "-6 -6 36 36",
|
|
13135
13146
|
content: "<path d=\"M7 17.259V6.74104C7 5.96925 7.83721 5.48837 8.50387 5.87726L18.2596 11.5681C18.5904 11.761 18.5904 12.2389 18.2596 12.4319L8.50387 18.1227C7.83721 18.5116 7 18.0308 7 17.259Z\" fill=\"none\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>"
|
|
13136
|
-
},
|
|
13147
|
+
}, Kx = {
|
|
13137
13148
|
viewBox: "-10 -10 44 44",
|
|
13138
13149
|
content: "<g fill=\"none\" stroke=\"white\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z\" />\n </svg>"
|
|
13139
|
-
},
|
|
13150
|
+
}, qx = {
|
|
13140
13151
|
viewBox: "-10 -10 44 44",
|
|
13141
13152
|
content: "\n <path stroke=\"white\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />"
|
|
13142
|
-
},
|
|
13153
|
+
}, Jx = {
|
|
13143
13154
|
viewBox: "-12 -12 38 38",
|
|
13144
13155
|
content: "<g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-5.000000, -5.000000)\">\n <path d=\"M6,14 C5.45,14 5,14.45 5,15 L5,18 C5,18.55 5.45,19 6,19 L9,19 C9.55,19 10,18.55 10,18 C10,17.45 9.55,17 9,17 L7,17 L7,15 C7,14.45 6.55,14 6,14 Z M6,10 C6.55,10 7,9.55 7,9 L7,7 L9,7 C9.55,7 10,6.55 10,6 C10,5.45 9.55,5 9,5 L6,5 C5.45,5 5,5.45 5,6 L5,9 C5,9.55 5.45,10 6,10 Z M17,17 L15,17 C14.45,17 14,17.45 14,18 C14,18.55 14.45,19 15,19 L18,19 C18.55,19 19,18.55 19,18 L19,15 C19,14.45 18.55,14 18,14 C17.45,14 17,14.45 17,15 L17,17 Z M14,6 C14,6.55 14.45,7 15,7 L17,7 L17,9 C17,9.55 17.45,10 18,10 C18.55,10 19,9.55 19,9 L19,6 C19,5.45 18.55,5 18,5 L15,5 C14.45,5 14,5.45 14,6 Z\" fill=\"white\"></path>\n</g>"
|
|
13145
|
-
},
|
|
13156
|
+
}, Yx = {
|
|
13146
13157
|
viewBox: "-12 -12 38 38",
|
|
13147
13158
|
content: "<g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(-5.000000, -5.000000)\">\n <path d=\"M6,16 L8,16 L8,18 C8,18.55 8.45,19 9,19 C9.55,19 10,18.55 10,18 L10,15 C10,14.45 9.55,14 9,14 L6,14 C5.45,14 5,14.45 5,15 C5,15.55 5.45,16 6,16 Z M8,8 L6,8 C5.45,8 5,8.45 5,9 C5,9.55 5.45,10 6,10 L9,10 C9.55,10 10,9.55 10,9 L10,6 C10,5.45 9.55,5 9,5 C8.45,5 8,5.45 8,6 L8,8 Z M15,19 C15.55,19 16,18.55 16,18 L16,16 L18,16 C18.55,16 19,15.55 19,15 C19,14.45 18.55,14 18,14 L15,14 C14.45,14 14,14.45 14,15 L14,18 C14,18.55 14.45,19 15,19 Z M16,8 L16,6 C16,5.45 15.55,5 15,5 C14.45,5 14,5.45 14,6 L14,9 C14,9.55 14.45,10 15,10 L18,10 C18.55,10 19,9.55 19,9 C19,8.45 18.55,8 18,8 L16,8 Z\" fill=\"white\"></path>\n</g>"
|
|
13148
|
-
},
|
|
13159
|
+
}, Xx = {
|
|
13149
13160
|
viewBox: "-10 -10 44 44",
|
|
13150
13161
|
content: "<path fill=\"white\" d=\"M19 7h-8v6h8V7zm2-4H3c-1.1 0-2 .9-2 2v14c0 1.1.9 1.98 2 1.98h18c1.1 0 2-.88 2-1.98V5c0-1.1-.9-2-2-2zm0 16.01H3V4.98h18v14.03z\"/>"
|
|
13151
|
-
},
|
|
13162
|
+
}, Zx = {
|
|
13152
13163
|
viewBox: "-10 -10 45 45",
|
|
13153
13164
|
content: "<path fill=\"white\" d=\"M20 8H4V6h16v2zm-2-6H6v2h12V2zm4 10v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h16c1.1 0 2 .9 2 2zm-6 4l-6-3.27v6.53L16 16z\"/>"
|
|
13154
|
-
},
|
|
13165
|
+
}, Qx = {
|
|
13155
13166
|
viewBox: "-8 -8 40 40",
|
|
13156
13167
|
content: "<path fill=\"white\" d=\"M19 4H5c-1.11 0-2 .9-2 2v12c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm-8 11H9.5v-2h-2v2H6V9h1.5v2.5h2V9H11v6zm7-1c0 .55-.45 1-1 1h-.75v1.5h-1.5V15H14c-.55 0-1-.45-1-1v-4c0-.55.45-1 1-1h3c.55 0 1 .45 1 1v4zm-3.5-.5h2v-3h-2v3z\"/>"
|
|
13157
|
-
},
|
|
13168
|
+
}, $x = {
|
|
13158
13169
|
viewBox: "-8 -8 40 40",
|
|
13159
13170
|
content: "<path fill=\"white\" d=\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6z\"/>"
|
|
13160
|
-
},
|
|
13171
|
+
}, eS = {
|
|
13161
13172
|
viewBox: "-8 -8 40 40",
|
|
13162
13173
|
content: "<path fill=\"white\" d=\"M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zM4 12h4v2H4v-2zm10 6H4v-2h10v2zm6 0h-4v-2h4v2zm0-4H10v-2h10v2z\"></path>"
|
|
13163
|
-
},
|
|
13174
|
+
}, tS = {
|
|
13164
13175
|
viewBox: "-8 -8 40 40",
|
|
13165
13176
|
content: "<path fill=\"white\" d=\"M12.8 13.4c-.1-.1-.1-.2-.2-.2c-.5-.3-1.1-.2-1.5.2l-4 6c0 .2-.1.4-.1.6c0 .6.4 1 1 1h8c.2 0 .4-.1.6-.2c.5-.3.6-.9.3-1.4zM19 3H5C3.3 3 2 4.3 2 6v9c0 1.7 1.3 3 3 3h.8c.6 0 1-.4 1-1s-.4-1-1-1H5c-.6 0-1-.4-1-1V6c0-.6.4-1 1-1h14c.6 0 1 .4 1 1v9c0 .6-.4 1-1 1h-.8c-.6 0-1 .4-1 1s.4 1 1 1h.8c1.7 0 3-1.3 3-3V6c0-1.7-1.3-3-3-3\"/>"
|
|
13166
13177
|
};
|
|
13167
13178
|
//#endregion
|
|
13168
13179
|
//#region ../../libs/player/src/IconButton.ts
|
|
13169
13180
|
m();
|
|
13170
|
-
var
|
|
13171
|
-
enter:
|
|
13172
|
-
exit:
|
|
13173
|
-
pip:
|
|
13174
|
-
channels:
|
|
13175
|
-
languages:
|
|
13176
|
-
textTracks:
|
|
13177
|
-
levels:
|
|
13178
|
-
oneToOne:
|
|
13179
|
-
mute:
|
|
13180
|
-
unmute:
|
|
13181
|
-
pause:
|
|
13182
|
-
play:
|
|
13183
|
-
airPlay:
|
|
13184
|
-
},
|
|
13181
|
+
var nS, rS = {
|
|
13182
|
+
enter: Jx,
|
|
13183
|
+
exit: Yx,
|
|
13184
|
+
pip: Xx,
|
|
13185
|
+
channels: Zx,
|
|
13186
|
+
languages: $x,
|
|
13187
|
+
textTracks: eS,
|
|
13188
|
+
levels: Qx,
|
|
13189
|
+
oneToOne: qx,
|
|
13190
|
+
mute: Ux,
|
|
13191
|
+
unmute: Kx,
|
|
13192
|
+
pause: Wx,
|
|
13193
|
+
play: Gx,
|
|
13194
|
+
airPlay: tS
|
|
13195
|
+
}, iS = (nS = Hx["icon-button"]) == null ? "" : nS, aS = class extends h {
|
|
13185
13196
|
constructor(e, t, n) {
|
|
13186
13197
|
super(document.createElement("div")), p(this, "iconElement", void 0), p(this, "setIcon", (e) => {
|
|
13187
|
-
this.iconElement.setAttribute("viewBox",
|
|
13188
|
-
}), p(this, "isHidden", () => this.element.style.display === "none"), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "show", () => void (this.element.style.display = "block")), p(this, "hide", () => void (this.element.style.display = "none")), this.element.style.cursor = "pointer", this.element.setAttribute("role", "button"), this.element.setAttribute("aria-label", e), this.iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"), this.iconElement.setAttribute("width", "40px"), this.iconElement.setAttribute("height", "40px"), this.iconElement.setAttribute("class",
|
|
13198
|
+
this.iconElement.setAttribute("viewBox", rS[e].viewBox), this.iconElement.innerHTML = rS[e].content;
|
|
13199
|
+
}), p(this, "isHidden", () => this.element.style.display === "none"), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "show", () => void (this.element.style.display = "block")), p(this, "hide", () => void (this.element.style.display = "none")), this.element.style.cursor = "pointer", this.element.setAttribute("role", "button"), this.element.setAttribute("aria-label", e), this.iconElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"), this.iconElement.setAttribute("width", "40px"), this.iconElement.setAttribute("height", "40px"), this.iconElement.setAttribute("class", iS), this.setIcon(t), this.element.addEventListener("click", n), this.element.appendChild(this.iconElement);
|
|
13189
13200
|
}
|
|
13190
|
-
},
|
|
13191
|
-
list:
|
|
13201
|
+
}, oS = "_list_1vkum_1", sS = "_hidden_1vkum_20", cS = {
|
|
13202
|
+
list: oS,
|
|
13192
13203
|
"list-item": "_list-item_1vkum_12",
|
|
13193
13204
|
"list-item-disabled": "_list-item-disabled_1vkum_16",
|
|
13194
|
-
hidden:
|
|
13205
|
+
hidden: sS
|
|
13195
13206
|
};
|
|
13196
13207
|
//#endregion
|
|
13197
13208
|
//#region ../../libs/player/src/List.ts
|
|
13198
13209
|
m();
|
|
13199
|
-
var
|
|
13210
|
+
var lS, uS, dS, fS, pS = (lS = cS.hidden) == null ? "" : lS, mS = (uS = cS.list) == null ? "" : uS, hS = (dS = cS["list-item"]) == null ? "" : dS, gS = (fS = cS["list-item-disabled"]) == null ? "" : fS, _S = class extends h {
|
|
13200
13211
|
constructor({ items: e, onItemClick: t, classNames: n = [], maxHeight: r }) {
|
|
13201
13212
|
super(document.createElement("div")), p(this, "onItemClick", void 0), p(this, "updateItems", (e) => {
|
|
13202
13213
|
for (; this.element.firstChild;) {
|
|
@@ -13205,11 +13216,11 @@ var cS, lS, uS, dS, fS = (cS = sS.hidden) == null ? "" : cS, pS = (lS = sS.list)
|
|
|
13205
13216
|
}
|
|
13206
13217
|
e.forEach((e) => {
|
|
13207
13218
|
let t = document.createElement("div");
|
|
13208
|
-
e.disabled || t.addEventListener("click", () => this.onItemClick(e)), t.className = [
|
|
13219
|
+
e.disabled || t.addEventListener("click", () => this.onItemClick(e)), t.className = [hS, e.disabled ? gS : ""].join(" "), t.appendChild(e.element()), this.element.appendChild(t);
|
|
13209
13220
|
});
|
|
13210
|
-
}), p(this, "hide", () => this.element.classList.add(
|
|
13221
|
+
}), p(this, "hide", () => this.element.classList.add(pS)), p(this, "show", () => this.element.classList.remove(pS)), this.element.className = [mS, ...n].join(" "), this.onItemClick = t, this.updateItems(e), r && (this.element.style.maxHeight = r);
|
|
13211
13222
|
}
|
|
13212
|
-
},
|
|
13223
|
+
}, vS = {
|
|
13213
13224
|
container: "_container_13xnz_1",
|
|
13214
13225
|
hidden: "_hidden_13xnz_6",
|
|
13215
13226
|
list: "_list_13xnz_10"
|
|
@@ -13217,7 +13228,7 @@ var cS, lS, uS, dS, fS = (cS = sS.hidden) == null ? "" : cS, pS = (lS = sS.list)
|
|
|
13217
13228
|
//#endregion
|
|
13218
13229
|
//#region ../../libs/player/src/ToggleListButton.ts
|
|
13219
13230
|
m();
|
|
13220
|
-
var
|
|
13231
|
+
var yS, bS, xS, SS = (yS = vS.list) == null ? "" : yS, CS = (bS = vS.hidden) == null ? "" : bS, wS = (xS = vS.container) == null ? "" : xS, TS = class extends h {
|
|
13221
13232
|
constructor({ label: e, items: t, onItemClick: n, iconButtonType: r, onToggle: i }) {
|
|
13222
13233
|
super(document.createElement("div")), p(this, "iconButton", void 0), p(this, "onItemClick", void 0), p(this, "onToggle", void 0), p(this, "maxHeight", void 0), p(this, "items", void 0), p(this, "list", void 0), p(this, "onButtonClick", () => {
|
|
13223
13234
|
this.toggleShowChannels(), this.onToggle(this);
|
|
@@ -13226,10 +13237,10 @@ var vS, yS, bS, xS = (vS = _S.list) == null ? "" : vS, SS = (yS = _S.hidden) ==
|
|
|
13226
13237
|
}), p(this, "handleItemClick", (e) => {
|
|
13227
13238
|
this.toggleShowChannels(), this.onItemClick(e);
|
|
13228
13239
|
}), p(this, "showList", () => {
|
|
13229
|
-
this.list = new
|
|
13240
|
+
this.list = new _S({
|
|
13230
13241
|
items: this.items,
|
|
13231
13242
|
onItemClick: this.handleItemClick,
|
|
13232
|
-
classNames: [
|
|
13243
|
+
classNames: [SS],
|
|
13233
13244
|
maxHeight: this.maxHeight
|
|
13234
13245
|
}), this.list.attach(this.element);
|
|
13235
13246
|
}), p(this, "hideList", () => {
|
|
@@ -13239,16 +13250,16 @@ var vS, yS, bS, xS = (vS = _S.list) == null ? "" : vS, SS = (yS = _S.hidden) ==
|
|
|
13239
13250
|
var t;
|
|
13240
13251
|
this.items = e, (t = this.list) == null || t.updateItems(e);
|
|
13241
13252
|
}), p(this, "isListVisible", () => this.list !== void 0), p(this, "hide", () => {
|
|
13242
|
-
|
|
13253
|
+
CS && this.element.classList.add(CS);
|
|
13243
13254
|
}), p(this, "show", () => {
|
|
13244
|
-
|
|
13245
|
-
}), this.element.className =
|
|
13255
|
+
CS && this.element.classList.remove(CS);
|
|
13256
|
+
}), this.element.className = wS, this.onItemClick = n, this.onToggle = i, this.items = t, this.iconButton = new aS(e, r, this.onButtonClick), this.iconButton.attach(this.element);
|
|
13246
13257
|
}
|
|
13247
13258
|
};
|
|
13248
13259
|
//#endregion
|
|
13249
13260
|
//#region ../../libs/player/src/ChannelSelectionButton.ts
|
|
13250
13261
|
V();
|
|
13251
|
-
var
|
|
13262
|
+
var ES, DS, OS, kS, AS, jS = (ES = Vx["hide-on-small"]) == null ? "" : ES, MS = (DS = Vx["channel-selection-item"]) == null ? "" : DS, NS = (OS = Vx["channel-selection-item-selected"]) == null ? "" : OS, PS = (kS = Vx["channel-selection-item-image"]) == null ? "" : kS, FS = (AS = Vx.withThumbnails) == null ? "" : AS, IS = class extends TS {
|
|
13252
13263
|
constructor({ vindral: e, enabled: t, thumbnailsEnabled: n, thumbnailModule: r }) {
|
|
13253
13264
|
e.on("channels", () => {
|
|
13254
13265
|
let i = e.channels.map((t) => ({
|
|
@@ -13256,12 +13267,12 @@ var TS, ES, DS, OS, kS, AS = (TS = Bx["hide-on-small"]) == null ? "" : TS, jS =
|
|
|
13256
13267
|
disabled: !t.isLive,
|
|
13257
13268
|
element: () => {
|
|
13258
13269
|
let i = document.createElement("div");
|
|
13259
|
-
if (i.className = [
|
|
13260
|
-
i.classList.add(
|
|
13270
|
+
if (i.className = [MS, t.channelId === e.channelId ? NS : ""].join(" "), r && n) {
|
|
13271
|
+
i.classList.add(FS);
|
|
13261
13272
|
let e = document.createElement("p");
|
|
13262
13273
|
e.innerHTML = t.name, i.appendChild(e);
|
|
13263
13274
|
let n = r.getImageUrl(t), a = document.createElement("img");
|
|
13264
|
-
n && (a.className =
|
|
13275
|
+
n && (a.className = PS, a.src = n, i.style.backgroundImage = `url(${n})`);
|
|
13265
13276
|
} else i.innerHTML = t.name;
|
|
13266
13277
|
return i;
|
|
13267
13278
|
}
|
|
@@ -13273,16 +13284,16 @@ var TS, ES, DS, OS, kS, AS = (TS = Bx["hide-on-small"]) == null ? "" : TS, jS =
|
|
|
13273
13284
|
onItemClick: (t) => e.channelId = t.channel.channelId,
|
|
13274
13285
|
onToggle: b,
|
|
13275
13286
|
iconButtonType: "channels"
|
|
13276
|
-
}), this.element.classList.add(
|
|
13287
|
+
}), this.element.classList.add(jS), this.hide();
|
|
13277
13288
|
}
|
|
13278
|
-
},
|
|
13289
|
+
}, LS = {
|
|
13279
13290
|
"language-button-item": "_language-button-item_1dov5_1",
|
|
13280
13291
|
"language-button-item-selected": "_language-button-item-selected_1dov5_6"
|
|
13281
13292
|
};
|
|
13282
13293
|
//#endregion
|
|
13283
13294
|
//#region ../../libs/player/src/LanguageButton.ts
|
|
13284
13295
|
V();
|
|
13285
|
-
var
|
|
13296
|
+
var RS, zS, BS = (RS = LS["language-button-item"]) == null ? "" : RS, VS = (zS = LS["language-button-item-selected"]) == null ? "" : zS, HS = class extends TS {
|
|
13286
13297
|
constructor({ vindral: e }) {
|
|
13287
13298
|
e.on("languages", () => {
|
|
13288
13299
|
let t = e.languages.map((t) => ({
|
|
@@ -13290,7 +13301,7 @@ var LS, RS, zS = (LS = IS["language-button-item"]) == null ? "" : LS, BS = (RS =
|
|
|
13290
13301
|
disabled: !1,
|
|
13291
13302
|
element: () => {
|
|
13292
13303
|
let n = document.createElement("div");
|
|
13293
|
-
return n.className = [
|
|
13304
|
+
return n.className = [BS, t === e.language ? VS : ""].join(" "), n.innerHTML = t, n;
|
|
13294
13305
|
}
|
|
13295
13306
|
}));
|
|
13296
13307
|
this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t), t.length > 0 ? this.show() : this.hide();
|
|
@@ -13306,25 +13317,25 @@ var LS, RS, zS = (LS = IS["language-button-item"]) == null ? "" : LS, BS = (RS =
|
|
|
13306
13317
|
//#endregion
|
|
13307
13318
|
//#region ../../libs/player/src/PlayControls.ts
|
|
13308
13319
|
m();
|
|
13309
|
-
var
|
|
13320
|
+
var US = class extends h {
|
|
13310
13321
|
constructor({ vindral: e }) {
|
|
13311
13322
|
super(document.createElement("div")), p(this, "vindral", void 0), p(this, "playButton", void 0), p(this, "updateState", () => {
|
|
13312
13323
|
this.playButton.setIcon(this.playIcon());
|
|
13313
13324
|
}), p(this, "onPlayClick", () => {
|
|
13314
13325
|
this.vindral.playbackState === "paused" ? this.vindral.play() : this.vindral.pause(), this.playButton.setIcon(this.playIcon());
|
|
13315
|
-
}), p(this, "playIcon", () => this.vindral.playbackState === "paused" ? "play" : "pause"), this.element.style.cursor = "pointer", this.vindral = e, this.playButton = new
|
|
13326
|
+
}), p(this, "playIcon", () => this.vindral.playbackState === "paused" ? "play" : "pause"), this.element.style.cursor = "pointer", this.vindral = e, this.playButton = new aS("Play", this.playIcon(), this.onPlayClick), this.playButton.attach(this.element);
|
|
13316
13327
|
}
|
|
13317
|
-
},
|
|
13318
|
-
item:
|
|
13328
|
+
}, WS = "_item_5vhyo_1", GS = "_title_5vhyo_10", KS = {
|
|
13329
|
+
item: WS,
|
|
13319
13330
|
"item-selected": "_item-selected_5vhyo_6",
|
|
13320
|
-
title:
|
|
13331
|
+
title: GS,
|
|
13321
13332
|
"sub-title": "_sub-title_5vhyo_14",
|
|
13322
13333
|
"hide-on-small": "_hide-on-small_5vhyo_21"
|
|
13323
13334
|
};
|
|
13324
13335
|
//#endregion
|
|
13325
13336
|
//#region ../../libs/player/src/RenditionLevelButton.ts
|
|
13326
13337
|
V();
|
|
13327
|
-
var
|
|
13338
|
+
var qS, JS, YS, XS, ZS, QS = (qS = KS["hide-on-small"]) == null ? "" : qS, $S = (JS = KS.item) == null ? "" : JS, eC = (YS = KS["item-selected"]) == null ? "" : YS, tC = (XS = KS.title) == null ? "" : XS, nC = (ZS = KS["sub-title"]) == null ? "" : ZS, rC = class extends TS {
|
|
13328
13339
|
constructor({ vindral: e }) {
|
|
13329
13340
|
let t = () => {
|
|
13330
13341
|
let t = e.renditionLevels.map((t) => ({
|
|
@@ -13333,13 +13344,13 @@ var KS, qS, JS, YS, XS, ZS = (KS = GS["hide-on-small"]) == null ? "" : KS, QS =
|
|
|
13333
13344
|
element: () => {
|
|
13334
13345
|
var n, r, i;
|
|
13335
13346
|
let a = document.createElement("div");
|
|
13336
|
-
a.className = [
|
|
13347
|
+
a.className = [$S, t === e.currentRenditionLevel ? eC : ""].join(" ");
|
|
13337
13348
|
let o = document.createElement("span"), s = document.createElement("span"), { audio: c, video: l } = t, u = l ? Xt(l) : void 0, d = c ? Zt(c.sampleRate) : void 0, f = Yt(((n = l == null ? void 0 : l.bitRate) == null ? 0 : n) + ((r = c == null ? void 0 : c.bitRate) == null ? 0 : r));
|
|
13338
13349
|
if (l) {
|
|
13339
13350
|
let e = l.frameRate[0] / l.frameRate[1], t = l.frameRate[0] % l.frameRate[1] === 0 ? `${e}p` : `${e.toFixed(2)}p`;
|
|
13340
13351
|
f += `, ${t}`;
|
|
13341
13352
|
}
|
|
13342
|
-
return o.innerHTML = (i = u == null ? d : u) == null ? "" : i, o.className =
|
|
13353
|
+
return o.innerHTML = (i = u == null ? d : u) == null ? "" : i, o.className = tC, s.innerHTML = f, s.className = nC, a.appendChild(o), a.appendChild(s), a;
|
|
13343
13354
|
}
|
|
13344
13355
|
}));
|
|
13345
13356
|
this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t);
|
|
@@ -13352,20 +13363,20 @@ var KS, qS, JS, YS, XS, ZS = (KS = GS["hide-on-small"]) == null ? "" : KS, QS =
|
|
|
13352
13363
|
},
|
|
13353
13364
|
onToggle: b,
|
|
13354
13365
|
iconButtonType: "levels"
|
|
13355
|
-
}), this.element.classList.add(
|
|
13366
|
+
}), this.element.classList.add(QS);
|
|
13356
13367
|
}
|
|
13357
|
-
},
|
|
13368
|
+
}, iC = class extends h {
|
|
13358
13369
|
constructor() {
|
|
13359
13370
|
super(document.createElement("div")), this.element.style.flexGrow = "1";
|
|
13360
13371
|
}
|
|
13361
|
-
},
|
|
13372
|
+
}, aC = {
|
|
13362
13373
|
"text-track-button-item": "_text-track-button-item_1ry10_1",
|
|
13363
13374
|
"text-track-button-item-selected": "_text-track-button-item-selected_1ry10_6"
|
|
13364
13375
|
};
|
|
13365
13376
|
//#endregion
|
|
13366
13377
|
//#region ../../libs/player/src/TextTrackButton.ts
|
|
13367
13378
|
V();
|
|
13368
|
-
var
|
|
13379
|
+
var oC, sC, cC = (oC = aC["text-track-button-item"]) == null ? "" : oC, lC = (sC = aC["text-track-button-item-selected"]) == null ? "" : sC, uC = class extends TS {
|
|
13369
13380
|
constructor({ vindral: e }) {
|
|
13370
13381
|
e.on("text tracks", () => {
|
|
13371
13382
|
let t = e.textTracks.map((t) => ({
|
|
@@ -13373,7 +13384,7 @@ var aC, oC, sC = (aC = iC["text-track-button-item"]) == null ? "" : aC, cC = (oC
|
|
|
13373
13384
|
disabled: !1,
|
|
13374
13385
|
element: () => {
|
|
13375
13386
|
let n = document.createElement("div");
|
|
13376
|
-
return n.className = [
|
|
13387
|
+
return n.className = [cC, t === e.textTrack ? lC : ""].join(" "), n.innerHTML = t, n;
|
|
13377
13388
|
}
|
|
13378
13389
|
}));
|
|
13379
13390
|
t.length > 0 ? (t.push({
|
|
@@ -13381,7 +13392,7 @@ var aC, oC, sC = (aC = iC["text-track-button-item"]) == null ? "" : aC, cC = (oC
|
|
|
13381
13392
|
disabled: !1,
|
|
13382
13393
|
element: () => {
|
|
13383
13394
|
let t = document.createElement("div");
|
|
13384
|
-
return t.className = [
|
|
13395
|
+
return t.className = [cC, e.textTrack === void 0 ? lC : ""].join(" "), t.innerHTML = "Off", t;
|
|
13385
13396
|
}
|
|
13386
13397
|
}), this.show()) : this.hide(), this.maxHeight = `calc(${Math.max(110, e.mediaElement.clientHeight)}px - 46px)`, this.updateItems(t);
|
|
13387
13398
|
}), super({
|
|
@@ -13396,26 +13407,26 @@ var aC, oC, sC = (aC = iC["text-track-button-item"]) == null ? "" : aC, cC = (oC
|
|
|
13396
13407
|
//#endregion
|
|
13397
13408
|
//#region ../../libs/player/src/VolumeControls.ts
|
|
13398
13409
|
m();
|
|
13399
|
-
var
|
|
13410
|
+
var dC = class extends h {
|
|
13400
13411
|
constructor({ vindral: e }) {
|
|
13401
13412
|
super(document.createElement("div")), p(this, "vindral", void 0), p(this, "muteButton", void 0), p(this, "updateState", () => {
|
|
13402
13413
|
this.muteButton.setIcon(this.muteIcon());
|
|
13403
13414
|
}), p(this, "onMuteClick", () => {
|
|
13404
13415
|
this.vindral.muted = !this.vindral.muted, this.muteButton.setIcon(this.muteIcon());
|
|
13405
|
-
}), p(this, "muteIcon", () => this.vindral.muted ? "mute" : "unmute"), this.element.style.cursor = "pointer", this.vindral = e, this.muteButton = new
|
|
13416
|
+
}), p(this, "muteIcon", () => this.vindral.muted ? "mute" : "unmute"), this.element.style.cursor = "pointer", this.vindral = e, this.muteButton = new aS("Mute", this.muteIcon(), this.onMuteClick), this.muteButton.attach(this.element);
|
|
13406
13417
|
}
|
|
13407
13418
|
};
|
|
13408
13419
|
//#endregion
|
|
13409
13420
|
//#region ../../libs/player/src/Bar.ts
|
|
13410
13421
|
m();
|
|
13411
|
-
var
|
|
13422
|
+
var fC, pC, mC = (fC = zx.hidden) == null ? "" : fC, hC = (pC = zx.bar) == null ? "" : pC, gC = class extends h {
|
|
13412
13423
|
constructor({ vindral: e, onFullscreenClicked: t, onOneToOneClicked: n, onPipClicked: r, onAirPlayClicked: i, pauseButtonEnabled: a, fullscreenButtonEnabled: o, pipButtonEnabled: s, channelSelectionEnabled: c, channelSelectionThumbnails: l, renditionLevelsEnabled: u, languagesButtonEnabled: d, textTracksButtonEnabled: f, oneToOneButtonEnabled: m, thumbnailModule: h }) {
|
|
13413
13424
|
super(document.createElement("div")), p(this, "items", []), p(this, "isMouseInElement", !1), p(this, "volumeControls", void 0), p(this, "playControls", void 0), p(this, "oneToOneButton", void 0), p(this, "fullscreenButton", void 0), p(this, "airPlayButton", void 0), p(this, "containerElement", void 0), p(this, "hideLists", () => {
|
|
13414
13425
|
this.items.forEach((e) => "hideList" in e && e.hideList());
|
|
13415
|
-
}), p(this, "listButtons", () => this.items), p(this, "isAnyListOpen", () => this.items.filter((e) => "isListVisible" in e && e.isListVisible()).length > 0), p(this, "hasFocus", () => this.isMouseInElement || this.isAnyListOpen()), p(this, "isHidden", () => this.element.classList.contains(
|
|
13416
|
-
this.containerElement.style.setProperty("--vindral-control-bar-offset", "0px"), this.element.classList.add(
|
|
13426
|
+
}), p(this, "listButtons", () => this.items), p(this, "isAnyListOpen", () => this.items.filter((e) => "isListVisible" in e && e.isListVisible()).length > 0), p(this, "hasFocus", () => this.isMouseInElement || this.isAnyListOpen()), p(this, "isHidden", () => this.element.classList.contains(mC)), p(this, "hide", () => {
|
|
13427
|
+
this.containerElement.style.setProperty("--vindral-control-bar-offset", "0px"), this.element.classList.add(mC);
|
|
13417
13428
|
}), p(this, "show", () => {
|
|
13418
|
-
this.containerElement.style.setProperty("--vindral-control-bar-offset", "-96px"), this.element.classList.remove(
|
|
13429
|
+
this.containerElement.style.setProperty("--vindral-control-bar-offset", "-96px"), this.element.classList.remove(mC);
|
|
13419
13430
|
}), p(this, "addCastButton", () => {
|
|
13420
13431
|
let e = document.createElement("google-cast-launcher");
|
|
13421
13432
|
this.element.insertBefore(e, this.element.lastChild);
|
|
@@ -13425,65 +13436,65 @@ var dC, fC, pC = (dC = Rx.hidden) == null ? "" : dC, mC = (fC = Rx.bar) == null
|
|
|
13425
13436
|
this.playControls.updateState(), this.volumeControls.updateState();
|
|
13426
13437
|
}), p(this, "onToggle", (e) => {
|
|
13427
13438
|
this.listButtons().filter((t) => e !== t).forEach((e) => "hideList" in e && e.hideList());
|
|
13428
|
-
}), this.element.className = [
|
|
13429
|
-
let g = new
|
|
13430
|
-
this.oneToOneButton = new
|
|
13431
|
-
let _ = new
|
|
13439
|
+
}), this.element.className = [hC, mC].join(" ");
|
|
13440
|
+
let g = new iC();
|
|
13441
|
+
this.oneToOneButton = new aS("One to One", "oneToOne", n), this.fullscreenButton = new aS("Fullscreen", "enter", t), this.airPlayButton = new aS("AirPlay", "airPlay", i);
|
|
13442
|
+
let _ = new aS("Picture in Picture", "pip", r), v = new IS({
|
|
13432
13443
|
vindral: e,
|
|
13433
13444
|
enabled: c,
|
|
13434
13445
|
thumbnailsEnabled: l,
|
|
13435
13446
|
thumbnailModule: l ? h : void 0
|
|
13436
|
-
}), ee = new
|
|
13437
|
-
this.volumeControls = new
|
|
13447
|
+
}), ee = new rC({ vindral: e });
|
|
13448
|
+
this.volumeControls = new dC({ vindral: e }), this.playControls = new US({ vindral: e }), this.containerElement = e.mediaElement, a && e.getOptions().pauseSupportEnabled && this.playControls.attach(this.element), e.getOptions().media !== "video" && this.volumeControls.attach(this.element), g.attach(this.element);
|
|
13438
13449
|
let y = [];
|
|
13439
13450
|
if (d) {
|
|
13440
|
-
let t = new
|
|
13451
|
+
let t = new HS({ vindral: e });
|
|
13441
13452
|
t.attach(this.element), y.push(t);
|
|
13442
13453
|
}
|
|
13443
13454
|
if (f) {
|
|
13444
|
-
let t = new
|
|
13455
|
+
let t = new uC({ vindral: e });
|
|
13445
13456
|
t.attach(this.element), y.push(t);
|
|
13446
13457
|
}
|
|
13447
13458
|
ee.attach(this.element), v.attach(this.element), _.attach(this.element), this.oneToOneButton.attach(this.element), this.fullscreenButton.attach(this.element), this.items.push(g, ...y, ee, v, _, this.fullscreenButton), this.items.forEach((e) => "onToggle" in e && (e.onToggle = this.onToggle)), m || this.oneToOneButton.hide(), o || this.fullscreenButton.hide(), s || _.hide(), c || v.hide(), u || ee.hide(), navigator.maxTouchPoints < 1 && (this.element.addEventListener("mouseenter", () => this.isMouseInElement = !0), this.element.addEventListener("mouseleave", () => this.isMouseInElement = !1));
|
|
13448
13459
|
}
|
|
13449
|
-
},
|
|
13460
|
+
}, _C = {
|
|
13450
13461
|
castoverlay: "_castoverlay_1n91l_1",
|
|
13451
13462
|
hidden: "_hidden_1n91l_20"
|
|
13452
13463
|
};
|
|
13453
13464
|
//#endregion
|
|
13454
13465
|
//#region ../../libs/player/src/CastOverlay.ts
|
|
13455
13466
|
m();
|
|
13456
|
-
var
|
|
13467
|
+
var vC, yC, bC = (vC = _C.hidden) == null ? "" : vC, xC = (yC = _C.castoverlay) == null ? "" : yC, SC = class extends h {
|
|
13457
13468
|
constructor() {
|
|
13458
13469
|
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "setText", (e) => {
|
|
13459
13470
|
this.element.innerText = e;
|
|
13460
|
-
}), p(this, "hide", () => this.element.classList.add(
|
|
13471
|
+
}), p(this, "hide", () => this.element.classList.add(bC)), p(this, "show", () => this.element.classList.remove(bC)), this.element.classList.add(xC), this.element.classList.add(bC), this.element.innerText = "device";
|
|
13461
13472
|
}
|
|
13462
|
-
},
|
|
13463
|
-
button:
|
|
13473
|
+
}, CC = "_button_4ybkq_21", wC = "_image_4ybkq_98", TC = "_overlay_4ybkq_118", EC = "_selected_4ybkq_136", DC = "_hidden_4ybkq_141", OC = "_disabled_4ybkq_145", kC = {
|
|
13474
|
+
button: CC,
|
|
13464
13475
|
"show-and-scaleup": "_show-and-scaleup_4ybkq_1",
|
|
13465
|
-
image:
|
|
13466
|
-
overlay:
|
|
13467
|
-
selected:
|
|
13468
|
-
hidden:
|
|
13469
|
-
disabled:
|
|
13476
|
+
image: wC,
|
|
13477
|
+
overlay: TC,
|
|
13478
|
+
selected: EC,
|
|
13479
|
+
hidden: DC,
|
|
13480
|
+
disabled: OC
|
|
13470
13481
|
};
|
|
13471
13482
|
//#endregion
|
|
13472
13483
|
//#region ../../libs/player/src/ChannelSelectionImageButton.ts
|
|
13473
13484
|
m();
|
|
13474
|
-
var
|
|
13485
|
+
var AC, jC, MC, NC, PC, FC = (AC = kC.button) == null ? "" : AC, IC = (jC = kC.hidden) == null ? "" : jC, LC = (MC = kC.overlay) == null ? "" : MC, RC = (NC = kC.image) == null ? "" : NC, zC = (PC = kC.selected) == null ? "" : PC, BC = class extends h {
|
|
13475
13486
|
constructor({ title: e, onClick: t, imageUrl: n, selected: r }) {
|
|
13476
13487
|
super(document.createElement("button")), p(this, "overlay", void 0), p(this, "imageHolder1", void 0), p(this, "imageHolder2", void 0), p(this, "isImageHolder1Active", !1), p(this, "loadingOverlay", void 0), p(this, "transition", (e, t, n) => {
|
|
13477
13488
|
t.style.backgroundImage = `url(${n})`, t.style.opacity = "1", e.style.opacity = "0";
|
|
13478
13489
|
}), p(this, "setSelected", (e) => {
|
|
13479
|
-
e ? this.element.classList.add(
|
|
13490
|
+
e ? this.element.classList.add(zC) : this.element.classList.remove(zC);
|
|
13480
13491
|
}), p(this, "setAnimationDelay", (e) => {
|
|
13481
13492
|
this.element.style.animationDelay = e;
|
|
13482
13493
|
}), p(this, "hideLoading", () => {
|
|
13483
13494
|
this.loadingOverlay.hide();
|
|
13484
|
-
}), p(this, "isHidden", () => this.element.classList.contains(
|
|
13495
|
+
}), p(this, "isHidden", () => this.element.classList.contains(IC)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(IC)), p(this, "show", () => this.element.classList.remove(IC)), this.element.className = FC, r && this.setSelected(r), this.element.onclick = () => {
|
|
13485
13496
|
this.loadingOverlay.show(), t();
|
|
13486
|
-
}, this.imageHolder1 = document.createElement("div"), this.imageHolder1.className =
|
|
13497
|
+
}, this.imageHolder1 = document.createElement("div"), this.imageHolder1.className = RC, this.imageHolder1.style.animationFillMode = "forwards", this.imageHolder2 = document.createElement("div"), this.imageHolder2.className = RC, this.imageHolder2.style.animationFillMode = "forwards", n && (this.imageHolder1.style.backgroundImage = `url(${n})`, this.isImageHolder1Active = !0), this.loadingOverlay = new ie(), this.loadingOverlay.attach(this.element), this.loadingOverlay.hide(), this.element.appendChild(this.imageHolder1), this.element.appendChild(this.imageHolder2), this.overlay = document.createElement("div"), this.overlay.className = LC, this.element.appendChild(this.overlay);
|
|
13487
13498
|
let i = document.createElement("span");
|
|
13488
13499
|
i.innerHTML = e, this.element.appendChild(i), this.show();
|
|
13489
13500
|
}
|
|
@@ -13496,23 +13507,23 @@ var kC, AC, jC, MC, NC, PC = (kC = OC.button) == null ? "" : kC, FC = (AC = OC.h
|
|
|
13496
13507
|
this.isImageHolder1Active ? this.transition(this.imageHolder1, this.imageHolder2, e) : this.transition(this.imageHolder2, this.imageHolder1, e), this.isImageHolder1Active = !this.isImageHolder1Active;
|
|
13497
13508
|
}
|
|
13498
13509
|
}
|
|
13499
|
-
},
|
|
13510
|
+
}, VC = "_container_btpgd_13", HC = "_hidden_btpgd_37", UC = "_disabled_btpgd_41", WC = {
|
|
13500
13511
|
"channel-selection-overlay": "_channel-selection-overlay_btpgd_1",
|
|
13501
|
-
container:
|
|
13502
|
-
hidden:
|
|
13503
|
-
disabled:
|
|
13512
|
+
container: VC,
|
|
13513
|
+
hidden: HC,
|
|
13514
|
+
disabled: UC
|
|
13504
13515
|
};
|
|
13505
13516
|
//#endregion
|
|
13506
13517
|
//#region ../../libs/player/src/ChannelSelectionList.ts
|
|
13507
13518
|
m();
|
|
13508
|
-
var
|
|
13519
|
+
var GC, KC, qC = (GC = WC.hidden) == null ? "" : GC, JC = (KC = WC.container) == null ? "" : KC, YC = class extends h {
|
|
13509
13520
|
constructor({ vindral: e, thumbnailModule: t }) {
|
|
13510
13521
|
var n;
|
|
13511
13522
|
super(document.createElement("div")), p(this, "thumbnailModule", void 0), p(this, "list", void 0), p(this, "vindral", void 0), p(this, "setSelected", (e) => {
|
|
13512
13523
|
this.list.forEach((t, n) => {
|
|
13513
13524
|
t.setSelected(n.channelId === e.channelId);
|
|
13514
13525
|
}), e.channelId !== this.vindral.channelId && (this.vindral.channelId = e.channelId);
|
|
13515
|
-
}), p(this, "isHidden", () => this.element.classList.contains(
|
|
13526
|
+
}), p(this, "isHidden", () => this.element.classList.contains(qC)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(qC)), p(this, "show", () => this.element.classList.remove(qC)), this.thumbnailModule = t, this.list = /* @__PURE__ */ new Map(), this.vindral = e, this.vindral.on("context switch", (e) => {
|
|
13516
13527
|
if (e === "completed") {
|
|
13517
13528
|
this.list.forEach((e) => e.hideLoading());
|
|
13518
13529
|
let e = this.vindral.channelId;
|
|
@@ -13527,7 +13538,7 @@ var WC, GC, KC = (WC = UC.hidden) == null ? "" : WC, qC = (GC = UC.container) ==
|
|
|
13527
13538
|
this.vindral.channels.forEach((t, n) => {
|
|
13528
13539
|
var r;
|
|
13529
13540
|
if (!t.isLive) return;
|
|
13530
|
-
let i = new
|
|
13541
|
+
let i = new BC({
|
|
13531
13542
|
title: t.name,
|
|
13532
13543
|
onClick: () => {
|
|
13533
13544
|
this.setSelected(t);
|
|
@@ -13542,35 +13553,35 @@ var WC, GC, KC = (WC = UC.hidden) == null ? "" : WC, qC = (GC = UC.container) ==
|
|
|
13542
13553
|
var n;
|
|
13543
13554
|
e.setImageUrl((n = this.thumbnailModule) == null ? void 0 : n.getImageUrl(t));
|
|
13544
13555
|
});
|
|
13545
|
-
}), this.element.className =
|
|
13556
|
+
}), this.element.className = JC, this.show();
|
|
13546
13557
|
}
|
|
13547
|
-
},
|
|
13558
|
+
}, XC = { fullscreen: "_fullscreen_1v9d8_1" };
|
|
13548
13559
|
V(), L(), m(), E();
|
|
13549
|
-
var
|
|
13560
|
+
var ZC, QC = (ZC = XC.fullscreen) == null ? "" : ZC, $C = /* @__PURE__ */ new WeakSet(), ew = class e extends Ht {
|
|
13550
13561
|
constructor(t) {
|
|
13551
|
-
super(), I(this,
|
|
13562
|
+
super(), I(this, $C), p(this, "container", void 0), p(this, "unload", () => {
|
|
13552
13563
|
document.removeEventListener("webkitfullscreenchange", this.onChange), document.removeEventListener("mozfullscreenchange", this.onChange), document.removeEventListener("fullscreenchange", this.onChange), this.container.removeEventListener("webkitendfullscreen", this.onChange);
|
|
13553
|
-
}), p(this, "request", () => T(
|
|
13564
|
+
}), p(this, "request", () => T($C, this, tw).call(this).catch((e) => {
|
|
13554
13565
|
throw this.onChange(), e;
|
|
13555
|
-
})), p(this, "exit", () => T(
|
|
13566
|
+
})), p(this, "exit", () => T($C, this, nw).call(this).catch((e) => {
|
|
13556
13567
|
throw this.onChange(), e;
|
|
13557
|
-
})), p(this, "onChange", () => this.emit("on fullscreen change", this.isFullscreen())), p(this, "isFullscreen", () => !!(ut() || this.container.classList.contains(
|
|
13568
|
+
})), p(this, "onChange", () => this.emit("on fullscreen change", this.isFullscreen())), p(this, "isFullscreen", () => !!(ut() || this.container.classList.contains(QC))), p(this, "isSupported", () => e.isFullscreenApiSupported(this.container) || !this.isInIframe()), p(this, "isInIframe", () => window.location !== window.parent.location), this.container = t, document.addEventListener("webkitfullscreenchange", this.onChange), document.addEventListener("mozfullscreenchange", this.onChange), document.addEventListener("fullscreenchange", this.onChange), this.container.addEventListener("webkitendfullscreen", this.onChange);
|
|
13558
13569
|
}
|
|
13559
13570
|
};
|
|
13560
|
-
function
|
|
13571
|
+
function tw() {
|
|
13561
13572
|
let e = dt(this.container);
|
|
13562
|
-
return e ? e() : (this.container.classList.add(
|
|
13573
|
+
return e ? e() : (this.container.classList.add(QC), Promise.resolve());
|
|
13563
13574
|
}
|
|
13564
|
-
function
|
|
13575
|
+
function nw() {
|
|
13565
13576
|
let e = ft(this.container);
|
|
13566
|
-
return e ? e() : (this.container.classList.remove(
|
|
13577
|
+
return e ? e() : (this.container.classList.remove(QC), Promise.resolve());
|
|
13567
13578
|
}
|
|
13568
|
-
p(
|
|
13569
|
-
var
|
|
13579
|
+
p(ew, "isFullscreenApiSupported", (e) => pt(e));
|
|
13580
|
+
var rw = {
|
|
13570
13581
|
player: "_player_h0il1_1",
|
|
13571
13582
|
"one-to-one": "_one-to-one_h0il1_19",
|
|
13572
13583
|
"audio-only": "_audio-only_h0il1_28"
|
|
13573
|
-
},
|
|
13584
|
+
}, iw = {
|
|
13574
13585
|
playoverlay: "_playoverlay_1niji_1",
|
|
13575
13586
|
hidden: "_hidden_1niji_17",
|
|
13576
13587
|
"playoverlay-indicator": "_playoverlay-indicator_1niji_23"
|
|
@@ -13578,15 +13589,15 @@ var nw = {
|
|
|
13578
13589
|
//#endregion
|
|
13579
13590
|
//#region ../../libs/player/src/PlayOverlay.ts
|
|
13580
13591
|
m();
|
|
13581
|
-
var
|
|
13592
|
+
var aw, ow, sw, cw = (aw = iw.hidden) == null ? "" : aw, lw = (ow = iw.playoverlay) == null ? "" : ow, uw = (sw = iw["playoverlay-indicator"]) == null ? "" : sw, dw = class extends h {
|
|
13582
13593
|
constructor() {
|
|
13583
|
-
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "indicator", document.createElement("div")), p(this, "isHidden", () => this.element.classList.contains(
|
|
13594
|
+
super(document.createElement("div")), p(this, "onClick", void 0), p(this, "indicator", document.createElement("div")), p(this, "isHidden", () => this.element.classList.contains(cw)), p(this, "setHidden", (e) => e ? this.hide() : this.show()), p(this, "hide", () => this.element.classList.add(cw)), p(this, "show", () => this.element.classList.remove(cw)), this.element.classList.add(lw), this.element.classList.add(cw), this.indicator.className = uw, this.element.appendChild(this.indicator), this.element.onclick = () => {
|
|
13584
13595
|
this.onClick && this.onClick();
|
|
13585
13596
|
};
|
|
13586
13597
|
}
|
|
13587
13598
|
};
|
|
13588
13599
|
V(), m(), M();
|
|
13589
|
-
var
|
|
13600
|
+
var fw = class extends Ht {
|
|
13590
13601
|
constructor({ vindral: e, refreshEveryMs: t }) {
|
|
13591
13602
|
super(), p(this, "thumbnails", /* @__PURE__ */ new Map()), p(this, "interval", void 0), p(this, "channels", void 0), p(this, "refreshEveryMs", void 0), p(this, "isFetching", !1), p(this, "hasFetched", !1), this.channels = [...e.channels], this.refreshEveryMs = t || 6e4, e.on("channels", () => {
|
|
13592
13603
|
this.channels = [...e.channels], this.hasFetched || this.refreshThumbnails();
|
|
@@ -13634,7 +13645,7 @@ var dw = class extends Ht {
|
|
|
13634
13645
|
}
|
|
13635
13646
|
};
|
|
13636
13647
|
V(), m(), M(), z();
|
|
13637
|
-
var
|
|
13648
|
+
var pw, mw, hw, gw = (pw = rw.player) == null ? "" : pw, _w = (mw = rw["one-to-one"]) == null ? "" : mw, vw = (hw = rw["audio-only"]) == null ? "" : hw, yw = {
|
|
13638
13649
|
controlsEnabled: !0,
|
|
13639
13650
|
castEnabled: !0,
|
|
13640
13651
|
channelSelectionEnabled: !0,
|
|
@@ -13648,10 +13659,10 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13648
13659
|
airPlayButtonEnabled: !1,
|
|
13649
13660
|
playOverlayEnabled: !0,
|
|
13650
13661
|
bufferingOverlayEnabled: !0
|
|
13651
|
-
},
|
|
13662
|
+
}, bw = (e) => !jx(e), xw = class {
|
|
13652
13663
|
constructor(e, t) {
|
|
13653
13664
|
var n = this, r, i, a, o;
|
|
13654
|
-
p(this, "core", void 0), p(this, "castSender", void 0), p(this, "airPlaySender", void 0), p(this, "options", void 0), p(this, "state", void 0), p(this, "playerElement", document.createElement("div")), p(this, "bufferingOverlay", void 0), p(this, "playOverlay", void 0), p(this, "castOverlay", new
|
|
13665
|
+
p(this, "core", void 0), p(this, "castSender", void 0), p(this, "airPlaySender", void 0), p(this, "options", void 0), p(this, "state", void 0), p(this, "playerElement", document.createElement("div")), p(this, "bufferingOverlay", void 0), p(this, "playOverlay", void 0), p(this, "castOverlay", new SC()), p(this, "channelSelectionList", void 0), p(this, "bar", void 0), p(this, "stateInterval", void 0), p(this, "thumbnailModule", void 0), p(this, "browser", rt()), p(this, "unload", () => {
|
|
13655
13666
|
var e, t;
|
|
13656
13667
|
this.stateInterval && window.clearInterval(this.stateInterval), this.core.unload(), this.playerElement.remove(), (e = this.thumbnailModule) == null || e.stop(), (t = this.airPlaySender) == null || t.unload();
|
|
13657
13668
|
}), p(this, "attach", (e) => {
|
|
@@ -13692,7 +13703,7 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13692
13703
|
this.core.muted = !e, this.core.muted = e;
|
|
13693
13704
|
}
|
|
13694
13705
|
}), p(this, "toggleOneToOne", () => {
|
|
13695
|
-
this.playerElement.classList.contains(
|
|
13706
|
+
this.playerElement.classList.contains(_w) ? this.playerElement.classList.remove(_w) : this.playerElement.classList.add(_w);
|
|
13696
13707
|
}), p(this, "isInFullscreen", () => this.state.fullscreen.isFullscreen()), p(this, "enterFullscreen", j(function* () {
|
|
13697
13708
|
n.triggerUserInput(), n.iosHackResetSize(), n.bar.fullscreenButton.setIcon("exit"), yield n.state.fullscreen.request(), n.lockOrientation();
|
|
13698
13709
|
})), p(this, "exitFullscreen", () => (this.bar.fullscreenButton.setIcon("enter"), this.unlockOrientation(), this.state.fullscreen.exit())), p(this, "showAirPlayPicker", () => {
|
|
@@ -13711,20 +13722,20 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13711
13722
|
var e, t, n;
|
|
13712
13723
|
return !((e = this.options.channelSelectionOptions) == null || (e = e.barButton) == null) && e.enabled && !((t = this.options.channelSelectionOptions) == null || (t = t.barButton) == null) && t.thumbnails ? !0 : !!(!((n = this.options.channelSelectionOptions) == null || (n = n.list) == null) && n.enabled);
|
|
13713
13724
|
}), p(this, "bumpInteractTime", () => void (this.state.lastInteractionTime = Date.now()));
|
|
13714
|
-
let s = R(R({},
|
|
13715
|
-
this.options = s, this.playerElement.className =
|
|
13725
|
+
let s = R(R({}, yw), t);
|
|
13726
|
+
this.options = s, this.playerElement.className = gw, bw(e) ? this.core = e : this.core = new Rx(e), this.state = {
|
|
13716
13727
|
isBuffering: !1,
|
|
13717
|
-
fullscreen: new
|
|
13728
|
+
fullscreen: new ew(!ew.isFullscreenApiSupported(this.playerElement) && ew.isFullscreenApiSupported(this.core.mediaElement) ? this.core.mediaElement : this.playerElement),
|
|
13718
13729
|
lastInteractionTime: 0
|
|
13719
|
-
}, this.needsThumbnails() && (this.thumbnailModule = new
|
|
13730
|
+
}, this.needsThumbnails() && (this.thumbnailModule = new fw({
|
|
13720
13731
|
vindral: this.core,
|
|
13721
13732
|
refreshEveryMs: t == null ? void 0 : t.thumbnailUpdateInterval
|
|
13722
|
-
}), this.thumbnailModule.start()), !((r = this.options.channelSelectionOptions) == null || (r = r.list) == null) && r.enabled && (this.channelSelectionList = new
|
|
13733
|
+
}), this.thumbnailModule.start()), !((r = this.options.channelSelectionOptions) == null || (r = r.list) == null) && r.enabled && (this.channelSelectionList = new YC({
|
|
13723
13734
|
vindral: this.core,
|
|
13724
13735
|
thumbnailModule: this.thumbnailModule
|
|
13725
13736
|
}));
|
|
13726
13737
|
let c = (t == null ? void 0 : t.channelSelectionEnabled) || (t == null || (i = t.channelSelectionOptions) == null || (i = i.barButton) == null ? void 0 : i.enabled), l = t == null || (a = t.channelSelectionOptions) == null || (a = a.barButton) == null ? void 0 : a.thumbnails;
|
|
13727
|
-
this.bar = new
|
|
13738
|
+
this.bar = new gC(R(R({
|
|
13728
13739
|
vindral: this.core,
|
|
13729
13740
|
thumbnailModule: this.thumbnailModule
|
|
13730
13741
|
}, s), {}, {
|
|
@@ -13737,7 +13748,7 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13737
13748
|
onOneToOneClicked: () => this.toggleOneToOne(),
|
|
13738
13749
|
onPipClicked: () => void this.togglePip().catch((e) => console.error("error", e)),
|
|
13739
13750
|
onAirPlayClicked: () => this.showAirPlayPicker()
|
|
13740
|
-
})), this.core.media === "audio" && (this.playerElement.classList.add(
|
|
13751
|
+
})), this.core.media === "audio" && (this.playerElement.classList.add(vw), this.options.controlsEnabled && this.bar.show());
|
|
13741
13752
|
let u = this.core.getCastOptions();
|
|
13742
13753
|
this.castSender = new or({
|
|
13743
13754
|
background: this.options.castBackground,
|
|
@@ -13782,7 +13793,7 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13782
13793
|
break;
|
|
13783
13794
|
}
|
|
13784
13795
|
}
|
|
13785
|
-
}), this.core.attach(this.playerElement), this.castOverlay.attach(this.playerElement), this.options.bufferingOverlayEnabled && (this.bufferingOverlay = new ie(), this.bufferingOverlay.attach(this.playerElement)), this.options.playOverlayEnabled && (this.playOverlay = new
|
|
13796
|
+
}), this.core.attach(this.playerElement), this.castOverlay.attach(this.playerElement), this.options.bufferingOverlayEnabled && (this.bufferingOverlay = new ie(), this.bufferingOverlay.attach(this.playerElement)), this.options.playOverlayEnabled && (this.playOverlay = new dw(), this.playOverlay.attach(this.playerElement), this.playOverlay.onClick = () => {
|
|
13786
13797
|
var e;
|
|
13787
13798
|
this.core.userInput(), (e = this.playOverlay) == null || e.hide();
|
|
13788
13799
|
}), this.channelSelectionList && this.channelSelectionList.attach(this.playerElement), this.bar.attach(this.playerElement), this.playerElement.addEventListener("click", this.onClick), this.playerElement.addEventListener("mousemove", this.onMouseMove), this.state.fullscreen.on("on fullscreen change", (e) => {
|
|
@@ -13794,4 +13805,4 @@ var fw, pw, mw, hw = (fw = nw.player) == null ? "" : fw, gw = (pw = nw["one-to-o
|
|
|
13794
13805
|
}
|
|
13795
13806
|
};
|
|
13796
13807
|
//#endregion
|
|
13797
|
-
export { Vr as AUTHENTICATION_EXPIRED_CODE, Br as AUTHENTICATION_FAILED_CODE, Al as ApiClient, Hr as CHANNEL_NOT_FOUND_CODE, zr as CONNECTION_FAILED_AFTER_RETRIES_CODE, Rr as CONNECTION_FAILED_CODE, or as CastSender, Jr as DISCONNECTED_BY_EDGE, Wr as INACTIVITY_CODE, Ur as NO_INCOMING_DATA,
|
|
13808
|
+
export { Vr as AUTHENTICATION_EXPIRED_CODE, Br as AUTHENTICATION_FAILED_CODE, Al as ApiClient, Hr as CHANNEL_NOT_FOUND_CODE, zr as CONNECTION_FAILED_AFTER_RETRIES_CODE, Rr as CONNECTION_FAILED_CODE, or as CastSender, Jr as DISCONNECTED_BY_EDGE, Wr as INACTIVITY_CODE, Ur as NO_INCOMING_DATA, xw as Player, Rx as Vindral, H as VindralError };
|