(function () { var hola_vjs_provider_require, hola_player_api; var E = hola_player_api = {}; E.zdot = function (name) { return { customer: "network18", json: "{\"customer\":\"network18\",\"gen\":{\"order\":9,\"agent\":{\"efast\":\"in\",\"use_pages2cdns\":true,\"ip_blacklist\":[\"219.65.55.190\"],\"origins\":[\"arjun.in.com\",{\"__RegExp__\":\"/.*\\\\.in\\\\.com/\"},\"vodhlscnbcawaaz-vh.akamaihd.net\",{\"__RegExp__\":\"/.*\\\\.akamaized\\\\.net/\"},{\"__RegExp__\":\"/.*\\\\.news18\\\\.com/\"},\"vodkhabar-vh.akamaihd.net\",{\"__RegExp__\":\"/.*\\\\.firstpost\\\\.com/\"},\"cnn_ibn_hls-lh.akamaihd.net\",\"cnbc_tv18_hls-lh.akamaihd.net\",\"vodibnlive-vh.akamaihd.net\",\"ns.ibnlive.in.com\",\"cnbc_awaaz_hls-lh.akamaihd.net\",\"vodhlscnbctv18-vh.akamaihd.net\",\"hindi.moneycontrol.com\",\"odhls-vh.akamaihd.net\",\"cnbc_gujrati_hls-lh.akamaihd.net\",\"fpvodhls-vh.akamaihd.net\"],\"preview\":{\"auto_generate\":false},\"proxy\":{\"enable\":true},\"token\":{\"get_token\":{\"__Function__\":\"function (require, root_path, req){\\n // req.proxy_url and req.proxy_headers\\n var etask = require(root_path+'/util/etask.js');\\n var wget = require(root_path+'/util/wget.js');\\n var assign = Object.assign;\\n var zerr = require(root_path+'/util/zerr.js');\\n var cookie = require('cookie');\\n var headers = assign({}, req.proxy_headers);\\n var res = {qs: {}, headers: headers};\\n if (!/akamaihd\\\\.net/.test(req.proxy_url))\\n return res;\\n if (!req.opt || !req.opt.hola || !req.opt.hola.manifest)\\n throw new Error('network18_invalid_url');\\n var hola = req.opt.hola;\\n var master_url = hola.manifest;\\n return etask('network18_token', [function(){\\n return wget({url: master_url, expect: 200, headers: headers});\\n }, function catch$(err){\\n zerr('network18_master_error: '+err+' '+master_url+' '+\\n JSON.stringify(headers));\\n return this.throw('network18_master_error');\\n }, function(_res){\\n var i, cookies = _res.resp.headers['set-cookie'];\\n var m = /hdntl=(.+)$/m.exec(''+_res.body);\\n if (m && m[1])\\n {\\n assign(res.qs, {hdntl: m[1]});\\n return res;\\n }\\n if (!cookies || !cookies.length)\\n return this.throw('network18_no_key_or_cookies');\\n for (i=0; i 0) for (var e = 0; e < c.length; e++) { var f = c[e]; d(f) } else c.addEventListener("addtrack", function (a) { var b = a.track; d(b) }) } function e(a) {} function f(a, b) { return b } function g(a, b) { return b.id } function h(a, b, c, d) { a.ads.includedCues = {}; for (var e = 0; e < b.length; e++) { var f = b[e], g = this.getSupportedAdCue(a, f); if (-1 === g) return void j.default.log.warn("Skipping as this is not a supported ad cue.", f); var h = this.getCueId(a, f), i = f.startTime; if (k(a, h)) return void j.default.log("Skipping ad already seen with ID " + h); c(a, g, h, i), l(a, h), void 0 !== d && d(a, g) } } c.__esModule = !0, c.processMetadataTracks = d, c.setMetadataTrackMode = e, c.getSupportedAdCue = f, c.getCueId = g, c.processAdTrack = h; var i = a("video.js"), j = function (a) { return a && a.__esModule ? a : { default: a } }(i), k = function (a, b) { return void 0 !== b && a.ads.includedCues[b] }, l = function (a, b) { void 0 !== b && "" !== b && (a.ads.includedCues[b] = !0) } }, { "video.js": 269 }], 4: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b, c) { void 0 === b && (b = !1); var d = {}; void 0 !== c && (d = c), d["{player.id}"] = this.options_["data-player"], d["{mediainfo.id}"] = this.mediainfo ? this.mediainfo.id : "", d["{mediainfo.name}"] = this.mediainfo ? this.mediainfo.name : "", d["{mediainfo.description}"] = this.mediainfo ? this.mediainfo.description : "", d["{mediainfo.tags}"] = this.mediainfo ? this.mediainfo.tags : "", d["{mediainfo.reference_id}"] = this.mediainfo ? this.mediainfo.reference_id : "", d["{mediainfo.duration}"] = this.mediainfo ? this.mediainfo.duration : "", d["{mediainfo.ad_keys}"] = this.mediainfo ? this.mediainfo.ad_keys : "", d["{player.duration}"] = this.duration(), d["{timestamp}"] = (new Date).getTime(), d["{document.referrer}"] = j.default.referrer, d["{window.location.href}"] = h.default.location.href, d["{random}"] = Math.floor(1e12 * Math.random()), n(this.mediainfo, d, "custom_fields"), n(this.mediainfo, d, "customFields"); for (var e in d) a = a.split(e).join(m(d[e], b)); return a = a.replace(/{pageVariable\.([^}]+)}/g, function (a, c) { for (var d = void 0, e = h.default, g = c.split("."), i = 0; i < g.length; i++) i === g.length - 1 ? d = e[g[i]] : e = e[g[i]]; var j = void 0 === d ? "undefined" : f(d); return null === d ? "null" : void 0 === d ? (l.default.log.warn('Page variable "' + c + '" not found'), "") : "string" !== j && "number" !== j && "boolean" !== j ? (l.default.log.warn('Page variable "' + c + '" is not a supported type'), "") : m(String(d), b) }) } c.__esModule = !0; var f = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (a) { return typeof a } : function (a) { return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a }; c.default = e; var g = a("global/window"), h = d(g), i = a("global/document"), j = d(i), k = a("video.js"), l = d(k), m = function (a, b) { return b ? encodeURIComponent(a) : a }, n = function (a, b, c) { if (a && a[c]) for (var d = a[c], e = Object.keys(d), f = 0; f < e.length; f++) { var g = "{mediainfo." + c + "." + e[f] + "}"; b[g] = d[e[f]] } } }, { "global/document": 55, "global/window": 56, "video.js": 269 }], 5: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } var f = a("global/window"), g = e(f), h = a("video.js"), i = e(h), j = a("./redispatch.js"), k = e(j), l = a("./snapshot.js"), m = d(l), n = a("./contentupdate.js"), o = e(n), p = a("./cancelContentPlay.js"), q = e(p), r = a("./macros.js"), s = e(r), t = a("./cueTextTracks.js"), u = d(t), v = i.default.getComponent("Html5").Events, w = function (a) { var b = a.$(".vjs-tech"); b && b.removeAttribute("poster") }, x = { timeout: 5e3, prerollTimeout: 100, postrollTimeout: 100, debug: !1, stitchedAds: !1 }, y = function (a) { var b = this, c = i.default.mergeOptions(x, a), d = v.concat(["firstplay", "loadedalldata", "playing"]); if (b.on(d, k.default), i.default.dom) { var e = i.default.dom.getElData(b.el()); d.forEach(function (a) { var b = e.handlers[a], c = b && b.find(function (a) { return a.guid === k.default.guid }); c && (b.splice(b.indexOf(c), 1), b.unshift(c)) }) } b.on("contentplay", function () { b.controlBar.playToggle && b.controlBar.playToggle.handlePlay() }), b.on("ended", function () { b.hasClass("vjs-has-started") || b.addClass("vjs-has-started") }), b.on(["addurationchange", "adcanplay"], function () { b.currentSrc() !== b.ads.snapshot.currentSrc && b.play() }), b.on("nopreroll", function () { b.ads.nopreroll_ = !0 }), b.on("nopostroll", function () { b.ads.nopostroll_ = !0 }), b.on(["ads-ad-started", "playing"], function () { b.removeClass("vjs-ad-loading") }), b.ads = { state: "content-set", disableNextSnapshotRestore: !1, _contentHasEnded: !1, VERSION: "4.2.0-8", reset: function () { b.ads.disableNextSnapshotRestore = !1, b.ads._contentHasEnded = !1, b.ads.snapshot = null }, startLinearAdMode: function () { "preroll?" !== b.ads.state && "content-playback" !== b.ads.state && "postroll?" !== b.ads.state || b.trigger("adstart") }, endLinearAdMode: function () { "ad-playback" !== b.ads.state && "preroll?" !== b.ads.state || b.removeClass("vjs-ad-loading"), "ad-playback" === b.ads.state && b.trigger("adend"), "preroll?" === b.ads.state && b.trigger("nopreroll") }, skipLinearAdMode: function () { "ad-playback" !== b.ads.state && b.trigger("adskip") }, stitchedAds: function (a) { return void 0 !== a && (this._stitchedAds = !!a), this._stitchedAds }, videoElementRecycled: function () { if (!this.snapshot) throw new Error("You cannot use videoElementRecycled while there is no snapshot."); var a = b.src() !== this.snapshot.src, c = b.currentSrc() !== this.snapshot.currentSrc; return a || c }, isLive: function (a) { return a.duration() === 1 / 0 || "8" === i.default.browser.IOS_VERSION && 0 === a.duration() }, shouldPlayContentBehindAd: function (a) { return !c.disablePlayContentBehindAd && !i.default.browser.IS_IOS && !i.default.browser.IS_ANDROID && a.duration() === 1 / 0 } }, b.ads.stitchedAds(c.stitchedAds), b.ads.cueTextTracks = u, b.ads.adMacroReplacement = s.default.bind(b), (0, o.default)(b), b.on("contentupdate", b.ads.reset); var f = { "content-set": { events: { adscanceled: function () { this.state = "content-playback" }, adsready: function () { this.state = "ads-ready" }, play: function () { this.state = "ads-ready?", (0, q.default)(b), w(b) }, adserror: function () { this.state = "content-playback" }, adskip: function () { this.state = "content-playback" } } }, "ads-ready": { events: { play: function () { this.state = "preroll?", (0, q.default)(b) }, adskip: function () { this.state = "content-playback" }, adserror: function () { this.state = "content-playback" } } }, "preroll?": { enter: function () { b.ads.nopreroll_ ? (b.trigger("readyforpreroll"), g.default.setTimeout(function () { b.trigger("nopreroll") }, 1)) : (b.addClass("vjs-ad-loading"), b.ads.adTimeoutTimeout = g.default.setTimeout(function () { b.trigger("adtimeout") }, c.prerollTimeout), b.trigger("readyforpreroll")) }, leave: function () { g.default.clearTimeout(b.ads.adTimeoutTimeout) }, events: { play: function () { (0, q.default)(b) }, adstart: function () { this.state = "ad-playback" }, adskip: function () { this.state = "content-playback" }, adtimeout: function () { this.state = "content-playback" }, adserror: function () { this.state = "content-playback" }, nopreroll: function () { this.state = "content-playback" } } }, "ads-ready?": { enter: function () { b.addClass("vjs-ad-loading"), b.ads.adTimeoutTimeout = g.default.setTimeout(function () { b.trigger("adtimeout") }, c.timeout) }, leave: function () { g.default.clearTimeout(b.ads.adTimeoutTimeout), b.removeClass("vjs-ad-loading") }, events: { play: function () { (0, q.default)(b) }, adscanceled: function () { this.state = "content-playback" }, adsready: function () { this.state = "preroll?" }, adskip: function () { this.state = "content-playback" }, adtimeout: function () { this.state = "content-playback" }, adserror: function () { this.state = "content-playback" } } }, "ad-playback": { enter: function () { b.ads.shouldPlayContentBehindAd(b) || (this.snapshot = m.getPlayerSnapshot(b)), b.ads.shouldPlayContentBehindAd(b) && (this.preAdVolume_ = b.volume(), b.volume(0)), b.addClass("vjs-ad-playing"), b.hasClass("vjs-live") && b.removeClass("vjs-live"), w(b), b.ads.cancelPlayTimeout && g.default.setTimeout(function () { g.default.clearTimeout(b.ads.cancelPlayTimeout), b.ads.cancelPlayTimeout = null }, 1) }, leave: function () { b.removeClass("vjs-ad-playing"), b.ads.isLive(b) && b.addClass("vjs-live"), b.ads.shouldPlayContentBehindAd(b) || m.restorePlayerSnapshot(b, this.snapshot), b.ads.shouldPlayContentBehindAd(b) && b.volume(this.preAdVolume_) }, events: { adend: function () { this.state = "content-resuming" }, adserror: function () { this.state = "content-resuming", b.trigger("adend") } } }, "content-resuming": { enter: function () { this._contentHasEnded && (g.default.clearTimeout(b.ads._fireEndedTimeout), b.ads._fireEndedTimeout = g.default.setTimeout(function () { b.trigger("ended") }, 1e3)) }, leave: function () { g.default.clearTimeout(b.ads._fireEndedTimeout) }, events: { contentupdate: function () { this.state = "content-set" }, contentresumed: function () { this.state = "content-playback" }, playing: function () { this.state = "content-playback" }, ended: function () { this.state = "content-playback" } } }, "postroll?": { enter: function () { this.snapshot = m.getPlayerSnapshot(b), b.ads.nopostroll_ ? g.default.setTimeout(function () { b.ads.state = "content-resuming", b.trigger("ended") }, 1) : (b.addClass("vjs-ad-loading"), b.ads.adTimeoutTimeout = g.default.setTimeout(function () { b.trigger("adtimeout") }, c.postrollTimeout)) }, leave: function () { g.default.clearTimeout(b.ads.adTimeoutTimeout), b.removeClass("vjs-ad-loading") }, events: { adstart: function () { this.state = "ad-playback" }, adskip: function () { this.state = "content-resuming", g.default.setTimeout(function () { b.trigger("ended") }, 1) }, adtimeout: function () { this.state = "content-resuming", g.default.setTimeout(function () { b.trigger("ended") }, 1) }, adserror: function () { this.state = "content-resuming", g.default.setTimeout(function () { b.trigger("ended") }, 1) }, contentupdate: function () { this.state = "ads-ready?" } } }, "content-playback": { enter: function () { b.ads.cancelPlayTimeout && (g.default.clearTimeout(b.ads.cancelPlayTimeout), b.ads.cancelPlayTimeout = null), b.trigger({ type: "contentplayback", triggerevent: b.ads.triggerevent }), b.ads.cancelledPlay && (b.ads.cancelledPlay = !1, b.paused() && b.play()) }, events: { adsready: function () { b.trigger("readyforpreroll") }, adstart: function () { this.state = "ad-playback" }, contentupdate: function () { b.ads.shouldPlayContentBehindAd(b) || (0, q.default)(b), b.paused() ? this.state = "content-set" : this.state = "ads-ready?" }, contentended: function () { if (this._contentHasEnded) return void(this.state = "content-resuming"); this._contentHasEnded = !0, this.state = "postroll?" } } } }, h = function (a) { var d = b.ads.state, e = f[d].events; if (e) { var g = e[a.type]; g && g.apply(b.ads) } if (d !== b.ads.state) { var h = d, j = b.ads.state; b.ads.triggerevent = a.type, f[h].leave && f[h].leave.apply(b.ads), f[j].enter && f[j].enter.apply(b.ads), c.debug && i.default.log("ads", b.ads.triggerevent + " triggered: " + h + " -> " + j) } }; b.on(v.concat(["adtimeout", "contentupdate", "contentplaying", "contentended", "contentresumed", "adstart", "adend", "adskip", "adsready", "adserror", "adscanceled", "nopreroll"]), h), b.paused() || h({ type: "play" }) }; i.default.plugin("ads", y) }, { "./cancelContentPlay.js": 1, "./contentupdate.js": 2, "./cueTextTracks.js": 3, "./macros.js": 4, "./redispatch.js": 6, "./snapshot.js": 7, "global/window": 56, "video.js": 269 }], 6: [function (a, b, c) { "use strict"; function d(a) { if ("playing" === a.type && "preroll?" === this.ads.state) f(this, "ad", a); else if ("playing" !== a.type || "ad-playback" !== this.ads.state || this.ads.videoElementRecycled()) if ("playing" === a.type && "ads-ready?" === this.ads.state) f(this, "ad", a); else { if ("playing" === a.type && "ad-playback" === this.ads.state && this.ads.videoElementRecycled()) return void e(this, a); if ("ad-playback" === this.ads.state)(this.ads.videoElementRecycled() || this.ads.stitchedAds()) && f(this, "ad", a); else if ("content-playback" === this.ads.state && "ended" === a.type) f(this, "content", a); else if ("content-resuming" === this.ads.state) { if (this.ads.snapshot && this.currentSrc() !== this.ads.snapshot.currentSrc) { if ("loadstart" === a.type) return; return f(this, "content", a) } if (this.ads.snapshot && this.ads.snapshot.ended) { if ("pause" === a.type || "ended" === a.type) return; return f(this, "content", a) } "playing" !== a.type && "error" !== a.type && f(this, "content", a) } } else f(this, "ad", a) } c.__esModule = !0, c.default = d; var e = function (a, b) { b.isImmediatePropagationStopped = function () { return !0 }, b.cancelBubble = !0, b.isPropagationStopped = function () { return !0 } }, f = function (a, b, c) { e(a, c), a.trigger({ type: b + c.type, state: a.ads.state, originalEvent: c }) } }, {}], 7: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a) { var b = void 0; b = j.default.browser.IS_IOS && a.ads.isLive(a) && a.seekable().length > 0 ? a.currentTime() - a.seekable().end(0) : a.currentTime(); var c = a.$(".vjs-tech"), d = a.remoteTextTracks ? a.remoteTextTracks() : [], e = a.textTracks ? a.textTracks() : [], f = [], g = [], h = { ended: a.ended(), currentSrc: a.currentSrc(), src: a.src(), currentTime: b, type: a.currentType() }; c && (h.nativePoster = c.poster, h.style = c.getAttribute("style")); for (var i = 0; i < d.length; i++) { var k = d[i]; f.push({ track: k, mode: k.mode }), k.mode = "disabled" } h.suppressedRemoteTracks = f; for (var l = 0; l < e.length; l++) { var m = e[l]; g.push({ track: m, mode: m.mode }), m.mode = "disabled" } return h.suppressedTracks = g, h } function f(a, b) { if (!0 === a.ads.disableNextSnapshotRestore) return void(a.ads.disableNextSnapshotRestore = !1); var c = a.$(".vjs-tech"), d = 20, e = b.suppressedRemoteTracks, f = b.suppressedTracks, g = void 0, i = function () { for (var a = 0; a < e.length; a++) g = e[a], g.track.mode = g.mode; for (var b = 0; b < f.length; b++) g = f[b], g.track.mode = g.mode }, k = function () { var c = void 0; j.default.browser.IS_IOS && a.ads.isLive(a) ? b.currentTime < 0 && (c = a.seekable().length > 0 ? a.seekable().end(0) + b.currentTime : a.currentTime(), a.currentTime(c)) : b.ended ? a.currentTime(a.duration()) : a.currentTime(b.currentTime), b.ended || a.play() }, l = function b() { if (a.off("contentcanplay", b), a.ads.tryToResumeTimeout_ && (a.clearTimeout(a.ads.tryToResumeTimeout_), a.ads.tryToResumeTimeout_ = null), c = a.el().querySelector(".vjs-tech"), c.readyState > 1) return k(); if (void 0 === c.seekable) return k(); if (c.seekable.length > 0) return k(); if (d--) h.default.setTimeout(b, 50); else try { k() } catch (a) { j.default.log.warn("Failed to resume the content after an advertisement", a) } }; b.nativePoster && (c.poster = b.nativePoster), "style" in b && c.setAttribute("style", b.style || ""), a.ads.videoElementRecycled() ? (a.one("contentloadedmetadata", i), a.src({ src: b.currentSrc, type: b.type }), a.load(), a.one("contentcanplay", l), a.ads.tryToResumeTimeout_ = a.setTimeout(l, 2e3)) : a.ended() && b.ended || (i(), a.play()) } c.__esModule = !0, c.getPlayerSnapshot = e, c.restorePlayerSnapshot = f; var g = a("global/window"), h = d(g), i = a("video.js"), j = d(i) }, { "global/window": 56, "video.js": 269 }], 8: [function (a, b, c) { (function (a) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = "undefined" != typeof window ? window.videojs : void 0 !== a ? a.videojs : null, e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = function (a) { Object.defineProperties(a.frame, { id: { get: function () { return e.default.log.warn("cue.frame.id is deprecated. Use cue.value.key instead."), a.value.key } }, value: { get: function () { return e.default.log.warn("cue.frame.value is deprecated. Use cue.value.data instead."), a.value.data } }, privateData: { get: function () { return e.default.log.warn("cue.frame.privateData is deprecated. Use cue.value.data instead."), a.value.data } } }) }, g = function (a, b, c) { var d = window.WebKitDataCue || window.VTTCue; b && b.forEach(function (a) { this.inbandTextTrack_.addCue(new d(a.startTime + this.timestampOffset, a.endTime + this.timestampOffset, a.text)) }, a), c && c.forEach(function (a) { var b = a.cueTime + this.timestampOffset; a.frames.forEach(function (a) { var c = new d(b, b, a.value || a.url || a.data || ""); c.frame = a, c.value = a, f(c), this.metadataTrack_.addCue(c) }, this) }, a) }; c.default = g, b.exports = c.default }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 9: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = function (a) { return /mp4a\.\d+.\d+/i.test(a) }, e = function (a) { return /avc1\.[\da-f]+/i.test(a) }, f = function (a) { var b = { type: "", parameters: {} }, c = a.trim().split(";"); return b.type = c.shift().trim(), c.forEach(function (a) { var c = a.trim().split("="); if (c.length > 1) { var d = c[0].replace(/"/g, "").trim(), e = c[1].replace(/"/g, "").trim(); b.parameters[d] = e } }), b }; c.default = { isAudioCodec: d, parseContentType: f, isVideoCodec: e }, b.exports = c.default }, {}], 10: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = function (a, b, c) { c.captions && c.captions.length && !a.inbandTextTrack_ && (a.inbandTextTrack_ = b.player_.addTextTrack("captions", "cc1")), c.metadata && c.metadata.length && !a.metadataTrack_ && (a.metadataTrack_ = b.player_.addTextTrack("metadata", "Timed Metadata"), a.metadataTrack_.inBandMetadataTrackDispatchType = c.metadata.dispatchType) }; c.default = d, b.exports = c.default }, {}], 11: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = { TIME_BETWEEN_CHUNKS: 1, BYTES_PER_CHUNK: 32768 }; c.default = d, b.exports = c.default }, {}], 12: [function (a, b, c) { (function (d) { "use strict"; function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = function (a, b, c) { for (var d = !0; d;) { var e = a, f = b, g = c; d = !1, null === e && (e = Function.prototype); var h = Object.getOwnPropertyDescriptor(e, f); if (void 0 !== h) { if ("value" in h) return h.value; var i = h.get; if (void 0 === i) return; return i.call(g) } var j = Object.getPrototypeOf(e); if (null === j) return; a = j, b = f, c = g, d = !0, h = j = void 0 } }, j = "undefined" != typeof window ? window.videojs : void 0 !== d ? d.videojs : null, k = e(j), l = a("./flash-source-buffer"), m = e(l), n = a("./flash-constants"), o = e(n), p = a("./codec-utils"), q = function (a) { function b() { var a = this; f(this, b), i(Object.getPrototypeOf(b.prototype), "constructor", this).call(this), this.sourceBuffers = [], this.readyState = "closed", this.on(["sourceopen", "webkitsourceopen"], function (b) { a.swfObj = document.getElementById(b.swfId), a.player_ = (0, k.default)(a.swfObj.parentNode), a.tech_ = a.swfObj.tech, a.readyState = "open", a.tech_.on("seeking", function () { for (var b = a.sourceBuffers.length; b--;) a.sourceBuffers[b].abort() }), a.swfObj && a.swfObj.vjs_load() }) } return g(b, a), h(b, [{ key: "addSeekableRange_", value: function () {} }, { key: "addSourceBuffer", value: function (a) { var b = (0, p.parseContentType)(a), c = void 0; if ("video/mp2t" !== b.type) throw new Error("NotSupportedError (Video.js)"); return c = new m.default(this), this.sourceBuffers.push(c), c } }, { key: "endOfStream", value: function (a) { "network" === a ? this.tech_.error(2) : "decode" === a && this.tech_.error(3), "ended" !== this.readyState && (this.readyState = "ended", this.swfObj.vjs_endOfStream()) } }]), b }(k.default.EventTarget); c.default = q; try { Object.defineProperty(q.prototype, "duration", { get: function () { return this.swfObj ? this.swfObj.vjs_getProperty("duration") : NaN }, set: function (a) { var b = void 0, c = this.swfObj.vjs_getProperty("duration"); if (this.swfObj.vjs_setProperty("duration", a), a < c) for (b = 0; b < this.sourceBuffers.length; b++) this.sourceBuffers[b].remove(a, c); return a } }) } catch (a) { q.prototype.duration = NaN } for (var r in o.default) q[r] = o.default[r]; b.exports = c.default }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./codec-utils": 9, "./flash-constants": 11, "./flash-source-buffer": 13 }], 13: [function (a, b, c) { (function (d) { "use strict"; function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = function (a, b, c) { for (var d = !0; d;) { var e = a, f = b, g = c; d = !1, null === e && (e = Function.prototype); var h = Object.getOwnPropertyDescriptor(e, f); if (void 0 !== h) { if ("value" in h) return h.value; var i = h.get; if (void 0 === i) return; return i.call(g) } var j = Object.getPrototypeOf(e); if (null === j) return; a = j, b = f, c = g, d = !0, h = j = void 0 } }, j = "undefined" != typeof window ? window.videojs : void 0 !== d ? d.videojs : null, k = e(j), l = a("@hola.org/mux.js"), m = e(l), n = a("./remove-cues-from-track"), o = e(n), p = a("./create-text-tracks-if-necessary"), q = e(p), r = a("./add-text-track-data"), s = e(r), t = a("./flash-constants"), u = e(t), v = function (a) { window.setTimeout(a, u.default.TIME_BETWEEN_CHUNKS) }, w = function () { return Math.random().toString(36).slice(2, 8) }, x = function (a, b) { ("number" != typeof b || b < 0) && (b = 0); var c = Math.pow(10, b); return Math.round(a * c) / c }, y = function (a) { var b = ""; if (a.length <= 8192) return String.fromCharCode.apply(null, a); for (var c = 0; c < a.length; c += 8192) b += String.fromCharCode.apply(null, a.subarray(c, c + 8192)); return b }, z = function (a) { function b(a) { var c = this; f(this, b), i(Object.getPrototypeOf(b.prototype), "constructor", this).call(this); var d = void 0; this.chunkSize_ = u.default.BYTES_PER_CHUNK, this.buffer_ = [], this.bufferSize_ = 0, this.basePtsOffset_ = NaN, this.mediaSource = a, this.updating = !1, this.timestampOffset_ = 0, this.segmentParser_ = new m.default.flv.Transmuxer, this.segmentParser_.on("data", this.receiveBuffer_.bind(this)), d = window.btoa(String.fromCharCode.apply(null, Array.prototype.slice.call(this.segmentParser_.getFlvHeader()))); var e = this.mediaSource.player_.id().replace(/[^a-zA-Z0-9]/g, "_"); this.flashEncodedHeaderName_ = "vjs_flashEncodedHeader_" + e + w(), this.flashEncodedDataName_ = "vjs_flashEncodedData_" + e + w(), window[this.flashEncodedHeaderName_] = function () { return delete window[c.flashEncodedHeaderName_], d }, this.mediaSource.swfObj.vjs_appendChunkReady(this.flashEncodedHeaderName_), Object.defineProperty(this, "timestampOffset", { get: function () { return this.timestampOffset_ }, set: function (a) { "number" == typeof a && a >= 0 && (this.timestampOffset_ = a, this.segmentParser_ = new m.default.flv.Transmuxer, this.segmentParser_.on("data", this.receiveBuffer_.bind(this)), this.mediaSource.swfObj.vjs_discontinuity(), this.basePtsOffset_ = NaN) } }), Object.defineProperty(this, "buffered", { get: function () { if (!(this.mediaSource && this.mediaSource.swfObj && "vjs_getProperty" in this.mediaSource.swfObj)) return k.default.createTimeRange(); var a = this.mediaSource.swfObj.vjs_getProperty("buffered"); return a && a.length && (a[0][0] = x(a[0][0], 3), a[0][1] = x(a[0][1], 3)), k.default.createTimeRanges(a) } }), this.mediaSource.player_.on("seeked", function () { (0, o.default)(0, 1 / 0, c.metadataTrack_), (0, o.default)(0, 1 / 0, c.inbandTextTrack_) }) } return g(b, a), h(b, [{ key: "appendBuffer", value: function (a) { var b = this, c = void 0, d = 0; if (this.updating) throw c = new Error("SourceBuffer.append() cannot be called while an update is in progress"), c.name = "InvalidStateError", c.code = 11, c; this.updating = !0, this.mediaSource.readyState = "open", this.trigger({ type: "update" }); ! function c() { b.segmentParser_.push(a.subarray(d, d + 524288)), d += 524288, v(d < a.byteLength ? c : b.segmentParser_.flush.bind(b.segmentParser_)) }() } }, { key: "abort", value: function () { this.buffer_ = [], this.bufferSize_ = 0, this.mediaSource.swfObj.vjs_abort(), this.updating && (this.updating = !1, this.trigger({ type: "updateend" })) } }, { key: "remove", value: function (a, b) { (0, o.default)(a, b, this.metadataTrack_), (0, o.default)(a, b, this.inbandTextTrack_), this.trigger({ type: "update" }), this.trigger({ type: "updateend" }) } }, { key: "receiveBuffer_", value: function (a) { var b = this; (0, q.default)(this, this.mediaSource, a), (0, s.default)(this, a.captions, a.metadata), v(function () { var c = b.convertTagsToData_(a); 0 === b.buffer_.length && v(b.processBuffer_.bind(b)), c && (b.buffer_.push(c), b.bufferSize_ += c.byteLength) }) } }, { key: "processBuffer_", value: function () { var a = this, b = u.default.BYTES_PER_CHUNK; if (!this.buffer_.length) return void(!1 !== this.updating && (this.updating = !1, this.trigger({ type: "updateend" }))); for (var c = new Uint8Array(Math.min(b, this.bufferSize_)), d = c.byteLength; d;) { var e = this.buffer_[0].subarray(0, d); c.set(e, c.byteLength - d), e.byteLength < this.buffer_[0].byteLength ? this.buffer_[0] = this.buffer_[0].subarray(d) : this.buffer_.shift(), d -= e.byteLength } this.bufferSize_ -= c.byteLength; var f = window.btoa(y(c)); window[this.flashEncodedDataName_] = function () { return v(a.processBuffer_.bind(a)), delete window[a.flashEncodedDataName_], f }, this.mediaSource.swfObj.vjs_appendChunkReady(this.flashEncodedDataName_) } }, { key: "convertTagsToData_", value: function (a) { var b = 0, c = this.mediaSource.tech_, d = 0, e = void 0, f = void 0, g = void 0, h = [], i = this.getOrderedTags_(a); for (isNaN(this.basePtsOffset_) && i.length && (this.basePtsOffset_ = i[0].pts), c.buffered().length && (d = c.buffered().end(0) - this.timestampOffset), d = Math.max(d, c.currentTime() - this.timestampOffset), d *= 1e3, d += this.basePtsOffset_, e = 0; e < i.length; e++) i[e].pts >= d && h.push(i[e]); if (0 !== h.length) { for (e = 0; e < h.length; e++) b += h[e].bytes.byteLength; for (g = new Uint8Array(b), e = 0, f = 0; e < h.length; e++) g.set(h[e].bytes, f), f += h[e].bytes.byteLength; return g } } }, { key: "getOrderedTags_", value: function (a) { for (var b = a.tags.videoTags, c = a.tags.audioTags, d = void 0, e = []; b.length || c.length;) d = b.length ? c.length && c[0].dts < b[0].dts ? c.shift() : b.shift() : c.shift(), e.push(d.finalize()); return e } }]), b }(k.default.EventTarget); c.default = z, b.exports = c.default }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./add-text-track-data": 8, "./create-text-tracks-if-necessary": 10, "./flash-constants": 11, "./remove-cues-from-track": 15, "@hola.org/mux.js": 26 }], 14: [function (a, b, c) { (function (d) { "use strict"; function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = function (a, b, c) { for (var d = !0; d;) { var e = a, f = b, g = c; d = !1, null === e && (e = Function.prototype); var h = Object.getOwnPropertyDescriptor(e, f); if (void 0 !== h) { if ("value" in h) return h.value; var i = h.get; if (void 0 === i) return; return i.call(g) } var j = Object.getPrototypeOf(e); if (null === j) return; a = j, b = f, c = g, d = !0, h = j = void 0 } }, j = "undefined" != typeof window ? window.videojs : void 0 !== d ? d.videojs : null, k = e(j), l = a("./virtual-source-buffer"), m = e(l), n = a("./codec-utils"), o = function (a) { return a.map(function (a) { return a.replace(/avc1\.(\d+)\.(\d+)/i, function (a, b, c) { return "avc1." + ("00" + Number(b).toString(16)).slice(-2) + "00" + ("00" + Number(c).toString(16)).slice(-2) }) }) }, p = function (a) { function b() { var a = this; f(this, b), i(Object.getPrototypeOf(b.prototype), "constructor", this).call(this); var c = void 0; this.nativeMediaSource_ = new window.MediaSource; for (c in this.nativeMediaSource_) c in b.prototype || "function" != typeof this.nativeMediaSource_[c] || (this[c] = this.nativeMediaSource_[c].bind(this.nativeMediaSource_)); this.duration_ = NaN, Object.defineProperty(this, "duration", { get: function () { return this.duration_ === 1 / 0 ? this.duration_ : this.nativeMediaSource_.duration }, set: function (a) { if (this.duration_ = a, a !== 1 / 0) return void(this.nativeMediaSource_.duration = a) } }), Object.defineProperty(this, "seekable", { get: function () { return this.duration_ === 1 / 0 ? k.default.createTimeRanges([ [0, this.nativeMediaSource_.duration] ]) : this.nativeMediaSource_.seekable } }), Object.defineProperty(this, "readyState", { get: function () { return this.nativeMediaSource_.readyState } }), Object.defineProperty(this, "activeSourceBuffers", { get: function () { return this.activeSourceBuffers_ } }), this.sourceBuffers = [], this.activeSourceBuffers_ = [], this.updateActiveSourceBuffers_ = function () { a.activeSourceBuffers_.length = 0; for (var b = !1, c = !0, d = 0; d < a.player_.audioTracks().length; d++) { var e = a.player_.audioTracks()[d]; if (e.enabled && "main" !== e.kind) { b = !0, c = !1; break } } a.sourceBuffers.forEach(function (d) { if (d.videoCodec_ && d.audioCodec_) d.audioDisabled_ = b; else if (d.videoCodec_ && !d.audioCodec_) d.audioDisabled_ = !0, c = !1; else if (!d.videoCodec_ && d.audioCodec_ && (d.audioDisabled_ = c, c)) return; a.activeSourceBuffers_.push(d) }) }, ["sourceopen", "sourceclose", "sourceended"].forEach(function (a) { this.nativeMediaSource_.addEventListener(a, this.trigger.bind(this)) }, this), this.on("sourceopen", function (b) { var c = document.querySelector('[src="' + a.url_ + '"]'); c && (a.player_ = (0, k.default)(c.parentNode), a.player_.audioTracks().on("change", a.updateActiveSourceBuffers_), a.player_.audioTracks().on("addtrack", a.updateActiveSourceBuffers_), a.player_.audioTracks().on("removetrack", a.updateActiveSourceBuffers_)) }), this.on("sourceclose", function (a) { this.sourceBuffers.forEach(function (a) { a.transmuxer_ && a.transmuxer_.terminate() }), this.sourceBuffers.length = 0, this.player_ && (this.player_.audioTracks().off("change", this.updateActiveSourceBuffers_), this.player_.audioTracks().off("addtrack", this.updateActiveSourceBuffers_), this.player_.audioTracks().off("removetrack", this.updateActiveSourceBuffers_)) }) } return g(b, a), h(b, [{ key: "addSeekableRange_", value: function (a, b) { var c = void 0; if (this.duration !== 1 / 0) throw c = new Error("MediaSource.addSeekableRange() can only be invoked when the duration is Infinity"), c.name = "InvalidStateError", c.code = 11, c; (b > this.nativeMediaSource_.duration || isNaN(this.nativeMediaSource_.duration)) && (this.nativeMediaSource_.duration = b) } }, { key: "addSourceBuffer", value: function (a) { var b = void 0, c = (0, n.parseContentType)(a); if ("video/mp2t" === c.type) { var d = []; c.parameters && c.parameters.codecs && (d = c.parameters.codecs.split(","), d = o(d), d = d.map(function (a) { return a.trim() }), d = d.filter(function (a) { return (0, n.isAudioCodec)(a) || (0, n.isVideoCodec)(a) })), 0 === d.length && (d = ["avc1.4d400d", "mp4a.40.2"]), b = new m.default(this, d), 0 !== this.sourceBuffers.length && (this.sourceBuffers[0].createRealSourceBuffers_(), b.createRealSourceBuffers_(), this.sourceBuffers[0].audioDisabled_ = !0) } else b = this.nativeMediaSource_.addSourceBuffer(a); return this.sourceBuffers.push(b), b } }]), b }(k.default.EventTarget); c.default = p, b.exports = c.default }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./codec-utils": 9, "./virtual-source-buffer": 18 }], 15: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = function (a, b, c) { var d = void 0, e = void 0; if (c) for (d = c.cues.length; d--;) e = c.cues[d], e.startTime <= b && e.endTime >= a && c.removeCue(e) }; c.default = d, b.exports = c.default }, {}], 16: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("@hola.org/mux.js"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a) { a.on("data", function (a) { var b = a.data; a.data = b.buffer, postMessage({ action: "data", segment: a, byteOffset: b.byteOffset, byteLength: b.byteLength }, [a.data]) }), a.captionStream && a.captionStream.on("data", function (a) { postMessage({ action: "caption", data: a }) }), a.on("done", function (a) { postMessage({ action: "done" }) }) }, i = function () { function a(b) { d(this, a), this.options = b || {}, this.init() } return e(a, [{ key: "init", value: function () { this.transmuxer && this.transmuxer.dispose(), this.transmuxer = new g.default.mp4.Transmuxer(this.options), h(this.transmuxer) } }, { key: "push", value: function (a) { var b = new Uint8Array(a.data, a.byteOffset, a.byteLength); this.transmuxer.push(b) } }, { key: "reset", value: function () { this.init() } }, { key: "setTimestampOffset", value: function (a) { var b = a.timestampOffset || 0; this.transmuxer.setBaseMediaDecodeTime(Math.round(9e4 * b)) } }, { key: "flush", value: function (a) { this.transmuxer.flush() } }]), a }(), j = function (a) { a.onmessage = function (a) { if ("init" === a.data.action && a.data.options) return void(this.messageHandlers = new i(a.data.options)); this.messageHandlers || (this.messageHandlers = new i), a.data && a.data.action && "init" !== a.data.action && this.messageHandlers[a.data.action] && this.messageHandlers[a.data.action](a.data) } }; c.default = function (a) { return new j(a) }, b.exports = c.default }, { "@hola.org/mux.js": 26 }], 17: [function (a, b, c) { (function (b) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } Object.defineProperty(c, "__esModule", { value: !0 }); var e = a("./flash-media-source"), f = d(e), g = a("./html-media-source"), h = d(g), i = "undefined" != typeof window ? window.videojs : void 0 !== b ? b.videojs : null, j = d(i), k = 0, l = { mode: "auto" }; j.default.mediaSources = {}; var m = function (a, b) { var c = j.default.mediaSources[a]; if (!c) throw new Error("Media Source not found (Video.js)"); c.trigger({ type: "sourceopen", swfId: b }) }, n = function () { return !!window.MediaSource && !!window.MediaSource.isTypeSupported && window.MediaSource.isTypeSupported('video/mp4;codecs="avc1.4d400d,mp4a.40.2"') }, o = function (a) { var b = j.default.mergeOptions(l, a); return this.MediaSource = { open: m, supportsNativeMediaSources: n }, "html5" === b.mode || "auto" === b.mode && n() ? new h.default : new f.default }; c.MediaSource = o, o.open = m, o.supportsNativeMediaSources = n; var p = { createObjectURL: function (a) { var b = void 0; return a instanceof h.default ? (b = window.URL.createObjectURL(a.nativeMediaSource_), a.url_ = b, b) : a instanceof f.default ? (b = "blob:vjs-media-source/" + k, k++, j.default.mediaSources[b] = a, b) : (b = window.URL.createObjectURL(a), a.url_ = b, b) } }; c.URL = p, j.default.MediaSource = o, j.default.URL = p }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./flash-media-source": 12, "./html-media-source": 14 }], 18: [function (a, b, c) { (function (d) { "use strict"; function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = function (a, b, c) { for (var d = !0; d;) { var e = a, f = b, g = c; d = !1, null === e && (e = Function.prototype); var h = Object.getOwnPropertyDescriptor(e, f); if (void 0 !== h) { if ("value" in h) return h.value; var i = h.get; if (void 0 === i) return; return i.call(g) } var j = Object.getPrototypeOf(e); if (null === j) return; a = j, b = f, c = g, d = !0, h = j = void 0 } }, j = "undefined" != typeof window ? window.videojs : void 0 !== d ? d.videojs : null, k = e(j), l = a("./create-text-tracks-if-necessary"), m = e(l), n = a("./remove-cues-from-track"), o = e(n), p = a("./add-text-track-data"), q = e(p), r = a("webworkify"), s = e(r), t = a("./transmuxer-worker"), u = e(t), v = a("./codec-utils"), w = function (a) { function b(a, c) { var d = this; f(this, b), i(Object.getPrototypeOf(b.prototype), "constructor", this).call(this, k.default.EventTarget), this.timestampOffset_ = 0, this.pendingBuffers_ = [], this.bufferUpdating_ = !1, this.mediaSource_ = a, this.codecs_ = c, this.audioCodec_ = null, this.videoCodec_ = null, this.audioDisabled_ = !1; var e = { remux: !1 }; this.codecs_.forEach(function (a) { (0, v.isAudioCodec)(a) ? d.audioCodec_ = a: (0, v.isVideoCodec)(a) && (d.videoCodec_ = a) }), this.transmuxer_ = (0, s.default)(u.default), this.transmuxer_.postMessage({ action: "init", options: e }), this.transmuxer_.onmessage = function (a) { return "data" === a.data.action ? d.data_(a) : "done" === a.data.action ? d.done_(a) : void 0 }, Object.defineProperty(this, "timestampOffset", { get: function () { return this.timestampOffset_ }, set: function (a) { "number" == typeof a && a >= 0 && (this.timestampOffset_ = a, this.transmuxer_.postMessage({ action: "setTimestampOffset", timestampOffset: a })) } }), Object.defineProperty(this, "appendWindowStart", { get: function () { return (this.videoBuffer_ || this.audioBuffer_).appendWindowStart }, set: function (a) { this.videoBuffer_ && (this.videoBuffer_.appendWindowStart = a), this.audioBuffer_ && (this.audioBuffer_.appendWindowStart = a) } }), Object.defineProperty(this, "updating", { get: function () { return !!(this.bufferUpdating_ || !this.audioDisabled_ && this.audioBuffer_ && this.audioBuffer_.updating || this.videoBuffer_ && this.videoBuffer_.updating) } }), Object.defineProperty(this, "buffered", { get: function () { var a = null, b = null, c = 0, d = [], e = []; if (!this.videoBuffer_ && (this.audioDisabled_ || !this.audioBuffer_)) return k.default.createTimeRange(); if (!this.videoBuffer_) return this.audioBuffer_.buffered; if (this.audioDisabled_ || !this.audioBuffer_) return this.videoBuffer_.buffered; if (!(this.videoBuffer_ && 0 !== this.videoBuffer_.buffered.length || this.audioBuffer_ && 0 !== this.audioBuffer_.buffered.length)) return k.default.createTimeRange(); for (var f = this.videoBuffer_.buffered, g = this.audioBuffer_.buffered, h = f.length; h--;) d.push({ time: f.start(h), type: "start" }), d.push({ time: f.end(h), type: "end" }); for (h = g.length; h--;) d.push({ time: g.start(h), type: "start" }), d.push({ time: g.end(h), type: "end" }); for (d.sort(function (a, b) { return a.time - b.time }), h = 0; h < d.length; h++) "start" === d[h].type ? 2 === ++c && (a = d[h].time) : "end" === d[h].type && 1 === --c && (b = d[h].time), null !== a && null !== b && (e.push([a, b]), a = null, b = null); return k.default.createTimeRanges(e) } }) } return g(b, a), h(b, [{ key: "data_", value: function (a) { var b = a.data.segment; b.data = new Uint8Array(b.data, a.data.byteOffset, a.data.byteLength), (0, m.default)(this, this.mediaSource_, b), this.pendingBuffers_.push(b) } }, { key: "done_", value: function (a) { this.processPendingSegments_() } }, { key: "createRealSourceBuffers_", value: function () { var a = this, b = ["audio", "video"]; b.forEach(function (c) { if (a[c + "Codec_"] && !a[c + "Buffer_"]) { var d = null; a.mediaSource_[c + "Buffer_"] ? d = a.mediaSource_[c + "Buffer_"] : (d = a.mediaSource_.nativeMediaSource_.addSourceBuffer(c + '/mp4;codecs="' + a[c + "Codec_"] + '"'), a.mediaSource_[c + "Buffer_"] = d), a[c + "Buffer_"] = d, ["update", "updatestart", "updateend"].forEach(function (e) { d.addEventListener(e, function () { if ("audio" !== c || !a.audioDisabled_) { return b.every(function (b) { return !("audio" !== b || !a.audioDisabled_) || (c === b || !a[b + "Buffer_"] || !a[b + "Buffer_"].updating) }) ? a.trigger(e) : void 0 } }) }) } }) } }, { key: "appendBuffer", value: function (a) { this.bufferUpdating_ = !0, this.transmuxer_.postMessage({ action: "push", data: a.buffer, byteOffset: a.byteOffset, byteLength: a.byteLength }, [a.buffer]), this.transmuxer_.postMessage({ action: "flush" }) } }, { key: "pushBuffer", value: function (a) { this.transmuxer_.postMessage({ action: "push", data: a.buffer, byteOffset: a.byteOffset, byteLength: a.byteLength }, [a.buffer]) } }, { key: "flushBuffer", value: function () { this.bufferUpdating_ = !0, this.transmuxer_.postMessage({ action: "flush" }) } }, { key: "remove", value: function (a, b) { this.videoBuffer_ && this.videoBuffer_.remove(a, b), !this.audioDisabled_ && this.audioBuffer_ && this.audioBuffer_.remove(a, b), (0, o.default)(a, b, this.metadataTrack_), (0, o.default)(a, b, this.inbandTextTrack_) } }, { key: "processPendingSegments_", value: function () { var a = { video: { segments: [], bytes: 0 }, audio: { segments: [], bytes: 0 }, captions: [], metadata: [] }; a = this.pendingBuffers_.reduce(function (a, b) { var c = b.type, d = b.data; return a[c].segments.push(d), a[c].bytes += d.byteLength, b.captions && (a.captions = a.captions.concat(b.captions)), b.info && (a[c].info = b.info), b.metadata && (a.metadata = a.metadata.concat(b.metadata)), a }, a), this.videoBuffer_ || this.audioBuffer_ || (0 === a.video.bytes && (this.videoCodec_ = null), 0 === a.audio.bytes && (this.audioCodec_ = null), this.createRealSourceBuffers_()), a.audio.info && this.mediaSource_.trigger({ type: "audioinfo", info: a.audio.info }), a.video.info && this.mediaSource_.trigger({ type: "videoinfo", info: a.video.info }), this.videoBuffer_ && (this.concatAndAppendSegments_(a.video, this.videoBuffer_), (0, q.default)(this, a.captions, a.metadata)), !this.audioDisabled_ && this.audioBuffer_ && this.concatAndAppendSegments_(a.audio, this.audioBuffer_), this.pendingBuffers_.length = 0, this.bufferUpdating_ = !1 } }, { key: "concatAndAppendSegments_", value: function (a, b) { var c = 0, d = void 0; a.bytes && (d = new Uint8Array(a.bytes), a.segments.forEach(function (a) { d.set(a, c), c += a.byteLength }), b.appendBuffer(d)) } }, { key: "abort", value: function () { this.videoBuffer_ && this.videoBuffer_.abort(), this.audioBuffer_ && this.audioBuffer_.abort(), this.transmuxer_ && this.transmuxer_.postMessage({ action: "reset" }), this.pendingBuffers_.length = 0, this.bufferUpdating_ = !1 } }]), b }(k.default.EventTarget); c.default = w, b.exports = c.default }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "./add-text-track-data": 8, "./codec-utils": 9, "./create-text-tracks-if-necessary": 10, "./remove-cues-from-track": 15, "./transmuxer-worker": 16, webworkify: 41 }], 19: [function (a, b, c) { "use strict"; var d, e = a("../utils/stream.js"); d = function () { var a = new Uint8Array, b = 0; d.prototype.init.call(this), this.setTimestamp = function (a) { b = a }, this.parseId3TagSize = function (a, b) { var c = a[b + 6] << 21 | a[b + 7] << 14 | a[b + 8] << 7 | a[b + 9]; return (16 & a[b + 5]) >> 4 ? c + 20 : c + 10 }, this.parseAdtsSize = function (a, b) { var c = (224 & a[b + 5]) >> 5, d = a[b + 4] << 3; return 6144 & a[b + 3] | d | c }, this.push = function (c) { var d, e, f, g, h = 0, i = 0; for (a.length ? (g = a.length, a = new Uint8Array(c.byteLength + g), a.set(a.subarray(0, g)), a.set(c, g)) : a = c; a.length - i >= 3;) if (a[i] !== "I".charCodeAt(0) || a[i + 1] !== "D".charCodeAt(0) || a[i + 2] !== "3".charCodeAt(0)) if (!0 & a[i] && 240 == (240 & a[i + 1])) { if (a.length - i < 7) break; if ((h = this.parseAdtsSize(a, i)) > a.length) break; f = { type: "audio", data: a.subarray(i, i + h), pts: b, dts: b }, this.trigger("data", f), i += h } else i++; else { if (a.length - i < 10) break; if ((h = this.parseId3TagSize(a, i)) > a.length) break; e = { type: "timed-metadata", data: a.subarray(i, i + h) }, this.trigger("data", e), i += h } d = a.length - i, a = d > 0 ? a.subarray(i) : new Uint8Array } }, d.prototype = new e, b.exports = d }, { "../utils/stream.js": 40 }], 20: [function (a, b, c) { "use strict"; var d, e = a("../utils/stream.js"), f = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; d = function () { var a; d.prototype.init.call(this), this.push = function (b) { var c, d, e, g, h, i, j = 0, k = 0; if ("audio" === b.type) for (a ? (g = a, a = new Uint8Array(g.byteLength + b.data.byteLength), a.set(g), a.set(b.data, g.byteLength)) : a = b.data; j + 5 < a.length;) if (255 === a[j] && 240 == (246 & a[j + 1])) { if (d = 2 * (1 & ~a[j + 1]), c = (3 & a[j + 3]) << 11 | a[j + 4] << 3 | (224 & a[j + 5]) >> 5, h = 1024 * (1 + (3 & a[j + 6])), i = 9e4 * h / f[(60 & a[j + 2]) >>> 2], e = j + c, a.byteLength < e) return; if (this.trigger("data", { pts: b.pts + k * i, dts: b.dts + k * i, sampleCount: h, audioobjecttype: 1 + (a[j + 2] >>> 6 & 3), channelcount: (1 & a[j + 2]) << 2 | (192 & a[j + 3]) >>> 6, samplerate: f[(60 & a[j + 2]) >>> 2], samplingfrequencyindex: (60 & a[j + 2]) >>> 2, samplesize: 16, data: a.subarray(j + 7 + d, e) }), a.byteLength === e) return void(a = void 0); k++, a = a.subarray(e) } else j++ }, this.flush = function () { this.trigger("done") } }, d.prototype = new e, b.exports = d }, { "../utils/stream.js": 40 }], 21: [function (a, b, c) { "use strict"; var d, e, f = a("../utils/stream.js"), g = a("../utils/exp-golomb.js"), h = { 100: !0, 110: !0, 122: !0, 244: !0, 44: !0, 83: !0, 86: !0, 118: !0, 128: !0, 138: !0, 139: !0, 134: !0 }, i = { slice_layer_without_partitioning_rbsp: 1, slice_layer_without_partitioning_rbsp_idr: 5, sei_rbsp: 6, seq_parameter_set_rbsp: 7, pic_parameter_set_rbsp: 8, access_unit_delimiter_rbsp: 9 }; e = function () { var a, b, c = 0; e.prototype.init.call(this), this.push = function (d) { var e; for (b ? (e = new Uint8Array(b.byteLength + d.data.byteLength), e.set(b), e.set(d.data, b.byteLength), b = e) : b = d.data; c < b.byteLength - 3; c++) if (1 === b[c + 2]) { a = c + 5; break } for (; a < b.byteLength;) switch (b[a]) { case 0: if (0 !== b[a - 1]) { a += 2; break } if (0 !== b[a - 2]) { a++; break } c + 3 !== a - 2 && this.trigger("data", b.subarray(c + 3, a - 2)); do { a++ } while (1 !== b[a] && a < b.length); c = a - 2, a += 3; break; case 1: if (0 !== b[a - 1] || 0 !== b[a - 2]) { a += 3; break } this.trigger("data", b.subarray(c + 3, a - 2)), c = a - 2, a += 3; break; default: a += 3 } b = b.subarray(c), a -= c, c = 0 }, this.flush = function () { b && b.byteLength > 3 && this.trigger("data", b.subarray(c + 3)), b = null, c = 0, this.trigger("done") } }, e.prototype = new f, d = function () { var a, b, c, f, i, j, k, l = new e; d.prototype.init.call(this), a = this, this.push = function (a) { "video" === a.type && (b = a.trackId, c = a.pts, f = a.dts, l.push(a)) }, l.on("data", function (d) { var e = { trackId: b, pts: c, dts: f, data: d }, g = 31 & d[0]; (1 == g || g >= 5 && g <= 9) && (e.nalUnitType = g), 7 != g && 6 != g || (e.escapedRBSP = i(d.subarray(1)), e.config = 7 == g ? j(e.escapedRBSP) : null), a.trigger("data", e) }), l.on("done", function () { a.trigger("done") }), this.flush = function () { l.flush() }, k = function (a, b) { var c, d, e = 8, f = 8; for (c = 0; c < a; c++) 0 !== f && (d = b.readExpGolomb(), f = (e + d + 256) % 256), e = 0 === f ? e : f }, i = function (a) { for (var b, c, d = a.byteLength, e = [], f = 1; f < d - 2;) 0 === a[f] && 0 === a[f + 1] && 3 === a[f + 2] ? (e.push(f + 2), f += 2) : f++; if (0 === e.length) return a; b = d - e.length, c = new Uint8Array(b); var g = 0; for (f = 0; f < b; g++, f++) g === e[0] && (g++, e.shift()), c[f] = a[g]; return c }, j = function (a) { var b, c, d, e, f, i, j, l, m, n, o, p, q, r = 0, s = 0, t = 0, u = 0, v = 1; if (b = new g(a), c = b.readUnsignedByte(), e = b.readUnsignedByte(), d = b.readUnsignedByte(), b.skipUnsignedExpGolomb(), h[c] && (f = b.readUnsignedExpGolomb(), 3 === f && b.skipBits(1), b.skipUnsignedExpGolomb(), b.skipUnsignedExpGolomb(), b.skipBits(1), b.readBoolean())) for (o = 3 !== f ? 8 : 12, q = 0; q < o; q++) b.readBoolean() && (q < 6 ? k(16, b) : k(64, b)); if (b.skipUnsignedExpGolomb(), 0 === (i = b.readUnsignedExpGolomb())) b.readUnsignedExpGolomb(); else if (1 === i) for (b.skipBits(1), b.skipExpGolomb(), b.skipExpGolomb(), j = b.readUnsignedExpGolomb(), q = 0; q < j; q++) b.skipExpGolomb(); if (b.skipUnsignedExpGolomb(), b.skipBits(1), l = b.readUnsignedExpGolomb(), m = b.readUnsignedExpGolomb(), n = b.readBits(1), 0 === n && b.skipBits(1), b.skipBits(1), b.readBoolean() && (r = b.readUnsignedExpGolomb(), s = b.readUnsignedExpGolomb(), t = b.readUnsignedExpGolomb(), u = b.readUnsignedExpGolomb()), b.readBoolean() && b.readBoolean()) { switch (b.readUnsignedByte()) { case 1: p = [1, 1]; break; case 2: p = [12, 11]; break; case 3: p = [10, 11]; break; case 4: p = [16, 11]; break; case 5: p = [40, 33]; break; case 6: p = [24, 11]; break; case 7: p = [20, 11]; break; case 8: p = [32, 11]; break; case 9: p = [80, 33]; break; case 10: p = [18, 11]; break; case 11: p = [15, 11]; break; case 12: p = [64, 33]; break; case 13: p = [160, 99]; break; case 14: p = [4, 3]; break; case 15: p = [3, 2]; break; case 16: p = [2, 1]; break; case 255: p = [b.readUnsignedByte() << 8 | b.readUnsignedByte(), b.readUnsignedByte() << 8 | b.readUnsignedByte()] } p && (v = p[0] / p[1]) } return { profileIdc: c, levelIdc: d, profileCompatibility: e, width: Math.ceil((16 * (l + 1) - 2 * r - 2 * s) * v), height: (2 - n) * (m + 1) * 16 - 2 * t - 2 * u } } }, d.prototype = new f, b.exports = { H264Stream: d, NalByteStream: e, unitTypes: i } }, { "../utils/exp-golomb.js": 39, "../utils/stream.js": 40 }], 22: [function (a, b, c) { b.exports = { adts: a("./adts"), h264: a("./h264") } }, { "./adts": 20, "./h264": 21 }], 23: [function (a, b, c) { "use strict"; var d; d = function (a, b) { var c, e = 0, f = 16384, g = function (a, b) { var c, d = a.position + b; d < a.bytes.byteLength || (c = new Uint8Array(2 * d), c.set(a.bytes.subarray(0, a.position), 0), a.bytes = c, a.view = new DataView(a.bytes.buffer)) }, h = d.widthBytes || new Uint8Array("width".length), i = d.heightBytes || new Uint8Array("height".length), j = d.videocodecidBytes || new Uint8Array("videocodecid".length); if (!d.widthBytes) { for (c = 0; c < "width".length; c++) h[c] = "width".charCodeAt(c); for (c = 0; c < "height".length; c++) i[c] = "height".charCodeAt(c); for (c = 0; c < "videocodecid".length; c++) j[c] = "videocodecid".charCodeAt(c); d.widthBytes = h, d.heightBytes = i, d.videocodecidBytes = j } switch (this.keyFrame = !1, a) { case d.VIDEO_TAG: this.length = 16, f *= 6; break; case d.AUDIO_TAG: this.length = 13, this.keyFrame = !0; break; case d.METADATA_TAG: this.length = 29, this.keyFrame = !0; break; default: throw "Error Unknown TagType" } this.bytes = new Uint8Array(f), this.view = new DataView(this.bytes.buffer), this.bytes[0] = a, this.position = this.length, this.keyFrame = b, this.pts = 0, this.dts = 0, this.writeBytes = function (a, b, c) { var d, e = b || 0; c = c || a.byteLength, d = e + c, g(this, c), this.bytes.set(a.subarray(e, d), this.position), this.position += c, this.length = Math.max(this.length, this.position) }, this.writeByte = function (a) { g(this, 1), this.bytes[this.position] = a, this.position++, this.length = Math.max(this.length, this.position) }, this.writeShort = function (a) { g(this, 2), this.view.setUint16(this.position, a), this.position += 2, this.length = Math.max(this.length, this.position) }, this.negIndex = function (a) { return this.bytes[this.length - a] }, this.nalUnitSize = function () { return 0 === e ? 0 : this.length - (e + 4) }, this.startNalUnit = function () { if (e > 0) throw new Error("Attempted to create new NAL wihout closing the old one"); e = this.length, this.length += 4, this.position = this.length }, this.endNalUnit = function (a) { var b, c; this.length === e + 4 ? this.length -= 4 : e > 0 && (b = e + 4, c = this.length - b, this.position = e, this.view.setUint32(this.position, c), this.position = this.length, a && a.push(this.bytes.subarray(b, b + c))), e = 0 }, this.writeMetaDataDouble = function (a, b) { var c; if (g(this, 2 + a.length + 9), this.view.setUint16(this.position, a.length), this.position += 2, "width" === a) this.bytes.set(h, this.position), this.position += 5; else if ("height" === a) this.bytes.set(i, this.position), this.position += 6; else if ("videocodecid" === a) this.bytes.set(j, this.position), this.position += 12; else for (c = 0; c < a.length; c++) this.bytes[this.position] = a.charCodeAt(c), this.position++; this.position++, this.view.setFloat64(this.position, b), this.position += 8, this.length = Math.max(this.length, this.position), ++e }, this.writeMetaDataBoolean = function (a, b) { var c; for (g(this, 2), this.view.setUint16(this.position, a.length), this.position += 2, c = 0; c < a.length; c++) g(this, 1), this.bytes[this.position] = a.charCodeAt(c), this.position++; g(this, 2), this.view.setUint8(this.position, 1), this.position++, this.view.setUint8(this.position, b ? 1 : 0), this.position++, this.length = Math.max(this.length, this.position), ++e }, this.finalize = function () { var a, c; switch (this.bytes[0]) { case d.VIDEO_TAG: this.bytes[11] = 7 | (this.keyFrame || b ? 16 : 32), this.bytes[12] = b ? 0 : 1, a = this.pts - this.dts, this.bytes[13] = (16711680 & a) >>> 16, this.bytes[14] = (65280 & a) >>> 8, this.bytes[15] = (255 & a) >>> 0; break; case d.AUDIO_TAG: this.bytes[11] = 175, this.bytes[12] = b ? 0 : 1; break; case d.METADATA_TAG: this.position = 11, this.view.setUint8(this.position, 2), this.position++, this.view.setUint16(this.position, 10), this.position += 2, this.bytes.set([111, 110, 77, 101, 116, 97, 68, 97, 116, 97], this.position), this.position += 10, this.bytes[this.position] = 8, this.position++, this.view.setUint32(this.position, e), this.position = this.length, this.bytes.set([0, 0, 9], this.position), this.position += 3, this.length = this.position } return c = this.length - 11, this.bytes[1] = (16711680 & c) >>> 16, this.bytes[2] = (65280 & c) >>> 8, this.bytes[3] = (255 & c) >>> 0, this.bytes[4] = (16711680 & this.dts) >>> 16, this.bytes[5] = (65280 & this.dts) >>> 8, this.bytes[6] = (255 & this.dts) >>> 0, this.bytes[7] = (4278190080 & this.dts) >>> 24, this.bytes[8] = 0, this.bytes[9] = 0, this.bytes[10] = 0, g(this, 4), this.view.setUint32(this.length, this.length), this.length += 4, this.position += 4, this.bytes = this.bytes.subarray(0, this.length), this.frameTime = d.frameTime(this.bytes), this } }, d.AUDIO_TAG = 8, d.VIDEO_TAG = 9, d.METADATA_TAG = 18, d.isAudioFrame = function (a) { return d.AUDIO_TAG === a[0] }, d.isVideoFrame = function (a) { return d.VIDEO_TAG === a[0] }, d.isMetaData = function (a) { return d.METADATA_TAG === a[0] }, d.isKeyFrame = function (a) { return d.isVideoFrame(a) ? 23 === a[11] : !!d.isAudioFrame(a) || !!d.isMetaData(a) }, d.frameTime = function (a) { var b = a[4] << 16; return b |= a[5] << 8, b |= a[6] << 0, b |= a[7] << 24 }, b.exports = d }, {}], 24: [function (a, b, c) { b.exports = { tag: a("./flv-tag"), Transmuxer: a("./transmuxer"), tools: a("../tools/flv-inspector") } }, { "../tools/flv-inspector": 37, "./flv-tag": 23, "./transmuxer": 25 }], 25: [function (a, b, c) { "use strict"; var d, e, f, g, h, i, j, k = a("../utils/stream.js"), l = a("./flv-tag.js"), m = a("../m2ts/m2ts.js"), n = a("../codecs"), o = n.adts, p = n.h264.H264Stream; h = function (a, b) { "number" == typeof b.pts && (void 0 === a.timelineStartInfo.pts ? a.timelineStartInfo.pts = b.pts : a.timelineStartInfo.pts = Math.min(a.timelineStartInfo.pts, b.pts)), "number" == typeof b.dts && (void 0 === a.timelineStartInfo.dts ? a.timelineStartInfo.dts = b.dts : a.timelineStartInfo.dts = Math.min(a.timelineStartInfo.dts, b.dts)) }, i = function (a, b) { var c = new l(l.METADATA_TAG); return c.dts = b, c.pts = b, c.writeMetaDataDouble("videocodecid", 7), c.writeMetaDataDouble("width", a.width), c.writeMetaDataDouble("height", a.height), c }, j = function (a, b) { var c, d = new l(l.VIDEO_TAG, !0); for (d.dts = b, d.pts = b, d.writeByte(1), d.writeByte(a.profileIdc), d.writeByte(a.profileCompatibility), d.writeByte(a.levelIdc), d.writeByte(255), d.writeByte(225), d.writeShort(a.sps[0].length), d.writeBytes(a.sps[0]), d.writeByte(a.pps.length), c = 0; c < a.pps.length; ++c) d.writeShort(a.pps[c].length), d.writeBytes(a.pps[c]); return d }, f = function (a) { var b, c = []; f.prototype.init.call(this), this.push = function (b) { h(a, b), a && void 0 === a.channelcount && (a.audioobjecttype = b.audioobjecttype, a.channelcount = b.channelcount, a.samplerate = b.samplerate, a.samplingfrequencyindex = b.samplingfrequencyindex, a.samplesize = b.samplesize, a.extraData = a.audioobjecttype << 11 | a.samplingfrequencyindex << 7 | a.channelcount << 3), b.pts = Math.round(b.pts / 90), b.dts = Math.round(b.dts / 90), c.push(b) }, this.flush = function () { var d, e, f, g = []; if (0 === c.length) return void this.trigger("done"); for (f = -1 / 0; c.length;) d = c.shift(), (a.extraData !== b || d.pts - f >= 1e3) && (e = new l(l.METADATA_TAG), e.pts = d.pts, e.dts = d.dts, e.writeMetaDataDouble("audiocodecid", 10), e.writeMetaDataBoolean("stereo", 2 === a.channelcount), e.writeMetaDataDouble("audiosamplerate", a.samplerate), e.writeMetaDataDouble("audiosamplesize", 16), g.push(e), b = a.extraData, e = new l(l.AUDIO_TAG, !0), e.pts = d.pts, e.dts = d.dts, e.view.setUint16(e.position, a.extraData), e.position += 2, e.length = Math.max(e.length, e.position), g.push(e), f = d.pts), e = new l(l.AUDIO_TAG), e.pts = d.pts, e.dts = d.dts, e.writeBytes(d.data), g.push(e); b = null, this.trigger("data", { track: a, tags: g }), this.trigger("done") } }, f.prototype = new k, e = function (a) { var b, c, d = []; e.prototype.init.call(this), this.finishFrame = function (c, d) { d && (b && a && a.newMetadata && (d.keyFrame || 0 === c.length) && (c.push(i(b, d.pts)), c.push(j(a, d.pts)), a.newMetadata = !1), d.endNalUnit(), c.push(d)) }, this.push = function (b) { h(a, b), b.pts = Math.round(b.pts / 90), b.dts = Math.round(b.dts / 90), d.push(b) }, this.flush = function () { for (var e, f = []; d.length && d[0].nalUnitType !== n.h264.unitTypes.access_unit_delimiter_rbsp;) d.shift(); if (0 === d.length) return void this.trigger("done"); for (; d.length;) { switch (e = d.shift(), e.nalUnitType) { case n.h264.unitTypes.seq_parameter_set_rbsp: a.newMetadata = !0, b = e.config, a.width = b.width, a.height = b.height, a.sps = [e.data], a.profileIdc = b.profileIdc, a.levelIdc = b.levelIdc, a.profileCompatibility = b.profileCompatibility, c.endNalUnit(); break; case n.h264.unitTypes.pic_parameter_set_rbsp: a.newMetadata = !0, a.pps = [e.data], c.endNalUnit(); break; case n.h264.unitTypes.access_unit_delimiter_rbsp: c && this.finishFrame(f, c), c = new l(l.VIDEO_TAG), c.pts = e.pts, c.dts = e.dts; break; case n.h264.unitTypes.slice_layer_without_partitioning_rbsp_idr: c.keyFrame = !0, c.endNalUnit(); break; default: c.endNalUnit() } c.startNalUnit(), c.writeBytes(e.data) } c && this.finishFrame(f, c), this.trigger("data", { track: a, tags: f }), this.trigger("done") } }, e.prototype = new k, g = function (a) { this.numberOfTracks = 0, this.metadataStream = a.metadataStream, this.videoTags = [], this.audioTags = [], this.videoTrack = null, this.audioTrack = null, this.pendingCaptions = [], this.pendingMetadata = [], this.pendingTracks = 0, g.prototype.init.call(this), this.push = function (a) { return a.text ? this.pendingCaptions.push(a) : a.frames ? this.pendingMetadata.push(a) : ("video" === a.track.type && (this.videoTrack = a.track, this.videoTags = a.tags, this.pendingTracks++), void("audio" === a.track.type && (this.audioTrack = a.track, this.audioTags = a.tags, this.pendingTracks++))) } }, g.prototype = new k, g.prototype.flush = function () { var a, b, c, d, e = { tags: {}, captions: [], metadata: [] }; if (!(this.pendingTracks < this.numberOfTracks)) { for (this.videoTrack ? d = this.videoTrack.timelineStartInfo.pts : this.audioTrack && (d = this.audioTrack.timelineStartInfo.pts), e.tags.videoTags = this.videoTags, e.tags.audioTags = this.audioTags, c = 0; c < this.pendingCaptions.length; c++) b = this.pendingCaptions[c], b.startTime = b.startPts - d, b.startTime /= 9e4, b.endTime = b.endPts - d, b.endTime /= 9e4, e.captions.push(b); for (c = 0; c < this.pendingMetadata.length; c++) a = this.pendingMetadata[c], a.cueTime = a.pts - d, a.cueTime /= 9e4, e.metadata.push(a); e.metadata.dispatchType = this.metadataStream.dispatchType, this.videoTrack = null, this.audioTrack = null, this.videoTags = [], this.audioTags = [], this.pendingCaptions.length = 0, this.pendingMetadata.length = 0, this.pendingTracks = 0, this.trigger("data", e), this.trigger("done") } }, d = function (a) { var b, c, h, i, j, k, n, q, r, s = this; d.prototype.init.call(this), a = a || {}, this.metadataStream = new m.MetadataStream, a.metadataStream = this.metadataStream, b = new m.TransportPacketStream, c = new m.TransportParseStream, h = new m.ElementaryStream, i = new o, j = new p, r = new g(a), b.pipe(c).pipe(h), h.pipe(j), h.pipe(i), h.pipe(this.metadataStream).pipe(r), q = new m.CaptionStream, j.pipe(q).pipe(r), h.on("data", function (a) { var b, c, d; if ("metadata" === a.type) { for (b = a.tracks.length; b--;) "video" === a.tracks[b].type ? c = a.tracks[b] : "audio" === a.tracks[b].type && (d = a.tracks[b]); c && !k && (r.numberOfTracks++, k = new e(c), j.pipe(k).pipe(r)), d && !n && (r.numberOfTracks++, n = new f(d), i.pipe(n).pipe(r)) } }), this.push = function (a) { b.push(a) }, this.flush = function () { b.flush() }, r.on("data", function (a) { s.trigger("data", a) }), r.on("done", function () { s.trigger("done") }), this.getFlvHeader = function (a, b, c) { var d, e, f, g = new Uint8Array(9), h = new DataView(g.buffer); return a = a || 0, b = void 0 === b || b, c = void 0 === c || c, h.setUint8(0, 70), h.setUint8(1, 76), h.setUint8(2, 86), h.setUint8(3, 1), h.setUint8(4, (b ? 4 : 0) | (c ? 1 : 0)), h.setUint32(5, g.byteLength), a <= 0 ? (e = new Uint8Array(g.byteLength + 4), e.set(g), e.set([0, 0, 0, 0], g.byteLength), e) : (d = new l(l.METADATA_TAG), d.pts = d.dts = 0, d.writeMetaDataDouble("duration", a), f = d.finalize().length, e = new Uint8Array(g.byteLength + f), e.set(g), e.set(h.byteLength, f), e) } }, d.prototype = new k, b.exports = d }, { "../codecs": 22, "../m2ts/m2ts.js": 29, "../utils/stream.js": 40, "./flv-tag.js": 23 }], 26: [function (a, b, c) { "use strict"; var d = { codecs: a("./codecs"), mp4: a("./mp4"), flv: a("./flv"), mp2t: a("./m2ts") }; b.exports = d }, { "./codecs": 22, "./flv": 24, "./m2ts": 28, "./mp4": 33 }], 27: [function (a, b, c) { "use strict"; var d = a("../utils/stream"), e = a("../codecs"), f = function (a) { for (var b = 0, c = { payloadType: -1, payloadSize: 0 }, d = 0, e = 0; b < a.byteLength && 128 !== a[b];) { for (; 255 === a[b];) d += 255, b++; for (d += a[b++]; 255 === a[b];) e += 255, b++; if (e += a[b++], !c.payload && 4 === d) { c.payloadType = d, c.payloadSize = e, c.payload = a.subarray(b, b + e); break } b += e, d = 0, e = 0 } return c }, g = function (a) { return 181 !== a.payload[0] ? null : 49 != (a.payload[1] << 8 | a.payload[2]) ? null : "GA94" !== String.fromCharCode(a.payload[3], a.payload[4], a.payload[5], a.payload[6]) ? null : 3 !== a.payload[7] ? null : a.payload.subarray(8, a.payload.length - 1) }, h = function (a, b) { var c, d, e, f, g = []; if (!(64 & b[0])) return g; for (d = 31 & b[0], c = 0; c < d; c++) e = 3 * c, f = { type: 3 & b[e + 2], pts: a }, 4 & b[e + 2] && (f.ccData = b[e + 3] << 8 | b[e + 4], g.push(f)); return g }, i = function () { i.prototype.init.call(this), this.captionPackets_ = [], this.field1_ = new m, this.field1_.on("data", this.trigger.bind(this, "data")), this.field1_.on("done", this.trigger.bind(this, "done")) }; i.prototype = new d, i.prototype.push = function (a) { var b, c; a.nalUnitType === e.h264.unitTypes.sei_rbsp && (b = f(a.escapedRBSP), 4 === b.payloadType && (c = g(b)) && (this.captionPackets_ = this.captionPackets_.concat(h(a.pts, c)))) }, i.prototype.flush = function () { if (!this.captionPackets_.length) return void this.field1_.flush(); this.captionPackets_.sort(function (a, b) { return a.pts - b.pts }), this.captionPackets_.forEach(this.field1_.push, this.field1_), this.captionPackets_.length = 0, this.field1_.flush() }; var j = { 42: 225, 92: 233, 94: 237, 95: 243, 96: 250, 123: 231, 124: 247, 125: 209, 126: 241, 127: 9608 }, k = function (a) { return null === a ? "" : (a = j[a] || a, String.fromCharCode(a)) }, l = function () { for (var a = [], b = 15; b--;) a.push(""); return a }, m = function () { m.prototype.init.call(this), this.mode_ = "popOn", this.topRow_ = 0, this.startPts_ = 0, this.displayed_ = l(), this.nonDisplayed_ = l(), this.lastControlCode_ = null, this.push = function (a) { if (0 === a.type) { var b, c, d, e; if ((b = 32639 & a.ccData) === this.lastControlCode_) return void(this.lastControlCode_ = null); switch (this.lastControlCode_ = 4096 == (61440 & b) ? b : null, b) { case 0: break; case 5152: this.mode_ = "popOn"; break; case 5167: this.flushDisplayed(a.pts), c = this.displayed_, this.displayed_ = this.nonDisplayed_, this.nonDisplayed_ = c, this.startPts_ = a.pts; break; case 5157: this.topRow_ = 13, this.mode_ = "rollUp"; break; case 5158: this.topRow_ = 12, this.mode_ = "rollUp"; break; case 5159: this.topRow_ = 11, this.mode_ = "rollUp"; break; case 5165: this.flushDisplayed(a.pts), this.shiftRowsUp_(), this.startPts_ = a.pts; break; case 5153: "popOn" === this.mode_ ? this.nonDisplayed_[14] = this.nonDisplayed_[14].slice(0, -1) : this.displayed_[14] = this.displayed_[14].slice(0, -1); break; case 5164: this.flushDisplayed(a.pts), this.displayed_ = l(); break; case 5166: this.nonDisplayed_ = l(); break; default: if (d = b >>> 8, e = 255 & b, d >= 16 && d <= 23 && e >= 64 && e <= 127 && (16 !== d || e < 96) && (d = 32, e = null), (17 === d || 25 === d) && e >= 48 && e <= 63 && (d = 9834, e = ""), 16 == (240 & d)) return; this[this.mode_](a.pts, d, e) } } } }; m.prototype = new d, m.prototype.flushDisplayed = function (a) { var b = this.displayed_.map(function (a) { return a.trim() }).filter(function (a) { return a.length }).join("\n"); b.length && this.trigger("data", { startPts: this.startPts_, endPts: a, text: b }) }, m.prototype.popOn = function (a, b, c) { var d = this.nonDisplayed_[14]; d += k(b), d += k(c), this.nonDisplayed_[14] = d }, m.prototype.rollUp = function (a, b, c) { var d = this.displayed_[14]; "" === d && (this.flushDisplayed(a), this.startPts_ = a), d += k(b), d += k(c), this.displayed_[14] = d }, m.prototype.shiftRowsUp_ = function () { var a; for (a = 0; a < this.topRow_; a++) this.displayed_[a] = ""; for (a = this.topRow_; a < 14; a++) this.displayed_[a] = this.displayed_[a + 1]; this.displayed_[14] = "" }, b.exports = { CaptionStream: i, Cea608Stream: m } }, { "../codecs": 22, "../utils/stream": 40 }], 28: [function (a, b, c) { b.exports = a("./m2ts") }, { "./m2ts": 29 }], 29: [function (a, b, c) { "use strict"; var d, e, f, g = a("../utils/stream.js"), h = a("./caption-stream"), i = a("./stream-types"), j = a("./timestamp-rollover-stream").TimestampRolloverStream, k = a("./stream-types.js"); d = function () { var a = new Uint8Array(188), b = 0; d.prototype.init.call(this), this.push = function (c) { var d, e = 0, f = 188; for (b ? (d = new Uint8Array(c.byteLength + b), d.set(a.subarray(0, b)), d.set(c, b), b = 0) : d = c; f < d.byteLength;) 71 !== d[e] || 71 !== d[f] ? (e++, f++) : (this.trigger("data", d.subarray(e, f)), e += 188, f += 188); e < d.byteLength && (a.set(d.subarray(e), 0), b = d.byteLength - e) }, this.flush = function () { 188 === b && 71 === a[0] && (this.trigger("data", a), b = 0), this.trigger("done") } }, d.prototype = new g, e = function () { var a, b, c, d; e.prototype.init.call(this), d = this, this.packetsWaitingForPmt = [], this.programMapTable = void 0, a = function (a, d) { var e = 0; d.payloadUnitStartIndicator && (e += a[e] + 1), "pat" === d.type ? b(a.subarray(e), d) : c(a.subarray(e), d) }, b = function (a, b) { b.section_number = a[7], b.last_section_number = a[8], d.pmtPid = (31 & a[10]) << 8 | a[11], b.pmtPid = d.pmtPid }, c = function (a, b) { var c, e, f, g; if (1 & a[5]) { for (d.programMapTable = {}, c = (15 & a[1]) << 8 | a[2], e = 3 + c - 4, f = (15 & a[10]) << 8 | a[11], g = 12 + f; g < e;) d.programMapTable[(31 & a[g + 1]) << 8 | a[g + 2]] = a[g], g += 5 + ((15 & a[g + 3]) << 8 | a[g + 4]); for (b.programMapTable = d.programMapTable; d.packetsWaitingForPmt.length;) d.processPes_.apply(d, d.packetsWaitingForPmt.shift()) } }, this.push = function (b) { var c = {}, d = 4; c.payloadUnitStartIndicator = !!(64 & b[1]), c.pid = 31 & b[1], c.pid <<= 8, c.pid |= b[2], (48 & b[3]) >>> 4 > 1 && (d += b[d] + 1), 0 === c.pid ? (c.type = "pat", a(b.subarray(d), c), this.trigger("data", c)) : c.pid === this.pmtPid ? (c.type = "pmt", a(b.subarray(d), c), this.trigger("data", c)) : void 0 === this.programMapTable ? this.packetsWaitingForPmt.push([b, d, c]) : this.processPes_(b, d, c) }, this.processPes_ = function (a, b, c) { c.streamType = this.programMapTable[c.pid], c.type = "pes", c.data = a.subarray(b), this.trigger("data", c) } }, e.prototype = new g, e.STREAM_TYPES = { h264: 27, adts: 15 }, f = function () { var a = this, b = { data: [], size: 0 }, c = { data: [], size: 0 }, d = { data: [], size: 0 }, e = function (a, b) { function c(a, b) { var c = 536870912 * (14 & a[b]) + 4194304 * (255 & a[b + 1]) + 16384 * (254 & a[b + 2]) + 128 * (255 & a[b + 3]) + (254 & a[b + 4]) / 2; return c > 4294967295 && (c -= 8589934592), c } var d; b.dataAlignmentIndicator = 0 != (4 & a[6]), d = a[7], 192 & d && (b.pts = c(a, 9), b.dts = 64 & d ? c(a, 14) : b.pts), b.data = a.subarray(9 + a[8]) }, g = function (b, c) { var d, f = new Uint8Array(b.size), g = { type: c }, h = 0; if (b.data.length) { for (g.trackId = b.data[0].pid; b.data.length;) d = b.data.shift(), f.set(d.data, h), h += d.data.byteLength; e(f, g), b.size = 0, a.trigger("data", g) } }; f.prototype.init.call(this), this.push = function (e) { ({ pat: function () {}, pes: function () { var a, f; switch (e.streamType) { case i.H264_STREAM_TYPE: case k.H264_STREAM_TYPE: a = b, f = "video"; break; case i.ADTS_STREAM_TYPE: a = c, f = "audio"; break; case i.METADATA_STREAM_TYPE: a = d, f = "timed-metadata"; break; default: return } e.payloadUnitStartIndicator && g(a, f), a.data.push(e), a.size += e.data.byteLength }, pmt: function () { var b, c, d = { type: "metadata", tracks: [] }, f = e.programMapTable; for (b in f) f.hasOwnProperty(b) && (c = { timelineStartInfo: { baseMediaDecodeTime: 0 } }, c.id = +b, f[b] === k.H264_STREAM_TYPE ? (c.codec = "avc", c.type = "video") : f[b] === k.ADTS_STREAM_TYPE && (c.codec = "adts", c.type = "audio"), d.tracks.push(c)); a.trigger("data", d) } })[e.type]() }, this.flush = function () { g(b, "video"), g(c, "audio"), g(d, "timed-metadata"), this.trigger("done") } }, f.prototype = new g; var l = { PAT_PID: 0, MP2T_PACKET_LENGTH: 188, TransportPacketStream: d, TransportParseStream: e, ElementaryStream: f, TimestampRolloverStream: j, CaptionStream: h.CaptionStream, Cea608Stream: h.Cea608Stream, MetadataStream: a("./metadata-stream") }; for (var m in i) i.hasOwnProperty(m) && (l[m] = i[m]); b.exports = l }, { "../utils/stream.js": 40, "./caption-stream": 27, "./metadata-stream": 30, "./stream-types": 31, "./stream-types.js": 31, "./timestamp-rollover-stream": 32 }], 30: [function (a, b, c) { "use strict"; var d, e = a("../utils/stream"), f = a("./stream-types"), g = function (a, b, c) { var d, e = ""; for (d = b; d < c; d++) e += "%" + ("00" + a[d].toString(16)).slice(-2); return e }, h = function (a, b, c) { return decodeURIComponent(g(a, b, c)) }, i = function (a, b, c) { return unescape(g(a, b, c)) }, j = function (a) { return a[0] << 21 | a[1] << 14 | a[2] << 7 | a[3] }, k = { TXXX: function (a) { var b; if (3 === a.data[0]) { for (b = 1; b < a.data.length; b++) if (0 === a.data[b]) { a.description = h(a.data, 1, b), a.value = h(a.data, b + 1, a.data.length - 1); break } a.data = a.value } }, WXXX: function (a) { var b; if (3 === a.data[0]) for (b = 1; b < a.data.length; b++) if (0 === a.data[b]) { a.description = h(a.data, 1, b), a.url = h(a.data, b + 1, a.data.length); break } }, PRIV: function (a) { var b; for (b = 0; b < a.data.length; b++) if (0 === a.data[b]) { a.owner = i(a.data, 0, b); break } a.privateData = a.data.subarray(b + 1), a.data = a.privateData } }; d = function (a) { var b, c = { debug: !(!a || !a.debug), descriptor: a && a.descriptor }, e = 0, g = [], h = 0; if (d.prototype.init.call(this), this.dispatchType = f.METADATA_STREAM_TYPE.toString(16), c.descriptor) for (b = 0; b < c.descriptor.length; b++) this.dispatchType += ("00" + c.descriptor[b].toString(16)).slice(-2); this.push = function (a) { var b, d, f, i, l, m; if ("timed-metadata" === a.type) { if (a.dataAlignmentIndicator && (h = 0, g.length = 0), 0 === g.length && (a.data.length < 10 || a.data[0] !== "I".charCodeAt(0) || a.data[1] !== "D".charCodeAt(0) || a.data[2] !== "3".charCodeAt(0))) return void(c.debug && console.log("Skipping unrecognized metadata packet")); if (g.push(a), h += a.data.byteLength, 1 === g.length && (e = j(a.data.subarray(6, 10)), e += 10), !(h < e)) { for (b = { data: new Uint8Array(e), frames: [], pts: g[0].pts, dts: g[0].dts }, l = 0; l < e;) b.data.set(g[0].data.subarray(0, e - l), l), l += g[0].data.byteLength, h -= g[0].data.byteLength, g.shift(); d = 10, 64 & b.data[5] && (d += 4, d += j(b.data.subarray(10, 14)), e -= j(b.data.subarray(16, 20))); do { if ((f = j(b.data.subarray(d + 4, d + 8))) < 1) return console.log("Malformed ID3 frame encountered. Skipping metadata parsing."); if (m = String.fromCharCode(b.data[d], b.data[d + 1], b.data[d + 2], b.data[d + 3]), i = { id: m, data: b.data.subarray(d + 10, d + f + 10) }, i.key = i.id, k[i.id] && (k[i.id](i), "com.apple.streaming.transportStreamTimestamp" === i.owner)) { var n = i.data, o = (1 & n[3]) << 30 | n[4] << 22 | n[5] << 14 | n[6] << 6 | n[7] >>> 2; o *= 4, o += 3 & n[7], i.timeStamp = o, this.trigger("timestamp", i) } b.frames.push(i), d += 10, d += f } while (d < e); this.trigger("data", b) } } } }, d.prototype = new e, b.exports = d }, { "../utils/stream": 40, "./stream-types": 31 }], 31: [function (a, b, c) { "use strict"; b.exports = { H264_STREAM_TYPE: 27, ADTS_STREAM_TYPE: 15, METADATA_STREAM_TYPE: 21 } }, {}], 32: [function (a, b, c) { "use strict"; var d = a("../utils/stream"), e = function (a, b) { var c = 1; for (a > b && (c = -1); Math.abs(b - a) > 4294967296;) a += 8589934592 * c; return a }, f = function (a) { var b, c; f.prototype.init.call(this), this.type_ = a, this.push = function (a) { a.type === this.type_ && (void 0 === c && (c = a.dts), a.dts = e(a.dts, c), a.pts = e(a.pts, c), b = a.dts, this.trigger("data", a)) }, this.flush = function () { c = b, this.trigger("done") } }; f.prototype = new d, b.exports = { TimestampRolloverStream: f, handleRollover: e } }, { "../utils/stream": 40 }], 33: [function (a, b, c) { b.exports = { generator: a("./mp4-generator"), Transmuxer: a("./transmuxer").Transmuxer, AudioSegmentStream: a("./transmuxer").AudioSegmentStream, VideoSegmentStream: a("./transmuxer").VideoSegmentStream, tools: a("../tools/mp4-inspector"), MP4ParserStream: a("./mp4-parser").MP4ParserStream, MP4BuilderStream: a("./mp4-parser").MP4BuilderStream } }, { "../tools/mp4-inspector": 38, "./mp4-generator": 34, "./mp4-parser": 35, "./transmuxer": 36 }], 34: [function (a, b, c) { "use strict"; function d(a) { return [a >>> 24 & 255, a >>> 16 & 255, a >>> 8 & 255, 255 & a] } function e(a) { return [a >>> 8 & 255, 255 & a] } var f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V = Math.pow(2, 32) - 1; T = window.Uint8Array, U = window.DataView, function () { var a; if (F = { avc1: [], avcC: [], btrt: [], cslg: [], dinf: [], dref: [], edts: [], elst: [], esds: [], ftyp: [], hdlr: [], mdat: [], mdhd: [], mdia: [], mfhd: [], minf: [], moof: [], moov: [], mp4a: [], mvex: [], mvhd: [], sdtp: [], smhd: [], stbl: [], stco: [], stsc: [], stsd: [], stsz: [], stts: [], styp: [], tfdt: [], tfhd: [], traf: [], trak: [], trun: [], trep: [], trex: [], tkhd: [], vmhd: [] }, void 0 !== T) { for (a in F) F.hasOwnProperty(a) && (F[a] = [a.charCodeAt(0), a.charCodeAt(1), a.charCodeAt(2), a.charCodeAt(3)]); G = new T(["i".charCodeAt(0), "s".charCodeAt(0), "o".charCodeAt(0), "m".charCodeAt(0)]), I = new T(["a".charCodeAt(0), "v".charCodeAt(0), "c".charCodeAt(0), "1".charCodeAt(0)]), H = new T([0, 0, 0, 1]), J = new T([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), K = new T([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]), L = { video: J, audio: K }, O = new T([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), N = new T([0, 0, 0, 0, 0, 0, 0, 0]), P = new T([0, 0, 0, 0, 0, 0, 0, 0]), Q = P, R = new T([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), S = P, M = new T([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]) } }(), f = function (a) { var b, c, d, e = [], f = 0; for (b = 1; b < arguments.length; b++) e.push(arguments[b]); for (b = e.length; b--;) f += e[b].byteLength; for (c = new T(f + 8), d = new U(c.buffer, c.byteOffset, c.byteLength), d.setUint32(0, c.byteLength), c.set(a, 4), b = 0, f = 8; b < e.length; b++) c.set(e[b], f), f += e[b].byteLength; return c }, g = function (a) { var b = {}; for (var c in a) b[c] = a[c] >>> 0; return f(F.cslg, new T([0, 0, 0, 0, b.ctts_shift >>> 24 & 255, b.ctts_shift >>> 16 & 255, b.ctts_shift >>> 8 & 255, 255 & b.ctts_shift, b.min_ctts >>> 24 & 255, b.min_ctts >>> 16 & 255, b.min_ctts >>> 8 & 255, 255 & b.min_ctts, b.max_ctts >>> 24 & 255, b.max_ctts >>> 16 & 255, b.max_ctts >>> 8 & 255, 255 & b.max_ctts, b.min_cts >>> 24 & 255, b.min_cts >>> 16 & 255, b.min_cts >>> 8 & 255, 255 & b.min_cts, b.max_cts >>> 24 & 255, b.max_cts >>> 16 & 255, b.max_cts >>> 8 & 255, 255 & b.max_cts])) }, h = function () { return f(F.dinf, f(F.dref, O)) }, k = function (a) { return f(F.edts, l(a)) }, l = function (a) { var b, c = a.edit_list.length, g = [0, 0, 0, 0].concat(d(c)); for (b = 0; b < c; b++) g = g.concat(d(a.edit_list[b].segment_duration)).concat(d(a.edit_list[b].media_time)).concat(e(a.edit_list[b].media_rate)).concat(e(0)); return f(F.elst, new T(g)) }, i = function (a) { return f(F.esds, new T([0, 0, 0, 0, 3, 25, 0, 0, 0, 4, 17, 64, 21, 0, 6, 0, 0, 0, 218, 192, 0, 0, 218, 192, 5, 2, a.audioobjecttype << 3 | a.samplingfrequencyindex >>> 1, a.samplingfrequencyindex << 7 | a.channelcount << 3, 6, 1, 2])) }, j = function (a) { a = a || {}; var b = a.compatible || [G, I]; return b = b.slice(0), b.unshift(F.ftyp, a.major || G, H), f.apply(null, b) }, x = function (a) { return f(F.hdlr, L[a]) }, m = function (a) { return f(F.mdat, a) }, w = function (a) { var b = new T([0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, 0, 1, 95, 144, a.duration >>> 24 & 255, a.duration >>> 16 & 255, a.duration >>> 8 & 255, 255 & a.duration, 85, 196, 0, 0]); return a.samplerate && (b[12] = a.samplerate >>> 24 & 255, b[13] = a.samplerate >>> 16 & 255, b[14] = a.samplerate >>> 8 & 255, b[15] = 255 & a.samplerate), f(F.mdhd, b) }, v = function (a) { return f(F.mdia, w(a), x(a.type), o(a)) }, n = function (a) { return f(F.mfhd, new T([0, 0, 0, 0, (4278190080 & a) >> 24, (16711680 & a) >> 16, (65280 & a) >> 8, 255 & a])) }, o = function (a) { return f(F.minf, "video" === a.type ? f(F.vmhd, M) : f(F.smhd, N), h(), z(a)) }, p = function (a, b, c) { var d = [], e = b.length; for (c = c || {}; e--;) d[e] = B(b[e], c); return f.apply(null, [F.moof, n(a)].concat(d)) }, q = function (a, b) { var c = a.length, d = [], e = 0; for (b = b || {}; c--;) d[c] = t(a[c]), b.set_duration && (e = Math.max(e, Math.floor(9e4 * a[c].duration / a[c].samplerate))); return e = b.duration || e || 4294967295, f.apply(null, [F.moov, s(e)].concat(d).concat(r(a))) }, r = function (a) { for (var b = a.length, c = []; b--;) c[b] = D(a[b]), a[b].cslg && a[b].cslg.max_cts && c.push(C(a[b])); return f.apply(null, [F.mvex].concat(c)) }, s = function (a) { var b = new T([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 95, 144, (4278190080 & a) >> 24, (16711680 & a) >> 16, (65280 & a) >> 8, 255 & a, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255]); return f(F.mvhd, b) }, y = function (a) { var b, c, d = a.samples || [], e = new T(4 + d.length); for (c = 0; c < d.length; c++) b = d[c].flags, e[c + 4] = b.isLeading << 6 | b.dependsOn << 4 | b.isDependedOn << 2 | b.hasRedundancy; return f(F.sdtp, e) }, z = function (a) { return f(F.stbl, A(a), f(F.stts, S), f(F.stsc, Q), f(F.stsz, R), f(F.stco, P)) }, function () { var a, b; A = function (c) { return f(F.stsd, new T([0, 0, 0, 0, 0, 0, 0, 1]), "video" === c.type ? a(c) : b(c)) }, a = function (a) { var b, c = a.sps || [], d = a.pps || [], e = [], g = []; for (b = 0; b < c.length; b++) e.push((65280 & c[b].byteLength) >>> 8), e.push(255 & c[b].byteLength), e = e.concat(Array.prototype.slice.call(c[b])); for (b = 0; b < d.length; b++) g.push((65280 & d[b].byteLength) >>> 8), g.push(255 & d[b].byteLength), g = g.concat(Array.prototype.slice.call(d[b])); return f(F.avc1, new T([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, (65280 & a.width) >> 8, 255 & a.width, (65280 & a.height) >> 8, 255 & a.height, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 19, 118, 105, 100, 101, 111, 106, 115, 45, 99, 111, 110, 116, 114, 105, 98, 45, 104, 108, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), f(F.avcC, new T([1, a.profileIdc, a.profileCompatibility, a.levelIdc, 255].concat([224 | c.length]).concat(e).concat([d.length]).concat(g))), f(F.btrt, new T([0, 28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192]))) }, b = function (a) { return f(F.mp4a, new T([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, (65280 & a.channelcount) >> 8, 255 & a.channelcount, (65280 & a.samplesize) >> 8, 255 & a.samplesize, 0, 0, 0, 0, (65280 & a.samplerate) >> 8, 255 & a.samplerate, 0, 0]), i(a)) } }(), u = function (a) { var b = a.duration; a.samplerate && (b = Math.floor(9e4 * b / a.samplerate)); var c = new T([0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, (4278190080 & a.id) >> 24, (16711680 & a.id) >> 16, (65280 & a.id) >> 8, 255 & a.id, 0, 0, 0, 0, (4278190080 & a.duration) >> 24, (16711680 & a.duration) >> 16, (65280 & a.duration) >> 8, 255 & a.duration, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +("audio" == a.type), 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, (65280 & a.width) >> 8, 255 & a.width, 0, 0, (65280 & a.height) >> 8, 255 & a.height, 0, 0]); return f(F.tkhd, c) }, B = function (a, b) { var c, d, e, g, h, i, j; return b = b || {}, c = f(F.tfhd, new T([0, b.no_multi_init ? 2 : 0, 0, 58, (4278190080 & a.id) >> 24, (16711680 & a.id) >> 16, (65280 & a.id) >> 8, 255 & a.id, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])), i = Math.floor(a.baseMediaDecodeTime / (V + 1)), j = Math.floor(a.baseMediaDecodeTime % (V + 1)), d = f(F.tfdt, new T([1, 0, 0, 0, i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, 255 & i, j >>> 24 & 255, j >>> 16 & 255, j >>> 8 & 255, 255 & j])), h = 92, "audio" === a.type ? (e = E(a, h), f(F.traf, c, d, e)) : (g = y(a), e = E(a, g.length + h), f(F.traf, c, d, e, g)) }, t = function (a) { a.duration = a.duration || 4294967295; var b = [F.trak, u(a), v(a)]; return a.edit_list && a.edit_list.length && b.splice(2, 0, k(a)), f.apply(null, b) }, C = function (a) { return f(F.trep, new T([0, 0, 0, 0, (4278190080 & a.id) >> 24, (16711680 & a.id) >> 16, (65280 & a.id) >> 8, 255 & a.id]), g(a.cslg)) }, D = function (a) { var b = new T([0, 0, 0, 0, (4278190080 & a.id) >> 24, (16711680 & a.id) >> 16, (65280 & a.id) >> 8, 255 & a.id, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]); return "video" !== a.type && (b[b.length - 1] = 0), f(F.trex, b) }, E = function (a, b) { var c = a.samples || [], d = function (a) { return ("duration" in a && 1) | ("size" in a && 2) | ("flags" in a && 4) | ("compositionTimeOffset" in a && 8) }(c[0] || {}); b += 20 + 4 * c.length * ((d >> 3 & 1) + (d >> 2 & 1) + (d >> 1 & 1) + (1 & d)); for (var e = function (a, b, c) { return [0, 0, c, 1, (4278190080 & a.length) >>> 24, (16711680 & a.length) >>> 16, (65280 & a.length) >>> 8, 255 & a.length, (4278190080 & b) >>> 24, (16711680 & b) >>> 16, (65280 & b) >>> 8, 255 & b] }(c, b, d), g = !1, h = 0; h < c.length; h++) { var i = c[h]; 1 & d && e.push(i.duration >> 24 & 255, i.duration >> 16 & 255, i.duration >> 8 & 255, 255 & i.duration), 2 & d && e.push(i.size >> 24 & 255, i.size >> 16 & 255, i.size >> 8 & 255, 255 & i.size), 4 & d && e.push(i.flags.isLeading << 2 | i.flags.dependsOn, i.flags.isDependedOn << 6 | i.flags.hasRedundancy << 4 | i.flags.paddingValue << 1 | i.flags.isNonSyncSample, i.flags.degradationPriority >> 8 & 255, 255 & i.flags.degradationPriority), 8 & d && (g = g || i.compositionTimeOffset < 0, e.push(i.compositionTimeOffset >> 24 & 255, i.compositionTimeOffset >> 16 & 255, i.compositionTimeOffset >> 8 & 255, 255 & i.compositionTimeOffset)) } return e[0] = +!!g, f(F.trun, new T(e)) }, b.exports = { ftyp: j, mdat: m, moof: p, moov: q, initSegment: function (a, b) { var c, d = j(b), e = q(a, b); return c = new T(d.byteLength + e.byteLength), c.set(d), c.set(e, d.byteLength), c } } }, {}], 35: [function (a, b, c) { "use strict"; function d(a) { return ("0" + a.toString(16)).slice(-2) } function e(a) { return String.fromCharCode(a >> 24 & 255, a >> 16 & 255, a >> 8 & 255, 255 & a) } function f(a, b) { return a.getUint32(b + 4) + 4294967296 * a.getUint32(b) } function g(a, b) { return a.getUint8(b) < 128 ? f(a, b) : a.getUint32(b + 4) + 4294967296 * (a.getUint32(b) - 4294967296) } function h(a, b, c) { var d = 0, e = 8 * c; this.read = function (c, e) { for (var f = 0, g = d >> 3, h = 7 - d % 8, i = 0, j = a.getUint8(g + b); i < c; i++, h--) f = f << 1 | j >> h & 1, h || (g++, h = 8, j = a.getUint8(g + b)); return e || (d += c), f }, this.bits = function () { return e - d } } function i(a) { var b = a.view, c = a.ptr, d = "tkhd" == a.type; return a.ver ? [f(b, c), f(b, c + 8), b.getUint32(c + 16), f(b, c + (d ? 24 : 20))] : [b.getUint32(c), b.getUint32(c + 4), b.getUint32(c + 8), b.getUint32(c + (d ? 16 : 12))] } function j(a, b, c, d) { for (var e = 0; e < c; e++) d[e] = a.getUint32(b + 4 * e) } var k = a("../utils/stream.js"), l = a("./mp4-generator.js"), m = { vide: "video", soun: "audio" }, n = ["meta", "mvhd", "tkhd", "mdhd", "smhd", "vmhd", "dref", "hdlr", "stsd", "esds", "stts", "stps", "stss", "ctts", "stsc", "stsz", "stco", "esds", "elst", "nmhd", "cslg", "sdtp", "co64"], o = ["udta", "smhd", "vmhd", "dref", "iods", "btrt", "pasp", "clap", "uuid", "colr", "sbgp", "sgpd", "gmhd", "tref", "nmhd", "svcC", "hmhd", "fiel", "tapt", "load", "meta", "sefd", "beam", "tgas", "elng"], p = { trak: { name: "track_info", multi: 1 }, edts: { name: "edit_list" }, exts: { name: "edit_list" }, mdia: { name: "media_box" }, minf: { name: "media_info" }, dinf: { name: "data_info" }, stbl: { name: "sample_table" } }, q = function () {}; q.prototype = {}, q.prototype.header = function (a) { for (; a.ptr + a.buffer.b_pos >= a.branch.last;) "movie_box" == a.branch._id && (a.root.h_parsed = !0), a.branch = a.branch.parent; if (a.type = null, a.offset = 8, a.buffer.b_size - a.ptr < 8) return a.offset = 0; if (a.size = a.view.getUint32(a.ptr), 1 == a.size) { if (a.offset = 16, a.buffer.b_size - a.ptr < 16) return a.offset = 0; a.size = (a.view.getUint32(a.ptr + 8) << 32) + a.view.getUint32(a.ptr + 12) } if (a.type = e(a.view.getUint32(a.ptr + 4)), n.includes(a.type)) { if (a.offset += 4, a.buffer.b_size - a.ptr < a.offset) return a.offset = 0; var b = a.view.getUint8(a.ptr + a.offset - 4); a.ver = b >>> 24, a.flags = b && 16777215 } a.size -= a.offset, a.ptr += a.offset }, q.prototype.parse = function (a) { if (!this[a.type]) throw new Error("Unknown box type: " + a.type); this[a.type](a) }, o.forEach(function (a) { q.prototype[a] = function (b) { (b.branch[a] = new Uint8Array(b.size)).set(b.buffer._buff.subarray(b.ptr, b.ptr + b.size)) } }), Object.keys(p).forEach(function (a) { q.prototype[a] = function (b) { var c = p[a]; b.branch[c.name] = b.branch[c.name] || (c.multi ? [] : {}); var d = b.branch[c.name]; c.multi && (d.push({}), d = d[d.length - 1]), d.parent = b.branch, d.last = b.buffer.b_pos + b.ptr + b.size, d._id = c.name, b.branch = d, b.size = 0 } }), q.prototype.moov = function (a) { var b = a.branch.movie_box = a.branch.movie_box || {}; b.parent = a.branch, b.last = a.buffer.b_pos + a.ptr + a.size, b._id = "movie_box", a.buffer.b_pos < 256 ? a.branch.start_hdr_sz = a.size : a.branch.end_hdr_sz = a.size, a.branch = b, a.size = 0 }, q.prototype.ftyp = function (a) { a.branch.major_brand = e(a.view.getUint32(a.ptr)), a.branch.minor_version = a.view.getUint32(a.ptr + 4), a.branch.compatible = [a.branch.major_brand]; for (var b = 8; b < a.size; b += 4) a.branch.compatible.push(e(a.view.getUint32(a.ptr + b))) }, q.prototype.mdat = function () {}, q.prototype.free = function () {}, q.prototype.wide = function () {}, q.prototype.skip = function () {}, q.prototype.mvhd = function (a) { var b = a.view, c = a.ptr, d = a.ver ? 28 : 16, e = a.branch.mv_hdr = {}, f = i(a); e.creation_time = f[0], e.modification_time = f[1], e.time_scale = f[2], e.duration = f[3], c += d, e.rate = b.getUint32(c) / 65536, e.volume = b.getUint16(c + 4) / 256, j(a.view, c + 16, 9, e.matrix = []), e.next_track = b.getUint32(c + 76) }, q.prototype.tkhd = function (a) { var b = a.view, c = a.ptr, d = a.ver ? 40 : 28, e = a.branch.tk_hdr = {}, f = i(a); e.enabled = !!(1 & a.flags), e.in_movie = !!(2 & a.flags), e.in_preview = !!(4 & a.flags), e.creation_time = f[0], e.modification_time = f[1], e.track_id = f[2], e.duration = f[3], c += d, e.layer = b.getUint16(c), e.alternate_group = b.getUint16(c + 2), e.volume = b.getInt16(c + 4) / 256, j(a.view, c + 8, 9, e.matrix = []), e.width = b.getUint32(c + 44) / 65536, e.height = b.getUint32(c + 48) / 65536 }, q.prototype.mdhd = function (a) { var b = a.view, c = a.ptr, d = a.ver ? 28 : 16, e = a.branch.md_hdr = {}, f = i(a); e.creation_time = f[0], e.modification_time = f[1], e.time_scale = f[2], e.duration = f[3]; var g = b.getUint16(c + d); e.lang = String.fromCharCode(g >> 10 | 96, g >> 5 & 31 | 96, 31 & g | 96) }, q.prototype.elst = function (a) { var b = a.view, c = a.ptr + 4, d = b.getUint32(a.ptr); a.branch.list = []; for (var e = 0; e < d; c += 4, e++) { var h = {}; h.segment_duration = a.ver ? f(b, c) : b.getUint32(c), h.media_time = a.ver ? g(b, c + 8) : b.getInt32(c + 4), c += a.ver ? 16 : 8, h.media_rate = b.getInt16(c), a.branch.list.push(h) } }, q.prototype.cslg = function (a) { var b = a.view, c = a.ptr; a.branch.cslg = { ctts_shift: b.getInt32(c), min_ctts: b.getInt32(c + 4), max_ctts: b.getInt32(c + 8), min_cts: b.getInt32(c + 12), max_cts: b.getInt32(c + 16) } }, q.prototype.hdlr = function (a) { a.branch.handler = e(a.view.getUint32(a.ptr + 4)) }, q.prototype._parse_avcc = function (a, b) { var c = a.view, d = a.ptr, e = b.sps = [], f = b.pps = []; b.avc_p_i = c.getUint8(d + 1), b.prof_compat = c.getUint8(d + 2), b.avc_l_i = c.getUint8(d + 3), b.l_size_m_1 = 3 & c.getUint8(d + 4), b.n_sps = 31 & c.getUint8(d + 5); for (var g = 6, h = 0; h < b.n_sps; h++) e[h] = { l: c.getUint16(d + g) }, g += 2, e[h].nal = new Uint8Array(a.buffer._buff.subarray(d + g, d + g + e[h].l)), g += e[h].l; for (b.n_pps = c.getUint8(d + g++), h = 0; h < b.n_pps; h++) f[h] = { l: c.getUint16(d + g) }, g += 2, f[h].nal = new Uint8Array(a.buffer._buff.subarray(d + g, d + g + f[h].l)), g += f[h].l }, q.prototype._parse_esds = function (a, b) { for (var c = a.view, d = a.ptr; d < a.ptr + a.size;) { var e, f = c.getUint8(d++), g = 0; do { e = c.getUint8(d++), g = (g << 7) + (127 & e) } while (128 & e); switch (f) { case 3: b.es_id = c.getUint16(d); var i = c.getUint8(d + 2); d += 3 + (i >> 6 & 2) + (i >> 4 & 2); break; case 4: b.obj_t = c.getUint8(d), b.str_t = 63 & c.getUint8(d + 1), d += 13; break; case 5: var j, k = new h(c, d, g); if (b.aot = k.read(5), 31 == b.aot && (b.aot = 32 + k.read(6)), b.freq = k.read(4), 15 == b.freq && (b.freq = k.read(24)), b.channel = k.read(4), 5 != b.aot && 29 != b.aot || (j = 5, 15 == (b.ext_freq_index = k.read(4)) && (b.ext_freq = k.read(24)), b.aot = k.read(5), 31 == b.aot && (b.aot = 32 + k.read(6))), 5 != j && 36 != b.aot) for (; k.bits() >= 16;) 695 == k.read(11, 1) ? (k.read(11), 5 == k.read(5) && k.read(1) && (15 == k.read(4) && k.read(24), k.bits() >= 12 && 1352 == k.read(11) && 1 != k.read(1) && (b.dsi = 5))) : k.read(1); d += g; break; default: d += g } } }, q.prototype.stsd = function (a) { var b, c, d = a.view, e = d.getUint32(a.ptr), f = a.branch.parent.parent.handler; for (a.branch.list = {}, a.ptr += 4, b = 0; b < e; b++) { this.header(a); var g = {}, h = d.getUint16(a.ptr + 6), i = a.ptr + a.size; switch (f) { case "vide": for (g.width = d.getUint16(a.ptr + 24), g.height = d.getUint16(a.ptr + 26), g.h_res = d.getUint32(a.ptr + 28) / 65536, g.v_res = d.getUint32(a.ptr + 32) / 65536, g.f_count = d.getUint16(a.ptr + 40), g.compressor = "", c = 0; c < 32; c++) { if (!d.getUint8(a.ptr + 42 + c)) break; g.compressor += String.fromCharCode() } g.depth = d.getUint16(a.ptr + 74); for (var j = [1668246642, 1668047216, 1885434736, 1718183276]; j.includes(d.getUint32(a.ptr + 82));) a.ptr += d.getUint32(a.ptr + 78); 1635148611 == d.getUint32(a.ptr + 82) && (g.avcc = {}, a.ptr += 78, this.header(a), this._parse_avcc(a, g.avcc)); break; case "soun": for (g.c_count = d.getUint16(a.ptr + 16), g.s_size = d.getUint16(a.ptr + 18), g.s_rate = d.getUint32(a.ptr + 24) / 65536, c = 32; c < a.size - 12; c++) if (1702061171 == d.getUint32(a.ptr + c)) { g.esds = {}, a.ptr += c - 4, this.header(a), this._parse_esds(a, g.esds); break } } a.ptr = i, a.branch.list[h] = g } a.size = 0 }, q.prototype.stts = function (a) { var b = a.view.getUint32(a.ptr), c = a.ptr + 4; a.branch.dtts = []; for (var d = 0; d < b; d++) for (var e = a.view.getUint32(a.ptr + 4 + 8 * d), f = a.view.getUint32(c + 8 * d + 4), g = 0; g < e; g++) a.branch.dtts.push(f) }, q.prototype.ctts = function (a) { var b = a.view.getUint32(a.ptr), c = a.ptr + 4; a.branch.ctts = []; for (var d = 0; d < b; d++) for (var e = a.view.getUint32(c + 8 * d), f = a.view.getInt32(c + 8 * d + 4), g = 0; g < e; g++) a.branch.ctts.push(f) }, q.prototype.stsc = function (a) { for (var b = a.view.getUint32(a.ptr), c = a.branch.s_t_c = [], d = a.view, e = a.ptr + 4, f = 0; f < b; f++) c[f] = { f_c: d.getUint32(e + 12 * f), s_p_c: d.getUint32(e + 12 * f + 4), s_d_i: d.getUint32(e + 12 * f + 8) }; c.sort(function (a, b) { return a.f_c - b.f_c }) }, q.prototype.stss = function (a) { j(a.view, a.ptr + 4, a.view.getUint32(a.ptr), a.branch.s_sync = []) }, q.prototype.stps = function (a) { j(a.view, a.ptr + 4, a.view.getUint32(a.ptr), a.branch.s_psync = []) }, q.prototype.sdtp = function (a) { a.branch.s_dep = []; for (var b = 0; b < a.size; b++) { var c = a.view.getUint8(a.ptr + b); a.branch.s_dep[b] = { red: 3 & c, is_dep: c >> 2 & 3, dep: c >> 4 & 3, lead: c >> 6 & 3 } } }, q.prototype.stsz = function (a) { var b = a.view.getUint32(a.ptr); if (a.branch.s_sz = [], a.branch.s_count = a.view.getUint32(a.ptr + 4), b) for (var c = 0; c < a.branch.s_count; c++) a.branch.s_sz.push(b); else j(a.view, a.ptr + 8, a.branch.s_count, a.branch.s_sz) }, q.prototype.stco = function (a) { j(a.view, a.ptr + 4, a.view.getUint32(a.ptr), a.branch.c_off = []) }, q.prototype.co64 = function (a) { var b = a.view.getUint32(a.ptr); a.branch.c_off = []; for (var c = 0; c < b; c++) a.branch.c_off[c] = f(a.view, a.ptr + 4 + 8 * c) }; var r = function (a) { this.conf_update(a) }; r.prototype = {}, r.prototype.conf_update = function (a) { this.break_on_count = a.break_on_count, this.frag_size = a.frag_size || 10 }, r.prototype.process = function (a) { var b = { type: "metadata", tracks: [], brands: ["iso5", "iso6"], matrix: a.root.movie_box.mv_hdr.matrix, start_hdr_sz: a.root.start_hdr_sz, end_hdr_sz: a.root.end_hdr_sz }, c = this; b.duration = Math.floor(9e4 * a.root.movie_box.mv_hdr.duration / a.root.movie_box.mv_hdr.time_scale), b.timescale = 9e4, b.s_info = this.s_info = [], b.s_p = this.s_p = [], a.root.movie_box.track_info.forEach(function (e) { if (["vide", "soun"].includes(e.media_box.handler)) { var f = { id: e.tk_hdr.track_id, ts: e.media_box.md_hdr.time_scale, type: e.media_box.handler, s_off: [], s_time: [], s_dri: [], s_sync: e.media_box.media_info.sample_table.s_sync || [], s_psync: e.media_box.media_info.sample_table.s_psync || [], s_sz: e.media_box.media_info.sample_table.s_sz, s_dep: e.media_box.media_info.sample_table.s_dep || [], s_ctts: e.media_box.media_info.sample_table.ctts || [], s_cslg: e.media_box.media_info.sample_table.cslg || {}, s_list: e.media_box.media_info.sample_table.list }; e.edit_list && e.edit_list.list.length && (f.elst = e.edit_list.list); for (var g = e.media_box.media_info.sample_table.c_off, h = e.media_box.media_info.sample_table.s_t_c, i = e.media_box.media_info.sample_table.dtts, j = 1, k = 0, l = 0, n = Array.isArray(f.s_sz), o = 0; o < h.length; o++) for (; j < (h[o + 1] ? h[o + 1].f_c : g.length + 1); j++) for (var p = g[j - 1], q = 0; q < h[o].s_p_c; q++) f.s_off[k] = p, f.s_time[k] = l, f.s_dri[k] = h[o].s_d_i, l += i[k], p += n ? f.s_sz[k++] : f.s_sz; c.s_info.push(f), c.s_p.push({ s: 0, max_t: 0 }), "vide" == f.type && (b.v_idx = c.v_idx = c.s_info.length - 1); var r = f.s_list[1], s = { id: f.id, type: m[f.type], edit_list: f.elst, cslg: f.s_cslg, dr: r, timelineStartInfo: { baseMediaDecodeTime: 0 }, bitrate: Math.floor(8 * f.s_sz.reduce(function (a, b) { return a + b }) * f.ts / e.media_box.md_hdr.duration), duration: "soun" == f.type ? e.media_box.md_hdr.duration : Math.floor(9e4 * e.media_box.md_hdr.duration / f.ts), samplerate: "soun" == f.type ? f.ts : 9e4, matrix: e.tk_hdr.matrix, track_width: e.tk_hdr.width, track_height: e.tk_hdr.height, nb_samples: f.s_time.length }; if ("soun" == f.type) { var t = r.esds.dsi || r.esds.aot; s.codec = "mp4a." + d(r.esds.obj_t.toString(16)) + (t ? "." + t : ""), s.s_i = new Uint8Array([r.esds.aot << 3 | r.esds.freq >>> 1, r.esds.freq << 7 | r.esds.channel << 3]) } else { s.codec = "avc1." + d(r.avcc.avc_p_i) + d(r.avcc.prof_compat) + d(r.avcc.avc_l_i); var u = [1, r.avcc.avc_p_i, r.avcc.avc_prof_compat, r.avcc.avc_l_i, 255, r.avcc.sps.length + 224]; r.avcc.sps.forEach(function (a) { u = u.concat([a.nal.length >> 8, 255 & a.nal.length]), Array.prototype.push.apply(u, a.nal) }), u.push(r.avcc.pps.length), r.avcc.pps.forEach(function (a) { u = u.concat([a.nal.length >> 8, 255 & a.nal.length]), Array.prototype.push.apply(u, a.nal) }), s.s_i = new Uint8Array(u) } if (s.edit_list && s.edit_list.forEach(function (b) { "soun" != f.type && (b.media_time = Math.floor(9e4 * b.media_time / f.ts)), b.segment_duration = Math.floor(9e4 * b.segment_duration / a.root.movie_box.mv_hdr.time_scale) }), s.cslg) for (var v in s.cslg) s.cslg[v] = Math.floor(9e4 * s.cslg[v] / f.ts); b.tracks.push(s) } }), a.stream.trigger("data", b) }, r.prototype.parse = function (a) { this.s_info || this.process(a); for (var b, c = a.buffer.b_pos, d = a.buffer.b_size + c, e = -1, f = 0; e;) for (e = 0, b = 0; b < this.s_p.length; b++) { var g = this.s_info[b], h = this.s_p[b].s, i = g.s_off[h], j = g.s_sz[h], k = g.s_time; if (i >= c && i + j <= d) { this.s_p[b].s++, e++; var l = { trackId: g.id }; l.type = m[g.type], l.dts = k[h], l.pts = l.dts + (g.s_ctts[h] || 0), l.duration = h == k.length - 1 ? k[h] - k[h - 1] : k[h + 1] - k[h], l.size = j, this.s_p[b].max_t = l.dts / g.ts, l.data = a.buffer._buff.subarray(i - c, i + j - c), l.dr = g.s_list[g.s_dri[h]], l.ts = g.ts, l.synced = !g.s_sync.length || g.s_sync.includes(h + 1), l.sn = h, l.dep = g.s_dep[h], "vide" == g.type && (this.break_on_count ? h % this.frag_size == 0 : h && l.synced) && a.stream.flush(), a.stream.trigger("data", l), f = i + j - c } else i + j > d && b == this.v_idx && !0 } f && a.buffer.advance(f); var n = 1 / 0; for (b = 0; b < this.s_p.length; b++) this.s_p[b].s != this.s_info[b].s_off.length ? n = Math.min(n, this.s_info[b].s_off[this.s_p[b].s]) : this.s_p[b].finish = !0; return n == 1 / 0 && a.stream.flush(), (n == 1 / 0 || n >= c && n < d) && (n = d), n }, r.prototype.seek = function (a, b) { function c(a, b, c) { var d, e, f, g, h, i, j = c && b.s_sync.length > 0, k = (b.type, b.ts / 9e4); for (d = 0, e = j ? b.s_sync.length : b.s_time.length, i = Math.floor(a * k); d < e - 1;) if (g = d + e >> 1, f = j ? b.s_sync[g] - 1 : g, (h = b.s_time[f] + (0 | b.s_ctts[f])) > i) e = g; else if (d = g, h == i) break; var l = j ? b.s_sync[d] - 1 : d; if (i = h = b.s_time[l] + (0 | b.s_ctts[l]), !j && b.s_ctts.length) { for (f = d - 1; f > d - 10; f--) b.s_time[f] + (0 | b.s_ctts[f]) > i && (l = f); for (f = l; f < d + 10; f++)(h = b.s_time[f] + (0 | b.s_ctts[f])) > (0 | (b.s_cslg && b.s_cslg.min_ctts)) && h < i && (i = h) } return { sn: l, min_t: i / b.ts } } if (!this.s_info) throw new Error("No metadata information for seeking"); var d = 9e4 * a, e = 1 / 0; if (void 0 !== this.v_idx) { var f = this.s_info[this.v_idx], g = c(d, f, b), h = g.sn; this.s_p[this.v_idx].s = h, this.s_p[this.v_idx].max_t = (f.s_time[h] + (0 | f.s_ctts[h])) / f.ts, d = 9e4 * g.min_t, e = f.s_off[h] } var i = this; return this.s_info.forEach(function (a, f) { if (f != i.v_idx) { var g = c(d, a, b).sn; i.s_p[f].s = g, i.s_p[f].max_t = (a.s_time[g] + (0 | a.s_ctts[g])) / a.ts, e = Math.min(a.s_off[g], e) } }), { offset: e, time: this.s_p[void 0 !== this.v_idx ? this.v_idx : 0].max_t } }; var s = function () { this._buff = new Uint8Array(3145728), this.b_pos = 0, this.b_size = 0, this.pos = 0 }; s.prototype = {}, s.prototype.advance = function (a) { this._buff.set(this._buff.subarray(a, this.b_size)), this.b_pos += a, this.b_size -= a }, s.prototype.push = function (a) { for (var b, c = a.length; c + this.b_size > this._buff.length;) b = new Uint8Array(2 * this._buff.length), b.set(this._buff), this._buff = b; this.pos < this.b_pos + this.b_size && this.pos + c >= this.b_pos ? (b = new Uint8Array(Math.max(this.pos + c, this.b_pos + this.b_size) - Math.min(this.pos, this.b_pos)), this.pos <= this.b_pos ? (b.set(a), this.pos + c < this.b_pos + this.b_size && b.set(this._buff.subarray(this.pos + c - this.b_pos, this.b_size), c)) : (b.set(this._buff.subarray(0, this.pos - this.b_pos)), b.set(a, this.pos - this.b_pos)), this._buff.set(b), this.b_size = b.length, b = null, this.b_pos = Math.min(this.b_pos, this.pos)) : this.pos == this.b_pos + this.b_size ? (this._buff.set(a, this.b_size), this.b_size += c) : (this._buff.set(a), this.b_size = c, this.b_pos = this.pos), this.view = new DataView(this._buff.buffer, this._buff.byteOffset, this.b_size) }; var t = function (a) { if (!(this instanceof t)) return new t(a); t.prototype.init.call(this), this.buffer = new s, this.b_parser = new q, this.c_parser = new r(a), this.on("confupdate", function (a) { this.c_parser.conf_update(a) }), this.metadata = {}, this.buffer.pos = a.pos || 0, a.metadata && (this.metadata.h_parsed = !0, this.c_parser.s_info = a.metadata.s_info.slice(), this.c_parser.s_p = a.metadata.s_p.slice(), this.c_parser.v_idx = a.metadata.v_idx) }; t.prototype = new k, t.prototype.constructor = t, t.prototype.get_tl = function (a) { if (!this.metadata.h_parsed) throw new Error("No metadata information for time map"); var b = this.c_parser.s_info.filter(function (b) { return b.id == a }); if (!b.length) throw new Error("No track information for time map"); return { offset: b[0].s_off.slice(0), time: b[0].s_time.map(function (a) { return a / b[0].ts }) } }, t.prototype.push = function (a) { this.buffer.push(a); for (var b = { root: this.metadata, branch: this.metadata, buffer: this.buffer, view: this.buffer.view, stream: this, ptr: 0 }; !this.metadata.h_parsed && (this.b_parser.header(b), b.type && !(b.size + b.ptr > this.buffer.b_size));) this.b_parser.parse(b), b.ptr += b.size; return this.metadata.h_parsed ? this.buffer.pos = this.c_parser.parse(b) : (this.buffer.advance(b.ptr - b.offset), this.buffer.pos = "mdat" == b.type ? b.ptr + b.size : this.buffer.b_pos + this.buffer.b_size), this.buffer.pos }, t.prototype.seek = function (a, b) { this.trigger("data", { type: "seek" }); var c = this.c_parser.seek(a, b); return this.buffer.pos = c.offset, c }; var u = function () { if (!(this instanceof u)) return new u; u.prototype.init.call(this) }; u.prototype = new k, u.prototype.constructor = u, u.prototype.push = function (a) { if ("audio" == a.type) { var b = 9e4 / a.ts; a.pts = Math.floor(a.pts * b), a.dts = Math.floor(a.dts * b), this.trigger("data", { type: "audio", samplerate: a.dr.s_rate, samplesize: a.dr.s_size, audioobjecttype: a.dr.esds.aot, samplingfrequencyindex: a.dr.esds.freq, channelcount: a.dr.esds.channel, ts: a.ts, dts: a.dts, pts: a.pts, data: new Uint8Array(a.data) }) } }; var v = function () { if (!(this instanceof v)) return new v; v.prototype.init.call(this), this.synced = !1, this.au = new Uint8Array([9, 240]) }; v.prototype = new k, v.prototype.constructor = v, v.prototype.flush = function () { this.dr = null, this.synced = !1, this.trigger("done") }, v.prototype.push = function (a) { if ("video" == a.type) { var b, c = 0, d = new DataView(a.data.buffer, a.data.byteOffset, a.data.byteLength), e = 9e4 / a.ts; if (a.pts = Math.floor(a.pts * e), a.dts = Math.floor(a.dts * e), this.trigger("data", { trackId: a.trackId, pts: a.pts, dts: a.dts, data: this.au, nalUnitType: "access_unit_delimiter_rbsp" }), this.dr != a.dr || !this.synced) { if (this.dr = a.dr, this.dr.avcc.n_sps) for (b = 0; b < this.dr.avcc.n_sps; b++) this.trigger("data", { trackId: a.trackId, pts: a.pts, dts: a.dts, nalUnitType: "seq_parameter_set_rbsp", data: this.dr.avcc.sps[b].nal, config: { profileIdc: this.dr.avcc.avc_p_i, levelIdc: this.dr.avcc.avc_l_i, profileCompatibility: this.dr.avcc.prof_compat, width: this.dr.width, height: this.dr.height } }); if (this.dr.avcc.n_pps) for (b = 0; b < this.dr.avcc.n_pps; b++) this.trigger("data", { trackId: a.trackId, pts: a.pts, dts: a.dts, nalUnitType: "pic_parameter_set_rbsp", data: this.dr.avcc.pps[0].nal }); this.synced = !0 } for (; c < a.data.length;) { var f = d.getUint32(c), g = { trackId: a.trackId, pts: a.pts, dts: a.dts, data: new Uint8Array(a.data.subarray(c + 4, c + f + 4)) }; 5 == (31 & g.data[0]) && (g.nalUnitType = "slice_layer_without_partitioning_rbsp_idr"), g.synced = !c && a.synced, c += f + 4, this.trigger("data", g) } } }; var w = function (a) { if (!(this instanceof w)) return new w(a); w.prototype.init.call(this), this.options = a || {}, this.tracks = {}, this.options.no_multi_init = !0, this.options.major = new Uint8Array([105, 115, 111, 53]), this.options.compatible = [new Uint8Array([105, 115, 111, 54])], this.options.set_duration = !0, this.on("confupdate", function (a) { this.options.break_on_count = a.break_on_count }), this.metadata = a.metadata, this.inited = !!this.metadata }; w.prototype = new k, w.prototype.constructor = w, w.prototype.push = function (a) { var b; if ("metadata" == a.type) return void(this.metadata = a); if ("seek" != a.type) { b = a.trackId, this.tracks[b] = this.tracks[b] || { samples: [], seqno: 0, sc: 0, type: a.type }; var c = { duration: a.duration, size: a.size, dts: a.dts, pts: a.pts, data: new Uint8Array(a.data), sn: a.sn }; if ("video" == a.type) { var d = 9e4 / a.ts; c.duration = Math.floor(c.duration * d), c.pts = Math.floor(c.pts * d), c.dts = Math.floor(c.dts * d), c.flags = { dependsOn: 0 | (c.dep && c.dep.dep), isDependedOn: 0 | (c.dep && c.dep.is_dep), hasRedundancy: 0 | (c.dep && c.dep.red) || 2 * a.synced, isLeading: 0 | (c.dep && c.dep.lead) }, this.options.break_on_count || (c.flags.isNonSyncSample = +!a.synced), c.compositionTimeOffset = c.pts - c.dts } a.data = null, this.tracks[b].samples.push(c) } else for (b in this.tracks) this.tracks[b].samples = [] }, w.prototype.flush = function () { var a, b, c, d = this; if (!this.inited) { this.inited = !0; var e = []; this.metadata.tracks.forEach(function (a) { switch (a.type) { case "video": a.profileIdc = a.dr.avcc.avc_p_i, a.levelIdc = a.dr.avcc.avc_l_i, a.profileCompatibility = a.dr.avcc.prof_compat, a.width = a.track_width, a.height = a.track_height, a.sps = a.dr.avcc.sps.map(function (a) { return a.nal }), a.pps = a.dr.avcc.pps.map(function (a) { return a.nal }); break; case "audio": a.samplesize = a.dr.s_size, a.audioobjecttype = a.dr.esds.aot, a.samplingfrequencyindex = a.dr.esds.freq, a.channelcount = a.dr.esds.channel } e.push({ id: a.id, buffer: l.initSegment([a], d.options) }) }), this.trigger("data", { init: !0, inits: e }) } for (var f in this.tracks) { var g = this.tracks[f]; if (g.samples.length) { var h = g.samples; c = h.reduce(function (a, b) { return a + b.data.length }, 0), a = l.moof(++g.seqno, [{ id: f, baseMediaDecodeTime: h[0].dts, samples: h, type: g.type }], d.options); for (var i = new Uint8Array(8 + c + a.length), j = new Uint8Array(c), k = 0, m = 0; m < h.length; m++) j.set(h[m].data, k), k += h[m].data.length; b = l.mdat(j), i.set(a), i.set(b, a.length), i.sn = h[h.length - 1].sn, j = b = a = null, this.tracks[f].sc += h.length, this.trigger("data", { id: f, data: i, sc: this.tracks[f].sc }), this.tracks[f].samples = [] } } this.trigger("done") }, b.exports = { MP4ParserStream: t, AudioFilterStream: u, VideoFilterStream: v, MP4BuilderStream: w } }, { "../utils/stream.js": 40, "./mp4-generator.js": 34 }], 36: [function (a, b, c) { "use strict"; var d, e, f, g, h, i, j, k, l, m, n, o = a("../utils/stream.js"), p = a("./mp4-generator.js"), q = a("./mp4-parser.js"), r = a("../m2ts/m2ts.js"), s = a("../codecs"), t = s.adts, u = s.h264.H264Stream, v = a("../aac"), w = ["audioobjecttype", "channelcount", "samplerate", "samplingfrequencyindex", "samplesize"], x = ["width", "height", "profileIdc", "levelIdc", "profileCompatibility"]; h = function () { return { size: 0, flags: { isLeading: 0, dependsOn: 1, isDependedOn: 0, hasRedundancy: 0, degradationPriority: 0 } } }, i = function (a) { return a[0] === "I".charCodeAt(0) && a[1] === "D".charCodeAt(0) && a[2] === "3".charCodeAt(0) }, m = function (a, b) { var c; if (a.length !== b.length) return !1; for (c = 0; c < a.length; c++) if (a[c] !== b[c]) return !1; return !0 }, n = function (a) { var b, c, d = 0; for (b = 0; b < a.length; b++) c = a[b], d += c.data.byteLength; return d }, e = function (a) { var b = [], c = 0, d = 0; e.prototype.init.call(this), this.push = function (c) { j(a, c), a && w.forEach(function (b) { a[b] = c[b] }), b.push(c) }, this.setEarliestDts = function (b) { d = b - a.timelineStartInfo.baseMediaDecodeTime }, this.flush = function () { var d, e, f, g; if (0 === b.length) return void this.trigger("done", "AudioSegmentStream"); d = this.trimAdtsFramesByEarliestDts_(b), a.samples = this.generateSampleTable_(d), f = p.mdat(this.concatenateFrameData_(d)), b = [], l(a), e = p.moof(c, [a]), g = new Uint8Array(e.byteLength + f.byteLength), c++, g.set(e), g.set(f, e.byteLength), k(a), this.trigger("data", { track: a, boxes: g }), this.trigger("done", "AudioSegmentStream") }, this.trimAdtsFramesByEarliestDts_ = function (b) { return a.minSegmentDts >= d ? b : (a.minSegmentDts = 1 / 0, b.filter(function (b) { return b.dts >= d && (a.minSegmentDts = Math.min(a.minSegmentDts, b.dts), a.minSegmentPts = a.minSegmentDts, !0) })) }, this.generateSampleTable_ = function (a) { var b, c, d = []; for (b = 0; b < a.length; b++) c = a[b], d.push({ size: c.data.byteLength, duration: 1024 }); return d }, this.concatenateFrameData_ = function (a) { var b, c, d = 0, e = new Uint8Array(n(a)); for (b = 0; b < a.length; b++) c = a[b], e.set(c.data, d), d += c.data.byteLength; return e } }, e.prototype = new o, d = function (a) { var b, c, e = 0, f = []; d.prototype.init.call(this), delete a.minPTS, this.gopCache_ = [], this.push = function (d) { j(a, d), d.nalUnitType !== s.h264.unitTypes.seq_parameter_set_rbsp || b || (b = d.config, a.sps = [d.data], x.forEach(function (c) { a[c] = b[c] }, this)), d.nalUnitType !== s.h264.unitTypes.pic_parameter_set_rbsp || c || (c = d.data, a.pps = [d.data]), f.push(d) }, this.flush = function () { for (var b, c, d, g, h, i; f.length && f[0].nalUnitType !== s.h264.unitTypes.access_unit_delimiter_rbsp;) f.shift(); if (0 === f.length) return this.resetStream_(), void this.trigger("done", "VideoSegmentStream"); b = this.groupNalsIntoFrames_(f), d = this.groupFramesIntoGops_(b), d[0][0].keyFrame || (c = this.getGopForFusion_(f[0], a), c ? (d.unshift(c), d.byteLength += c.byteLength, d.nalCount += c.nalCount, d.pts = c.pts, d.dts = c.dts, d.duration += c.duration) : d = this.extendFirstKeyFrame_(d)), j(a, d), a.samples = this.generateSampleTable_(d), h = p.mdat(this.concatenateNalData_(d)), this.gopCache_.unshift({ gop: d.pop(), pps: a.pps, sps: a.sps }), this.gopCache_.length = Math.min(6, this.gopCache_.length), f = [], l(a), this.trigger("timelineStartInfo", a.timelineStartInfo), g = p.moof(e, [a]), i = new Uint8Array(g.byteLength + h.byteLength), e++, i.set(g), i.set(h, g.byteLength), this.trigger("data", { track: a, boxes: i }), this.resetStream_(), this.trigger("done", "VideoSegmentStream") }, this.resetStream_ = function () { k(a), b = void 0, c = void 0 }, this.getGopForFusion_ = function (b) { var c, d, e, f, g, h = 1 / 0; for (g = 0; g < this.gopCache_.length; g++) f = this.gopCache_[g], e = f.gop, a.pps && m(a.pps[0], f.pps[0]) && a.sps && m(a.sps[0], f.sps[0]) && (e.dts < a.timelineStartInfo.dts || (c = b.dts - e.dts - e.duration) >= -1e4 && c <= 45e3 && (!d || h > c) && (d = f, h = c)); return d ? d.gop : null }, this.extendFirstKeyFrame_ = function (a) { var b; return !a[0][0].keyFrame && a.length > 1 && (b = a.shift(), a.byteLength -= b.byteLength, a.nalCount -= b.nalCount, a[0][0].dts = b.dts, a[0][0].pts = b.pts, a[0][0].duration += b.duration), a }, this.groupNalsIntoFrames_ = function (a) { var b, c, d = [], e = []; for (d.byteLength = 0, b = 0; b < a.length; b++) c = a[b], c.nalUnitType === s.h264.unitTypes.access_unit_delimiter_rbsp ? (d.length && (d.duration = c.dts - d.dts, e.push(d)), d = [c], d.byteLength = c.data.byteLength, d.pts = c.pts, d.dts = c.dts) : (c.nalUnitType === s.h264.unitTypes.slice_layer_without_partitioning_rbsp_idr && (d.keyFrame = !0), d.duration = c.dts - d.dts, d.byteLength += c.data.byteLength, d.push(c)); return e.length && (!d.duration || d.duration <= 0) && (d.duration = e[e.length - 1].duration), e.push(d), e }, this.groupFramesIntoGops_ = function (a) { var b, c, d = [], e = []; for (d.byteLength = 0, d.nalCount = 0, d.duration = 0, d.pts = a[0].pts, d.dts = a[0].dts, e.byteLength = 0, e.nalCount = 0, e.duration = 0, e.pts = a[0].pts, e.dts = a[0].dts, b = 0; b < a.length; b++) c = a[b], c.keyFrame ? (d.length && (e.push(d), e.byteLength += d.byteLength, e.nalCount += d.nalCount, e.duration += d.duration), d = [c], d.nalCount = c.length, d.byteLength = c.byteLength, d.pts = c.pts, d.dts = c.dts, d.duration = c.duration) : (d.duration += c.duration, d.nalCount += c.length, d.byteLength += c.byteLength, d.push(c)); return e.length && d.duration <= 0 && (d.duration = e[e.length - 1].duration), e.byteLength += d.byteLength, e.nalCount += d.nalCount, e.duration += d.duration, e.push(d), e }, this.generateSampleTable_ = function (a, b) { var c, d, e, f, g, i = b || 0, j = []; for (c = 0; c < a.length; c++) for (f = a[c], d = 0; d < f.length; d++) g = f[d], e = h(), e.dataOffset = i, e.compositionTimeOffset = g.pts - g.dts, e.duration = g.duration, e.size = 4 * g.length, e.size += g.byteLength, g.keyFrame && (e.flags.dependsOn = 2), i += e.size, j.push(e); return j }, this.concatenateNalData_ = function (a) { var b, c, d, e, f, g, h = 0, i = a.byteLength, j = a.nalCount, k = i + 4 * j, l = new Uint8Array(k), m = new DataView(l.buffer); for (b = 0; b < a.length; b++) for (e = a[b], c = 0; c < e.length; c++) for (f = e[c], d = 0; d < f.length; d++) g = f[d], m.setUint32(h, g.data.byteLength), h += 4, l.set(g.data, h), h += g.data.byteLength; return l } }, d.prototype = new o, j = function (a, b) { "number" == typeof b.pts && (void 0 === a.timelineStartInfo.pts && (a.timelineStartInfo.pts = b.pts), void 0 === a.minSegmentPts ? a.minSegmentPts = b.pts : a.minSegmentPts = Math.min(a.minSegmentPts, b.pts), void 0 === a.maxSegmentPts ? a.maxSegmentPts = b.pts : a.maxSegmentPts = Math.max(a.maxSegmentPts, b.pts)), "number" == typeof b.dts && (void 0 === a.timelineStartInfo.dts && (a.timelineStartInfo.dts = b.dts), void 0 === a.minSegmentDts ? a.minSegmentDts = b.dts : a.minSegmentDts = Math.min(a.minSegmentDts, b.dts), void 0 === a.maxSegmentDts ? a.maxSegmentDts = b.dts : a.maxSegmentDts = Math.max(a.maxSegmentDts, b.dts)) }, k = function (a) { delete a.minSegmentDts, delete a.maxSegmentDts, delete a.minSegmentPts, delete a.maxSegmentPts }, l = function (a) { var b, c = a.minSegmentDts - a.timelineStartInfo.dts, d = a.minSegmentPts - a.minSegmentDts; return a.baseMediaDecodeTime = a.timelineStartInfo.baseMediaDecodeTime, a.baseMediaDecodeTime += c, a.baseMediaDecodeTime -= d, a.baseMediaDecodeTime = Math.max(0, a.baseMediaDecodeTime), "audio" === a.type && (b = a.samplerate / 9e4, a.baseMediaDecodeTime *= b, a.baseMediaDecodeTime = Math.floor(a.baseMediaDecodeTime)), a.baseMediaDecodeTime }, g = function (a, b) { this.numberOfTracks = 0, this.metadataStream = b, void 0 !== a.remux ? this.remuxTracks = !!a.remux : this.remuxTracks = !0, this.pendingTracks = [], this.videoTrack = null, this.pendingBoxes = [], this.pendingCaptions = [], this.pendingMetadata = [], this.pendingBytes = 0, this.emittedTracks = 0, g.prototype.init.call(this), this.push = function (a) { return a.text ? this.pendingCaptions.push(a) : a.frames ? this.pendingMetadata.push(a) : (this.pendingTracks.push(a.track), this.pendingBoxes.push(a.boxes), this.pendingBytes += a.boxes.byteLength, "video" === a.track.type && (this.videoTrack = a.track), void("audio" === a.track.type && (this.audioTrack = a.track))) } }, g.prototype = new o, g.prototype.flush = function (a) { var b, c, d, e, f = 0, g = { captions: [], metadata: [], info: {} }, h = 0; if (this.pendingTracks.length < this.numberOfTracks) { if ("VideoSegmentStream" !== a && "AudioSegmentStream" !== a) return; if (this.remuxTracks) return; if (0 === this.pendingTracks.length) return void(++this.emittedTracks >= this.numberOfTracks && (this.trigger("done"), this.emittedTracks = 0)) } for (this.videoTrack ? (h = this.videoTrack.timelineStartInfo.pts, x.forEach(function (a) { g.info[a] = this.videoTrack[a] }, this)) : this.audioTrack && (h = this.audioTrack.timelineStartInfo.pts, w.forEach(function (a) { g.info[a] = this.audioTrack[a] }, this)), 1 === this.pendingTracks.length ? g.type = this.pendingTracks[0].type : g.type = "combined", this.emittedTracks += this.pendingTracks.length, d = p.initSegment(this.pendingTracks, this.options), this.pendingBytes += d.byteLength, this.pendingBoxes.unshift(d), g.data = new Uint8Array(this.pendingBytes), e = 0; e < this.pendingBoxes.length; e++) g.data.set(this.pendingBoxes[e], f), f += this.pendingBoxes[e].byteLength; for (e = 0; e < this.pendingCaptions.length; e++) b = this.pendingCaptions[e], b.startTime = b.startPts - h, b.startTime /= 9e4, b.endTime = b.endPts - h, b.endTime /= 9e4, g.captions.push(b); for (e = 0; e < this.pendingMetadata.length; e++) c = this.pendingMetadata[e], c.cueTime = c.pts - h, c.cueTime /= 9e4, g.metadata.push(c); g.metadata.dispatchType = this.metadataStream.dispatchType, this.pendingTracks.length = 0, this.videoTrack = null, this.pendingBoxes.length = 0, this.pendingCaptions.length = 0, this.pendingBytes = 0, this.pendingMetadata.length = 0, this.trigger("data", g), this.emittedTracks >= this.numberOfTracks && (this.trigger("done"), this.emittedTracks = 0) }, f = function (a) { var b, c, h = this, j = !0; f.prototype.init.call(this), a = a || {}, a.input_type = a.input_type || "ts", void 0 === a.break_on_count && (a.break_on_count = !0), this.baseMediaDecodeTime = a.baseMediaDecodeTime || 0, this.transmuxPipeline_ = {}, this.setupAacPipeline = function () { var b = {}; this.transmuxPipeline_ = b, b.type = "aac", b.metadataStream = new r.MetadataStream, b.aacStream = new v, b.audioTimestampRolloverStream = new r.TimestampRolloverStream("audio"), b.timedMetadataTimestampRolloverStream = new r.TimestampRolloverStream("timed-metadata"), b.adtsStream = new t, b.coalesceStream = new g(a, b.metadataStream), b.headOfPipeline = b.aacStream, b.aacStream.pipe(b.audioTimestampRolloverStream).pipe(b.adtsStream), b.aacStream.pipe(b.timedMetadataTimestampRolloverStream).pipe(b.metadataStream).pipe(b.coalesceStream), b.metadataStream.on("timestamp", function (a) { b.aacStream.setTimestamp(a.timeStamp) }), b.aacStream.on("data", function (a) { "timed-metadata" !== a.type || b.audioSegmentStream || (c = c || { timelineStartInfo: { baseMediaDecodeTime: h.baseMediaDecodeTime }, codec: "adts", type: "audio" }, b.coalesceStream.numberOfTracks++, b.audioSegmentStream = new e(c), b.adtsStream.pipe(b.audioSegmentStream).pipe(b.coalesceStream)) }), b.coalesceStream.on("data", this.trigger.bind(this, "data")), b.coalesceStream.on("done", this.trigger.bind(this, "done")) }, this.setupTsPipeline = function () { var f = {}; this.transmuxPipeline_ = f, f.type = a.input_type, "ts" == f.type ? (a.metadataStream = f.metadataStream = new r.MetadataStream, f.packetStream = new r.TransportPacketStream, f.parseStream = new r.TransportParseStream, f.elementaryStream = new r.ElementaryStream, f.videoTimestampRolloverStream = new r.TimestampRolloverStream("video"), f.audioTimestampRolloverStream = new r.TimestampRolloverStream("audio"), f.timedMetadataTimestampRolloverStream = new r.TimestampRolloverStream("timed-metadata"), f.adtsStream = new t, f.h264Stream = new u, f.captionStream = new r.CaptionStream, f.coalesceStream = new g(a, f.metadataStream), f.headOfPipeline = f.packetStream, f.packetStream.pipe(f.parseStream).pipe(f.elementaryStream), f.elementaryStream.pipe(f.videoTimestampRolloverStream).pipe(f.h264Stream), f.elementaryStream.pipe(f.audioTimestampRolloverStream).pipe(f.adtsStream), f.elementaryStream.pipe(f.timedMetadataTimestampRolloverStream).pipe(f.metadataStream).pipe(f.coalesceStream), f.h264Stream.pipe(f.captionStream).pipe(f.coalesceStream)) : (f.headOfPipeline = f.elementaryStream = new q.MP4ParserStream(a), f.mp4BuilderStream = new q.MP4BuilderStream(a), f.elementaryStream.pipe(f.mp4BuilderStream), this.seek = function (a, b) { return f.elementaryStream.seek(a, b) }, this.get_tl = function (a) { return f.elementaryStream.get_tl(a) }, this.conf_update = function (a) { f.elementaryStream.trigger("confupdate", a), f.mp4BuilderStream.trigger("confupdate", a) }), f.elementaryStream.on("data", function (g) { var i; if ("metadata" === g.type) { if ("mp4" === a.input_type) return void h.trigger("metadata", g); for (i = g.tracks.length; i--;) b || "video" !== g.tracks[i].type ? c || "audio" !== g.tracks[i].type || (c = g.tracks[i], c.timelineStartInfo.baseMediaDecodeTime = h.baseMediaDecodeTime) : (b = g.tracks[i], b.timelineStartInfo.baseMediaDecodeTime = h.baseMediaDecodeTime); b && !f.videoSegmentStream && (f.coalesceStream.numberOfTracks++, f.videoSegmentStream = new d(b), f.videoSegmentStream.on("timelineStartInfo", function (a) { c && (c.timelineStartInfo = a, f.audioSegmentStream.setEarliestDts(a.dts)) }), f.h264Stream.pipe(f.videoSegmentStream).pipe(f.coalesceStream)), c && !f.audioSegmentStream && (f.coalesceStream.numberOfTracks++, f.audioSegmentStream = new e(c), f.adtsStream.pipe(f.audioSegmentStream).pipe(f.coalesceStream)) } }), "mp4" === a.input_type ? (f.mp4BuilderStream.on("data", this.trigger.bind(this, "data")), f.mp4BuilderStream.on("done", this.trigger.bind(this, "done"))) : (f.coalesceStream.on("data", this.trigger.bind(this, "data")), f.coalesceStream.on("done", this.trigger.bind(this, "done"))) }, this.setBaseMediaDecodeTime = function (a) { var d = this.transmuxPipeline_; this.baseMediaDecodeTime = a, c && (c.timelineStartInfo.dts = void 0, c.timelineStartInfo.pts = void 0, k(c), c.timelineStartInfo.baseMediaDecodeTime = a), b && (d.videoSegmentStream && (d.videoSegmentStream.gopCache_ = []), b.timelineStartInfo.dts = void 0, b.timelineStartInfo.pts = void 0, k(b), b.timelineStartInfo.baseMediaDecodeTime = a) }, this.push = function (b) { if (j) { var c = i(b) && "mp4" != a.input_type; c && "aac" !== this.transmuxPipeline_.type ? this.setupAacPipeline() : c || this.transmuxPipeline_.type === a.input_type || this.setupTsPipeline(), j = !1 } return this.transmuxPipeline_.headOfPipeline.push(b) }, this.appendBuffer = function (a) { return this.push(new Uint8Array(a)) }, this.flush = function () { j = !0, this.transmuxPipeline_.headOfPipeline.flush() } }, f.prototype = new o, b.exports = { Transmuxer: f, VideoSegmentStream: d, AudioSegmentStream: e, AUDIO_PROPERTIES: w, VIDEO_PROPERTIES: x } }, { "../aac": 19, "../codecs": 22, "../m2ts/m2ts.js": 29, "../utils/stream.js": 40, "./mp4-generator.js": 34, "./mp4-parser.js": 35 }], 37: [function (a, b, c) { "use strict"; var d = { 8: "audio", 9: "video", 18: "metadata" }, e = function (a) { return "0x" + ("00" + a.toString(16)).slice(-2).toUpperCase() }, f = function (a) { for (var b, c = []; a.byteLength > 0;) { switch (b = 0, a.byteLength) { default: c.push(e(a[b++])); case 7: c.push(e(a[b++])); case 6: c.push(e(a[b++])); case 5: c.push(e(a[b++])); case 4: c.push(e(a[b++])); case 3: c.push(e(a[b++])); case 2: c.push(e(a[b++])); case 1: c.push(e(a[b++])) } a = a.subarray(b) } return c.join(" ") }, g = function (a, b) { var c = ["AVC Sequence Header", "AVC NALU", "AVC End-of-Sequence"], d = a[1] & parseInt("01111111", 2) << 16 | a[2] << 8 | a[3]; return b = b || {}, b.avcPacketType = c[a[0]], b.CompositionTime = a[1] & parseInt("10000000", 2) ? -d : d, 1 === a[0] ? b.nalUnitTypeRaw = f(a.subarray(4, 100)) : b.data = f(a.subarray(4)), b }, h = function (a, b) { var c = ["Unknown", "Keyframe (for AVC, a seekable frame)", "Inter frame (for AVC, a nonseekable frame)", "Disposable inter frame (H.263 only)", "Generated keyframe (reserved for server use only)", "Video info/command frame"], d = a[0] & parseInt("00001111", 2); return b = b || {}, b.frameType = c[(a[0] & parseInt("11110000", 2)) >>> 4], b.codecID = d, 7 === d ? g(a.subarray(1), b) : b }, i = function (a, b) { var c = ["AAC Sequence Header", "AAC Raw"]; return b = b || {}, b.aacPacketType = c[a[0]], b.data = f(a.subarray(1)), b }, j = function (a, b) { var c = ["Linear PCM, platform endian", "ADPCM", "MP3", "Linear PCM, little endian", "Nellymoser 16-kHz mono", "Nellymoser 8-kHz mono", "Nellymoser", "G.711 A-law logarithmic PCM", "G.711 mu-law logarithmic PCM", "reserved", "AAC", "Speex", "MP3 8-Khz", "Device-specific sound"], d = ["5.5-kHz", "11-kHz", "22-kHz", "44-kHz"], e = (a[0] & parseInt("11110000", 2)) >>> 4; return b = b || {}, b.soundFormat = c[e], b.soundRate = d[(a[0] & parseInt("00001100", 2)) >>> 2], b.soundSize = (a[0] & parseInt("00000010", 2)) >>> 1 ? "16-bit" : "8-bit", b.soundType = a[0] & parseInt("00000001", 2) ? "Stereo" : "Mono", 10 === e ? i(a.subarray(1), b) : b }, k = function (a) { return { tagType: d[a[0]], dataSize: a[1] << 16 | a[2] << 8 | a[3], timestamp: a[7] << 24 | a[4] << 16 | a[5] << 8 | a[6], streamID: a[8] << 16 | a[9] << 8 | a[10] } }, l = function (a) { var b = k(a); switch (a[0]) { case 8: j(a.subarray(11), b); break; case 9: h(a.subarray(11), b) } return b }, m = function (a) { var b, c, d = 9, e = []; for (d += 4; d < a.byteLength;) b = a[d + 1] << 16, b |= a[d + 2] << 8, b |= a[d + 3], b += 11, c = a.subarray(d, d + b), e.push(l(c)), d += b + 4; return e }, n = function (a) { return JSON.stringify(a, null, 2) }; b.exports = { inspectTag: l, inspect: m, textify: n } }, {}], 38: [function (a, b, c) { (function (a) { "use strict"; var c, d, e = function (a) { var b = ""; return b += String.fromCharCode(a[0]), b += String.fromCharCode(a[1]), b += String.fromCharCode(a[2]), b += String.fromCharCode(a[3]) }, f = function (a) { return new Date(1e3 * a - 20828448e5) }, g = function (a) { return { isLeading: (12 & a[0]) >>> 2, dependsOn: 3 & a[0], isDependedOn: (192 & a[1]) >>> 6, hasRedundancy: (48 & a[1]) >>> 4, paddingValue: (14 & a[1]) >>> 1, isNonSyncSample: 1 & a[1], degradationPriority: a[2] << 8 | a[3] } }, h = function (a) { var b, c, d = new DataView(a.buffer, a.byteOffset, a.byteLength), e = []; for (b = 0; b + 4 < a.length; b += c) if (c = d.getUint32(b), b += 4, c <= 0) e.push("MALFORMED DATA"); else switch (31 & a[b]) { case 1: e.push("slice_layer_without_partitioning_rbsp"); break; case 5: e.push("slice_layer_without_partitioning_rbsp_idr"); break; case 6: e.push("sei_rbsp"); break; case 7: e.push("seq_parameter_set_rbsp"); break; case 8: e.push("pic_parameter_set_rbsp"); break; case 9: e.push("access_unit_delimiter_rbsp"); break; default: e.push("UNKNOWN NAL - " + a[b] & 31) } return e }, i = { avc1: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength); return { dataReferenceIndex: b.getUint16(6), width: b.getUint16(24), height: b.getUint16(26), horizresolution: b.getUint16(28) + b.getUint16(30) / 16, vertresolution: b.getUint16(32) + b.getUint16(34) / 16, frameCount: b.getUint16(40), depth: b.getUint16(74), config: c(a.subarray(78, a.byteLength)) } }, avcC: function (a) { var b, c, d, e, f = new DataView(a.buffer, a.byteOffset, a.byteLength), g = { configurationVersion: a[0], avcProfileIndication: a[1], profileCompatibility: a[2], avcLevelIndication: a[3], lengthSizeMinusOne: 3 & a[4], sps: [], pps: [] }, h = 31 & a[5]; for (d = 6, e = 0; e < h; e++) c = f.getUint16(d), d += 2, g.sps.push(new Uint8Array(a.subarray(d, d + c))), d += c; for (b = a[d], d++, e = 0; e < b; e++) c = f.getUint16(d), d += 2, g.pps.push(new Uint8Array(a.subarray(d, d + c))), d += c; return g }, btrt: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength); return { bufferSizeDB: b.getUint32(0), maxBitrate: b.getUint32(4), avgBitrate: b.getUint32(8) } }, esds: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), esId: a[6] << 8 | a[7], streamPriority: 31 & a[8], decoderConfig: { objectProfileIndication: a[11], streamType: a[12] >>> 2 & 63, bufferSize: a[13] << 16 | a[14] << 8 | a[15], maxBitrate: a[16] << 24 | a[17] << 16 | a[18] << 8 | a[19], avgBitrate: a[20] << 24 | a[21] << 16 | a[22] << 8 | a[23], decoderConfigDescriptor: { tag: a[24], length: a[25], audioObjectType: a[26] >>> 3 & 31, samplingFrequencyIndex: (7 & a[26]) << 1 | a[27] >>> 7 & 1, channelConfiguration: a[27] >>> 3 & 15 } } } }, ftyp: function (a) { for (var b = new DataView(a.buffer, a.byteOffset, a.byteLength), c = { majorBrand: e(a.subarray(0, 4)), minorVersion: b.getUint32(4), compatibleBrands: [] }, d = 8; d < a.byteLength;) c.compatibleBrands.push(e(a.subarray(d, d + 4))), d += 4; return c }, dinf: function (a) { return { boxes: c(a) } }, dref: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), dataReferences: c(a.subarray(8)) } }, hdlr: function (b) { var c = new DataView(b.buffer, b.byteOffset, b.byteLength), d = { version: c.getUint8(0), flags: new Uint8Array(b.subarray(1, 4)), handlerType: e(b.subarray(8, 12)), name: "" }, f = 8; for (f = 24; f < b.byteLength; f++) { if (0 === b[f]) { f++; break } d.name += String.fromCharCode(b[f]) } return d.name = decodeURIComponent(a.escape(d.name)), d }, mdat: function (a) { return { byteLength: a.byteLength, nals: h(a) } }, mdhd: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = 4, e = { version: c.getUint8(0), flags: new Uint8Array(a.subarray(1, 4)), language: "" }; return 1 === e.version ? (d += 4, e.creationTime = f(c.getUint32(d)), d += 8, e.modificationTime = f(c.getUint32(d)), d += 4, e.timescale = c.getUint32(d), d += 8, e.duration = c.getUint32(d)) : (e.creationTime = f(c.getUint32(d)), d += 4, e.modificationTime = f(c.getUint32(d)), d += 4, e.timescale = c.getUint32(d), d += 4, e.duration = c.getUint32(d)), d += 4, b = c.getUint16(d), e.language += String.fromCharCode(96 + (b >> 10)), e.language += String.fromCharCode(96 + ((960 & b) >> 5)), e.language += String.fromCharCode(96 + (31 & b)), e }, mdia: function (a) { return { boxes: c(a) } }, mfhd: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), sequenceNumber: a[4] << 24 | a[5] << 16 | a[6] << 8 | a[7] } }, minf: function (a) { return { boxes: c(a) } }, mp4a: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { dataReferenceIndex: b.getUint16(6), channelcount: b.getUint16(16), samplesize: b.getUint16(18), samplerate: b.getUint16(24) + b.getUint16(26) / 65536 }; return a.byteLength > 28 && (d.streamDescriptor = c(a.subarray(28))[0]), d }, moof: function (a) { return { boxes: c(a) } }, moov: function (a) { return { boxes: c(a) } }, mvex: function (a) { return { boxes: c(a) } }, mvhd: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength), c = 4, d = { version: b.getUint8(0), flags: new Uint8Array(a.subarray(1, 4)) }; return 1 === d.version ? (c += 4, d.creationTime = f(b.getUint32(c)), c += 8, d.modificationTime = f(b.getUint32(c)), c += 4, d.timescale = b.getUint32(c), c += 8, d.duration = b.getUint32(c)) : (d.creationTime = f(b.getUint32(c)), c += 4, d.modificationTime = f(b.getUint32(c)), c += 4, d.timescale = b.getUint32(c), c += 4, d.duration = b.getUint32(c)), c += 4, d.rate = b.getUint16(c) + b.getUint16(c + 2) / 16, c += 4, d.volume = b.getUint8(c) + b.getUint8(c + 1) / 8, c += 2, c += 2, c += 8, d.matrix = new Uint32Array(a.subarray(c, c + 36)), c += 36, c += 24, d.nextTrackId = b.getUint32(c), d }, pdin: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength); return { version: b.getUint8(0), flags: new Uint8Array(a.subarray(1, 4)), rate: b.getUint32(4), initialDelay: b.getUint32(8) } }, sdtp: function (a) { var b, c = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), samples: [] }; for (b = 4; b < a.byteLength; b++) c.samples.push({ dependsOn: (48 & a[b]) >> 4, isDependedOn: (12 & a[b]) >> 2, hasRedundancy: 3 & a[b] }); return c }, sidx: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), references: [], referenceId: c.getUint32(4), timescale: c.getUint32(8), earliestPresentationTime: c.getUint32(12), firstOffset: c.getUint32(16) }, e = c.getUint16(22); for (b = 24; e; b += 12, e--) d.references.push({ referenceType: (128 & a[b]) >>> 7, referencedSize: 2147483647 & c.getUint32(b), subsegmentDuration: c.getUint32(b + 4), startsWithSap: !!(128 & a[b + 8]), sapType: (112 & a[b + 8]) >>> 4, sapDeltaTime: 268435455 & c.getUint32(b + 8) }); return d }, smhd: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), balance: a[4] + a[5] / 256 } }, stbl: function (a) { return { boxes: c(a) } }, stco: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), chunkOffsets: [] }, e = c.getUint32(4); for (b = 8; e; b += 4, e--) d.chunkOffsets.push(c.getUint32(b)); return d }, stsc: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = c.getUint32(4), e = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), sampleToChunks: [] }; for (b = 8; d; b += 12, d--) e.sampleToChunks.push({ firstChunk: c.getUint32(b), samplesPerChunk: c.getUint32(b + 4), sampleDescriptionIndex: c.getUint32(b + 8) }); return e }, stsd: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), sampleDescriptions: c(a.subarray(8)) } }, stsz: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), sampleSize: c.getUint32(4), entries: [] }; for (b = 12; b < a.byteLength; b += 4) d.entries.push(c.getUint32(b)); return d }, stts: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), timeToSamples: [] }, e = c.getUint32(4); for (b = 8; e; b += 8, e--) d.timeToSamples.push({ sampleCount: c.getUint32(b), sampleDelta: c.getUint32(b + 4) }); return d }, styp: function (a) { return i.ftyp(a) }, tfdt: function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), baseMediaDecodeTime: a[4] << 24 | a[5] << 16 | a[6] << 8 | a[7] } }, tfhd: function (a) { var b, c = new DataView(a.buffer, a.byteOffset, a.byteLength), d = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), trackId: c.getUint32(4) }, e = 1 & d.flags[2], f = 2 & d.flags[2], g = 8 & d.flags[2], h = 16 & d.flags[2], i = 32 & d.flags[2]; return b = 8, e && (b += 4, d.baseDataOffset = c.getUint32(12), b += 4), f && (d.sampleDescriptionIndex = c.getUint32(b), b += 4), g && (d.defaultSampleDuration = c.getUint32(b), b += 4), h && (d.defaultSampleSize = c.getUint32(b), b += 4), i && (d.defaultSampleFlags = c.getUint32(b)), d }, tkhd: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength), c = 4, d = { version: b.getUint8(0), flags: new Uint8Array(a.subarray(1, 4)) }; return 1 === d.version ? (c += 4, d.creationTime = f(b.getUint32(c)), c += 8, d.modificationTime = f(b.getUint32(c)), c += 4, d.trackId = b.getUint32(c), c += 4, c += 8, d.duration = b.getUint32(c)) : (d.creationTime = f(b.getUint32(c)), c += 4, d.modificationTime = f(b.getUint32(c)), c += 4, d.trackId = b.getUint32(c), c += 4, c += 4, d.duration = b.getUint32(c)), c += 4, c += 8, d.layer = b.getUint16(c), c += 2, d.alternateGroup = b.getUint16(c), c += 2, d.volume = b.getUint8(c) + b.getUint8(c + 1) / 8, c += 2, c += 2, d.matrix = new Uint32Array(a.subarray(c, c + 36)), c += 36, d.width = b.getUint16(c) + b.getUint16(c + 2) / 16, c += 4, d.height = b.getUint16(c) + b.getUint16(c + 2) / 16, d }, traf: function (a) { return { boxes: c(a) } }, trak: function (a) { return { boxes: c(a) } }, trex: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength); return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), trackId: b.getUint32(4), defaultSampleDescriptionIndex: b.getUint32(8), defaultSampleDuration: b.getUint32(12), defaultSampleSize: b.getUint32(16), sampleDependsOn: 3 & a[20], sampleIsDependedOn: (192 & a[21]) >> 6, sampleHasRedundancy: (48 & a[21]) >> 4, samplePaddingValue: (14 & a[21]) >> 1, sampleIsDifferenceSample: !!(1 & a[21]), sampleDegradationPriority: b.getUint16(22) } }, trun: function (a) { var b, c = { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), samples: [] }, d = new DataView(a.buffer, a.byteOffset, a.byteLength), e = 1 & c.flags[2], f = 4 & c.flags[2], h = 1 & c.flags[1], i = 2 & c.flags[1], j = 4 & c.flags[1], k = 8 & c.flags[1], l = d.getUint32(4), m = 8; for (e && (c.dataOffset = d.getUint32(m), m += 4), f && l && (b = { flags: g(a.subarray(m, m + 4)) }, m += 4, h && (b.duration = d.getUint32(m), m += 4), i && (b.size = d.getUint32(m), m += 4), k && (b.compositionTimeOffset = d.getUint32(m), m += 4), c.samples.push(b), l--); l--;) b = {}, h && (b.duration = d.getUint32(m), m += 4), i && (b.size = d.getUint32(m), m += 4), j && (b.flags = g(a.subarray(m, m + 4)), m += 4), k && (b.compositionTimeOffset = d.getUint32(m), m += 4), c.samples.push(b); return c }, "url ": function (a) { return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)) } }, vmhd: function (a) { var b = new DataView(a.buffer, a.byteOffset, a.byteLength); return { version: a[0], flags: new Uint8Array(a.subarray(1, 4)), graphicsmode: b.getUint16(4), opcolor: new Uint16Array([b.getUint16(6), b.getUint16(8), b.getUint16(10)]) } } }; c = function (a) { for (var b, c, d, f, g, h = 0, j = [], k = new ArrayBuffer(a.length), l = new Uint8Array(k), m = 0; m < a.length; ++m) l[m] = a[m]; for (b = new DataView(k); h < a.byteLength;) c = b.getUint32(h), d = e(a.subarray(h + 4, h + 8)), f = c > 1 ? h + c : a.byteLength, g = (i[d] || function (a) { return { data: a } })(a.subarray(h + 8, f)), g.size = c, g.type = d, j.push(g), h = f; return j }, d = function (a, b) { var c; return b = b || 0, c = new Array(2 * b + 1).join(" "), a.map(function (a, e) { return c + a.type + "\n" + Object.keys(a).filter(function (a) { return "type" !== a && "boxes" !== a }).map(function (b) { var d = c + " " + b + ": ", e = a[b]; if (e instanceof Uint8Array || e instanceof Uint32Array) { var f = Array.prototype.slice.call(new Uint8Array(e.buffer, e.byteOffset, e.byteLength)).map(function (a) { return " " + ("00" + a.toString(16)).slice(-2) }).join("").match(/.{1,24}/g); return f ? 1 === f.length ? d + "<" + f.join("").slice(1) + ">" : d + "<\n" + f.map(function (a) { return c + " " + a }).join("\n") + "\n" + c + " >" : d + "<>" } return d + JSON.stringify(e, null, 2).split("\n").map(function (a, b) { return 0 === b ? a : c + " " + a }).join("\n") }).join("\n") + (a.boxes ? "\n" + d(a.boxes, b + 1) : "") }).join("\n") }, b.exports = { inspect: c, textify: d } }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 39: [function (a, b, c) { "use strict"; var d; d = function (a) { var b = a.byteLength, c = 0, d = 0; this.length = function () { return 8 * b }, this.bitsAvailable = function () { return 8 * b + d }, this.loadWord = function () { var e = a.byteLength - b, f = new Uint8Array(4), g = Math.min(4, b); if (0 === g) throw new Error("no bytes available"); f.set(a.subarray(e, e + g)), c = new DataView(f.buffer).getUint32(0), d = 8 * g, b -= g }, this.skipBits = function (a) { var e; d > a ? (c <<= a, d -= a) : (a -= d, e = Math.floor(a / 8), a -= 8 * e, b -= e, this.loadWord(), c <<= a, d -= a) }, this.readBits = function (a) { var e = Math.min(d, a), f = c >>> 32 - e; return d -= e, d > 0 ? c <<= e : b > 0 && this.loadWord(), e = a - e, e > 0 && d ? f << e | this.readBits(e) : f }, this.skipLeadingZeros = function () { var a; for (a = 0; a < d; ++a) if (0 != (c & 2147483648 >>> a)) return c <<= a, d -= a, a; return this.loadWord(), a + this.skipLeadingZeros() }, this.skipUnsignedExpGolomb = function () { this.skipBits(1 + this.skipLeadingZeros()) }, this.skipExpGolomb = function () { this.skipBits(1 + this.skipLeadingZeros()) }, this.readUnsignedExpGolomb = function () { var a = this.skipLeadingZeros(); return this.readBits(a + 1) - 1 }, this.readExpGolomb = function () { var a = this.readUnsignedExpGolomb(); return 1 & a ? 1 + a >>> 1 : -(a >>> 1) }, this.readBoolean = function () { return 1 === this.readBits(1) }, this.readUnsignedByte = function () { return this.readBits(8) }, this.loadWord() }, b.exports = d }, {}], 40: [function (a, b, c) { "use strict"; var d = function () { this.init = function () { var a = {}; this.on = function (b, c) { a[b] || (a[b] = []), a[b].push(c) }, this.off = function (b, c) { var d; return !!a[b] && (d = a[b].indexOf(c), a[b].splice(d, 1), d > -1) }, this.trigger = function (b) { var c, d, e, f; if (c = a[b]) if (c = c.slice(0), 2 === arguments.length) for (e = c.length, d = 0; d < e; ++d) c[d].call(this, arguments[1]); else { for (f = [], d = arguments.length, d = 1; d < arguments.length; ++d) f.push(arguments[d]); for (e = c.length, d = 0; d < e; ++d) c[d].apply(this, f) } }, this.dispose = function () { a = {} } } }; d.prototype.pipe = function (a) { return this.on("data", function (b) { a.push(b) }), this.on("done", function (b) { a.flush(b) }), a }, d.prototype.push = function (a) { this.trigger("data", a) }, d.prototype.flush = function (a) { this.trigger("done", a) }, b.exports = d }, {}], 41: [function (a, b, c) { var d = arguments[3], e = arguments[4], f = arguments[5], g = JSON.stringify; b.exports = function (a) { for (var b, c = Object.keys(f), h = 0, i = c.length; h < i; h++) { var j = c[h]; if (f[j].exports === a) { b = j; break } } if (!b) { b = Math.floor(Math.pow(16, 8) * Math.random()).toString(16); for (var k = {}, h = 0, i = c.length; h < i; h++) { var j = c[h]; k[j] = j } e[b] = [Function(["require", "module", "exports"], "(" + a + ")(self)"), k] } var l = Math.floor(Math.pow(16, 8) * Math.random()).toString(16), m = {}; m[b] = b, e[l] = [Function(["require"], "require(" + g(b) + ")(self)"), m]; var n = "(" + d + ")({" + Object.keys(e).map(function (a) { return g(a) + ":[" + e[a][0] + "," + g(e[a][1]) + "]" }).join(",") + "},{},[" + g(l) + "])", o = window.URL || window.webkitURL || window.mozURL || window.msURL; return new Worker(o.createObjectURL(new Blob([n], { type: "text/javascript" }))) } }, {}], 42: [function (a, b, c) { ! function (b, c) { "use strict"; function d(a, b) { var c = document.createElement("link"); c.setAttribute("rel", "stylesheet"), c.setAttribute("href", a + (b ? "?" + b : "")), document.getElementsByTagName("head")[0].appendChild(c) } function e() { if (!z) { z = !0; var a = q.prototype.createEl; q.prototype.createEl = function () { var b = a.call(this); return b.appendChild(c.createEl("div", { className: "vjs-gradient vjs-bottom-gradient" })), b }, t.prototype.createEl = function () { var a = s.prototype.createEl.call(this), b = this.player_.id(), d = i.replace(/{vjs-volume-mask1}/g, "vjs-volume-mask1_" + b).replace(/{vjs-volume-mask2}/g, "vjs-volume-mask2_" + b), e = this.icon_ = c.createEl("div", { className: "vjs-button-icon", innerHTML: d }); return a.insertBefore(e, a.firstChild), a }, t.prototype.tooltipHandler = function () { return this.icon_ }, u.prototype.controlText_ = "Full screen", u.prototype.createEl = function () { var a = r.prototype.createEl.call(this); return a.insertBefore(c.createEl("div", { className: "vjs-button-icon vjs-fullscreen-icon", innerHTML: j }), a.firstChild), a.insertBefore(c.createEl("div", { className: "vjs-button-icon vjs-exit-fullscreen-icon", innerHTML: k }), a.firstChild), a }, u.prototype.updateHint = function () { this.controlText(this.player_.isFullscreen() ? "Exit full screen" : "Full screen") }, v.prototype.createEl = function () { var a = r.prototype.createEl.call(this); return a.appendChild(c.createEl("div", { className: "vjs-button-icon", innerHTML: l })), a }; var b = w.prototype.createEl; w.prototype.createEl = function () { var a = b.call(this); return a.appendChild(c.createEl("div", { className: "vjs-slider-padding" })), a }; var d = x.prototype.createEl; x.prototype.createEl = function () { var a = d.call(this), b = c.createEl("div", { className: "vjs-spinner-rotator" }); return b.appendChild(c.createEl("div", { className: "vjs-spinner-left" })), b.appendChild(c.createEl("div", { className: "vjs-spinner-right" })), a.appendChild(b), a }; var e = y.prototype.show; y.prototype.show = function () { return this.timeout && (this.clearTimeout(this.timeout), this.timeout = 0), e.apply(this, arguments) } } } function f(a) { function c(a) { return Math.max(1, a) } var d = 1; if (a && !a.hasClass("vjs-ios-skin")) return a.ui_zoom = d; var e = b.visualViewport; if (e && e.scale) return a.ui_zoom = c(1 / e.scale); var f = b.screen; if (!f) return a.ui_zoom = d; var g = h() ? f.availHeight : f.availWidth; return g && (d = b.innerWidth / g), a.ui_zoom = c(d) } function g(a) { function b(a, b, e, g) { var h = c.createEl("div", { className: d + "background-tint" }); h.appendChild(c.createEl("div", { className: d + "blur" })), h.appendChild(c.createEl("div", { className: d + "tint" })), b.appendChild(h), e && b.appendChild(c.createEl("div", { className: "vjs-button-icon", innerHTML: "string" == typeof e ? e : "" })), !1 !== g && (b.className += " vjs-ios-control-box"), b.style.zoom = f(a) } if (!z) { z = !0; var d = "vjs-ios-", e = q.prototype.options_.children, g = e.indexOf("playToggle"); a.hide_skip_buttons || -1 == g || (e.splice(g + 1, 0, "skipForward"), e.splice(g, 0, "skipBackward")); var h = q.prototype.createEl; q.prototype.createEl = function () { var a = h.call(this); return b(this.player_, a, null, !1), a }; var i = q.prototype.initChildren; q.prototype.initChildren = function () { var a = i.call(this), b = this; return ["volumeMenuButton", "fullscreenToggle"].forEach(function (a) { var c = b[a]; c && c.el_ && b.player_.el_.appendChild(c.el_) }), a }; var j = t.prototype.createEl; t.prototype.createEl = function () { var a = j.call(this); return b(this.player_, a, !0), a }; var k = u.prototype.createEl; u.prototype.createEl = function () { var a = k.call(this); return b(this.player_, a, !0), a }; var l = v.prototype.createEl; v.prototype.createEl = function () { var a = l.call(this); return b(this.player_, a, !0, !1), a }; var m = w.prototype.calculateDistance; w.prototype.calculateDistance = function (a) { var b = this.player_.ui_zoom, c = {}; if (c.pageY = a.pageY / b, c.pageX = a.pageX / b, a.changedTouches && a.changedTouches[0]) { var d = {}; d.pageX = a.changedTouches[0].pageX / b, d.pageY = a.changedTouches[0].pageY / b, c.changedTouches = [d] } return m.call(this, c) }; var n = w.prototype.handleMouseDown; w.prototype.handleMouseDown = function (a) { this.mouse_down_pressed || (this.mouse_down_pressed = !0, n.call(this, a)) }; var o = w.prototype.handleMouseUp; w.prototype.handleMouseUp = function (a) { this.mouse_down_pressed && (this.mouse_down_pressed = !1, o.call(this, a)) }, w.prototype.handleMouseMove = function (a) { if (this.mouse_down_pressed) { var b = this.player_.duration(), c = this.calculateDistance(a); if (this.scrubbing_distance = c, b) { this.player_.scrubbing_percent = 0; var d = c * b; d === b && (d -= .1), this.player_.currentTime(d) } else this.player_.scrubbing_percent = c; this.update && this.update() } }, w.prototype.getPercent = function () { var a, b = this.player_.duration(); return a = b || !this.player_.scrubbing_percent ? this.player_.scrubbing() ? this.scrubbing_distance : this.player_.currentTime() / b : this.player_.scrubbing_percent, a >= 1 ? 1 : a } } } function h() { var a = b.screen; return !!a && a.availHeight > a.availWidth != b.innerHeight > b.innerWidth } var i = '', j = '', k = '', l = '', m = '
', n = ".vjs5-hola-skin", o = n + " .vjs-big-play-button:hover .vjs-button-icon { fill: @play_button_color;}" + n + ":not(.vjs-ad-playing) .vjs-progress-control .vjs-play-progress," + n + " .vjs-progress-control .vjs-mouse-display:before," + n + " .vjs-progress-control .vjs-play-progress:before," + n + " .vjs-captions-toggle>.vjs-button-icon:after { background-color: @seek_bar_color;}", p = c.getComponent("Component"), q = c.getComponent("ControlBar"), r = c.getComponent("Button"), s = c.getComponent("MenuButton"), t = c.getComponent("VolumeMenuButton"), u = c.getComponent("FullscreenToggle"), v = c.getComponent("BigPlayButton"), w = c.getComponent("SeekBar"), x = c.getComponent("LoadingSpinner"), y = c.getComponent("Tooltip"), z = !1, A = function (a, c) { var d = this; this.player = a, this.el = a.el(), this.opt = c, this.classes_added = []; var e = "vjs-ios-skin" == c.className; this.controls_min_width = e ? [{ name: "skipBackward", min_width: 306 }, { name: "skipForward", min_width: 335 }, { name: "currentTimeDisplay", min_width: 260 }] : [], this.external_controls = e ? ["volumeMenuButton", "fullscreenToggle"] : [], a.on("dispose", function () { d.dispose() }), a.on("ready", function () { d.init() }); var f = this._resize = this.resize.bind(this), g = this._zoom_end = this.on_touch_end.bind(this); a.on("resize", f), a.on("fullscreenchange", function () { setTimeout(f) }), b.addEventListener("resize", f), b.addEventListener("orientationchange", f), this.scale = 1, document.addEventListener("touchend", g), this.apply() }; A.prototype.apply = function () { var a, b = [this.opt.className]; for (this.opt.show_controls_before_start && b.push("vjs-show-controls-before-start"), this.opt.show_time_for_live && b.push("vjs-show-time-for-live"); a = b.shift();) this.player.addClass(a) && this.classes_added.push(a) }, A.prototype.update_scrubbing = function () { if (this.player.scrubbing_percent) { var a = this.player.duration(); if (a === 1 / 0) return void(this.player.scrubbing_percent = 0); if (a && !this.player.hasClass("vjs-waiting")) { var b = this.player.scrubbing_percent * a; b === a && (b -= .1), this.player.scrubbing_percent = 0, this.player.currentTime(b) } } }, A.prototype.on_touch_end = function (a) { var b = f(this.player); if (this._zoom_bounce && clearTimeout(this._zoom_bounce), this.scale == b) return void(a && (this._zoom_bounce = setTimeout(this._zoom_end, 500))); var c = this.scale < b; this.scale = b, this._resize(), c && (this._zoom_bounce = setTimeout(this._resize, 500)) }, A.prototype.resize = function () { function a(a) { var c = b.controlBar; return b[a] || c && c[a] || b.getChild(a) } var b = this.player, c = this.el.offsetWidth; b.toggleClass("vjs-small", c <= 480); var d = f(b); ["controlBar", "bigPlayButton", "ShareButton"].concat(this.external_controls).forEach(function (b) { var c = a(b); if (c) { var e = c.el(); e && (e.style.zoom = d) } }); var e = c / d; this.controls_min_width.forEach(function (b) { var c = a(b.name); c && c.toggleClass("vjs-hidden", e < b.min_width) }) }, A.prototype.init = function () { var a = this, b = this.player; this.resize(), (c.browser.IS_ANDROID || c.browser.IS_IOS) && b.addClass("vjs-mobile"), this.init_volume_button(), this.has_played = !1, b.controlBar.playToggle.el().appendChild(c.createEl("div", { className: "vjs-button-icon" })); var d = this.update_scrubbing.bind(this); b.on("play", function () { a.is_ended = !1, a.update_state(b) }).on("ended", function () { a.is_ended = !0, a.update_state(b) }).on("seeking", function () { b.currentTime() ? (a.is_ended = !1, a.has_played = !0) : a.has_played = !1, a.update_state(b) }).on("timeupdate", function (c, e, f) { var g = !!b.currentTime(); g != a.has_played && (d(), a.has_played = g, a.update_state(b)) }).on("mouseleave", function () { b.hasClass("vjs-settings-expanded") || b.userActive(!1) }).one("loadmetadata", d).one("canplay", d).one("canplaythrough", d).one("playing", d), this.update_state(b); var e = b.controlBar, f = e.progressControl, g = f.seekBar, h = g.el(); f.on("touchstart", function (a) { f.addClass("vjs-touch"), g.handleMouseDown(a) }), f.on("touchmove", function (a) { g.handleMouseMove(a) }), f.on("touchend", function (a) { g.handleMouseUp(a), f.removeClass("vjs-touch") }), h.insertAdjacentHTML("beforeend", m), b.addChild("PlayAnimation"); var i = e.volumeMenuButton; i.volumeBar.el().insertAdjacentHTML("beforeend", m), i.on("mouseenter", function () { i.addClass("vjs-show-volume-button") }); var j, k = b.reportUserActivity.bind(b); e.on("mouseenter", function () { j = this.setInterval(k, 250) }), e.on("mouseleave", function () { j && this.clearInterval(j), i.removeClass("vjs-show-volume-button") }); var l = e.customControlSpacer, n = l && l.el(); n && e.on("mousemove", function (a) { var b = n.getBoundingClientRect(); (a.clientX > b.left || a.clientY < b.top) && i.removeClass("vjs-show-volume-button") }), this.opt.title && b.addChild("TopBar", { title: this.opt.title }) }, A.prototype.update_state = function (a) { a.controlBar.playToggle.toggleClass("vjs-play-control-replay", this.is_ended), a.bigPlayButton.toggleClass("vjs-play-control-replay", this.is_ended), a.toggleClass("vjs-pos-ended", this.is_ended && this.has_played), a.toggleClass("vjs-pos-started", this.has_played); var b = a.posterImage.el(); this.is_ended ? (a.controlBar.playToggle.controlText("Replay"), setTimeout(function () { b.style.opacity = 1 })) : b.style.opacity = "" }, A.prototype.init_volume_button = function () { var a = this.player, d = a.controlBar.volumeMenuButton, e = function (a, b, c, e) { var f = t.prototype; d.off(a, b, f[c]), d.on(a, b, e), d[c] = e }; e(a, ["volumechange", "advolumechange", "loadstart"], "volumeUpdate", function () { var a, d = this.el_, e = this, f = !this.player_.muted() && this.player_.volume(), g = f ? f < .5 ? 1 : 2 : 0; for (a = 0; a < 2; a++) c.toggleClass(d, "vjs-vol-" + a, a == g); var h = !f; if (void 0 === this.muted_ || this.muted_ != h) { this.muted_ = h, this.controlText(h ? "Unmute" : "Mute"); var i = d.querySelectorAll(".vjs-volume-mask"), j = f ? 20 : 0, k = f ? 0 : 20, l = b.performance && b.performance.now(), m = function (c) { var d = c ? (c - l) / 250 : 1, f = j + (k - j) * Math.max(Math.min(d, 1), 0); for (a = 0; a < i.length; a++) i[a].setAttribute("transform", "translate(" + f + "," + f + ")"); f != k && (e.animId = b.requestAnimationFrame(m)) }; if (!l || !b.requestAnimationFrame) return void m(); this.animId && b.cancelAnimationFrame(this.animId), this.animId = b.requestAnimationFrame(m) } }); var f = !1; e(d, ["tap", "click"], "handleClick", function () { f || (this.player_.muted(!this.player_.muted() && !!this.player_.volume()), this.player_.muted() || this.player_.volume() || this.player_.volume(1)) }), d.on("mousedown", function (a) { f = this.volumeBar.el().contains(a.target) }), d.volumeUpdate() }, A.prototype.dispose = function () { for (; this.classes_added.length;) this.player.removeClass(this.classes_added.pop()); b.removeEventListener("resize", this._resize), b.removeEventListener("orientationchange", this._resize), document.removeEventListener("touchend", this._zoom_end), this._zoom_bounce && (this._zoom_bounce = clearTimeout(this._zoom_bounce)) }, c.registerComponent("ControlsWatermark", c.extend(r, { constructor: function (a, b) { r.apply(this, arguments), b.tooltip && this.controlText(b.tooltip) }, createEl: function () { var a = this.options_, b = c.createEl("div", { className: "vjs-controls-watermark vjs-control" }); if (!a.image) return b; var d = a.url ? c.createEl("a", { href: a.url, target: "_blank" }) : b; return a.url && b.insertBefore(d, b.firstChild), d.appendChild(c.createEl("img", { src: a.image })), b }, handleClick: function () { this.options_.url && this.player_.pause() }, buildCSSClass: function () { return "vjs-controls-watermark " + r.prototype.buildCSSClass.apply(this, arguments) } })), c.registerComponent("PlayAnimation", c.extend(p, { constructor: function (a, b) { p.apply(this, arguments); var c, d = this; a.on(["videoclick"], function () { a.hasStarted() && (d.el_.style.display = "block", d.clearTimeout(c), c = d.setTimeout(function () { d.el_.style.display = "" }, 500)) }) }, createEl: function () { var a = p.prototype.createEl.apply(this, arguments); return a.className = "vjs-play-animation", a } })), c.registerComponent("TopBar", c.extend(p, { createEl: function () { var a = c.createEl("div", { className: "vjs-top-bar" }); return a.appendChild(c.createEl("div", { className: "vjs-gradient vjs-top-gradient" })), a.appendChild(c.createEl("div", { className: "vjs-video-title", innerHTML: this.options_.title })), a } })), c.registerComponent("SkipForward", c.extend(r, { skip: 15, className: "vjs-skip-forward", createEl: function () { var a = r.prototype.createEl.call(this), b = c.createEl("div", { className: "vjs-button-icon", innerHTML: "" }); return a.insertBefore(b, a.firstChild), a }, buildCSSClass: function () { var a = r.prototype.buildCSSClass.call(this); return this.className + " vjs-skip-button " + a }, handleClick: function () { var a = this.player_.currentTime(); this.player_.currentTime(a + this.skip) } })); var B = c.getComponent("SkipForward"); c.registerComponent("SkipBackward", c.extend(B, { skip: -15, className: "vjs-skip-back" })); var C = { className: "vjs5-hola-skin", css: "/css/videojs-hola-skin.css", ver: "ver={[version]}" }; c.plugin("hola_skin", function (b) { !1 === b && (b = { css: !1, className: !1 }); var f = c.mergeOptions(C, b); !f.css || b.className && !b.css || d(f.css, f.ver), d("//fonts.googleapis.com/css?family=Roboto:400,500"), (f.play_button_color || f.seek_bar_color) && (o = o.replace(/@play_button_color/g, f.play_button_color || "#00b7f1").replace(/@seek_bar_color/g, f.seek_bar_color || "#00b7f1"), a("browserify-css").createStyle(o)), "vjs-ios-skin" == f.className ? g(f) : e(), new A(this, f) }) }(window, window.videojs) }, { "browserify-css": 49 }], 43: [function (b, c, d) { ! function (b) { if ("function" == typeof a && a.amd) a(["video.js", "videojs-contrib-ads"], function (a) { b(window, document, a) }); else if ("object" == typeof d && "object" == typeof c) { var e = window.videojs; b(window, document, e) } else b(window, document, videojs) }(function (a, b, c) { "use strict"; var d = function (a) { var b, c, d; for (c = 1; c < arguments.length; c++) { b = arguments[c]; for (d in b) b.hasOwnProperty(d) && (a[d] = b[d]) } return a }, e = { debug: !1, timeout: 5e3, prerollTimeout: 100, adLabel: "Advertisement", showControlsForAds: !0, showControlsForJSAds: !0, adsRenderingSettings: { uiElements: [] } }, f = c.browser.IS_ANDROID || c.browser.IS_IOS ? { click: "touchend", mousedown: "touchstart", mouseup: "touchend", mousemove: "touchmove" } : { click: "click", mousedown: "mousedown", mouseup: "mouseup", mousemove: "mousemove" }, g = function (a, b) { this.ima = new h(this, a, b) }, h = function (g, h, i) { this.player = g; var j = function (a, b) { a.id = this.controlPrefix + b, a.className = this.controlPrefix + b + " " + b }.bind(this), k = function (a) { return new RegExp("(^|[^A-Za-z-])" + a + "((?![A-Za-z-])|$)", "gi") }, l = function (a, b) { return k(b).test(a.className) ? a : a.className = a.className.trim() + " " + b }, m = function (a, b) { var c = k(b); return c.test(a.className) ? a.className = a.className.trim().replace(c, "") : a }, n = function () { this.vjsControls = this.player.getChild("controlBar"), this.adContainerDiv = this.vjsControls.el().parentNode.appendChild(b.createElement("div")), j(this.adContainerDiv, "ima-ad-container"), this.adContainerDiv.style.position = "absolute", this.adContainerDiv.style.zIndex = 1111, this.adContainerDiv.addEventListener("mouseenter", z, !1), this.adContainerDiv.addEventListener("mouseleave", y, !1), o(), this.adDisplayContainer = new google.ima.AdDisplayContainer(this.adContainerDiv, this.contentPlayer), this.showAdContainer(!this.settings.manual) }.bind(this), o = function () { this.controlsDiv = b.createElement("div"), j(this.controlsDiv, "ima-controls-div"), this.controlsDiv.style.width = "100%", this.countdownDiv = b.createElement("div"), j(this.countdownDiv, "ima-countdown-div"), this.countdownDiv.innerHTML = this.settings.adLabel, this.countdownDiv.style.display = this.showCountdown ? "" : "none", this.seekBarDiv = b.createElement("div"), j(this.seekBarDiv, "ima-seek-bar-div"), this.seekBarDiv.style.width = "100%", this.progressDiv = b.createElement("div"), j(this.progressDiv, "ima-progress-div"), this.playPauseDiv = b.createElement("div"), j(this.playPauseDiv, "ima-play-pause-div"), l(this.playPauseDiv, "ima-playing"), this.playPauseDiv.addEventListener(f.click, C, !1), this.muteDiv = b.createElement("div"), j(this.muteDiv, "ima-mute-div"), l(this.muteDiv, "ima-non-muted"), this.muteDiv.addEventListener(f.click, D, !1), this.sliderDiv = b.createElement("div"), j(this.sliderDiv, "ima-slider-div"), this.sliderDiv.addEventListener(f.mousedown, E, !1), this.sliderLevelDiv = b.createElement("div"), j(this.sliderLevelDiv, "ima-slider-level-div"), this.fullscreenDiv = b.createElement("div"), j(this.fullscreenDiv, "ima-fullscreen-div"), l(this.fullscreenDiv, "ima-non-fullscreen"), this.fullscreenDiv.addEventListener(f.click, I, !1), this.adContainerDiv.appendChild(this.controlsDiv), this.controlsDiv.appendChild(this.seekBarDiv), this.controlsDiv.appendChild(this.playPauseDiv), this.controlsDiv.appendChild(this.muteDiv), this.controlsDiv.appendChild(this.sliderDiv), this.controlsDiv.appendChild(this.fullscreenDiv), this.seekBarDiv.appendChild(this.progressDiv), this.sliderDiv.appendChild(this.sliderLevelDiv), this.settings.vjsControls ? (this.initVjsControls(), this.controlsDiv.style.display = "none", this.vjsControls.el().appendChild(this.countdownDiv)) : this.controlsDiv.appendChild(this.countdownDiv) }.bind(this); this.showAdContainer = function (a) { this.adContainerDiv.style.display = a ? "block" : "none", this.player.toggleClass("vjs-ima-ad", a) }.bind(this), this.initializeAdDisplayContainer = function () { this.adDisplayContainerInitialized = !0, this.adDisplayContainer.initialize() }.bind(this), this.requestAds = function () { this.adDisplayContainerInitialized || this.adDisplayContainer.initialize(); var a = new google.ima.AdsRequest; this.settings.adTagUrl ? a.adTagUrl = this.settings.adTagUrl : a.adsResponse = this.settings.adsResponse, this.settings.forceNonLinearFullSlot && (a.forceNonLinearFullSlot = !0), a.linearAdSlotWidth = this.getPlayerWidth(), a.linearAdSlotHeight = this.getPlayerHeight(), a.nonLinearAdSlotWidth = this.settings.nonLinearWidth || this.getPlayerWidth(), a.nonLinearAdSlotHeight = this.settings.nonLinearHeight || this.getPlayerHeight(), a.setAdWillAutoPlay(this.player.autoplay()), a.setAdWillPlayMuted(this.player.muted() || 0 == this.player.volume()), this.adsLoader.requestAds(a) }.bind(this); var p = function (a) { this.adsManager = a.getAdsManager(this.contentPlayheadTracker, this.adsRenderingSettings), this.adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, r), this.adsManager.addEventListener(google.ima.AdEvent.Type.AD_BREAK_READY, s), this.adsManager.addEventListener(google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, this.onContentPauseRequested_), this.adsManager.addEventListener(google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, this.onContentResumeRequested_), this.adsManager.addEventListener(google.ima.AdEvent.Type.ALL_ADS_COMPLETED, t), this.adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, u), this.adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, v), this.adsManager.addEventListener(google.ima.AdEvent.Type.CLICK, C), this.adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, this.onAdComplete_), this.adsManager.addEventListener(google.ima.AdEvent.Type.SKIPPED, this.onAdComplete_), this.adsManager.addEventListener(google.ima.AdEvent.Type.PAUSED, this.onAdPaused_), this.adsManager.addEventListener(google.ima.AdEvent.Type.RESUMED, this.onAdResumed_); var b = { load: google.ima.AdEvent.Type.LOADED, "ad-started": google.ima.AdEvent.Type.STARTED, click: google.ima.AdEvent.Type.CLICK, "ad-ended": google.ima.AdEvent.Type.COMPLETE, "ad-skipped": google.ima.AdEvent.Type.SKIPPED, "first-quartile": google.ima.AdEvent.Type.FIRST_QUARTILE, midpoint: google.ima.AdEvent.Type.MIDPOINT, "third-quartile": google.ima.AdEvent.Type.THIRD_QUARTILE, impression: google.ima.AdEvent.Type.IMPRESSION, pause: google.ima.AdEvent.Type.PAUSED, play: google.ima.AdEvent.Type.RESUMED, mute: google.ima.AdEvent.Type.VOLUME_MUTED }; if (Object.keys(b).forEach(function (a) { this.adsManager.addEventListener(b[a], function () { this.player.trigger("ads-" + a) }.bind(this)) }.bind(this)), !this.autoPlayAdBreaks) try { var c = this.getPlayerWidth(), d = this.getPlayerHeight(); this.adsManagerDimensions.width = c, this.adsManagerDimensions.height = d, this.adsManager.init(c, d, google.ima.ViewMode.NORMAL), this.adsManager.setVolume(this.player.muted() ? 0 : this.player.volume()) } catch (a) { r(a) } var e = this.adsManager.getCuePoints(), f = !e.length, g = !1; e.forEach(function (a) { a ? -1 == a && (g = !0) : f = !0 }), f || this.player.trigger("nopreroll"), g || this.player.trigger("nopostroll"), e.length && this.player.trigger("ads-cuepoints", e), this.player.trigger("adsready") }.bind(this); this.start = function () { a.console.log("WARNING: player.ima.start is deprecated. Use player.ima.startFromReadyCallback instead.") }, this.startFromReadyCallback = function () { if (this.autoPlayAdBreaks && this.adsManager) try { this.adsManager.init(this.getPlayerWidth(), this.getPlayerHeight(), google.ima.ViewMode.NORMAL), this.adsManager.setVolume(this.player.muted() ? 0 : this.player.volume()), this.adsManager.start() } catch (a) { r(a) } }.bind(this); var q = function (b) { a.console.log("AdsLoader error: " + b.getError()), this.showAdContainer(!1), this.adsManager && this.adsManager.destroy(), this.player.trigger({ type: "adserror", data: { AdError: b.getError(), AdErrorEvent: b } }) }.bind(this), r = function (b) { var c = void 0 !== b.getError ? b.getError() : b.stack; a.console.log("Ad error: " + c), this.adsActive = !1, this.adPlaying = !1, this.restoreLoop(), this.vjsControls.show(), this.adsManager.destroy(), this.showAdContainer(!1), this.updateFullscreenButton(), this.updateVjsControls(), this.player.trigger({ type: "adserror", data: { AdError: c, AdErrorEvent: b } }) }.bind(this), s = function (a) { this.adBreakReadyListener(a) }.bind(this); this.playAdBreak = function () { this.autoPlayAdBreaks || this.adsManager.start() }.bind(this), this.resetLoop = function () { this.contentLoop = this.contentPlayer && this.contentPlayer.loop, this.contentLoop && (this.contentPlayer.loop = !1) }.bind(this), this.restoreLoop = function () { this.contentLoop && (this.contentPlayer.loop = !0, this.contentLoop = !1) }.bind(this), this.onContentPauseRequested_ = function (a) { this.player.isFullscreen() && !this.isFullscreenAdSupported() && this.player.exitFullscreen(), this.contentSource = this.player.currentSrc(), this.resetLoop(), this.player.off("contentended", this.localContentEndedListener), this.player.ads.startLinearAdMode(), this.showAdContainer(!0); var b = a.getAd().getContentType(); this.settings.vjsControls && this.settings.showControlsForAds || (!this.settings.showControlsForAds || "application/javascript" === b && !this.settings.showControlsForJSAds ? this.controlsDiv.style.display = "none" : this.controlsDiv.style.display = "block", this.vjsControls.hide()), B(), this.player.pause(), this.adsActive = !0, this.adPlaying = !0, this.updateFullscreenButton(), this.updateVjsControls() }.bind(this), this.onContentResumeRequested_ = function (a) { this.contentResumeTimer = clearTimeout(this.contentResumeTimer), this.restoreLoop(), this.adsActive = !1, this.adPlaying = !1, this.player.on("contentended", this.localContentEndedListener), (null == this.currentAd || this.currentAd.isLinear()) && this.showAdContainer(!1), this.vjsControls.show(), this.player.ads.endLinearAdMode(), this.countdownDiv.innerHTML = "", this.updateFullscreenButton(), this.updateVjsControls() }.bind(this); var t = function (a) { if (this.allAdsCompleted = !0, this.showAdContainer(!1), 1 == this.contentComplete) { this.contentPlayer.src && !/^blob:/.test(this.contentPlayer.src) && this.contentSource && this.contentPlayer.src != this.contentSource && this.player.src(this.contentSource); for (var b in this.contentAndAdsEndedListeners) this.contentAndAdsEndedListeners[b]() } }.bind(this), u = function (a) { a.getAd().isLinear() || this.player.ended() || (this.player.ads.endLinearAdMode(), this.player.play()) }.bind(this), v = function (a) { this.currentAd = a.getAd(), this.currentAd.isLinear() ? (this.adTrackingTimer = setInterval(x, 250), m(this.adContainerDiv, "bumpable-ima-ad-container")) : (l(this.adContainerDiv, "bumpable-ima-ad-container"), this.player.addClass("vjs-ima-non-linear"), this.showAdContainer(!0)) }.bind(this); this.onAdComplete_ = function (a) { if (this.currentAd.isLinear()) { clearInterval(this.adTrackingTimer); var b = this.currentAd.getAdPodInfo(); if (b && b.getAdPosition() < b.getTotalAds()) return; this.contentResumeTimer = setTimeout(function () { this.onContentResumeRequested_(null) }.bind(this), 1e3) } else this.player.removeClass("vjs-ima-non-linear") }.bind(this), this.onAdPaused_ = function (a) { A(), this.adPlaying = !1 }.bind(this), this.onAdResumed_ = function (a) { B(), this.adPlaying = !0 }.bind(this); var w = function (a) { var b = Math.floor(a / 60), c = Math.floor(a % 60); return c.toString().length < 2 && (c = "0" + c), b + ":" + c }, x = function () { var a = this.adsManager.getRemainingTime(), b = this.currentAd.getDuration(), c = b - a; c = c > 0 ? c : 0; var d, e = !1, f = 0; this.currentAd.getAdPodInfo() && (e = !0, d = this.currentAd.getAdPodInfo().getAdPosition(), f = this.currentAd.getAdPodInfo().getTotalAds()); var g = ": "; e && f > 1 && (g = " (" + d + " of " + f + "): "), this.countdownDiv.innerHTML = this.settings.adLabel + g + w(a); var h = c / b, i = 100 * h; this.progressDiv.style.width = i + "%", this.updateVjsControls() }.bind(this); this.getPlayerWidth = function () { return parseInt(getComputedStyle(this.player.el()).width, 10) || this.player.width() }.bind(this), this.getPlayerHeight = function () { return parseInt(getComputedStyle(this.player.el()).height, 10) || this.player.height() }.bind(this); var y = function () { this.controlsDiv.style.height = "14px", this.playPauseDiv.style.display = "none", this.muteDiv.style.display = "none", this.sliderDiv.style.display = "none", this.fullscreenDiv.style.display = "none" }.bind(this), z = function () { this.controlsDiv.style.height = "37px", this.playPauseDiv.style.display = "block", this.muteDiv.style.display = "block", this.sliderDiv.style.display = "block", this.fullscreenDiv.style.display = "block" }.bind(this), A = function () { l(this.playPauseDiv, "ima-paused"), m(this.playPauseDiv, "ima-playing") }.bind(this), B = function () { l(this.playPauseDiv, "ima-playing"), m(this.playPauseDiv, "ima-paused") }.bind(this), C = function () { this.adPlaying ? (A(), this.adsManager.pause(), this.adPlaying = !1) : (B(), this.adsManager.resume(), this.adPlaying = !0) }.bind(this), D = function () { this.adMuted ? (l(this.muteDiv, "ima-non-muted"), m(this.muteDiv, "ima-muted"), this.adsManager.setVolume(1), this.player.muted(!1), this.adMuted = !1, this.sliderLevelDiv.style.width = 100 * this.player.volume() + "%") : (l(this.muteDiv, "ima-muted"), m(this.muteDiv, "ima-non-muted"), this.adsManager.setVolume(0), this.player.muted(!0), this.adMuted = !0, this.sliderLevelDiv.style.width = "0%") }.bind(this), E = function () { b.addEventListener(f.mouseup, G, !1), b.addEventListener(f.mousemove, F, !1) }, F = function (a) { H(a) }, G = function (a) { H(a), b.removeEventListener(f.mousemove, F), b.removeEventListener(f.mouseup, G) }, H = function (a) { var b = a.changedTouches ? a.changedTouches[0].clientX : a.clientX, c = (b - this.sliderDiv.getBoundingClientRect().left) / this.sliderDiv.offsetWidth; c *= 100, c = Math.min(Math.max(c, 0), 100), this.sliderLevelDiv.style.width = c + "%", this.player.volume(c / 100), this.adsManager.setVolume(c / 100), 0 == this.player.volume() ? (l(this.muteDiv, "ima-muted"), m(this.muteDiv, "ima-non-muted"), this.player.muted(!0), this.adMuted = !0) : (l(this.muteDiv, "ima-non-muted"), m(this.muteDiv, "ima-muted"), this.player.muted(!1), this.adMuted = !1) }.bind(this), I = function () { this.player.isFullscreen() ? this.player.exitFullscreen() : this.player.requestFullscreen() }.bind(this), J = function () { this.player.isFullscreen() ? (l(this.fullscreenDiv, "ima-fullscreen"), m(this.fullscreenDiv, "ima-non-fullscreen"), this.adsManager && this.adsManager.resize(a.screen.width, a.screen.height, google.ima.ViewMode.FULLSCREEN)) : (l(this.fullscreenDiv, "ima-non-fullscreen"), m(this.fullscreenDiv, "ima-fullscreen"), this.adsManager && this.adsManager.resize(this.getPlayerWidth(), this.getPlayerHeight(), google.ima.ViewMode.NORMAL)) }.bind(this), K = function () { var a = this.player.muted() ? 0 : this.player.volume(); this.adsManager && this.adsManager.setVolume(a), 0 == a ? (this.adMuted = !0, l(this.muteDiv, "ima-muted"), m(this.muteDiv, "ima-non-muted"), this.sliderLevelDiv.style.width = "0%") : (this.adMuted = !1, l(this.muteDiv, "ima-non-muted"), m(this.muteDiv, "ima-muted"), this.sliderLevelDiv.style.width = 100 * a + "%") }.bind(this), L = function () { this.player.off("loadedmetadata", L), this.player.currentTime(0) }.bind(this), M = function () { this.player.off("loadedmetadata", M), this.player.currentTime(0), this.player.play() }.bind(this), N = function () { this.adsActive = !1, this.adPlaying = !1, this.restoreLoop(), this.player.on("contentended", this.localContentEndedListener), this.currentAd && this.currentAd.isLinear() && this.showAdContainer(!1), this.vjsControls.show(), this.player.ads.endLinearAdMode(), this.updateFullscreenButton(), this.updateVjsControls(), this.adTrackingTimer && clearInterval(this.adTrackingTimer), this.adsManager && (this.adsManager.destroy(), this.adsManager = null), this.adsLoader && !this.contentComplete && this.adsLoader.contentComplete(), this.contentComplete = !1, this.allAdsCompleted = !1 }.bind(this); this.addEventListener = function (a, b) { this.adsManager && this.adsManager.addEventListener(a, b) }.bind(this), this.getAdsManager = function () { return this.adsManager }.bind(this), this.setContent = function (b, c, d) { a.console.log("WARNING: player.ima.setContent is deprecated. Use player.ima.setContentWithAdTag instead."), this.setContentWithAdTag(b, c, d) }.bind(this), this.setContentWithAdTag = function (a, b, c) { N(), this.settings.adTagUrl = b || this.settings.adTagUrl, O(a, c) }.bind(this), this.setContentWithAdsResponse = function (a, b, c) { N(), this.settings.adsResponse = b || this.settings.adsResponse, O(a, c) }.bind(this), this.playAd = function (a) { N(), this.settings.adTagUrl = a || this.settings.adTagUrl, this.showAdContainer(!0), this.requestAds() }.bind(this); var O = function (a, b) { this.player.currentSrc() && (this.player.currentTime(0), this.player.pause()), a && this.player.src(a), b ? this.player.on("loadedmetadata", M) : this.player.on("loadedmetadata", L) }.bind(this); this.addContentEndedListener = function (a) { this.contentEndedListeners.push(a) }.bind(this), this.addContentAndAdsEndedListener = function (a) { this.contentAndAdsEndedListeners.push(a) }.bind(this), this.setAdBreakReadyListener = function (a) { this.adBreakReadyListener = a }.bind(this), this.pauseAd = function () { this.adsActive && this.adPlaying && (A(), this.adsManager.pause(), this.adPlaying = !1) }.bind(this), this.resumeAd = function () { this.adsActive && !this.adPlaying && (B(), this.adsManager.resume(), this.adPlaying = !0) }.bind(this); var P = function () { this.updateTimeIntervalHandle = setInterval(R, this.seekCheckInterval), this.seekCheckIntervalHandle = setInterval(S, this.seekCheckInterval), this.resizeCheckIntervalHandle = setInterval(T, this.resizeCheckInterval) }.bind(this), Q = function () { var a = this.player.currentTime(); a && "content-playback" == this.player.ads.state && (a < 1 && (a = 0), this.contentPlayheadTracker.startTime = a, this.player.off("timeupdate", Q)) }.bind(this), R = function () { "content-playback" == this.player.ads.state && !this.contentPlayheadTracker.seeking && this.contentPlayheadTracker.startTime >= 0 && (this.contentPlayheadTracker.currentTime = this.player.currentTime() - this.contentPlayheadTracker.startTime) }.bind(this), S = function () { if ("content-playback" == this.player.ads.state) { var a = this.player.currentTime(), b = 1e3 * (a - this.contentPlayheadTracker.previousTime); Math.abs(b) > this.seekCheckInterval + this.seekThreshold ? this.contentPlayheadTracker.seeking = !0 : this.contentPlayheadTracker.seeking = !1, this.contentPlayheadTracker.previousTime = this.player.currentTime() } }.bind(this), T = function () { var a = this.getPlayerWidth(), b = this.getPlayerHeight(); !this.adsManager || a == this.adsManagerDimensions.width && b == this.adsManagerDimensions.height || (this.adsManagerDimensions.width = a, this.adsManagerDimensions.height = b, this.adsManager.resize(a, b, google.ima.ViewMode.NORMAL)) }.bind(this); this.setShowCountdown = function (a) { this.showCountdown = a, this.countdownDiv.style.display = this.showCountdown ? "" : "none" }.bind(this), this.VERSION = "0.2.0", this.settings, this.controlPrefix, this.contentPlayer, this.showCountdown, this.autoPlayAdBreaks, this.vjsControls, this.adContainerDiv, this.controlsDiv, this.countdownDiv, this.seekBarDiv, this.progressDiv, this.playPauseDiv, this.muteDiv, this.sliderDiv, this.sliderLevelDiv, this.fullscreenDiv, this.adDisplayContainer, this.adDisplayContainerInitialized = !1, this.adsLoader, this.adsManager, this.adsRenderingSettings = null, this.adTagUrl, this.adsResponse, this.currentAd, this.contentTrackingTimer, this.adTrackingTimer, this.adsActive = !1, this.adPlaying = !1, this.adMuted = !1, this.contentComplete = !1, this.allAdsCompleted = !1, this.updateTimeIntervalHandle, this.seekCheckIntervalHandle, this.seekCheckInterval = 1e3, this.resizeCheckIntervalHandle, this.resizeCheckInterval = 250, this.seekThreshold = 100, this.contentPlayheadTracker = { currentTime: 0, previousTime: 0, seeking: !1, duration: 0, startTime: -1 }, this.adPlayheadTracker = { currentTime: 0, duration: 0, isPod: !1, adPosition: 0, totalAds: 0 }, this.adsManagerDimensions = { width: 0, height: 0 }, this.contentEndedListeners = [], this.contentAndAdsEndedListeners = [], this.adBreakReadyListener = void 0, this.contentSource = "", this.localContentEndedListener = function () { this.adsLoader && !this.contentComplete && (this.adsLoader.contentComplete(), this.contentComplete = !0); for (var a in this.contentEndedListeners) this.contentEndedListeners[a](); if (this.allAdsCompleted) for (var a in this.contentAndAdsEndedListeners) this.contentAndAdsEndedListeners[a](); clearInterval(this.updateTimeIntervalHandle), clearInterval(this.seekCheckIntervalHandle), clearInterval(this.resizeCheckIntervalHandle), this.player.el() && this.player.one("play", P) }.bind(this), this.playerDisposedListener = function () { this.contentEndedListeners, this.contentAndAdsEndedListeners = [], this.contentComplete = !0, this.player.off("contentended", this.localContentEndedListener), this.player.off("timeupdate", Q), this.player.ads.adTimeoutTimeout && clearTimeout(this.player.ads.adTimeoutTimeout); var a = [this.updateTimeIntervalHandle, this.seekCheckIntervalHandle, this.adTrackingTimer, this.resizeCheckIntervalHandle]; for (var b in a) { var c = a[b]; c && clearInterval(c) } this.adsManager && (this.adsManager.destroy(), this.adsManager = null) }.bind(this), this.initVjsControls = function () { var a = this, b = function (b, c, d, e, f) { var g = b.prototype[d]; return c[d] = function () { return a.adsActive || f ? e && e.apply(this, arguments) : g && g.apply(this, arguments) } }, d = function (a, c, d, e, f, g, h) { var i = a.prototype[f], j = b(a, c, f, g); d ? (c.off(d, e, i), c.on(d, e, j)) : (c.off(e, i), c.on(e, j)) }, e = c.getComponent("PlayToggle"), f = this.vjsControls.playToggle; d(e, f, null, ["tap", "click"], "handleClick", function () { C(), a.adPlaying ? this.handlePlay() : this.handlePause() }), b(e, f, "update", function () { var b = a.adsActive ? !a.adPlaying : g.paused(); this.toggleClass("vjs-play-control-ad", a.adsActive), this.toggleClass("vjs-paused", b), this.toggleClass("vjs-playing", !b); var c = b ? "Play" : "Pause"; c != this.controlText() && this.controlText(c) }, !0), d(e, f, g, "play", "handlePlay", function () { this.update() }), d(e, f, g, "pause", "handlePause", function () { this.update() }); var h = c.getComponent("SeekBar"), i = c.getComponent("DvrSeekBar"), j = this.vjsControls.progressControl.seekBar, k = function () { var b = a.currentAd && a.currentAd.getDuration(); if (!b || b < 0) return 0; var c = a.adsManager.getRemainingTime(); return Math.max(b - c, 0) / b }; b(h, j, "getPercent", k), i && b(i, j, "getPercent", k), d(h, j, null, ["mousedown", "touchstart"], "handleMouseDown", null), d(h, j, null, "focus", "handleFocus", null), d(c.getComponent("DurationDisplay"), this.vjsControls.durationDisplay, g, ["timeupdate", "loadedmetadata"], "updateContent", function () { var b = a.currentAd && a.currentAd.getDuration(); b && b != this.duration_ && (this.duration_ = b, this.contentEl_.innerHTML = '' + this.localize("Duration Time") + " " + w(b)) }), d(c.getComponent("CurrentTimeDisplay"), this.vjsControls.currentTimeDisplay, g, ["timeupdate", "loadedmetadata"], "updateContent", function () { var b = a.currentAd && a.currentAd.getDuration(); if (b) { var c = b - a.adsManager.getRemainingTime(), d = w(c); d !== this.formattedTime_ && (this.formattedTime_ = d, this.contentEl_.innerHTML = '' + this.localize("Current Time") + " " + d) } }) }.bind(this), this.isFullscreenAdSupported = function () { return !c.browser.IS_IOS || this.adsManager.isCustomPlaybackUsed() }.bind(this), this.updateFullscreenButton = function () { this.player.toggleClass("vjs-disable-fullecreen", this.adsActive && !this.isFullscreenAdSupported()) }.bind(this), this.updateVjsControls = function () { if (this.settings.vjsControls) { this.player.toggleClass("vjs-ad-paused", this.adsActive && !this.adPlaying); var a = this.vjsControls; a.playToggle.update(), a.progressControl.seekBar.update(), a.durationDisplay.updateContent(), a.currentTimeDisplay.updateContent(); var b = this.currentAd && this.currentAd.getDuration(), c = !this.adsActive || b && b >= 0 ? "" : "none"; a.durationDisplay.el().style.display = c, a.currentTimeDisplay.el().style.display = c, a.timeDivider.el().style.display = c } }.bind(this); var U = function (c) { var d = c.getBoundingClientRect(), e = b.documentElement, f = b.body, g = e.clientLeft || f.clientLeft || 0, h = a.pageXOffset || f.scrollLeft, i = d.left + h - g, j = e.clientTop || f.clientTop || 0, k = a.pageYOffset || f.scrollTop; return { left: i, top: d.top + k - j, width: d.width, height: d.height } }; if (this.proxyClickEvents = function () { var a = c.browser.IS_ANDROID || c.browser.IS_IOS ? ["touchstart", "touchend"] : ["click", "dblclick", "mousedown", "mouseup"], d = this.player, e = d.el(), f = this; a.forEach(function (a) { e.addEventListener(a, function (a) { var c = f.currentAd, e = a.target; if (c && !c.isLinear() && "IFRAME" == e.nodeName && !a.isTrusted) { var g = c.getWidth() || c.getVastMediaWidth(), h = c.getHeight() || c.getVastMediaHeight(), i = U(e), j = a.touches && a.touches[0], k = j ? j.pageX : a.clientX, l = j ? j.pageY : a.clientY, m = i.left + i.width - (i.width - g) / 2, n = i.top + i.height - h - 4; if (!(k < m && k > m - 40 && l > n && l < n + 30 || k > i.left + i.width / 2 - 15 && k < i.left + i.width / 2 + 15 && l > i.top + i.height - 15)) { var o, p = {}; for (var q in a) p[q] = a[q]; p.bubbles = !1; try { o = new a.constructor(a.type, p) } catch (c) { o = b.createEvent("MouseEvent"), o.initMouseEvent(a.type, p.bubbles, p.cancelable, p.view, p.detail, p.screenX, p.screenY, p.clientX, p.clientY, p.ctrlKey, p.altKey, p.shiftKey, p.metaKey, p.button, null) } o.stopPropagation(), d.tech_.trigger(o) } } }) }) }.bind(this), this.settings = d({}, e, h || {}), this.settings.adLabel = this.player.localize(this.settings.adLabel), !this.settings.id) return void a.console.log("Error: must provide id of video.js div"); this.controlPrefix = this.settings.id + "_" || "", this.contentPlayer = this.player.$(".vjs-tech"), this.showCountdown = !0, 0 == this.settings.showCountdown && (this.showCountdown = !1), this.autoPlayAdBreaks = !0, 0 == this.settings.autoPlayAdBreaks && (this.autoPlayAdBreaks = !1); var V = { debug: this.settings.debug, timeout: this.settings.timeout, prerollTimeout: this.settings.prerollTimeout }, W = d({}, V, h.contribAdsSettings || {}); if (g.ads(W), g.one("play", P), g.on("contentended", this.localContentEndedListener), g.on("dispose", this.playerDisposedListener), g.on("timeupdate", Q), this.adsRenderingSettings = new google.ima.AdsRenderingSettings, this.adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = !0, this.settings.adsRenderingSettings) for (var X in this.settings.adsRenderingSettings) this.adsRenderingSettings[X] = this.settings.adsRenderingSettings[X]; this.settings.locale && google.ima.settings.setLocale(this.settings.locale), google.ima.settings.setDisableCustomPlaybackForIOS10Plus(!!this.settings.disableCustomPlaybackForIOS10Plus), n(), this.adsLoader = new google.ima.AdsLoader(this.adDisplayContainer), this.adsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.ENABLED), 0 == this.settings.vpaidAllowed && this.adsLoader.getSettings().setVpaidMode(google.ima.ImaSdkSettings.VpaidMode.DISABLED), this.settings.vpaidMode && this.adsLoader.getSettings().setVpaidMode(this.settings.vpaidMode), this.settings.locale && this.adsLoader.getSettings().setLocale(this.settings.locale), this.settings.numRedirects && this.adsLoader.getSettings().setNumRedirects(this.settings.numRedirects), this.adsLoader.getSettings().setPlayerType("videojs-ima"), this.adsLoader.getSettings().setPlayerVersion(this.VERSION), this.adsLoader.getSettings().setAutoPlayAdBreaks(this.autoPlayAdBreaks), this.adsLoader.addEventListener(google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, p, !1), this.adsLoader.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, q, !1), i || (i = this.startFromReadyCallback), g.on("readyforpreroll", i), g.ready(function () { g.on("fullscreenchange", J), g.on("volumechange", K) }), this.proxyClickEvents() }; c.plugin("ima", g) }) }, {}], 44: [function (a, b, c) { ! function (a, b, c, d) { "use strict"; var e = b.getComponent("Flash"), f = b.extend(e, { constructor: function (a, c) { var d = a.source, g = b(a.playerId); g.osmf = this, a.flashVars = { playerId: a.playerId, readyFunction: "onReady", eventProxyFunction: "onEvent", errorEventProxyFunction: "onError" }, e.call(this, a, c), this.firstplay = !1, this.loadstart = !1, g.on("loadeddata", f.onLoadedData), g.on("ended", f.onEnded), a.source = d } }); f.formats = { "application/adobe-f4m": "F4M", "application/adobe-f4v": "F4V", "application/dash+xml": "MPD" }, f.canPlaySource = function (a) { return a.type.replace(/;.*/, "").toLowerCase() in f.formats ? "maybe" : "" }, f.log_enabled = !1; var g = f.prototype, h = ["preload", "defaultPlaybackRate", "playbackRate", "autoplay", "loop", "mediaGroup", "controller", "controls", "volume", "muted", "defaultMuted"], i = ["error", "networkState", "readyState", "seeking", "videoWidth", "startOffsetTime", "paused", "played", "ended", "streamType", "initialTime", "videoHeight", "currentLevel", "levels"], j = function (a) { var b = a.charAt(0).toUpperCase() + a.slice(1); g["set" + b] = function (b) { if (this.el_.vjs_setProperty) return this.el_.vjs_setProperty(a, b) } }, k = function (a) { g[a] = function () { if (this.el_.vjs_getProperty) return this.el_.vjs_getProperty(a) } }; ! function () { for (var a = 0; a < h.length; a++) k(h[a]), j(h[a]); for (a = 0; a < i.length; a++) k(i[a]) }(), f.prototype.duration = function () { return this.el_ ? "live" == this.streamType() ? 1 / 0 : this.el_.vjs_getProperty("duration") : 0 }, f.prototype.play = function () { this.el_.vjs_play() }, f.prototype.load = function () { this.el_.vjs_load() }, f.prototype.paused = function () { return this.el_.vjs_paused() }, f.prototype.pause = function () { this.el_.vjs_pause() }, f.prototype.currentTime = function (a) { if (!a) return this.el_.vjs_getProperty("currentTime"); this.el_.vjs_setProperty("currentTime") }, f.prototype.streamStatus = function () { return this.el_.streamStatus() }, f.isSupported = function () { return e.version()[0] >= 10 }, f.onLoadedData = function () { var a = this; a.options_.autoplay ? a.play() : a.options_.preload && "none" !== a.options_.preload && (a.currentTime() && a.currentTime(0), a.play(), a.pause(), a.bigPlayButton.show(), a.bigPlayButton.one("click", function () { a.bigPlayButton.hide() })) }, f.onEnded = function () { this.options().loop && this.currentTime(0), this.pause() }, f.onReady = function (a) { f.log_enabled && b.log("OSMF", "Ready", a), e.onReady(a); var d = c.getElementById(a).tech; d.currentSrc() && d.currentSrc().length > 0 && d.el_.vjs_src(d.currentSrc()) }, f.onError = function (a, d) { var e = c.getElementById(a).tech; "loaderror" == d && (d = "srcnotfound"), f.log_enabled && b.log("OSMF", "Error", d), e.options_.reconnectOnError && !e.reconnecting_ && (e.reconnecting_ = !0, e.trigger("waiting"), setTimeout(function () { e.src(e.currentSrc()), e.reconnecting_ = !1, e.error(null) }, 5e3)), e.error({ code: 4, msg: "" }) }, f.onEvent = function (a, d, e) { var g = c.getElementById(a).tech; switch (d) { case "playing": !1 === g.firstplay && (f.log_enabled && b.log("OSMF", "Event", a, "loadstart"), g.trigger("loadstart"), g.loadstart = !0, f.log_enabled && b.log("OSMF", "Event", a, "firstplay"), g.trigger("firstplay"), g.firstplay = !0); break; case "buffering": d = "waiting"; break; case "ready": d = "loadeddata" } g.trigger(d, e), "timeupdate" !== d && f.log_enabled && b.log("OSMF", "Event", a, d) }, f.prototype.supportsFullScreen = function () { return !1 }, f.prototype.enterFullScreen = function () { return !1 }, b.options.osmf = {}, b.options.techOrder.push("osmf"), b.registerComponent("Osmf", f) }(window, window.videojs, document) }, {}], 45: [function (a, b, c) { ! function (b, c) { "use strict"; function d(a, b, d) { return c.registerComponent(a, c.extend(c.getComponent(b), d)), c.getComponent(a) } function e(a) { var b = a && a.match(/(\d+)p/), c = b && parseInt(b[1], 10); return c >= 2160 ? "4k" : c >= 720 ? "hd" : null } function f(a) { return a.tech_ && (a.tech_.flashlsProvider || a.tech_.hlsProvider) } function g(a) { var b = [], c = a.textTracks(); if (!c || !c.length) return b; for (var d = 0; d < c.length; d++) "subtitles" != c[d].kind && "captions" != c[d].kind || b.push(c[d]); return b } function h(a) { return a ? a.label || a.language || a.kind : "Off" } function i() { var a = b.screen; return !!a && a.availHeight > a.availWidth != b.innerHeight > b.innerWidth } function j(a) { return "number" != typeof a ? a : a.toFixed(3) } function k(a) { var c = b.hola_cdn; return c && c.get_wrapper() && (!a || !!c._get_bws()) } function l(a, b) { try { c.utils.localStorage.setItem(a, b) } catch (a) {} } function m(a) { try { return c.utils.localStorage.getItem(a) } catch (a) { return null } } function n() { return b.top == b ? location.href : document.referrer } function o(a, b) { a.one("loadeddata", function () { if ("Html5" == a.techName_) return void a.currentTime(b); a.on("timeupdate", function c() { a.currentTime() && (a.off("timeupdate", c), a.currentTime(b)) }) }) } function p() { return Object.keys(c.getPlayers()).length > 1 } function q(a, b) { var c = /^https?\:\/\//i; return a.replace(c, "//") == b.replace(c, "//") } a("@hola.org/videojs-utils"); var r = a("clipboard"), s = a("lodash/find"), t = a("videojs-vtt.js"), u = '', v = c.getComponent("Menu"); d("PopupMenu", "Menu", { className: "vjs-rightclick-popup", popped: !1, constructor: function (a, d) { function e(a) { for (var c = a; c = c.parentElement;) { if (!c) return; var d = b.getComputedStyle(c); if ("visible" != d.overflowX || "visible" != d.overflowY) return c } } function f(a) { if (a.preventDefault(), h.popped) return void h.hide(); h.show(), h.check_items(); var c = h.el(), d = a.clientX, f = a.clientY, g = b.innerWidth, i = b.innerHeight, j = e(c); if (j) { var k = j.getBoundingClientRect(); g = Math.min(g, k.right), i = Math.min(i, k.bottom) } var l = d + c.offsetWidth - g + 5; l = Math.max(0, l); var m = f + c.offsetHeight - i + 5; m = Math.max(0, m); var n = h.player().el().getBoundingClientRect(); c.style.left = Math.max(0, d - n.left - l) + "px", c.style.top = Math.max(0, f - n.top - m) + "px" } v.call(this, a, d); var g = a; this.addClass(this.className), this.hide(); var h = this, i = this.options_; h.menuEnabled = !0, this.addChild(new L(a, { label: "Powered by Spark Player" })), !1 !== i.copy_url && this.addChild(new S(a, { label: "Copy video URL", url: i.copy_url })), !1 === i.copy_url || !1 === i.copy_url_with_time || p() && !i.copy_url || this.addChild(new S(a, { url: i.copy_url, label: "Copy video URL at current time", time: !0 })), i.embed_code && this.addChild(new Q(a, { label: "Copy embed code", text: i.embed_code })), i.debugging && (this.addChild(new O(a, { label: "Download log" })), this.addChild(new R(a, { label: "Copy debug info" }))), i.report && (i.report = c.mergeOptions({ label: "Report playback issue" }, i.report), this.addChild(new N(a, i.report))), i.info && (i.info = c.mergeOptions({ label: "Stats for nerds" }, i.info), this.addChild(new T(a, i.info))), i.graph && (i.graph = c.mergeOptions({ label: "CDN overlay" }, i.graph), this.addChild(new P(a, i.graph))), i.about && this.addChild(new M(a, { href: "https://holaspark.com/player", label: "About Spark Player" })), g.on("contextmenu", f), g.on(["tap", "click"], function (a) { if (h.popped) return h.hide(), a.stopPropagation(), a.preventDefault(), !1 }), c.on(document, ["tap", "click"], function () { h.popped && h.hide() }), g.on("hola.wrapper_attached", this.check_items.bind(this)), g.on("hola.wrapper_detached", this.check_items.bind(this)), this.children().forEach(function (a) { a.on(["tap", "click"], function () { h.hide() }) }), a.enablePopupMenu = function () { h.menuEnabled || (g.off("contextmenu"), g.on("contextmenu", f), h.menuEnabled = !0) }, a.disablePopupMenu = function () { h.menuEnabled && (g.off("contextmenu"), g.on("contextmenu", function (a) { a.preventDefault() }), h.menuEnabled = !1) } }, createEl: function () { this.contentEl_ = c.createEl("ul", { className: "vjs-menu-content" }), this.contentEl_.setAttribute("role", "menu"); var a = H.prototype.createEl("div", { append: this.contentEl_, className: "vjs-menu" }); a.setAttribute("role", "presentation"), a.appendChild(this.contentEl_); var b = this; return c.on(a, "click", function (a) { b.hide(), a.preventDefault(), a.stopImmediatePropagation() }), a }, show: function () { this.removeClass("vjs-hidden"), this.popped = !0 }, hide: function () { this.addClass("vjs-hidden"), this.popped = !1 }, check_items: function () { this.children().forEach(function (a) { a.is_visible && a.toggleClass("vjs-hidden", !a.is_visible()) }) } }); var w = d("SubMenu", "Menu", { addToMain: !0, item_count: 17, constructor: function (a, b, c) { var d = !0; b && void 0 !== b.picker && (d = b.picker), this.picker_mode_wanted = d && a && a.hasClass("vjs-ios-skin"), this.picker_mode = this.picker_mode_wanted, this.picker_mode || (this.getHeight = void 0), this.items = [], this.picker_items = [], this.parent = c, this.line_height = b && b.line_height || 31, this.radius = 60, this.radius_ratio = this.radius / this.item_count, v.call(this, a, b), this.createMenuItem(), this.createTitleItem(), this.className && this.addClass(this.className), this.update(), this.handleTouch() }, createEl: function () { var a = "vjs-menu-content"; this.picker_mode && (a += " vjs-picker"); var b = H.prototype.createEl.call(this, "div", { className: a }); if (b.setAttribute("role", "menu"), this.ul = H.prototype.createEl("ul", { className: "vjs-menu-submenu" }), this.picker_mode) { this.wrapper = H.prototype.createEl("div", { className: "vjs-picker-wrapper" }); var c = H.prototype.createEl("div", { className: "vjs-picker-container" }); return c.appendChild(this.ul), this.wrapper.appendChild(c), b.appendChild(this.wrapper), b } return b.appendChild(this.ul), b }, addItem: function (a) { v.prototype.addItem.call(this, a), this.ul.appendChild(a.el_) }, createTitleItem: function () { if (this.title) { var a = this, b = new K(this.player_, { label: this.title }); b.addClass("vjs-submenu-title"), b.on(["tap", "click"], function () { a.parent.back() }), this.addChild(b), this.titleItem = b } }, createMenuItem: function () { if (this.title && this.addToMain) { var a = this.player(), b = this, d = this.menuItem = new K(a, { label: this.title }); d.addClass("vjs-menu-item-next"); var e = c.createEl("span", { className: "vjs-menu-item-content" }); d.minorLabel = c.createEl("span", { className: "vjs-minor-label" }), d.contentLabel = c.createEl("span"), e.appendChild(d.contentLabel), e.appendChild(d.minorLabel), d.el().insertBefore(e, d.el().firstChild), d.on(["tap", "click"], function () { b.parent.next(b) }) } }, getHeight: function () { var a = this.titleItem ? this.titleItem.el_.offsetHeight : 0, b = E(this.player_) - a; return Math.min(b, this.picker ? 90 : this.items.length || this.children_.length * this.line_height) }, insert_item: function (a) { var b = a.angle; a = a.item || a; var d = a; this.picker_mode && (d = new K(this.player_, c.mergeOptions({}, a.options_)), d.el_.style.transform = "rotateX(" + -b + "deg) translateZ(" + this.radius + "px)", d.selected(a.hasClass("vjs-selected")), this.picker_items.push(d)), this.addChild(d), this.ul.appendChild(d.el_); var e = this; d.on(["tap", "click"], function (b) { b.stopImmediatePropagation(), e.handleItemClick && e.handleItemClick(a), e.picker_mode && e.update() }) }, update: function () { var a = this; this.items.forEach(function (b) { a.removeChild(b), b.el_.parentNode && b.el_.parentNode.removeChild(b.el_) }), this.items = [], this.picker_items.forEach(function (a) { a.dispose && a.dispose() }), this.picker_items = [], this.createItems && this.createItems(); var b = this.items.length; if (this.picker_mode = !(!b || b < 2) && this.picker_mode_wanted, !this.picker_mode) return this.items.forEach(this.insert_item.bind(this)); var c = this.getHeight(); this.wrapper.style.height = c + "px", this.item_count = b * (b < 4 ? 3 : 2); var d = this.radius = this.radius_ratio * this.item_count, e = this.items.filter(function (a) { return a.hasClass("vjs-selected") })[0]; e = e ? this.items.indexOf(e) : -1, -1 == e && (e = 0), this.theta = 360 / this.item_count, this.drum_rotate = e * this.theta, this.ul.style.transform = "translateZ(-" + d + "px) rotateX(" + this.drum_rotate + "deg)"; for (var f = [], g = 0, h = 0; g < this.item_count; g++) { var i = Math.floor(g / b) * b, j = g - i, k = this.items[j], l = this.theta * h; f.push({ item: k, angle: l }), h++ } f.forEach(this.insert_item.bind(this)) }, handleTouch: function () { var a = this, b = null, c = this.line_height * D(this.player_); this.on("touchstart", function (c) { b = null, a.picker_mode && a.ul && c.touches.length && c.srcElement.parentNode !== a.el && (b = c.touches[0].pageY, a.addClass("vjs-rotate-transition")) }), this.on("touchmove", function (d) { if (a.picker_mode && a.ul && null !== b) { d.preventDefault(), d.stopPropagation(); var e = d.touches[0].pageY - b, f = Math.trunc(e / c); f && (b = d.touches[0].pageY, a.drum_rotate -= (f < 0 ? -1 : 1) * a.theta, a.ul.style.transform = "translateZ(-" + a.radius + "px) rotateX(" + a.drum_rotate + "deg)") } }); var d = function () { if (null !== b) { a.removeClass("vjs-rotate-transition"); var c = a.get_rotate_index(); a.picker_items[c].trigger("tap"), b = null } }; this.on("touchend", d), this.on("touchcancel", d), this.on("touchleave", d) }, get_rotate_index: function () { var a = Math.round(this.drum_rotate / this.theta); return a -= Math.trunc(a / this.item_count) * this.item_count, a < 0 ? this.item_count + a : a } }), x = d("QualitySubMenu", "SubMenu", { className: "vjs-quality-submenu", title: "Quality", picker: !0, constructor: function (a, b, c) { var d = this, e = a.tech_; w.call(this, a, b, c); var f = this.options_.quality, g = f && f.sources ? f.sources : a.options_.sources; if (g && g.length > 1) { var h = g.filter(function (a) { return a.default })[0]; h && h.src && this.player_.src(h.src) } this.one(a, "play", this.updateSelected), this.on(a, "resolutionchange", this.updateSelected), this.updateSelected(), e && (e.on("loadedqualitydata", function (a, b) { d.updateQuality(b) }), e.quality_data && this.updateQuality(e.quality_data)) }, createItems: function () { var a = this.player(), b = this.options_.quality, d = b && b.sources ? b.sources : a.options_.sources; if (!1 === b || !d || d.length < 2) return void this.menuItem.hide(); this.menuItem.show(); for (var e = 0; e < d.length; e++) { var f = d[e].label || (1 == d.length ? "Auto" : this.localize("Source") + " " + (e + 1)), g = new y(a, c.mergeOptions(d[e], { label: f, callback: b.callback })); this.items.push(g) } this.updateSelected() }, handleItemClick: function (a) { var c = this.player(); if (this.picker_mode || this.parent.settings_button.unpressButton(), !a.hasClass("vjs-selected")) { var d, e = a.options_, f = e.level_id; try { d = new b.CustomEvent("beforeresolutionchange") } catch (a) { d = document.createEvent("CustomEvent"), d.initCustomEvent("beforeresolutionchange", !0, !0, {}) } if (c.trigger(d, e), !d.defaultPrevented) { if (void 0 !== f) return e.callback && e.callback(f), void c.trigger("resolutionchange"); var g = c.currentTime(), h = c.paused(); c.pause(), c.src(e.src), c.ready(function () { o(c, g), c.trigger("resolutionchange"), h || (c.load(), c.play()) }) } } }, updateSelected: function () { var a = this, c = this.player_, d = c.cache_.src, f = b.hola_cdn, g = f && f.wrapper && s(f.wrapper, function (a) { return a.player && a.player.vjs == c }); g && g.player && (d = g.player.get_url()); var h, i = this.items; i.forEach(function (b) { var c = b.options_.src ? q(b.options_.src, d) : b.options_.level_id == a.selectedLevel; b.selected(c), c && (h = b.options_.label) }); var j; if (-1 == this.selectedLevel && void 0 !== this.currentLevel) { var k = (this.options_.quality || {}).sources || [], l = s(k, function (b) { return b.level_id == a.currentLevel }); j = l ? l.label : "" } var m = e(j || h); this.menuItem.contentLabel.innerHTML = this.localize(h) || "", this.menuItem.minorLabel.innerHTML = this.localize(j) || "", this.menuItem.toggleClass("vjs-quality-hd", "hd" == m), this.menuItem.toggleClass("vjs-quality-4k", "4k" == m), this.parent.settings_button.toggleClass("vjs-quality-hd", "hd" == m), this.parent.settings_button.toggleClass("vjs-quality-4k", "4k" == m) }, levelsChanged: function (a) { var b = (this.options_.quality || {}).sources || []; if (b.length != a.length) return !0; for (var c = 0; c < a.length; c++) if (b[c].level_id != a[c].id) return !0; return !1 }, updateQuality: function (a) { var b = [], c = a.callback, d = a.quality.list.slice().sort(function (a, b) { return -1 == b.id ? -1 : -1 == a.id ? 1 : b.bitrate - a.bitrate }); this.selectedLevel = a.quality.selected, this.currentLevel = a.quality.current; var e = this.options_.quality = this.options_.quality || {}; (this.levelsChanged(d) || c != e.callback) && (d.forEach(function (a) { b.push({ level_id: a.id, label: a.label }) }), e.sources = b, e.callback = c, this.update()), this.updateSelected() } }), y = d("QualityMenuItem", "MenuItem", { constructor: function (a, b) { b = c.mergeOptions({ selectable: !0 }, b), K.call(this, a, b); var d; (d = e(b.label)) && this.addClass("vjs-quality-" + d) }, handleClick: function () {} }), z = d("SpeedSubMenu", "SubMenu", { className: "vjs-speed-submenu", title: "Speed", values: [.25, .5, .75, 1, 1.25, 1.5, 2], picker: !0, constructor: function (a, b, c) { this.supported = a.tech_ && a.tech_.featuresPlaybackRate, w.call(this, a, b, c), this.on(a, "ratechange", this.handleRateChange); var d = parseFloat(m("vjs5_speed")); this.supported && -1 != this.values.indexOf(d) && a.playbackRate(d), this.handleRateChange() }, createItems: function () { var a = this, b = this.player(); (this.supported ? this.values : [1]).forEach(function (c) { var d = new K(b, { label: 1 == c ? "Normal" : c, selectable: !0, rate: c }); a.items.push(d) }), this.handleRateChange() }, handleItemClick: function (a) { var b = this.player(), c = a.options_.rate; this.picker_mode || this.parent.back(), c != b.playbackRate() && b.playbackRate(c), l("vjs5_speed", c) }, handleRateChange: function () { var a = this.player().playbackRate(); this.menuItem.contentLabel.innerHTML = 1 == a ? this.localize("Normal") : a, this.items.forEach(function (b) { b.selected(b.options_.rate == a) }) } }), A = d("CaptionsSubMenu", "SubMenu", { picker: !0, className: "vjs-captions-submenu", title: "Subtitles/CC", constructor: function (a, b, d) { w.call(this, a, b, d); var e = a.textTracks(); if (e && e.on) { this.optionsMenu = new B(a, b, d), this.parent.addSubMenu(this.optionsMenu); var f = c.createEl("div", { className: "vjs-minor-label", innerHTML: this.localize("Options") }); this.titleItem.el().appendChild(f), this.on(f, ["touchstart", "touchend", "click"], function (a) { a.preventDefault(), a.stopPropagation(), "click" != a.type && "touchend" != a.type || d.next(this.optionsMenu) }), this.on(e, "addtrack", this.update), this.on(e, "removetrack", this.update), this.on(e, "change", this.handleTrackChange) } }, createItems: function () { var a = this.player(), b = g(a); if (!b.length) return void this.menuItem.hide(); this.menuItem.show(); for (var c = -1; c < b.length; c++) { var d = b[c], e = new K(a, { label: h(d), selectable: !0, track: d }); this.items.push(e) } this.handleTrackChange() }, handleItemClick: function (a) { for (var b = this.player(), c = b.textTracks(), d = 0; d < c.length; d++) c[d].mode = c[d] == a.options_.track ? "showing" : "disabled"; this.picker_mode || this.parent.back(), this.handleTrackChange() }, handleTrackChange: function () { var a = s(this.items, function (a) { return a.options_.track && "showing" == a.options_.track.mode }) || s(this.items, function (a) { return !a.options_track }); this.items.forEach(function (b) { b.selected(b == a) }), this.menuItem.contentLabel.innerHTML = a ? a.options_.label : "" } }), B = d("CaptionsOptionsMenu", "SubMenu", { className: "vjs-captions-options-submenu", title: "Options", addToMain: !1, dict: { font: [{ value: "monospaceSerif", text: "Monospace Serif" }, { value: "proportionalSerif", text: "Proportional Serif" }, { value: "monospaceSansSerif", text: "Monospace Sans-Serif" }, { value: "proportionalSansSerif", text: "Proportional Sans-Serif" }, { value: "casual", text: "Casual" }, { value: "script", text: "Script" }, { value: "smallcaps", text: "Small Caps" }], size: [{ value: "0.50", text: "50%" }, { value: "0.75", text: "75%" }, { value: "1.00", text: "100%" }, { value: "1.50", text: "150%" }, { value: "2.00", text: "200%" }, { value: "3.00", text: "300%" }, { value: "4.00", text: "400%" }], opacity: [{ value: "0.00", text: "0%" }, { value: "0.25", text: "25%" }, { value: "0.50", text: "50%" }, { value: "0.75", text: "75%" }, { value: "1.00", text: "100%" }], color: [{ value: "#FFF", text: "White" }, { value: "#000", text: "Black" }, { value: "#F00", text: "Red" }, { value: "#0F0", text: "Green" }, { value: "#00F", text: "Blue" }, { value: "#FF0", text: "Yellow" }, { value: "#F0F", text: "Magenta" }, { value: "#0FF", text: "Cyan" }], edge: [{ value: "none", text: "None" }, { value: "raised", text: "Raised" }, { value: "depressed", text: "Depressed" }, { value: "uniform", text: "Uniform" }, { value: "dropshadow", text: "Drop shadow" }] }, constructor: function (a, b, c) { var d = this.dict; this.params = [{ key: "fontFamily", text: "Font family", dict: d.font, def: 3 }, { key: "color", text: "Font color", dict: d.color, def: 0 }, { key: "fontPercent", text: "Font size", dict: d.size, def: 2 }, { key: "textOpacity", text: "Font opacity", dict: d.opacity, def: 4 }, { key: "backgroundColor", text: "Background color", dict: d.color, def: 1 }, { key: "backgroundOpacity", text: "Background opacity", dict: d.opacity, def: 3 }, { key: "windowColor", text: "Window color", dict: d.color, def: 1 }, { key: "windowOpacity", text: "Window opacity", dict: d.opacity, def: 0 }, { key: "edgeStyle", text: "Text edge style", dict: d.edge, def: 0 }], this.reset(), this.load(), w.call(this, a, b, c), this.selectMenu = new C(a, b, c), this.on(this.selectMenu, "selected", this.handleValueChange), this.parent.addSubMenu(this.selectMenu); var e = a.getChild("textTrackSettings"); a.removeChild(e), e.dispose(), a.textTrackSettings = this }, save: function () { l("vjs5_captions_options", JSON.stringify(this.getValues())) }, load: function () { var a; try { a = JSON.parse(m("vjs5_captions_options")) } catch (a) {} a && this.params.forEach(function (b) { var c = s(b.dict, function (c) { return c.value == a[b.key] }); c && (b.value = c) }) }, reset: function () { this.params.forEach(function (a) { a.value = a.dict[a.def] }) }, getValues: function () { var a = {}; return this.params.forEach(function (b) { a[b.key] = b.value.value }), a }, createItems: function () { var a = this.player, b = this.items; this.params.forEach(function (d) { var e = new K(a, { label: d.text }); e.param = d, e.addClass("vjs-menu-item-next"); var f = c.createEl("span", { className: "vjs-menu-item-content", innerHTML: e.localize(d.value.text) }); e.contentLabel = f, e.el().insertBefore(f, e.el().firstChild), b.push(e) }), b.push(new K(a, { label: "Reset", reset: !0 })) }, handleItemClick: function (a) { if (a.options_.reset) return this.reset(), this.update(), void this.changed(); this.currentItem = a; var b = a.param; this.selectMenu.show({ title: b.text, dict: b.dict, selected: b.value }) }, handleValueChange: function (a, b) { this.currentItem.param.value = b, this.currentItem.contentLabel.innerHTML = b.text, this.changed() }, changed: function () { this.save(); var a = this.player().textTrackDisplay; if (a.updateDisplay(), this.timeout && this.clearTimeout(this.timeout), !a.el().textContent) { var b = this.localize("Subtitles will look like this"), c = { activeCues: [new t.VTTCue(0, 0, b)] }; a.updateForTrack(c), this.timeout = this.setTimeout(function () { a.updateDisplay() }, 3e3) } } }), C = d("SelectValueMenu", "SubMenu", { className: "vjs-select-value-submenu", addToMain: !1, dict: [], show: function (a) { this.title = a.title, this.titleItem && this.removeChild(this.titleItem), this.createTitleItem(), this.dict = a.dict, this.update(), this.value_selected = a.selected, this.updateSelected(), this.parent.next(this) }, createItems: function () { var a = this.items, b = this.player(); this.dict.forEach(function (c) { var d = new K(b, { label: c.text, selectable: !0 }); d.value = c, a.push(d) }), this.updateSelected() }, updateSelected: function () { this.items.forEach(function (a) { a.selected(a.value == this.value_selected) }) }, handleItemClick: function (a) { this.trigger("selected", a.value), this.value_selected = a.value, this.updateSelected() } }), D = function (a) { function c(a) { return Math.max(1, a) } var d = 1; if (a && !a.hasClass("vjs-ios-skin")) return d; var e = b.visualViewport; if (e && e.scale) return c(1 / e.scale); var f = b.screen; if (!f) return c(d); var g = i() ? f.availHeight : f.availWidth; return g && (d = b.innerWidth / g), c(d) }, E = function (a) { var b = D(a), c = a && a.hasClass("vjs-ios-skin"), d = c ? 46 : 100; return a.el().offsetHeight / b - d }, F = d("SettingsMenu", "Menu", { className: "vjs-settings-menu", history: [], constructor: function (a, c, d) { v.call(this, a, c), this.settings_button = d, this.addClass(this.className), this.update(), this.on(["tap", "click", "touchstart", "touchend"], function (a) { a.stopPropagation() }); var e = this._resize = this.resize.bind(this), f = this._touch_zoom = this.touch_zoom.bind(this); this.scale = 1, a.on("resize", e), a.on("fullscreenchange", function () { setTimeout(e) }), b.addEventListener("resize", e), b.addEventListener("orientationchange", e), document.addEventListener("touchend", f) }, dispose: function () { b.removeEventListener("resize", this._resize), b.removeEventListener("orientationchange", this._resize), document.removeEventListener("touchend", this._touch_zoom), this._zoom_bounce && (this._zoom_bounce = clearTimeout(this._zoom_bounce)), v.prototype.dispose.call(this) }, createEl: function () { var a = H.prototype.createEl.call(this, "div", { className: "vjs-menu" }); return a.setAttribute("role", "presentation"), a.style.zoom = D(this.player_), a }, update: function () { this.children().forEach(this.removeChild.bind(this)), this.createItems() }, addSubMenu: function (a) { this.addChild(a), a.menuItem && this.mainMenu.addItem(a.menuItem) }, createItems: function () { this.mainMenu = new w(this.player_, c.mergeOptions({ picker: !1 }, this.options_), this), this.mainMenu.addClass("vjs-main-submenu"), this.addChild(this.mainMenu); for (var a = [z, A, x], b = 0; b < a.length; b++) this.addSubMenu(new a[b](this.player_, this.options_, this)); this.selectMain(!0) }, selectMain: function (a) { this.history = [], this.setActive(this.mainMenu, a) }, show: function (a) { if (a) return this.el_.style.height = "", this.el_.style.width = "", this.selectMain(!0), void this.addClass("vjs-lock-showing"); var b = this; this.el_.style.opacity = "0", this.setTimeout(function () { this.el_.style.opacity = "", b.removeClass("vjs-lock-showing") }, 100) }, getSize: function (a) { return a = a || this.el_, { width: a.offsetWidth, height: a.offsetHeight } }, setSize: function (a) { this.el_.style.height = a ? a.height + "px" : "", this.el_.style.width = a ? a.width + "px" : "" }, resize: function () { var a = D(this.player_); this.el_.style.zoom = a, this.active && this.setActive(this.active) }, touch_zoom: function (a) { var b = D(this.player_); if (this._zoom_bounce && clearTimeout(this._zoom_bounce), this.scale == b) return void(a && (this._zoom_bounce = setTimeout(this._touch_zoom, 500))); var c = this.scale < b; this.scale = b, this.resize(), c && (this._zoom_bounce = setTimeout(this._resize, 500)) }, setActive: function (a, c) { if (!c && b.requestAnimationFrame) { var d = a.el(), e = D(this.player_); this.el_.style.zoom = e; var f = a.titleItem ? this.getSize(a.titleItem.el_).height : 0, g = E(this.player_) - f; a.ul.style.maxHeight = g + "px"; var h = this, i = this.getSize(d); a.getHeight && (i.height = a.getHeight() + f), this.setSize(this.getSize()), b.requestAnimationFrame(function () { h.addClass("vjs-size-transition"), b.requestAnimationFrame(function () { var a = function () { h.removeClass("vjs-size-transition"), h.setSize(), h.clearTimeout(b) }; h.setSize(i), h.one("transitionend", a); var b = h.setTimeout(a, 300) }) }) } this.active = a, a.update && a.update(), this.children().forEach(function (b) { b.toggleClass("vjs-active-submenu", b == a) }) }, next: function (a) { this.history.push(this.active), this.setActive(a) }, back: function () { this.setActive(this.history.pop() || this.mainMenu) } }), G = c.getComponent("MenuButton"); d("SettingsButton", "MenuButton", { controlText_: "Settings", update: function () { var a = this.player_, b = new F(a, this.options_, this); this.menu && a.removeChild(this.menu), this.menu = b, a.addChild(b), this.buttonPressed_ = !1, this.el_.setAttribute("aria-expanded", "false"), this.items && !this.items.length ? this.hide() : this.items && this.items.length > 1 && this.show() }, createEl: function () { var a = G.prototype.createEl.call(this); return this.icon_ = c.createEl("div", { className: "vjs-button-icon", innerHTML: u }), a.insertBefore(this.icon_, a.firstChild), a }, buildCSSClass: function () { return G.prototype.buildCSSClass.call(this) + " vjs-settings-button" }, handleClick: function () { this.buttonPressed_ ? this.unpressButton() : this.pressButton() }, updateState: function () { this.player_.toggleClass("vjs-settings-expanded", this.buttonPressed_), this.el_.setAttribute("aria-expanded", this.buttonPressed_), this.menu.show(this.buttonPressed_) }, unpressButton: function () { this.enabled_ && (this.buttonPressed_ = !1, this.updateState(), this.el_.focus(), this.clearInterval(this.activityInterval), this.clickListener && (c.off(document, ["tap", "click"], this.clickListener), this.player_.off(["tap", "click"], this.clickListener), this.clickListener = null)) }, pressButton: function () { if (this.enabled_) { this.buttonPressed_ = !0, this.updateState(), this.menu.focus(), this.activityInterval = this.setInterval(this.player_.reportUserActivity.bind(this.player_), 250); var a = this; this.setTimeout(function () { a.clickListener = a.unpressButton.bind(a), c.on(document, ["tap", "click"], this.clickListener), a.player_.on(["tap", "click"], this.clickListener) }) } }, tooltipHandler: function () { return this.icon_ } }); var H = c.getComponent("Component"), I = d("Overlay", "Component", { constructor: function (a, b) { H.call(this, a, b), this.hide() }, createEl: function (a, b) { var d = this.options_.class; d = d ? " " + d : ""; var e = H.prototype, f = e.createEl.call(this, "div", c.mergeOptions({ className: "vjs-info-overlay" + d }, b)); return this.createContent(f), f }, createContent: function () {} }); d("InfoOverlay", "Overlay", { constructor: function (a, b) { this.info_data = { duration: { units: "sec", title: "Duration", get: function (a) { return j(a.duration()) } }, position: { units: "sec", title: "Position", get: function (a) { return j(a.currentTime()) } }, buffered: { units: "sec", title: "Current buffer", get: function (a) { var b = a.buffered(), c = a.currentTime(); if (b && b.length) for (var d = 0; d < b.length; d++) if (b.start(d) <= c && b.end(d) >= c) return j(b.end(d) - c); return "--" } }, downloaded: { units: "sec", title: "Downloaded", get: function (a) { var b = a.buffered(), c = 0; if (b && b.length) for (var d = 0; d < b.length; d++) c += b.end(d) - b.start(d); return j(c) } } }, I.call(this, a, b) }, createContent: function (a) { function b(a, b) { return b = b ? c.mergeOptions(b) : b, H.prototype.createEl.call(d, a, b) } var d = this, e = this.player_, f = b("div", { className: "vjs-info-overlay-title", innerHTML: this.localize("Technical info") }), g = b("div", { className: "vjs-info-overlay-x" }), h = this.toggle.bind(this, null, !0); g.addEventListener("click", h), g.addEventListener("touchend", h); var i, j, k = b("div", { className: "vjs-info-overlay-content" }), l = b("ul", { className: "vjs-info-overlay-list" }); for (var m in this.info_data) i = b("li", { className: "vjs-info-overlay-list-item" }), j = this.localize(this.info_data[m].title), this.info_data[m].units && (j += " [" + this.localize(this.info_data[m].units) + "]"), j += ": ", i.appendChild(b("strong", { innerHTML: j })), this.info_data[m].el = b("span"), i.appendChild(this.info_data[m].el), l.appendChild(i); k.appendChild(l), a.appendChild(f), a.appendChild(g), a.appendChild(k), this.update(), e.on("timeupdate", function () { d.update() }), this.updateInterval = setInterval(function () { d.update() }, 1e3) }, update: function () { var a = this.player_, b = this.info_data; for (var c in b) b[c].el.innerHTML = b[c].get(a) }, toggle: function (a, b) { if (a && (this.last_caller = a), this.visible || b) return this.visible = !1, this.last_caller && this.last_caller.selected(!1), void this.addClass("vjs-hidden"); this.update(), this.visible = !0, this.removeClass("vjs-hidden") }, dispose: function () { clearInterval(this.updateInterval), I.prototype.dispose.call(this) } }), d("NotifyOverlay", "Overlay", { constructor: function (a, b) { I.call(this, a, b), this.addClass("vjs-notify-overlay") }, createContent: function (a) { function b(a, b) { return b = b ? c.mergeOptions(b) : b, H.prototype.createEl.call(d, a, b) } var d = this, e = b("div", { className: "vjs-notify-overlay-title", innerHTML: this.localize("Issue report sent") }), f = b("div", { className: "vjs-notify-overlay-content", innerHTML: this.localize("Thank you!") }); a.appendChild(e), a.appendChild(f) }, flash: function () { if (!this.visible) { this.visible = !0, this.removeClass("vjs-hidden"); var a = this; setTimeout(function () { a.addClass("vjs-notify-flash") }, 50), setTimeout(function () { a.visible = !1, a.removeClass("vjs-notify-flash"), a.addClass("vjs-hidden") }, 3500) } } }); var J = c.getComponent("ClickableComponent"), K = c.getComponent("MenuItem"); K.prototype.createEl = function (a, b, c) { return b = Object.assign({ className: "vjs-menu-item", innerHTML: '' + this.localize(this.options_.label) + "", tabIndex: -1 }, b), J.prototype.createEl("li", b, c) }; var L = d("PoweredBy", "MenuItem", { constructor: function (a, c) { var d = b.hola_player && b.hola_player.VERSION; d && (c.label += " " + d), K.call(this, a, c), this.addClass("vjs-powered-by") } }), M = d("MenuItemLink", "MenuItem", { createEl: function (a, b) { var d = K.prototype, e = this.localize(this.options_.label), f = d.createEl.call(this, "li", c.mergeOptions({ className: "vjs-menu-item vjs-menu-item-link", innerHTML: "" }, b)); return this.link = H.prototype.createEl("a", { className: "vjs-menu-link", innerHTML: this.localize(e) }, { target: "_blank", href: this.options_.href || "#" }), f.appendChild(this.link), this.link.addEventListener("touchstart", function (a) { a.stopPropagation() }), f }, handleClick: function (a) { a.stopPropagation() } }), N = d("ReportButton", "MenuItem", { is_visible: k, handleClick: function () { this.player_.trigger({ type: "problem_report" }); var a; (a = this.player_.getChild("NotifyOverlay")) && a.flash(), this.selected(!1) } }), O = d("LogButton", "MenuItem", { is_visible: k, handleClick: function () { this.player_.trigger({ type: "save_logs" }), this.selected(!1) } }), P = d("GraphButton", "MenuItem", { is_visible: k.bind(null, !0), handleClick: function () { this.player_.trigger({ type: "cdn_graph_overlay" }), this.selected(!1) } }), Q = d("CopyButton", "MenuItem", { constructor: function (a, b) { K.call(this, a, b), this.clipboard = new r(this.el_, { text: this.getText.bind(this) }), this.on("tap", function (a) { this.clipboard.onClick({ currentTarget: a.target }) }) }, getText: function () { return this.options_.text }, dispose: function () { this.clipboard.destroy(), K.prototype.dispose.call(this) } }), R = d("CopyLogButton", "CopyButton", { getText: function () { var a = this.player(); return a.hola_logs ? a.hola_logs() : "Can't find hola_logs method!" }, is_visible: k }), S = d("CopyUrlButton", "CopyButton", { getText: function () { var a = this.options_.url || n(); if (this.options_.time) { var b = Math.floor(this.player().currentTime()), c = /(#(?:.*&)?t=)(\d*)/; a.match(c) ? a = a.replace(c, "$1" + b) : a += (-1 != a.indexOf("#") ? "&t=" : "#t=") + b } return a } }), T = d("InfoButton", "MenuItem", { handleClick: function () { var a; (a = this.player_.getChild("InfoOverlay")) && a.toggle(this) } }), U = c.getComponent("Button"); d("CaptionsToggle", "Button", { controlText_: "Subtitles/closed captions", constructor: function (a, b) { U.call(this, a, b), this.addClass("vjs-captions-toggle"), this.hide(); var c = a.textTracks(); c && c.on && (this.on(c, "addtrack", this.update), this.on(c, "removetrack", this.update), this.on(c, "change", this.update), this.update()) }, createEl: function () { var a = U.prototype.createEl.call(this); return this.icon_ = c.createEl("div", { className: "vjs-button-icon", innerHTML: '' }), a.insertBefore(this.icon_, a.firstChild), a }, handleClick: function () { if (this.track) { var a = "showing" != this.track.mode; this.track.mode = a ? "showing" : "disabled", a && this.showHint() } }, showHint: function () { var a; if (a = this.track) { var b, c = this.player().textTrackDisplay; this.timeout && this.clearTimeout(this.timeout); var d = [new t.VTTCue(0, 0, h(a)), new t.VTTCue(0, 0, this.localize("press %s to configure"))]; for (b = 0; b < d.length; b++) d[b].align = "start", d[b].position = 28, d[b].line = 2 + b; for (b = 0; b < a.activeCues.length; b++) d.push(a.activeCues[b]); c.updateForTrack({ activeCues: d }); var e = u.replace(/viewBox="[^"]*"/, 'viewBox="6 6 24 24"'); d[1].displayState.innerHTML = d[1].displayState.innerHTML.replace("%s", e), this.timeout = this.setTimeout(function () { c.updateDisplay() }, 3e3) } }, update: function () { var a = g(this.player()); a.length ? this.show() : this.hide(), this.track && -1 == a.indexOf(this.track) && (this.track = null); var b = s(a, function (a) { return "showing" == a.mode }); b && (this.track = b), this.track || (this.track = s(a, function (a) { return a.default }) || a[0]), this.toggleClass("vjs-pressed", this.track && "showing" == this.track.mode) } }), c.plugin("settings", function (a) { var b = this; a = c.mergeOptions({ info: !0, report: !0, quality: !1, volume: { level: 1, mute: !!b.options_.muted }, debugging: !0, about: !0 }, a), b.ready(function () { if (!0 === a.quality && (a.quality = { sources: b.options_.sources }), a.quality && !f(b)) { a.quality.sources = function (a, b) { var c, d, e; for (a = a.filter(function (a) { return a.src }), c = 0; c < a.length; c++) a[c].label || (a[c].label = a[c].type), d || void 0 === a[c].default || (d = a[c]), b && b == a[c].label && void 0 === a[c]["prevent-default"] && (e = a[c]); for (c = 0; c < a.length; c++) a[c].default = e ? a[c] === e : !!d && a[c] === d; return a }(a.quality.sources, m("vjs5_quality")), b.on("resolutionchange", function () { for (var c = a.quality.sources, d = 0; d < c.length; d++) if (q(b.currentSrc(), c[d].src)) { l("vjs5_quality", c[d].label); break } }) } if (b.controlBar.addChild("CaptionsToggle", c.mergeOptions(a)), b.controlBar.addChild("SettingsButton", c.mergeOptions(a)), a.info && b.addChild("InfoOverlay"), a.report && b.addChild("NotifyOverlay"), a.volume) { b.ready(function () { if (!b.muted() || !b.autoplay()) { var c, d; null != (c = m("vjs5_volume")) && (a.volume.level = c), null != (d = m("vjs5_mute")) && (a.volume.mute = "true" == d), b.volume(a.volume.level), b.muted(a.volume.mute) } }), b.on("volumechange", function () { l("vjs5_volume", b.volume()), l("vjs5_mute", b.muted()) }) } b.addChild("PopupMenu", c.mergeOptions(a)); var d, e = n(); !p() && (d = e.match(/#(?:.*&)?t=(\d*)/)) && o(b, parseInt(d[1], 10)) }) }) }(window, window.videojs) }, { "@hola.org/videojs-utils": 47, clipboard: 52, "lodash/find": 221, "videojs-vtt.js": 270 }], 46: [function (a, b, c) { ! function () { "use strict"; var a = function () { var b, c, d, e, f; b = Array.prototype.slice.call(arguments), c = b.shift() || {}; for (d in b) { e = b[d]; for (f in e) e.hasOwnProperty(f) && ("object" == typeof e[f] ? c[f] = a(c[f], e[f]) : c[f] = e[f]) } return c }, b = function (a, b) { return function (c) { return window.getComputedStyle ? window.getComputedStyle(a, b)[c] : a.currentStyle[c] } }, c = function (a) { return "HTML" !== a.nodeName && "static" === b(a)("position") ? c(a.offsetParent) : a }, d = function () { return window.pageXOffset ? { x: window.pageXOffset, y: window.pageYOffset } : { x: document.documentElement.scrollLeft, y: document.documentElement.scrollTop } }, e = function (b) { var c = {}; return Object.keys(b).forEach(function (d) { var e; if (e = b[d].sprites) { if (delete b[d].sprites, !e.position && e.interval && e.count) { e.position = []; for (var f = 0; f < e.count; f++) e.position.push(+d + f * e.interval) } var g = e.rows || 1, h = Math.ceil(e.position.length / g); e.position.forEach(function (f, g) { var i = g % h, j = Math.floor(g / h); b[f] = b[f] || {}, b[f] = a({}, c, b[f], { width: e.width, height: e.height, style: { left: "-" + e.width * i + "px", top: "-" + e.height * j + "px" } }), c = b[d] }) } }), b }, f = function (a) { if (-1 !== navigator.userAgent.toLowerCase().indexOf("android")) { var b = a.controlBar.progressControl, c = function () { b.addClass("fake-active") }, d = function () { b.removeClass("fake-active") }; b.on("touchstart", c), b.on("touchend", d), b.on("touchcancel", d) } }, g = function (a, b) { var c = document.createElement("base"); c.href = a; var d = document.getElementsByTagName("head")[0]; d.insertBefore(c, d.firstChild); var e = document.createElement("a"); e.href = b; var f = e.href; return d.removeChild(c), f }, h = function (a, b) { for (var c = {}, d = a.cues, e = 0; e < d.length; e++) { var f = d[e], h = c[f.startTime] = { src: g(b, f.text.split("#")[0]) }, i = f.text.split("#")[1]; if (i && "xywh=" === i.substring(0, 5)) { var j = i.substring(5).split(","); h.width = j[2], h.height = j[3], h.style = { left: "-" + j[0] + "px", top: "-" + j[1] + "px" } } } return c }, i = function (a, b) { if (a._thumbs) return void(a._thumbs.settings = b); a._thumbs = { settings: b }, f(a); var e = document.createElement("div"); e.className = "vjs-thumbnail-holder"; var g = document.createElement("img"); e.appendChild(g), g.className = "vjs-thumbnail"; var h = a.duration(); a.on("durationchange", function (b) { h = a.duration() }), a.on("loadedmetadata", function (b) { h = a.duration() }); var i = a.controlBar.progressControl, j = i.seekBar, k = i.el(); k.firstChild ? k.insertBefore(e, k.firstChild) : k.appendChild(e); var l = function (b) { if (b.target !== e && b.target !== g) { var f = d().x, k = j.el().offsetLeft, l = k + j.el().offsetWidth, m = b.pageX; b.changedTouches && (m = b.changedTouches[0].pageX); var n = m || b.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; n -= c(i.el()).getBoundingClientRect().left + f; var o = Math.floor(j.calculateDistance(b) * h), p = 0, q = a._thumbs.settings; for (var r in q) o > r && (p = Math.max(p, r)); var s = q[p]; if (s) { var t = /^https?:\/\//i; s.src && g.src.replace(t, "//") != s.src.replace(t, "//") && (g.src = s.src); var u = a.hasClass("vjs-fullscreen") ? 1.5 : 1; s.style && (g.style.left = parseFloat(s.style.left) * u + "px", g.style.top = parseFloat(s.style.top) * u + "px"), g.naturalWidth && (g.style.width = g.naturalWidth * u + "px", g.style.height = g.naturalHeight * u + "px"); var v = parseFloat(s.width || q[0].width) * u, w = parseFloat(s.height || q[0].height) * u, x = v / 2; n + x > l ? n = l - v : n - x < k ? n = k : n -= x, e.style.width = v + "px", e.style.height = w + "px", e.style.left = n + "px", e.style.top = "-" + w + "px", e.style.display = "block" } } }; i.on("mousemove", l), i.on("touchmove", l); var m = function (a) { e.style.display = "none" }; i.on("mouseout", m), i.on("touchcancel", m), i.on("touchend", m), a.on("userinactive", m) }; videojs.plugin("thumbnails", function (a) { if (a) { var b = this; if (!a.vtt) return void i(b, e(a)); var c = b.addRemoteTextTrack({ id: "thumbnails", kind: "metadata", src: a.vtt }); c.addEventListener("load", function d() { c.removeEventListener("load", d); var e = b.textTracks().getTrackById("thumbnails"); i(b, h(e, a.vtt)) }) } }) }() }, {}], 47: [function (a, b, c) { ! function (a, b) { "use strict"; b.utils = b.utils || {}, function () { function c(b) { if (!b || !e(b)) return null; var c = new RegExp("(?:^|.*;\\s*)" + a.escape(b).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=\\s*((?:[^;](?!;))*[^;]?).*"); return a.unescape(document.cookie.replace(c, "$1")) } function d(b, c, d, e, f, g) { if (b && !/^(?:expires|max\-age|path|domain|secure)$/i.test(b)) { var h = ""; if (d) switch (d.constructor) { case Number: h = d === 1 / 0 ? "; expires=Tue, 19 Jan 2038 03:14:07 GMT" : "; max-age=" + d; break; case String: h = "; expires=" + d; break; case Date: h = "; expires=" + d.toGMTString() } document.cookie = a.escape(b) + "=" + a.escape(c) + h + (f ? "; domain=" + f : "") + (e ? "; path=" + e : "") + (g ? "; secure" : "") } } function e(b) { return new RegExp("(?:^|;\\s*)" + a.escape(b).replace(/[\-\.\+\*]/g, "\\$&") + "\\s*\\=").test(document.cookie) } b.utils.localStorage = function () { try { return a.localStorage.setItem("vjs-storage-test", "value"), a.localStorage.removeItem("vjs-storage-test"), !0 } catch (a) { return !1 } }() ? a.localStorage : { getItem: c, setItem: function (a, b) { d(a, b, 1 / 0, "/") } } }() }(window, window.videojs) }, {}], 48: [function (a, b, c) {}, {}], 49: [function (a, b, c) { "use strict"; var d = [], e = function (a, b) { var c = document.head || document.getElementsByTagName("head")[0], e = d[d.length - 1]; if (b = b || {}, b.insertAt = b.insertAt || "bottom", "top" === b.insertAt) e ? e.nextSibling ? c.insertBefore(a, e.nextSibling) : c.appendChild(a) : c.insertBefore(a, c.firstChild), d.push(a); else { if ("bottom" !== b.insertAt) throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'."); c.appendChild(a) } }; b.exports = { createLink: function (a, b) { var c = document.head || document.getElementsByTagName("head")[0], d = document.createElement("link"); d.href = a, d.rel = "stylesheet"; for (var e in b) if (b.hasOwnProperty(e)) { var f = b[e]; d.setAttribute("data-" + e, f) } c.appendChild(d) }, createStyle: function (a, b, c) { c = c || {}; var d = document.createElement("style"); d.type = "text/css"; for (var f in b) if (b.hasOwnProperty(f)) { var g = b[f]; d.setAttribute("data-" + f, g) } d.sheet ? (d.innerHTML = a, d.sheet.cssText = a, e(d, { insertAt: c.insertAt })) : d.styleSheet ? (e(d, { insertAt: c.insertAt }), d.styleSheet.cssText = a) : (d.appendChild(document.createTextNode(a)), e(d, { insertAt: c.insertAt })) } } }, {}], 50: [function (a, b, c) { arguments[4][48][0].apply(c, arguments) }, { dup: 48 }], 51: [function (b, c, d) { ! function (e, f) { if ("function" == typeof a && a.amd) a(["module", "select"], f); else if (void 0 !== d) f(c, b("select")); else { var g = { exports: {} }; f(g, e.select), e.clipboardAction = g.exports } }(this, function (a, b) { "use strict"; function c(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } var d = function (a) { return a && a.__esModule ? a : { default: a } }(b), e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (a) { return typeof a } : function (a) { return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a }, f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = function () { function a(b) { c(this, a), this.resolveOptions(b), this.initSelection() } return f(a, [{ key: "resolveOptions", value: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this.action = a.action, this.container = a.container, this.emitter = a.emitter, this.target = a.target, this.text = a.text, this.trigger = a.trigger, this.selectedText = "" } }, { key: "initSelection", value: function () { this.text ? this.selectFake() : this.target && this.selectTarget() } }, { key: "selectFake", value: function () { var a = this, b = "rtl" == document.documentElement.getAttribute("dir"); this.removeFake(), this.fakeHandlerCallback = function () { return a.removeFake() }, this.fakeHandler = this.container.addEventListener("click", this.fakeHandlerCallback) || !0, this.fakeElem = document.createElement("textarea"), this.fakeElem.style.fontSize = "12pt", this.fakeElem.style.border = "0", this.fakeElem.style.padding = "0", this.fakeElem.style.margin = "0", this.fakeElem.style.position = "absolute", this.fakeElem.style[b ? "right" : "left"] = "-9999px"; var c = window.pageYOffset || document.documentElement.scrollTop; this.fakeElem.style.top = c + "px", this.fakeElem.setAttribute("readonly", ""), this.fakeElem.value = this.text, this.container.appendChild(this.fakeElem), this.selectedText = (0, d.default)(this.fakeElem), this.copyText() } }, { key: "removeFake", value: function () { this.fakeHandler && (this.container.removeEventListener("click", this.fakeHandlerCallback), this.fakeHandler = null, this.fakeHandlerCallback = null), this.fakeElem && (this.container.removeChild(this.fakeElem), this.fakeElem = null) } }, { key: "selectTarget", value: function () { this.selectedText = (0, d.default)(this.target), this.copyText() } }, { key: "copyText", value: function () { var a = void 0; try { a = document.execCommand(this.action) } catch (b) { a = !1 } this.handleResult(a) } }, { key: "handleResult", value: function (a) { this.emitter.emit(a ? "success" : "error", { action: this.action, text: this.selectedText, trigger: this.trigger, clearSelection: this.clearSelection.bind(this) }) } }, { key: "clearSelection", value: function () { this.trigger && this.trigger.focus(), window.getSelection().removeAllRanges() } }, { key: "destroy", value: function () { this.removeFake() } }, { key: "action", set: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "copy"; if (this._action = a, "copy" !== this._action && "cut" !== this._action) throw new Error('Invalid "action" value, use either "copy" or "cut"') }, get: function () { return this._action } }, { key: "target", set: function (a) { if (void 0 !== a) { if (!a || "object" !== (void 0 === a ? "undefined" : e(a)) || 1 !== a.nodeType) throw new Error('Invalid "target" value, use a valid Element'); if ("copy" === this.action && a.hasAttribute("disabled")) throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute'); if ("cut" === this.action && (a.hasAttribute("readonly") || a.hasAttribute("disabled"))) throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes'); this._target = a } }, get: function () { return this._target } }]), a }(); a.exports = g }) }, { select: 265 }], 52: [function (b, c, d) { ! function (e, f) { if ("function" == typeof a && a.amd) a(["module", "./clipboard-action", "tiny-emitter", "good-listener"], f); else if (void 0 !== d) f(c, b("./clipboard-action"), b("tiny-emitter"), b("good-listener")); else { var g = { exports: {} }; f(g, e.clipboardAction, e.tinyEmitter, e.goodListener), e.clipboard = g.exports } }(this, function (a, b, c, d) { "use strict"; function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function h(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } function i(a, b) { var c = "data-clipboard-" + a; if (b.hasAttribute(c)) return b.getAttribute(c) } var j = e(b), k = e(c), l = e(d), m = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (a) { return typeof a } : function (a) { return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a }, n = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), o = function (a) { function b(a, c) { f(this, b); var d = g(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this)); return d.resolveOptions(c), d.listenClick(a), d } return h(b, a), n(b, [{ key: "resolveOptions", value: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; this.action = "function" == typeof a.action ? a.action : this.defaultAction, this.target = "function" == typeof a.target ? a.target : this.defaultTarget, this.text = "function" == typeof a.text ? a.text : this.defaultText, this.container = "object" === m(a.container) ? a.container : document.body } }, { key: "listenClick", value: function (a) { var b = this; this.listener = (0, l.default)(a, "click", function (a) { return b.onClick(a) }) } }, { key: "onClick", value: function (a) { var b = a.delegateTarget || a.currentTarget; this.clipboardAction && (this.clipboardAction = null), this.clipboardAction = new j.default({ action: this.action(b), target: this.target(b), text: this.text(b), container: this.container, trigger: b, emitter: this }) } }, { key: "defaultAction", value: function (a) { return i("action", a) } }, { key: "defaultTarget", value: function (a) { var b = i("target", a); if (b) return document.querySelector(b) } }, { key: "defaultText", value: function (a) { return i("text", a) } }, { key: "destroy", value: function () { this.listener.destroy(), this.clipboardAction && (this.clipboardAction.destroy(), this.clipboardAction = null) } }], [{ key: "isSupported", value: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : ["copy", "cut"], b = "string" == typeof a ? [a] : a, c = !!document.queryCommandSupported; return b.forEach(function (a) { c = c && !!document.queryCommandSupported(a) }), c } }]), b }(k.default); a.exports = o }) }, { "./clipboard-action": 51, "good-listener": 58, "tiny-emitter": 266 }], 53: [function (a, b, c) { function d(a, b) { for (; a && a.nodeType !== e;) { if ("function" == typeof a.matches && a.matches(b)) return a; a = a.parentNode } } var e = 9; if ("undefined" != typeof Element && !Element.prototype.matches) { var f = Element.prototype; f.matches = f.matchesSelector || f.mozMatchesSelector || f.msMatchesSelector || f.oMatchesSelector || f.webkitMatchesSelector } b.exports = d }, {}], 54: [function (a, b, c) { function d(a, b, c, d, e) { var g = f.apply(this, arguments); return a.addEventListener(c, g, e), { destroy: function () { a.removeEventListener(c, g, e) } } } function e(a, b, c, e, f) { return "function" == typeof a.addEventListener ? d.apply(null, arguments) : "function" == typeof c ? d.bind(null, document).apply(null, arguments) : ("string" == typeof a && (a = document.querySelectorAll(a)), Array.prototype.map.call(a, function (a) { return d(a, b, c, e, f) })) } function f(a, b, c, d) { return function (c) { c.delegateTarget = g(c.target, b), c.delegateTarget && d.call(a, c) } } var g = a("./closest"); b.exports = e }, { "./closest": 53 }], 55: [function (a, b, c) { (function (c) { var d, e = void 0 !== c ? c : "undefined" != typeof window ? window : {}, f = a("min-document"); "undefined" != typeof document ? d = document : (d = e["__GLOBAL_DOCUMENT_CACHE@4"]) || (d = e["__GLOBAL_DOCUMENT_CACHE@4"] = f), b.exports = d }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "min-document": 48 }], 56: [function (a, b, c) { (function (a) { var c; c = "undefined" != typeof window ? window : void 0 !== a ? a : "undefined" != typeof self ? self : {}, b.exports = c }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 57: [function (a, b, c) { c.node = function (a) { return void 0 !== a && a instanceof HTMLElement && 1 === a.nodeType }, c.nodeList = function (a) { var b = Object.prototype.toString.call(a); return void 0 !== a && ("[object NodeList]" === b || "[object HTMLCollection]" === b) && "length" in a && (0 === a.length || c.node(a[0])) }, c.string = function (a) { return "string" == typeof a || a instanceof String }, c.fn = function (a) { return "[object Function]" === Object.prototype.toString.call(a) } }, {}], 58: [function (a, b, c) { function d(a, b, c) { if (!a && !b && !c) throw new Error("Missing required arguments"); if (!h.string(b)) throw new TypeError("Second argument must be a String"); if (!h.fn(c)) throw new TypeError("Third argument must be a Function"); if (h.node(a)) return e(a, b, c); if (h.nodeList(a)) return f(a, b, c); if (h.string(a)) return g(a, b, c); throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList") } function e(a, b, c) { return a.addEventListener(b, c), { destroy: function () { a.removeEventListener(b, c) } } } function f(a, b, c) { return Array.prototype.forEach.call(a, function (a) { a.addEventListener(b, c) }), { destroy: function () { Array.prototype.forEach.call(a, function (a) { a.removeEventListener(b, c) }) } } } function g(a, b, c) { return i(document.body, a, b, c) } var h = a("./is"), i = a("delegate"); b.exports = d }, { "./is": 57, delegate: 54 }], 59: [function (a, b, c) { var d = a("./_getNative"), e = a("./_root"), f = d(e, "DataView"); b.exports = f }, { "./_getNative": 158, "./_root": 203 }], 60: [function (a, b, c) { function d(a) { var b = -1, c = null == a ? 0 : a.length; for (this.clear(); ++b < c;) { var d = a[b]; this.set(d[0], d[1]) } } var e = a("./_hashClear"), f = a("./_hashDelete"), g = a("./_hashGet"), h = a("./_hashHas"), i = a("./_hashSet"); d.prototype.clear = e, d.prototype.delete = f, d.prototype.get = g, d.prototype.has = h, d.prototype.set = i, b.exports = d }, { "./_hashClear": 166, "./_hashDelete": 167, "./_hashGet": 168, "./_hashHas": 169, "./_hashSet": 170 }], 61: [function (a, b, c) { function d(a) { var b = -1, c = null == a ? 0 : a.length; for (this.clear(); ++b < c;) { var d = a[b]; this.set(d[0], d[1]) } } var e = a("./_listCacheClear"), f = a("./_listCacheDelete"), g = a("./_listCacheGet"), h = a("./_listCacheHas"), i = a("./_listCacheSet"); d.prototype.clear = e, d.prototype.delete = f, d.prototype.get = g, d.prototype.has = h, d.prototype.set = i, b.exports = d }, { "./_listCacheClear": 182, "./_listCacheDelete": 183, "./_listCacheGet": 184, "./_listCacheHas": 185, "./_listCacheSet": 186 }], 62: [function (a, b, c) { var d = a("./_getNative"), e = a("./_root"), f = d(e, "Map"); b.exports = f }, { "./_getNative": 158, "./_root": 203 }], 63: [function (a, b, c) { function d(a) { var b = -1, c = null == a ? 0 : a.length; for (this.clear(); ++b < c;) { var d = a[b]; this.set(d[0], d[1]) } } var e = a("./_mapCacheClear"), f = a("./_mapCacheDelete"), g = a("./_mapCacheGet"), h = a("./_mapCacheHas"), i = a("./_mapCacheSet"); d.prototype.clear = e, d.prototype.delete = f, d.prototype.get = g, d.prototype.has = h, d.prototype.set = i, b.exports = d }, { "./_mapCacheClear": 187, "./_mapCacheDelete": 188, "./_mapCacheGet": 189, "./_mapCacheHas": 190, "./_mapCacheSet": 191 }], 64: [function (a, b, c) { var d = a("./_getNative"), e = a("./_root"), f = d(e, "Promise"); b.exports = f }, { "./_getNative": 158, "./_root": 203 }], 65: [function (a, b, c) { var d = a("./_getNative"), e = a("./_root"), f = d(e, "Set"); b.exports = f }, { "./_getNative": 158, "./_root": 203 }], 66: [function (a, b, c) { function d(a) { var b = -1, c = null == a ? 0 : a.length; for (this.__data__ = new e; ++b < c;) this.add(a[b]) } var e = a("./_MapCache"), f = a("./_setCacheAdd"), g = a("./_setCacheHas"); d.prototype.add = d.prototype.push = f, d.prototype.has = g, b.exports = d }, { "./_MapCache": 63, "./_setCacheAdd": 204, "./_setCacheHas": 205 }], 67: [function (a, b, c) { function d(a) { var b = this.__data__ = new e(a); this.size = b.size } var e = a("./_ListCache"), f = a("./_stackClear"), g = a("./_stackDelete"), h = a("./_stackGet"), i = a("./_stackHas"), j = a("./_stackSet"); d.prototype.clear = f, d.prototype.delete = g, d.prototype.get = h, d.prototype.has = i, d.prototype.set = j, b.exports = d }, { "./_ListCache": 61, "./_stackClear": 209, "./_stackDelete": 210, "./_stackGet": 211, "./_stackHas": 212, "./_stackSet": 213 }], 68: [function (a, b, c) { var d = a("./_root"), e = d.Symbol; b.exports = e }, { "./_root": 203 }], 69: [function (a, b, c) { var d = a("./_root"), e = d.Uint8Array; b.exports = e }, { "./_root": 203 }], 70: [function (a, b, c) { var d = a("./_getNative"), e = a("./_root"), f = d(e, "WeakMap"); b.exports = f }, { "./_getNative": 158, "./_root": 203 }], 71: [function (a, b, c) { function d(a, b) { return a.set(b[0], b[1]), a } b.exports = d }, {}], 72: [function (a, b, c) { function d(a, b) { return a.add(b), a } b.exports = d }, {}], 73: [function (a, b, c) { function d(a, b, c) { switch (c.length) { case 0: return a.call(b); case 1: return a.call(b, c[0]); case 2: return a.call(b, c[0], c[1]); case 3: return a.call(b, c[0], c[1], c[2]) } return a.apply(b, c) } b.exports = d }, {}], 74: [function (a, b, c) { function d(a, b) { for (var c = -1, d = null == a ? 0 : a.length; ++c < d && !1 !== b(a[c], c, a);); return a } b.exports = d }, {}], 75: [function (a, b, c) { function d(a, b) { for (var c = -1, d = null == a ? 0 : a.length, e = 0, f = []; ++c < d;) { var g = a[c]; b(g, c, a) && (f[e++] = g) } return f } b.exports = d }, {}], 76: [function (a, b, c) { function d(a, b) { var c = g(a), d = !c && f(a), k = !c && !d && h(a), m = !c && !d && !k && j(a), n = c || d || k || m, o = n ? e(a.length, String) : [], p = o.length; for (var q in a) !b && !l.call(a, q) || n && ("length" == q || k && ("offset" == q || "parent" == q) || m && ("buffer" == q || "byteLength" == q || "byteOffset" == q) || i(q, p)) || o.push(q); return o } var e = a("./_baseTimes"), f = a("./isArguments"), g = a("./isArray"), h = a("./isBuffer"), i = a("./_isIndex"), j = a("./isTypedArray"), k = Object.prototype, l = k.hasOwnProperty; b.exports = d }, { "./_baseTimes": 123, "./_isIndex": 175, "./isArguments": 228, "./isArray": 229, "./isBuffer": 232, "./isTypedArray": 240 }], 77: [function (a, b, c) { function d(a, b) { for (var c = -1, d = null == a ? 0 : a.length, e = Array(d); ++c < d;) e[c] = b(a[c], c, a); return e } b.exports = d }, {}], 78: [function (a, b, c) { function d(a, b) { for (var c = -1, d = b.length, e = a.length; ++c < d;) a[e + c] = b[c]; return a } b.exports = d }, {}], 79: [function (a, b, c) { function d(a, b, c, d) { var e = -1, f = null == a ? 0 : a.length; for (d && f && (c = a[++e]); ++e < f;) c = b(c, a[e], e, a); return c } b.exports = d }, {}], 80: [function (a, b, c) { function d(a, b) { for (var c = -1, d = null == a ? 0 : a.length; ++c < d;) if (b(a[c], c, a)) return !0; return !1 } b.exports = d }, {}], 81: [function (a, b, c) { function d(a, b, c) { (void 0 === c || f(a[b], c)) && (void 0 !== c || b in a) || e(a, b, c) } var e = a("./_baseAssignValue"), f = a("./eq"); b.exports = d }, { "./_baseAssignValue": 86, "./eq": 220 }], 82: [function (a, b, c) { function d(a, b, c) { var d = a[b]; h.call(a, b) && f(d, c) && (void 0 !== c || b in a) || e(a, b, c) } var e = a("./_baseAssignValue"), f = a("./eq"), g = Object.prototype, h = g.hasOwnProperty; b.exports = d }, { "./_baseAssignValue": 86, "./eq": 220 }], 83: [function (a, b, c) { function d(a, b) { for (var c = a.length; c--;) if (e(a[c][0], b)) return c; return -1 } var e = a("./eq"); b.exports = d }, { "./eq": 220 }], 84: [function (a, b, c) { function d(a, b) { return a && e(b, f(b), a) } var e = a("./_copyObject"), f = a("./keys"); b.exports = d }, { "./_copyObject": 139, "./keys": 241 }], 85: [function (a, b, c) { function d(a, b) { return a && e(b, f(b), a) } var e = a("./_copyObject"), f = a("./keysIn"); b.exports = d }, { "./_copyObject": 139, "./keysIn": 242 }], 86: [function (a, b, c) { function d(a, b, c) { "__proto__" == b && e ? e(a, b, { configurable: !0, enumerable: !0, value: c, writable: !0 }) : a[b] = c } var e = a("./_defineProperty"); b.exports = d }, { "./_defineProperty": 148 }], 87: [function (a, b, c) { function d(a, b, c, F, G, H) { var I, J = b & x, K = b & y, L = b & z; if (c && (I = G ? c(a, F, G, H) : c(a)), void 0 !== I) return I; if (!v(a)) return a; var M = t(a); if (M) { if (I = q(a), !J) return k(a, I) } else { var N = p(a), O = N == B || N == C; if (u(a)) return j(a, J); if (N == D || N == A || O && !G) { if (I = K || O ? {} : s(a), !J) return K ? m(a, i(I, a)) : l(a, h(I, a)) } else { if (!E[N]) return G ? a : {}; I = r(a, N, d, J) } } H || (H = new e); var P = H.get(a); if (P) return P; H.set(a, I); var Q = L ? K ? o : n : K ? keysIn : w, R = M ? void 0 : Q(a); return f(R || a, function (e, f) { R && (f = e, e = a[f]), g(I, f, d(e, b, c, f, a, H)) }), I } var e = a("./_Stack"), f = a("./_arrayEach"), g = a("./_assignValue"), h = a("./_baseAssign"), i = a("./_baseAssignIn"), j = a("./_cloneBuffer"), k = a("./_copyArray"), l = a("./_copySymbols"), m = a("./_copySymbolsIn"), n = a("./_getAllKeys"), o = a("./_getAllKeysIn"), p = a("./_getTag"), q = a("./_initCloneArray"), r = a("./_initCloneByTag"), s = a("./_initCloneObject"), t = a("./isArray"), u = a("./isBuffer"), v = a("./isObject"), w = a("./keys"), x = 1, y = 2, z = 4, A = "[object Arguments]", B = "[object Function]", C = "[object GeneratorFunction]", D = "[object Object]", E = {}; E[A] = E["[object Array]"] = E["[object ArrayBuffer]"] = E["[object DataView]"] = E["[object Boolean]"] = E["[object Date]"] = E["[object Float32Array]"] = E["[object Float64Array]"] = E["[object Int8Array]"] = E["[object Int16Array]"] = E["[object Int32Array]"] = E["[object Map]"] = E["[object Number]"] = E[D] = E["[object RegExp]"] = E["[object Set]"] = E["[object String]"] = E["[object Symbol]"] = E["[object Uint8Array]"] = E["[object Uint8ClampedArray]"] = E["[object Uint16Array]"] = E["[object Uint32Array]"] = !0, E["[object Error]"] = E[B] = E["[object WeakMap]"] = !1, b.exports = d }, { "./_Stack": 67, "./_arrayEach": 74, "./_assignValue": 82, "./_baseAssign": 84, "./_baseAssignIn": 85, "./_cloneBuffer": 131, "./_copyArray": 138, "./_copySymbols": 140, "./_copySymbolsIn": 141, "./_getAllKeys": 154, "./_getAllKeysIn": 155, "./_getTag": 163, "./_initCloneArray": 171, "./_initCloneByTag": 172, "./_initCloneObject": 173, "./isArray": 229, "./isBuffer": 232, "./isObject": 235, "./keys": 241 }], 88: [function (a, b, c) { var d = a("./isObject"), e = Object.create, f = function () { function a() {} return function (b) { if (!d(b)) return {}; if (e) return e(b); a.prototype = b; var c = new a; return a.prototype = void 0, c } }(); b.exports = f }, { "./isObject": 235 }], 89: [function (a, b, c) { var d = a("./_baseForOwn"), e = a("./_createBaseEach"), f = e(d); b.exports = f }, { "./_baseForOwn": 93, "./_createBaseEach": 144 }], 90: [function (a, b, c) { function d(a, b, c, d) { for (var e = a.length, f = c + (d ? 1 : -1); d ? f-- : ++f < e;) if (b(a[f], f, a)) return f; return -1 } b.exports = d }, {}], 91: [function (a, b, c) { function d(a, b, c, g, h) { var i = -1, j = a.length; for (c || (c = f), h || (h = []); ++i < j;) { var k = a[i]; b > 0 && c(k) ? b > 1 ? d(k, b - 1, c, g, h) : e(h, k) : g || (h[h.length] = k) } return h } var e = a("./_arrayPush"), f = a("./_isFlattenable"); b.exports = d }, { "./_arrayPush": 78, "./_isFlattenable": 174 }], 92: [function (a, b, c) { var d = a("./_createBaseFor"), e = d(); b.exports = e }, { "./_createBaseFor": 145 }], 93: [function (a, b, c) { function d(a, b) { return a && e(a, b, f) } var e = a("./_baseFor"), f = a("./keys"); b.exports = d }, { "./_baseFor": 92, "./keys": 241 }], 94: [function (a, b, c) { function d(a, b) { b = e(b, a); for (var c = 0, d = b.length; null != a && c < d;) a = a[f(b[c++])]; return c && c == d ? a : void 0 } var e = a("./_castPath"), f = a("./_toKey"); b.exports = d }, { "./_castPath": 129, "./_toKey": 216 }], 95: [function (a, b, c) { function d(a, b, c) { var d = b(a); return f(a) ? d : e(d, c(a)) } var e = a("./_arrayPush"), f = a("./isArray"); b.exports = d }, { "./_arrayPush": 78, "./isArray": 229 }], 96: [function (a, b, c) { function d(a) { return null == a ? void 0 === a ? i : h : j && j in Object(a) ? f(a) : g(a) } var e = a("./_Symbol"), f = a("./_getRawTag"), g = a("./_objectToString"), h = "[object Null]", i = "[object Undefined]", j = e ? e.toStringTag : void 0; b.exports = d }, { "./_Symbol": 68, "./_getRawTag": 160, "./_objectToString": 199 }], 97: [function (a, b, c) { function d(a, b) { return null != a && b in Object(a) } b.exports = d }, {}], 98: [function (a, b, c) { function d(a, b, c) { return b === b ? g(a, b, c) : e(a, f, c) } var e = a("./_baseFindIndex"), f = a("./_baseIsNaN"), g = a("./_strictIndexOf"); b.exports = d }, { "./_baseFindIndex": 90, "./_baseIsNaN": 103, "./_strictIndexOf": 214 }], 99: [function (a, b, c) { function d(a) { return f(a) && e(a) == g } var e = a("./_baseGetTag"), f = a("./isObjectLike"), g = "[object Arguments]"; b.exports = d }, { "./_baseGetTag": 96, "./isObjectLike": 236 }], 100: [function (a, b, c) { function d(a, b, c, g, h) { return a === b || (null == a || null == b || !f(a) && !f(b) ? a !== a && b !== b : e(a, b, c, g, d, h)) } var e = a("./_baseIsEqualDeep"), f = a("./isObjectLike"); b.exports = d }, { "./_baseIsEqualDeep": 101, "./isObjectLike": 236 }], 101: [function (a, b, c) { function d(a, b, c, d, q, s) { var t = j(a), u = j(b), v = t ? o : i(a), w = u ? o : i(b); v = v == n ? p : v, w = w == n ? p : w; var x = v == p, y = w == p, z = v == w; if (z && k(a)) { if (!k(b)) return !1; t = !0, x = !1 } if (z && !x) return s || (s = new e), t || l(a) ? f(a, b, c, d, q, s) : g(a, b, v, c, d, q, s); if (!(c & m)) { var A = x && r.call(a, "__wrapped__"), B = y && r.call(b, "__wrapped__"); if (A || B) { var C = A ? a.value() : a, D = B ? b.value() : b; return s || (s = new e), q(C, D, c, d, s) } } return !!z && (s || (s = new e), h(a, b, c, d, q, s)) } var e = a("./_Stack"), f = a("./_equalArrays"), g = a("./_equalByTag"), h = a("./_equalObjects"), i = a("./_getTag"), j = a("./isArray"), k = a("./isBuffer"), l = a("./isTypedArray"), m = 1, n = "[object Arguments]", o = "[object Array]", p = "[object Object]", q = Object.prototype, r = q.hasOwnProperty; b.exports = d }, { "./_Stack": 67, "./_equalArrays": 149, "./_equalByTag": 150, "./_equalObjects": 151, "./_getTag": 163, "./isArray": 229, "./isBuffer": 232, "./isTypedArray": 240 }], 102: [function (a, b, c) { function d(a, b, c, d) { var i = c.length, j = i, k = !d; if (null == a) return !j; for (a = Object(a); i--;) { var l = c[i]; if (k && l[2] ? l[1] !== a[l[0]] : !(l[0] in a)) return !1 } for (; ++i < j;) { l = c[i]; var m = l[0], n = a[m], o = l[1]; if (k && l[2]) { if (void 0 === n && !(m in a)) return !1 } else { var p = new e; if (d) var q = d(n, o, m, a, b, p); if (!(void 0 === q ? f(o, n, g | h, d, p) : q)) return !1 } } return !0 } var e = a("./_Stack"), f = a("./_baseIsEqual"), g = 1, h = 2; b.exports = d }, { "./_Stack": 67, "./_baseIsEqual": 100 }], 103: [function (a, b, c) { function d(a) { return a !== a } b.exports = d }, {}], 104: [function (a, b, c) { function d(a) { return !(!g(a) || f(a)) && (e(a) ? o : j).test(h(a)) } var e = a("./isFunction"), f = a("./_isMasked"), g = a("./isObject"), h = a("./_toSource"), i = /[\\^$.*+?()[\]{}|]/g, j = /^\[object .+?Constructor\]$/, k = Function.prototype, l = Object.prototype, m = k.toString, n = l.hasOwnProperty, o = RegExp("^" + m.call(n).replace(i, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); b.exports = d }, { "./_isMasked": 179, "./_toSource": 217, "./isFunction": 233, "./isObject": 235 }], 105: [function (a, b, c) { function d(a) { return g(a) && f(a.length) && !!h[e(a)] } var e = a("./_baseGetTag"), f = a("./isLength"), g = a("./isObjectLike"), h = {}; h["[object Float32Array]"] = h["[object Float64Array]"] = h["[object Int8Array]"] = h["[object Int16Array]"] = h["[object Int32Array]"] = h["[object Uint8Array]"] = h["[object Uint8ClampedArray]"] = h["[object Uint16Array]"] = h["[object Uint32Array]"] = !0, h["[object Arguments]"] = h["[object Array]"] = h["[object ArrayBuffer]"] = h["[object Boolean]"] = h["[object DataView]"] = h["[object Date]"] = h["[object Error]"] = h["[object Function]"] = h["[object Map]"] = h["[object Number]"] = h["[object Object]"] = h["[object RegExp]"] = h["[object Set]"] = h["[object String]"] = h["[object WeakMap]"] = !1, b.exports = d }, { "./_baseGetTag": 96, "./isLength": 234, "./isObjectLike": 236 }], 106: [function (a, b, c) { function d(a) { return "function" == typeof a ? a : null == a ? g : "object" == typeof a ? h(a) ? f(a[0], a[1]) : e(a) : i(a) } var e = a("./_baseMatches"), f = a("./_baseMatchesProperty"), g = a("./identity"), h = a("./isArray"), i = a("./property"); b.exports = d }, { "./_baseMatches": 110, "./_baseMatchesProperty": 111, "./identity": 226, "./isArray": 229, "./property": 250 }], 107: [function (a, b, c) { function d(a) { if (!e(a)) return f(a); var b = []; for (var c in Object(a)) h.call(a, c) && "constructor" != c && b.push(c); return b } var e = a("./_isPrototype"), f = a("./_nativeKeys"), g = Object.prototype, h = g.hasOwnProperty; b.exports = d }, { "./_isPrototype": 180, "./_nativeKeys": 196 }], 108: [function (a, b, c) { function d(a) { if (!e(a)) return g(a); var b = f(a), c = []; for (var d in a)("constructor" != d || !b && i.call(a, d)) && c.push(d); return c } var e = a("./isObject"), f = a("./_isPrototype"), g = a("./_nativeKeysIn"), h = Object.prototype, i = h.hasOwnProperty; b.exports = d }, { "./_isPrototype": 180, "./_nativeKeysIn": 197, "./isObject": 235 }], 109: [function (a, b, c) { function d(a, b) { var c = -1, d = f(a) ? Array(a.length) : []; return e(a, function (a, e, f) { d[++c] = b(a, e, f) }), d } var e = a("./_baseEach"), f = a("./isArrayLike"); b.exports = d }, { "./_baseEach": 89, "./isArrayLike": 230 }], 110: [function (a, b, c) { function d(a) { var b = f(a); return 1 == b.length && b[0][2] ? g(b[0][0], b[0][1]) : function (c) { return c === a || e(c, a, b) } } var e = a("./_baseIsMatch"), f = a("./_getMatchData"), g = a("./_matchesStrictComparable"); b.exports = d }, { "./_baseIsMatch": 102, "./_getMatchData": 157, "./_matchesStrictComparable": 193 }], 111: [function (a, b, c) { function d(a, b) { return h(a) && i(b) ? j(k(a), b) : function (c) { var d = f(c, a); return void 0 === d && d === b ? g(c, a) : e(b, d, l | m) } } var e = a("./_baseIsEqual"), f = a("./get"), g = a("./hasIn"), h = a("./_isKey"), i = a("./_isStrictComparable"), j = a("./_matchesStrictComparable"), k = a("./_toKey"), l = 1, m = 2; b.exports = d }, { "./_baseIsEqual": 100, "./_isKey": 177, "./_isStrictComparable": 181, "./_matchesStrictComparable": 193, "./_toKey": 216, "./get": 224, "./hasIn": 225 }], 112: [function (a, b, c) { function d(a, b, c, k, l) { a !== b && g(b, function (g, j) { if (i(g)) l || (l = new e), h(a, b, j, c, d, k, l); else { var m = k ? k(a[j], g, j + "", a, b, l) : void 0; void 0 === m && (m = g), f(a, j, m) } }, j) } var e = a("./_Stack"), f = a("./_assignMergeValue"), g = a("./_baseFor"), h = a("./_baseMergeDeep"), i = a("./isObject"), j = a("./keysIn"); b.exports = d }, { "./_Stack": 67, "./_assignMergeValue": 81, "./_baseFor": 92, "./_baseMergeDeep": 113, "./isObject": 235, "./keysIn": 242 }], 113: [function (a, b, c) { function d(a, b, c, d, s, t, u) { var v = a[c], w = b[c], x = u.get(w); if (x) return void e(a, c, x); var y = t ? t(v, w, c + "", a, b, u) : void 0, z = void 0 === y; if (z) { var A = k(w), B = !A && m(w), C = !A && !B && q(w); y = w, A || B || C ? k(v) ? y = v : l(v) ? y = h(v) : B ? (z = !1, y = f(w, !0)) : C ? (z = !1, y = g(w, !0)) : y = [] : p(w) || j(w) ? (y = v, j(v) ? y = r(v) : (!o(v) || d && n(v)) && (y = i(w))) : z = !1 } z && (u.set(w, y), s(y, w, d, t, u), u.delete(w)), e(a, c, y) } var e = a("./_assignMergeValue"), f = a("./_cloneBuffer"), g = a("./_cloneTypedArray"), h = a("./_copyArray"), i = a("./_initCloneObject"), j = a("./isArguments"), k = a("./isArray"), l = a("./isArrayLikeObject"), m = a("./isBuffer"), n = a("./isFunction"), o = a("./isObject"), p = a("./isPlainObject"), q = a("./isTypedArray"), r = a("./toPlainObject"); b.exports = d }, { "./_assignMergeValue": 81, "./_cloneBuffer": 131, "./_cloneTypedArray": 137, "./_copyArray": 138, "./_initCloneObject": 173, "./isArguments": 228, "./isArray": 229, "./isArrayLikeObject": 231, "./isBuffer": 232, "./isFunction": 233, "./isObject": 235, "./isPlainObject": 237, "./isTypedArray": 240, "./toPlainObject": 258 }], 114: [function (a, b, c) { function d(a, b) { return e(a, b, function (b, c) { return f(a, c) }) } var e = a("./_basePickBy"), f = a("./hasIn"); b.exports = d }, { "./_basePickBy": 115, "./hasIn": 225 }], 115: [function (a, b, c) { function d(a, b, c) { for (var d = -1, h = b.length, i = {}; ++d < h;) { var j = b[d], k = e(a, j); c(k, j) && f(i, g(j, a), k) } return i } var e = a("./_baseGet"), f = a("./_baseSet"), g = a("./_castPath"); b.exports = d }, { "./_baseGet": 94, "./_baseSet": 119, "./_castPath": 129 }], 116: [function (a, b, c) { function d(a) { return function (b) { return null == b ? void 0 : b[a] } } b.exports = d }, {}], 117: [function (a, b, c) { function d(a) { return function (b) { return e(b, a) } } var e = a("./_baseGet"); b.exports = d }, { "./_baseGet": 94 }], 118: [function (a, b, c) { function d(a, b) { return g(f(a, b, e), a + "") } var e = a("./identity"), f = a("./_overRest"), g = a("./_setToString"); b.exports = d }, { "./_overRest": 201, "./_setToString": 207, "./identity": 226 }], 119: [function (a, b, c) { function d(a, b, c, d) { if (!h(a)) return a; b = f(b, a); for (var j = -1, k = b.length, l = k - 1, m = a; null != m && ++j < k;) { var n = i(b[j]), o = c; if (j != l) { var p = m[n]; o = d ? d(p, n, m) : void 0, void 0 === o && (o = h(p) ? p : g(b[j + 1]) ? [] : {}) } e(m, n, o), m = m[n] } return a } var e = a("./_assignValue"), f = a("./_castPath"), g = a("./_isIndex"), h = a("./isObject"), i = a("./_toKey"); b.exports = d }, { "./_assignValue": 82, "./_castPath": 129, "./_isIndex": 175, "./_toKey": 216, "./isObject": 235 }], 120: [function (a, b, c) { var d = a("./constant"), e = a("./_defineProperty"), f = a("./identity"), g = e ? function (a, b) { return e(a, "toString", { configurable: !0, enumerable: !1, value: d(b), writable: !0 }) } : f; b.exports = g }, { "./_defineProperty": 148, "./constant": 218, "./identity": 226 }], 121: [function (a, b, c) { function d(a, b, c) { var d = -1, e = a.length; b < 0 && (b = -b > e ? 0 : e + b), c = c > e ? e : c, c < 0 && (c += e), e = b > c ? 0 : c - b >>> 0, b >>>= 0; for (var f = Array(e); ++d < e;) f[d] = a[d + b]; return f } b.exports = d }, {}], 122: [function (a, b, c) { function d(a, b) { var c; return e(a, function (a, d, e) { return !(c = b(a, d, e)) }), !!c } var e = a("./_baseEach"); b.exports = d }, { "./_baseEach": 89 }], 123: [function (a, b, c) { function d(a, b) { for (var c = -1, d = Array(a); ++c < a;) d[c] = b(c); return d } b.exports = d }, {}], 124: [function (a, b, c) { function d(a) { if ("string" == typeof a) return a; if (g(a)) return f(a, d) + ""; if (h(a)) return k ? k.call(a) : ""; var b = a + ""; return "0" == b && 1 / a == -i ? "-0" : b } var e = a("./_Symbol"), f = a("./_arrayMap"), g = a("./isArray"), h = a("./isSymbol"), i = 1 / 0, j = e ? e.prototype : void 0, k = j ? j.toString : void 0; b.exports = d }, { "./_Symbol": 68, "./_arrayMap": 77, "./isArray": 229, "./isSymbol": 239 }], 125: [function (a, b, c) { function d(a) { return function (b) { return a(b) } } b.exports = d }, {}], 126: [function (a, b, c) { function d(a, b) { return b = e(b, a), null == (a = g(a, b)) || delete a[h(f(b))] } var e = a("./_castPath"), f = a("./last"), g = a("./_parent"), h = a("./_toKey"); b.exports = d }, { "./_castPath": 129, "./_parent": 202, "./_toKey": 216, "./last": 243 }], 127: [function (a, b, c) { function d(a, b) { return e(b, function (b) { return a[b] }) } var e = a("./_arrayMap"); b.exports = d }, { "./_arrayMap": 77 }], 128: [function (a, b, c) { function d(a, b) { return a.has(b) } b.exports = d }, {}], 129: [function (a, b, c) { function d(a, b) { return e(a) ? a : f(a, b) ? [a] : g(h(a)) } var e = a("./isArray"), f = a("./_isKey"), g = a("./_stringToPath"), h = a("./toString"); b.exports = d }, { "./_isKey": 177, "./_stringToPath": 215, "./isArray": 229, "./toString": 259 }], 130: [function (a, b, c) { function d(a) { var b = new a.constructor(a.byteLength); return new e(b).set(new e(a)), b } var e = a("./_Uint8Array"); b.exports = d }, { "./_Uint8Array": 69 }], 131: [function (a, b, c) { function d(a, b) { if (b) return a.slice(); var c = a.length, d = j ? j(c) : new a.constructor(c); return a.copy(d), d } var e = a("./_root"), f = "object" == typeof c && c && !c.nodeType && c, g = f && "object" == typeof b && b && !b.nodeType && b, h = g && g.exports === f, i = h ? e.Buffer : void 0, j = i ? i.allocUnsafe : void 0; b.exports = d }, { "./_root": 203 }], 132: [function (a, b, c) { function d(a, b) { var c = b ? e(a.buffer) : a.buffer; return new a.constructor(c, a.byteOffset, a.byteLength) } var e = a("./_cloneArrayBuffer"); b.exports = d }, { "./_cloneArrayBuffer": 130 }], 133: [function (a, b, c) { function d(a, b, c) { var d = b ? c(g(a), h) : g(a); return f(d, e, new a.constructor) } var e = a("./_addMapEntry"), f = a("./_arrayReduce"), g = a("./_mapToArray"), h = 1; b.exports = d }, { "./_addMapEntry": 71, "./_arrayReduce": 79, "./_mapToArray": 192 }], 134: [function (a, b, c) { function d(a) { var b = new a.constructor(a.source, e.exec(a)); return b.lastIndex = a.lastIndex, b } var e = /\w*$/; b.exports = d }, {}], 135: [function (a, b, c) { function d(a, b, c) { var d = b ? c(g(a), h) : g(a); return f(d, e, new a.constructor) } var e = a("./_addSetEntry"), f = a("./_arrayReduce"), g = a("./_setToArray"), h = 1; b.exports = d }, { "./_addSetEntry": 72, "./_arrayReduce": 79, "./_setToArray": 206 }], 136: [function (a, b, c) { function d(a) { return g ? Object(g.call(a)) : {} } var e = a("./_Symbol"), f = e ? e.prototype : void 0, g = f ? f.valueOf : void 0; b.exports = d }, { "./_Symbol": 68 }], 137: [function (a, b, c) { function d(a, b) { var c = b ? e(a.buffer) : a.buffer; return new a.constructor(c, a.byteOffset, a.length) } var e = a("./_cloneArrayBuffer"); b.exports = d }, { "./_cloneArrayBuffer": 130 }], 138: [function (a, b, c) { function d(a, b) { var c = -1, d = a.length; for (b || (b = Array(d)); ++c < d;) b[c] = a[c]; return b } b.exports = d }, {}], 139: [function (a, b, c) { function d(a, b, c, d) { var g = !c; c || (c = {}); for (var h = -1, i = b.length; ++h < i;) { var j = b[h], k = d ? d(c[j], a[j], j, c, a) : void 0; void 0 === k && (k = a[j]), g ? f(c, j, k) : e(c, j, k) } return c } var e = a("./_assignValue"), f = a("./_baseAssignValue"); b.exports = d }, { "./_assignValue": 82, "./_baseAssignValue": 86 }], 140: [function (a, b, c) { function d(a, b) { return e(a, f(a), b) } var e = a("./_copyObject"), f = a("./_getSymbols"); b.exports = d }, { "./_copyObject": 139, "./_getSymbols": 161 }], 141: [function (a, b, c) { function d(a, b) { return e(a, f(a), b) } var e = a("./_copyObject"), f = a("./_getSymbolsIn"); b.exports = d }, { "./_copyObject": 139, "./_getSymbolsIn": 162 }], 142: [function (a, b, c) { var d = a("./_root"), e = d["__core-js_shared__"]; b.exports = e }, { "./_root": 203 }], 143: [function (a, b, c) { function d(a) { return e(function (b, c) { var d = -1, e = c.length, g = e > 1 ? c[e - 1] : void 0, h = e > 2 ? c[2] : void 0; for (g = a.length > 3 && "function" == typeof g ? (e--, g) : void 0, h && f(c[0], c[1], h) && (g = e < 3 ? void 0 : g, e = 1), b = Object(b); ++d < e;) { var i = c[d]; i && a(b, i, d, g) } return b }) } var e = a("./_baseRest"), f = a("./_isIterateeCall"); b.exports = d }, { "./_baseRest": 118, "./_isIterateeCall": 176 }], 144: [function (a, b, c) { function d(a, b) { return function (c, d) { if (null == c) return c; if (!e(c)) return a(c, d); for (var f = c.length, g = b ? f : -1, h = Object(c); (b ? g-- : ++g < f) && !1 !== d(h[g], g, h);); return c } } var e = a("./isArrayLike"); b.exports = d }, { "./isArrayLike": 230 }], 145: [function (a, b, c) { function d(a) { return function (b, c, d) { for (var e = -1, f = Object(b), g = d(b), h = g.length; h--;) { var i = g[a ? h : ++e]; if (!1 === c(f[i], i, f)) break } return b } } b.exports = d }, {}], 146: [function (a, b, c) { function d(a) { return function (b, c, d) { var h = Object(b); if (!f(b)) { var i = e(c, 3); b = g(b), c = function (a) { return i(h[a], a, h) } } var j = a(b, c, d); return j > -1 ? h[i ? b[j] : j] : void 0 } } var e = a("./_baseIteratee"), f = a("./isArrayLike"), g = a("./keys"); b.exports = d }, { "./_baseIteratee": 106, "./isArrayLike": 230, "./keys": 241 }], 147: [function (a, b, c) { function d(a) { return e(a) ? void 0 : a } var e = a("./isPlainObject"); b.exports = d }, { "./isPlainObject": 237 }], 148: [function (a, b, c) { var d = a("./_getNative"), e = function () { try { var a = d(Object, "defineProperty"); return a({}, "", {}), a } catch (a) {} }(); b.exports = e }, { "./_getNative": 158 }], 149: [function (a, b, c) { function d(a, b, c, d, j, k) { var l = c & h, m = a.length, n = b.length; if (m != n && !(l && n > m)) return !1; var o = k.get(a); if (o && k.get(b)) return o == b; var p = -1, q = !0, r = c & i ? new e : void 0; for (k.set(a, b), k.set(b, a); ++p < m;) { var s = a[p], t = b[p]; if (d) var u = l ? d(t, s, p, b, a, k) : d(s, t, p, a, b, k); if (void 0 !== u) { if (u) continue; q = !1; break } if (r) { if (!f(b, function (a, b) { if (!g(r, b) && (s === a || j(s, a, c, d, k))) return r.push(b) })) { q = !1; break } } else if (s !== t && !j(s, t, c, d, k)) { q = !1; break } } return k.delete(a), k.delete(b), q } var e = a("./_SetCache"), f = a("./_arraySome"), g = a("./_cacheHas"), h = 1, i = 2; b.exports = d }, { "./_SetCache": 66, "./_arraySome": 80, "./_cacheHas": 128 }], 150: [function (a, b, c) { function d(a, b, c, d, e, x, z) { switch (c) { case w: if (a.byteLength != b.byteLength || a.byteOffset != b.byteOffset) return !1; a = a.buffer, b = b.buffer; case v: return !(a.byteLength != b.byteLength || !x(new f(a), new f(b))); case m: case n: case q: return g(+a, +b); case o: return a.name == b.name && a.message == b.message; case r: case t: return a == b + ""; case p: var A = i; case s: var B = d & k; if (A || (A = j), a.size != b.size && !B) return !1; var C = z.get(a); if (C) return C == b; d |= l, z.set(a, b); var D = h(A(a), A(b), d, e, x, z); return z.delete(a), D; case u: if (y) return y.call(a) == y.call(b) } return !1 } var e = a("./_Symbol"), f = a("./_Uint8Array"), g = a("./eq"), h = a("./_equalArrays"), i = a("./_mapToArray"), j = a("./_setToArray"), k = 1, l = 2, m = "[object Boolean]", n = "[object Date]", o = "[object Error]", p = "[object Map]", q = "[object Number]", r = "[object RegExp]", s = "[object Set]", t = "[object String]", u = "[object Symbol]", v = "[object ArrayBuffer]", w = "[object DataView]", x = e ? e.prototype : void 0, y = x ? x.valueOf : void 0; b.exports = d }, { "./_Symbol": 68, "./_Uint8Array": 69, "./_equalArrays": 149, "./_mapToArray": 192, "./_setToArray": 206, "./eq": 220 }], 151: [function (a, b, c) { function d(a, b, c, d, g, i) { var j = c & f, k = e(a), l = k.length; if (l != e(b).length && !j) return !1; for (var m = l; m--;) { var n = k[m]; if (!(j ? n in b : h.call(b, n))) return !1 } var o = i.get(a); if (o && i.get(b)) return o == b; var p = !0; i.set(a, b), i.set(b, a); for (var q = j; ++m < l;) { n = k[m]; var r = a[n], s = b[n]; if (d) var t = j ? d(s, r, n, b, a, i) : d(r, s, n, a, b, i); if (!(void 0 === t ? r === s || g(r, s, c, d, i) : t)) { p = !1; break } q || (q = "constructor" == n) } if (p && !q) { var u = a.constructor, v = b.constructor; u != v && "constructor" in a && "constructor" in b && !("function" == typeof u && u instanceof u && "function" == typeof v && v instanceof v) && (p = !1) } return i.delete(a), i.delete(b), p } var e = a("./_getAllKeys"), f = 1, g = Object.prototype, h = g.hasOwnProperty; b.exports = d }, { "./_getAllKeys": 154 }], 152: [function (a, b, c) { function d(a) { return g(f(a, void 0, e), a + "") } var e = a("./flatten"), f = a("./_overRest"), g = a("./_setToString"); b.exports = d }, { "./_overRest": 201, "./_setToString": 207, "./flatten": 223 }], 153: [function (a, b, c) { (function (a) { var c = "object" == typeof a && a && a.Object === Object && a; b.exports = c }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 154: [function (a, b, c) { function d(a) { return e(a, g, f) } var e = a("./_baseGetAllKeys"), f = a("./_getSymbols"), g = a("./keys"); b.exports = d }, { "./_baseGetAllKeys": 95, "./_getSymbols": 161, "./keys": 241 }], 155: [function (a, b, c) { function d(a) { return e(a, g, f) } var e = a("./_baseGetAllKeys"), f = a("./_getSymbolsIn"), g = a("./keysIn"); b.exports = d }, { "./_baseGetAllKeys": 95, "./_getSymbolsIn": 162, "./keysIn": 242 }], 156: [function (a, b, c) { function d(a, b) { var c = a.__data__; return e(b) ? c["string" == typeof b ? "string" : "hash"] : c.map } var e = a("./_isKeyable"); b.exports = d }, { "./_isKeyable": 178 }], 157: [function (a, b, c) { function d(a) { for (var b = f(a), c = b.length; c--;) { var d = b[c], g = a[d]; b[c] = [d, g, e(g)] } return b } var e = a("./_isStrictComparable"), f = a("./keys"); b.exports = d }, { "./_isStrictComparable": 181, "./keys": 241 }], 158: [function (a, b, c) { function d(a, b) { var c = f(a, b); return e(c) ? c : void 0 } var e = a("./_baseIsNative"), f = a("./_getValue"); b.exports = d }, { "./_baseIsNative": 104, "./_getValue": 164 }], 159: [function (a, b, c) { var d = a("./_overArg"), e = d(Object.getPrototypeOf, Object); b.exports = e }, { "./_overArg": 200 }], 160: [function (a, b, c) { function d(a) { var b = g.call(a, i), c = a[i]; try { a[i] = void 0; var d = !0 } catch (a) {} var e = h.call(a); return d && (b ? a[i] = c : delete a[i]), e } var e = a("./_Symbol"), f = Object.prototype, g = f.hasOwnProperty, h = f.toString, i = e ? e.toStringTag : void 0; b.exports = d }, { "./_Symbol": 68 }], 161: [function (a, b, c) { var d = a("./_arrayFilter"), e = a("./stubArray"), f = Object.prototype, g = f.propertyIsEnumerable, h = Object.getOwnPropertySymbols, i = h ? function (a) { return null == a ? [] : (a = Object(a), d(h(a), function (b) { return g.call(a, b) })) } : e; b.exports = i }, { "./_arrayFilter": 75, "./stubArray": 252 }], 162: [function (a, b, c) { var d = a("./_arrayPush"), e = a("./_getPrototype"), f = a("./_getSymbols"), g = a("./stubArray"), h = Object.getOwnPropertySymbols, i = h ? function (a) { for (var b = []; a;) d(b, f(a)), a = e(a); return b } : g; b.exports = i }, { "./_arrayPush": 78, "./_getPrototype": 159, "./_getSymbols": 161, "./stubArray": 252 }], 163: [function (a, b, c) { var d = a("./_DataView"), e = a("./_Map"), f = a("./_Promise"), g = a("./_Set"), h = a("./_WeakMap"), i = a("./_baseGetTag"), j = a("./_toSource"), k = j(d), l = j(e), m = j(f), n = j(g), o = j(h), p = i; (d && "[object DataView]" != p(new d(new ArrayBuffer(1))) || e && "[object Map]" != p(new e) || f && "[object Promise]" != p(f.resolve()) || g && "[object Set]" != p(new g) || h && "[object WeakMap]" != p(new h)) && (p = function (a) { var b = i(a), c = "[object Object]" == b ? a.constructor : void 0, d = c ? j(c) : ""; if (d) switch (d) { case k: return "[object DataView]"; case l: return "[object Map]"; case m: return "[object Promise]"; case n: return "[object Set]"; case o: return "[object WeakMap]" } return b }), b.exports = p }, { "./_DataView": 59, "./_Map": 62, "./_Promise": 64, "./_Set": 65, "./_WeakMap": 70, "./_baseGetTag": 96, "./_toSource": 217 }], 164: [function (a, b, c) { function d(a, b) { return null == a ? void 0 : a[b] } b.exports = d }, {}], 165: [function (a, b, c) { function d(a, b, c) { b = e(b, a); for (var d = -1, k = b.length, l = !1; ++d < k;) { var m = j(b[d]); if (!(l = null != a && c(a, m))) break; a = a[m] } return l || ++d != k ? l : !!(k = null == a ? 0 : a.length) && i(k) && h(m, k) && (g(a) || f(a)) } var e = a("./_castPath"), f = a("./isArguments"), g = a("./isArray"), h = a("./_isIndex"), i = a("./isLength"), j = a("./_toKey"); b.exports = d }, { "./_castPath": 129, "./_isIndex": 175, "./_toKey": 216, "./isArguments": 228, "./isArray": 229, "./isLength": 234 }], 166: [function (a, b, c) { function d() { this.__data__ = e ? e(null) : {}, this.size = 0 } var e = a("./_nativeCreate"); b.exports = d }, { "./_nativeCreate": 195 }], 167: [function (a, b, c) { function d(a) { var b = this.has(a) && delete this.__data__[a]; return this.size -= b ? 1 : 0, b } b.exports = d }, {}], 168: [function (a, b, c) { function d(a) { var b = this.__data__; if (e) { var c = b[a]; return c === f ? void 0 : c } return h.call(b, a) ? b[a] : void 0 } var e = a("./_nativeCreate"), f = "__lodash_hash_undefined__", g = Object.prototype, h = g.hasOwnProperty; b.exports = d }, { "./_nativeCreate": 195 }], 169: [function (a, b, c) { function d(a) { var b = this.__data__; return e ? void 0 !== b[a] : g.call(b, a) } var e = a("./_nativeCreate"), f = Object.prototype, g = f.hasOwnProperty; b.exports = d }, { "./_nativeCreate": 195 }], 170: [function (a, b, c) { function d(a, b) { var c = this.__data__; return this.size += this.has(a) ? 0 : 1, c[a] = e && void 0 === b ? f : b, this } var e = a("./_nativeCreate"), f = "__lodash_hash_undefined__"; b.exports = d }, { "./_nativeCreate": 195 }], 171: [function (a, b, c) { function d(a) { var b = a.length, c = a.constructor(b); return b && "string" == typeof a[0] && f.call(a, "index") && (c.index = a.index, c.input = a.input), c } var e = Object.prototype, f = e.hasOwnProperty; b.exports = d }, {}], 172: [function (a, b, c) { function d(a, b, c, d) { var E = a.constructor; switch (b) { case t: return e(a); case l: case m: return new E(+a); case u: return f(a, d); case v: case w: case x: case y: case z: case A: case B: case C: case D: return k(a, d); case n: return g(a, d, c); case o: case r: return new E(a); case p: return h(a); case q: return i(a, d, c); case s: return j(a) } } var e = a("./_cloneArrayBuffer"), f = a("./_cloneDataView"), g = a("./_cloneMap"), h = a("./_cloneRegExp"), i = a("./_cloneSet"), j = a("./_cloneSymbol"), k = a("./_cloneTypedArray"), l = "[object Boolean]", m = "[object Date]", n = "[object Map]", o = "[object Number]", p = "[object RegExp]", q = "[object Set]", r = "[object String]", s = "[object Symbol]", t = "[object ArrayBuffer]", u = "[object DataView]", v = "[object Float32Array]", w = "[object Float64Array]", x = "[object Int8Array]", y = "[object Int16Array]", z = "[object Int32Array]", A = "[object Uint8Array]", B = "[object Uint8ClampedArray]", C = "[object Uint16Array]", D = "[object Uint32Array]"; b.exports = d }, { "./_cloneArrayBuffer": 130, "./_cloneDataView": 132, "./_cloneMap": 133, "./_cloneRegExp": 134, "./_cloneSet": 135, "./_cloneSymbol": 136, "./_cloneTypedArray": 137 }], 173: [function (a, b, c) { function d(a) { return "function" != typeof a.constructor || g(a) ? {} : e(f(a)) } var e = a("./_baseCreate"), f = a("./_getPrototype"), g = a("./_isPrototype"); b.exports = d }, { "./_baseCreate": 88, "./_getPrototype": 159, "./_isPrototype": 180 }], 174: [function (a, b, c) { function d(a) { return g(a) || f(a) || !!(h && a && a[h]) } var e = a("./_Symbol"), f = a("./isArguments"), g = a("./isArray"), h = e ? e.isConcatSpreadable : void 0; b.exports = d }, { "./_Symbol": 68, "./isArguments": 228, "./isArray": 229 }], 175: [function (a, b, c) { function d(a, b) { return !!(b = null == b ? e : b) && ("number" == typeof a || f.test(a)) && a > -1 && a % 1 == 0 && a < b } var e = 9007199254740991, f = /^(?:0|[1-9]\d*)$/; b.exports = d }, {}], 176: [function (a, b, c) { function d(a, b, c) { if (!h(c)) return !1; var d = typeof b; return !!("number" == d ? f(c) && g(b, c.length) : "string" == d && b in c) && e(c[b], a) } var e = a("./eq"), f = a("./isArrayLike"), g = a("./_isIndex"), h = a("./isObject"); b.exports = d }, { "./_isIndex": 175, "./eq": 220, "./isArrayLike": 230, "./isObject": 235 }], 177: [function (a, b, c) { function d(a, b) { if (e(a)) return !1; var c = typeof a; return !("number" != c && "symbol" != c && "boolean" != c && null != a && !f(a)) || (h.test(a) || !g.test(a) || null != b && a in Object(b)) } var e = a("./isArray"), f = a("./isSymbol"), g = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, h = /^\w*$/; b.exports = d }, { "./isArray": 229, "./isSymbol": 239 }], 178: [function (a, b, c) { function d(a) { var b = typeof a; return "string" == b || "number" == b || "symbol" == b || "boolean" == b ? "__proto__" !== a : null === a } b.exports = d }, {}], 179: [function (a, b, c) { function d(a) { return !!f && f in a } var e = a("./_coreJsData"), f = function () { var a = /[^.]+$/.exec(e && e.keys && e.keys.IE_PROTO || ""); return a ? "Symbol(src)_1." + a : "" }(); b.exports = d }, { "./_coreJsData": 142 }], 180: [function (a, b, c) { function d(a) { var b = a && a.constructor; return a === ("function" == typeof b && b.prototype || e) } var e = Object.prototype; b.exports = d }, {}], 181: [function (a, b, c) { function d(a) { return a === a && !e(a) } var e = a("./isObject"); b.exports = d }, { "./isObject": 235 }], 182: [function (a, b, c) { function d() { this.__data__ = [], this.size = 0 } b.exports = d }, {}], 183: [function (a, b, c) { function d(a) { var b = this.__data__, c = e(b, a); return !(c < 0) && (c == b.length - 1 ? b.pop() : g.call(b, c, 1), --this.size, !0) } var e = a("./_assocIndexOf"), f = Array.prototype, g = f.splice; b.exports = d }, { "./_assocIndexOf": 83 }], 184: [function (a, b, c) { function d(a) { var b = this.__data__, c = e(b, a); return c < 0 ? void 0 : b[c][1] } var e = a("./_assocIndexOf"); b.exports = d }, { "./_assocIndexOf": 83 }], 185: [function (a, b, c) { function d(a) { return e(this.__data__, a) > -1 } var e = a("./_assocIndexOf"); b.exports = d }, { "./_assocIndexOf": 83 }], 186: [function (a, b, c) { function d(a, b) { var c = this.__data__, d = e(c, a); return d < 0 ? (++this.size, c.push([a, b])) : c[d][1] = b, this } var e = a("./_assocIndexOf"); b.exports = d }, { "./_assocIndexOf": 83 }], 187: [function (a, b, c) { function d() { this.size = 0, this.__data__ = { hash: new e, map: new(g || f), string: new e } } var e = a("./_Hash"), f = a("./_ListCache"), g = a("./_Map"); b.exports = d }, { "./_Hash": 60, "./_ListCache": 61, "./_Map": 62 }], 188: [function (a, b, c) { function d(a) { var b = e(this, a).delete(a); return this.size -= b ? 1 : 0, b } var e = a("./_getMapData"); b.exports = d }, { "./_getMapData": 156 }], 189: [function (a, b, c) { function d(a) { return e(this, a).get(a) } var e = a("./_getMapData"); b.exports = d }, { "./_getMapData": 156 }], 190: [function (a, b, c) { function d(a) { return e(this, a).has(a) } var e = a("./_getMapData"); b.exports = d }, { "./_getMapData": 156 }], 191: [function (a, b, c) { function d(a, b) { var c = e(this, a), d = c.size; return c.set(a, b), this.size += c.size == d ? 0 : 1, this } var e = a("./_getMapData"); b.exports = d }, { "./_getMapData": 156 }], 192: [function (a, b, c) { function d(a) { var b = -1, c = Array(a.size); return a.forEach(function (a, d) { c[++b] = [d, a] }), c } b.exports = d }, {}], 193: [function (a, b, c) { function d(a, b) { return function (c) { return null != c && (c[a] === b && (void 0 !== b || a in Object(c))) } } b.exports = d }, {}], 194: [function (a, b, c) { function d(a) { var b = e(a, function (a) { return c.size === f && c.clear(), a }), c = b.cache; return b } var e = a("./memoize"), f = 500; b.exports = d }, { "./memoize": 245 }], 195: [function (a, b, c) { var d = a("./_getNative"), e = d(Object, "create"); b.exports = e }, { "./_getNative": 158 }], 196: [function (a, b, c) { var d = a("./_overArg"), e = d(Object.keys, Object); b.exports = e }, { "./_overArg": 200 }], 197: [function (a, b, c) { function d(a) { var b = []; if (null != a) for (var c in Object(a)) b.push(c); return b } b.exports = d }, {}], 198: [function (a, b, c) { var d = a("./_freeGlobal"), e = "object" == typeof c && c && !c.nodeType && c, f = e && "object" == typeof b && b && !b.nodeType && b, g = f && f.exports === e, h = g && d.process, i = function () { try { return h && h.binding && h.binding("util") } catch (a) {} }(); b.exports = i }, { "./_freeGlobal": 153 }], 199: [function (a, b, c) { function d(a) { return f.call(a) } var e = Object.prototype, f = e.toString; b.exports = d }, {}], 200: [function (a, b, c) { function d(a, b) { return function (c) { return a(b(c)) } } b.exports = d }, {}], 201: [function (a, b, c) { function d(a, b, c) { return b = f(void 0 === b ? a.length - 1 : b, 0), function () { for (var d = arguments, g = -1, h = f(d.length - b, 0), i = Array(h); ++g < h;) i[g] = d[b + g]; g = -1; for (var j = Array(b + 1); ++g < b;) j[g] = d[g]; return j[b] = c(i), e(a, this, j) } } var e = a("./_apply"), f = Math.max; b.exports = d }, { "./_apply": 73 }], 202: [function (a, b, c) { function d(a, b) { return b.length < 2 ? a : e(a, f(b, 0, -1)) } var e = a("./_baseGet"), f = a("./_baseSlice"); b.exports = d }, { "./_baseGet": 94, "./_baseSlice": 121 }], 203: [function (a, b, c) { var d = a("./_freeGlobal"), e = "object" == typeof self && self && self.Object === Object && self, f = d || e || Function("return this")(); b.exports = f }, { "./_freeGlobal": 153 }], 204: [function (a, b, c) { function d(a) { return this.__data__.set(a, e), this } var e = "__lodash_hash_undefined__"; b.exports = d }, {}], 205: [function (a, b, c) { function d(a) { return this.__data__.has(a) } b.exports = d }, {}], 206: [function (a, b, c) { function d(a) { var b = -1, c = Array(a.size); return a.forEach(function (a) { c[++b] = a }), c } b.exports = d }, {}], 207: [function (a, b, c) { var d = a("./_baseSetToString"), e = a("./_shortOut"), f = e(d); b.exports = f }, { "./_baseSetToString": 120, "./_shortOut": 208 }], 208: [function (a, b, c) { function d(a) { var b = 0, c = 0; return function () { var d = g(), h = f - (d - c); if (c = d, h > 0) { if (++b >= e) return arguments[0] } else b = 0; return a.apply(void 0, arguments) } } var e = 800, f = 16, g = Date.now; b.exports = d }, {}], 209: [function (a, b, c) { function d() { this.__data__ = new e, this.size = 0 } var e = a("./_ListCache"); b.exports = d }, { "./_ListCache": 61 }], 210: [function (a, b, c) { function d(a) { var b = this.__data__, c = b.delete(a); return this.size = b.size, c } b.exports = d }, {}], 211: [function (a, b, c) { function d(a) { return this.__data__.get(a) } b.exports = d }, {}], 212: [function (a, b, c) { function d(a) { return this.__data__.has(a) } b.exports = d }, {}], 213: [function (a, b, c) { function d(a, b) { var c = this.__data__; if (c instanceof e) { var d = c.__data__; if (!f || d.length < h - 1) return d.push([a, b]), this.size = ++c.size, this; c = this.__data__ = new g(d) } return c.set(a, b), this.size = c.size, this } var e = a("./_ListCache"), f = a("./_Map"), g = a("./_MapCache"), h = 200; b.exports = d }, { "./_ListCache": 61, "./_Map": 62, "./_MapCache": 63 }], 214: [function (a, b, c) { function d(a, b, c) { for (var d = c - 1, e = a.length; ++d < e;) if (a[d] === b) return d; return -1 } b.exports = d }, {}], 215: [function (a, b, c) { var d = a("./_memoizeCapped"), e = /^\./, f = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g, g = /\\(\\)?/g, h = d(function (a) { var b = []; return e.test(a) && b.push(""), a.replace(f, function (a, c, d, e) { b.push(d ? e.replace(g, "$1") : c || a) }), b }); b.exports = h }, { "./_memoizeCapped": 194 }], 216: [function (a, b, c) { function d(a) { if ("string" == typeof a || e(a)) return a; var b = a + ""; return "0" == b && 1 / a == -f ? "-0" : b } var e = a("./isSymbol"), f = 1 / 0; b.exports = d }, { "./isSymbol": 239 }], 217: [function (a, b, c) { function d(a) { if (null != a) { try { return f.call(a) } catch (a) {} try { return a + "" } catch (a) {} } return "" } var e = Function.prototype, f = e.toString; b.exports = d }, {}], 218: [function (a, b, c) { function d(a) { return function () { return a } } b.exports = d }, {}], 219: [function (a, b, c) { function d(a, b, c) { function d(b) { var c = s, d = t; return s = t = void 0, y = b, v = a.apply(d, c) } function k(a) { return y = a, w = setTimeout(n, b), z ? d(a) : v } function l(a) { var c = a - x, d = a - y, e = b - c; return A ? j(e, u - d) : e } function m(a) { var c = a - x, d = a - y; return void 0 === x || c >= b || c < 0 || A && d >= u } function n() { var a = f(); if (m(a)) return o(a); w = setTimeout(n, l(a)) } function o(a) { return w = void 0, B && s ? d(a) : (s = t = void 0, v) } function p() { void 0 !== w && clearTimeout(w), y = 0, s = x = t = w = void 0 } function q() { return void 0 === w ? v : o(f()) } function r() { var a = f(), c = m(a); if (s = arguments, t = this, x = a, c) { if (void 0 === w) return k(x); if (A) return w = setTimeout(n, b), d(x) } return void 0 === w && (w = setTimeout(n, b)), v } var s, t, u, v, w, x, y = 0, z = !1, A = !1, B = !0; if ("function" != typeof a) throw new TypeError(h); return b = g(b) || 0, e(c) && (z = !!c.leading, A = "maxWait" in c, u = A ? i(g(c.maxWait) || 0, b) : u, B = "trailing" in c ? !!c.trailing : B), r.cancel = p, r.flush = q, r } var e = a("./isObject"), f = a("./now"), g = a("./toNumber"), h = "Expected a function", i = Math.max, j = Math.min; b.exports = d }, { "./isObject": 235, "./now": 247, "./toNumber": 257 }], 220: [function (a, b, c) { function d(a, b) { return a === b || a !== a && b !== b } b.exports = d }, {}], 221: [function (a, b, c) { var d = a("./_createFind"), e = a("./findIndex"), f = d(e); b.exports = f }, { "./_createFind": 146, "./findIndex": 222 }], 222: [function (a, b, c) { function d(a, b, c) { var d = null == a ? 0 : a.length; if (!d) return -1; var i = null == c ? 0 : g(c); return i < 0 && (i = h(d + i, 0)), e(a, f(b, 3), i) } var e = a("./_baseFindIndex"), f = a("./_baseIteratee"), g = a("./toInteger"), h = Math.max; b.exports = d }, { "./_baseFindIndex": 90, "./_baseIteratee": 106, "./toInteger": 256 }], 223: [function (a, b, c) { function d(a) { return (null == a ? 0 : a.length) ? e(a, 1) : [] } var e = a("./_baseFlatten"); b.exports = d }, { "./_baseFlatten": 91 }], 224: [function (a, b, c) { function d(a, b, c) { var d = null == a ? void 0 : e(a, b); return void 0 === d ? c : d } var e = a("./_baseGet"); b.exports = d }, { "./_baseGet": 94 }], 225: [function (a, b, c) { function d(a, b) { return null != a && f(a, b, e) } var e = a("./_baseHasIn"), f = a("./_hasPath"); b.exports = d }, { "./_baseHasIn": 97, "./_hasPath": 165 }], 226: [function (a, b, c) { function d(a) { return a } b.exports = d }, {}], 227: [function (a, b, c) { function d(a, b, c, d) { a = f(a) ? a : i(a), c = c && !d ? h(c) : 0; var k = a.length; return c < 0 && (c = j(k + c, 0)), g(a) ? c <= k && a.indexOf(b, c) > -1 : !!k && e(a, b, c) > -1 } var e = a("./_baseIndexOf"), f = a("./isArrayLike"), g = a("./isString"), h = a("./toInteger"), i = a("./values"), j = Math.max; b.exports = d }, { "./_baseIndexOf": 98, "./isArrayLike": 230, "./isString": 238, "./toInteger": 256, "./values": 260 }], 228: [function (a, b, c) { var d = a("./_baseIsArguments"), e = a("./isObjectLike"), f = Object.prototype, g = f.hasOwnProperty, h = f.propertyIsEnumerable, i = d(function () { return arguments }()) ? d : function (a) { return e(a) && g.call(a, "callee") && !h.call(a, "callee") }; b.exports = i }, { "./_baseIsArguments": 99, "./isObjectLike": 236 }], 229: [function (a, b, c) { var d = Array.isArray; b.exports = d }, {}], 230: [function (a, b, c) { function d(a) { return null != a && f(a.length) && !e(a) } var e = a("./isFunction"), f = a("./isLength"); b.exports = d }, { "./isFunction": 233, "./isLength": 234 }], 231: [function (a, b, c) { function d(a) { return f(a) && e(a) } var e = a("./isArrayLike"), f = a("./isObjectLike"); b.exports = d }, { "./isArrayLike": 230, "./isObjectLike": 236 }], 232: [function (a, b, c) { var d = a("./_root"), e = a("./stubFalse"), f = "object" == typeof c && c && !c.nodeType && c, g = f && "object" == typeof b && b && !b.nodeType && b, h = g && g.exports === f, i = h ? d.Buffer : void 0, j = i ? i.isBuffer : void 0, k = j || e; b.exports = k }, { "./_root": 203, "./stubFalse": 253 }], 233: [function (a, b, c) { function d(a) { if (!f(a)) return !1; var b = e(a); return b == h || b == i || b == g || b == j } var e = a("./_baseGetTag"), f = a("./isObject"), g = "[object AsyncFunction]", h = "[object Function]", i = "[object GeneratorFunction]", j = "[object Proxy]"; b.exports = d }, { "./_baseGetTag": 96, "./isObject": 235 }], 234: [function (a, b, c) { function d(a) { return "number" == typeof a && a > -1 && a % 1 == 0 && a <= e } var e = 9007199254740991; b.exports = d }, {}], 235: [function (a, b, c) { function d(a) { var b = typeof a; return null != a && ("object" == b || "function" == b) } b.exports = d }, {}], 236: [function (a, b, c) { function d(a) { return null != a && "object" == typeof a } b.exports = d }, {}], 237: [function (a, b, c) { function d(a) { if (!g(a) || e(a) != h) return !1; var b = f(a); if (null === b) return !0; var c = l.call(b, "constructor") && b.constructor; return "function" == typeof c && c instanceof c && k.call(c) == m } var e = a("./_baseGetTag"), f = a("./_getPrototype"), g = a("./isObjectLike"), h = "[object Object]", i = Function.prototype, j = Object.prototype, k = i.toString, l = j.hasOwnProperty, m = k.call(Object); b.exports = d }, { "./_baseGetTag": 96, "./_getPrototype": 159, "./isObjectLike": 236 }], 238: [function (a, b, c) { function d(a) { return "string" == typeof a || !f(a) && g(a) && e(a) == h } var e = a("./_baseGetTag"), f = a("./isArray"), g = a("./isObjectLike"), h = "[object String]"; b.exports = d }, { "./_baseGetTag": 96, "./isArray": 229, "./isObjectLike": 236 }], 239: [function (a, b, c) { function d(a) { return "symbol" == typeof a || f(a) && e(a) == g } var e = a("./_baseGetTag"), f = a("./isObjectLike"), g = "[object Symbol]"; b.exports = d }, { "./_baseGetTag": 96, "./isObjectLike": 236 }], 240: [function (a, b, c) { var d = a("./_baseIsTypedArray"), e = a("./_baseUnary"), f = a("./_nodeUtil"), g = f && f.isTypedArray, h = g ? e(g) : d; b.exports = h }, { "./_baseIsTypedArray": 105, "./_baseUnary": 125, "./_nodeUtil": 198 }], 241: [function (a, b, c) { function d(a) { return g(a) ? e(a) : f(a) } var e = a("./_arrayLikeKeys"), f = a("./_baseKeys"), g = a("./isArrayLike"); b.exports = d }, { "./_arrayLikeKeys": 76, "./_baseKeys": 107, "./isArrayLike": 230 }], 242: [function (a, b, c) { function d(a) { return g(a) ? e(a, !0) : f(a) } var e = a("./_arrayLikeKeys"), f = a("./_baseKeysIn"), g = a("./isArrayLike"); b.exports = d }, { "./_arrayLikeKeys": 76, "./_baseKeysIn": 108, "./isArrayLike": 230 }], 243: [function (a, b, c) { function d(a) { var b = null == a ? 0 : a.length; return b ? a[b - 1] : void 0 } b.exports = d }, {}], 244: [function (a, b, c) { function d(a, b) { return (h(a) ? e : g)(a, f(b, 3)) } var e = a("./_arrayMap"), f = a("./_baseIteratee"), g = a("./_baseMap"), h = a("./isArray"); b.exports = d }, { "./_arrayMap": 77, "./_baseIteratee": 106, "./_baseMap": 109, "./isArray": 229 }], 245: [function (a, b, c) { function d(a, b) { if ("function" != typeof a || null != b && "function" != typeof b) throw new TypeError(f); var c = function () { var d = arguments, e = b ? b.apply(this, d) : d[0], f = c.cache; if (f.has(e)) return f.get(e); var g = a.apply(this, d); return c.cache = f.set(e, g) || f, g }; return c.cache = new(d.Cache || e), c } var e = a("./_MapCache"), f = "Expected a function"; d.Cache = e, b.exports = d }, { "./_MapCache": 63 }], 246: [function (a, b, c) { var d = a("./_baseMerge"), e = a("./_createAssigner"), f = e(function (a, b, c) { d(a, b, c) }); b.exports = f }, { "./_baseMerge": 112, "./_createAssigner": 143 }], 247: [function (a, b, c) { var d = a("./_root"), e = function () { return d.Date.now() }; b.exports = e }, { "./_root": 203 }], 248: [function (a, b, c) { var d = a("./_arrayMap"), e = a("./_baseClone"), f = a("./_baseUnset"), g = a("./_castPath"), h = a("./_copyObject"), i = a("./_customOmitClone"), j = a("./_flatRest"), k = a("./_getAllKeysIn"), l = j(function (a, b) { var c = {}; if (null == a) return c; var j = !1; b = d(b, function (b) { return b = g(b, a), j || (j = b.length > 1), b }), h(a, k(a), c), j && (c = e(c, 7, i)); for (var l = b.length; l--;) f(c, b[l]); return c }); b.exports = l }, { "./_arrayMap": 77, "./_baseClone": 87, "./_baseUnset": 126, "./_castPath": 129, "./_copyObject": 139, "./_customOmitClone": 147, "./_flatRest": 152, "./_getAllKeysIn": 155 }], 249: [function (a, b, c) { var d = a("./_basePick"), e = a("./_flatRest"), f = e(function (a, b) { return null == a ? {} : d(a, b) }); b.exports = f }, { "./_basePick": 114, "./_flatRest": 152 }], 250: [function (a, b, c) { function d(a) { return g(a) ? e(h(a)) : f(a) } var e = a("./_baseProperty"), f = a("./_basePropertyDeep"), g = a("./_isKey"), h = a("./_toKey"); b.exports = d }, { "./_baseProperty": 116, "./_basePropertyDeep": 117, "./_isKey": 177, "./_toKey": 216 }], 251: [function (a, b, c) { function d(a, b, c) { var d = h(a) ? e : g; return c && i(a, b, c) && (b = void 0), d(a, f(b, 3)) } var e = a("./_arraySome"), f = a("./_baseIteratee"), g = a("./_baseSome"), h = a("./isArray"), i = a("./_isIterateeCall"); b.exports = d }, { "./_arraySome": 80, "./_baseIteratee": 106, "./_baseSome": 122, "./_isIterateeCall": 176, "./isArray": 229 }], 252: [function (a, b, c) { function d() { return [] } b.exports = d }, {}], 253: [function (a, b, c) { function d() { return !1 } b.exports = d }, {}], 254: [function (a, b, c) { function d(a, b, c) { var d = !0, h = !0; if ("function" != typeof a) throw new TypeError(g); return f(c) && (d = "leading" in c ? !!c.leading : d, h = "trailing" in c ? !!c.trailing : h), e(a, b, { leading: d, maxWait: b, trailing: h }) } var e = a("./debounce"), f = a("./isObject"), g = "Expected a function"; b.exports = d }, { "./debounce": 219, "./isObject": 235 }], 255: [function (a, b, c) { function d(a) { if (!a) return 0 === a ? a : 0; if ((a = e(a)) === f || a === -f) { return (a < 0 ? -1 : 1) * g } return a === a ? a : 0 } var e = a("./toNumber"), f = 1 / 0, g = 1.7976931348623157e308; b.exports = d }, { "./toNumber": 257 }], 256: [function (a, b, c) { function d(a) { var b = e(a), c = b % 1; return b === b ? c ? b - c : b : 0 } var e = a("./toFinite"); b.exports = d }, { "./toFinite": 255 }], 257: [function (a, b, c) { function d(a) { if ("number" == typeof a) return a; if (f(a)) return g; if (e(a)) { var b = "function" == typeof a.valueOf ? a.valueOf() : a; a = e(b) ? b + "" : b } if ("string" != typeof a) return 0 === a ? a : +a; a = a.replace(h, ""); var c = j.test(a); return c || k.test(a) ? l(a.slice(2), c ? 2 : 8) : i.test(a) ? g : +a } var e = a("./isObject"), f = a("./isSymbol"), g = NaN, h = /^\s+|\s+$/g, i = /^[-+]0x[0-9a-f]+$/i, j = /^0b[01]+$/i, k = /^0o[0-7]+$/i, l = parseInt; b.exports = d }, { "./isObject": 235, "./isSymbol": 239 }], 258: [function (a, b, c) { function d(a) { return e(a, f(a)) } var e = a("./_copyObject"), f = a("./keysIn"); b.exports = d }, { "./_copyObject": 139, "./keysIn": 242 }], 259: [function (a, b, c) { function d(a) { return null == a ? "" : e(a) } var e = a("./_baseToString"); b.exports = d }, { "./_baseToString": 124 }], 260: [function (a, b, c) { function d(a) { return null == a ? [] : e(a, f(a)) } var e = a("./_baseValues"), f = a("./keys"); b.exports = d }, { "./_baseValues": 127, "./keys": 241 }], 261: [function (b, c, d) { (function (b) { ! function (e) { function f(a) { throw new RangeError(I[a]) } function g(a, b) { for (var c = a.length, d = []; c--;) d[c] = b(a[c]); return d } function h(a, b) { var c = a.split("@"), d = ""; return c.length > 1 && (d = c[0] + "@", a = c[1]), a = a.replace(H, "."), d + g(a.split("."), b).join(".") } function i(a) { for (var b, c, d = [], e = 0, f = a.length; e < f;) b = a.charCodeAt(e++), b >= 55296 && b <= 56319 && e < f ? (c = a.charCodeAt(e++), 56320 == (64512 & c) ? d.push(((1023 & b) << 10) + (1023 & c) + 65536) : (d.push(b), e--)) : d.push(b); return d } function j(a) { return g(a, function (a) { var b = ""; return a > 65535 && (a -= 65536, b += L(a >>> 10 & 1023 | 55296), a = 56320 | 1023 & a), b += L(a) }).join("") } function k(a) { return a - 48 < 10 ? a - 22 : a - 65 < 26 ? a - 65 : a - 97 < 26 ? a - 97 : x } function l(a, b) { return a + 22 + 75 * (a < 26) - ((0 != b) << 5) } function m(a, b, c) { var d = 0; for (a = c ? K(a / B) : a >> 1, a += K(a / b); a > J * z >> 1; d += x) a = K(a / J); return K(d + (J + 1) * a / (a + A)) } function n(a) { var b, c, d, e, g, h, i, l, n, o, p = [], q = a.length, r = 0, s = D, t = C; for (c = a.lastIndexOf(E), c < 0 && (c = 0), d = 0; d < c; ++d) a.charCodeAt(d) >= 128 && f("not-basic"), p.push(a.charCodeAt(d)); for (e = c > 0 ? c + 1 : 0; e < q;) { for (g = r, h = 1, i = x; e >= q && f("invalid-input"), l = k(a.charCodeAt(e++)), (l >= x || l > K((w - r) / h)) && f("overflow"), r += l * h, n = i <= t ? y : i >= t + z ? z : i - t, !(l < n); i += x) o = x - n, h > K(w / o) && f("overflow"), h *= o; b = p.length + 1, t = m(r - g, b, 0 == g), K(r / b) > w - s && f("overflow"), s += K(r / b), r %= b, p.splice(r++, 0, s) } return j(p) } function o(a) { var b, c, d, e, g, h, j, k, n, o, p, q, r, s, t, u = []; for (a = i(a), q = a.length, b = D, c = 0, g = C, h = 0; h < q; ++h)(p = a[h]) < 128 && u.push(L(p)); for (d = e = u.length, e && u.push(E); d < q;) { for (j = w, h = 0; h < q; ++h)(p = a[h]) >= b && p < j && (j = p); for (r = d + 1, j - b > K((w - c) / r) && f("overflow"), c += (j - b) * r, b = j, h = 0; h < q; ++h) if (p = a[h], p < b && ++c > w && f("overflow"), p == b) { for (k = c, n = x; o = n <= g ? y : n >= g + z ? z : n - g, !(k < o); n += x) t = k - o, s = x - o, u.push(L(l(o + t % s, 0))), k = K(t / s); u.push(L(l(k, 0))), g = m(c, r, d == e), c = 0, ++d }++c, ++b } return u.join("") } function p(a) { return h(a, function (a) { return F.test(a) ? n(a.slice(4).toLowerCase()) : a }) } function q(a) { return h(a, function (a) { return G.test(a) ? "xn--" + o(a) : a }) } var r = "object" == typeof d && d && !d.nodeType && d, s = "object" == typeof c && c && !c.nodeType && c, t = "object" == typeof b && b; t.global !== t && t.window !== t && t.self !== t || (e = t); var u, v, w = 2147483647, x = 36, y = 1, z = 26, A = 38, B = 700, C = 72, D = 128, E = "-", F = /^xn--/, G = /[^\x20-\x7E]/, H = /[\x2E\u3002\uFF0E\uFF61]/g, I = { overflow: "Overflow: input needs wider integers to process", "not-basic": "Illegal input >= 0x80 (not a basic code point)", "invalid-input": "Invalid input" }, J = x - y, K = Math.floor, L = String.fromCharCode; if (u = { version: "1.4.1", ucs2: { decode: i, encode: j }, decode: n, encode: o, toASCII: q, toUnicode: p }, "function" == typeof a && "object" == typeof a.amd && a.amd) a("punycode", function () { return u }); else if (r && s) if (c.exports == r) s.exports = u; else for (v in u) u.hasOwnProperty(v) && (r[v] = u[v]); else e.punycode = u }(this) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 262: [function (a, b, c) { "use strict"; function d(a, b) { return Object.prototype.hasOwnProperty.call(a, b) } b.exports = function (a, b, c, f) { b = b || "&", c = c || "="; var g = {}; if ("string" != typeof a || 0 === a.length) return g; var h = /\+/g; a = a.split(b); var i = 1e3; f && "number" == typeof f.maxKeys && (i = f.maxKeys); var j = a.length; i > 0 && j > i && (j = i); for (var k = 0; k < j; ++k) { var l, m, n, o, p = a[k].replace(h, "%20"), q = p.indexOf(c); q >= 0 ? (l = p.substr(0, q), m = p.substr(q + 1)) : (l = p, m = ""), n = decodeURIComponent(l), o = decodeURIComponent(m), d(g, n) ? e(g[n]) ? g[n].push(o) : g[n] = [g[n], o] : g[n] = o } return g }; var e = Array.isArray || function (a) { return "[object Array]" === Object.prototype.toString.call(a) } }, {}], 263: [function (a, b, c) { "use strict"; function d(a, b) { if (a.map) return a.map(b); for (var c = [], d = 0; d < a.length; d++) c.push(b(a[d], d)); return c } var e = function (a) { switch (typeof a) { case "string": return a; case "boolean": return a ? "true" : "false"; case "number": return isFinite(a) ? a : ""; default: return "" } }; b.exports = function (a, b, c, h) { return b = b || "&", c = c || "=", null === a && (a = void 0), "object" == typeof a ? d(g(a), function (g) { var h = encodeURIComponent(e(g)) + c; return f(a[g]) ? d(a[g], function (a) { return h + encodeURIComponent(e(a)) }).join(b) : h + encodeURIComponent(e(a[g])) }).join(b) : h ? encodeURIComponent(e(h)) + c + encodeURIComponent(e(a)) : "" }; var f = Array.isArray || function (a) { return "[object Array]" === Object.prototype.toString.call(a) }, g = Object.keys || function (a) { var b = []; for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && b.push(c); return b } }, {}], 264: [function (a, b, c) { "use strict"; c.decode = c.parse = a("./decode"), c.encode = c.stringify = a("./encode") }, { "./decode": 262, "./encode": 263 }], 265: [function (a, b, c) { function d(a) { var b; if ("SELECT" === a.nodeName) a.focus(), b = a.value; else if ("INPUT" === a.nodeName || "TEXTAREA" === a.nodeName) { var c = a.hasAttribute("readonly"); c || a.setAttribute("readonly", ""), a.select(), a.setSelectionRange(0, a.value.length), c || a.removeAttribute("readonly"), b = a.value } else { a.hasAttribute("contenteditable") && a.focus(); var d = window.getSelection(), e = document.createRange(); e.selectNodeContents(a), d.removeAllRanges(), d.addRange(e), b = d.toString() } return b } b.exports = d }, {}], 266: [function (a, b, c) { function d() {} d.prototype = { on: function (a, b, c) { var d = this.e || (this.e = {}); return (d[a] || (d[a] = [])).push({ fn: b, ctx: c }), this }, once: function (a, b, c) { function d() { e.off(a, d), b.apply(c, arguments) } var e = this; return d._ = b, this.on(a, d, c) }, emit: function (a) { var b = [].slice.call(arguments, 1), c = ((this.e || (this.e = {}))[a] || []).slice(), d = 0, e = c.length; for (d; d < e; d++) c[d].fn.apply(c[d].ctx, b); return this }, off: function (a, b) { var c = this.e || (this.e = {}), d = c[a], e = []; if (d && b) for (var f = 0, g = d.length; f < g; f++) d[f].fn !== b && d[f].fn._ !== b && e.push(d[f]); return e.length ? c[a] = e : delete c[a], this } }, b.exports = d }, {}], 267: [function (a, b, c) { "use strict"; function d() { this.protocol = null, this.slashes = null, this.auth = null, this.host = null, this.port = null, this.hostname = null, this.hash = null, this.search = null, this.query = null, this.pathname = null, this.path = null, this.href = null } function e(a, b, c) { if (a && j.isObject(a) && a instanceof d) return a; var e = new d; return e.parse(a, b, c), e } function f(a) { return j.isString(a) && (a = e(a)), a instanceof d ? a.format() : d.prototype.format.call(a) } function g(a, b) { return e(a, !1, !0).resolve(b) } function h(a, b) { return a ? e(a, !1, !0).resolveObject(b) : b } var i = a("punycode"), j = a("./util"); c.parse = e, c.resolve = g, c.resolveObject = h, c.format = f, c.Url = d; var k = /^([a-z0-9.+-]+:)/i, l = /:[0-9]*$/, m = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, n = ["<", ">", '"', "`", " ", "\r", "\n", "\t"], o = ["{", "}", "|", "\\", "^", "`"].concat(n), p = ["'"].concat(o), q = ["%", "/", "?", ";", "#"].concat(p), r = ["/", "?", "#"], s = /^[+a-z0-9A-Z_-]{0,63}$/, t = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, u = { javascript: !0, "javascript:": !0 }, v = { javascript: !0, "javascript:": !0 }, w = { http: !0, https: !0, ftp: !0, gopher: !0, file: !0, "http:": !0, "https:": !0, "ftp:": !0, "gopher:": !0, "file:": !0 }, x = a("querystring"); d.prototype.parse = function (a, b, c) { if (!j.isString(a)) throw new TypeError("Parameter 'url' must be a string, not " + typeof a); var d = a.indexOf("?"), e = -1 !== d && d < a.indexOf("#") ? "?" : "#", f = a.split(e), g = /\\/g; f[0] = f[0].replace(g, "/"), a = f.join(e); var h = a; if (h = h.trim(), !c && 1 === a.split("#").length) { var l = m.exec(h); if (l) return this.path = h, this.href = h, this.pathname = l[1], l[2] ? (this.search = l[2], this.query = b ? x.parse(this.search.substr(1)) : this.search.substr(1)) : b && (this.search = "", this.query = {}), this } var n = k.exec(h); if (n) { n = n[0]; var o = n.toLowerCase(); this.protocol = o, h = h.substr(n.length) } if (c || n || h.match(/^\/\/[^@\/]+@[^@\/]+/)) { var y = "//" === h.substr(0, 2); !y || n && v[n] || (h = h.substr(2), this.slashes = !0) } if (!v[n] && (y || n && !w[n])) { for (var z = -1, A = 0; A < r.length; A++) { var B = h.indexOf(r[A]); - 1 !== B && (-1 === z || B < z) && (z = B) } var C, D; D = -1 === z ? h.lastIndexOf("@") : h.lastIndexOf("@", z), -1 !== D && (C = h.slice(0, D), h = h.slice(D + 1), this.auth = decodeURIComponent(C)), z = -1; for (var A = 0; A < q.length; A++) { var B = h.indexOf(q[A]); - 1 !== B && (-1 === z || B < z) && (z = B) } - 1 === z && (z = h.length), this.host = h.slice(0, z), h = h.slice(z), this.parseHost(), this.hostname = this.hostname || ""; var E = "[" === this.hostname[0] && "]" === this.hostname[this.hostname.length - 1]; if (!E) for (var F = this.hostname.split(/\./), A = 0, G = F.length; A < G; A++) { var H = F[A]; if (H && !H.match(s)) { for (var I = "", J = 0, K = H.length; J < K; J++) H.charCodeAt(J) > 127 ? I += "x" : I += H[J]; if (!I.match(s)) { var L = F.slice(0, A), M = F.slice(A + 1), N = H.match(t); N && (L.push(N[1]), M.unshift(N[2])), M.length && (h = "/" + M.join(".") + h), this.hostname = L.join("."); break } } } this.hostname.length > 255 ? this.hostname = "" : this.hostname = this.hostname.toLowerCase(), E || (this.hostname = i.toASCII(this.hostname)); var O = this.port ? ":" + this.port : "", P = this.hostname || ""; this.host = P + O, this.href += this.host, E && (this.hostname = this.hostname.substr(1, this.hostname.length - 2), "/" !== h[0] && (h = "/" + h)) } if (!u[o]) for (var A = 0, G = p.length; A < G; A++) { var Q = p[A]; if (-1 !== h.indexOf(Q)) { var R = encodeURIComponent(Q); R === Q && (R = escape(Q)), h = h.split(Q).join(R) } } var S = h.indexOf("#"); - 1 !== S && (this.hash = h.substr(S), h = h.slice(0, S)); var T = h.indexOf("?"); if (-1 !== T ? (this.search = h.substr(T), this.query = h.substr(T + 1), b && (this.query = x.parse(this.query)), h = h.slice(0, T)) : b && (this.search = "", this.query = {}), h && (this.pathname = h), w[o] && this.hostname && !this.pathname && (this.pathname = "/"), this.pathname || this.search) { var O = this.pathname || "", U = this.search || ""; this.path = O + U } return this.href = this.format(), this }, d.prototype.format = function () { var a = this.auth || ""; a && (a = encodeURIComponent(a), a = a.replace(/%3A/i, ":"), a += "@"); var b = this.protocol || "", c = this.pathname || "", d = this.hash || "", e = !1, f = ""; this.host ? e = a + this.host : this.hostname && (e = a + (-1 === this.hostname.indexOf(":") ? this.hostname : "[" + this.hostname + "]"), this.port && (e += ":" + this.port)), this.query && j.isObject(this.query) && Object.keys(this.query).length && (f = x.stringify(this.query)); var g = this.search || f && "?" + f || ""; return b && ":" !== b.substr(-1) && (b += ":"), this.slashes || (!b || w[b]) && !1 !== e ? (e = "//" + (e || ""), c && "/" !== c.charAt(0) && (c = "/" + c)) : e || (e = ""), d && "#" !== d.charAt(0) && (d = "#" + d), g && "?" !== g.charAt(0) && (g = "?" + g), c = c.replace(/[?#]/g, function (a) { return encodeURIComponent(a) }), g = g.replace("#", "%23"), b + e + c + g + d }, d.prototype.resolve = function (a) { return this.resolveObject(e(a, !1, !0)).format() }, d.prototype.resolveObject = function (a) { if (j.isString(a)) { var b = new d; b.parse(a, !1, !0), a = b } for (var c = new d, e = Object.keys(this), f = 0; f < e.length; f++) { var g = e[f]; c[g] = this[g] } if (c.hash = a.hash, "" === a.href) return c.href = c.format(), c; if (a.slashes && !a.protocol) { for (var h = Object.keys(a), i = 0; i < h.length; i++) { var k = h[i]; "protocol" !== k && (c[k] = a[k]) } return w[c.protocol] && c.hostname && !c.pathname && (c.path = c.pathname = "/"), c.href = c.format(), c } if (a.protocol && a.protocol !== c.protocol) { if (!w[a.protocol]) { for (var l = Object.keys(a), m = 0; m < l.length; m++) { var n = l[m]; c[n] = a[n] } return c.href = c.format(), c } if (c.protocol = a.protocol, a.host || v[a.protocol]) c.pathname = a.pathname; else { for (var o = (a.pathname || "").split("/"); o.length && !(a.host = o.shift());); a.host || (a.host = ""), a.hostname || (a.hostname = ""), "" !== o[0] && o.unshift(""), o.length < 2 && o.unshift(""), c.pathname = o.join("/") } if (c.search = a.search, c.query = a.query, c.host = a.host || "", c.auth = a.auth, c.hostname = a.hostname || a.host, c.port = a.port, c.pathname || c.search) { var p = c.pathname || "", q = c.search || ""; c.path = p + q } return c.slashes = c.slashes || a.slashes, c.href = c.format(), c } var r = c.pathname && "/" === c.pathname.charAt(0), s = a.host || a.pathname && "/" === a.pathname.charAt(0), t = s || r || c.host && a.pathname, u = t, x = c.pathname && c.pathname.split("/") || [], o = a.pathname && a.pathname.split("/") || [], y = c.protocol && !w[c.protocol]; if (y && (c.hostname = "", c.port = null, c.host && ("" === x[0] ? x[0] = c.host : x.unshift(c.host)), c.host = "", a.protocol && (a.hostname = null, a.port = null, a.host && ("" === o[0] ? o[0] = a.host : o.unshift(a.host)), a.host = null), t = t && ("" === o[0] || "" === x[0])), s) c.host = a.host || "" === a.host ? a.host : c.host, c.hostname = a.hostname || "" === a.hostname ? a.hostname : c.hostname, c.search = a.search, c.query = a.query, x = o; else if (o.length) x || (x = []), x.pop(), x = x.concat(o), c.search = a.search, c.query = a.query; else if (!j.isNullOrUndefined(a.search)) { if (y) { c.hostname = c.host = x.shift(); var z = !!(c.host && c.host.indexOf("@") > 0) && c.host.split("@"); z && (c.auth = z.shift(), c.host = c.hostname = z.shift()) } return c.search = a.search, c.query = a.query, j.isNull(c.pathname) && j.isNull(c.search) || (c.path = (c.pathname ? c.pathname : "") + (c.search ? c.search : "")), c.href = c.format(), c } if (!x.length) return c.pathname = null, c.search ? c.path = "/" + c.search : c.path = null, c.href = c.format(), c; for (var A = x.slice(-1)[0], B = (c.host || a.host || x.length > 1) && ("." === A || ".." === A) || "" === A, C = 0, D = x.length; D >= 0; D--) A = x[D], "." === A ? x.splice(D, 1) : ".." === A ? (x.splice(D, 1), C++) : C && (x.splice(D, 1), C--); if (!t && !u) for (; C--; C) x.unshift(".."); !t || "" === x[0] || x[0] && "/" === x[0].charAt(0) || x.unshift(""), B && "/" !== x.join("/").substr(-1) && x.push(""); var E = "" === x[0] || x[0] && "/" === x[0].charAt(0); if (y) { c.hostname = c.host = E ? "" : x.length ? x.shift() : ""; var z = !!(c.host && c.host.indexOf("@") > 0) && c.host.split("@"); z && (c.auth = z.shift(), c.host = c.hostname = z.shift()) } return t = t || c.host && x.length, t && !E && x.unshift(""), x.length ? c.pathname = x.join("/") : (c.pathname = null, c.path = null), j.isNull(c.pathname) && j.isNull(c.search) || (c.path = (c.pathname ? c.pathname : "") + (c.search ? c.search : "")), c.auth = a.auth || c.auth, c.slashes = c.slashes || a.slashes, c.href = c.format(), c }, d.prototype.parseHost = function () { var a = this.host, b = l.exec(a); b && (b = b[0], ":" !== b && (this.port = b.substr(1)), a = a.substr(0, a.length - b.length)), a && (this.hostname = a) } }, { "./util": 268, punycode: 261, querystring: 264 }], 268: [function (a, b, c) { "use strict"; b.exports = { isString: function (a) { return "string" == typeof a }, isObject: function (a) { return "object" == typeof a && null !== a }, isNull: function (a) { return null === a }, isNullOrUndefined: function (a) { return null == a } } }, {}], 269: [function (b, c, d) { (function (e) { ! function (b) { if ("object" == typeof d && void 0 !== c) c.exports = b(); else if ("function" == typeof a && a.amd) a([], b); else { var f; f = "undefined" != typeof window ? window : void 0 !== e ? e : "undefined" != typeof self ? self : this, f.videojs = b() } }(function () { var a; return function a(c, d, e) { function f(h, i) { if (!d[h]) { if (!c[h]) { var j = "function" == typeof b && b; if (!i && j) return j(h, !0); if (g) return g(h, !0); var k = new Error("Cannot find module '" + h + "'"); throw k.code = "MODULE_NOT_FOUND", k } var l = d[h] = { exports: {} }; c[h][0].call(l.exports, function (a) { var b = c[h][1][a]; return f(b || a) }, l, l.exports, a, c, d, e) } return d[h].exports } for (var g = "function" == typeof b && b, h = 0; h < e.length; h++) f(e[h]); return f }({ 1: [function (a, b, c) {}, {}], 2: [function (a, b, c) { "use strict"; var d = a("object-keys"), e = a("foreach"), f = "function" == typeof Symbol && "symbol" == typeof Symbol(), g = Object.prototype.toString, h = function (a) { return "function" == typeof a && "[object Function]" === g.call(a) }, i = Object.defineProperty && function () { var a = {}; try { Object.defineProperty(a, "x", { enumerable: !1, value: a }); for (var b in a) return !1; return a.x === a } catch (a) { return !1 } }(), j = function (a, b, c, d) { (!(b in a) || h(d) && d()) && (i ? Object.defineProperty(a, b, { configurable: !0, enumerable: !1, value: c, writable: !0 }) : a[b] = c) }, k = function (a, b) { var c = arguments.length > 2 ? arguments[2] : {}, g = d(b); f && (g = g.concat(Object.getOwnPropertySymbols(b))), e(g, function (d) { j(a, d, b[d], c[d]) }) }; k.supportsDescriptors = !!i, b.exports = k }, { foreach: 4, "object-keys": 49 }], 3: [function (a, b, c) { function d(a, b, c) { if (!h(b)) throw new TypeError("iterator must be a function"); arguments.length < 3 && (c = this), "[object Array]" === i.call(a) ? e(a, b, c) : "string" == typeof a ? f(a, b, c) : g(a, b, c) } function e(a, b, c) { for (var d = 0, e = a.length; d < e; d++) j.call(a, d) && b.call(c, a[d], d, a) } function f(a, b, c) { for (var d = 0, e = a.length; d < e; d++) b.call(c, a.charAt(d), d, a) } function g(a, b, c) { for (var d in a) j.call(a, d) && b.call(c, a[d], d, a) } var h = a("is-function"); b.exports = d; var i = Object.prototype.toString, j = Object.prototype.hasOwnProperty }, { "is-function": 9 }], 4: [function (a, b, c) { var d = Object.prototype.hasOwnProperty, e = Object.prototype.toString; b.exports = function (a, b, c) { if ("[object Function]" !== e.call(b)) throw new TypeError("iterator must be a function"); var f = a.length; if (f === +f) for (var g = 0; g < f; g++) b.call(c, a[g], g, a); else for (var h in a) d.call(a, h) && b.call(c, a[h], h, a) } }, {}], 5: [function (a, b, c) { var d = Array.prototype.slice, e = Object.prototype.toString; b.exports = function (a) { var b = this; if ("function" != typeof b || "[object Function]" !== e.call(b)) throw new TypeError("Function.prototype.bind called on incompatible " + b); for (var c, f = d.call(arguments, 1), g = function () { if (this instanceof c) { var e = b.apply(this, f.concat(d.call(arguments))); return Object(e) === e ? e : this } return b.apply(a, f.concat(d.call(arguments))) }, h = Math.max(0, b.length - f.length), i = [], j = 0; j < h; j++) i.push("$" + j); if (c = Function("binder", "return function (" + i.join(",") + "){ return binder.apply(this,arguments); }")(g), b.prototype) { var k = function () {}; k.prototype = b.prototype, c.prototype = new k, k.prototype = null } return c } }, {}], 6: [function (a, b, c) { var d = a("./implementation"); b.exports = Function.prototype.bind || d }, { "./implementation": 5 }], 7: [function (a, b, c) { (function (c) { var d, e = void 0 !== c ? c : "undefined" != typeof window ? window : {}, f = a("min-document"); "undefined" != typeof document ? d = document : (d = e["__GLOBAL_DOCUMENT_CACHE@4"]) || (d = e["__GLOBAL_DOCUMENT_CACHE@4"] = f), b.exports = d }).call(this, void 0 !== e ? e : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, { "min-document": 1 }], 8: [function (a, b, c) { (function (a) { var c; c = "undefined" != typeof window ? window : void 0 !== a ? a : "undefined" != typeof self ? self : {}, b.exports = c }).call(this, void 0 !== e ? e : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 9: [function (a, b, c) { function d(a) { var b = e.call(a); return "[object Function]" === b || "function" == typeof a && "[object RegExp]" !== b || "undefined" != typeof window && (a === window.setTimeout || a === window.alert || a === window.confirm || a === window.prompt) } b.exports = d; var e = Object.prototype.toString }, {}], 10: [function (a, b, c) { var d = a("../internal/getNative"), e = d(Date, "now"), f = e || function () { return (new Date).getTime() }; b.exports = f }, { "../internal/getNative": 26 }], 11: [function (a, b, c) { function d(a, b, c) { function d() { r && clearTimeout(r), n && clearTimeout(n), t = 0, n = r = s = void 0 } function i(b, c) { c && clearTimeout(c), n = r = s = void 0, b && (t = f(), o = a.apply(q, m), r || n || (m = q = void 0)) } function j() { var a = b - (f() - p); a <= 0 || a > b ? i(s, n) : r = setTimeout(j, a) } function k() { i(v, r) } function l() { if (m = arguments, p = f(), q = this, s = v && (r || !w), !1 === u) var c = w && !r; else { n || w || (t = p); var d = u - (p - t), e = d <= 0 || d > u; e ? (n && (n = clearTimeout(n)), t = p, o = a.apply(q, m)) : n || (n = setTimeout(k, d)) } return e && r ? r = clearTimeout(r) : r || b === u || (r = setTimeout(j, b)), c && (e = !0, o = a.apply(q, m)), !e || r || n || (m = q = void 0), o } var m, n, o, p, q, r, s, t = 0, u = !1, v = !0; if ("function" != typeof a) throw new TypeError(g); if (b = b < 0 ? 0 : +b || 0, !0 === c) { var w = !0; v = !1 } else e(c) && (w = !!c.leading, u = "maxWait" in c && h(+c.maxWait || 0, b), v = "trailing" in c ? !!c.trailing : v); return l.cancel = d, l } var e = a("../lang/isObject"), f = a("../date/now"), g = "Expected a function", h = Math.max; b.exports = d }, { "../date/now": 10, "../lang/isObject": 39 }], 12: [function (a, b, c) { function d(a, b) { if ("function" != typeof a) throw new TypeError(e); return b = f(void 0 === b ? a.length - 1 : +b || 0, 0), function () { for (var c = arguments, d = -1, e = f(c.length - b, 0), g = Array(e); ++d < e;) g[d] = c[b + d]; switch (b) { case 0: return a.call(this, g); case 1: return a.call(this, c[0], g); case 2: return a.call(this, c[0], c[1], g) } var h = Array(b + 1); for (d = -1; ++d < b;) h[d] = c[d]; return h[b] = g, a.apply(this, h) } } var e = "Expected a function", f = Math.max; b.exports = d }, {}], 13: [function (a, b, c) { function d(a, b, c) { var d = !0, h = !0; if ("function" != typeof a) throw new TypeError(g); return !1 === c ? d = !1 : f(c) && (d = "leading" in c ? !!c.leading : d, h = "trailing" in c ? !!c.trailing : h), e(a, b, { leading: d, maxWait: +b, trailing: h }) } var e = a("./debounce"), f = a("../lang/isObject"), g = "Expected a function"; b.exports = d }, { "../lang/isObject": 39, "./debounce": 11 }], 14: [function (a, b, c) { function d(a, b) { var c = -1, d = a.length; for (b || (b = Array(d)); ++c < d;) b[c] = a[c]; return b } b.exports = d }, {}], 15: [function (a, b, c) { function d(a, b) { for (var c = -1, d = a.length; ++c < d && !1 !== b(a[c], c, a);); return a } b.exports = d }, {}], 16: [function (a, b, c) { function d(a, b, c) { c || (c = {}); for (var d = -1, e = b.length; ++d < e;) { var f = b[d]; c[f] = a[f] } return c } b.exports = d }, {}], 17: [function (a, b, c) { var d = a("./createBaseFor"), e = d(); b.exports = e }, { "./createBaseFor": 24 }], 18: [function (a, b, c) { function d(a, b) { return e(a, b, f) } var e = a("./baseFor"), f = a("../object/keysIn"); b.exports = d }, { "../object/keysIn": 45, "./baseFor": 17 }], 19: [function (a, b, c) { function d(a, b, c, m, n) { if (!i(a)) return a; var o = h(b) && (g(b) || k(b)), p = o ? void 0 : l(b); return e(p || b, function (e, g) { if (p && (g = e, e = b[g]), j(e)) m || (m = []), n || (n = []), f(a, b, g, d, c, m, n); else { var h = a[g], i = c ? c(h, e, g, a, b) : void 0, k = void 0 === i; k && (i = e), void 0 === i && (!o || g in a) || !k && (i === i ? i === h : h !== h) || (a[g] = i) } }), a } var e = a("./arrayEach"), f = a("./baseMergeDeep"), g = a("../lang/isArray"), h = a("./isArrayLike"), i = a("../lang/isObject"), j = a("./isObjectLike"), k = a("../lang/isTypedArray"), l = a("../object/keys"); b.exports = d }, { "../lang/isArray": 36, "../lang/isObject": 39, "../lang/isTypedArray": 42, "../object/keys": 44, "./arrayEach": 15, "./baseMergeDeep": 20, "./isArrayLike": 27, "./isObjectLike": 32 }], 20: [function (a, b, c) { function d(a, b, c, d, l, m, n) { for (var o = m.length, p = b[c]; o--;) if (m[o] == p) return void(a[c] = n[o]); var q = a[c], r = l ? l(q, p, c, a, b) : void 0, s = void 0 === r; s && (r = p, h(p) && (g(p) || j(p)) ? r = g(q) ? q : h(q) ? e(q) : [] : i(p) || f(p) ? r = f(q) ? k(q) : i(q) ? q : {} : s = !1), m.push(p), n.push(r), s ? a[c] = d(r, p, l, m, n) : (r === r ? r !== q : q === q) && (a[c] = r) } var e = a("./arrayCopy"), f = a("../lang/isArguments"), g = a("../lang/isArray"), h = a("./isArrayLike"), i = a("../lang/isPlainObject"), j = a("../lang/isTypedArray"), k = a("../lang/toPlainObject"); b.exports = d }, { "../lang/isArguments": 35, "../lang/isArray": 36, "../lang/isPlainObject": 40, "../lang/isTypedArray": 42, "../lang/toPlainObject": 43, "./arrayCopy": 14, "./isArrayLike": 27 }], 21: [function (a, b, c) { function d(a) { return function (b) { return null == b ? void 0 : e(b)[a] } } var e = a("./toObject"); b.exports = d }, { "./toObject": 34 }], 22: [function (a, b, c) { function d(a, b, c) { if ("function" != typeof a) return e; if (void 0 === b) return a; switch (c) { case 1: return function (c) { return a.call(b, c) }; case 3: return function (c, d, e) { return a.call(b, c, d, e) }; case 4: return function (c, d, e, f) { return a.call(b, c, d, e, f) }; case 5: return function (c, d, e, f, g) { return a.call(b, c, d, e, f, g) } } return function () { return a.apply(b, arguments) } } var e = a("../utility/identity"); b.exports = d }, { "../utility/identity": 48 }], 23: [function (a, b, c) { function d(a) { return g(function (b, c) { var d = -1, g = null == b ? 0 : c.length, h = g > 2 ? c[g - 2] : void 0, i = g > 2 ? c[2] : void 0, j = g > 1 ? c[g - 1] : void 0; for ("function" == typeof h ? (h = e(h, j, 5), g -= 2) : (h = "function" == typeof j ? j : void 0, g -= h ? 1 : 0), i && f(c[0], c[1], i) && (h = g < 3 ? void 0 : h, g = 1); ++d < g;) { var k = c[d]; k && a(b, k, h) } return b }) } var e = a("./bindCallback"), f = a("./isIterateeCall"), g = a("../function/restParam"); b.exports = d }, { "../function/restParam": 12, "./bindCallback": 22, "./isIterateeCall": 30 }], 24: [function (a, b, c) { function d(a) { return function (b, c, d) { for (var f = e(b), g = d(b), h = g.length, i = a ? h : -1; a ? i-- : ++i < h;) { var j = g[i]; if (!1 === c(f[j], j, f)) break } return b } } var e = a("./toObject"); b.exports = d }, { "./toObject": 34 }], 25: [function (a, b, c) { var d = a("./baseProperty"), e = d("length"); b.exports = e }, { "./baseProperty": 21 }], 26: [function (a, b, c) { function d(a, b) { var c = null == a ? void 0 : a[b]; return e(c) ? c : void 0 } var e = a("../lang/isNative"); b.exports = d }, { "../lang/isNative": 38 }], 27: [function (a, b, c) { function d(a) { return null != a && f(e(a)) } var e = a("./getLength"), f = a("./isLength"); b.exports = d }, { "./getLength": 25, "./isLength": 31 }], 28: [function (a, b, c) { var d = function () { try { Object({ toString: 0 } + "") } catch (a) { return function () { return !1 } } return function (a) { return "function" != typeof a.toString && "string" == typeof (a + "") } }(); b.exports = d }, {}], 29: [function (a, b, c) { function d(a, b) { return a = "number" == typeof a || e.test(a) ? +a : -1, b = null == b ? f : b, a > -1 && a % 1 == 0 && a < b } var e = /^\d+$/, f = 9007199254740991; b.exports = d }, {}], 30: [function (a, b, c) { function d(a, b, c) { if (!g(c)) return !1; var d = typeof b; if ("number" == d ? e(c) && f(b, c.length) : "string" == d && b in c) { var h = c[b]; return a === a ? a === h : h !== h } return !1 } var e = a("./isArrayLike"), f = a("./isIndex"), g = a("../lang/isObject"); b.exports = d }, { "../lang/isObject": 39, "./isArrayLike": 27, "./isIndex": 29 }], 31: [function (a, b, c) { function d(a) { return "number" == typeof a && a > -1 && a % 1 == 0 && a <= e } var e = 9007199254740991; b.exports = d }, {}], 32: [function (a, b, c) { function d(a) { return !!a && "object" == typeof a } b.exports = d }, {}], 33: [function (a, b, c) { function d(a) { for (var b = j(a), c = b.length, d = c && a.length, k = !!d && h(d) && (f(a) || e(a) || i(a)), m = -1, n = []; ++m < c;) { var o = b[m]; (k && g(o, d) || l.call(a, o)) && n.push(o) } return n } var e = a("../lang/isArguments"), f = a("../lang/isArray"), g = a("./isIndex"), h = a("./isLength"), i = a("../lang/isString"), j = a("../object/keysIn"), k = Object.prototype, l = k.hasOwnProperty; b.exports = d }, { "../lang/isArguments": 35, "../lang/isArray": 36, "../lang/isString": 41, "../object/keysIn": 45, "./isIndex": 29, "./isLength": 31 }], 34: [function (a, b, c) { function d(a) { if (g.unindexedChars && f(a)) { for (var b = -1, c = a.length, d = Object(a); ++b < c;) d[b] = a.charAt(b); return d } return e(a) ? a : Object(a) } var e = a("../lang/isObject"), f = a("../lang/isString"), g = a("../support"); b.exports = d }, { "../lang/isObject": 39, "../lang/isString": 41, "../support": 47 }], 35: [function (a, b, c) { function d(a) { return f(a) && e(a) && h.call(a, "callee") && !i.call(a, "callee") } var e = a("../internal/isArrayLike"), f = a("../internal/isObjectLike"), g = Object.prototype, h = g.hasOwnProperty, i = g.propertyIsEnumerable; b.exports = d }, { "../internal/isArrayLike": 27, "../internal/isObjectLike": 32 }], 36: [function (a, b, c) { var d = a("../internal/getNative"), e = a("../internal/isLength"), f = a("../internal/isObjectLike"), g = Object.prototype, h = g.toString, i = d(Array, "isArray"), j = i || function (a) { return f(a) && e(a.length) && "[object Array]" == h.call(a) }; b.exports = j }, { "../internal/getNative": 26, "../internal/isLength": 31, "../internal/isObjectLike": 32 }], 37: [function (a, b, c) { function d(a) { return e(a) && h.call(a) == f } var e = a("./isObject"), f = "[object Function]", g = Object.prototype, h = g.toString; b.exports = d }, { "./isObject": 39 }], 38: [function (a, b, c) { function d(a) { return null != a && (e(a) ? l.test(j.call(a)) : g(a) && (f(a) ? l : h).test(a)) } var e = a("./isFunction"), f = a("../internal/isHostObject"), g = a("../internal/isObjectLike"), h = /^\[object .+?Constructor\]$/, i = Object.prototype, j = Function.prototype.toString, k = i.hasOwnProperty, l = RegExp("^" + j.call(k).replace(/[\\^$.*+?()[\]{}|]/g, "\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, "$1.*?") + "$"); b.exports = d }, { "../internal/isHostObject": 28, "../internal/isObjectLike": 32, "./isFunction": 37 }], 39: [function (a, b, c) { function d(a) { var b = typeof a; return !!a && ("object" == b || "function" == b) } b.exports = d }, {}], 40: [function (a, b, c) { function d(a) { var b; if (!h(a) || m.call(a) != j || g(a) || f(a) || !l.call(a, "constructor") && "function" == typeof (b = a.constructor) && !(b instanceof b)) return !1; var c; return i.ownLast ? (e(a, function (a, b, d) { return c = l.call(d, b), !1 }), !1 !== c) : (e(a, function (a, b) { c = b }), void 0 === c || l.call(a, c)) } var e = a("../internal/baseForIn"), f = a("./isArguments"), g = a("../internal/isHostObject"), h = a("../internal/isObjectLike"), i = a("../support"), j = "[object Object]", k = Object.prototype, l = k.hasOwnProperty, m = k.toString; b.exports = d }, { "../internal/baseForIn": 18, "../internal/isHostObject": 28, "../internal/isObjectLike": 32, "../support": 47, "./isArguments": 35 }], 41: [function (a, b, c) { function d(a) { return "string" == typeof a || e(a) && h.call(a) == f } var e = a("../internal/isObjectLike"), f = "[object String]", g = Object.prototype, h = g.toString; b.exports = d }, { "../internal/isObjectLike": 32 }], 42: [function (a, b, c) { function d(a) { return f(a) && e(a.length) && !!g[i.call(a)] } var e = a("../internal/isLength"), f = a("../internal/isObjectLike"), g = {}; g["[object Float32Array]"] = g["[object Float64Array]"] = g["[object Int8Array]"] = g["[object Int16Array]"] = g["[object Int32Array]"] = g["[object Uint8Array]"] = g["[object Uint8ClampedArray]"] = g["[object Uint16Array]"] = g["[object Uint32Array]"] = !0, g["[object Arguments]"] = g["[object Array]"] = g["[object ArrayBuffer]"] = g["[object Boolean]"] = g["[object Date]"] = g["[object Error]"] = g["[object Function]"] = g["[object Map]"] = g["[object Number]"] = g["[object Object]"] = g["[object RegExp]"] = g["[object Set]"] = g["[object String]"] = g["[object WeakMap]"] = !1; var h = Object.prototype, i = h.toString; b.exports = d }, { "../internal/isLength": 31, "../internal/isObjectLike": 32 }], 43: [function (a, b, c) { function d(a) { return e(a, f(a)) } var e = a("../internal/baseCopy"), f = a("../object/keysIn"); b.exports = d }, { "../internal/baseCopy": 16, "../object/keysIn": 45 }], 44: [function (a, b, c) { var d = a("../internal/getNative"), e = a("../internal/isArrayLike"), f = a("../lang/isObject"), g = a("../internal/shimKeys"), h = a("../support"), i = d(Object, "keys"), j = i ? function (a) { var b = null == a ? void 0 : a.constructor; return "function" == typeof b && b.prototype === a || ("function" == typeof a ? h.enumPrototypes : e(a)) ? g(a) : f(a) ? i(a) : [] } : g; b.exports = j }, { "../internal/getNative": 26, "../internal/isArrayLike": 27, "../internal/shimKeys": 33, "../lang/isObject": 39, "../support": 47 }], 45: [function (a, b, c) { function d(a) { if (null == a) return []; k(a) || (a = Object(a)); var b = a.length; b = b && j(b) && (g(a) || f(a) || l(a)) && b || 0; for (var c = a.constructor, d = -1, e = h(c) && c.prototype || s, x = e === a, y = Array(b), z = b > 0, A = m.enumErrorProps && (a === r || a instanceof Error), B = m.enumPrototypes && h(a); ++d < b;) y[d] = d + ""; for (var C in a) B && "prototype" == C || A && ("message" == C || "name" == C) || z && i(C, b) || "constructor" == C && (x || !u.call(a, C)) || y.push(C); if (m.nonEnumShadows && a !== s) { var D = a === t ? p : a === r ? n : v.call(a), E = w[D] || w[o]; for (D == o && (e = s), b = q.length; b--;) { C = q[b]; var F = E[C]; x && F || (F ? !u.call(a, C) : a[C] === e[C]) || y.push(C) } } return y } var e = a("../internal/arrayEach"), f = a("../lang/isArguments"), g = a("../lang/isArray"), h = a("../lang/isFunction"), i = a("../internal/isIndex"), j = a("../internal/isLength"), k = a("../lang/isObject"), l = a("../lang/isString"), m = a("../support"), n = "[object Error]", o = "[object Object]", p = "[object String]", q = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"], r = Error.prototype, s = Object.prototype, t = String.prototype, u = s.hasOwnProperty, v = s.toString, w = {}; w["[object Array]"] = w["[object Date]"] = w["[object Number]"] = { constructor: !0, toLocaleString: !0, toString: !0, valueOf: !0 }, w["[object Boolean]"] = w[p] = { constructor: !0, toString: !0, valueOf: !0 }, w[n] = w["[object Function]"] = w["[object RegExp]"] = { constructor: !0, toString: !0 }, w[o] = { constructor: !0 }, e(q, function (a) { for (var b in w) if (u.call(w, b)) { var c = w[b]; c[a] = u.call(c, a) } }), b.exports = d }, { "../internal/arrayEach": 15, "../internal/isIndex": 29, "../internal/isLength": 31, "../lang/isArguments": 35, "../lang/isArray": 36, "../lang/isFunction": 37, "../lang/isObject": 39, "../lang/isString": 41, "../support": 47 }], 46: [function (a, b, c) { var d = a("../internal/baseMerge"), e = a("../internal/createAssigner"), f = e(d); b.exports = f }, { "../internal/baseMerge": 19, "../internal/createAssigner": 23 }], 47: [function (a, b, c) { var d = Array.prototype, e = Error.prototype, f = Object.prototype, g = f.propertyIsEnumerable, h = d.splice, i = {}; ! function (a) { var b = function () { this.x = 1 }, c = { 0: 1, length: 1 }, d = []; b.prototype = { valueOf: 1, y: 1 }; for (var f in new b) d.push(f); i.enumErrorProps = g.call(e, "message") || g.call(e, "name"), i.enumPrototypes = g.call(b, "prototype"), i.nonEnumShadows = !/valueOf/.test(d), i.ownLast = "x" != d[0], i.spliceObjects = (h.call(c, 0, 1), !c[0]), i.unindexedChars = "x" [0] + Object("x")[0] != "xx" }(), b.exports = i }, {}], 48: [function (a, b, c) { function d(a) { return a } b.exports = d }, {}], 49: [function (a, b, c) { "use strict"; var d = Object.prototype.hasOwnProperty, e = Object.prototype.toString, f = Array.prototype.slice, g = a("./isArguments"), h = Object.prototype.propertyIsEnumerable, i = !h.call({ toString: null }, "toString"), j = h.call(function () {}, "prototype"), k = ["toString", "toLocaleString", "valueOf", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "constructor"], l = function (a) { var b = a.constructor; return b && b.prototype === a }, m = { $console: !0, $external: !0, $frame: !0, $frameElement: !0, $frames: !0, $innerHeight: !0, $innerWidth: !0, $outerHeight: !0, $outerWidth: !0, $pageXOffset: !0, $pageYOffset: !0, $parent: !0, $scrollLeft: !0, $scrollTop: !0, $scrollX: !0, $scrollY: !0, $self: !0, $webkitIndexedDB: !0, $webkitStorageInfo: !0, $window: !0 }, n = function () { if ("undefined" == typeof window) return !1; for (var a in window) try { if (!m["$" + a] && d.call(window, a) && null !== window[a] && "object" == typeof window[a]) try { l(window[a]) } catch (a) { return !0 } } catch (a) { return !0 } return !1 }(), o = function (a) { if ("undefined" == typeof window || !n) return l(a); try { return l(a) } catch (a) { return !1 } }, p = function (a) { var b = null !== a && "object" == typeof a, c = "[object Function]" === e.call(a), f = g(a), h = b && "[object String]" === e.call(a), l = []; if (!b && !c && !f) throw new TypeError("Object.keys called on a non-object"); var m = j && c; if (h && a.length > 0 && !d.call(a, 0)) for (var n = 0; n < a.length; ++n) l.push(String(n)); if (f && a.length > 0) for (var p = 0; p < a.length; ++p) l.push(String(p)); else for (var q in a) m && "prototype" === q || !d.call(a, q) || l.push(String(q)); if (i) for (var r = o(a), s = 0; s < k.length; ++s) r && "constructor" === k[s] || !d.call(a, k[s]) || l.push(k[s]); return l }; p.shim = function () { if (Object.keys) { if (! function () { return 2 === (Object.keys(arguments) || "").length }(1, 2)) { var a = Object.keys; Object.keys = function (b) { return a(g(b) ? f.call(b) : b) } } } else Object.keys = p; return Object.keys || p }, b.exports = p }, { "./isArguments": 50 }], 50: [function (a, b, c) { "use strict"; var d = Object.prototype.toString; b.exports = function (a) { var b = d.call(a), c = "[object Arguments]" === b; return c || (c = "[object Array]" !== b && null !== a && "object" == typeof a && "number" == typeof a.length && a.length >= 0 && "[object Function]" === d.call(a.callee)), c } }, {}], 51: [function (a, b, c) { "use strict"; var d = a("object-keys"); b.exports = function () { if ("function" != typeof Symbol || "function" != typeof Object.getOwnPropertySymbols) return !1; if ("symbol" == typeof Symbol.iterator) return !0; var a = {}, b = Symbol("test"), c = Object(b); if ("string" == typeof b) return !1; if ("[object Symbol]" !== Object.prototype.toString.call(b)) return !1; if ("[object Symbol]" !== Object.prototype.toString.call(c)) return !1; a[b] = 42; for (b in a) return !1; if (0 !== d(a).length) return !1; if ("function" == typeof Object.keys && 0 !== Object.keys(a).length) return !1; if ("function" == typeof Object.getOwnPropertyNames && 0 !== Object.getOwnPropertyNames(a).length) return !1; var e = Object.getOwnPropertySymbols(a); if (1 !== e.length || e[0] !== b) return !1; if (!Object.prototype.propertyIsEnumerable.call(a, b)) return !1; if ("function" == typeof Object.getOwnPropertyDescriptor) { var f = Object.getOwnPropertyDescriptor(a, b); if (42 !== f.value || !0 !== f.enumerable) return !1 } return !0 } }, { "object-keys": 49 }], 52: [function (a, b, c) { "use strict"; var d = a("object-keys"), e = a("function-bind"), f = function (a) { return void 0 !== a && null !== a }, g = a("./hasSymbols")(), h = Object, i = e.call(Function.call, Array.prototype.push), j = e.call(Function.call, Object.prototype.propertyIsEnumerable), k = g ? Object.getOwnPropertySymbols : null; b.exports = function (a, b) { if (!f(a)) throw new TypeError("target must be an object"); var c, e, l, m, n, o, p, q = h(a); for (c = 1; c < arguments.length; ++c) { e = h(arguments[c]), m = d(e); var r = g && (Object.getOwnPropertySymbols || k); if (r) for (n = r(e), l = 0; l < n.length; ++l) p = n[l], j(e, p) && i(m, p); for (l = 0; l < m.length; ++l) p = m[l], o = e[p], j(e, p) && (q[p] = o) } return q } }, { "./hasSymbols": 51, "function-bind": 6, "object-keys": 49 }], 53: [function (a, b, c) { "use strict"; var d = a("define-properties"), e = a("./implementation"), f = a("./polyfill"), g = a("./shim"), h = f(); d(h, { implementation: e, getPolyfill: f, shim: g }), b.exports = h }, { "./implementation": 52, "./polyfill": 54, "./shim": 55, "define-properties": 2 }], 54: [function (a, b, c) { "use strict"; var d = a("./implementation"), e = function () { if (!Object.assign) return !1; for (var a = "abcdefghijklmnopqrst", b = a.split(""), c = {}, d = 0; d < b.length; ++d) c[b[d]] = b[d]; var e = Object.assign({}, c), f = ""; for (var g in e) f += g; return a !== f }, f = function () { if (!Object.assign || !Object.preventExtensions) return !1; var a = Object.preventExtensions({ 1: 2 }); try { Object.assign(a, "xy") } catch (b) { return "y" === a[1] } return !1 }; b.exports = function () { return Object.assign ? e() ? d : f() ? d : Object.assign : d } }, { "./implementation": 52 }], 55: [function (a, b, c) { "use strict"; var d = a("define-properties"), e = a("./polyfill"); b.exports = function () { var a = e(); return d(Object, { assign: a }, { assign: function () { return Object.assign !== a } }), a } }, { "./polyfill": 54, "define-properties": 2 }], 56: [function (a, b, c) { var d = a("trim"), e = a("for-each"), f = function (a) { return "[object Array]" === Object.prototype.toString.call(a) }; b.exports = function (a) { if (!a) return {}; var b = {}; return e(d(a).split("\n"), function (a) { var c = a.indexOf(":"), e = d(a.slice(0, c)).toLowerCase(), g = d(a.slice(c + 1)); void 0 === b[e] ? b[e] = g : f(b[e]) ? b[e].push(g) : b[e] = [b[e], g] }), b } }, { "for-each": 3, trim: 58 }], 57: [function (a, b, c) { function d(a, b) { var c, d = null; try { c = JSON.parse(a, b) } catch (a) { d = a } return [d, c] } b.exports = d }, {}], 58: [function (a, b, c) { function d(a) { return a.replace(/^\s*|\s*$/g, "") } c = b.exports = d, c.left = function (a) { return a.replace(/^\s*/, "") }, c.right = function (a) { return a.replace(/\s*$/, "") } }, {}], 59: [function (a, b, c) { function d(a) { return a.replace(/\n\r?\s*/g, "") } b.exports = function (a) { for (var b = "", c = 0; c < arguments.length; c++) b += d(a[c]) + (arguments[c + 1] || ""); return b } }, {}], 60: [function (a, b, c) { "use strict"; function d(a) { for (var b in a) if (a.hasOwnProperty(b)) return !1; return !0 } function e(a, b, c) { var d = a; return k(b) ? (c = b, "string" == typeof a && (d = { uri: a })) : d = m(b, { uri: a }), d.callback = c, d } function f(a, b, c) { return b = e(a, b, c), g(b) } function g(a) { function b() { 4 === m.readyState && g() } function c() { var a = void 0; if (a = m.response ? m.response : m.responseText || h(m), v) try { a = JSON.parse(a) } catch (a) {} return a } function e(a) { return clearTimeout(p), a instanceof Error || (a = new Error("" + (a || "Unknown XMLHttpRequest Error"))), a.statusCode = 0, j(a, k) } function g() { if (!o) { var b; clearTimeout(p), b = a.useXDR && void 0 === m.status ? 200 : 1223 === m.status ? 204 : m.status; var d = k, e = null; return 0 !== b ? (d = { body: c(), statusCode: b, method: r, headers: {}, url: q, rawRequest: m }, m.getAllResponseHeaders && (d.headers = l(m.getAllResponseHeaders()))) : e = new Error("Internal XMLHttpRequest Error"), j(e, d, d.body) } } if (void 0 === a.callback) throw new Error("callback argument missing"); var i = !1, j = function (b, c, d) { i || (i = !0, a.callback(b, c, d)) }, k = { body: void 0, headers: {}, statusCode: 0, method: r, url: q, rawRequest: m }, m = a.xhr || null; m || (m = a.cors || a.useXDR ? new f.XDomainRequest : new f.XMLHttpRequest); var n, o, p, q = m.url = a.uri || a.url, r = m.method = a.method || "GET", s = a.body || a.data || null, t = m.headers = a.headers || {}, u = !!a.sync, v = !1; if ("json" in a && (v = !0, t.accept || t.Accept || (t.Accept = "application/json"), "GET" !== r && "HEAD" !== r && (t["content-type"] || t["Content-Type"] || (t["Content-Type"] = "application/json"), s = JSON.stringify(a.json))), m.onreadystatechange = b, m.onload = g, m.onerror = e, m.onprogress = function () {}, m.ontimeout = e, m.open(r, q, !u, a.username, a.password), u || (m.withCredentials = !!a.withCredentials), !u && a.timeout > 0 && (p = setTimeout(function () { o = !0, m.abort("timeout"); var a = new Error("XMLHttpRequest timeout"); a.code = "ETIMEDOUT", e(a) }, a.timeout)), m.setRequestHeader) for (n in t) t.hasOwnProperty(n) && m.setRequestHeader(n, t[n]); else if (a.headers && !d(a.headers)) throw new Error("Headers cannot be set on an XDomainRequest object"); return "responseType" in a && (m.responseType = a.responseType), "beforeSend" in a && "function" == typeof a.beforeSend && a.beforeSend(m), m.send(s), m } function h(a) { if ("document" === a.responseType) return a.responseXML; var b = 204 === a.status && a.responseXML && "parsererror" === a.responseXML.documentElement.nodeName; return "" !== a.responseType || b ? null : a.responseXML } function i() {} var j = a("global/window"), k = a("is-function"), l = a("parse-headers"), m = a("xtend"); b.exports = f, f.XMLHttpRequest = j.XMLHttpRequest || i, f.XDomainRequest = "withCredentials" in new f.XMLHttpRequest ? f.XMLHttpRequest : j.XDomainRequest, function (a, b) { for (var c = 0; c < a.length; c++) b(a[c]) }(["get", "put", "post", "patch", "head", "delete"], function (a) { f["delete" === a ? "del" : a] = function (b, c, d) { return c = e(b, c, d), c.method = a.toUpperCase(), g(c) } }) }, { "global/window": 8, "is-function": 9, "parse-headers": 56, xtend: 61 }], 61: [function (a, b, c) { function d() { for (var a = {}, b = 0; b < arguments.length; b++) { var c = arguments[b]; for (var d in c) e.call(c, d) && (a[d] = c[d]) } return a } b.exports = d; var e = Object.prototype.hasOwnProperty }, {}], 62: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./button.js"), h = d(g), i = a("./component.js"), j = d(i), k = function (a) { function b(c, d) { e(this, b), a.call(this, c, d) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-big-play-button" }, b.prototype.handleClick = function () { this.player_.play() }, b.prototype.tooltipHandler = function () { if (void 0 !== this.options_.tooltip) return a.prototype.tooltipHandler.call(this) }, b }(h.default); k.prototype.controlText_ = "Play Video", j.default.registerComponent("BigPlayButton", k), c.default = k, b.exports = c.default }, { "./button.js": 63, "./component.js": 66 }], 63: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./clickable-component.js"), i = e(h), j = a("./component"), k = e(j), l = a("./utils/events.js"), m = (d(l), a("./utils/fn.js")), n = (d(m), a("./utils/log.js")), o = e(n), p = a("global/document"), q = (e(p), a("object.assign")), r = e(q), s = function (a) { function b(c, d) { f(this, b), a.call(this, c, d) } return g(b, a), b.prototype.createEl = function () { var a = arguments.length <= 0 || void 0 === arguments[0] ? "button" : arguments[0], b = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], c = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2]; b = r.default({ className: this.buildCSSClass() }, b), "button" !== a && (o.default.warn("Creating a Button with an HTML element of " + a + " is deprecated; use ClickableComponent instead."), b = r.default({ tabIndex: 0 }, b), c = r.default({ role: "button" }, c)), c = r.default({ type: "button", "aria-live": "polite" }, c); var d = k.default.prototype.createEl.call(this, a, b, c); return this.createControlTextEl(d), d }, b.prototype.addChild = function (a) { var b = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], c = this.constructor.name; return o.default.warn("Adding an actionable (user controllable) child to a Button (" + c + ") is not supported; use a ClickableComponent instead."), k.default.prototype.addChild.call(this, a, b) }, b.prototype.handleKeyPress = function (b) { 32 === b.which || 13 === b.which || a.prototype.handleKeyPress.call(this, b) }, b }(i.default); k.default.registerComponent("Button", s), c.default = s, b.exports = c.default }, { "./clickable-component.js": 64, "./component": 66, "./utils/events.js": 145, "./utils/fn.js": 146, "./utils/log.js": 149, "global/document": 7, "object.assign": 53 }], 64: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./component"), i = e(h), j = a("./utils/dom.js"), k = d(j), l = a("./utils/events.js"), m = d(l), n = a("./utils/fn.js"), o = d(n), p = a("./utils/log.js"), q = e(p), r = a("global/document"), s = e(r), t = a("object.assign"), u = e(t), v = a("./tooltip"), w = e(v), x = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.appendTooltip(), this.emitTapEvents(), this.on("tap", this.handleClick), this.on("click", this.handleClick), this.on("focus", this.handleFocus), this.on("blur", this.handleBlur) } return g(b, a), b.prototype.createEl = function () { var b = arguments.length <= 0 || void 0 === arguments[0] ? "div" : arguments[0], c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], d = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2]; c = u.default({ className: this.buildCSSClass(), tabIndex: 0 }, c), "button" === b && q.default.error("Creating a ClickableComponent with an HTML element of " + b + " is not supported; use a Button instead."), d = u.default({ role: "button", "aria-live": "polite" }, d); var e = a.prototype.createEl.call(this, b, c, d); return this.createControlTextEl(e), e }, b.prototype.createControlTextEl = function (a) { return this.controlTextEl_ = k.createEl("span", { className: "vjs-control-text" }), a && a.appendChild(this.controlTextEl_), this.controlText(this.controlText_), this.controlTextEl_ }, b.prototype.controlText = function (a) { return a ? (this.controlText_ = a, this.controlTextEl_.innerHTML = this.localize(this.controlText_), this.tooltip ? this.tooltip.text(this.controlText_) : this.appendTooltip(), this) : this.controlText_ || "Need Text" }, b.prototype.buildCSSClass = function () { return "vjs-control vjs-button " + a.prototype.buildCSSClass.call(this) }, b.prototype.addChild = function (b) { var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; return a.prototype.addChild.call(this, b, c) }, b.prototype.enable = function () { return this.removeClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "false"), this }, b.prototype.disable = function () { return this.addClass("vjs-disabled"), this.el_.setAttribute("aria-disabled", "true"), this }, b.prototype.handleClick = function () {}, b.prototype.handleFocus = function () { m.on(s.default, "keydown", o.bind(this, this.handleKeyPress)) }, b.prototype.handleKeyPress = function (b) { 32 === b.which || 13 === b.which ? (b.preventDefault(), this.handleClick(b)) : a.prototype.handleKeyPress && a.prototype.handleKeyPress.call(this, b) }, b.prototype.handleBlur = function () { m.off(s.default, "keydown", o.bind(this, this.handleKeyPress)) }, b.prototype.appendTooltip = function () { if (!this.tooltip && this.controlText_ && this.el()) { var a = this.tooltipHandler(); a && (this.tooltip = new w.default(this.player_), this.el().appendChild(this.tooltip.el()), this.tooltip.text(this.controlText_), this.tooltip.handler(a)) } }, b.prototype.tooltipHandler = function () { var a = this.options_.tooltip; if (!1 !== a) return !0 === a || this.player_.options_ && this.player_.options_.tooltips ? this.el() : "string" == typeof a ? k.getEl(a) : a && "function" == typeof a.el ? a.el() : a }, b }(i.default); i.default.registerComponent("ClickableComponent", x), c.default = x, b.exports = c.default }, { "./component": 66, "./tooltip": 125, "./utils/dom.js": 144, "./utils/events.js": 145, "./utils/fn.js": 146, "./utils/log.js": 149, "global/document": 7, "object.assign": 53 }], 65: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./button"), h = d(g), i = a("./component"), j = d(i), k = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.controlText(d && d.controlText || this.localize("Close")) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-close-button " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleClick = function () { this.trigger({ type: "close", bubbles: !1 }) }, b }(h.default); j.default.registerComponent("CloseButton", k), c.default = k, b.exports = c.default }, { "./button": 63, "./component": 66 }], 66: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } c.__esModule = !0; var g = a("global/window"), h = e(g), i = a("./utils/dom.js"), j = d(i), k = a("./utils/fn.js"), l = d(k), m = a("./utils/guid.js"), n = d(m), o = a("./utils/events.js"), p = d(o), q = a("./utils/log.js"), r = e(q), s = a("./utils/to-title-case.js"), t = e(s), u = a("./utils/merge-options.js"), v = e(u), w = function () { function a(b, c, d) { if (f(this, a), !b && this.play ? this.player_ = b = this : this.player_ = b, this.options_ = v.default({}, this.options_), c = this.options_ = v.default(this.options_, c), this.id_ = c.id || c.el && c.el.id, !this.id_) { var e = b && b.id && b.id() || "no_player"; this.id_ = e + "_component_" + n.newGUID() } this.name_ = c.name || null, c.el ? this.el_ = c.el : !1 !== c.createEl && (this.el_ = this.createEl()), this.children_ = [], this.childIndex_ = {}, this.childNameIndex_ = {}, !1 !== c.initChildren && this.initChildren(), this.ready(d), !1 !== c.reportTouchActivity && this.enableTouchActivity() } return a.prototype.dispose = function () { if (this.trigger({ type: "dispose", bubbles: !1 }), this.children_) for (var a = this.children_.length - 1; a >= 0; a--) this.children_[a].dispose && this.children_[a].dispose(); this.children_ = null, this.childIndex_ = null, this.childNameIndex_ = null, this.off(), this.el_.parentNode && this.el_.parentNode.removeChild(this.el_), j.removeElData(this.el_), this.el_ = null }, a.prototype.player = function () { return this.player_ }, a.prototype.options = function (a) { return r.default.warn("this.options() has been deprecated and will be moved to the constructor in 6.0"), a ? (this.options_ = v.default(this.options_, a), this.options_) : this.options_ }, a.prototype.el = function () { return this.el_ }, a.prototype.createEl = function (a, b, c) { return j.createEl(a, b, c) }, a.prototype.localize = function (a) { var b = this.player_.language && this.player_.language(), c = this.player_.languages && this.player_.languages(); if (!b || !c) return a; var d = c[b]; if (d && d[a]) return d[a]; var e = b.split("-")[0], f = c[e]; return f && f[a] ? f[a] : a }, a.prototype.contentEl = function () { return this.contentEl_ || this.el_ }, a.prototype.id = function () { return this.id_ }, a.prototype.name = function () { return this.name_ }, a.prototype.children = function () { return this.children_ }, a.prototype.getChildById = function (a) { return this.childIndex_[a] }, a.prototype.getChild = function (a) { return this.childNameIndex_[a] }, a.prototype.addChild = function (b) { var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], d = arguments.length <= 2 || void 0 === arguments[2] ? this.children_.length : arguments[2], e = void 0, f = void 0; if ("string" == typeof b) { f = b, c || (c = {}), !0 === c && (r.default.warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."), c = {}); var g = c.componentClass || t.default(f); c.name = f; var h = a.getComponent(g); if (!h) throw new Error("Component " + g + " does not exist"); if ("function" != typeof h) return null; e = new h(this.player_ || this, c) } else e = b; if (this.children_.splice(d, 0, e), "function" == typeof e.id && (this.childIndex_[e.id()] = e), f = f || e.name && e.name(), f && (this.childNameIndex_[f] = e), "function" == typeof e.el && e.el()) { var i = this.contentEl().children, j = i[d] || null; this.contentEl().insertBefore(e.el(), j) } return e }, a.prototype.removeChild = function (a) { if ("string" == typeof a && (a = this.getChild(a)), a && this.children_) { for (var b = !1, c = this.children_.length - 1; c >= 0; c--) if (this.children_[c] === a) { b = !0, this.children_.splice(c, 1); break } if (b) { this.childIndex_[a.id()] = null, this.childNameIndex_[a.name()] = null; var d = a.el(); d && d.parentNode === this.contentEl() && this.contentEl().removeChild(a.el()) } } }, a.prototype.initChildren = function () { var b = this, c = this.options_.children; c && function () { var d = b.options_, e = function (a) { var c = a.name, e = a.opts; if (void 0 !== d[c] && (e = d[c]), !1 !== e) { !0 === e && (e = {}), e.playerOptions = b.options_.playerOptions; var f = b.addChild(c, e); f && (b[c] = f) } }, f = void 0, g = a.getComponent("Tech"); f = Array.isArray(c) ? c : Object.keys(c), f.concat(Object.keys(b.options_).filter(function (a) { return !f.some(function (b) { return "string" == typeof b ? a === b : a === b.name }) })).map(function (a) { var d = void 0, e = void 0; return "string" == typeof a ? (d = a, e = c[d] || b.options_[d] || {}) : (d = a.name, e = a), { name: d, opts: e } }).filter(function (b) { var c = a.getComponent(b.opts.componentClass || t.default(b.name)); return c && !g.isTech(c) }).forEach(e) }() }, a.prototype.buildCSSClass = function () { return "" }, a.prototype.on = function (a, b, c) { var d = this; return "string" == typeof a || Array.isArray(a) ? p.on(this.el_, a, l.bind(this, b)) : function () { var e = a, f = b, g = l.bind(d, c), h = function () { return d.off(e, f, g) }; h.guid = g.guid, d.on("dispose", h); var i = function () { return d.off("dispose", h) }; i.guid = g.guid, a.nodeName ? (p.on(e, f, g), p.on(e, "dispose", i)) : "function" == typeof a.on && (e.on(f, g), e.on("dispose", i)) }(), this }, a.prototype.off = function (a, b, c) { if (!a || "string" == typeof a || Array.isArray(a)) p.off(this.el_, a, b); else { var d = a, e = b, f = l.bind(this, c); this.off("dispose", f), a.nodeName ? (p.off(d, e, f), p.off(d, "dispose", f)) : (d.off(e, f), d.off("dispose", f)) } return this }, a.prototype.one = function (a, b, c) { var d = this, e = arguments; return "string" == typeof a || Array.isArray(a) ? p.one(this.el_, a, l.bind(this, b)) : function () { var f = a, g = b, h = l.bind(d, c), i = function a() { d.off(f, g, a), h.apply(null, e) }; i.guid = h.guid, d.on(f, g, i) }(), this }, a.prototype.trigger = function (a, b) { return p.trigger(this.el_, a, b), this }, a.prototype.ready = function (a) { var b = !(arguments.length <= 1 || void 0 === arguments[1]) && arguments[1]; return a && (this.isReady_ ? b ? a.call(this) : this.setTimeout(a, 1) : (this.readyQueue_ = this.readyQueue_ || [], this.readyQueue_.push(a))), this }, a.prototype.triggerReady = function () { this.isReady_ = !0, this.setTimeout(function () { var a = this.readyQueue_; this.readyQueue_ = [], a && a.length > 0 && a.forEach(function (a) { a.call(this) }, this), this.trigger("ready") }, 1) }, a.prototype.$ = function (a, b) { return j.$(a, b || this.contentEl()) }, a.prototype.$$ = function (a, b) { return j.$$(a, b || this.contentEl()) }, a.prototype.hasClass = function (a) { return j.hasElClass(this.el_, a) }, a.prototype.addClass = function (a) { return j.addElClass(this.el_, a), this }, a.prototype.removeClass = function (a) { return j.removeElClass(this.el_, a), this }, a.prototype.toggleClass = function (a, b) { return j.toggleElClass(this.el_, a, b), this }, a.prototype.show = function () { return this.removeClass("vjs-hidden"), this }, a.prototype.hide = function () { return this.addClass("vjs-hidden"), this }, a.prototype.lockShowing = function () { return this.addClass("vjs-lock-showing"), this }, a.prototype.unlockShowing = function () { return this.removeClass("vjs-lock-showing"), this }, a.prototype.width = function (a, b) { return this.dimension("width", a, b) }, a.prototype.height = function (a, b) { return this.dimension("height", a, b) }, a.prototype.dimensions = function (a, b) { return this.width(a, !0).height(b) }, a.prototype.dimension = function (a, b, c) { if (void 0 !== b) return null !== b && b === b || (b = 0), -1 !== ("" + b).indexOf("%") || -1 !== ("" + b).indexOf("px") ? this.el_.style[a] = b : this.el_.style[a] = "auto" === b ? "" : b + "px", c || this.trigger("resize"), this; if (!this.el_) return 0; var d = this.el_.style[a], e = d.indexOf("px"); return -1 !== e ? parseInt(d.slice(0, e), 10) : parseInt(this.el_["offset" + t.default(a)], 10) }, a.prototype.currentDimension = function (a) { var b = 0; if ("width" !== a && "height" !== a) throw new Error("currentDimension only accepts width or height value"); if ("function" == typeof h.default.getComputedStyle) { var c = h.default.getComputedStyle(this.el_); b = c.getPropertyValue(a) || c[a] } else if (this.el_.currentStyle) { var d = "offset" + t.default(a); b = this.el_[d] } return b = parseFloat(b) }, a.prototype.currentDimensions = function () { return { width: this.currentDimension("width"), height: this.currentDimension("height") } }, a.prototype.currentWidth = function () { return this.currentDimension("width") }, a.prototype.currentHeight = function () { return this.currentDimension("height") }, a.prototype.emitTapEvents = function () { var a = 0, b = null, c = void 0; this.on("touchstart", function (d) { 1 === d.touches.length && (b = { pageX: d.touches[0].pageX, pageY: d.touches[0].pageY }, a = (new Date).getTime(), c = !0) }), this.on("touchmove", function (a) { if (a.touches.length > 1) c = !1; else if (b) { var d = a.touches[0].pageX - b.pageX, e = a.touches[0].pageY - b.pageY, f = Math.sqrt(d * d + e * e); f > 10 && (c = !1) } }); var d = function () { c = !1 }; this.on("touchleave", d), this.on("touchcancel", d), this.on("touchend", function (d) { if (b = null, !0 === c && d.cancelable) { (new Date).getTime() - a < 200 && (d.preventDefault(), this.trigger("tap")) } }) }, a.prototype.enableTouchActivity = function () { if (this.player() && this.player().reportUserActivity) { var a = l.bind(this.player(), this.player().reportUserActivity), b = void 0; this.on("touchstart", function () { a(), this.clearInterval(b), b = this.setInterval(a, 250) }); var c = function (c) { a(), this.clearInterval(b) }; this.on("touchmove", a), this.on("touchend", c), this.on("touchcancel", c) } }, a.prototype.setTimeout = function (a, b) { a = l.bind(this, a); var c = h.default.setTimeout(a, b), d = function () { this.clearTimeout(c) }; return d.guid = "vjs-timeout-" + c, this.on("dispose", d), c }, a.prototype.clearTimeout = function (a) { h.default.clearTimeout(a); var b = function () {}; return b.guid = "vjs-timeout-" + a, this.off("dispose", b), a }, a.prototype.setInterval = function (a, b) { a = l.bind(this, a); var c = h.default.setInterval(a, b), d = function () { this.clearInterval(c) }; return d.guid = "vjs-interval-" + c, this.on("dispose", d), c }, a.prototype.clearInterval = function (a) { h.default.clearInterval(a); var b = function () {}; return b.guid = "vjs-interval-" + a, this.off("dispose", b), a }, a.registerComponent = function (b, c) { return a.components_ || (a.components_ = {}), a.components_[b] = c, c }, a.getComponent = function (b) { return a.components_ && a.components_[b] ? a.components_[b] : h.default && h.default.videojs && h.default.videojs[b] ? (r.default.warn("The " + b + " component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"), h.default.videojs[b]) : void 0 }, a.extend = function (b) { b = b || {}, r.default.warn("Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead"); var c = b.init || b.init || this.prototype.init || this.prototype.init || function () {}, d = function () { c.apply(this, arguments) }; d.prototype = Object.create(this.prototype), d.prototype.constructor = d, d.extend = a.extend; for (var e in b) b.hasOwnProperty(e) && (d.prototype[e] = b[e]); return d }, a }(); w.registerComponent("Component", w), c.default = w, b.exports = c.default }, { "./utils/dom.js": 144, "./utils/events.js": 145, "./utils/fn.js": 146, "./utils/guid.js": 148, "./utils/log.js": 149, "./utils/merge-options.js": 150, "./utils/to-title-case.js": 153, "global/window": 8 }], 67: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../track-button.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = (function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); b.default = a }(k), a("./audio-track-menu-item.js")), m = d(l), n = function (a) { function b(c) { var d = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; e(this, b), d.tracks = c.audioTracks && c.audioTracks(), a.call(this, c, d), this.el_.setAttribute("aria-label", "Audio Menu") } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-audio-button " + a.prototype.buildCSSClass.call(this) }, b.prototype.createItems = function () { var a = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0], b = this.player_.audioTracks && this.player_.audioTracks(); if (!b) return a; for (var c = 0; c < b.length; c++) { var d = b[c]; a.push(new m.default(this.player_, { selectable: !0, track: d })) } return a }, b }(h.default); j.default.registerComponent("AudioTrackButton", n), c.default = n, b.exports = c.default }, { "../../component.js": 66, "../../utils/fn.js": 146, "../track-button.js": 97, "./audio-track-menu-item.js": 68 }], 68: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../menu/menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d) { var f = this; e(this, b); var g = d.track, h = c.audioTracks(); d.label = g.label || g.language || "Unknown", d.selected = g.enabled, a.call(this, c, d), this.track = g, h && function () { var a = l.bind(f, f.handleTracksChange); h.addEventListener("change", a), f.on("dispose", function () { h.removeEventListener("change", a) }) }() } return f(b, a), b.prototype.handleClick = function (b) { var c = this.player_.audioTracks(); if (a.prototype.handleClick.call(this, b), c) for (var d = 0; d < c.length; d++) { var e = c[d]; e === this.track && (e.enabled = !0) } }, b.prototype.handleTracksChange = function (a) { this.selected(this.track.enabled) }, b }(h.default); j.default.registerComponent("AudioTrackMenuItem", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu-item.js": 110, "../../utils/fn.js": 146 }], 69: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component.js"), h = d(g), i = a("./play-toggle.js"), j = (d(i), a("./time-controls/current-time-display.js")), k = (d(j), a("./time-controls/duration-display.js")), l = (d(k), a("./time-controls/time-divider.js")), m = (d(l), a("./time-controls/remaining-time-display.js")), n = (d(m), a("./live-display.js")), o = (d(n), a("./progress-control/progress-control.js")), p = (d(o), a("./fullscreen-toggle.js")), q = (d(p), a("./volume-control/volume-control.js")), r = (d(q), a("./volume-menu-button.js")), s = (d(r), a("./mute-toggle.js")), t = (d(s), a("./text-track-controls/chapters-button.js")), u = (d(t), a("./text-track-controls/descriptions-button.js")), v = (d(u), a("./text-track-controls/subtitles-button.js")), w = (d(v), a("./text-track-controls/captions-button.js")), x = (d(w), a("./audio-track-controls/audio-track-button.js")), y = (d(x), a("./playback-rate-menu/playback-rate-menu-button.js")), z = (d(y), a("./spacer-controls/custom-control-spacer.js")), A = (d(z), function (a) { function b() { e(this, b), a.apply(this, arguments) } return f(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-control-bar", dir: "ltr" }, { role: "group" }) }, b }(h.default)); A.prototype.options_ = { loadEvent: "play", children: ["playToggle", "volumeMenuButton", "currentTimeDisplay", "timeDivider", "durationDisplay", "progressControl", "liveDisplay", "remainingTimeDisplay", "customControlSpacer", "playbackRateMenuButton", "chaptersButton", "descriptionsButton", "subtitlesButton", "captionsButton", "audioTrackButton", "fullscreenToggle"] }, h.default.registerComponent("ControlBar", A), c.default = A, b.exports = c.default }, { "../component.js": 66, "./audio-track-controls/audio-track-button.js": 67, "./fullscreen-toggle.js": 70, "./live-display.js": 71, "./mute-toggle.js": 72, "./play-toggle.js": 73, "./playback-rate-menu/playback-rate-menu-button.js": 74, "./progress-control/progress-control.js": 79, "./spacer-controls/custom-control-spacer.js": 82, "./text-track-controls/captions-button.js": 85, "./text-track-controls/chapters-button.js": 86, "./text-track-controls/descriptions-button.js": 88, "./text-track-controls/subtitles-button.js": 90, "./time-controls/current-time-display.js": 93, "./time-controls/duration-display.js": 94, "./time-controls/remaining-time-display.js": 95, "./time-controls/time-divider.js": 96, "./volume-control/volume-control.js": 99, "./volume-menu-button.js": 102 }], 70: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../button.js"), h = d(g), i = a("../component.js"), j = d(i), k = a("../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d) { var f = this; e(this, b), a.call(this, c, d), c.on("ready", function () { f.player_.on("fullscreenchange", l.bind(f, f.updateHint)) }) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-fullscreen-control " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleClick = function () { this.player_.isFullscreen() ? this.player_.exitFullscreen() : this.player_.requestFullscreen(), this.updateHint() }, b.prototype.updateHint = function () { this.player_.isFullscreen() ? this.controlText("Exit fullscreen") : this.controlText("Fullscreen") }, b }(h.default); m.prototype.controlText_ = "Fullscreen", j.default.registerComponent("FullscreenToggle", m), c.default = m, b.exports = c.default }, { "../button.js": 63, "../component.js": 66, "../utils/fn.js": 146 }], 71: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("../component"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = a("../utils/dom.js"), i = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(h), j = function (a) { function b(c, e) { d(this, b), a.call(this, c, e), this.updateShowing(), this.on(this.player(), "durationchange", this.updateShowing) } return e(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, "div", { className: "vjs-live-control vjs-control" }); return this.contentEl_ = i.createEl("div", { className: "vjs-live-display", innerHTML: '' + this.localize("Stream Type") + "" + this.localize("LIVE") }, { "aria-live": "off" }), b.appendChild(this.contentEl_), b }, b.prototype.updateShowing = function () { this.player().duration() === 1 / 0 ? this.show() : this.hide() }, b }(g.default); g.default.registerComponent("LiveDisplay", j), c.default = j, b.exports = c.default }, { "../component": 66, "../utils/dom.js": 144 }], 72: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../button"), h = d(g), i = a("../component"), j = d(i), k = a("../utils/dom.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "volumechange", this.update), c.tech_ && !1 === c.tech_.featuresMutedControl && this.addClass("vjs-hidden"), this.on(c, "loadstart", function () { this.update(), !1 === c.tech_.featuresMutedControl ? this.addClass("vjs-hidden") : this.removeClass("vjs-hidden") }) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-mute-control " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleClick = function () { this.player_.muted(!this.player_.muted()) }, b.prototype.update = function () { var a = this.player_.volume(), b = 3; 0 === a || this.player_.muted() ? b = 0 : a < .33 ? b = 1 : a < .67 && (b = 2); var c = this.player_.muted() ? "Unmute" : "Mute"; this.controlText() !== c && this.controlText(c); for (var d = 0; d < 4; d++) l.removeElClass(this.el_, "vjs-vol-" + d); l.addElClass(this.el_, "vjs-vol-" + b) }, b }(h.default); m.prototype.controlText_ = "Mute", j.default.registerComponent("MuteToggle", m), c.default = m, b.exports = c.default }, { "../button": 63, "../component": 66, "../utils/dom.js": 144 }], 73: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../button.js"), h = d(g), i = a("../component.js"), j = d(i), k = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "play", this.handlePlay), this.on(c, "pause", this.handlePause) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-play-control " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleClick = function () { this.player_.paused() ? this.player_.play() : this.player_.pause() }, b.prototype.handlePlay = function () { this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.controlText("Pause") }, b.prototype.handlePause = function () { this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.controlText("Play") }, b }(h.default); k.prototype.controlText_ = "Play", j.default.registerComponent("PlayToggle", k), c.default = k, b.exports = c.default }, { "../button.js": 63, "../component.js": 66 }], 74: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../menu/menu-button.js"), h = d(g), i = a("../../menu/menu.js"), j = d(i), k = a("./playback-rate-menu-item.js"), l = d(k), m = a("../../component.js"), n = d(m), o = a("../../utils/dom.js"), p = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(o), q = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.updateVisibility(), this.updateLabel(), this.on(c, "loadstart", this.updateVisibility), this.on(c, "ratechange", this.updateLabel) } return f(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this); return this.labelEl_ = p.createEl("div", { className: "vjs-playback-rate-value", innerHTML: 1 }), b.appendChild(this.labelEl_), b }, b.prototype.buildCSSClass = function () { return "vjs-playback-rate " + a.prototype.buildCSSClass.call(this) }, b.prototype.createMenu = function () { var a = new j.default(this.player()), b = this.playbackRates(); if (b) for (var c = b.length - 1; c >= 0; c--) a.addChild(new l.default(this.player(), { rate: b[c] + "x" })); return a }, b.prototype.updateARIAAttributes = function () { this.el().setAttribute("aria-valuenow", this.player().playbackRate()) }, b.prototype.handleClick = function () { for (var a = this.player().playbackRate(), b = this.playbackRates(), c = b[0], d = 0; d < b.length; d++) if (b[d] > a) { c = b[d]; break } this.player().playbackRate(c) }, b.prototype.playbackRates = function () { return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates }, b.prototype.playbackRateSupported = function () { return this.player().tech_ && this.player().tech_.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0 }, b.prototype.updateVisibility = function () { this.playbackRateSupported() ? this.removeClass("vjs-hidden") : this.addClass("vjs-hidden") }, b.prototype.updateLabel = function () { this.playbackRateSupported() && (this.labelEl_.innerHTML = this.player().playbackRate() + "x") }, b }(h.default); q.prototype.controlText_ = "Playback Rate", n.default.registerComponent("PlaybackRateMenuButton", q), c.default = q, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu-button.js": 109, "../../menu/menu.js": 111, "../../utils/dom.js": 144, "./playback-rate-menu-item.js": 75 }], 75: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../menu/menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = function (a) { function b(c, d) { e(this, b); var f = d.rate, g = parseFloat(f, 10); d.label = f, d.selected = 1 === g, a.call(this, c, d), this.label = f, this.rate = g, this.on(c, "ratechange", this.update) } return f(b, a), b.prototype.handleClick = function () { a.prototype.handleClick.call(this), this.player().playbackRate(this.rate) }, b.prototype.update = function () { this.selected(this.player().playbackRate() === this.rate) }, b }(h.default); k.prototype.contentElType = "button", j.default.registerComponent("PlaybackRateMenuItem", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu-item.js": 110 }], 76: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("../../component.js"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = a("../../utils/dom.js"), i = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(h), j = function (a) { function b(c, e) { d(this, b), a.call(this, c, e), this.on(c, "progress", this.update) } return e(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-load-progress", innerHTML: '' + this.localize("Loaded") + ": 0%" }) }, b.prototype.update = function () { var a = this.player_.buffered(), b = this.player_.duration(), c = this.player_.bufferedEnd(), d = this.el_.children, e = function (a, b) { var c = a / b || 0; return 100 * (c >= 1 ? 1 : c) + "%" }; this.el_.style.width = e(c, b); for (var f = 0; f < a.length; f++) { var g = a.start(f), h = a.end(f), j = d[f]; j || (j = this.el_.appendChild(i.createEl())), j.style.left = e(g, c), j.style.width = e(h - g, c) } for (var f = d.length; f > a.length; f--) this.el_.removeChild(d[f - 1]) }, b }(g.default); g.default.registerComponent("LoadProgressBar", j), c.default = j, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144 }], 77: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("global/window"), i = e(h), j = a("../../component.js"), k = e(j), l = a("../../utils/dom.js"), m = d(l), n = a("../../utils/fn.js"), o = d(n), p = a("../../utils/format-time.js"), q = e(p), r = a("lodash-compat/function/throttle"), s = e(r), t = function (a) { function b(c, d) { var e = this; f(this, b), a.call(this, c, d), d.playerOptions && d.playerOptions.controlBar && d.playerOptions.controlBar.progressControl && d.playerOptions.controlBar.progressControl.keepTooltipsInside && (this.keepTooltipsInside = d.playerOptions.controlBar.progressControl.keepTooltipsInside), this.keepTooltipsInside && (this.tooltip = m.createEl("div", { className: "vjs-time-tooltip" }), this.el().appendChild(this.tooltip), this.addClass("vjs-keep-tooltips-inside")), this.update(0, 0, 0), c.on("ready", function () { var a = e.player_.controlBar.progressControl.el(); a.appendChild(e.tooltip), e.on(a, "mousemove", s.default(o.bind(e, e.handleMouseMove), 25)) }) } return g(b, a), b.prototype.createEl = function () { return this.tooltip = m.createEl("div", { className: "vjs-mouse-display-tooltip" }), a.prototype.createEl.call(this, "div", { className: "vjs-mouse-display" }) }, b.prototype.dispose = function () { this.tooltip.parentNode && this.tooltip.parentNode.removeChild(this.tooltip), m.removeElData(this.tooltip), this.tooltip = null, a.prototype.dispose.call(this) }, b.prototype.handleMouseMove = function (a) { var b = !1, c = this.player_.duration(); c || (b = !0, c = 100); var d = this.calculateDistance(a) * c, e = this.player().controlBar.progressControl.seekBar.width() - this.width(), f = a.pageX - m.findElPosition(this.el().parentNode).left; f = Math.min(Math.max(0, f), e); var g = this.tooltip.offsetWidth, h = this.tooltip.parentNode.offsetWidth - g, i = a.pageX - m.findElPosition(this.tooltip.parentNode).left - g / 2; i = Math.min(Math.max(0, i), h), this.update(d, f, i, b) }, b.prototype.update = function (a, b, c, d) { var e = d ? Math.round(a) + "%" : q.default(a, this.player_.duration()); if (this.el().style.left = b + "px", this.tooltip.innerHTML = e, this.keepTooltipsInside) { var f = this.clampPosition_(b), g = b - f + 1, h = parseFloat(i.default.getComputedStyle(this.tooltip).width), j = h / 2; this.tooltip.style.left = "auto", this.tooltip.style.right = "-" + (j - g) + "px" } else this.tooltip.style.right = "auto", this.tooltip.style.left = c + "px" }, b.prototype.calculateDistance = function (a) { return m.getPointerPosition(this.el().parentNode, a).x }, b.prototype.clampPosition_ = function (a) { if (!this.keepTooltipsInside) return a; var b = parseFloat(i.default.getComputedStyle(this.player().el()).width), c = parseFloat(i.default.getComputedStyle(this.tooltip).width), d = c / 2, e = a; return a < d ? e = Math.ceil(d) : a > b - d && (e = Math.floor(b - d)), e }, b }(k.default); k.default.registerComponent("MouseTimeDisplay", t), c.default = t, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/fn.js": 146, "../../utils/format-time.js": 147, "global/window": 8, "lodash-compat/function/throttle": 13 }], 78: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../../component.js"), i = e(h), j = a("../../utils/fn.js"), k = d(j), l = a("../../utils/dom.js"), m = (d(l), a("../../utils/format-time.js")), n = e(m), o = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.updateDataAttr(), this.on(c, "timeupdate", this.updateDataAttr), c.ready(k.bind(this, this.updateDataAttr)), d.playerOptions && d.playerOptions.controlBar && d.playerOptions.controlBar.progressControl && d.playerOptions.controlBar.progressControl.keepTooltipsInside && (this.keepTooltipsInside = d.playerOptions.controlBar.progressControl.keepTooltipsInside), this.keepTooltipsInside && this.addClass("vjs-keep-tooltips-inside") } return g(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-play-progress vjs-slider-bar", innerHTML: '' + this.localize("Progress") + ": 0%" }) }, b.prototype.updateDataAttr = function () { var a = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(); this.el_.setAttribute("data-current-time", n.default(a, this.player_.duration())) }, b }(i.default); i.default.registerComponent("PlayProgressBar", o), c.default = o, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/fn.js": 146, "../../utils/format-time.js": 147 }], 79: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../component.js"), h = d(g), i = a("./seek-bar.js"), j = (d(i), a("./mouse-time-display.js")), k = (d(j), function (a) { function b() { e(this, b), a.apply(this, arguments) } return f(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-progress-control vjs-control" }) }, b }(h.default)); k.prototype.options_ = { children: ["seekBar"] }, h.default.registerComponent("ProgressControl", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "./mouse-time-display.js": 77, "./seek-bar.js": 80 }], 80: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("global/window"), h = d(g), i = a("../../slider/slider.js"), j = d(i), k = a("../../component.js"), l = d(k), m = a("./load-progress-bar.js"), n = (d(m), a("./play-progress-bar.js")), o = (d(n), a("./tooltip-progress-bar.js")), p = (d(o), a("../../utils/fn.js")), q = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(p), r = a("../../utils/browser.js"), s = a("../../utils/format-time.js"), t = d(s), u = a("object.assign"), v = (d(u), function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "timeupdate", this.updateProgress), this.on(c, "ended", this.updateProgress), c.ready(q.bind(this, this.updateProgress)), d.playerOptions && d.playerOptions.controlBar && d.playerOptions.controlBar.progressControl && d.playerOptions.controlBar.progressControl.keepTooltipsInside && (this.keepTooltipsInside = d.playerOptions.controlBar.progressControl.keepTooltipsInside), this.keepTooltipsInside && (this.tooltipProgressBar = this.addChild("TooltipProgressBar")) } return f(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-progress-holder" }, { "aria-label": "progress bar" }) }, b.prototype.updateProgress = function () { if (this.updateAriaAttributes(this.el_), this.keepTooltipsInside) { this.updateAriaAttributes(this.tooltipProgressBar.el_), this.tooltipProgressBar.el_.style.width = this.bar.el_.style.width; var a = parseFloat(h.default.getComputedStyle(this.player().el()).width), b = parseFloat(h.default.getComputedStyle(this.tooltipProgressBar.tooltip).width), c = this.tooltipProgressBar.el().style; c.maxWidth = Math.floor(a - b / 2) + "px", c.minWidth = Math.ceil(b / 2) + "px", c.right = "-" + b / 2 + "px" } }, b.prototype.updateAriaAttributes = function (a) { var b = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(); a.setAttribute("aria-valuenow", (100 * this.getPercent()).toFixed(2)), a.setAttribute("aria-valuetext", t.default(b, this.player_.duration())) }, b.prototype.getPercent = function () { var a = this.player_.currentTime() / this.player_.duration(); return a >= 1 ? 1 : a }, b.prototype.handleMouseDown = function (b) { this.player_.scrubbing(!0), this.videoWasPlaying = !this.player_.paused(), this.player_.pause(), a.prototype.handleMouseDown.call(this, b) }, b.prototype.handleMouseMove = function (a) { var b = this.calculateDistance(a) * this.player_.duration(); b === this.player_.duration() && (b -= .1), this.player_.currentTime(b) }, b.prototype.handleMouseUp = function (b) { a.prototype.handleMouseUp.call(this, b), this.player_.scrubbing(!1), this.videoWasPlaying && this.player_.play() }, b.prototype.stepForward = function () { this.player_.currentTime(this.player_.currentTime() + 5) }, b.prototype.stepBack = function () { this.player_.currentTime(this.player_.currentTime() - 5) }, b }(j.default)); v.prototype.options_ = { children: ["loadProgressBar", "playProgressBar"], barName: "playProgressBar" }, r.IE_VERSION && !(r.IE_VERSION > 8) || r.IS_IOS || r.IS_ANDROID || v.prototype.options_.children.splice(1, 0, "mouseTimeDisplay"), v.prototype.playerEvent = "timeupdate", l.default.registerComponent("SeekBar", v), c.default = v, b.exports = c.default }, { "../../component.js": 66, "../../slider/slider.js": 119, "../../utils/browser.js": 141, "../../utils/fn.js": 146, "../../utils/format-time.js": 147, "./load-progress-bar.js": 76, "./play-progress-bar.js": 78, "./tooltip-progress-bar.js": 81, "global/window": 8, "object.assign": 53 }], 81: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../../component.js"), i = e(h), j = a("../../utils/fn.js"), k = d(j), l = a("../../utils/dom.js"), m = (d(l), a("../../utils/format-time.js")), n = e(m), o = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.updateDataAttr(), this.on(c, "timeupdate", this.updateDataAttr), c.ready(k.bind(this, this.updateDataAttr)) } return g(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, "div", { className: "vjs-tooltip-progress-bar vjs-slider-bar", innerHTML: '
\n ' + this.localize("Progress") + ": 0%" }); return this.tooltip = b.querySelector(".vjs-time-tooltip"), b }, b.prototype.updateDataAttr = function () { var a = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(), b = n.default(a, this.player_.duration()); this.el_.setAttribute("data-current-time", b), this.tooltip.innerHTML = b }, b }(i.default); i.default.registerComponent("TooltipProgressBar", o), c.default = o, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/fn.js": 146, "../../utils/format-time.js": 147 }], 82: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./spacer.js"), h = d(g), i = a("../../component.js"), j = d(i), k = function (a) { function b() { e(this, b), a.apply(this, arguments) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-custom-control-spacer " + a.prototype.buildCSSClass.call(this) }, b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, { className: this.buildCSSClass() }); return b.innerHTML = " ", b }, b }(h.default); j.default.registerComponent("CustomControlSpacer", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "./spacer.js": 83 }], 83: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("../../component.js"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a) { function b() { d(this, b), a.apply(this, arguments) } return e(b, a), b.prototype.buildCSSClass = function () { return "vjs-spacer " + a.prototype.buildCSSClass.call(this) }, b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: this.buildCSSClass() }) }, b }(g.default); g.default.registerComponent("Spacer", h), c.default = h, b.exports = c.default }, { "../../component.js": 66 }], 84: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./text-track-menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = function (a) { function b(c, d) { e(this, b), d.track = { kind: d.kind, player: c, label: d.kind + " settings", selectable: !1, default: !1, mode: "disabled" }, d.selectable = !1, a.call(this, c, d), this.addClass("vjs-texttrack-settings"), this.controlText(", opens " + d.kind + " settings dialog") } return f(b, a), b.prototype.handleClick = function () { this.player().getChild("textTrackSettings").show(), this.player().getChild("textTrackSettings").el_.focus() }, b }(h.default); j.default.registerComponent("CaptionSettingsMenuItem", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "./text-track-menu-item.js": 92 }], 85: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./text-track-button.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("./caption-settings-menu-item.js"), l = d(k), m = function (a) { function b(c, d, f) { e(this, b), a.call(this, c, d, f), this.el_.setAttribute("aria-label", "Captions Menu") } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-captions-button " + a.prototype.buildCSSClass.call(this) }, b.prototype.update = function () { var b = 2; a.prototype.update.call(this), this.player().tech_ && this.player().tech_.featuresNativeTextTracks && (b = 1), this.items && this.items.length > b ? this.show() : this.hide() }, b.prototype.createItems = function () { var b = []; return this.player().tech_ && this.player().tech_.featuresNativeTextTracks || b.push(new l.default(this.player_, { kind: this.kind_ })), a.prototype.createItems.call(this, b) }, b }(h.default); m.prototype.kind_ = "captions", m.prototype.controlText_ = "Captions", j.default.registerComponent("CaptionsButton", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "./caption-settings-menu-item.js": 84, "./text-track-button.js": 91 }], 86: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./text-track-button.js"), i = e(h), j = a("../../component.js"), k = e(j), l = a("./text-track-menu-item.js"), m = e(l), n = a("./chapters-track-menu-item.js"), o = e(n), p = a("../../menu/menu.js"), q = e(p), r = a("../../utils/dom.js"), s = d(r), t = a("../../utils/fn.js"), u = (d(t), a("../../utils/to-title-case.js")), v = e(u), w = a("global/window"), x = (e(w), function (a) { function b(c, d, e) { f(this, b), a.call(this, c, d, e), this.el_.setAttribute("aria-label", "Chapters Menu") } return g(b, a), b.prototype.buildCSSClass = function () { return "vjs-chapters-button " + a.prototype.buildCSSClass.call(this) }, b.prototype.createItems = function () { var a = [], b = this.player_.textTracks(); if (!b) return a; for (var c = 0; c < b.length; c++) { var d = b[c]; d.kind === this.kind_ && a.push(new m.default(this.player_, { track: d })) } return a }, b.prototype.createMenu = function () { for (var a = this, b = this.player_.textTracks() || [], c = void 0, d = this.items = [], e = 0, f = b.length; e < f; e++) { var g = b[e]; if (g.kind === this.kind_) { c = g; break } } var h = this.menu; if (void 0 === h) { h = new q.default(this.player_); var i = s.createEl("li", { className: "vjs-menu-title", innerHTML: v.default(this.kind_), tabIndex: -1 }); h.children_.unshift(i), s.insertElFirst(i, h.contentEl()) } if (c && null == c.cues) { c.mode = "hidden"; var j = this.player_.remoteTextTrackEls().getTrackElementByTrack_(c); j && j.addEventListener("load", function (b) { return a.update() }) } if (c && c.cues && c.cues.length > 0) { for (var k = c.cues, l = void 0, e = 0, m = k.length; e < m; e++) { l = k[e]; var n = new o.default(this.player_, { track: c, cue: l }); d.push(n), h.addChild(n) } this.addChild(h) } return this.items.length > 0 && this.show(), h }, b }(i.default)); x.prototype.kind_ = "chapters", x.prototype.controlText_ = "Chapters", k.default.registerComponent("ChaptersButton", x), c.default = x, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu.js": 111, "../../utils/dom.js": 144, "../../utils/fn.js": 146, "../../utils/to-title-case.js": 153, "./chapters-track-menu-item.js": 87, "./text-track-button.js": 91, "./text-track-menu-item.js": 92, "global/window": 8 }], 87: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../menu/menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d) { e(this, b); var f = d.track, g = d.cue, h = c.currentTime(); d.label = g.text, d.selected = g.startTime <= h && h < g.endTime, a.call(this, c, d), this.track = f, this.cue = g, f.addEventListener("cuechange", l.bind(this, this.update)) } return f(b, a), b.prototype.handleClick = function () { a.prototype.handleClick.call(this), this.player_.currentTime(this.cue.startTime), this.update(this.cue.startTime) }, b.prototype.update = function () { var a = this.cue, b = this.player_.currentTime(); this.selected(a.startTime <= b && b < a.endTime) }, b }(h.default); j.default.registerComponent("ChaptersTrackMenuItem", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu-item.js": 110, "../../utils/fn.js": 146 }], 88: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./text-track-button.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d, f) { var g = this; e(this, b), a.call(this, c, d, f), this.el_.setAttribute("aria-label", "Descriptions Menu"); var h = c.textTracks(); h && function () { var a = l.bind(g, g.handleTracksChange); h.addEventListener("change", a), g.on("dispose", function () { h.removeEventListener("change", a) }) }() } return f(b, a), b.prototype.handleTracksChange = function (a) { for (var b = this.player().textTracks(), c = !1, d = 0, e = b.length; d < e; d++) { var f = b[d]; if (f.kind !== this.kind_ && "showing" === f.mode) { c = !0; break } } c ? this.disable() : this.enable() }, b.prototype.buildCSSClass = function () { return "vjs-descriptions-button " + a.prototype.buildCSSClass.call(this) }, b }(h.default); m.prototype.kind_ = "descriptions", m.prototype.controlText_ = "Descriptions", j.default.registerComponent("DescriptionsButton", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../utils/fn.js": 146, "./text-track-button.js": 91 }], 89: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./text-track-menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = function (a) { function b(c, d) { e(this, b), d.track = { kind: d.kind, player: c, label: d.kind + " off", default: !1, mode: "disabled" }, d.selectable = !0, a.call(this, c, d), this.selected(!0) } return f(b, a), b.prototype.handleTracksChange = function (a) { for (var b = this.player().textTracks(), c = !0, d = 0, e = b.length; d < e; d++) { var f = b[d]; if (f.kind === this.track.kind && "showing" === f.mode) { c = !1; break } } this.selected(c) }, b }(h.default); j.default.registerComponent("OffTextTrackMenuItem", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "./text-track-menu-item.js": 92 }], 90: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./text-track-button.js"), h = d(g), i = a("../../component.js"), j = d(i), k = function (a) { function b(c, d, f) { e(this, b), a.call(this, c, d, f), this.el_.setAttribute("aria-label", "Subtitles Menu") } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-subtitles-button " + a.prototype.buildCSSClass.call(this) }, b }(h.default); k.prototype.kind_ = "subtitles", k.prototype.controlText_ = "Subtitles", j.default.registerComponent("SubtitlesButton", k), c.default = k, b.exports = c.default }, { "../../component.js": 66, "./text-track-button.js": 91 }], 91: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../track-button.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = (function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); b.default = a }(k), a("./text-track-menu-item.js")), m = d(l), n = a("./off-text-track-menu-item.js"), o = d(n), p = function (a) { function b(c) { var d = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; e(this, b), d.tracks = c.textTracks(), a.call(this, c, d) } return f(b, a), b.prototype.createItems = function () { var a = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0]; a.push(new o.default(this.player_, { kind: this.kind_ })); var b = this.player_.textTracks(); if (!b) return a; for (var c = 0; c < b.length; c++) { var d = b[c]; d.kind === this.kind_ && a.push(new m.default(this.player_, { selectable: !0, track: d })) } return a }, b }(h.default); j.default.registerComponent("TextTrackButton", p), c.default = p, b.exports = c.default }, { "../../component.js": 66, "../../utils/fn.js": 146, "../track-button.js": 97, "./off-text-track-menu-item.js": 89, "./text-track-menu-item.js": 92 }], 92: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../menu/menu-item.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = a("global/window"), n = d(m), o = a("global/document"), p = d(o), q = function (a) { function b(c, d) { var f = this; e(this, b); var g = d.track, h = c.textTracks(); d.label = g.label || g.language || "Unknown", d.selected = g.default || "showing" === g.mode, a.call(this, c, d), this.track = g, h && function () { var a = l.bind(f, f.handleTracksChange); h.addEventListener("change", a), f.on("dispose", function () { h.removeEventListener("change", a) }) }(), h && void 0 === h.onchange && function () { var a = void 0; f.on(["tap", "click"], function () { if ("object" != typeof n.default.Event) try { a = new n.default.Event("change") } catch (a) {} a || (a = p.default.createEvent("Event"), a.initEvent("change", !0, !0)), h.dispatchEvent(a) }) }() } return f(b, a), b.prototype.handleClick = function (b) { var c = this.track.kind, d = this.player_.textTracks(); if (a.prototype.handleClick.call(this, b), d) for (var e = 0; e < d.length; e++) { var f = d[e]; f.kind === c && (f === this.track ? f.mode = "showing" : f.mode = "disabled") } }, b.prototype.handleTracksChange = function (a) { this.selected("showing" === this.track.mode) }, b }(h.default); j.default.registerComponent("TextTrackMenuItem", q), c.default = q, b.exports = c.default }, { "../../component.js": 66, "../../menu/menu-item.js": 110, "../../utils/fn.js": 146, "global/document": 7, "global/window": 8 }], 93: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../component.js"), h = d(g), i = a("../../utils/dom.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("../../utils/format-time.js"), l = d(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "timeupdate", this.updateContent) } return f(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, "div", { className: "vjs-current-time vjs-time-control vjs-control" }); return this.contentEl_ = j.createEl("div", { className: "vjs-current-time-display", innerHTML: 'Current Time 0:00' }, { "aria-live": "off" }), b.appendChild(this.contentEl_), b }, b.prototype.updateContent = function () { var a = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime(), b = this.localize("Current Time"), c = l.default(a, this.player_.duration()); c !== this.formattedTime_ && (this.formattedTime_ = c, this.contentEl_.innerHTML = '' + b + " " + c) }, b }(h.default); h.default.registerComponent("CurrentTimeDisplay", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/format-time.js": 147 }], 94: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../component.js"), h = d(g), i = a("../../utils/dom.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("../../utils/format-time.js"), l = d(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "timeupdate", this.updateContent), this.on(c, "loadedmetadata", this.updateContent) } return f(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, "div", { className: "vjs-duration vjs-time-control vjs-control" }); return this.contentEl_ = j.createEl("div", { className: "vjs-duration-display", innerHTML: '' + this.localize("Duration Time") + " 0:00" }, { "aria-live": "off" }), b.appendChild(this.contentEl_), b }, b.prototype.updateContent = function () { var a = this.player_.duration(); if (a && this.duration_ !== a) { this.duration_ = a; var b = this.localize("Duration Time"), c = l.default(a); this.contentEl_.innerHTML = '' + b + " " + c } }, b }(h.default); h.default.registerComponent("DurationDisplay", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/format-time.js": 147 }], 95: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../component.js"), h = d(g), i = a("../../utils/dom.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("../../utils/format-time.js"), l = d(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "timeupdate", this.updateContent) } return f(b, a), b.prototype.createEl = function () { var b = a.prototype.createEl.call(this, "div", { className: "vjs-remaining-time vjs-time-control vjs-control" }); return this.contentEl_ = j.createEl("div", { className: "vjs-remaining-time-display", innerHTML: '' + this.localize("Remaining Time") + " -0:00" }, { "aria-live": "off" }), b.appendChild(this.contentEl_), b }, b.prototype.updateContent = function () { if (this.player_.duration()) { var a = this.localize("Remaining Time"), b = l.default(this.player_.remainingTime()); b !== this.formattedTime_ && (this.formattedTime_ = b, this.contentEl_.innerHTML = '' + a + " -" + b) } }, b }(h.default); h.default.registerComponent("RemainingTimeDisplay", m), c.default = m, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/format-time.js": 147 }], 96: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("../../component.js"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a) { function b() { d(this, b), a.apply(this, arguments) } return e(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-time-control vjs-time-divider", innerHTML: "
/
" }) }, b }(g.default); g.default.registerComponent("TimeDivider", h), c.default = h, b.exports = c.default }, { "../../component.js": 66 }], 97: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../menu/menu-button.js"), h = d(g), i = a("../component.js"), j = d(i), k = a("../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = function (a) { function b(c, d) { e(this, b); var f = d.tracks; if (a.call(this, c, d), this.items.length <= 1 && this.hide(), f) { var g = l.bind(this, this.update); f.addEventListener("removetrack", g), f.addEventListener("addtrack", g), this.player_.on("dispose", function () { f.removeEventListener("removetrack", g), f.removeEventListener("addtrack", g) }) } } return f(b, a), b }(h.default); j.default.registerComponent("TrackButton", m), c.default = m, b.exports = c.default }, { "../component.js": 66, "../menu/menu-button.js": 109, "../utils/fn.js": 146 }], 98: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../slider/slider.js"), h = d(g), i = a("../../component.js"), j = d(i), k = a("../../utils/fn.js"), l = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(k), m = a("./volume-level.js"), n = (d(m), a("./volume-display.js")), o = (d(n), function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "volumechange", this.updateARIAAttributes), c.ready(l.bind(this, this.updateARIAAttributes)) } return f(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-volume-bar vjs-slider-bar" }, { "aria-label": "volume level" }) }, b.prototype.handleMouseMove = function (a) { this.checkMuted(), this.player_.volume(this.calculateDistance(a)) }, b.prototype.checkMuted = function () { this.player_.muted() && this.player_.muted(!1) }, b.prototype.getPercent = function () { return this.player_.muted() ? 0 : this.player_.volume() }, b.prototype.stepForward = function () { this.checkMuted(), this.player_.volume(this.player_.volume() + .1) }, b.prototype.stepBack = function () { this.checkMuted(), this.player_.volume(this.player_.volume() - .1) }, b.prototype.updateARIAAttributes = function () { var a = (100 * this.player_.volume()).toFixed(2); this.el_.setAttribute("aria-valuenow", a), this.el_.setAttribute("aria-valuetext", a + "%") }, b }(h.default)); o.prototype.options_ = { children: ["volumeLevel", "volumeDisplay"], barName: "volumeLevel" }, o.prototype.playerEvent = "volumechange", j.default.registerComponent("VolumeBar", o), c.default = o, b.exports = c.default }, { "../../component.js": 66, "../../slider/slider.js": 119, "../../utils/fn.js": 146, "./volume-display.js": 100, "./volume-level.js": 101 }], 99: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../../component.js"), h = d(g), i = a("./volume-bar.js"), j = (d(i), function (a) { function b(c, d) { e(this, b), a.call(this, c, d), c.tech_ && !1 === c.tech_.featuresVolumeControl && this.addClass("vjs-hidden"), this.on(c, "loadstart", function () { !1 === c.tech_.featuresVolumeControl ? this.addClass("vjs-hidden") : this.removeClass("vjs-hidden") }) } return f(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-volume-control vjs-control" }) }, b }(h.default)); j.prototype.options_ = { children: ["volumeBar"] }, h.default.registerComponent("VolumeControl", j), c.default = j, b.exports = c.default }, { "../../component.js": 66, "./volume-bar.js": 98 }], 100: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../../component.js"), i = e(h), j = a("../../utils/dom.js"), k = d(j), l = a("../../utils/fn.js"), m = d(l), n = a("lodash-compat/function/throttle"), o = e(n), p = function (a) { function b(c, d) { var e = this; f(this, b), a.call(this, c, d), this.update(0, 0, 0), c.on("ready", function () { c.controlBar.progressControl.el().appendChild(e.tooltip), e.parent = c.controlBar.volumeMenuButton.volumeBar, e.on(e.parent.el(), "mousemove", o.default(m.bind(e, e.handleMouseMove), 25)), e.on(e.parent.el(), "mouseenter", o.default(m.bind(e, e.handleHover), 25)), e.on(e.parent.el(), "mouseleave", o.default(m.bind(e, e.handleLeave), 25)) }) } return g(b, a), b.prototype.createEl = function () { return this.className = "vjs-volume-display", this.tooltipClassName = this.className + "-tooltip", this.tooltip = k.createEl("div", { className: this.tooltipClassName }), a.prototype.createEl.call(this, "div", { className: this.className }) }, b.prototype.dispose = function () { this.tooltip.parentNode && this.tooltip.parentNode.removeChild(this.tooltip), k.removeElData(this.tooltip), this.tooltip = null, a.prototype.dispose.call(this) }, b.prototype.handleMouseMove = function (a) { var b = 100 * this.calculateDistance(a), c = this.parent.width() - this.width(), d = a.pageX - k.findElPosition(this.el().parentNode).left; d = Math.min(Math.max(0, d), c); var e = this.tooltip.offsetWidth, f = k.findElPosition(this.tooltip.parentNode).left, g = k.findElPosition(this.parent.el()).left - f - e / 2, h = g + this.parent.width(), i = a.pageX - f - e / 2; i = Math.min(Math.max(g, i), h), this.update(b, d, i) }, b.prototype.handleHover = function (a) { this.player_.trigger("tooltipShown"), k.addElClass(this.tooltip, this.tooltipClassName + "-active") }, b.prototype.handleLeave = function (a) { k.removeElClass(this.tooltip, this.tooltipClassName + "-active") }, b.prototype.update = function (a, b, c) { var d = Math.round(a) + "%"; this.el().style.left = b + "px", this.tooltip.style.left = c + "px", this.tooltip.innerHTML = d }, b.prototype.calculateDistance = function (a) { return k.getPointerPosition(this.el().parentNode, a).x }, b }(i.default); i.default.registerComponent("VolumeDisplay", p), c.default = p, b.exports = c.default }, { "../../component.js": 66, "../../utils/dom.js": 144, "../../utils/fn.js": 146, "lodash-compat/function/throttle": 13 }], 101: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("../../component.js"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a) { function b() { d(this, b), a.apply(this, arguments) } return e(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-volume-level", innerHTML: '' }) }, b }(g.default); g.default.registerComponent("VolumeLevel", h), c.default = h, b.exports = c.default }, { "../../component.js": 66 }], 102: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../utils/fn.js"), h = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(g), i = a("../component.js"), j = d(i), k = a("../popup/popup.js"), l = d(k), m = a("../popup/popup-button.js"), n = d(m), o = a("./mute-toggle.js"), p = d(o), q = a("./volume-control/volume-bar.js"), r = d(q), s = function (a) { function b(c) { function d() { var a = c.tech_ && !c.tech_.featuresMutedControl, b = c.tech_ && !c.tech_.featuresVolumeControl; this.toggleClass("vjs-hidden", a), this.toggleClass("vjs-no-volume", b), this.menuContent.toggleClass("vjs-hidden", b) } var f = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; e(this, b), void 0 === f.inline && (f.inline = !0), void 0 === f.vertical && (f.inline ? f.vertical = !1 : f.vertical = !0), f.volumeBar = f.volumeBar || {}, f.volumeBar.vertical = !!f.vertical, a.call(this, c, f), this.on(c, "volumechange", this.volumeUpdate), this.on(c, "loadstart", this.volumeUpdate), d.call(this), this.on(c, "loadstart", d), this.on(this.volumeBar, ["slideractive", "focus"], function () { this.addClass("vjs-slider-active") }), this.on(this.volumeBar, ["sliderinactive", "blur"], function () { this.removeClass("vjs-slider-active") }), this.on(this.volumeBar, ["focus"], function () { this.addClass("vjs-lock-showing") }), this.on(this.volumeBar, ["blur"], function () { this.removeClass("vjs-lock-showing") }) } return f(b, a), b.prototype.buildCSSClass = function () { var b = ""; return b = this.options_.vertical ? "vjs-volume-menu-button-vertical" : "vjs-volume-menu-button-horizontal", "vjs-volume-menu-button " + a.prototype.buildCSSClass.call(this) + " " + b }, b.prototype.createPopup = function () { var a = new l.default(this.player_, { contentElType: "div" }), b = new r.default(this.player_, this.options_.volumeBar); return a.addChild(b), this.menuContent = a, this.volumeBar = b, this.attachVolumeBarEvents(), a }, b.prototype.handleClick = function () { p.default.prototype.handleClick.call(this), a.prototype.handleClick.call(this) }, b.prototype.attachVolumeBarEvents = function () { this.menuContent.on(["mousedown", "touchdown"], h.bind(this, this.handleMouseDown)) }, b.prototype.handleMouseDown = function (a) { this.on(["mousemove", "touchmove"], h.bind(this.volumeBar, this.volumeBar.handleMouseMove)), this.on(this.el_.ownerDocument, ["mouseup", "touchend"], this.handleMouseUp) }, b.prototype.handleMouseUp = function (a) { this.off(["mousemove", "touchmove"], h.bind(this.volumeBar, this.volumeBar.handleMouseMove)) }, b }(n.default); s.prototype.volumeUpdate = p.default.prototype.update, s.prototype.controlText_ = "Mute", j.default.registerComponent("VolumeMenuButton", s), c.default = s, b.exports = c.default }, { "../component.js": 66, "../popup/popup-button.js": 115, "../popup/popup.js": 116, "../utils/fn.js": 146, "./mute-toggle.js": 72, "./volume-control/volume-bar.js": 98 }], 103: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./component"), h = d(g), i = a("./modal-dialog"), j = d(i), k = a("./utils/dom"), l = (function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); b.default = a }(k), a("./utils/merge-options")), m = d(l), n = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.on(c, "error", this.open) } return f(b, a), b.prototype.buildCSSClass = function () { return "vjs-error-display " + a.prototype.buildCSSClass.call(this) }, b.prototype.open = function () { var b = this.player().error(), c = this.options_.ignoreErr; return b && (!0 === c || "number" == typeof c && c === b.code || c instanceof Array && c.indexOf(b.code) >= 0) ? (this.player().addClass("vjs-error-hidden"), this) : a.prototype.open.call(this) }, b.prototype.close = function () { return this.player().removeClass("vjs-error-hidden"), a.prototype.close.call(this) }, b.prototype.content = function () { var a = this.player().error(); return a ? this.localize(a.message) : "" }, b }(j.default); n.prototype.options_ = m.default(j.default.prototype.options_, { fillAlways: !0, temporary: !1, uncloseable: !0, ignoreErr: !1 }), h.default.registerComponent("ErrorDisplay", n), c.default = n, b.exports = c.default }, { "./component": 66, "./modal-dialog": 112, "./utils/dom": 144, "./utils/merge-options": 150 }], 104: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("./utils/events.js"), e = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(d), f = function () {}; f.prototype.allowedEvents_ = {}, f.prototype.on = function (a, b) { var c = this.addEventListener; this.addEventListener = function () {}, e.on(this, a, b), this.addEventListener = c }, f.prototype.addEventListener = f.prototype.on, f.prototype.off = function (a, b) { e.off(this, a, b) }, f.prototype.removeEventListener = f.prototype.off, f.prototype.one = function (a, b) { var c = this.addEventListener; this.addEventListener = function () {}, e.one(this, a, b), this.addEventListener = c }, f.prototype.trigger = function (a) { var b = a.type || a; "string" == typeof a && (a = { type: b }), a = e.fixEvent(a), this.allowedEvents_[b] && this["on" + b] && this["on" + b](a), e.trigger(this, a) }, f.prototype.dispatchEvent = f.prototype.trigger, c.default = f, b.exports = c.default }, { "./utils/events.js": 145 }], 105: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("./utils/log"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = function (a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (a.super_ = b) }, g = function (a) { var b = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], c = function () { a.apply(this, arguments) }, d = {}; "object" == typeof b ? ("function" == typeof b.init && (e.default.warn("Constructor logic via init() is deprecated; please use constructor() instead."), b.constructor = b.init), b.constructor !== Object.prototype.constructor && (c = b.constructor), d = b) : "function" == typeof b && (c = b), f(c, a); for (var g in d) d.hasOwnProperty(g) && (c.prototype[g] = d[g]); return c }; c.default = g, b.exports = c.default }, { "./utils/log": 149 }], 106: [function (a, b, c) { "use strict"; c.__esModule = !0; for (var d = a("global/document"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = {}, g = [ ["requestFullscreen", "exitFullscreen", "fullscreenElement", "fullscreenEnabled", "fullscreenchange", "fullscreenerror"], ["webkitRequestFullscreen", "webkitExitFullscreen", "webkitFullscreenElement", "webkitFullscreenEnabled", "webkitfullscreenchange", "webkitfullscreenerror"], ["webkitRequestFullScreen", "webkitCancelFullScreen", "webkitCurrentFullScreenElement", "webkitCancelFullScreen", "webkitfullscreenchange", "webkitfullscreenerror"], ["mozRequestFullScreen", "mozCancelFullScreen", "mozFullScreenElement", "mozFullScreenEnabled", "mozfullscreenchange", "mozfullscreenerror"], ["msRequestFullscreen", "msExitFullscreen", "msFullscreenElement", "msFullscreenEnabled", "MSFullscreenChange", "MSFullscreenError"] ], h = g[0], i = void 0, j = 0; j < g.length; j++) if (g[j][1] in e.default) { i = g[j]; break } if (i) for (var j = 0; j < i.length; j++) f[h[j]] = i[j]; c.default = f, b.exports = c.default }, { "global/document": 7 }], 107: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function e(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var f = a("./component"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a) { function b() { d(this, b), a.apply(this, arguments) } return e(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-loading-spinner", dir: "ltr" }) }, b }(g.default); g.default.registerComponent("LoadingSpinner", h), c.default = h, b.exports = c.default }, { "./component": 66 }], 108: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("object.assign"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = function a(b) { "number" == typeof b ? this.code = b : "string" == typeof b ? this.message = b : "object" == typeof b && e.default(this, b), this.message || (this.message = a.defaultMessages[this.code] || "") }; f.prototype.code = 0, f.prototype.message = "", f.prototype.status = null, f.errorTypes = ["MEDIA_ERR_CUSTOM", "MEDIA_ERR_ABORTED", "MEDIA_ERR_NETWORK", "MEDIA_ERR_DECODE", "MEDIA_ERR_SRC_NOT_SUPPORTED", "MEDIA_ERR_ENCRYPTED"], f.defaultMessages = { 1: "You aborted the media playback", 2: "A network error caused the media download to fail part-way.", 3: "The media playback was aborted due to a corruption problem or because the media used features your browser did not support.", 4: "The media could not be loaded, either because the server or network failed or because the format is not supported.", 5: "The media is encrypted and we do not have the keys to decrypt it." }; for (var g = 0; g < f.errorTypes.length; g++) f[f.errorTypes[g]] = g, f.prototype[f.errorTypes[g]] = g; c.default = f, b.exports = c.default }, { "object.assign": 53 }], 109: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../clickable-component.js"), i = e(h), j = a("../component.js"), k = e(j), l = a("./menu.js"), m = e(l), n = a("../utils/dom.js"), o = d(n), p = a("../utils/fn.js"), q = d(p), r = a("../utils/to-title-case.js"), s = e(r), t = function (a) { function b(c) { var d = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; f(this, b), a.call(this, c, d), this.update(), this.enabled_ = !0, this.el_.setAttribute("aria-haspopup", "true"), this.el_.setAttribute("role", "menuitem"), this.on("keydown", this.handleSubmenuKeyPress) } return g(b, a), b.prototype.update = function () { var a = this.createMenu(); this.menu && this.removeChild(this.menu), this.menu = a, this.addChild(a), this.buttonPressed_ = !1, this.el_.setAttribute("aria-expanded", "false"), this.items && 0 === this.items.length ? this.hide() : this.items && this.items.length > 1 && this.show() }, b.prototype.createMenu = function () { var a = new m.default(this.player_); if (this.options_.title) { var b = o.createEl("li", { className: "vjs-menu-title", innerHTML: s.default(this.options_.title), tabIndex: -1 }); a.children_.unshift(b), o.insertElFirst(b, a.contentEl()) } if (this.items = this.createItems(), this.items) for (var c = 0; c < this.items.length; c++) a.addItem(this.items[c]); return a }, b.prototype.createItems = function () {}, b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: this.buildCSSClass() }) }, b.prototype.buildCSSClass = function () { var b = "vjs-menu-button"; return !0 === this.options_.inline ? b += "-inline" : b += "-popup", "vjs-menu-button " + b + " " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleClick = function () { this.one("mouseout", q.bind(this, function () { this.menu.unlockShowing(), this.el_.blur() })), this.buttonPressed_ ? this.unpressButton() : this.pressButton() }, b.prototype.handleKeyPress = function (b) { 27 === b.which || 9 === b.which ? (this.buttonPressed_ && this.unpressButton(), 9 !== b.which && b.preventDefault()) : 38 === b.which || 40 === b.which ? this.buttonPressed_ || (this.pressButton(), b.preventDefault()) : a.prototype.handleKeyPress.call(this, b) }, b.prototype.handleSubmenuKeyPress = function (a) { 27 !== a.which && 9 !== a.which || (this.buttonPressed_ && this.unpressButton(), 9 !== a.which && a.preventDefault()) }, b.prototype.pressButton = function () { this.enabled_ && (this.buttonPressed_ = !0, this.menu.lockShowing(), this.el_.setAttribute("aria-expanded", "true"), this.menu.focus()) }, b.prototype.unpressButton = function () { this.enabled_ && (this.buttonPressed_ = !1, this.menu.unlockShowing(), this.el_.setAttribute("aria-expanded", "false"), this.el_.focus()) }, b.prototype.disable = function () { return this.buttonPressed_ = !1, this.menu.unlockShowing(), this.el_.setAttribute("aria-expanded", "false"), this.enabled_ = !1, a.prototype.disable.call(this) }, b.prototype.enable = function () { return this.enabled_ = !0, a.prototype.enable.call(this) }, b.prototype.tooltipHandler = function () {}, b }(i.default); k.default.registerComponent("MenuButton", t), c.default = t, b.exports = c.default }, { "../clickable-component.js": 64, "../component.js": 66, "../utils/dom.js": 144, "../utils/fn.js": 146, "../utils/to-title-case.js": 153, "./menu.js": 111 }], 110: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../clickable-component.js"), h = d(g), i = a("../component.js"), j = d(i), k = a("object.assign"), l = d(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.selectable = d.selectable, this.selected(d.selected), this.selectable ? this.el_.setAttribute("role", "menuitemcheckbox") : this.el_.setAttribute("role", "menuitem") } return f(b, a), b.prototype.createEl = function (b, c, d) { return a.prototype.createEl.call(this, "li", l.default({ className: "vjs-menu-item", innerHTML: this.localize(this.options_.label), tabIndex: -1 }, c), d) }, b.prototype.handleClick = function () { this.selected(!0) }, b.prototype.selected = function (a) { this.selectable && (a ? (this.addClass("vjs-selected"), this.el_.setAttribute("aria-checked", "true"), this.controlText(", selected")) : (this.removeClass("vjs-selected"), this.el_.setAttribute("aria-checked", "false"), this.controlText(" "))) }, b.prototype.tooltipHandler = function () { if (void 0 !== this.options_.tooltip) return a.prototype.tooltipHandler.call(this) }, b }(h.default); j.default.registerComponent("MenuItem", m), c.default = m, b.exports = c.default }, { "../clickable-component.js": 64, "../component.js": 66, "object.assign": 53 }], 111: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component.js"), h = function (a) { return a && a.__esModule ? a : { default: a } }(g), i = a("../utils/dom.js"), j = d(i), k = a("../utils/fn.js"), l = d(k), m = a("../utils/events.js"), n = d(m), o = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.focusedChild_ = -1, this.on("keydown", this.handleKeyPress) } return f(b, a), b.prototype.addItem = function (a) { this.addChild(a), a.on("click", l.bind(this, function () { this.unlockShowing() })) }, b.prototype.createEl = function () { var b = this.options_.contentElType || "ul"; this.contentEl_ = j.createEl(b, { className: "vjs-menu-content" }), this.contentEl_.setAttribute("role", "menu"); var c = a.prototype.createEl.call(this, "div", { append: this.contentEl_, className: "vjs-menu" }); return c.setAttribute("role", "presentation"), c.appendChild(this.contentEl_), n.on(c, "click", function (a) { a.preventDefault(), a.stopImmediatePropagation() }), c }, b.prototype.handleKeyPress = function (a) { 37 === a.which || 40 === a.which ? (a.preventDefault(), this.stepForward()) : 38 !== a.which && 39 !== a.which || (a.preventDefault(), this.stepBack()) }, b.prototype.stepForward = function () { var a = 0; void 0 !== this.focusedChild_ && (a = this.focusedChild_ + 1), this.focus(a) }, b.prototype.stepBack = function () { var a = 0; void 0 !== this.focusedChild_ && (a = this.focusedChild_ - 1), this.focus(a) }, b.prototype.focus = function () { var a = arguments.length <= 0 || void 0 === arguments[0] ? 0 : arguments[0], b = this.children().slice(); b.length && b[0].className && /vjs-menu-title/.test(b[0].className) && b.shift(), b.length > 0 && (a < 0 ? a = 0 : a >= b.length && (a = b.length - 1), this.focusedChild_ = a, b[a].el_.focus()) }, b }(h.default); h.default.registerComponent("Menu", o), c.default = o, b.exports = c.default }, { "../component.js": 66, "../utils/dom.js": 144, "../utils/events.js": 145, "../utils/fn.js": 146 }], 112: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./utils/dom"), i = e(h), j = a("./utils/fn"), k = e(j), l = a("./utils/log"), m = (d(l), a("./component")), n = d(m), o = a("./close-button"), p = (d(o), "vjs-modal-dialog"), q = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.opened_ = this.hasBeenOpened_ = this.hasBeenFilled_ = !1, this.closeable(!this.options_.uncloseable), this.content(this.options_.content), this.contentEl_ = i.createEl("div", { className: p + "-content" }, { role: "document" }), this.descEl_ = i.createEl("p", { className: p + "-description vjs-offscreen", id: this.el().getAttribute("aria-describedby") }), i.textContent(this.descEl_, this.description()), this.el_.appendChild(this.descEl_), this.el_.appendChild(this.contentEl_) } return g(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: this.buildCSSClass(), tabIndex: -1 }, { "aria-describedby": this.id() + "_description", "aria-hidden": "true", "aria-label": this.label(), role: "dialog" }) }, b.prototype.buildCSSClass = function () { return p + " vjs-hidden " + a.prototype.buildCSSClass.call(this) }, b.prototype.handleKeyPress = function (a) { 27 === a.which && this.closeable() && this.close() }, b.prototype.label = function () { return this.options_.label || this.localize("Modal Window") }, b.prototype.description = function () { var a = this.options_.description || this.localize("This is a modal window."); return this.closeable() && (a += " " + this.localize("This modal can be closed by pressing the Escape key or activating the close button.")), a }, b.prototype.open = function () { if (!this.opened_) { var a = this.player(); this.trigger("beforemodalopen"), this.opened_ = !0, (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) && this.fill(), this.wasPlaying_ = !a.paused(), this.wasPlaying_ && a.pause(), this.closeable() && this.on(this.el_.ownerDocument, "keydown", k.bind(this, this.handleKeyPress)), a.controls(!1), this.show(), this.el().setAttribute("aria-hidden", "false"), this.trigger("modalopen"), this.hasBeenOpened_ = !0 } return this }, b.prototype.opened = function (a) { return "boolean" == typeof a && this[a ? "open" : "close"](), this.opened_ }, b.prototype.close = function () { if (this.opened_) { var a = this.player(); this.trigger("beforemodalclose"), this.opened_ = !1, this.wasPlaying_ && a.play(), this.closeable() && this.off(this.el_.ownerDocument, "keydown", k.bind(this, this.handleKeyPress)), a.controls(!0), this.hide(), this.el().setAttribute("aria-hidden", "true"), this.trigger("modalclose"), this.options_.temporary && this.dispose() } return this }, b.prototype.closeable = function (a) { if ("boolean" == typeof a) { var b = this.closeable_ = !!a, c = this.getChild("closeButton"); if (b && !c) { var d = this.contentEl_; this.contentEl_ = this.el_, c = this.addChild("closeButton"), this.contentEl_ = d, this.on(c, "close", this.close) }!b && c && (this.off(c, "close", this.close), this.removeChild(c), c.dispose()) } return this.closeable_ }, b.prototype.fill = function () { return this.fillWith(this.content()) }, b.prototype.fillWith = function (a) { var b = this.contentEl(), c = b.parentNode, d = b.nextSibling; return this.trigger("beforemodalfill"), this.hasBeenFilled_ = !0, c.removeChild(b), this.empty(), i.insertContent(b, a), this.trigger("modalfill"), d ? c.insertBefore(b, d) : c.appendChild(b), this }, b.prototype.empty = function () { return this.trigger("beforemodalempty"), i.emptyEl(this.contentEl()), this.trigger("modalempty"), this }, b.prototype.content = function (a) { return void 0 !== a && (this.content_ = a), this.content_ }, b }(n.default); q.prototype.options_ = { temporary: !0 }, n.default.registerComponent("ModalDialog", q), c.default = q, b.exports = c.default }, { "./close-button": 65, "./component": 66, "./utils/dom": 144, "./utils/fn": 146, "./utils/log": 149 }], 113: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./component.js"), i = e(h), j = a("global/document"), k = e(j), l = a("global/window"), m = e(l), n = a("./utils/events.js"), o = d(n), p = a("./utils/dom.js"), q = d(p), r = a("./utils/fn.js"), s = d(r), t = a("./utils/guid.js"), u = d(t), v = a("./utils/browser.js"), w = d(v), x = a("./utils/log.js"), y = e(x), z = a("./utils/to-title-case.js"), A = e(z), B = a("./utils/time-ranges.js"), C = a("./utils/buffer.js"), D = a("./utils/stylesheet.js"), E = d(D), F = a("./fullscreen-api.js"), G = e(F), H = a("./media-error.js"), I = e(H), J = a("safe-json-parse/tuple"), K = e(J), L = a("object.assign"), M = e(L), N = a("./utils/merge-options.js"), O = e(N), P = a("./tracks/text-track-list-converter.js"), Q = e(P), R = a("./tracks/audio-track-list.js"), S = e(R), T = a("./tracks/video-track-list.js"), U = e(T), V = a("./tech/loader.js"), W = (e(V), a("./poster-image.js")), X = (e(W), a("./tracks/text-track-display.js")), Y = (e(X), a("./loading-spinner.js")), Z = (e(Y), a("./big-play-button.js")), $ = (e(Z), a("./control-bar/control-bar.js")), _ = (e($), a("./error-display.js")), aa = (e(_), a("./tracks/text-track-settings.js")), ba = (e(aa), a("./modal-dialog")), ca = e(ba), da = a("./tech/tech.js"), ea = e(da), fa = a("./tech/html5.js"), ga = (e(fa), function (a) { function b(c, d, e) { var g = this; if (f(this, b), c.id = c.id || "vjs_video_" + u.newGUID(), d = M.default(b.getTagSettings(c), d), d.initChildren = !1, d.createEl = !1, d.reportTouchActivity = !1, a.call(this, null, d, e), !this.options_ || !this.options_.techOrder || !this.options_.techOrder.length) throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?"); this.tag = c, this.tagAttributes = c && q.getElAttributes(c), this.language(this.options_.language), d.languages ? function () { var a = {}; Object.getOwnPropertyNames(d.languages).forEach(function (b) { a[b.toLowerCase()] = d.languages[b] }), g.languages_ = a }() : this.languages_ = b.prototype.options_.languages, this.cache_ = {}, this.poster_ = d.poster || "", this.controls_ = !!d.controls, c.controls = !1, this.scrubbing_ = !1, this.el_ = this.createEl(); var h = O.default(this.options_); d.plugins && function () { var a = d.plugins; Object.getOwnPropertyNames(a).forEach(function (b) { "function" == typeof this[b] ? this[b](a[b]) : y.default.error("Unable to find plugin:", b) }, g) }(), this.options_.playerOptions = h, this.initChildren(), this.isAudio("audio" === c.nodeName.toLowerCase()), this.controls() ? this.addClass("vjs-controls-enabled") : this.addClass("vjs-controls-disabled"), this.el_.setAttribute("role", "region"), this.isAudio() ? this.el_.setAttribute("aria-label", "audio player") : this.el_.setAttribute("aria-label", "video player"), this.isAudio() && this.addClass("vjs-audio"), this.flexNotSupported_() && this.addClass("vjs-no-flex"), w.IS_IOS || this.addClass("vjs-workinghover"), b.players[this.id_] = this, this.userActive(!0), this.reportUserActivity(), this.listenForUserActivity_(), this.on("fullscreenchange", this.handleFullscreenChange_), this.on("stageclick", this.handleStageClick_) } return g(b, a), b.prototype.dispose = function () { this.trigger("dispose"), this.off("dispose"), this.styleEl_ && this.styleEl_.parentNode && this.styleEl_.parentNode.removeChild(this.styleEl_), b.players[this.id_] = null, this.tag && this.tag.player && (this.tag.player = null), this.el_ && this.el_.player && (this.el_.player = null), this.tech_ && this.tech_.dispose(), a.prototype.dispose.call(this) }, b.prototype.createEl = function () { var b = this.el_ = a.prototype.createEl.call(this, "div"), c = this.tag; c.removeAttribute("width"), c.removeAttribute("height"); var d = q.getElAttributes(c); if (Object.getOwnPropertyNames(d).forEach(function (a) { "class" === a ? b.className = d[a] : b.setAttribute(a, d[a]) }), c.playerId = c.id, c.id += "_html5_api", c.className = "vjs-tech", c.player = b.player = this, this.addClass("vjs-paused"), !0 !== m.default.VIDEOJS_NO_DYNAMIC_STYLE) { this.styleEl_ = E.createStyleElement("vjs-styles-dimensions"); var e = q.$(".vjs-styles-defaults"), f = q.$("head"); f.insertBefore(this.styleEl_, e ? e.nextSibling : f.firstChild) } this.width(this.options_.width), this.height(this.options_.height), this.fluid(this.options_.fluid), this.aspectRatio(this.options_.aspectRatio); for (var g = c.getElementsByTagName("a"), h = 0; h < g.length; h++) { var i = g.item(h); q.addElClass(i, "vjs-hidden"), i.setAttribute("hidden", "hidden") } return c.initNetworkState_ = c.networkState, c.parentNode && c.parentNode.insertBefore(b, c), q.insertElFirst(c, b), this.children_.unshift(c), this.el_ = b, b }, b.prototype.width = function (a) { return this.dimension("width", a) }, b.prototype.height = function (a) { return this.dimension("height", a) }, b.prototype.dimension = function (a, b) { var c = a + "_"; if (void 0 === b) return this[c] || 0; if ("" === b) this[c] = void 0; else { var d = parseFloat(b); if (isNaN(d)) return y.default.error('Improper value "' + b + '" supplied for for ' + a), this; this[c] = d } return this.updateStyleEl_(), this }, b.prototype.fluid = function (a) { if (void 0 === a) return !!this.fluid_; this.fluid_ = !!a, a ? this.addClass("vjs-fluid") : this.removeClass("vjs-fluid") }, b.prototype.aspectRatio = function (a) { if (void 0 === a) return this.aspectRatio_; if (!/^\d+\:\d+$/.test(a)) throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9."); this.aspectRatio_ = a, this.fluid(!0), this.updateStyleEl_() }, b.prototype.updateStyleEl_ = function () { if (!0 === m.default.VIDEOJS_NO_DYNAMIC_STYLE) { var a = "number" == typeof this.width_ ? this.width_ : this.options_.width, b = "number" == typeof this.height_ ? this.height_ : this.options_.height, c = this.tech_ && this.tech_.el(); return void(c && (a >= 0 && (c.width = a), b >= 0 && (c.height = b))) } var d = void 0, e = void 0, f = void 0, g = void 0; f = void 0 !== this.aspectRatio_ && "auto" !== this.aspectRatio_ ? this.aspectRatio_ : this.videoWidth() ? this.videoWidth() + ":" + this.videoHeight() : "16:9"; var h = f.split(":"), i = h[1] / h[0]; d = void 0 !== this.width_ ? this.width_ : void 0 !== this.height_ ? this.height_ / i : this.videoWidth() || 300, e = void 0 !== this.height_ ? this.height_ : d * i, g = /^[^a-zA-Z]/.test(this.id()) ? "dimensions-" + this.id() : this.id() + "-dimensions", this.addClass(g), E.setTextContent(this.styleEl_, "\n ." + g + " {\n width: " + d + "px;\n height: " + e + "px;\n }\n\n ." + g + ".vjs-fluid {\n padding-top: " + 100 * i + "%;\n }\n ") }, b.prototype.loadTech_ = function (a, b) { this.tech_ && this.unloadTech_(), "Html5" !== a && this.tag && (ea.default.getTech("Html5").disposeMediaElement(this.tag), this.tag.player = null, this.tag = null), this.techName_ = a, this.isReady_ = !1; var c = M.default({ nativeControlsForTouch: this.options_.nativeControlsForTouch, source: b, playerId: this.id(), techId: this.id() + "_" + a + "_api", videoTracks: this.videoTracks_, textTracks: this.textTracks_, audioTracks: this.audioTracks_, autoplay: this.options_.autoplay, playsinline: this.options_.playsinline, controls: this.options_.controls, preload: this.options_.preload, loop: this.options_.loop, muted: this.options_.muted, poster: this.poster(), language: this.language(), "vtt.js": this.options_["vtt.js"] }, this.options_[a.toLowerCase()]); this.tag && (c.tag = this.tag), b && (this.currentType_ = b.type, b.src === this.cache_.src && this.cache_.currentTime > 0 && (c.startTime = this.cache_.currentTime), this.cache_.src = b.src); var d = ea.default.getTech(a); d || (d = i.default.getComponent(a)), this.tech_ = new d(c), this.tech_.ready(s.bind(this, this.handleTechReady_), !0), Q.default.jsonToTextTracks(this.textTracksJson_ || [], this.tech_), this.on(this.tech_, "loadstart", this.handleTechLoadStart_), this.on(this.tech_, "waiting", this.handleTechWaiting_), this.on(this.tech_, "canplay", this.handleTechCanPlay_), this.on(this.tech_, "canplaythrough", this.handleTechCanPlayThrough_), this.on(this.tech_, "playing", this.handleTechPlaying_), this.on(this.tech_, "ended", this.handleTechEnded_), this.on(this.tech_, "seeking", this.handleTechSeeking_), this.on(this.tech_, "seeked", this.handleTechSeeked_), this.on(this.tech_, "play", this.handleTechPlay_), this.on(this.tech_, "firstplay", this.handleTechFirstPlay_), this.on(this.tech_, "pause", this.handleTechPause_), this.on(this.tech_, "progress", this.handleTechProgress_), this.on(this.tech_, "durationchange", this.handleTechDurationChange_), this.on(this.tech_, "fullscreenchange", this.handleTechFullscreenChange_), this.on(this.tech_, "error", this.handleTechError_), this.on(this.tech_, "suspend", this.handleTechSuspend_), this.on(this.tech_, "abort", this.handleTechAbort_), this.on(this.tech_, "emptied", this.handleTechEmptied_), this.on(this.tech_, "stalled", this.handleTechStalled_), this.on(this.tech_, "loadedmetadata", this.handleTechLoadedMetaData_), this.on(this.tech_, "loadeddata", this.handleTechLoadedData_), this.on(this.tech_, "timeupdate", this.handleTechTimeUpdate_), this.on(this.tech_, "ratechange", this.handleTechRateChange_), this.on(this.tech_, "volumechange", this.handleTechVolumeChange_), this.on(this.tech_, "texttrackchange", this.handleTechTextTrackChange_), this.on(this.tech_, "loadedmetadata", this.updateStyleEl_), this.on(this.tech_, "posterchange", this.handleTechPosterChange_), this.tech_.el().parentNode === this.el() || "Html5" === a && this.tag || q.insertElFirst(this.tech_.el(), this.el()), this.tag && (this.tag.player = null, this.tag = null) }, b.prototype.unloadTech_ = function () { this.videoTracks_ = this.videoTracks(), this.textTracks_ = this.textTracks(), this.audioTracks_ = this.audioTracks(), this.textTracksJson_ = Q.default.textTracksToJson(this.tech_), this.isReady_ = !1, this.tech_.dispose(), this.tech_ = !1 }, b.prototype.tech = function (a) { if (a && a.IWillNotUseThisInPlugins) return this.tech_; var b = "\n Please make sure that you are not using this inside of a plugin.\n To disable this alert and error, please pass in an object with\n `IWillNotUseThisInPlugins` to the `tech` method. See\n https://github.com/videojs/video.js/issues/2617 for more info.\n "; throw m.default.alert(b), new Error(b) }, b.prototype.addTechControlsListeners_ = function () { this.removeTechControlsListeners_(), this.on(this.tech_, "mousedown", this.handleTechClick_), this.on(this.tech_, "dblclick", this.handleTechDblClick_), this.on(this.tech_, "touchstart", this.handleTechTouchStart_), this.on(this.tech_, "touchmove", this.handleTechTouchMove_), this.on(this.tech_, "touchend", this.handleTechTouchEnd_), this.on(this.tech_, "tap", this.handleTechTap_) }, b.prototype.removeTechControlsListeners_ = function () { this.off(this.tech_, "tap", this.handleTechTap_), this.off(this.tech_, "touchstart", this.handleTechTouchStart_), this.off(this.tech_, "touchmove", this.handleTechTouchMove_), this.off(this.tech_, "touchend", this.handleTechTouchEnd_), this.off(this.tech_, "mousedown", this.handleTechClick_), this.off(this.tech_, "dblclick", this.handleTechDblClick_) }, b.prototype.handleTechReady_ = function () { this.usingNativeControls(this.techGet_("controls")), this.controls() && !this.usingNativeControls() && this.addTechControlsListeners_(), this.triggerReady(), this.cache_.volume && this.techCall_("setVolume", this.cache_.volume), this.handleTechPosterChange_(), this.handleTechDurationChange_(), this.src() && this.tag && this.options_.autoplay && this.paused() && (delete this.tag.poster, this.play()) }, b.prototype.handleTechLoadStart_ = function () { this.removeClass("vjs-ended"), this.removeClass("vjs-seeking"), this.error(null), this.paused() ? (this.hasStarted(!1), this.trigger("loadstart")) : (this.trigger("loadstart"), this.trigger("firstplay")) }, b.prototype.hasStarted = function (a) { return void 0 !== a ? (this.hasStarted_ !== a && (this.hasStarted_ = a, a ? (this.addClass("vjs-has-started"), this.trigger("firstplay")) : this.removeClass("vjs-has-started")), this) : !!this.hasStarted_ }, b.prototype.handleTechPlay_ = function () { this.removeClass("vjs-ended"), this.removeClass("vjs-paused"), this.addClass("vjs-playing"), this.hasStarted(!0), this.trigger("play") }, b.prototype.handleTechWaiting_ = function () { var a = this; this.addClass("vjs-waiting"), this.trigger("waiting"), this.one("timeupdate", function () { return a.removeClass("vjs-waiting") }) }, b.prototype.handleTechCanPlay_ = function () { this.removeClass("vjs-waiting"), this.trigger("canplay") }, b.prototype.handleTechCanPlayThrough_ = function () { this.removeClass("vjs-waiting"), this.trigger("canplaythrough") }, b.prototype.handleTechPlaying_ = function () { this.removeClass("vjs-waiting"), this.trigger("playing") }, b.prototype.handleTechSeeking_ = function () { this.addClass("vjs-seeking"), this.trigger("seeking") }, b.prototype.handleTechSeeked_ = function () { this.removeClass("vjs-seeking"), this.trigger("seeked") }, b.prototype.handleTechFirstPlay_ = function () { this.options_.starttime && this.currentTime(this.options_.starttime), this.addClass("vjs-has-started"), this.trigger("firstplay") }, b.prototype.handleTechPause_ = function () { this.removeClass("vjs-playing"), this.addClass("vjs-paused"), this.trigger("pause") }, b.prototype.handleTechProgress_ = function () { this.trigger("progress") }, b.prototype.handleTechEnded_ = function () { this.addClass("vjs-ended"), this.options_.loop ? (this.currentTime(0), this.play()) : this.paused() || this.pause(), this.trigger("ended") }, b.prototype.handleTechDurationChange_ = function () { this.duration(this.techGet_("duration")) }, b.prototype.toggleFullscreen_ = function () { this.isFullscreen() ? this.exitFullscreen() : this.requestFullscreen() }, b.prototype.handleTechClick_ = function (a) { if (("mousedown" !== a.type || 0 === a.button) && this.controls()) return this.techClickTimeout_ ? (this.clearTimeout(this.techClickTimeout_), this.techClickTimeout_ = null, void("msRequestFullscreen" !== G.default.requestFullscreen && this.toggleFullscreen_())) : void(this.techClickTimeout_ = this.setTimeout(function () { this.techClickTimeout_ = null, this.paused() ? this.play() : this.pause(), this.trigger("videoclick") }, 300)) }, b.prototype.handleTechDblClick_ = function () { "msRequestFullscreen" === G.default.requestFullscreen && this.toggleFullscreen_() }, b.prototype.handleTechTap_ = function (a) { this.userActive() || this.paused() ? this.handleTechClick_(a) : this.userActive(!0) }, b.prototype.handleTechTouchStart_ = function () { this.userWasActive = this.userActive() }, b.prototype.handleTechTouchMove_ = function () { this.userWasActive && this.reportUserActivity() }, b.prototype.handleTechTouchEnd_ = function (a) { a.preventDefault() }, b.prototype.handleFullscreenChange_ = function () { this.isFullscreen() ? this.addClass("vjs-fullscreen") : this.removeClass("vjs-fullscreen") }, b.prototype.handleStageClick_ = function () { this.reportUserActivity() }, b.prototype.handleTechFullscreenChange_ = function (a, b) { b && this.isFullscreen(b.isFullscreen), this.trigger("fullscreenchange") }, b.prototype.handleTechError_ = function () { var a = this.tech_.error(); this.error(a && a.code) }, b.prototype.handleTechSuspend_ = function () { this.trigger("suspend") }, b.prototype.handleTechAbort_ = function () { this.trigger("abort") }, b.prototype.handleTechEmptied_ = function () { this.trigger("emptied") }, b.prototype.handleTechStalled_ = function () { this.trigger("stalled") }, b.prototype.handleTechLoadedMetaData_ = function () { this.trigger("loadedmetadata") }, b.prototype.handleTechLoadedData_ = function () { this.trigger("loadeddata") }, b.prototype.handleTechTimeUpdate_ = function () { this.trigger("timeupdate") }, b.prototype.handleTechRateChange_ = function () { this.trigger("ratechange") }, b.prototype.handleTechVolumeChange_ = function () { this.trigger("volumechange") }, b.prototype.handleTechTextTrackChange_ = function () { this.trigger("texttrackchange") }, b.prototype.getCache = function () { return this.cache_ }, b.prototype.techCall_ = function (a, b) { if (!(this.hola && this.hola.tech_call && this.hola.tech_call(a, b))) if (this.tech_ && !this.tech_.isReady_) this.tech_.ready(function () { this[a](b) }, !0); else try { this.tech_ && this.tech_[a](b) } catch (a) { throw y.default(a), a } }, b.prototype.techGet_ = function (a) { if (this.tech_ && this.tech_.isReady_) try { return this.tech_[a]() } catch (b) { throw void 0 === this.tech_[a] ? y.default("Video.js: " + a + " method not defined for " + this.techName_ + " playback technology.", b) : "TypeError" === b.name ? (y.default("Video.js: " + a + " unavailable on " + this.techName_ + " playback technology element.", b), this.tech_.isReady_ = !1) : y.default(b), b } }, b.prototype.play = function () { return this.techCall_("play"), this }, b.prototype.pause = function () { return this.techCall_("pause"), this }, b.prototype.paused = function () { return !1 !== this.techGet_("paused") }, b.prototype.scrubbing = function (a) { return void 0 !== a ? (this.scrubbing_ = !!a, a ? this.addClass("vjs-scrubbing") : this.removeClass("vjs-scrubbing"), this) : this.scrubbing_ }, b.prototype.currentTime = function (a) { return void 0 !== a ? (this.techCall_("setCurrentTime", a), this) : this.cache_.currentTime = this.techGet_("currentTime") || 0 }, b.prototype.duration = function (a) { return void 0 === a ? this.cache_.duration || 0 : (a = parseFloat(a) || 0, a < 0 && (a = 1 / 0), a !== this.cache_.duration && (this.cache_.duration = a, a === 1 / 0 ? this.addClass("vjs-live") : this.removeClass("vjs-live"), this.trigger("durationchange")), this) }, b.prototype.remainingTime = function () { return this.duration() - this.currentTime() }, b.prototype.buffered = function () { var a = this.techGet_("buffered"); return a && a.length || (a = B.createTimeRange(0, 0)), a }, b.prototype.bufferedPercent = function () { return C.bufferedPercent(this.buffered(), this.duration()) }, b.prototype.bufferedEnd = function () { var a = this.buffered(), b = this.duration(), c = a.end(a.length - 1); return c > b && (c = b), c }, b.prototype.volume = function (a) { var b = void 0; return void 0 !== a ? (b = Math.max(0, Math.min(1, parseFloat(a))), this.cache_.volume = b, this.techCall_("setVolume", b), this) : (b = parseFloat(this.techGet_("volume")), isNaN(b) ? 1 : b) }, b.prototype.muted = function (a) { return void 0 !== a ? (this.techCall_("setMuted", a), this) : this.techGet_("muted") || !1 }, b.prototype.supportsFullScreen = function () { return this.techGet_("supportsFullScreen") || !1 }, b.prototype.isFullscreen = function (a) { return void 0 !== a ? (this.isFullscreen_ = !!a, this) : !!this.isFullscreen_ }, b.prototype.requestFullscreen = function () { var a = G.default; this.isFullscreen(!0); var b = !1 === k.default[a.fullscreenEnabled]; return a.requestFullscreen && !b ? (o.on(k.default, a.fullscreenchange, s.bind(this, function b(c) { this.isFullscreen(k.default[a.fullscreenElement]), !1 === this.isFullscreen() && o.off(k.default, a.fullscreenchange, b), this.trigger("fullscreenchange") })), this.el_[a.requestFullscreen]()) : this.tech_.supportsFullScreen() && !b ? this.techCall_("enterFullScreen") : (this.enterFullWindow(), this.trigger("fullscreenchange")), this }, b.prototype.exitFullscreen = function () { var a = G.default; this.isFullscreen(!1); var b = !1 === k.default[a.fullscreenEnabled]; return a.requestFullscreen && !b ? k.default[a.exitFullscreen]() : this.tech_.supportsFullScreen() && !b ? this.techCall_("exitFullScreen") : (this.exitFullWindow(), this.trigger("fullscreenchange")), this }, b.prototype.enterFullWindow = function () { this.isFullWindow = !0, this.docOrigOverflow = k.default.documentElement.style.overflow, o.on(k.default, "keydown", s.bind(this, this.fullWindowOnEscKey)), k.default.documentElement.style.overflow = "hidden", q.addElClass(k.default.body, "vjs-full-window"); for (var a = this.el_.parentNode; a && a !== k.default.body;) q.addElClass(a, "vjs-fake-fullscreen-parent"), a = a.parentNode; this.trigger("enterFullWindow") }, b.prototype.fullWindowOnEscKey = function (a) { 27 === a.keyCode && (!0 === this.isFullscreen() ? this.exitFullscreen() : this.exitFullWindow()) }, b.prototype.exitFullWindow = function () { this.isFullWindow = !1, o.off(k.default, "keydown", this.fullWindowOnEscKey), k.default.documentElement.style.overflow = this.docOrigOverflow, q.removeElClass(k.default.body, "vjs-full-window"); for (var a = this.el_.parentNode; a && a !== k.default.body;) q.removeElClass(a, "vjs-fake-fullscreen-parent"), a = a.parentNode; this.trigger("exitFullWindow") }, b.prototype.canPlayType = function (a) { for (var b = void 0, c = 0, d = this.options_.techOrder; c < d.length; c++) { var e = A.default(d[c]), f = ea.default.getTech(e); if (f || (f = i.default.getComponent(e)), f) { if (f.isSupported() && (b = f.canPlayType(a))) return b } else y.default.error('The "' + e + '" tech is undefined. Skipped browser support check for that tech.') } return "" }, b.prototype.selectSource = function (a) { var b = this.options_.techOrder.map(A.default).map(function (a) { return [a, ea.default.getTech(a) || i.default.getComponent(a)] }).filter(function (a) { var b = a[0], c = a[1]; return c ? c.isSupported() : (y.default.error('The "' + b + '" tech is undefined. Skipped browser support check for that tech.'), !1) }), c = function (a, b, c) { var d = void 0; return a.some(function (a) { return b.some(function (b) { if (d = c(a, b)) return !0 }) }), d }, d = function (a, b) { var c = a[0]; if (a[1].canPlaySource(b)) return { source: b, tech: c } }; return (this.options_.sourceOrder ? c(a, b, function (a) { return function (b, c) { return a(c, b) } }(d)) : c(b, a, d)) || !1 }, b.prototype.src = function (a) { if (void 0 === a) return this.techGet_("src"); var b = ea.default.getTech(this.techName_); return b || (b = i.default.getComponent(this.techName_)), Array.isArray(a) ? this.sourceList_(a) : "string" == typeof a ? this.src({ src: a }) : a instanceof Object && (a.type && !b.canPlaySource(a) ? this.sourceList_([a]) : (this.cache_.src = a.src, this.currentType_ = a.type || "", this.ready(function () { b.prototype.hasOwnProperty("setSource") ? this.techCall_("setSource", a) : this.techCall_("src", a.src), "auto" === this.options_.preload && this.load(), this.options_.autoplay && this.play() }, !0))), this }, b.prototype.sourceList_ = function (a) { var b = this.selectSource(a); b ? b.tech === this.techName_ ? this.src(b.source) : this.loadTech_(b.tech, b.source) : (this.setTimeout(function () { this.error({ code: 4, message: this.localize(this.options_.notSupportedMessage) }) }, 0), this.triggerReady()) }, b.prototype.load = function () { return this.techCall_("load"), this }, b.prototype.reset = function () { return this.loadTech_(A.default(this.options_.techOrder[0]), null), this.techCall_("reset"), this }, b.prototype.currentSrc = function () { return this.techGet_("currentSrc") || this.cache_.src || "" }, b.prototype.currentType = function () { return this.currentType_ || "" }, b.prototype.preload = function (a) { return void 0 !== a ? (this.techCall_("setPreload", a), this.options_.preload = a, this) : this.techGet_("preload") }, b.prototype.autoplay = function (a) { return void 0 !== a ? (this.techCall_("setAutoplay", a), this.options_.autoplay = a, this) : this.techGet_("autoplay", a) }, b.prototype.playsinline = function (a) { return void 0 !== a ? (this.techCall_("setPlaysinline", a), this.options_.playsinline = a, this) : this.techGet_("playsinline") }, b.prototype.loop = function (a) { return void 0 !== a ? (this.techCall_("setLoop", a), this.options_.loop = a, this) : this.techGet_("loop") }, b.prototype.poster = function (a) { return void 0 === a ? this.poster_ : (a || (a = ""), this.poster_ = a, this.techCall_("setPoster", a), this.trigger("posterchange"), this) }, b.prototype.handleTechPosterChange_ = function () { !this.poster_ && this.tech_ && this.tech_.poster && (this.poster_ = this.tech_.poster() || "", this.trigger("posterchange")) }, b.prototype.controls = function (a) { return void 0 !== a ? (a = !!a, this.controls_ !== a && (this.controls_ = a, this.usingNativeControls() && this.techCall_("setControls", a), a ? (this.removeClass("vjs-controls-disabled"), this.addClass("vjs-controls-enabled"), this.trigger("controlsenabled"), this.usingNativeControls() || this.addTechControlsListeners_()) : (this.removeClass("vjs-controls-enabled"), this.addClass("vjs-controls-disabled"), this.trigger("controlsdisabled"), this.usingNativeControls() || this.removeTechControlsListeners_())), this) : !!this.controls_ }, b.prototype.usingNativeControls = function (a) { return void 0 !== a ? (a = !!a, this.usingNativeControls_ !== a && (this.usingNativeControls_ = a, a ? (this.addClass("vjs-using-native-controls"), this.trigger("usingnativecontrols")) : (this.removeClass("vjs-using-native-controls"), this.trigger("usingcustomcontrols"))), this) : !!this.usingNativeControls_ }, b.prototype.error = function (a) { return void 0 === a ? this.error_ || null : null === a ? (this.error_ = a, this.removeClass("vjs-error"), this.errorDisplay.close(), this) : (a instanceof I.default ? this.error_ = a : this.error_ = new I.default(a), this.addClass("vjs-error"), y.default.error("(CODE:" + this.error_.code + " " + I.default.errorTypes[this.error_.code] + ")", this.error_.message, this.error_), this.trigger("error"), this) }, b.prototype.ended = function () { return this.techGet_("ended") }, b.prototype.seeking = function () { return this.techGet_("seeking") }, b.prototype.seekable = function () { return this.techGet_("seekable") }, b.prototype.reportUserActivity = function (a) { this.userActivity_ = !0 }, b.prototype.userActive = function (a) { return void 0 !== a ? (a = !!a, a !== this.userActive_ && (this.userActive_ = a, a ? (this.userActivity_ = !0, this.removeClass("vjs-user-inactive"), this.addClass("vjs-user-active"), this.trigger("useractive")) : (this.userActivity_ = !1, this.tech_ && this.tech_.one("mousemove", function (a) { a.stopPropagation(), a.preventDefault() }), this.removeClass("vjs-user-active"), this.addClass("vjs-user-inactive"), this.trigger("userinactive"))), this) : this.userActive_ }, b.prototype.listenForUserActivity_ = function () { var a = void 0, b = void 0, c = void 0, d = s.bind(this, this.reportUserActivity), e = function (a) { a.screenX === b && a.screenY === c || (b = a.screenX, c = a.screenY, d()) }, f = function (b) { d(), this.clearInterval(a), ("IFRAME" !== b.target.nodeName || b.isTrusted) && (a = this.setInterval(d, 250)) }, g = function (b) { d(), this.clearInterval(a) }; this.on("mousedown", f), this.on("mousemove", e), this.on("mouseup", g), this.on("keydown", d), this.on("keyup", d); var h = void 0; this.setInterval(function () { if (this.userActivity_) { this.userActivity_ = !1, this.userActive(!0), this.clearTimeout(h); var a = this.options_.inactivityTimeout; a > 0 && (h = this.setTimeout(function () { this.userActivity_ || this.userActive(!1) }, a)) } }, 250) }, b.prototype.playbackRate = function (a) { return void 0 !== a ? (this.techCall_("setPlaybackRate", a), this) : this.tech_ && this.tech_.featuresPlaybackRate ? this.techGet_("playbackRate") : 1 }, b.prototype.isAudio = function (a) { return void 0 !== a ? (this.isAudio_ = !!a, this) : !!this.isAudio_ }, b.prototype.networkState = function () { return this.techGet_("networkState") }, b.prototype.readyState = function () { return this.techGet_("readyState") }, b.prototype.videoTracks = function () { return this.tech_ ? this.tech_.videoTracks() : (this.videoTracks_ = this.videoTracks_ || new U.default, this.videoTracks_) }, b.prototype.audioTracks = function () { return this.tech_ ? this.tech_.audioTracks() : (this.audioTracks_ = this.audioTracks_ || new S.default, this.audioTracks_) }, b.prototype.textTracks = function () { return this.tech_ && this.tech_.textTracks() }, b.prototype.remoteTextTracks = function () { return this.tech_ && this.tech_.remoteTextTracks() }, b.prototype.remoteTextTrackEls = function () { return this.tech_ && this.tech_.remoteTextTrackEls() }, b.prototype.addTextTrack = function (a, b, c) { return this.tech_ && this.tech_.addTextTrack(a, b, c) }, b.prototype.addRemoteTextTrack = function (a) { return this.tech_ && this.tech_.addRemoteTextTrack(a) }, b.prototype.removeRemoteTextTrack = function () { var a = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0], b = a.track, c = void 0 === b ? arguments[0] : b; this.tech_ && this.tech_.removeRemoteTextTrack(c) }, b.prototype.videoWidth = function () { return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0 }, b.prototype.videoHeight = function () { return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0 }, b.prototype.language = function (a) { return void 0 === a ? this.language_ : (this.language_ = ("" + a).toLowerCase(), this) }, b.prototype.languages = function () { return O.default(b.prototype.options_.languages, this.languages_) }, b.prototype.toJSON = function () { var a = O.default(this.options_), b = a.tracks; a.tracks = []; for (var c = 0; c < b.length; c++) { var d = b[c]; d = O.default(d), d.player = void 0, a.tracks[c] = d } return a }, b.prototype.createModal = function (a, b) { var c = this; b = b || {}, b.content = a || ""; var d = new ca.default(c, b); return c.addChild(d), d.on("dispose", function () { c.removeChild(d) }), d.open() }, b.getTagSettings = function (a) { var b = { sources: [], tracks: [] }, c = q.getElAttributes(a), d = c["data-setup"]; if (null !== d) { var e = K.default(d || "{}"), f = e[0], g = e[1]; f && y.default.error(f), M.default(c, g) } if (M.default(b, c), a.hasChildNodes()) for (var h = a.childNodes, i = 0, j = h.length; i < j; i++) { var k = h[i], l = k.nodeName.toLowerCase(); "source" === l ? b.sources.push(q.getElAttributes(k)) : "track" === l && b.tracks.push(q.getElAttributes(k)) } return b }, b }(i.default)); ga.players = {}; var ha = m.default.navigator; ga.prototype.options_ = { techOrder: ["html5", "flash"], html5: {}, flash: {}, defaultVolume: 0, inactivityTimeout: 2e3, playbackRates: [], children: ["mediaLoader", "posterImage", "textTrackDisplay", "loadingSpinner", "bigPlayButton", "controlBar", "errorDisplay", "textTrackSettings"], language: k.default.getElementsByTagName("html")[0].getAttribute("lang") || ha.languages && ha.languages[0] || ha.userLanguage || ha.language || "en", languages: {}, notSupportedMessage: "No compatible source was found for this media." }, ga.prototype.handleLoadedMetaData_, ga.prototype.handleLoadedData_, ga.prototype.handleUserActive_, ga.prototype.handleUserInactive_, ga.prototype.handleTimeUpdate_, ga.prototype.handleTechEnded_, ga.prototype.handleVolumeChange_, ga.prototype.handleError_, ga.prototype.flexNotSupported_ = function () { var a = k.default.createElement("i"); return !("flexBasis" in a.style || "webkitFlexBasis" in a.style || "mozFlexBasis" in a.style || "msFlexBasis" in a.style || "msFlexOrder" in a.style) }, i.default.registerComponent("Player", ga), c.default = ga, b.exports = c.default }, { "./big-play-button.js": 62, "./component.js": 66, "./control-bar/control-bar.js": 69, "./error-display.js": 103, "./fullscreen-api.js": 106, "./loading-spinner.js": 107, "./media-error.js": 108, "./modal-dialog": 112, "./poster-image.js": 117, "./tech/html5.js": 122, "./tech/loader.js": 123, "./tech/tech.js": 124, "./tracks/audio-track-list.js": 126, "./tracks/text-track-display.js": 131, "./tracks/text-track-list-converter.js": 132, "./tracks/text-track-settings.js": 134, "./tracks/video-track-list.js": 139, "./utils/browser.js": 141, "./utils/buffer.js": 142, "./utils/dom.js": 144, "./utils/events.js": 145, "./utils/fn.js": 146, "./utils/guid.js": 148, "./utils/log.js": 149, "./utils/merge-options.js": 150, "./utils/stylesheet.js": 151, "./utils/time-ranges.js": 152, "./utils/to-title-case.js": 153, "global/document": 7, "global/window": 8, "object.assign": 53, "safe-json-parse/tuple": 57 }], 114: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("./player.js"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = function (a, b) { e.default.prototype[a] = b }; c.default = f, b.exports = c.default }, { "./player.js": 113 }], 115: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../clickable-component.js"), i = e(h), j = a("../component.js"), k = e(j), l = a("./popup.js"), m = (e(l), a("../utils/dom.js")), n = (d(m), a("../utils/fn.js")), o = (d(n), a("../utils/to-title-case.js")), p = (e(o), function (a) { function b(c) { var d = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; f(this, b), a.call(this, c, d), this.update() } return g(b, a), b.prototype.update = function () { var a = this.createPopup(); this.popup && this.removeChild(this.popup), this.popup = a, this.addChild(a), this.items && 0 === this.items.length ? this.hide() : this.items && this.items.length > 1 && this.show() }, b.prototype.createPopup = function () {}, b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: this.buildCSSClass() }) }, b.prototype.buildCSSClass = function () { var b = "vjs-menu-button"; return !0 === this.options_.inline ? b += "-inline" : b += "-popup", "vjs-menu-button " + b + " " + a.prototype.buildCSSClass.call(this) }, b.prototype.tooltipHandler = function () {}, b }(i.default)); k.default.registerComponent("PopupButton", p), c.default = p, b.exports = c.default }, { "../clickable-component.js": 64, "../component.js": 66, "../utils/dom.js": 144, "../utils/fn.js": 146, "../utils/to-title-case.js": 153, "./popup.js": 116 }], 116: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component.js"), h = function (a) { return a && a.__esModule ? a : { default: a } }(g), i = a("../utils/dom.js"), j = d(i), k = a("../utils/fn.js"), l = d(k), m = a("../utils/events.js"), n = d(m), o = function (a) { function b() { e(this, b), a.apply(this, arguments) } return f(b, a), b.prototype.addItem = function (a) { this.addChild(a), a.on("click", l.bind(this, function () { this.unlockShowing() })) }, b.prototype.createEl = function () { var b = this.options_.contentElType || "ul"; this.contentEl_ = j.createEl(b, { className: "vjs-menu-content" }); var c = a.prototype.createEl.call(this, "div", { append: this.contentEl_, className: "vjs-menu" }); return c.appendChild(this.contentEl_), n.on(c, "click", function (a) { a.preventDefault(), a.stopImmediatePropagation() }), c }, b }(h.default); h.default.registerComponent("Popup", o), c.default = o, b.exports = c.default }, { "../component.js": 66, "../utils/dom.js": 144, "../utils/events.js": 145, "../utils/fn.js": 146 }], 117: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./clickable-component.js"), i = e(h), j = a("./component.js"), k = e(j), l = a("./utils/fn.js"), m = d(l), n = a("./utils/dom.js"), o = d(n), p = a("./utils/browser.js"), q = d(p), r = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.update(), c.on("posterchange", m.bind(this, this.update)) } return g(b, a), b.prototype.dispose = function () { this.player().off("posterchange", this.update), a.prototype.dispose.call(this) }, b.prototype.createEl = function () { var a = o.createEl("div", { className: "vjs-poster", tabIndex: -1 }); return q.BACKGROUND_SIZE_SUPPORTED || (this.fallbackImg_ = o.createEl("img"), a.appendChild(this.fallbackImg_)), a }, b.prototype.update = function () { var a = this.player().poster(); this.setSrc(a), a ? this.show() : this.hide() }, b.prototype.setSrc = function (a) { if (this.fallbackImg_) this.fallbackImg_.src = a; else { var b = ""; a && (b = 'url("' + a + '")'), this.el_.style.backgroundImage = b } }, b.prototype.handleClick = function () { this.player_.paused() ? this.player_.play() : this.player_.pause() }, b }(i.default); k.default.registerComponent("PosterImage", r), c.default = r, b.exports = c.default }, { "./clickable-component.js": 64, "./component.js": 66, "./utils/browser.js": 141, "./utils/dom.js": 144, "./utils/fn.js": 146 }], 118: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } c.__esModule = !0; var e = a("./utils/events.js"), f = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(e), g = a("global/document"), h = d(g), i = a("global/window"), j = d(i), k = !1, l = void 0, m = function () { var a = h.default.getElementsByTagName("video"), b = h.default.getElementsByTagName("audio"), c = []; if (a && a.length > 0) for (var d = 0, e = a.length; d < e; d++) c.push(a[d]); if (b && b.length > 0) for (var d = 0, e = b.length; d < e; d++) c.push(b[d]); if (c && c.length > 0) for (var d = 0, e = c.length; d < e; d++) { var f = c[d]; if (!f || !f.getAttribute) { n(1); break } if (void 0 === f.player) { var g = f.getAttribute("data-setup"); if (null !== g) { l(f) } } } else k || n(1) }, n = function (a, b) { b && (l = b), setTimeout(m, a) }; "complete" === h.default.readyState ? k = !0 : f.one(j.default, "load", function () { k = !0 }); var o = function () { return k }; c.autoSetup = m, c.autoSetupTimeout = n, c.hasLoaded = o }, { "./utils/events.js": 145, "global/document": 7, "global/window": 8 }], 119: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component.js"), h = d(g), i = a("../utils/dom.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("object.assign"), l = d(k), m = function (a) { function b(c, d) { e(this, b), a.call(this, c, d), this.bar = this.getChild(this.options_.barName), this.vertical(!!this.options_.vertical), this.on("mousedown", this.handleMouseDown), this.on("touchstart", this.handleMouseDown), this.on("focus", this.handleFocus), this.on("blur", this.handleBlur), this.on("click", this.handleClick), this.on(c, "controlsvisible", this.update), this.on(c, this.playerEvent, this.update) } return f(b, a), b.prototype.createEl = function (b) { var c = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], d = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2]; return c.className = c.className + " vjs-slider", c = l.default({ tabIndex: 0 }, c), d = l.default({ role: "slider", "aria-valuenow": 0, "aria-valuemin": 0, "aria-valuemax": 100, tabIndex: 0 }, d), a.prototype.createEl.call(this, b, c, d) }, b.prototype.handleMouseDown = function (a) { var b = this.bar.el_.ownerDocument; a.preventDefault(), j.blockTextSelection(), this.addClass("vjs-sliding"), this.trigger("slideractive"), this.on(b, "mousemove", this.handleMouseMove), this.on(b, "mouseup", this.handleMouseUp), this.on(b, "touchmove", this.handleMouseMove), this.on(b, "touchend", this.handleMouseUp), this.handleMouseMove(a) }, b.prototype.handleMouseMove = function () {}, b.prototype.handleMouseUp = function () { var a = this.bar.el_.ownerDocument; j.unblockTextSelection(), this.removeClass("vjs-sliding"), this.trigger("sliderinactive"), this.off(a, "mousemove", this.handleMouseMove), this.off(a, "mouseup", this.handleMouseUp), this.off(a, "touchmove", this.handleMouseMove), this.off(a, "touchend", this.handleMouseUp), this.update() }, b.prototype.update = function () { if (this.el_) { var a = this.getPercent(), b = this.bar; if (b) { ("number" != typeof a || a !== a || a < 0 || a === 1 / 0) && (a = 0); var c = (100 * a).toFixed(2) + "%"; this.vertical() ? b.el().style.height = c : b.el().style.width = c } } }, b.prototype.calculateDistance = function (a) { var b = j.getPointerPosition(this.el_, a); return this.vertical() ? b.y : b.x }, b.prototype.handleFocus = function () { this.on(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress) }, b.prototype.handleKeyPress = function (a) { 37 === a.which || 40 === a.which ? (a.preventDefault(), this.stepBack()) : 38 !== a.which && 39 !== a.which || (a.preventDefault(), this.stepForward()) }, b.prototype.handleBlur = function () { this.off(this.bar.el_.ownerDocument, "keydown", this.handleKeyPress) }, b.prototype.handleClick = function (a) { a.stopImmediatePropagation(), a.preventDefault() }, b.prototype.vertical = function (a) { return void 0 === a ? this.vertical_ || !1 : (this.vertical_ = !!a, this.vertical_ ? this.addClass("vjs-slider-vertical") : this.addClass("vjs-slider-horizontal"), this) }, b }(h.default); h.default.registerComponent("Slider", m), c.default = m, b.exports = c.default }, { "../component.js": 66, "../utils/dom.js": 144, "object.assign": 53 }], 120: [function (a, b, c) { "use strict"; function d(a) { return a.streamingFormats = { "rtmp/mp4": "MP4", "rtmp/flv": "FLV" }, a.streamFromParts = function (a, b) { return a + "&" + b }, a.streamToParts = function (a) { var b = { connection: "", stream: "" }; if (!a) return b; var c = a.search(/&(?!\w+=)/), d = void 0; return -1 !== c ? d = c + 1 : 0 === (c = d = a.lastIndexOf("/") + 1) && (c = d = a.length), b.connection = a.substring(0, c), b.stream = a.substring(d, a.length), b }, a.isStreamingType = function (b) { return b in a.streamingFormats }, a.RTMP_RE = /^rtmp[set]?:\/\//i, a.isStreamingSrc = function (b) { return a.RTMP_RE.test(b) }, a.rtmpSourceHandler = {}, a.rtmpSourceHandler.canPlayType = function (b) { return a.isStreamingType(b) ? "maybe" : "" }, a.rtmpSourceHandler.canHandleSource = function (b) { var c = a.rtmpSourceHandler.canPlayType(b.type); return c || (a.isStreamingSrc(b.src) ? "maybe" : "") }, a.rtmpSourceHandler.handleSource = function (b, c, d) { var e = a.streamToParts(b.src); c.setRtmpConnection(e.connection), c.setRtmpStream(e.stream) }, a.registerSourceHandler(a.rtmpSourceHandler), a } c.__esModule = !0, c.default = d, b.exports = c.default }, {}], 121: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } function h(a) { z[a] = function () { return this.el_.vjs_getProperty(a) } } c.__esModule = !0; for (var i = a("./tech"), j = e(i), k = a("../utils/dom.js"), l = d(k), m = a("../utils/url.js"), n = d(m), o = a("../utils/time-ranges.js"), p = a("./flash-rtmp"), q = e(p), r = a("../component"), s = e(r), t = a("global/window"), u = e(t), v = a("object.assign"), w = e(v), x = u.default.navigator, y = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), c.source && this.ready(function () { this.setSource(c.source) }, !0), c.startTime && this.ready(function () { this.load(), this.play(), this.currentTime(c.startTime) }, !0), u.default.videojs = u.default.videojs || {}, u.default.videojs.Flash = u.default.videojs.Flash || {}, u.default.videojs.Flash.onReady = b.onReady, u.default.videojs.Flash.onEvent = b.onEvent, u.default.videojs.Flash.onError = b.onError, this.on("seeked", function () { this.lastSeekTarget_ = void 0 }) } return g(b, a), b.prototype.createEl = function () { var a = this.options_; a.swf || (a.swf = "//cdn.rawgit.com/hola/video-js-swf-sv/v5.1.0-4/dist/video-js.swf"); var c = a.techId; a.accelerated && (a.params = w.default(a.params || {}, { allowfullscreen: !0, wmode: "direct" })); var d = w.default({ readyFunction: "videojs.Flash.onReady", eventProxyFunction: "videojs.Flash.onEvent", errorEventProxyFunction: "videojs.Flash.onError", accelerated: a.accelerated, autoplay: a.autoplay, controls: a.controls, poster: a.poster, preload: a.preload, loop: a.loop, muted: a.muted }, a.flashVars), e = w.default({ allowfullscreen: !0, wmode: "opaque", bgcolor: "#000000" }, a.params), f = w.default({ id: c, name: c, class: "vjs-tech" }, a.attributes); return this.el_ = b.embed(a.swf, d, e, f), this.el_.tech = this, this.el_ }, b.prototype.play = function () { this.ended() && this.setCurrentTime(0), this.el_.vjs_play() }, b.prototype.pause = function () { this.el_.vjs_pause() }, b.prototype.src = function (a) { return void 0 === a ? this.currentSrc() : this.setSrc(a) }, b.prototype.setSrc = function (a) { if (a = n.getAbsoluteURL(a), this.el_.vjs_src(a), this.autoplay()) { var b = this; this.setTimeout(function () { b.play() }, 0) } }, b.prototype.seeking = function () { return void 0 !== this.lastSeekTarget_ }, b.prototype.setCurrentTime = function (b) { var c = this.seekable(); c.length && (b = b > c.start(0) ? b : c.start(0), b = b < c.end(c.length - 1) ? b : c.end(c.length - 1), this.lastSeekTarget_ = b, this.trigger("seeking"), this.el_.vjs_setProperty("currentTime", b), a.prototype.setCurrentTime.call(this)) }, b.prototype.currentTime = function (a) { return this.seeking() ? this.lastSeekTarget_ || 0 : this.el_.vjs_getProperty("currentTime") }, b.prototype.currentSrc = function () { return this.currentSource_ ? this.currentSource_.src : this.el_.vjs_getProperty("currentSrc") }, b.prototype.load = function () { this.el_.vjs_load() }, b.prototype.seekable = function () { var a = this.duration(); return 0 === a ? o.createTimeRange() : o.createTimeRange(0, a) }, b.prototype.buffered = function () { var a = this.el_.vjs_getProperty("buffered"); return 0 === a.length ? o.createTimeRange() : o.createTimeRange(a[0][0], a[0][1]) }, b.prototype.supportsFullScreen = function () { return !1 }, b.prototype.enterFullScreen = function () { return !1 }, b }(j.default), z = y.prototype, A = "rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted,poster".split(","), B = "networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoWidth,videoHeight".split(","), C = 0; C < A.length; C++) h(A[C]), function (a) { var b = a.charAt(0).toUpperCase() + a.slice(1); z["set" + b] = function (b) { return this.el_.vjs_setProperty(a, b) } }(A[C]); for (var C = 0; C < B.length; C++) h(B[C]); y.isSupported = function () { return y.version()[0] >= 10 }, j.default.withSourceHandlers(y), y.nativeSourceHandler = {}, y.nativeSourceHandler.canPlayType = function (a) { return a in y.formats ? "maybe" : "" }, y.nativeSourceHandler.canHandleSource = function (a) { var b; return b = a.type ? a.type.replace(/;.*/, "").toLowerCase() : function (a) { var b = n.getFileExtension(a); return b ? "video/" + b : "" }(a.src), y.nativeSourceHandler.canPlayType(b) }, y.nativeSourceHandler.handleSource = function (a, b, c) { b.setSrc(a.src) }, y.nativeSourceHandler.dispose = function () {}, y.registerSourceHandler(y.nativeSourceHandler), y.formats = { "video/flv": "FLV", "video/x-flv": "FLV", "video/mp4": "MP4", "video/m4v": "MP4" }, y.onReady = function (a) { var b = l.getEl(a), c = b && b.tech; c && c.el() && y.checkReady(c) }, y.checkReady = function (a) { a.el() && (a.el().vjs_getProperty ? a.triggerReady() : this.setTimeout(function () { y.checkReady(a) }, 50)) }, y.onEvent = function (a, b) { l.getEl(a).tech.trigger(b) }, y.onError = function (a, b) { var c = l.getEl(a).tech; if ("srcnotfound" === b) return c.error(4); c.error("FLASH: " + b) }, y.version = function () { var a = "0,0,0"; try { a = new u.default.ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g, ",").match(/^,?(.+),?$/)[1] } catch (b) { try { x.mimeTypes["application/x-shockwave-flash"].enabledPlugin && (a = (x.plugins["Shockwave Flash 2.0"] || x.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1]) } catch (a) {} } return a.split(",") }, y.embed = function (a, b, c, d) { var e = y.getEmbedCode(a, b, c, d); return l.createEl("div", { innerHTML: e }).childNodes[0] }, y.getEmbedCode = function (a, b, c, d) { var e = "", f = "", g = ""; return b && Object.getOwnPropertyNames(b).forEach(function (a) { e += a + "=" + b[a] + "&" }), c = w.default({ movie: a, flashvars: e, allowScriptAccess: "always", allowNetworking: "all" }, c), Object.getOwnPropertyNames(c).forEach(function (a) { f += '' }), d = w.default({ data: a, width: "100%", height: "100%" }, d), Object.getOwnPropertyNames(d).forEach(function (a) { g += a + '="' + d[a] + '" ' }), '" + f + "" }, q.default(y), s.default.registerComponent("Flash", y), j.default.registerTech("Flash", y), c.default = y, b.exports = c.default }, { "../component": 66, "../utils/dom.js": 144, "../utils/time-ranges.js": 152, "../utils/url.js": 154, "./flash-rtmp": 120, "./tech": 124, "global/window": 8, "object.assign": 53 }], 122: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = function (a, b) { return a.raw = b, a }(["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used. \n This may prevent text tracks from loading."], ["Text Tracks are being loaded from another origin but the crossorigin attribute isn't used. \n This may prevent text tracks from loading."]), i = a("./tech.js"), j = e(i), k = a("../component"), l = e(k), m = a("../utils/dom.js"), n = d(m), o = a("../utils/url.js"), p = d(o), q = a("../utils/fn.js"), r = d(q), s = a("../utils/log.js"), t = e(s), u = a("tsml"), v = e(u), w = a("../../../src/js/tracks/text-track.js"), x = (e(w), a("../utils/browser.js")), y = d(x), z = a("global/document"), A = e(z), B = a("global/window"), C = e(B), D = a("object.assign"), E = e(D), F = a("../utils/merge-options.js"), G = e(F), H = a("../utils/to-title-case.js"), I = e(H), J = function (a) { function b(c, d) { var e = this; f(this, b), a.call(this, c, d); var g = c.source, i = !1; if (g && (this.el_.currentSrc !== g.src || c.tag && 3 === c.tag.initNetworkState_) ? this.setSource(g) : this.handleLateInit_(this.el_), this.el_.hasChildNodes()) { for (var j = this.el_.childNodes, k = j.length, l = []; k--;) { var m = j[k]; "track" === m.nodeName.toLowerCase() && (this.featuresNativeTextTracks ? (this.remoteTextTrackEls().addTrackElement_(m), this.remoteTextTracks().addTrack_(m.track), i || this.el_.hasAttribute("crossorigin") || !p.isCrossOrigin(m.src) || (i = !0)) : l.push(m)) } for (var n = 0; n < l.length; n++) this.el_.removeChild(l[n]) }["audio", "video"].forEach(function (a) { var b = I.default(a); if (e["featuresNative" + b + "Tracks"]) { var c = e.el()[a + "Tracks"]; c && c.addEventListener && (c.addEventListener("change", r.bind(e, e["handle" + b + "TrackChange_"])), c.addEventListener("addtrack", r.bind(e, e["handle" + b + "TrackAdd_"])), c.addEventListener("removetrack", r.bind(e, e["handle" + b + "TrackRemove_"]))) } }), this.featuresNativeTextTracks && (i && t.default.warn(v.default(h)), this.handleTextTrackChange_ = r.bind(this, this.handleTextTrackChange), this.handleTextTrackAdd_ = r.bind(this, this.handleTextTrackAdd), this.handleTextTrackRemove_ = r.bind(this, this.handleTextTrackRemove), this.proxyNativeTextTracks_()), (y.TOUCH_ENABLED || y.IS_IPHONE || y.IS_NATIVE_ANDROID) && !0 === c.nativeControlsForTouch && this.setControls(!0), this.triggerReady() } return g(b, a), b.prototype.dispose = function () { var c = this; ["audio", "video", "text"].forEach(function (a) { var b = I.default(a), d = c.el_[a + "Tracks"]; d && d.removeEventListener && (d.removeEventListener("change", c["handle" + b + "TrackChange_"]), d.removeEventListener("addtrack", c["handle" + b + "TrackAdd_"]), d.removeEventListener("removetrack", c["handle" + b + "TrackRemove_"])) }), b.disposeMediaElement(this.el_), a.prototype.dispose.call(this) }, b.prototype.createEl = function () { var a = this.options_.tag; if (!a || !1 === this.movingMediaElementInDOM) if (a) { var c = a.cloneNode(!0); a.parentNode.insertBefore(c, a), b.disposeMediaElement(a), a = c } else { a = A.default.createElement("video"); var d = this.options_.tag && n.getElAttributes(this.options_.tag), e = G.default({}, d); y.TOUCH_ENABLED && !0 === this.options_.nativeControlsForTouch || delete e.controls, n.setElAttributes(a, E.default(e, { id: this.options_.techId, class: "vjs-tech" })) } for (var f = ["autoplay", "preload", "loop", "muted", "playsinline"], g = f.length - 1; g >= 0; g--) { var h = f[g], i = {}; void 0 !== this.options_[h] && (i[h] = this.options_[h]), n.setElAttributes(a, i) } return a }, b.prototype.handleLateInit_ = function (a) { var b = this; if (0 !== a.networkState && 3 !== a.networkState) { if (0 === a.readyState) { var c = function () { var a = !1, c = function () { a = !0 }; b.on("loadstart", c); var d = function () { a || this.trigger("loadstart") }; return b.on("loadedmetadata", d), b.ready(function () { this.off("loadstart", c), this.off("loadedmetadata", d), a || this.trigger("loadstart") }), { v: void 0 } }(); if ("object" == typeof c) return c.v } var d = ["loadstart"]; d.push("loadedmetadata"), a.readyState >= 2 && d.push("loadeddata"), a.readyState >= 3 && d.push("canplay"), a.readyState >= 4 && d.push("canplaythrough"), this.ready(function () { d.forEach(function (a) { this.trigger(a) }, this) }) } }, b.prototype.proxyNativeTextTracks_ = function () { var a = this.el().textTracks; if (a) { for (var b = 0; b < a.length; b++) this.textTracks().addTrack_(a[b]); a.addEventListener && (a.addEventListener("change", this.handleTextTrackChange_), a.addEventListener("addtrack", this.handleTextTrackAdd_), a.addEventListener("removetrack", this.handleTextTrackRemove_)) } }, b.prototype.handleTextTrackChange = function (a) { var b = this.textTracks(); this.textTracks().trigger({ type: "change", target: b, currentTarget: b, srcElement: b }) }, b.prototype.handleTextTrackAdd = function (a) { this.textTracks().addTrack_(a.track) }, b.prototype.handleTextTrackRemove = function (a) { this.textTracks().removeTrack_(a.track) }, b.prototype.handleVideoTrackChange_ = function (a) { var b = this.videoTracks(); this.videoTracks().trigger({ type: "change", target: b, currentTarget: b, srcElement: b }) }, b.prototype.handleVideoTrackAdd_ = function (a) { this.videoTracks().addTrack_(a.track) }, b.prototype.handleVideoTrackRemove_ = function (a) { this.videoTracks().removeTrack_(a.track) }, b.prototype.handleAudioTrackChange_ = function (a) { var b = this.audioTracks(); this.audioTracks().trigger({ type: "change", target: b, currentTarget: b, srcElement: b }) }, b.prototype.handleAudioTrackAdd_ = function (a) { this.audioTracks().addTrack_(a.track) }, b.prototype.handleAudioTrackRemove_ = function (a) { this.audioTracks().removeTrack_(a.track) }, b.prototype.play = function () { var a = this.el_.play(); void 0 !== a && "function" == typeof a.then && a.then(null, function (a) {}) }, b.prototype.pause = function () { this.el_.pause() }, b.prototype.paused = function () { return this.el_.paused }, b.prototype.currentTime = function () { return this.el_.currentTime }, b.prototype.setCurrentTime = function (a) { try { this.el_.currentTime = a } catch (a) { t.default(a, "Video is not ready. (Video.js)") } }, b.prototype.duration = function () { return this.el_.duration || 0 }, b.prototype.buffered = function () { return this.el_.buffered }, b.prototype.volume = function () { return this.el_.volume }, b.prototype.setVolume = function (a) { this.el_.volume = a }, b.prototype.muted = function () { return this.el_.muted }, b.prototype.setMuted = function (a) { this.el_.muted = a }, b.prototype.width = function () { return this.el_.offsetWidth }, b.prototype.height = function () { return this.el_.offsetHeight }, b.prototype.supportsFullScreen = function () { if ("function" == typeof this.el_.webkitEnterFullScreen) { var a = C.default.navigator.userAgent; if (/Android/.test(a) || !/Chrome|Mac OS X 10.5/.test(a)) return !0 } return !1 }, b.prototype.enterFullScreen = function () { var a = this.el_; "webkitDisplayingFullscreen" in a && this.one("webkitbeginfullscreen", function () { this.one("webkitendfullscreen", function () { this.trigger("fullscreenchange", { isFullscreen: !1 }) }), this.trigger("fullscreenchange", { isFullscreen: !0 }) }), a.paused && a.networkState <= a.HAVE_METADATA ? (this.play(), this.setTimeout(function () { a.pause(), a.webkitEnterFullScreen() }, 0)) : a.webkitEnterFullScreen() }, b.prototype.exitFullScreen = function () { this.el_.webkitExitFullScreen() }, b.prototype.src = function (a) { if (void 0 === a) return this.el_.src; this.setSrc(a) }, b.prototype.setSrc = function (a) { this.el_.src = a }, b.prototype.load = function () { this.el_.load() }, b.prototype.reset = function () { b.resetMediaElement(this.el_) }, b.prototype.currentSrc = function () { return this.currentSource_ ? this.currentSource_.src : this.el_.currentSrc }, b.prototype.poster = function () { return this.el_.poster }, b.prototype.setPoster = function (a) { this.el_.poster = a }, b.prototype.preload = function () { return this.el_.preload }, b.prototype.setPreload = function (a) { this.el_.preload = a }, b.prototype.autoplay = function () { return this.el_.autoplay }, b.prototype.setAutoplay = function (a) { this.el_.autoplay = a }, b.prototype.controls = function () { return this.el_.controls }, b.prototype.setControls = function (a) { this.el_.controls = !!a }, b.prototype.loop = function () { return this.el_.loop }, b.prototype.setLoop = function (a) { this.el_.loop = a }, b.prototype.error = function () { return this.el_.error }, b.prototype.seeking = function () { return this.el_.seeking }, b.prototype.seekable = function () { return this.el_.seekable }, b.prototype.ended = function () { return this.el_.ended }, b.prototype.defaultMuted = function () { return this.el_.defaultMuted }, b.prototype.playbackRate = function () { return this.el_.playbackRate }, b.prototype.played = function () { return this.el_.played }, b.prototype.setPlaybackRate = function (a) { this.el_.playbackRate = a }, b.prototype.networkState = function () { return this.el_.networkState }, b.prototype.readyState = function () { return this.el_.readyState }, b.prototype.videoWidth = function () { return this.el_.videoWidth }, b.prototype.videoHeight = function () { return this.el_.videoHeight }, b.prototype.textTracks = function () { return a.prototype.textTracks.call(this) }, b.prototype.addTextTrack = function (b, c, d) { return this.featuresNativeTextTracks ? this.el_.addTextTrack(b, c, d) : a.prototype.addTextTrack.call(this, b, c, d) }, b.prototype.addRemoteTextTrack = function () { var b = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; if (!this.featuresNativeTextTracks) return a.prototype.addRemoteTextTrack.call(this, b); var c = A.default.createElement("track"); return b.kind && (c.kind = b.kind), b.label && (c.label = b.label), (b.language || b.srclang) && (c.srclang = b.language || b.srclang), b.default && (c.default = b.default), b.id && (c.id = b.id), b.src && (c.src = b.src), this.el().appendChild(c), this.remoteTextTrackEls().addTrackElement_(c), this.remoteTextTracks().addTrack_(c.track), c }, b.prototype.removeRemoteTextTrack = function (b) { if (!this.featuresNativeTextTracks) return a.prototype.removeRemoteTextTrack.call(this, b); var c = void 0, d = void 0, e = this.remoteTextTrackEls().getTrackElementByTrack_(b); for (this.remoteTextTrackEls().removeTrackElement_(e), this.remoteTextTracks().removeTrack_(b), c = this.$$("track"), d = c.length; d--;) b !== c[d] && b !== c[d].track || this.el().removeChild(c[d]) }, b.prototype.playsinline = function () { return this.el_.hasAttribute("playsinline") }, b.prototype.setPlaysinline = function (a) { a ? this.el_.setAttribute("playsinline", "playsinline") : this.el_.removeAttribute("playsinline") }, b }(j.default); J.TEST_VID = A.default.createElement("video"); var K = A.default.createElement("track"); K.kind = "captions", K.srclang = "en", K.label = "English", J.TEST_VID.appendChild(K), J.isSupported = function () { try { J.TEST_VID.volume = .5 } catch (a) { return !1 } return !!J.TEST_VID.canPlayType }, j.default.withSourceHandlers(J), J.nativeSourceHandler = {}, J.nativeSourceHandler.canPlayType = function (a) { try { return J.TEST_VID.canPlayType(a) } catch (a) { return "" } }, J.nativeSourceHandler.canHandleSource = function (a) { var b; return a.type ? J.nativeSourceHandler.canPlayType(a.type) : a.src ? (b = p.getFileExtension(a.src), J.nativeSourceHandler.canPlayType("video/" + b)) : "" }, J.nativeSourceHandler.handleSource = function (a, b, c) { b.setSrc(a.src) }, J.nativeSourceHandler.dispose = function () {}, J.registerSourceHandler(J.nativeSourceHandler), J.canControlVolume = function () { var a = J.TEST_VID.volume; return J.TEST_VID.volume = a / 2 + .1, a !== J.TEST_VID.volume }, J.canControlMuted = function () { return J.TEST_VID.muted = !1, !J.TEST_VID.muted && (J.TEST_VID.muted = !0, J.TEST_VID.muted) }, J.canControlPlaybackRate = function () { var a = J.TEST_VID.playbackRate; return J.TEST_VID.playbackRate = a / 2 + .1, a !== J.TEST_VID.playbackRate }, J.supportsNativeTextTracks = function () { return y.IS_ANY_SAFARI }, J.supportsNativeVideoTracks = function () { return !!J.TEST_VID.videoTracks }, J.supportsNativeAudioTracks = function () { return !!J.TEST_VID.audioTracks }, J.Events = ["loadstart", "suspend", "abort", "error", "emptied", "stalled", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "playing", "waiting", "seeking", "seeked", "ended", "durationchange", "timeupdate", "progress", "play", "pause", "ratechange", "volumechange"], J.prototype.featuresVolumeControl = J.canControlVolume(), J.prototype.featuresMutedControl = J.canControlMuted(), J.prototype.featuresPlaybackRate = J.canControlPlaybackRate(), J.prototype.movingMediaElementInDOM = !y.IS_IOS, J.prototype.featuresFullscreenResize = !0, J.prototype.featuresProgressEvents = !0, J.prototype.featuresNativeTextTracks = J.supportsNativeTextTracks(), J.prototype.featuresNativeVideoTracks = J.supportsNativeVideoTracks(), J.prototype.featuresNativeAudioTracks = J.supportsNativeAudioTracks(); var L = void 0, M = /^application\/(?:x-|vnd\.apple\.)mpegurl/i, N = /^video\/mp4/i; J.patchCanPlayType = function () { y.ANDROID_VERSION >= 4 && (L || (L = J.TEST_VID.constructor.prototype.canPlayType), J.TEST_VID.constructor.prototype.canPlayType = function (a) { return a && M.test(a) ? "maybe" : L.call(this, a) }), y.IS_OLD_ANDROID && (L || (L = J.TEST_VID.constructor.prototype.canPlayType), J.TEST_VID.constructor.prototype.canPlayType = function (a) { return a && N.test(a) ? "maybe" : L.call(this, a) }) }, J.unpatchCanPlayType = function () { var a = J.TEST_VID.constructor.prototype.canPlayType; return J.TEST_VID.constructor.prototype.canPlayType = L, L = null, a }, J.patchCanPlayType(), J.disposeMediaElement = function (a) { if (a) { for (a.parentNode && a.parentNode.removeChild(a); a.hasChildNodes();) a.removeChild(a.firstChild); a.removeAttribute("src"), "function" == typeof a.load && function () { try { a.load() } catch (a) {} }() } }, J.resetMediaElement = function (a) { if (a) { for (var b = a.querySelectorAll("source"), c = b.length; c--;) a.removeChild(b[c]); a.removeAttribute("src"), "function" == typeof a.load && function () { try { a.load() } catch (a) {} }() } }, l.default.registerComponent("Html5", J), j.default.registerTech("Html5", J), c.default = J, b.exports = c.default }, { "../../../src/js/tracks/text-track.js": 135, "../component": 66, "../utils/browser.js": 141, "../utils/dom.js": 144, "../utils/fn.js": 146, "../utils/log.js": 149, "../utils/merge-options.js": 150, "../utils/to-title-case.js": 153, "../utils/url.js": 154, "./tech.js": 124, "global/document": 7, "global/window": 8, "object.assign": 53, tsml: 59 }], 123: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component.js"), h = d(g), i = a("./tech.js"), j = d(i), k = a("global/window"), l = (d(k), a("../utils/to-title-case.js")), m = d(l), n = function (a) { function b(c, d, f) { if (e(this, b), a.call(this, c, d, f), d.playerOptions.sources && 0 !== d.playerOptions.sources.length) c.src(d.playerOptions.sources); else for (var g = 0, i = d.playerOptions.techOrder; g < i.length; g++) { var k = m.default(i[g]), l = j.default.getTech(k); if (k || (l = h.default.getComponent(k)), l && l.isSupported()) { c.loadTech_(k); break } } } return f(b, a), b }(h.default); h.default.registerComponent("MediaLoader", n), c.default = n, b.exports = c.default }, { "../component.js": 66, "../utils/to-title-case.js": 153, "./tech.js": 124, "global/window": 8 }], 124: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../component"), h = d(g), i = a("../tracks/html-track-element"), j = d(i), k = a("../tracks/html-track-element-list"), l = d(k), m = a("../utils/merge-options.js"), n = d(m), o = a("../tracks/text-track"), p = d(o), q = a("../tracks/text-track-list"), r = d(q), s = a("../tracks/video-track"), t = (d(s), a("../tracks/video-track-list")), u = d(t), v = a("../tracks/audio-track-list"), w = d(v), x = a("../tracks/audio-track"), y = (d(x), a("../utils/fn.js")), z = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(y), A = a("../utils/log.js"), B = d(A), C = a("../utils/time-ranges.js"), D = a("../utils/buffer.js"), E = a("../media-error.js"), F = d(E), G = a("global/window"), H = d(G), I = a("global/document"), J = d(I), K = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0], d = arguments.length <= 1 || void 0 === arguments[1] ? function () {} : arguments[1]; e(this, b), c.reportTouchActivity = !1, a.call(this, null, c, d), this.hasStarted_ = !1, this.on("playing", function () { this.hasStarted_ = !0 }), this.on("loadstart", function () { this.hasStarted_ = !1 }), this.textTracks_ = c.textTracks, this.videoTracks_ = c.videoTracks, this.audioTracks_ = c.audioTracks, this.featuresProgressEvents || this.manualProgressOn(), this.featuresTimeupdateEvents || this.manualTimeUpdatesOn(), !1 !== c.nativeCaptions && !1 !== c.nativeTextTracks || (this.featuresNativeTextTracks = !1), this.featuresNativeTextTracks || this.on("ready", this.emulateTextTracks), this.initTextTrackListeners(), this.initTrackListeners(), this.emitTapEvents() } return f(b, a), b.prototype.manualProgressOn = function () { this.on("durationchange", this.onDurationChange), this.manualProgress = !0, this.one("ready", this.trackProgress) }, b.prototype.manualProgressOff = function () { this.manualProgress = !1, this.stopTrackingProgress(), this.off("durationchange", this.onDurationChange) }, b.prototype.trackProgress = function () { this.stopTrackingProgress(), this.progressInterval = this.setInterval(z.bind(this, function () { var a = this.bufferedPercent(); this.bufferedPercent_ !== a && this.trigger("progress"), this.bufferedPercent_ = a, 1 === a && this.stopTrackingProgress() }), 500) }, b.prototype.onDurationChange = function () { this.duration_ = this.duration() }, b.prototype.buffered = function () { return C.createTimeRange(0, 0) }, b.prototype.bufferedPercent = function () { return D.bufferedPercent(this.buffered(), this.duration_) }, b.prototype.stopTrackingProgress = function () { this.clearInterval(this.progressInterval) }, b.prototype.manualTimeUpdatesOn = function () { this.manualTimeUpdates = !0, this.on("play", this.trackCurrentTime), this.on("pause", this.stopTrackingCurrentTime) }, b.prototype.manualTimeUpdatesOff = function () { this.manualTimeUpdates = !1, this.stopTrackingCurrentTime(), this.off("play", this.trackCurrentTime), this.off("pause", this.stopTrackingCurrentTime) }, b.prototype.trackCurrentTime = function () { this.currentTimeInterval && this.stopTrackingCurrentTime(), this.currentTimeInterval = this.setInterval(function () { this.trigger({ type: "timeupdate", target: this, manuallyTriggered: !0 }) }, 250) }, b.prototype.stopTrackingCurrentTime = function () { this.clearInterval(this.currentTimeInterval), this.trigger({ type: "timeupdate", target: this, manuallyTriggered: !0 }) }, b.prototype.dispose = function () { this.clearTracks(["audio", "video", "text"]), this.manualProgress && this.manualProgressOff(), this.manualTimeUpdates && this.manualTimeUpdatesOff(), a.prototype.dispose.call(this) }, b.prototype.clearTracks = function (a) { var b = this; a = [].concat(a), a.forEach(function (a) { for (var c = b[a + "Tracks"]() || [], d = c.length; d--;) { var e = c[d]; "text" === a && b.removeRemoteTextTrack(e), c.removeTrack_(e) } }) }, b.prototype.reset = function () {}, b.prototype.error = function (a) { return void 0 !== a && (a instanceof F.default ? this.error_ = a : this.error_ = new F.default(a), this.trigger("error")), this.error_ }, b.prototype.played = function () { return this.hasStarted_ ? C.createTimeRange(0, 0) : C.createTimeRange() }, b.prototype.setCurrentTime = function () { this.manualTimeUpdates && this.trigger({ type: "timeupdate", target: this, manuallyTriggered: !0 }) }, b.prototype.initTextTrackListeners = function () { var a = z.bind(this, function () { this.trigger("texttrackchange") }), b = this.textTracks(); b && (b.addEventListener("removetrack", a), b.addEventListener("addtrack", a), this.on("dispose", z.bind(this, function () { b.removeEventListener("removetrack", a), b.removeEventListener("addtrack", a) }))) }, b.prototype.initTrackListeners = function () { var a = this; ["video", "audio"].forEach(function (b) { var c = function () { a.trigger(b + "trackchange") }, d = a[b + "Tracks"](); d.addEventListener("removetrack", c), d.addEventListener("addtrack", c), a.on("dispose", function () { d.removeEventListener("removetrack", c), d.removeEventListener("addtrack", c) }) }) }, b.prototype.emulateTextTracks = function () { var a = this, b = this.textTracks(); if (b) { H.default.WebVTT || null == this.el().parentNode || function () { var b = J.default.createElement("script"); b.src = a.options_["vtt.js"] || "https://cdn.rawgit.com/gkatsev/vtt.js/vjs-v0.12.1/dist/vtt.min.js", b.onload = function () { a.trigger("vttjsloaded") }, b.onerror = function () { a.trigger("vttjserror") }, a.on("dispose", function () { b.onload = null, b.onerror = null }), H.default.WebVTT = !0, a.el().parentNode.appendChild(b) }(); var c = function () { return a.trigger("texttrackchange") }, d = function () { c(); for (var a = 0; a < b.length; a++) { var d = b[a]; d.removeEventListener("cuechange", c), "showing" === d.mode && d.addEventListener("cuechange", c) } }; d(), b.addEventListener("change", d), this.on("dispose", function () { b.removeEventListener("change", d) }) } }, b.prototype.videoTracks = function () { return this.videoTracks_ = this.videoTracks_ || new u.default, this.videoTracks_ }, b.prototype.audioTracks = function () { return this.audioTracks_ = this.audioTracks_ || new w.default, this.audioTracks_ }, b.prototype.textTracks = function () { return this.textTracks_ = this.textTracks_ || new r.default, this.textTracks_ }, b.prototype.remoteTextTracks = function () { return this.remoteTextTracks_ = this.remoteTextTracks_ || new r.default, this.remoteTextTracks_ }, b.prototype.remoteTextTrackEls = function () { return this.remoteTextTrackEls_ = this.remoteTextTrackEls_ || new l.default, this.remoteTextTrackEls_ }, b.prototype.addTextTrack = function (a, b, c) { if (!a) throw new Error("TextTrack kind is required but was not provided"); return L(this, a, b, c) }, b.prototype.addRemoteTextTrack = function (a) { var b = n.default(a, { tech: this }), c = new j.default(b); return this.remoteTextTrackEls().addTrackElement_(c), this.remoteTextTracks().addTrack_(c.track), this.textTracks().addTrack_(c.track), c }, b.prototype.removeRemoteTextTrack = function (a) { this.textTracks().removeTrack_(a); var b = this.remoteTextTrackEls().getTrackElementByTrack_(a); this.remoteTextTrackEls().removeTrackElement_(b), this.remoteTextTracks().removeTrack_(a) }, b.prototype.setPoster = function () {}, b.prototype.playsinline = function () {}, b.prototype.setPlaysinline = function () {}, b.prototype.canPlayType = function () { return "" }, b.isTech = function (a) { return a.prototype instanceof b || a instanceof b || a === b }, b.registerTech = function (a, c) { if (b.techs_ || (b.techs_ = {}), !b.isTech(c)) throw new Error("Tech " + a + " must be a Tech"); return b.techs_[a] = c, c }, b.getTech = function (a) { return b.techs_ && b.techs_[a] ? b.techs_[a] : H.default && H.default.videojs && H.default.videojs[a] ? (B.default.warn("The " + a + " tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)"), H.default.videojs[a]) : void 0 }, b }(h.default); K.prototype.textTracks_, K.prototype.audioTracks_, K.prototype.videoTracks_; var L = function (a, b, c, d) { var e = arguments.length <= 4 || void 0 === arguments[4] ? {} : arguments[4], f = a.textTracks(); e.kind = b, c && (e.label = c), d && (e.language = d), e.tech = a; var g = new p.default(e); return f.addTrack_(g), g }; K.prototype.featuresVolumeControl = !0, K.prototype.featuresMutedControl = !0, K.prototype.featuresFullscreenResize = !1, K.prototype.featuresPlaybackRate = !1, K.prototype.featuresProgressEvents = !1, K.prototype.featuresTimeupdateEvents = !1, K.prototype.featuresNativeTextTracks = !1, K.withSourceHandlers = function (a) { a.registerSourceHandler = function (b, c) { var d = a.sourceHandlers; d || (d = a.sourceHandlers = []), void 0 === c && (c = d.length), d.splice(c, 0, b) }, a.canPlayType = function (b) { for (var c = a.sourceHandlers || [], d = void 0, e = 0; e < c.length; e++) if (d = c[e].canPlayType(b)) return d; return "" }, a.selectSourceHandler = function (b) { for (var c = a.sourceHandlers || [], d = 0; d < c.length; d++) if (c[d].canHandleSource(b)) return c[d]; return null }, a.canPlaySource = function (b) { var c = a.selectSourceHandler(b); return c ? c.canHandleSource(b) : "" }, ["seekable", "duration"].forEach(function (a) { var b = this[a]; "function" == typeof b && (this[a] = function () { return this.sourceHandler_ && this.sourceHandler_[a] ? this.sourceHandler_[a].apply(this.sourceHandler_, arguments) : b.apply(this, arguments) }) }, a.prototype), a.prototype.setSource = function (b) { var c = a.selectSourceHandler(b); return c || (a.nativeSourceHandler ? c = a.nativeSourceHandler : B.default.error("No source hander found for the current source.")), this.disposeSourceHandler(), this.off("dispose", this.disposeSourceHandler), this.currentSource_ && (this.clearTracks(["audio", "video"]), this.currentSource_ = null), c !== a.nativeSourceHandler && (this.currentSource_ = b, this.off(this.el_, "loadstart", a.prototype.firstLoadStartListener_), this.off(this.el_, "loadstart", a.prototype.successiveLoadStartListener_), this.one(this.el_, "loadstart", a.prototype.firstLoadStartListener_)), this.sourceHandler_ = c.handleSource(b, this, this.options_), this.on("dispose", this.disposeSourceHandler), this }, a.prototype.firstLoadStartListener_ = function () { this.one(this.el_, "loadstart", a.prototype.successiveLoadStartListener_) }, a.prototype.successiveLoadStartListener_ = function () { this.currentSource_ = null, this.disposeSourceHandler(), this.one(this.el_, "loadstart", a.prototype.successiveLoadStartListener_) }, a.prototype.disposeSourceHandler = function () { this.sourceHandler_ && this.sourceHandler_.dispose && (this.off(this.el_, "loadstart", a.prototype.firstLoadStartListener_), this.off(this.el_, "loadstart", a.prototype.successiveLoadStartListener_), this.sourceHandler_.dispose()) } }, h.default.registerComponent("Tech", K), h.default.registerComponent("MediaTechController", K), K.registerTech("Tech", K), c.default = K, b.exports = c.default }, { "../component": 66, "../media-error.js": 108, "../tracks/audio-track": 127, "../tracks/audio-track-list": 126, "../tracks/html-track-element": 129, "../tracks/html-track-element-list": 128, "../tracks/text-track": 135, "../tracks/text-track-list": 133, "../tracks/video-track": 140, "../tracks/video-track-list": 139, "../utils/buffer.js": 142, "../utils/fn.js": 146, "../utils/log.js": 149, "../utils/merge-options.js": 150, "../utils/time-ranges.js": 152, "global/document": 7, "global/window": 8 }], 125: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./component"), i = e(h), j = a("./utils/dom.js"), k = d(j), l = a("./utils/events.js"), m = (d(l), a("./utils/fn.js")), n = d(m), o = a("global/document"), p = (e(o), a("lodash-compat/function/throttle")), q = e(p), r = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.handleHover_ = q.default(n.bind(this, this.handleHover), 25), this.handleLeave_ = q.default(n.bind(this, this.handleLeave), 25) } return g(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-tooltip" }) }, b.prototype.text = function (a) { return a ? (this.text_ = a, this.el_.innerHTML = this.localize(this.text_), this.update(), this) : this.text_ || "" }, b.prototype.handler = function (a) { return a ? (this.handler_ && (this.off(this.handler_, "mouseover", this.handleHover_), this.off(this.handler_, "mouseout", this.handleLeave_)), this.handler_ = a, this.on(this.handler_, "mouseover", this.handleHover_), this.on(this.handler_, "mouseout", this.handleLeave_), this) : this.handler }, b.prototype.handleHover = function () { var a = this; this.timeout && (this.clearTimeout(this.timeout), this.timeout = 0), this.timeout = this.setTimeout(function () { return a.hide() }, 1e3), this.show() }, b.prototype.handleLeave = function (a) { var b = this; this.timeout && (this.clearTimeout(this.timeout), this.timeout = 0), this.timeout = this.setTimeout(function () { return b.hide() }, 50) }, b.prototype.show = function () { var a = this; this.player_.trigger("tooltipShown"), this.player_.on("tooltipShown", function () { return a.hide() }), this.addClass("vjs-tooltip-active"), this.update() }, b.prototype.hide = function () { this.removeClass("vjs-tooltip-active"), this.player_.off("tooltipShown") }, b.prototype.update = function () { var a = this.width(); if (!a) return this; var b = this.handler_, c = b ? b.offsetWidth : 0, d = k.findElPosition(b).left - k.findElPosition(this.player_.el()).left, e = c / 2 - a / 2, f = -d, g = this.player_.el().offsetWidth - d - a; return e = Math.min(Math.max(f, e), g), this.el_.style.left = e + "px", this }, b }(i.default); i.default.registerComponent("Tooltip", r), c.default = r, b.exports = c.default }, { "./component": 66, "./utils/dom.js": 144, "./utils/events.js": 145, "./utils/fn.js": 146, "global/document": 7, "lodash-compat/function/throttle": 13 }], 126: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./track-list"), h = d(g), i = a("../utils/browser.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("global/document"), l = d(k), m = function (a, b) { for (var c = 0; c < a.length; c++) b.id !== a[c].id && (a[c].enabled = !1) }, n = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0]; e(this, b); for (var d = void 0, f = c.length - 1; f >= 0; f--) if (c[f].enabled) { m(c, c[f]); break } if (j.IS_IE8) { d = l.default.createElement("custom"); for (var g in h.default.prototype) "constructor" !== g && (d[g] = h.default.prototype[g]); for (var g in b.prototype) "constructor" !== g && (d[g] = b.prototype[g]) } return d = a.call(this, c, d), d.changing_ = !1, d } return f(b, a), b.prototype.addTrack_ = function (b) { var c = this; b.enabled && m(this, b), a.prototype.addTrack_.call(this, b), b.addEventListener && b.addEventListener("enabledchange", function () { c.changing_ || (c.changing_ = !0, m(c, b), c.changing_ = !1, c.trigger("change")) }) }, b.prototype.addTrack = function (a) { this.addTrack_(a) }, b.prototype.removeTrack = function (b) { a.prototype.removeTrack_.call(this, b) }, b }(h.default); c.default = n, b.exports = c.default }, { "../utils/browser.js": 141, "./track-list": 137, "global/document": 7 }], 127: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./track-enums"), h = a("./track"), i = d(h), j = a("../utils/merge-options"), k = d(j), l = a("../utils/browser.js"), m = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(l), n = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; e(this, b); var d = k.default(c, { kind: g.AudioTrackKind[c.kind] || "" }), f = a.call(this, d), h = !1; if (m.IS_IE8) for (var i in b.prototype) "constructor" !== i && (f[i] = b.prototype[i]); return Object.defineProperty(f, "enabled", { get: function () { return h }, set: function (a) { "boolean" == typeof a && a !== h && (h = a, this.trigger("enabledchange")) } }), d.enabled && (f.enabled = d.enabled), f.loaded_ = !0, f } return f(b, a), b }(i.default); c.default = n, b.exports = c.default }, { "../utils/browser.js": 141, "../utils/merge-options": 150, "./track": 138, "./track-enums": 136 }], 128: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } c.__esModule = !0; var e = a("../utils/browser.js"), f = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(e), g = a("global/document"), h = function (a) { return a && a.__esModule ? a : { default: a } }(g), i = function () { function a() { var b = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0]; d(this, a); var c = this; if (f.IS_IE8) { c = h.default.createElement("custom"); for (var e in a.prototype) "constructor" !== e && (c[e] = a.prototype[e]) } c.trackElements_ = [], Object.defineProperty(c, "length", { get: function () { return this.trackElements_.length } }); for (var g = 0, i = b.length; g < i; g++) c.addTrackElement_(b[g]); if (f.IS_IE8) return c } return a.prototype.addTrackElement_ = function (a) { this.trackElements_.push(a) }, a.prototype.getTrackElementByTrack_ = function (a) { for (var b = void 0, c = 0, d = this.trackElements_.length; c < d; c++) if (a === this.trackElements_[c].track) { b = this.trackElements_[c]; break } return b }, a.prototype.removeTrackElement_ = function (a) { for (var b = 0, c = this.trackElements_.length; b < c; b++) if (a === this.trackElements_[b]) { this.trackElements_.splice(b, 1); break } }, a }(); c.default = i, b.exports = c.default }, { "../utils/browser.js": 141, "global/document": 7 }], 129: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("../utils/browser.js"), h = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(g), i = a("global/document"), j = d(i), k = a("../event-target"), l = d(k), m = a("../tracks/text-track"), n = d(m), o = 0, p = 2, q = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; e(this, b), a.call(this); var d = void 0, f = this; if (h.IS_IE8) { f = j.default.createElement("custom"); for (var g in b.prototype) "constructor" !== g && (f[g] = b.prototype[g]) } var i = new n.default(c); if (f.kind = i.kind, f.src = i.src, f.srclang = i.language, f.label = i.label, f.default = i.default, Object.defineProperty(f, "readyState", { get: function () { return d } }), Object.defineProperty(f, "track", { get: function () { return i } }), d = o, i.addEventListener("loadeddata", function () { d = p, f.trigger({ type: "load", target: f }) }), h.IS_IE8) return f } return f(b, a), b }(l.default); q.prototype.allowedEvents_ = { load: "load" }, q.NONE = o, q.LOADING = 1, q.LOADED = p, q.ERROR = 3, c.default = q, b.exports = c.default }, { "../event-target": 104, "../tracks/text-track": 135, "../utils/browser.js": 141, "global/document": 7 }], 130: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } c.__esModule = !0; var e = a("../utils/browser.js"), f = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(e), g = a("global/document"), h = function (a) { return a && a.__esModule ? a : { default: a } }(g), i = function () { function a(b) { d(this, a); var c = this; if (f.IS_IE8) { c = h.default.createElement("custom"); for (var e in a.prototype) "constructor" !== e && (c[e] = a.prototype[e]) } if (a.prototype.setCues_.call(c, b), Object.defineProperty(c, "length", { get: function () { return this.length_ } }), f.IS_IE8) return c } return a.prototype.setCues_ = function (a) { var b = this.length || 0, c = 0, d = a.length; this.cues_ = a, this.length_ = a.length; var e = function (a) { "" + a in this || Object.defineProperty(this, "" + a, { get: function () { return this.cues_[a] } }) }; if (b < d) for (c = b; c < d; c++) e.call(this, c) }, a.prototype.getCueById = function (a) { for (var b = null, c = 0, d = this.length; c < d; c++) { var e = this[c]; if (e.id === a) { b = e; break } } return b }, a }(); c.default = i, b.exports = c.default }, { "../utils/browser.js": 141, "global/document": 7 }], 131: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } function g(a, b) { return "rgba(" + parseInt(a[1] + a[1], 16) + "," + parseInt(a[2] + a[2], 16) + "," + parseInt(a[3] + a[3], 16) + "," + b + ")" } function h(a, b, c) { try { a.style[b] = c } catch (a) {} } c.__esModule = !0; var i = a("../component"), j = d(i), k = a("../menu/menu.js"), l = (d(k), a("../menu/menu-item.js")), m = (d(l), a("../menu/menu-button.js")), n = (d(m), a("../utils/fn.js")), o = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(n), p = a("global/document"), q = (d(p), a("global/window")), r = d(q), s = { monospace: "monospace", sansSerif: "sans-serif", serif: "serif", monospaceSansSerif: '"Andale Mono", "Lucida Console", monospace', monospaceSerif: '"Courier New", monospace', proportionalSansSerif: "sans-serif", proportionalSerif: "serif", casual: '"Comic Sans MS", Impact, fantasy', script: '"Monotype Corsiva", cursive', smallcaps: '"Andale Mono", "Lucida Console", monospace, sans-serif' }, t = function (a) { function b(c, d, f) { e(this, b), a.call(this, c, d, f), c.on("loadstart", o.bind(this, this.toggleDisplay)), c.on("texttrackchange", o.bind(this, this.updateDisplay)), c.ready(o.bind(this, function () { if (c.tech_ && c.tech_.featuresNativeTextTracks) return void this.hide(); c.on("fullscreenchange", o.bind(this, this.updateDisplay)); for (var a = this.options_.playerOptions.tracks || [], b = 0; b < a.length; b++) { var d = a[b]; this.player_.addRemoteTextTrack(d) } var e = { captions: 1, subtitles: 1 }, f = this.player_.textTracks(), g = void 0, h = void 0; if (f) { for (var b = 0; b < f.length; b++) { var d = f[b]; d.default && ("descriptions" !== d.kind || g ? d.kind in e && !h && (h = d) : g = d) } h ? h.mode = "showing" : g && (g.mode = "showing") } })) } return f(b, a), b.prototype.toggleDisplay = function () { this.player_.tech_ && this.player_.tech_.featuresNativeTextTracks ? this.hide() : this.show() }, b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-text-track-display" }, { "aria-live": "assertive", "aria-atomic": "true" }) }, b.prototype.clearDisplay = function () { "function" == typeof r.default.WebVTT && r.default.WebVTT.processCues(r.default, [], this.el_) }, b.prototype.updateDisplay = function () { var a = this.player_.textTracks(); if (this.clearDisplay(), a) { for (var b = null, c = null, d = a.length; d--;) { var e = a[d]; "showing" === e.mode && ("descriptions" === e.kind ? b = e : c = e) } c ? this.updateForTrack(c) : b && this.updateForTrack(b) } }, b.prototype.updateForTrack = function (a) { if ("function" == typeof r.default.WebVTT && a.activeCues) { for (var b = this.player_.textTrackSettings.getValues(), c = [], d = 0; d < a.activeCues.length; d++) c.push(a.activeCues[d]); r.default.WebVTT.processCues(r.default, c, this.el_); for (var e = c.length; e--;) { var f = c[e]; if (f) { var i = f.displayState; if (b.color && (i.firstChild.style.color = b.color), b.textOpacity && h(i.firstChild, "color", g(b.color || "#fff", b.textOpacity)), b.backgroundColor && (i.firstChild.style.backgroundColor = b.backgroundColor), b.backgroundOpacity && h(i.firstChild, "backgroundColor", g(b.backgroundColor || "#000", b.backgroundOpacity)), b.windowColor && (b.windowOpacity ? h(i, "backgroundColor", g(b.windowColor, b.windowOpacity)) : i.style.backgroundColor = b.windowColor), b.edgeStyle && ("dropshadow" === b.edgeStyle ? i.firstChild.style.textShadow = "2px 2px 3px #222, 2px 2px 4px #222, 2px 2px 5px #222" : "raised" === b.edgeStyle ? i.firstChild.style.textShadow = "1px 1px #222, 2px 2px #222, 3px 3px #222" : "depressed" === b.edgeStyle ? i.firstChild.style.textShadow = "1px 1px #ccc, 0 1px #ccc, -1px -1px #222, 0 -1px #222" : "uniform" === b.edgeStyle && (i.firstChild.style.textShadow = "0 0 4px #222, 0 0 4px #222, 0 0 4px #222, 0 0 4px #222")), b.fontPercent && 1 !== b.fontPercent) { var j = i.getAttribute("data-fontsize"); j || (j = i.style.fontSize, i.setAttribute("data-fontsize", j)), j = r.default.parseFloat(j), i.style.fontSize = j * b.fontPercent + "px", i.style.height = "auto", i.style.top = "auto" } b.fontFamily && "default" !== b.fontFamily && ("small-caps" === b.fontFamily ? i.firstChild.style.fontVariant = "small-caps" : i.firstChild.style.fontFamily = s[b.fontFamily]) } } } }, b }(j.default); j.default.registerComponent("TextTrackDisplay", t), c.default = t, b.exports = c.default }, { "../component": 66, "../menu/menu-button.js": 109, "../menu/menu-item.js": 110, "../menu/menu.js": 111, "../utils/fn.js": 146, "global/document": 7, "global/window": 8 }], 132: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = function (a) { return ["kind", "label", "language", "id", "inBandMetadataTrackDispatchType", "mode", "src"].reduce(function (b, c, d) { return a[c] && (b[c] = a[c]), b }, { cues: a.cues && Array.prototype.map.call(a.cues, function (a) { return { startTime: a.startTime, endTime: a.endTime, text: a.text, id: a.id } }) }) }, e = function (a) { var b = a.$$("track"), c = Array.prototype.map.call(b, function (a) { return a.track }); return Array.prototype.map.call(b, function (a) { var b = d(a.track); return a.src && (b.src = a.src), b }).concat(Array.prototype.filter.call(a.textTracks(), function (a) { return -1 === c.indexOf(a) }).map(d)) }, f = function (a, b) { return a.forEach(function (a) { var c = b.addRemoteTextTrack(a).track; !a.src && a.cues && a.cues.forEach(function (a) { return c.addCue(a) }) }), b.textTracks() }; c.default = { textTracksToJson: e, jsonToTextTracks: f, trackToJson_: d }, b.exports = c.default }, {}], 133: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./track-list"), i = e(h), j = a("../utils/fn.js"), k = d(j), l = a("../utils/browser.js"), m = d(l), n = a("global/document"), o = e(n), p = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0]; f(this, b); var d = void 0; if (m.IS_IE8) { d = o.default.createElement("custom"); for (var e in i.default.prototype) "constructor" !== e && (d[e] = i.default.prototype[e]); for (var e in b.prototype) "constructor" !== e && (d[e] = b.prototype[e]) } return d = a.call(this, c, d) } return g(b, a), b.prototype.addTrack_ = function (b) { a.prototype.addTrack_.call(this, b), b.addEventListener("modechange", k.bind(this, function () { this.trigger("change") })) }, b.prototype.removeTrack_ = function (a) { for (var b = void 0, c = 0, d = this.length; c < d; c++) if (this[c] === a) { b = this[c], b.off && b.off(), this.tracks_.splice(c, 1); break } b && this.trigger({ track: b, type: "removetrack" }) }, b.prototype.getTrackById = function (a) { for (var b = null, c = 0, d = this.length; c < d; c++) { var e = this[c]; if (e.id === a) { b = e; break } } return b }, b }(i.default); c.default = p, b.exports = c.default }, { "../utils/browser.js": 141, "../utils/fn.js": 146, "./track-list": 137, "global/document": 7 }], 134: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } function h(a) { var b = void 0; return a.selectedOptions ? b = a.selectedOptions[0] : a.options && (b = a.options[a.options.selectedIndex]), b.value } function i(a, b) { if (b) { var c = void 0; for (c = 0; c < a.options.length; c++) { if (a.options[c].value === b) break } a.selectedIndex = c } } function j() { return '
\n
\n
\n \n \n \n \n \n
\x3c!-- vjs-fg-color --\x3e\n
\n \n \n \n \n \n
\x3c!-- vjs-bg-color --\x3e\n
\n \n \n \n \n \n
\x3c!-- vjs-window-color --\x3e\n
\x3c!-- vjs-tracksettings --\x3e\n
\n
\n \n \n
\x3c!-- vjs-font-percent --\x3e\n
\n \n \n
\x3c!-- vjs-edge-style --\x3e\n
\n \n \n
\x3c!-- vjs-font-family --\x3e\n
\n
\n
\n \n \n
' } c.__esModule = !0; var k = a("../component"), l = e(k), m = a("../utils/events.js"), n = d(m), o = a("../utils/fn.js"), p = d(o), q = a("../utils/log.js"), r = e(q), s = a("safe-json-parse/tuple"), t = e(s), u = a("global/window"), v = e(u), w = function (a) { function b(c, d) { f(this, b), a.call(this, c, d), this.hide(), void 0 === d.persistTextTrackSettings && (this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings), n.on(this.$(".vjs-done-button"), "click", p.bind(this, function () { this.saveSettings(), this.hide() })), n.on(this.$(".vjs-default-button"), "click", p.bind(this, function () { this.$(".vjs-fg-color > select").selectedIndex = 0, this.$(".vjs-bg-color > select").selectedIndex = 0, this.$(".window-color > select").selectedIndex = 0, this.$(".vjs-text-opacity > select").selectedIndex = 0, this.$(".vjs-bg-opacity > select").selectedIndex = 0, this.$(".vjs-window-opacity > select").selectedIndex = 0, this.$(".vjs-edge-style select").selectedIndex = 0, this.$(".vjs-font-family select").selectedIndex = 0, this.$(".vjs-font-percent select").selectedIndex = 2, this.updateDisplay() })), n.on(this.$(".vjs-fg-color > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-bg-color > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".window-color > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-text-opacity > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-bg-opacity > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-window-opacity > select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-font-percent select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-edge-style select"), "change", p.bind(this, this.updateDisplay)), n.on(this.$(".vjs-font-family select"), "change", p.bind(this, this.updateDisplay)), this.options_.persistTextTrackSettings && this.restoreSettings() } return g(b, a), b.prototype.createEl = function () { return a.prototype.createEl.call(this, "div", { className: "vjs-caption-settings vjs-modal-overlay", innerHTML: j() }) }, b.prototype.getValues = function () { var a = h(this.$(".vjs-edge-style select")), b = h(this.$(".vjs-font-family select")), c = h(this.$(".vjs-fg-color > select")), d = h(this.$(".vjs-text-opacity > select")), e = h(this.$(".vjs-bg-color > select")), f = h(this.$(".vjs-bg-opacity > select")), g = h(this.$(".window-color > select")), i = h(this.$(".vjs-window-opacity > select")), j = v.default.parseFloat(h(this.$(".vjs-font-percent > select"))), k = { backgroundOpacity: f, textOpacity: d, windowOpacity: i, edgeStyle: a, fontFamily: b, color: c, backgroundColor: e, windowColor: g, fontPercent: j }; for (var l in k)("" === k[l] || "none" === k[l] || "fontPercent" === l && 1 === k[l]) && delete k[l]; return k }, b.prototype.setValues = function (a) { i(this.$(".vjs-edge-style select"), a.edgeStyle), i(this.$(".vjs-font-family select"), a.fontFamily), i(this.$(".vjs-fg-color > select"), a.color), i(this.$(".vjs-text-opacity > select"), a.textOpacity), i(this.$(".vjs-bg-color > select"), a.backgroundColor), i(this.$(".vjs-bg-opacity > select"), a.backgroundOpacity), i(this.$(".window-color > select"), a.windowColor), i(this.$(".vjs-window-opacity > select"), a.windowOpacity); var b = a.fontPercent; b && (b = b.toFixed(2)), i(this.$(".vjs-font-percent > select"), b) }, b.prototype.restoreSettings = function () { var a = void 0, b = void 0; try { var c = t.default(v.default.localStorage.getItem("vjs-text-track-settings")); a = c[0], b = c[1], a && r.default.error(a) } catch (a) { r.default.warn(a) } b && this.setValues(b) }, b.prototype.saveSettings = function () { if (this.options_.persistTextTrackSettings) { var a = this.getValues(); try { Object.getOwnPropertyNames(a).length > 0 ? v.default.localStorage.setItem("vjs-text-track-settings", JSON.stringify(a)) : v.default.localStorage.removeItem("vjs-text-track-settings") } catch (a) { r.default.warn(a) } } }, b.prototype.updateDisplay = function () { var a = this.player_.getChild("textTrackDisplay"); a && a.updateDisplay() }, b }(l.default); l.default.registerComponent("TextTrackSettings", w), c.default = w, b.exports = c.default }, { "../component": 66, "../utils/events.js": 145, "../utils/fn.js": 146, "../utils/log.js": 149, "global/window": 8, "safe-json-parse/tuple": 57 }], 135: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("./text-track-cue-list"), i = e(h), j = a("../utils/fn.js"), k = d(j), l = a("./track-enums"), m = a("../utils/log.js"), n = e(m), o = a("global/document"), p = (e(o), a("global/window")), q = e(p), r = a("./track.js"), s = e(r), t = a("../utils/url.js"), u = a("xhr"), v = e(u), w = a("../utils/merge-options"), x = e(w), y = a("../utils/browser.js"), z = d(y), A = function (a, b) { var c = new q.default.WebVTT.Parser(q.default, q.default.vttjs, q.default.WebVTT.StringDecoder()), d = []; c.oncue = function (a) { b.addCue(a) }, c.onparsingerror = function (a) { d.push(a) }, c.onflush = function () { b.trigger({ type: "loadeddata", target: b }) }, c.parse(a), d.length > 0 && (console.groupCollapsed && console.groupCollapsed("Text Track parsing errors for " + b.src), d.forEach(function (a) { return n.default.error(a) }), console.groupEnd && console.groupEnd()), c.flush() }, B = function (a, b) { var c = { uri: a }, d = t.isCrossOrigin(a); d && (c.cors = d), v.default(c, k.bind(this, function (a, c, d) { if (a) return n.default.error(a, c); b.loaded_ = !0, "function" != typeof q.default.WebVTT ? b.tech_ && function () { var a = function () { return A(d, b) }; b.tech_.on("vttjsloaded", a), b.tech_.on("vttjserror", function () { n.default.error("vttjs failed to load, stopping trying to process " + b.src), b.tech_.off("vttjsloaded", a) }) }() : A(d, b) })) }, C = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; if (f(this, b), !c.tech) throw new Error("A tech was not provided."); var d = x.default(c, { kind: l.TextTrackKind[c.kind] || "subtitles", language: c.language || c.srclang || "" }), e = l.TextTrackMode[d.mode] || "disabled", g = d.default; "metadata" !== d.kind && "chapters" !== d.kind || (e = "hidden"); var h = a.call(this, d); if (h.tech_ = d.tech, z.IS_IE8) for (var j in b.prototype) "constructor" !== j && (h[j] = b.prototype[j]); h.cues_ = [], h.activeCues_ = []; var m = new i.default(h.cues_), n = new i.default(h.activeCues_), o = !1, p = k.bind(h, function () { this.activeCues, o && (this.trigger("cuechange"), o = !1) }); return "disabled" !== e && h.tech_.on("timeupdate", p), Object.defineProperty(h, "default", { get: function () { return g }, set: function () {} }), Object.defineProperty(h, "mode", { get: function () { return e }, set: function (a) { l.TextTrackMode[a] && (e = a, "showing" === e && this.tech_.on("timeupdate", p), this.trigger("modechange")) } }), Object.defineProperty(h, "cues", { get: function () { return this.loaded_ ? m : null }, set: function () {} }), Object.defineProperty(h, "activeCues", { get: function () { if (!this.loaded_) return null; if (0 === this.cues.length) return n; for (var a = this.tech_.currentTime(), b = [], c = 0, d = this.cues.length; c < d; c++) { var e = this.cues[c]; e.startTime <= a && e.endTime >= a ? b.push(e) : e.startTime === e.endTime && e.startTime <= a && e.startTime + .5 >= a && b.push(e) } if (o = !1, b.length !== this.activeCues_.length) o = !0; else for (var c = 0; c < b.length; c++) - 1 === this.activeCues_.indexOf(b[c]) && (o = !0); return this.activeCues_ = b, n.setCues_(this.activeCues_), n }, set: function () {} }), d.src ? (h.src = d.src, B(d.src, h)) : h.loaded_ = !0, h } return g(b, a), b.prototype.addCue = function (a) { var b = this.tech_.textTracks(); if (b) for (var c = 0; c < b.length; c++) b[c] !== this && b[c].removeCue(a); this.cues_.push(a), this.cues.setCues_(this.cues_) }, b.prototype.removeCue = function (a) { for (var b = !1, c = 0, d = this.cues_.length; c < d; c++) { this.cues_[c] === a && (this.cues_.splice(c, 1), b = !0) } b && this.cues.setCues_(this.cues_) }, b }(s.default); C.prototype.allowedEvents_ = { cuechange: "cuechange" }, c.default = C, b.exports = c.default }, { "../utils/browser.js": 141, "../utils/fn.js": 146, "../utils/log.js": 149, "../utils/merge-options": 150, "../utils/url.js": 154, "./text-track-cue-list": 130, "./track-enums": 136, "./track.js": 138, "global/document": 7, "global/window": 8, xhr: 60 }], 136: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = { alternative: "alternative", captions: "captions", main: "main", sign: "sign", subtitles: "subtitles", commentary: "commentary" }, e = { alternative: "alternative", descriptions: "descriptions", main: "main", "main-desc": "main-desc", translation: "translation", commentary: "commentary" }, f = { subtitles: "subtitles", captions: "captions", descriptions: "descriptions", chapters: "chapters", metadata: "metadata" }, g = { disabled: "disabled", hidden: "hidden", showing: "showing" }; c.default = { VideoTrackKind: d, AudioTrackKind: e, TextTrackKind: f, TextTrackMode: g }, b.exports = c.default }, {}], 137: [function (a, b, c) { "use strict"; function d(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function e(a) { return a && a.__esModule ? a : { default: a } } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../event-target"), i = e(h), j = a("../utils/fn.js"), k = (d(j), a("../utils/browser.js")), l = d(k), m = a("global/document"), n = e(m), o = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0], d = arguments.length <= 1 || void 0 === arguments[1] ? null : arguments[1]; if (f(this, b), a.call(this), !d && (d = this, l.IS_IE8)) { d = n.default.createElement("custom"); for (var e in b.prototype) "constructor" !== e && (d[e] = b.prototype[e]) } d.tracks_ = [], Object.defineProperty(d, "length", { get: function () { return this.tracks_.length } }); for (var g = 0; g < c.length; g++) d.addTrack_(c[g]); return d } return g(b, a), b.prototype.addTrack_ = function (a) { var b = this.tracks_.length; "" + b in this || Object.defineProperty(this, b, { get: function () { return this.tracks_[b] } }), -1 === this.tracks_.indexOf(a) && (this.tracks_.push(a), this.trigger({ track: a, type: "addtrack" })) }, b.prototype.removeTrack_ = function (a) { for (var b = void 0, c = 0, d = this.length; c < d; c++) if (this[c] === a) { b = this[c], b.off && b.off(), this.tracks_.splice(c, 1); break } b && this.trigger({ track: b, type: "removetrack" }) }, b.prototype.getTrackById = function (a) { for (var b = null, c = 0, d = this.length; c < d; c++) { var e = this[c]; if (e.id === a) { b = e; break } } return b }, b }(i.default); o.prototype.allowedEvents_ = { change: "change", addtrack: "addtrack", removetrack: "removetrack" }; for (var p in o.prototype.allowedEvents_) o.prototype["on" + p] = null; c.default = o, b.exports = c.default }, { "../event-target": 104, "../utils/browser.js": 141, "../utils/fn.js": 146, "global/document": 7 }], 138: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function f(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var h = a("../utils/browser.js"), i = e(h), j = a("global/document"), k = d(j), l = a("../utils/guid.js"), m = e(l), n = a("../event-target"), o = d(n), p = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; f(this, b), a.call(this); var d = this; if (i.IS_IE8) { d = k.default.createElement("custom"); for (var e in b.prototype) "constructor" !== e && (d[e] = b.prototype[e]) } var g = { id: c.id || "vjs_track_" + m.newGUID(), kind: c.kind || "", label: c.label || "", language: c.language || "" }; for (var h in g) ! function (a) { Object.defineProperty(d, a, { get: function () { return g[a] }, set: function () {} }) }(h); return d } return g(b, a), b }(o.default); c.default = p, b.exports = c.default }, { "../event-target": 104, "../utils/browser.js": 141, "../utils/guid.js": 148, "global/document": 7 }], 139: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./track-list"), h = d(g), i = a("../utils/browser.js"), j = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(i), k = a("global/document"), l = d(k), m = function (a, b) { for (var c = 0; c < a.length; c++) b.id !== a[c].id && (a[c].selected = !1) }, n = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? [] : arguments[0]; e(this, b); for (var d = void 0, f = c.length - 1; f >= 0; f--) if (c[f].selected) { m(c, c[f]); break } if (j.IS_IE8) { d = l.default.createElement("custom"); for (var g in h.default.prototype) "constructor" !== g && (d[g] = h.default.prototype[g]); for (var g in b.prototype) "constructor" !== g && (d[g] = b.prototype[g]) } return d = a.call(this, c, d), d.changing_ = !1, Object.defineProperty(d, "selectedIndex", { get: function () { for (var a = 0; a < this.length; a++) if (this[a].selected) return a; return -1 }, set: function () {} }), d } return f(b, a), b.prototype.addTrack_ = function (b) { var c = this; b.selected && m(this, b), a.prototype.addTrack_.call(this, b), b.addEventListener && b.addEventListener("selectedchange", function () { c.changing_ || (c.changing_ = !0, m(c, b), c.changing_ = !1, c.trigger("change")) }) }, b.prototype.addTrack = function (a) { this.addTrack_(a) }, b.prototype.removeTrack = function (b) { a.prototype.removeTrack_.call(this, b) }, b }(h.default); c.default = n, b.exports = c.default }, { "../utils/browser.js": 141, "./track-list": 137, "global/document": 7 }], 140: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } c.__esModule = !0; var g = a("./track-enums"), h = a("./track"), i = d(h), j = a("../utils/merge-options"), k = d(j), l = a("../utils/browser.js"), m = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(l), n = function (a) { function b() { var c = arguments.length <= 0 || void 0 === arguments[0] ? {} : arguments[0]; e(this, b); var d = k.default(c, { kind: g.VideoTrackKind[c.kind] || "" }), f = a.call(this, d), h = !1; if (m.IS_IE8) for (var i in b.prototype) "constructor" !== i && (f[i] = b.prototype[i]); return Object.defineProperty(f, "selected", { get: function () { return h }, set: function (a) { "boolean" == typeof a && a !== h && (h = a, this.trigger("selectedchange")) } }), d.selected && (f.selected = d.selected), f } return f(b, a), b }(i.default); c.default = n, b.exports = c.default }, { "../utils/browser.js": 141, "../utils/merge-options": 150, "./track": 138, "./track-enums": 136 }], 141: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } c.__esModule = !0; var e = a("global/document"), f = d(e), g = a("global/window"), h = d(g), i = h.default.navigator.userAgent, j = /AppleWebKit\/([\d.]+)/i.exec(i), k = j ? parseFloat(j.pop()) : null, l = /iPad/i.test(i); c.IS_IPAD = l; var m = /iPhone/i.test(i) && !l; c.IS_IPHONE = m; var n = /iPod/i.test(i); c.IS_IPOD = n; var o = m || l || n; c.IS_IOS = o; var p = function () { var a = i.match(/OS (\d+)_/i); if (a && a[1]) return a[1] }(); c.IOS_VERSION = p; var q = /Android/i.test(i); c.IS_ANDROID = q; var r = function () { var a, b, c = i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i); return c ? (a = c[1] && parseFloat(c[1]), b = c[2] && parseFloat(c[2]), a && b ? parseFloat(c[1] + "." + c[2]) : a || null) : null }(); c.ANDROID_VERSION = r; var s = q && /webkit/i.test(i) && r < 2.3; c.IS_OLD_ANDROID = s; var t = q && r < 5 && k < 537; c.IS_NATIVE_ANDROID = t; var u = /Firefox/i.test(i); c.IS_FIREFOX = u; var v = /Edge/i.test(i); c.IS_EDGE = v; var w = !v && /Chrome/i.test(i); c.IS_CHROME = w; var x = /MSIE\s8\.0/.test(i); c.IS_IE8 = x; var y = function () { var a = /MSIE\s(\d+)\.\d/.exec(i), b = a && parseFloat(a[1]); return !b && /Trident\/7.0/i.test(i) && /rv:11.0/.test(i) && (b = 11), b }(); c.IE_VERSION = y; var z = /Safari/i.test(i) && !w && !q && !v; c.IS_SAFARI = z; var A = z || o; c.IS_ANY_SAFARI = A; var B = !!("ontouchstart" in h.default || h.default.DocumentTouch && f.default instanceof h.default.DocumentTouch); c.TOUCH_ENABLED = B; var C = "backgroundSize" in f.default.createElement("video").style; c.BACKGROUND_SIZE_SUPPORTED = C }, { "global/document": 7, "global/window": 8 }], 142: [function (a, b, c) { "use strict"; function d(a, b) { var c, d, f = 0; if (!b) return 0; a && a.length || (a = e.createTimeRange(0, 0)); for (var g = 0; g < a.length; g++) c = a.start(g), d = a.end(g), d > b && (d = b), f += d - c; return f / b } c.__esModule = !0, c.bufferedPercent = d; var e = a("./time-ranges.js") }, { "./time-ranges.js": 152 }], 143: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("./log.js"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = { get: function (a, b) { return a[b] }, set: function (a, b, c) { return a[b] = c, !0 } }; c.default = function (a) { var b = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1]; if ("function" == typeof Proxy) { var c = function () { var c = {}; return Object.keys(b).forEach(function (a) { f.hasOwnProperty(a) && (c[a] = function () { return e.default.warn(b[a]), f[a].apply(this, arguments) }) }), { v: new Proxy(a, c) } }(); if ("object" == typeof c) return c.v } return a }, b.exports = c.default }, { "./log.js": 149 }], 144: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a) { return "string" == typeof a && /\S/.test(a) } function f(a) { if (/\s/.test(a)) throw new Error("class has illegal whitespace characters") } function g(a) { return new RegExp("(^|\\s)" + a + "($|\\s)") } function h(a) { return function (b, c) { return e(b) ? (e(c) && (c = H.default.querySelector(c)), (z(c) ? c : H.default)[a](b)) : H.default[a](null) } } function i(a) { return 0 === a.indexOf("#") && (a = a.slice(1)), H.default.getElementById(a) } function j() { var a = arguments.length <= 0 || void 0 === arguments[0] ? "div" : arguments[0], b = arguments.length <= 1 || void 0 === arguments[1] ? {} : arguments[1], c = arguments.length <= 2 || void 0 === arguments[2] ? {} : arguments[2], d = H.default.createElement(a); return Object.getOwnPropertyNames(b).forEach(function (a) { var c = b[a]; - 1 !== a.indexOf("aria-") || "role" === a || "type" === a ? (N.default.warn(P.default(F, a, c)), d.setAttribute(a, c)) : d[a] = c }), Object.getOwnPropertyNames(c).forEach(function (a) { c[a]; d.setAttribute(a, c[a]) }), d } function k(a, b) { void 0 === a.textContent ? a.innerText = b : a.textContent = b } function l(a, b) { b.firstChild ? b.insertBefore(a, b.firstChild) : b.appendChild(a) } function m(a) { var b = a[R]; return b || (b = a[R] = L.newGUID()), Q[b] || (Q[b] = {}), Q[b] } function n(a) { var b = a[R]; return !!b && !!Object.getOwnPropertyNames(Q[b]).length } function o(a) { var b = a[R]; if (b) { delete Q[b]; try { delete a[R] } catch (b) { a.removeAttribute ? a.removeAttribute(R) : a[R] = null } } } function p(a, b) { return f(b), a.classList ? a.classList.contains(b) : g(b).test(a.className) } function q(a, b) { return a.classList ? a.classList.add(b) : p(a, b) || (a.className = (a.className + " " + b).trim()), a } function r(a, b) { return a.classList ? a.classList.remove(b) : (f(b), a.className = a.className.split(/\s+/).filter(function (a) { return a !== b }).join(" ")), a } function s(a, b, c) { var d = p(a, b); if ("function" == typeof c && (c = c(a, b)), "boolean" != typeof c && (c = !d), c !== d) return c ? q(a, b) : r(a, b), a } function t(a, b) { Object.getOwnPropertyNames(b).forEach(function (c) { var d = b[c]; null === d || void 0 === d || !1 === d ? a.removeAttribute(c) : a.setAttribute(c, !0 === d ? "" : d) }) } function u(a) { var b, c, d, e, f; if (b = {}, c = ",autoplay,controls,loop,muted,default,", a && a.attributes && a.attributes.length > 0) { d = a.attributes; for (var g = d.length - 1; g >= 0; g--) e = d[g].name, f = d[g].value, "boolean" != typeof a[e] && -1 === c.indexOf("," + e + ",") || (f = null !== f), b[e] = f } return b } function v() { H.default.body.focus(), H.default.onselectstart = function () { return !1 } } function w() { H.default.onselectstart = function () { return !0 } } function x(a) { var b = void 0; if (a.getBoundingClientRect && a.parentNode && (b = a.getBoundingClientRect()), !b) return { left: 0, top: 0 }; var c = H.default.documentElement, d = H.default.body, e = c.clientLeft || d.clientLeft || 0, f = J.default.pageXOffset || d.scrollLeft, g = b.left + f - e, h = c.clientTop || d.clientTop || 0, i = J.default.pageYOffset || d.scrollTop, j = b.top + i - h; return { left: Math.round(g), top: Math.round(j) } } function y(a, b) { var c = {}, d = x(a), e = a.offsetWidth, f = a.offsetHeight, g = d.top, h = d.left, i = b.pageY, j = b.pageX; return b.changedTouches && (j = b.changedTouches[0].pageX, i = b.changedTouches[0].pageY), c.y = Math.max(0, Math.min(1, (g - i + f) / f)), c.x = Math.max(0, Math.min(1, (j - h) / e)), c } function z(a) { return !!a && "object" == typeof a && 1 === a.nodeType } function A(a) { return !!a && "object" == typeof a && 3 === a.nodeType } function B(a) { for (; a.firstChild;) a.removeChild(a.firstChild); return a } function C(a) { return "function" == typeof a && (a = a()), (Array.isArray(a) ? a : [a]).map(function (a) { return "function" == typeof a && (a = a()), z(a) || A(a) ? a : "string" == typeof a && /\S/.test(a) ? H.default.createTextNode(a) : void 0 }).filter(function (a) { return a }) } function D(a, b) { return C(b).forEach(function (b) { return a.appendChild(b) }), a } function E(a, b) { return D(B(a), b) } c.__esModule = !0, c.getEl = i, c.createEl = j, c.textContent = k, c.insertElFirst = l, c.getElData = m, c.hasElData = n, c.removeElData = o, c.hasElClass = p, c.addElClass = q, c.removeElClass = r, c.toggleElClass = s, c.setElAttributes = t, c.getElAttributes = u, c.blockTextSelection = v, c.unblockTextSelection = w, c.findElPosition = x, c.getPointerPosition = y, c.isEl = z, c.isTextNode = A, c.emptyEl = B, c.normalizeContent = C, c.appendContent = D, c.insertContent = E; var F = function (a, b) { return a.raw = b, a }(["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set ", " to ", "."], ["Setting attributes in the second argument of createEl()\n has been deprecated. Use the third argument instead.\n createEl(type, properties, attributes). Attempting to set ", " to ", "."]), G = a("global/document"), H = d(G), I = a("global/window"), J = d(I), K = a("./guid.js"), L = function (a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b }(K), M = a("./log.js"), N = d(M), O = a("tsml"), P = d(O), Q = {}, R = "vdata" + (new Date).getTime(), S = h("querySelector"); c.$ = S; var T = h("querySelectorAll"); c.$$ = T }, { "./guid.js": 148, "./log.js": 149, "global/document": 7, "global/window": 8, tsml: 59 }], 145: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function f(a, b, c) { if (Array.isArray(b)) return l(f, a, b, c); var d = n.getElData(a); d.handlers || (d.handlers = {}), d.handlers[b] || (d.handlers[b] = []), c.guid || (c.guid = p.newGUID()), d.handlers[b].push(c), d.dispatcher || (d.disabled = !1, d.dispatcher = function (b, c) { if (!d.disabled) { b = j(b); var e = d.handlers[b.type]; if (e) for (var f = e.slice(0), g = 0, h = f.length; g < h && !b.isImmediatePropagationStopped(); g++) f[g].call(a, b, c) } }), 1 === d.handlers[b].length && (a.addEventListener ? a.addEventListener(b, d.dispatcher, !1) : a.attachEvent && a.attachEvent("on" + b, d.dispatcher)) } function g(a, b, c) { if (n.hasElData(a)) { var d = n.getElData(a); if (d.handlers) { if (Array.isArray(b)) return l(g, a, b, c); var e = function (b) { d.handlers[b] = [], k(a, b) }; if (b) { var f = d.handlers[b]; if (f) { if (!c) return void e(b); if (c.guid) for (var h = 0; h < f.length; h++) f[h].guid === c.guid && f.splice(h--, 1); k(a, b) } } else for (var i in d.handlers) e(i) } } } function h(a, b, c) { var d = n.hasElData(a) ? n.getElData(a) : {}, e = a.parentNode || a.ownerDocument; if ("string" == typeof b && (b = { type: b, target: a }), b = j(b), d.dispatcher && d.dispatcher.call(a, b, c), e && !b.isPropagationStopped() && !0 === b.bubbles) h.call(null, e, b, c); else if (!e && !b.defaultPrevented) { var f = n.getElData(b.target); b.target[b.type] && (f.disabled = !0, "function" == typeof b.target[b.type] && b.target[b.type](), f.disabled = !1) } return !b.defaultPrevented } function i(a, b, c) { if (Array.isArray(b)) return l(i, a, b, c); var d = function d() { g(a, b, d), c.apply(this, arguments) }; d.guid = c.guid = c.guid || p.newGUID(), f(a, b, d) } function j(a) { function b() { return !0 } function c() { return !1 } if (!a || !a.isPropagationStopped) { var d = a || r.default.event; a = {}; for (var e in d) "layerX" !== e && "layerY" !== e && "keyLocation" !== e && "webkitMovementX" !== e && "webkitMovementY" !== e && ("returnValue" === e && d.preventDefault || (a[e] = d[e])); if (a.target || (a.target = a.srcElement || t.default), a.relatedTarget || (a.relatedTarget = a.fromElement === a.target ? a.toElement : a.fromElement), a.preventDefault = function () { d.preventDefault && d.preventDefault(), a.returnValue = !1, d.returnValue = !1, a.defaultPrevented = !0 }, a.defaultPrevented = !1, a.stopPropagation = function () { d.stopPropagation && d.stopPropagation(), a.cancelBubble = !0, d.cancelBubble = !0, a.isPropagationStopped = b }, a.isPropagationStopped = c, a.stopImmediatePropagation = function () { d.stopImmediatePropagation && d.stopImmediatePropagation(), a.isImmediatePropagationStopped = b, a.stopPropagation() }, a.isImmediatePropagationStopped = c, null != a.clientX) { var f = t.default.documentElement, g = t.default.body; a.pageX = a.clientX + (f && f.scrollLeft || g && g.scrollLeft || 0) - (f && f.clientLeft || g && g.clientLeft || 0), a.pageY = a.clientY + (f && f.scrollTop || g && g.scrollTop || 0) - (f && f.clientTop || g && g.clientTop || 0) } a.which = a.charCode || a.keyCode, null != a.button && (a.button = 1 & a.button ? 0 : 4 & a.button ? 1 : 2 & a.button ? 2 : 0) } return a } function k(a, b) { var c = n.getElData(a); 0 === c.handlers[b].length && (delete c.handlers[b], a.removeEventListener ? a.removeEventListener(b, c.dispatcher, !1) : a.detachEvent && a.detachEvent("on" + b, c.dispatcher)), Object.getOwnPropertyNames(c.handlers).length <= 0 && (delete c.handlers, delete c.dispatcher, delete c.disabled), 0 === Object.getOwnPropertyNames(c).length && n.removeElData(a) } function l(a, b, c, d) { c.forEach(function (c) { a(b, c, d) }) } c.__esModule = !0, c.on = f, c.off = g, c.trigger = h, c.one = i, c.fixEvent = j; var m = a("./dom.js"), n = e(m), o = a("./guid.js"), p = e(o), q = a("global/window"), r = d(q), s = a("global/document"), t = d(s) }, { "./dom.js": 144, "./guid.js": 148, "global/document": 7, "global/window": 8 }], 146: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("./guid.js"), e = function (a, b, c) { b.guid || (b.guid = d.newGUID()); var e = function () { return b.apply(a, arguments) }; return e.guid = c ? c + "_" + b.guid : b.guid, e }; c.bind = e }, { "./guid.js": 148 }], 147: [function (a, b, c) { "use strict"; function d(a) { var b = arguments.length <= 1 || void 0 === arguments[1] ? a : arguments[1]; return function () { a = a < 0 ? 0 : a; var c = Math.floor(a % 60), d = Math.floor(a / 60 % 60), e = Math.floor(a / 3600), f = Math.floor(b / 60 % 60), g = Math.floor(b / 3600); return (isNaN(a) || a === 1 / 0) && (e = d = c = "-"), e = e > 0 || g > 0 ? e + ":" : "", d = ((e || f >= 10) && d < 10 ? "0" + d : d) + ":", c = c < 10 ? "0" + c : c, e + d + c }() } c.__esModule = !0, c.default = d, b.exports = c.default }, {}], 148: [function (a, b, c) { "use strict"; function d() { return e++ } c.__esModule = !0, c.newGUID = d; var e = 1 }, {}], 149: [function (a, b, c) { "use strict"; function d(a, b) { var c = Array.prototype.slice.call(b), d = function () {}, e = f.default.console || { log: d, warn: d, error: d }; a ? c.unshift(a.toUpperCase() + ":") : a = "log", g.history.push(c), c.unshift("VIDEOJS:"), e[a].apply ? e[a].apply(e, c) : e[a](c.join(" ")) } c.__esModule = !0; var e = a("global/window"), f = function (a) { return a && a.__esModule ? a : { default: a } }(e), g = function () { d(null, arguments) }; g.history = [], g.error = function () { d("error", arguments) }, g.warn = function () { d("warn", arguments) }, c.default = g, b.exports = c.default }, { "global/window": 8 }], 150: [function (a, b, c) { "use strict"; function d(a) { return !!a && "object" == typeof a && "[object Object]" === a.toString() && a.constructor === Object } function e() { var a = Array.prototype.slice.call(arguments); return a.unshift({}), a.push(h), g.default.apply(null, a), a[0] } c.__esModule = !0, c.default = e; var f = a("lodash-compat/object/merge"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function (a, b) { return d(b) ? d(a) ? void 0 : e(b) : b }; b.exports = c.default }, { "lodash-compat/object/merge": 46 }], 151: [function (a, b, c) { "use strict"; c.__esModule = !0; var d = a("global/document"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = function (a) { var b = e.default.createElement("style"); return b.className = a, b }; c.createStyleElement = f; var g = function (a, b) { a.styleSheet ? a.styleSheet.cssText = b : a.textContent = b }; c.setTextContent = g }, { "global/document": 7 }], 152: [function (a, b, c) { "use strict"; function d(a, b) { return Array.isArray(a) ? e(a) : void 0 === a || void 0 === b ? e() : e([ [a, b] ]) } function e(a) { return void 0 === a || 0 === a.length ? { length: 0, start: function () { throw new Error("This TimeRanges object is empty") }, end: function () { throw new Error("This TimeRanges object is empty") } } : { length: a.length, start: f.bind(null, "start", 0, a), end: f.bind(null, "end", 1, a) } } function f(a, b, c, d) { return void 0 === d && (i.default.warn("DEPRECATED: Function '" + a + "' on 'TimeRanges' called without an index argument."), d = 0), g(a, d, c.length - 1), c[d][b] } function g(a, b, c) { if (b < 0 || b > c) throw new Error("Failed to execute '" + a + "' on 'TimeRanges': The index provided (" + b + ") is greater than or equal to the maximum bound (" + c + ").") } c.__esModule = !0, c.createTimeRanges = d; var h = a("./log.js"), i = function (a) { return a && a.__esModule ? a : { default: a } }(h); c.createTimeRange = d }, { "./log.js": 149 }], 153: [function (a, b, c) { "use strict"; function d(a) { return a.charAt(0).toUpperCase() + a.slice(1) } c.__esModule = !0, c.default = d, b.exports = c.default }, {}], 154: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } c.__esModule = !0; var e = a("global/document"), f = d(e), g = a("global/window"), h = d(g), i = function (a) { var b = ["protocol", "hostname", "port", "pathname", "search", "hash", "host"], c = f.default.createElement("a"); c.href = a; var d = "" === c.host && "file:" !== c.protocol, e = void 0; d && (e = f.default.createElement("div"), e.innerHTML = '', c = e.firstChild, e.setAttribute("style", "display:none; position:absolute;"), f.default.body.appendChild(e)); for (var g = {}, h = 0; h < b.length; h++) g[b[h]] = c[b[h]]; return "http:" === g.protocol && (g.host = g.host.replace(/:80$/, "")), "https:" === g.protocol && (g.host = g.host.replace(/:443$/, "")), d && f.default.body.removeChild(e), g }; c.parseUrl = i; var j = function (a) { if (!a.match(/^https?:\/\//)) { var b = f.default.createElement("div"); b.innerHTML = 'x', a = b.firstChild.href } return a }; c.getAbsoluteURL = j; var k = function (a) { if ("string" == typeof a) { var b = /^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i, c = b.exec(a); if (c) return c.pop().toLowerCase() } return "" }; c.getFileExtension = k; var l = function (a) { var b = h.default.location, c = i(a); return (":" === c.protocol ? b.protocol : c.protocol) + c.host !== b.protocol + b.host }; c.isCrossOrigin = l }, { "global/document": 7, "global/window": 8 }], 155: [function (b, c, d) { "use strict"; function e(a) { if (a && a.__esModule) return a; var b = {}; if (null != a) for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && (b[c] = a[c]); return b.default = a, b } function f(a) { return a && a.__esModule ? a : { default: a } } d.__esModule = !0; var g = b("global/window"), h = f(g), i = b("global/document"), j = f(i), k = b("./setup"), l = e(k), m = b("./utils/stylesheet.js"), n = e(m), o = b("./component"), p = f(o), q = b("./event-target"), r = f(q), s = b("./utils/events.js"), t = e(s), u = b("./player"), v = f(u), w = b("./plugins.js"), x = f(w), y = b("../../src/js/utils/merge-options.js"), z = f(y), A = b("./utils/fn.js"), B = e(A), C = b("./tracks/text-track.js"), D = f(C), E = b("./tracks/audio-track.js"), F = f(E), G = b("./tracks/video-track.js"), H = f(G), I = b("object.assign"), J = (f(I), b("./utils/time-ranges.js")), K = b("./utils/format-time.js"), L = f(K), M = b("./utils/log.js"), N = f(M), O = b("./utils/dom.js"), P = e(O), Q = b("./utils/browser.js"), R = e(Q), S = b("./utils/url.js"), T = e(S), U = b("./extend.js"), V = f(U), W = b("lodash-compat/object/merge"), X = f(W), Y = b("./utils/create-deprecation-proxy.js"), Z = f(Y), $ = b("xhr"), _ = f($), aa = b("./tech/tech.js"), ba = f(aa), ca = b("./tech/html5.js"), da = (f(ca), b("./tech/flash.js")); f(da); "undefined" == typeof HTMLVideoElement && (j.default.createElement("video"), j.default.createElement("audio"), j.default.createElement("track")); var ea = function a(b, c, d) { var e = void 0; if ("string" == typeof b) { if (0 === b.indexOf("#") && (b = b.slice(1)), a.getPlayers()[b]) return c && N.default.warn('Player "' + b + '" is already initialised. Options will not be applied.'), d && a.getPlayers()[b].ready(d), a.getPlayers()[b]; e = P.getEl(b) } else e = b; if (!e || !e.nodeName) throw new TypeError("The element or ID supplied is not valid. (videojs)"); return e.player || v.default.players[e.playerId] || new v.default(e, c, d) }; if (!0 !== h.default.VIDEOJS_NO_DYNAMIC_STYLE) { var fa = P.$(".vjs-styles-defaults"); if (!fa) { fa = n.createStyleElement("vjs-styles-defaults"); var ga = P.$("head"); ga.insertBefore(fa, ga.firstChild), n.setTextContent(fa, "\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ") } } l.autoSetupTimeout(1, ea), ea.VERSION = "5.10.2", ea.HOLA_VERSION = !0, ea.options = v.default.prototype.options_, ea.getPlayers = function () { return v.default.players }, ea.players = Z.default(v.default.players, { get: "Access to videojs.players is deprecated; use videojs.getPlayers instead", set: "Modification of videojs.players is deprecated" }), ea.getComponent = p.default.getComponent, ea.registerComponent = function (a, b) { ba.default.isTech(b) && N.default.warn("The " + a + " tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)"), p.default.registerComponent.call(p.default, a, b) }, ea.getTech = ba.default.getTech, ea.registerTech = ba.default.registerTech, ea.browser = R, ea.TOUCH_ENABLED = R.TOUCH_ENABLED, ea.extend = V.default, ea.mergeOptions = z.default, ea.bind = B.bind, ea.plugin = x.default, ea.addLanguage = function (a, b) { var c; return a = ("" + a).toLowerCase(), X.default(ea.options.languages, (c = {}, c[a] = b, c))[a] }, ea.log = N.default, ea.createTimeRange = ea.createTimeRanges = J.createTimeRanges, ea.formatTime = L.default, ea.parseUrl = T.parseUrl, ea.isCrossOrigin = T.isCrossOrigin, ea.EventTarget = r.default, ea.on = t.on, ea.one = t.one, ea.off = t.off, ea.trigger = t.trigger, ea.xhr = _.default, ea.TextTrack = D.default, ea.AudioTrack = F.default, ea.VideoTrack = H.default, ea.isEl = P.isEl, ea.isTextNode = P.isTextNode, ea.createEl = P.createEl, ea.hasClass = P.hasElClass, ea.addClass = P.addElClass, ea.removeClass = P.removeElClass, ea.toggleClass = P.toggleElClass, ea.setAttributes = P.setElAttributes, ea.getAttributes = P.getElAttributes, ea.emptyEl = P.emptyEl, ea.appendContent = P.appendContent, ea.insertContent = P.insertContent, ea.dom = P, "function" == typeof a && a.amd ? a("videojs", [], function () { return ea }) : "object" == typeof d && "object" == typeof c && (c.exports = ea), d.default = ea, c.exports = d.default }, { "../../src/js/utils/merge-options.js": 150, "./component": 66, "./event-target": 104, "./extend.js": 105, "./player": 113, "./plugins.js": 114, "./setup": 118, "./tech/flash.js": 121, "./tech/html5.js": 122, "./tech/tech.js": 124, "./tracks/audio-track.js": 127, "./tracks/text-track.js": 135, "./tracks/video-track.js": 140, "./utils/browser.js": 141, "./utils/create-deprecation-proxy.js": 143, "./utils/dom.js": 144, "./utils/events.js": 145, "./utils/fn.js": 146, "./utils/format-time.js": 147, "./utils/log.js": 149, "./utils/stylesheet.js": 151, "./utils/time-ranges.js": 152, "./utils/url.js": 154, "global/document": 7, "global/window": 8, "lodash-compat/object/merge": 46, "object.assign": 53, xhr: 60 }] }, {}, [155])(155) }) }).call(this, "undefined" != typeof global ? global : "undefined" != typeof self ? self : "undefined" != typeof window ? window : {}) }, {}], 270: [function (a, b, c) { var d = b.exports = { WebVTT: a("./vtt.js").WebVTT, VTTCue: a("./vttcue-extended.js").VTTCue, VTTRegion: a("./vttregion-extended.js").VTTRegion }; window.vttjs = d, window.WebVTT = d.WebVTT; var e = d.VTTCue, f = d.VTTRegion, g = window.VTTCue, h = window.VTTRegion; d.shim = function () { window.VTTCue = e, window.VTTRegion = f }, d.restore = function () { window.VTTCue = g, window.VTTRegion = h }, window.VTTCue || d.shim() }, { "./vtt.js": 271, "./vttcue-extended.js": 272, "./vttregion-extended.js": 274 }], 271: [function (a, b, c) { ! function (a) { function b(a, b) { this.name = "ParsingError", this.code = a.code, this.message = b || a.message } function c(a) { function b(a, b, c, d) { return 3600 * (0 | a) + 60 * (0 | b) + (0 | c) + (0 | d) / 1e3 } var c = a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/); return c ? c[3] ? b(c[1], c[2], c[3].replace(":", ""), c[4]) : c[1] > 59 ? b(c[1], c[2], 0, c[4]) : b(0, c[1], c[2], c[4]) : null } function d() { this.values = p(null) } function e(a, b, c, d) { var e = d ? a.split(d) : [a]; for (var f in e) if ("string" == typeof e[f]) { var g = e[f].split(c); if (2 === g.length) { var h = g[0], i = g[1]; b(h, i) } } } function f(a, f, g) { function h() { var d = c(a); if (null === d) throw new b(b.Errors.BadTimeStamp, "Malformed timestamp: " + j); return a = a.replace(/^[^\sa-zA-Z-]+/, ""), d } function i() { a = a.replace(/^\s+/, "") } var j = a; if (i(), f.startTime = h(), i(), "--\x3e" !== a.substr(0, 3)) throw new b(b.Errors.BadTimeStamp, "Malformed time stamp (time stamps must be separated by '--\x3e'): " + j); a = a.substr(3), i(), f.endTime = h(), i(), function (a, b) { var c = new d; e(a, function (a, b) { switch (a) { case "region": for (var d = g.length - 1; d >= 0; d--) if (g[d].id === b) { c.set(a, g[d].region); break } break; case "vertical": c.alt(a, b, ["rl", "lr"]); break; case "line": var e = b.split(","), f = e[0]; c.integer(a, f), c.percent(a, f) && c.set("snapToLines", !1), c.alt(a, f, ["auto"]), 2 === e.length && c.alt("lineAlign", e[1], ["start", "middle", "end"]); break; case "position": e = b.split(","), c.percent(a, e[0]), 2 === e.length && c.alt("positionAlign", e[1], ["start", "middle", "end"]); break; case "size": c.percent(a, b); break; case "align": c.alt(a, b, ["start", "middle", "end", "left", "right"]) } }, /:/, /\s/), b.region = c.get("region", null), b.vertical = c.get("vertical", ""), b.line = c.get("line", "auto"), b.lineAlign = c.get("lineAlign", "start"), b.snapToLines = c.get("snapToLines", !0), b.size = c.get("size", 100), b.align = c.get("align", "middle"), b.position = c.get("position", { start: 0, left: 0, middle: 50, end: 100, right: 100 }, b.align), b.positionAlign = c.get("positionAlign", { start: "start", left: "start", middle: "middle", end: "end", right: "end" }, b.align) }(a, f) } function g(a, b) { function d(a) { return q[a] } for (var e, f = a.document.createElement("div"), g = f, h = []; null !== (e = function () { if (!b) return null; var a = b.match(/^([^<]*)(<[^>]+>?)?/); return function (a) { return b = b.substr(a.length), a }(a[1] ? a[1] : a[2]) }());) if ("<" !== e[0]) g.appendChild(a.document.createTextNode(function (a) { for (; k = a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);) a = a.replace(k[0], d); return a }(e))); else { if ("/" === e[1]) { h.length && h[h.length - 1] === e.substr(2).replace(">", "") && (h.pop(), g = g.parentNode); continue } var i, j = c(e.substr(1, e.length - 2)); if (j) { i = a.document.createProcessingInstruction("timestamp", j), g.appendChild(i); continue } var k = e.match(/^<([^.\s\/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/); if (!k) continue; if (!(i = function (b, c) { var d = r[b]; if (!d) return null; var e = a.document.createElement(d); e.localName = d; var f = s[b]; return f && c && (e[f] = c.trim()), e }(k[1], k[3]))) continue; if (! function (a, b) { return !t[b.localName] || t[b.localName] === a.localName }(g, i)) continue; k[2] && (i.className = k[2].substr(1).replace(".", " ")), h.push(k[1]), g.appendChild(i), g = i } return f } function h(a) { for (var b = 0; b < u.length; b++) { var c = u[b]; if (a >= c[0] && a <= c[1]) return !0 } return !1 } function i(a) { function b(a, b) { for (var c = b.childNodes.length - 1; c >= 0; c--) a.push(b.childNodes[c]) } function c(a) { if (!a || !a.length) return null; var d = a.pop(), e = d.textContent || d.innerText; if (e) { var f = e.match(/^.*(\n|\r)/); return f ? (a.length = 0, f[0]) : e } return "ruby" === d.tagName ? c(a) : d.childNodes ? (b(a, d), c(a)) : void 0 } var d, e = [], f = ""; if (!a || !a.childNodes) return "ltr"; for (b(e, a); f = c(e);) for (var g = 0; g < f.length; g++) if (d = f.charCodeAt(g), h(d)) return "rtl"; return "ltr" } function j(a) { if ("number" == typeof a.line && (a.snapToLines || a.line >= 0 && a.line <= 100)) return a.line; if (!a.track || !a.track.textTrackList || !a.track.textTrackList.mediaElement) return -1; for (var b = a.track, c = b.textTrackList, d = 0, e = 0; e < c.length && c[e] !== b; e++) "showing" === c[e].mode && d++; return -1 * ++d } function k() {} function l(a, b, c) { var d = /MSIE\s8\.0/.test(navigator.userAgent), e = "rgba(255, 255, 255, 1)", f = "rgba(0, 0, 0, 0.8)"; d && (e = "rgb(255, 255, 255)", f = "rgb(0, 0, 0)"), k.call(this), this.cue = b, this.cueDiv = g(a, b.text); var h = { color: e, backgroundColor: f, position: "relative", left: 0, right: 0, top: 0, bottom: 0, display: "inline" }; d || (h.writingMode = "" === b.vertical ? "horizontal-tb" : "lr" === b.vertical ? "vertical-lr" : "vertical-rl", h.unicodeBidi = "plaintext"), this.applyStyles(h, this.cueDiv), this.div = a.document.createElement("div"), h = { textAlign: "middle" === b.align ? "center" : b.align, font: c.font, whiteSpace: "pre-line", position: "absolute" }, d || (h.direction = i(this.cueDiv), h.writingMode = "" === b.vertical ? "horizontal-tb" : "lr" === b.vertical ? "vertical-lr" : "vertical-rl".stylesunicodeBidi = "plaintext"), this.applyStyles(h), this.div.appendChild(this.cueDiv); var j = 0; switch (b.positionAlign) { case "start": j = b.position; break; case "middle": j = b.position - b.size / 2; break; case "end": j = b.position - b.size } "" === b.vertical ? this.applyStyles({ left: this.formatStyle(j, "%"), width: this.formatStyle(b.size, "%") }) : this.applyStyles({ top: this.formatStyle(j, "%"), height: this.formatStyle(b.size, "%") }), this.move = function (a) { this.applyStyles({ top: this.formatStyle(a.top, "px"), bottom: this.formatStyle(a.bottom, "px"), left: this.formatStyle(a.left, "px"), right: this.formatStyle(a.right, "px"), height: this.formatStyle(a.height, "px"), width: this.formatStyle(a.width, "px") }) } } function m(a) { var b, c, d, e, f = /MSIE\s8\.0/.test(navigator.userAgent); if (a.div) { c = a.div.offsetHeight, d = a.div.offsetWidth, e = a.div.offsetTop; var g = (g = a.div.childNodes) && (g = g[0]) && g.getClientRects && g.getClientRects(); a = a.div.getBoundingClientRect(), b = g ? Math.max(g[0] && g[0].height || 0, a.height / g.length) : 0 } this.left = a.left, this.right = a.right, this.top = a.top || e, this.height = a.height || c, this.bottom = a.bottom || e + (a.height || c), this.width = a.width || d, this.lineHeight = void 0 !== b ? b : a.lineHeight, f && !this.lineHeight && (this.lineHeight = 13) } function n(a, b, c, d) { var e = new m(b), f = b.cue, g = j(f), h = []; if (f.snapToLines) { var i; switch (f.vertical) { case "": h = ["+y", "-y"], i = "height"; break; case "rl": h = ["+x", "-x"], i = "width"; break; case "lr": h = ["-x", "+x"], i = "width" } var k = e.lineHeight, l = k * Math.round(g), n = c[i] + k, o = h[0]; Math.abs(l) > n && (l = l < 0 ? -1 : 1, l *= Math.ceil(n / k) * k), g < 0 && (l += "" === f.vertical ? c.height : c.width, h = h.reverse()), e.move(o, l) } else { var p = e.lineHeight / c.height * 100; switch (f.lineAlign) { case "middle": g -= p / 2; break; case "end": g -= p } switch (f.vertical) { case "": b.applyStyles({ top: b.formatStyle(g, "%") }); break; case "rl": b.applyStyles({ left: b.formatStyle(g, "%") }); break; case "lr": b.applyStyles({ right: b.formatStyle(g, "%") }) } h = ["+y", "-x", "+x", "-y"], e = new m(b) } var q = function (a, b) { for (var e, f = new m(a), g = 1, h = 0; h < b.length; h++) { for (; a.overlapsOppositeAxis(c, b[h]) || a.within(c) && a.overlapsAny(d);) a.move(b[h]); if (a.within(c)) return a; var i = a.intersectPercentage(c); g > i && (e = new m(a), g = i), a = new m(f) } return e || f }(e, h); b.move(q.toCSSCompatValues(c)) } function o() {} var p = Object.create || function () { function a() {} return function (b) { if (1 !== arguments.length) throw new Error("Object.create shim only accepts one parameter."); return a.prototype = b, new a } }(); b.prototype = p(Error.prototype), b.prototype.constructor = b, b.Errors = { BadSignature: { code: 0, message: "Malformed WebVTT signature." }, BadTimeStamp: { code: 1, message: "Malformed time stamp." } }, d.prototype = { set: function (a, b) { this.get(a) || "" === b || (this.values[a] = b) }, get: function (a, b, c) { return c ? this.has(a) ? this.values[a] : b[c] : this.has(a) ? this.values[a] : b }, has: function (a) { return a in this.values }, alt: function (a, b, c) { for (var d = 0; d < c.length; ++d) if (b === c[d]) { this.set(a, b); break } }, integer: function (a, b) { /^-?\d+$/.test(b) && this.set(a, parseInt(b, 10)) }, percent: function (a, b) { return !!(b.match(/^([\d]{1,3})(\.[\d]*)?%$/) && (b = parseFloat(b)) >= 0 && b <= 100) && (this.set(a, b), !0) } }; var q = { "&": "&", "<": "<", ">": ">", "‎": "‎", "‏": "‏", " ": " " }, r = { c: "span", i: "i", b: "b", u: "u", ruby: "ruby", rt: "rt", v: "span", lang: "span" }, s = { v: "title", lang: "lang" }, t = { rt: "ruby" }, u = [ [1470, 1470], [1472, 1472], [1475, 1475], [1478, 1478], [1488, 1514], [1520, 1524], [1544, 1544], [1547, 1547], [1549, 1549], [1563, 1563], [1566, 1610], [1645, 1647], [1649, 1749], [1765, 1766], [1774, 1775], [1786, 1805], [1807, 1808], [1810, 1839], [1869, 1957], [1969, 1969], [1984, 2026], [2036, 2037], [2042, 2042], [2048, 2069], [2074, 2074], [2084, 2084], [2088, 2088], [2096, 2110], [2112, 2136], [2142, 2142], [2208, 2208], [2210, 2220], [8207, 8207], [64285, 64285], [64287, 64296], [64298, 64310], [64312, 64316], [64318, 64318], [64320, 64321], [64323, 64324], [64326, 64449], [64467, 64829], [64848, 64911], [64914, 64967], [65008, 65020], [65136, 65140], [65142, 65276], [67584, 67589], [67592, 67592], [67594, 67637], [67639, 67640], [67644, 67644], [67647, 67669], [67671, 67679], [67840, 67867], [67872, 67897], [67903, 67903], [67968, 68023], [68030, 68031], [68096, 68096], [68112, 68115], [68117, 68119], [68121, 68147], [68160, 68167], [68176, 68184], [68192, 68223], [68352, 68405], [68416, 68437], [68440, 68466], [68472, 68479], [68608, 68680], [126464, 126467], [126469, 126495], [126497, 126498], [126500, 126500], [126503, 126503], [126505, 126514], [126516, 126519], [126521, 126521], [126523, 126523], [126530, 126530], [126535, 126535], [126537, 126537], [126539, 126539], [126541, 126543], [126545, 126546], [126548, 126548], [126551, 126551], [126553, 126553], [126555, 126555], [126557, 126557], [126559, 126559], [126561, 126562], [126564, 126564], [126567, 126570], [126572, 126578], [126580, 126583], [126585, 126588], [126590, 126590], [126592, 126601], [126603, 126619], [126625, 126627], [126629, 126633], [126635, 126651], [1114109, 1114109] ]; k.prototype.applyStyles = function (a, b) { b = b || this.div; for (var c in a) a.hasOwnProperty(c) && (b.style[c] = a[c]) }, k.prototype.formatStyle = function (a, b) { return 0 === a ? 0 : a + b }, l.prototype = p(k.prototype), l.prototype.constructor = l, m.prototype.move = function (a, b) { switch (b = void 0 !== b ? b : this.lineHeight, a) { case "+x": this.left += b, this.right += b; break; case "-x": this.left -= b, this.right -= b; break; case "+y": this.top += b, this.bottom += b; break; case "-y": this.top -= b, this.bottom -= b } }, m.prototype.overlaps = function (a) { return this.left < a.right && this.right > a.left && this.top < a.bottom && this.bottom > a.top }, m.prototype.overlapsAny = function (a) { for (var b = 0; b < a.length; b++) if (this.overlaps(a[b])) return !0; return !1 }, m.prototype.within = function (a) { return this.top >= a.top && this.bottom <= a.bottom && this.left >= a.left && this.right <= a.right }, m.prototype.overlapsOppositeAxis = function (a, b) { switch (b) { case "+x": return this.left < a.left; case "-x": return this.right > a.right; case "+y": return this.top < a.top; case "-y": return this.bottom > a.bottom } }, m.prototype.intersectPercentage = function (a) { return Math.max(0, Math.min(this.right, a.right) - Math.max(this.left, a.left)) * Math.max(0, Math.min(this.bottom, a.bottom) - Math.max(this.top, a.top)) / (this.height * this.width) }, m.prototype.toCSSCompatValues = function (a) { return { top: this.top - a.top, bottom: a.bottom - this.bottom, left: this.left - a.left, right: a.right - this.right, height: this.height, width: this.width } }, m.getSimpleBoxPosition = function (a) { var b = a.div ? a.div.offsetHeight : a.tagName ? a.offsetHeight : 0, c = a.div ? a.div.offsetWidth : a.tagName ? a.offsetWidth : 0, d = a.div ? a.div.offsetTop : a.tagName ? a.offsetTop : 0; return a = a.div ? a.div.getBoundingClientRect() : a.tagName ? a.getBoundingClientRect() : a, { left: a.left, right: a.right, top: a.top || d, height: a.height || b, bottom: a.bottom || d + (a.height || b), width: a.width || c } }, o.StringDecoder = function () { return { decode: function (a) { if (!a) return ""; if ("string" != typeof a) throw new Error("Error - expected string data."); return decodeURIComponent(encodeURIComponent(a)) } } }, o.convertCueToDOMTree = function (a, b) { return a && b ? g(a, b) : null }; o.processCues = function (a, b, c) { if (!a || !b || !c) return null; for (; c.firstChild;) c.removeChild(c.firstChild); var d = a.document.createElement("div"); if (d.style.position = "absolute", d.style.left = "0", d.style.right = "0", d.style.top = "0", d.style.bottom = "0", d.style.margin = "1.5%", c.appendChild(d), function (a) { for (var b = 0; b < a.length; b++) if (a[b].hasBeenReset || !a[b].displayState) return !0; return !1 }(b)) { var e = [], f = m.getSimpleBoxPosition(d), g = Math.round(.05 * f.height * 100) / 100, h = { font: g + "px sans-serif" }; ! function () { for (var c, g, i = 0; i < b.length; i++) g = b[i], c = new l(a, g, h), d.appendChild(c.div), n(a, c, f, e), g.displayState = c.div, e.push(m.getSimpleBoxPosition(c)) }() } else for (var i = 0; i < b.length; i++) d.appendChild(b[i].displayState) }, o.Parser = function (a, b, c) { c || (c = b, b = {}), b || (b = {}), this.window = a, this.vttjs = b, this.state = "INITIAL", this.buffer = "", this.decoder = c || new TextDecoder("utf8"), this.regionList = [] }, o.Parser.prototype = { reportOrThrowError: function (a) { if (!(a instanceof b)) throw a; this.onparsingerror && this.onparsingerror(a) }, parse: function (a) { function g() { for (var a = j.buffer, b = 0; b < a.length && "\r" !== a[b] && "\n" !== a[b];) ++b; var c = a.substr(0, b); return "\r" === a[b] && ++b, "\n" === a[b] && ++b, j.buffer = a.substr(b), c } function h(a) { var b = new d; if (e(a, function (a, c) { switch (a) { case "id": b.set(a, c); break; case "width": b.percent(a, c); break; case "lines": b.integer(a, c); break; case "regionanchor": case "viewportanchor": var e = c.split(","); if (2 !== e.length) break; var f = new d; if (f.percent("x", e[0]), f.percent("y", e[1]), !f.has("x") || !f.has("y")) break; b.set(a + "X", f.get("x")), b.set(a + "Y", f.get("y")); break; case "scroll": b.alt(a, c, ["up"]) } }, /=/, /\s/), b.has("id")) { var c = new(j.vttjs.VTTRegion || j.window.VTTRegion); c.width = b.get("width", 100), c.lines = b.get("lines", 3), c.regionAnchorX = b.get("regionanchorX", 0), c.regionAnchorY = b.get("regionanchorY", 100), c.viewportAnchorX = b.get("viewportanchorX", 0), c.viewportAnchorY = b.get("viewportanchorY", 100), c.scroll = b.get("scroll", ""), j.onregion && j.onregion(c), j.regionList.push({ id: b.get("id"), region: c }) } } function i(a) { var b = new d; e(a, function (a, d) { switch (a) { case "MPEGT": b.integer(a + "S", d); break; case "LOCA": b.set(a + "L", c(d)) } }, /[^\d]:/, /,/), j.ontimestampmap && j.ontimestampmap({ MPEGTS: b.get("MPEGTS"), LOCAL: b.get("LOCAL") }) } var j = this; a && (j.buffer += j.decoder.decode(a, { stream: !0 })); try { var k; if ("INITIAL" === j.state) { if (!/\r\n|\n/.test(j.buffer)) return this; k = g(); var l = k.match(/^WEBVTT([ \t].*)?$/); if (!l || !l[0]) throw new b(b.Errors.BadSignature); j.state = "HEADER" } for (var m = !1; j.buffer;) { if (!/\r\n|\n/.test(j.buffer)) return this; switch (m ? m = !1 : k = g(), j.state) { case "HEADER": /:/.test(k) ? function (a) { a.match(/X-TIMESTAMP-MAP/) ? e(a, function (a, b) { switch (a) { case "X-TIMESTAMP-MAP": i(b) } }, /=/) : e(a, function (a, b) { switch (a) { case "Region": h(b) } }, /:/) }(k) : k || (j.state = "ID"); continue; case "NOTE": k || (j.state = "ID"); continue; case "ID": if (/^NOTE($|[ \t])/.test(k)) { j.state = "NOTE"; break } if (!k) continue; if (j.cue = new(j.vttjs.VTTCue || j.window.VTTCue)(0, 0, ""), j.state = "CUE", -1 === k.indexOf("--\x3e")) { j.cue.id = k; continue } case "CUE": try { f(k, j.cue, j.regionList) } catch (a) { j.reportOrThrowError(a), j.cue = null, j.state = "BADCUE"; continue } j.state = "CUETEXT"; continue; case "CUETEXT": var n = -1 !== k.indexOf("--\x3e"); if (!k || n && (m = !0)) { j.oncue && j.oncue(j.cue), j.cue = null, j.state = "ID"; continue } j.cue.text && (j.cue.text += "\n"), j.cue.text += k; continue; case "BADCUE": k || (j.state = "ID"); continue } } } catch (a) { j.reportOrThrowError(a), "CUETEXT" === j.state && j.cue && j.oncue && j.oncue(j.cue), j.cue = null, j.state = "INITIAL" === j.state ? "BADWEBVTT" : "BADCUE" } return this }, flush: function () { var a = this; try { if (a.buffer += a.decoder.decode(), (a.cue || "HEADER" === a.state) && (a.buffer += "\n\n", a.parse()), "INITIAL" === a.state) throw new b(b.Errors.BadSignature) } catch (b) { a.reportOrThrowError(b) } return a.onflush && a.onflush(), this } }, a.WebVTT = o }(this, this.vttjs) }, {}], 272: [function (a, b, c) { void 0 !== b && b.exports && (this.VTTCue = this.VTTCue || a("./vttcue").VTTCue), function (a) { a.VTTCue.prototype.toJSON = function () { var a = {}, b = this; return Object.keys(this).forEach(function (c) { "getCueAsHTML" !== c && "hasBeenReset" !== c && "displayState" !== c && (a[c] = b[c]) }), a }, a.VTTCue.create = function (b) { if (!b.hasOwnProperty("startTime") || !b.hasOwnProperty("endTime") || !b.hasOwnProperty("text")) throw new Error("You must at least have start time, end time, and text."); var c = new a.VTTCue(b.startTime, b.endTime, b.text); for (var d in b) c.hasOwnProperty(d) && (c[d] = b[d]); return c }, a.VTTCue.fromJSON = function (a) { return this.create(JSON.parse(a)) } }(this) }, { "./vttcue": 273 }], 273: [function (a, b, c) { ! function (a, b) { function c(a) { return "string" == typeof a && (!!h[a.toLowerCase()] && a.toLowerCase()) } function d(a) { return "string" == typeof a && (!!i[a.toLowerCase()] && a.toLowerCase()) } function e(a) { for (var b = 1; b < arguments.length; b++) { var c = arguments[b]; for (var d in c) a[d] = c[d] } return a } function f(a, b, f) { var h = this, i = /MSIE\s8\.0/.test(navigator.userAgent), j = {}; i ? h = document.createElement("custom") : j.enumerable = !0, h.hasBeenReset = !1; var k = "", l = !1, m = a, n = b, o = f, p = null, q = "", r = !0, s = "auto", t = "start", u = 50, v = "middle", w = 50, x = "middle"; if (Object.defineProperty(h, "id", e({}, j, { get: function () { return k }, set: function (a) { k = "" + a } })), Object.defineProperty(h, "pauseOnExit", e({}, j, { get: function () { return l }, set: function (a) { l = !!a } })), Object.defineProperty(h, "startTime", e({}, j, { get: function () { return m }, set: function (a) { if ("number" != typeof a) throw new TypeError("Start time must be set to a number."); m = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "endTime", e({}, j, { get: function () { return n }, set: function (a) { if ("number" != typeof a) throw new TypeError("End time must be set to a number."); n = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "text", e({}, j, { get: function () { return o }, set: function (a) { o = "" + a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "region", e({}, j, { get: function () { return p }, set: function (a) { p = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "vertical", e({}, j, { get: function () { return q }, set: function (a) { var b = c(a); if (!1 === b) throw new SyntaxError("An invalid or illegal string was specified."); q = b, this.hasBeenReset = !0 } })), Object.defineProperty(h, "snapToLines", e({}, j, { get: function () { return r }, set: function (a) { r = !!a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "line", e({}, j, { get: function () { return s }, set: function (a) { if ("number" != typeof a && a !== g) throw new SyntaxError("An invalid number or illegal string was specified."); s = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "lineAlign", e({}, j, { get: function () { return t }, set: function (a) { var b = d(a); if (!b) throw new SyntaxError("An invalid or illegal string was specified."); t = b, this.hasBeenReset = !0 } })), Object.defineProperty(h, "position", e({}, j, { get: function () { return u }, set: function (a) { if (a < 0 || a > 100) throw new Error("Position must be between 0 and 100."); u = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "positionAlign", e({}, j, { get: function () { return v }, set: function (a) { var b = d(a); if (!b) throw new SyntaxError("An invalid or illegal string was specified."); v = b, this.hasBeenReset = !0 } })), Object.defineProperty(h, "size", e({}, j, { get: function () { return w }, set: function (a) { if (a < 0 || a > 100) throw new Error("Size must be between 0 and 100."); w = a, this.hasBeenReset = !0 } })), Object.defineProperty(h, "align", e({}, j, { get: function () { return x }, set: function (a) { var b = d(a); if (!b) throw new SyntaxError("An invalid or illegal string was specified."); x = b, this.hasBeenReset = !0 } })), h.displayState = void 0, i) return h } var g = "auto", h = { "": !0, lr: !0, rl: !0 }, i = { start: !0, middle: !0, end: !0, left: !0, right: !0 }; f.prototype.getCueAsHTML = function () { return WebVTT.convertCueToDOMTree(window, this.text) }, a.VTTCue = a.VTTCue || f, b.VTTCue = f }(this, this.vttjs || {}) }, {}], 274: [function (a, b, c) { void 0 !== b && b.exports && (this.VTTRegion = a("./vttregion").VTTRegion), function (a) { a.VTTRegion.create = function (b) { var c = new a.VTTRegion; for (var d in b) c.hasOwnProperty(d) && (c[d] = b[d]); return c }, a.VTTRegion.fromJSON = function (a) { return this.create(JSON.parse(a)) } }(this) }, { "./vttregion": 275 }], 275: [function (a, b, c) { ! function (a, b) { function c(a) { return "string" == typeof a && (!!f[a.toLowerCase()] && a.toLowerCase()) } function d(a) { return "number" == typeof a && a >= 0 && a <= 100 } function e() { var a = 100, b = 3, e = 0, f = 100, g = 0, h = 100, i = ""; Object.defineProperties(this, { width: { enumerable: !0, get: function () { return a }, set: function (b) { if (!d(b)) throw new Error("Width must be between 0 and 100."); a = b } }, lines: { enumerable: !0, get: function () { return b }, set: function (a) { if ("number" != typeof a) throw new TypeError("Lines must be set to a number."); b = a } }, regionAnchorY: { enumerable: !0, get: function () { return f }, set: function (a) { if (!d(a)) throw new Error("RegionAnchorX must be between 0 and 100."); f = a } }, regionAnchorX: { enumerable: !0, get: function () { return e }, set: function (a) { if (!d(a)) throw new Error("RegionAnchorY must be between 0 and 100."); e = a } }, viewportAnchorY: { enumerable: !0, get: function () { return h }, set: function (a) { if (!d(a)) throw new Error("ViewportAnchorY must be between 0 and 100."); h = a } }, viewportAnchorX: { enumerable: !0, get: function () { return g }, set: function (a) { if (!d(a)) throw new Error("ViewportAnchorX must be between 0 and 100."); g = a } }, scroll: { enumerable: !0, get: function () { return i }, set: function (a) { var b = c(a); if (!1 === b) throw new SyntaxError("An invalid or illegal string was specified."); i = b } } }) } var f = { "": !0, up: !0 }; a.VTTRegion = a.VTTRegion || e, b.VTTRegion = e }(this, this.vttjs || {}) }, {}], 276: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = a("video.js"), e = function (a) { return a && a.__esModule ? a : { default: a } }(d), f = { position: "top-right", fadeTime: 3e3, url: void 0, image: void 0 }, g = function (a, b) { var c = a.el(), d = document.createElement("div"), e = document.createElement("img"); if (d.classList.add("vjs-watermark-content"), d.classList.add("vjs-watermark-" + b.position), e.src = b.image, b.url) { var f = document.createElement("a"); f.href = b.url, f.onclick = function (c) { c.preventDefault(), a.pause(), window.open(b.url) }, f.appendChild(e), d.appendChild(f) } else d.appendChild(e); c.appendChild(d) }, h = function (a) { setTimeout(function () { return document.getElementsByClassName("vjs-watermark-content")[0].classList.add("vjs-watermark-fade") }, a.fadeTime) }, i = function (a, b) { a.addClass("vjs-watermark"), b.image && (g(a, b), null !== b.fadeTime && a.on("play", function () { return h(b) })) }, j = function (a) { var b = this; this.ready(function () { i(b, e.default.mergeOptions(f, a)) }) }; e.default.plugin("watermark", j), j.VERSION = "__VERSION__", c.default = j, b.exports = c.default }, { "video.js": 269 }], 277: [function (a, b, c) { var d = ".vjs-dvr .vjs-progress-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex}.vjs-dvr .vjs-live-control{flex:inherit;cursor:pointer}.vjs-dvr .vjs-live-control .vjs-tooltip{line-height:1em}.vjs-dvr-live .vjs-live-control .vjs-tooltip{display:none}.vjs-dvr-live .vjs-live-control{cursor:default}.vjs-dvr:not(.vjs-dvr-live) .vjs-live-display:before{background:#566377}"; a("browserify-css").createStyle(d, { href: "src/css/dvr.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 278: [function (a, b, c) { var d = ".video-js .vjs-button.vjs-next-button{order:.1}.video-js .vjs-button.vjs-next-button .vjs-button-icon{width:3.6em;height:100%;cursor:pointer;opacity:.9}.video-js .vjs-button.vjs-next-button .vjs-button-icon>svg{position:absolute;width:90%;height:90%;padding:0;top:0;left:0;right:0;bottom:0;margin:auto;display:block;transition:opacity 200ms ease}.video-js .vjs-button.vjs-next-button .vjs-button-icon:hover{opacity:1}.video-js.vjs-ad-playing .vjs-button.vjs-next-button{display:none}"; a("browserify-css").createStyle(d, { href: "src/css/next.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 279: [function (a, b, c) { var d = ".video-js .vjs-button.vjs-share-button{position:absolute;width:3.6em;height:3.6em;top:1.2em;right:1.2em;border-radius:50%;cursor:pointer;z-index:2;background:rgba(28,28,28,.9)}.vjs-ios-skin .vjs-button.vjs-share-button{background:0 0}.vjs-ios-skin.vjs-has-started .vjs-button.vjs-share-button{top:45px}.video-js .vjs-button.vjs-share-button .vjs-button-icon{position:absolute;width:2em;height:2em;top:50%;left:50%;margin:-1em 0 0 -1.1em}.video-js.vjs-ad-playing .vjs-button.vjs-share-button{display:none}.video-js.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-share-button{opacity:0;transition:visibility .25s,opacity .25s}.video-js .vjs-button.vjs-share-button .vjs-tooltip,.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-close-button .vjs-tooltip{top:3.2em}.video-js .vjs-modal-dialog.vjs-share-dialog{background-color:rgba(0,0,0,.7);z-index:5}.video-js.vjs-ima-ad .vjs-button.vjs-share-button,.video-js.vjs-ima-ad .vjs-modal-dialog.vjs-share-dialog{z-index:1112}.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-modal-dialog-content{top:50%;height:7.6em;padding:0;margin-top:-3.8em;text-align:center;font-size:1em}.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-share-dialog-title{font-size:1.6em;margin-bottom:.5em}.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-share-dialog-buttons .vjs-button{width:auto;height:auto;display:inline-block}.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-share-link{display:block;width:4.4em;height:4.4em;padding:.3em;background-repeat:no-repeat;background-size:3.4em;background-position:center center}.video-js .vjs-modal-dialog.vjs-share-dialog .vjs-share-link svg{pointer-events:none}.video-js.vjs-fullscreen:not(.vjs-small) .vjs-button.vjs-share-button,.video-js.vjs-fullscreen:not(.vjs-small) .vjs-modal-dialog.vjs-share-dialog{font-size:150%}"; a("browserify-css").createStyle(d, { href: "src/css/share.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 280: [function (a, b, c) { var d = '.vjs-ad-playing.vjs-ad-playing .vjs-progress-control:after{width:100%;height:100%;position:absolute;left:0;bottom:0;content:" ";user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-user-select:none}.vjs-ad-playing.vjs-ad-playing .vjs-play-progress{background-color:#ffe400}.vjs-ad-loading .vjs-loading-spinner{display:block}.vjs-ad-playing .vjs-audio-button,.vjs-ad-playing .vjs-captions-button{display:none}.vjs-ad-loading .vjs-loading-spinner:after,.vjs-ad-loading .vjs-loading-spinner:before{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-ad-loading .vjs-loading-spinner:before{border-top-color:#fff}.vjs-ad-loading .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}'; a("browserify-css").createStyle(d, { href: "src/css/videojs-contrib-ads.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 281: [function (a, b, c) { var d = ".text-shadow{text-shadow:0 0 2px rgba(0,0,0,.5)}.vjs5-hola-skin{font-family:Roboto,Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}.vjs5-hola-skin .hola-circle-icon{display:block;width:1em;height:1em;box-sizing:border-box;border-radius:50%;border-style:solid;border-width:.3em;border-color:#fff;background:#00b7f1}.vjs5-hola-skin .vjs-control-bar{color:#fff}.vjs5-hola-skin .vjs-control-bar>:not(.vjs-gradient){z-index:2}.vjs5-hola-skin .vjs-big-play-button{top:0;left:0;width:100%;height:100%;font-size:1em;border:0;opacity:1}.vjs5-hola-skin .vjs-big-play-button:before{content:none}.vjs5-hola-skin .vjs-big-play-button .vjs-button-icon{position:absolute;height:4.8em;width:6.8em;left:50%;top:50%;margin-left:-3.4em;margin-top:-2.4em;fill:rgba(33,33,33,.8)}.vjs5-hola-skin .vjs-big-play-button:hover .vjs-button-icon{fill:#00b7f1}.vjs5-hola-skin .vjs-big-play-button,.vjs5-hola-skin .vjs-big-play-button:focus,.vjs5-hola-skin:hover .vjs-big-play-button,.vjs5-hola-skin:hover .vjs-big-play-button:focus{background:0 0}.vjs5-hola-skin.vjs-error-hidden .vjs-big-play-button,.vjs5-hola-skin.vjs-error-hidden .vjs-share-button{display:none!important}.vjs5-hola-skin.vjs-error-hidden *{cursor:default}.vjs5-hola-skin.vjs-error .vjs-big-play-button,.vjs5-hola-skin.vjs-error .vjs-loading-spinner,.vjs5-hola-skin.vjs-error .vjs-share-button,.vjs5-hola-skin.vjs-error .vjs-top-bar{display:none!important}.vjs5-hola-skin.vjs-ima-ad:not(.vjs-has-started) .vjs-big-play-button{z-index:1112}.vjs5-hola-skin.vjs-paused.vjs-pos-ended .vjs-big-play-button,.vjs5-hola-skin.vjs-paused.vjs-pos-ended .vjs-poster{display:block}.vjs5-hola-skin.vjs-ad-loading .vjs-big-play-button,.vjs5-hola-skin.vjs-ad-playing .vjs-big-play-button,.vjs5-hola-skin.vjs-seeking .vjs-big-play-button,.vjs5-hola-skin.vjs-using-native-controls .vjs-big-play-button,.vjs5-hola-skin.vjs-waiting .vjs-big-play-button{display:none!important}.vjs5-hola-skin.vjs-has-started .vjs-poster{opacity:0;transition:opacity 250ms ease}.vjs5-hola-skin .vjs-control{margin:0;padding:0;text-align:left}.vjs5-hola-skin .vjs-control>.vjs-button-icon,.vjs5-hola-skin .vjs-control>svg{position:relative;box-sizing:content-box;display:inline-block;width:3.6em;height:100%;margin:0;padding:0}.vjs5-hola-skin .vjs-control:focus .vjs-menu{text-shadow:none}.vjs5-hola-skin .vjs-control-bar{height:3.6em;background:0 0;overflow:visible;text-shadow:0 0 2px rgba(0,0,0,.5)}.vjs5-hola-skin .vjs-control-bar>.vjs-spacer{display:block;flex-grow:1;order:5}.vjs5-hola-skin .vjs-control-bar>.vjs-control:before{line-height:2}.vjs5-hola-skin .vjs-control-bar>.vjs-control,.vjs5-hola-skin .vjs-control-bar>.vjs-progress-control,.vjs5-hola-skin .vjs-control-bar>.vjs-time-control{margin-top:0}.vjs5-hola-skin .vjs-control-bar>.vjs-captions-button{order:9}.vjs5-hola-skin .vjs-control-bar>.vjs-playback-rate{order:8}.vjs5-hola-skin.vjs-live:not(.vjs-dvr) .vjs-control-bar>.vjs-control,.vjs5-hola-skin.vjs-live:not(.vjs-dvr) .vjs-control-bar>.vjs-time-control{margin-top:0}.vjs5-hola-skin.vjs-live .vjs-control-bar .vjs-time-control.vjs-current-time,.vjs5-hola-skin.vjs-live .vjs-control-bar .vjs-time-control.vjs-duration,.vjs5-hola-skin.vjs-live .vjs-control-bar .vjs-time-control.vjs-time-divider{display:none}.vjs5-hola-skin.vjs-live .vjs-live-display{font-size:1.3em;color:#eee;text-shadow:none}.vjs5-hola-skin.vjs-live .vjs-live-display:before{display:inline-block;width:6px;height:6px;margin-right:.4em;vertical-align:4%;background:#f51717;content:'';border-radius:50%}.vjs5-hola-skin.vjs-live.vjs-fullscreen:not(.vjs-small) .vjs-live-display:before{width:10px;height:10px}.vjs5-hola-skin .vjs-control-bar .vjs-progress-control .vjs-mouse-display-tooltip,.vjs5-hola-skin .vjs-control-bar .vjs-progress-control .vjs-volume-display-tooltip,.vjs5-hola-skin .vjs-tooltip{top:-1.84615385em;padding:.38461538em .69230769em;border-radius:.15384615em;font-size:1.3em;font-family:Roboto,Arial,Helvetica,sans-serif;line-height:1.15384615em;font-weight:500;text-align:center;text-shadow:none;clip:auto;pointer-events:none;color:#eee;background-color:#1c1c1c;background-color:rgba(28,28,28,.9)}.vjs5-hola-skin .vjs-tooltip{top:-3em;left:0;width:auto;height:auto;margin:0}.vjs5-hola-skin .vjs-menu{text-shadow:0 0 2px rgba(0,0,0,.5)}.vjs5-hola-skin .vjs-menu-item{text-align:left;padding-left:.5em;text-transform:none}.vjs5-hola-skin .vjs-menu-item[role=menuitemcheckbox]{padding:.3em .4em .2em 2em}.vjs5-hola-skin .vjs-menu-label{pointer-events:none}.vjs5-hola-skin .vjs-menu-indent{padding-left:1.5em}.vjs5-hola-skin .vjs-menu-item-link>.vjs-menu-link{display:block;color:inherit;text-decoration:inherit;text-transform:inherit;white-space:nowrap;border:none}.vjs5-hola-skin .vjs-menu-button[aria-expanded=true]>.vjs-tooltip-active{display:none}.vjs5-hola-skin .vjs-play-control{cursor:pointer;margin-left:1em;width:4.4em;order:0}.vjs5-hola-skin .vjs-play-control.vjs-paused:before,.vjs5-hola-skin .vjs-play-control.vjs-playing:before,.vjs5-hola-skin .vjs-play-control:before{content:''}.vjs5-hola-skin .vjs-play-control.vjs-playing .vjs-tooltip{margin-left:.5em}.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad>.vjs-button-icon,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay)>.vjs-button-icon{box-sizing:content-box;position:absolute;width:1.2em;height:1.6em;padding:0;top:0;left:0;right:0;bottom:0;margin:auto}.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad>.vjs-button-icon:after,.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad>.vjs-button-icon:before,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay)>.vjs-button-icon:after,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay)>.vjs-button-icon:before{content:'';position:absolute;top:50%;width:0;transform:translateY(-50%);border-top:.4em solid transparent;border-bottom:.4em solid transparent;border-left:.6em solid #fff;transition:border .2s linear,height .2s linear}.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad>.vjs-button-icon:before,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay)>.vjs-button-icon:before{left:0;height:.8em}.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad>.vjs-button-icon:after,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay)>.vjs-button-icon:after{right:0;height:0}.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad.vjs-playing>.vjs-button-icon:after,.vjs5-hola-skin .vjs-play-control.vjs-play-control-ad.vjs-playing>.vjs-button-icon:before,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay).vjs-playing>.vjs-button-icon:after,.vjs5-hola-skin .vjs-play-control:not(.vjs-play-control-replay).vjs-playing>.vjs-button-icon:before{border-top-width:0;border-bottom-width:0;border-left-width:.4em;height:100%}.vjs5-hola-skin .vjs-play-control.vjs-play-control-replay:not(.vjs-play-control-ad)>.vjs-button-icon{background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjM2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIzNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xMiA1VjFMNyA2bDUgNVY3YzMuMzEgMCA2IDIuNjkgNiA2cy0yLjY5IDYtNiA2LTYtMi42OS02LTZINGMwIDQuNDIgMy41OCA4IDggOHM4LTMuNTggOC04LTMuNTgtOC04LTh6Ii8+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:2.4em;background-position:center center}.vjs5-hola-skin .vjs-play-control>.vjs-button-icon{opacity:.9}.vjs5-hola-skin .vjs-play-control:hover>.vjs-button-icon{opacity:1}.vjs5-hola-skin .ima-play-pause-div>svg{fill:#fff;stroke:#fff;stroke-width:0;opacity:.9}.vjs5-hola-skin .ima-play-pause-div:hover>svg{opacity:1}.vjs5-hola-skin.vjs-using-native-controls .vjs-big-play-button,.vjs5-hola-skin.vjs-using-native-controls .vjs-big-play-button.vjs-hidden{display:none!important}.vjs5-hola-skin .vjs-progress-control{position:absolute;left:0;right:0;z-index:10;width:auto;bottom:100%;height:1.5em;margin:0;padding:0;overflow:visible;-webkit-align-items:flex-end;-ms-flex-align:flex-end;align-items:flex-end}.vjs5-hola-skin .vjs-progress-control .vjs-mouse-display,.vjs5-hola-skin .vjs-progress-control .vjs-play-progress{font-family:Roboto,Arial,Helvetica,sans-serif;overflow:visible}.vjs5-hola-skin .vjs-progress-control .vjs-mouse-display:before,.vjs5-hola-skin .vjs-progress-control .vjs-play-progress:before{content:none;display:block;width:1em;height:1em;box-sizing:border-box;border-radius:50%;border-style:solid;border-width:.3em;border-color:#fff;background:#00b7f1;font-size:1.6em}.vjs5-hola-skin .vjs-progress-control .vjs-mouse-display:after,.vjs5-hola-skin .vjs-progress-control .vjs-play-progress:after{display:none;padding:.2em .5em .5em}.vjs5-hola-skin .vjs-progress-control .vjs-mouse-display.vjs-keep-tooltips-inside:after,.vjs5-hola-skin .vjs-progress-control .vjs-play-progress.vjs-keep-tooltips-inside:after{display:none!important;content:none!important}.vjs5-hola-skin .vjs-progress-control .vjs-mouse-display-tooltip{display:none}.vjs5-hola-skin .vjs-progress-control .vjs-play-progress{background:#00b7f1}.vjs5-hola-skin .vjs-progress-control .vjs-progress-holder{height:3px;margin:0 1em;overflow:visible;transition:height .1s ease,margin .1s ease}.vjs5-hola-skin .vjs-progress-control .vjs-progress-holder .vjs-load-progress,.vjs5-hola-skin .vjs-progress-control .vjs-progress-holder .vjs-load-progress div,.vjs5-hola-skin .vjs-progress-control .vjs-progress-holder .vjs-play-progress,.vjs5-hola-skin .vjs-progress-control .vjs-progress-holder .vjs-tooltip-progress-bar{height:100%}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-mouse-display:before,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-play-progress:before,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-mouse-display:before,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-play-progress:before{content:''}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-mouse-display,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-mouse-display{background:0 0}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-mouse-display:before,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-mouse-display:before{position:absolute;top:-.33333333em;right:-.5em;background:#bbb;opacity:.7}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-play-progress:after,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-tooltip-progress-bar,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-play-progress:after,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-tooltip-progress-bar{display:none!important}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-mouse-display,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-mouse-display{display:transparent}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-mouse-display-tooltip,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-mouse-display-tooltip{display:block}.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control.vjs-touch .vjs-progress-holder,.vjs5-hola-skin:not(.vjs-ad-playing) .vjs-progress-control:hover .vjs-progress-holder{font-size:1em;height:5px}.vjs5-hola-skin:not(.vjs-ad-playing).vjs-mobile .vjs-progress-control .vjs-play-progress:before{content:'';top:auto;bottom:-.33333333em}.vjs5-hola-skin .vjs-live-control{line-height:3.6em;order:4}.vjs5-hola-skin .vjs-slider .vjs-slider-gap-left,.vjs5-hola-skin .vjs-slider .vjs-slider-gap-right{position:absolute;top:0;width:1em;height:100%}.vjs5-hola-skin .vjs-slider .vjs-slider-gap-left{left:-1em}.vjs5-hola-skin .vjs-slider .vjs-slider-gap-right{right:-1em}.vjs5-hola-skin .vjs-ads-label{order:0;line-height:3em}.vjs5-hola-skin .vjs-volume-bar{margin:1.35em .6em}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal{height:.5em;margin-top:1.1em;margin-bottom:1.1em;padding:.7em 0;background:0 0}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal:after,.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal:before{height:.4em;top:50%;margin-top:-.15em}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal:before{content:'';background:#73859f;background:rgba(115,133,159,.5)}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level,.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal:before{position:absolute;left:0;top:50%;margin-top:-.15em;height:.3em;width:100%}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{overflow:visible;background-color:#fff}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-slider-gap-left{width:15px;left:-15px}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-slider-gap-right{width:20px;right:-20px}.vjs5-hola-skin .vjs-volume-bar .vjs-volume-display:before,.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level:before{display:block;width:1em;height:1em;box-sizing:border-box;border-radius:50%;border-style:solid;border-width:.3em;border-color:#fff;background:#fff;top:-.4em;font-size:1.2em;z-index:2}.vjs5-hola-skin .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level:before{content:''}.vjs5-hola-skin .vjs-volume-bar .vjs-volume-display{top:0;background:0 0;overflow:visible}.vjs5-hola-skin .vjs-volume-bar .vjs-volume-display:before{content:'';position:absolute;left:-.5em;top:50%;margin-top:-.5em;height:1em;z-index:1;background:#bbb;opacity:.7}.vjs5-hola-skin .vjs-volume-menu-button{margin-right:1em;cursor:default;overflow:visible;width:3.6em}.vjs5-hola-skin .vjs-volume-menu-button .vjs-menu-content{width:0;transition:width 200ms ease}.vjs5-hola-skin .vjs-volume-menu-button>.vjs-button-icon{width:3.6em;cursor:pointer;opacity:.9}.vjs5-hola-skin .vjs-volume-menu-button>.vjs-button-icon>svg{position:absolute;left:.2em;top:0;display:block;width:3.6em;padding:0;height:100%;fill:#fff;transition:opacity 200ms ease}.vjs5-hola-skin .vjs-volume-menu-button>.vjs-button-icon:hover{opacity:1}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal{order:1}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal:before{content:none;display:none}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal>.vjs-button-icon{height:100%;background-size:55%;background-repeat:no-repeat;background-position:center;transition:opacity 200ms ease}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal>.vjs-button-icon path{transition:opacity 250ms ease}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal.vjs-vol-1>.vjs-button-icon .volume-level-2{opacity:0}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal.vjs-vol-2>.vjs-button-icon .volume-level-2{opacity:1}.vjs5-hola-skin .vjs-menu-button-inline{transition:all 200ms}.vjs5-hola-skin .vjs-menu-button-inline.vjs-show-volume-button .vjs-menu,.vjs5-hola-skin .vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs5-hola-skin .vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs5-hola-skin .vjs-volume-menu-button:focus:not(.vjs-show-volume-button){width:3.6em}.vjs5-hola-skin .vjs-volume-menu-button:focus:not(.vjs-show-volume-button) .vjs-menu{display:none}.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal .vjs-lock-showing .vjs-menu-content,.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal.vjs-show-volume-button .vjs-menu-content,.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal.vjs-slider-active .vjs-menu-content,.vjs5-hola-skin .vjs-volume-menu-button.vjs-volume-menu-button-horizontal:hover .vjs-menu-content{height:3.6em;width:6.2em}.vjs5-hola-skin .vjs-menu-button-inline.vjs-show-volume-button:not(.vjs-no-volume),.vjs5-hola-skin .vjs-menu-button-inline.vjs-slider-active:not(.vjs-no-volume),.vjs5-hola-skin .vjs-menu-button-inline:hover:not(.vjs-no-volume),.vjs5-hola-skin.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active:not(.vjs-no-volume),.vjs5-hola-skin.vjs-no-flex .vjs-menu-button-inline:hover:not(.vjs-no-volume){width:10em}.vjs5-hola-skin .vjs-fullscreen-control{width:auto;margin-right:1em;order:20}.vjs5-hola-skin .vjs-fullscreen-control:before{content:'';display:none}.vjs5-hola-skin .vjs-fullscreen-control .vjs-button-icon{position:relative;height:100%;padding:0;opacity:.9;fill:#fff}.vjs5-hola-skin .vjs-fullscreen-control:hover .vjs-button-icon{opacity:1}.vjs5-hola-skin .vjs-fullscreen-control:hover .vjs-button-icon>svg>g:nth-child(1){animation:vjs-fullscreen-1 .3s ease}.vjs5-hola-skin .vjs-fullscreen-control:hover .vjs-button-icon>svg>g:nth-child(2){animation:vjs-fullscreen-2 .3s ease}.vjs5-hola-skin .vjs-fullscreen-control:hover .vjs-button-icon>svg>g:nth-child(3){animation:vjs-fullscreen-3 .3s ease}.vjs5-hola-skin .vjs-fullscreen-control:hover .vjs-button-icon>svg>g:nth-child(4){animation:vjs-fullscreen-4 .3s ease}.vjs5-hola-skin .vjs-fullscreen-control .vjs-tooltip{margin-left:-.8em}@keyframes vjs-fullscreen-1{50%{transform:translate(-1px,-1px)}}@keyframes vjs-fullscreen-2{50%{transform:translate(1px,-1px)}}@keyframes vjs-fullscreen-3{50%{transform:translate(1px,1px)}}@keyframes vjs-fullscreen-4{50%{transform:translate(-1px,1px)}}.vjs5-hola-skin.vjs-fullscreen .vjs-fullscreen-control .vjs-fullscreen-icon,.vjs5-hola-skin:not(.vjs-fullscreen) .vjs-fullscreen-control .vjs-exit-fullscreen-icon{display:none}.vjs5-hola-skin.vjs-fullscreen .vjs-fullscreen-control:hover .vjs-button-icon{opacity:1}.vjs5-hola-skin .vjs-time-control.vjs-current-time,.vjs5-hola-skin .vjs-time-control.vjs-duration,.vjs5-hola-skin .vjs-time-control.vjs-time-divider{display:inline-block;width:auto;min-width:0;padding:0;font-size:1.3em;line-height:2.76923077em;color:#eee}.vjs5-hola-skin .vjs-time-control.vjs-current-time{order:2}.vjs5-hola-skin .vjs-time-control.vjs-time-divider{order:3}.vjs5-hola-skin .vjs-time-control.vjs-time-divider span:after,.vjs5-hola-skin .vjs-time-control.vjs-time-divider span:before{content:'\\00a0'}.vjs5-hola-skin .vjs-time-control.vjs-duration{padding-right:1em;order:4}.vjs5-hola-skin .vjs-time-control.vjs-remaining-time{display:none}.vjs5-hola-skin.vjs-show-controls-before-start .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1}.vjs5-hola-skin.vjs-show-time-for-live .vjs-control-bar .vjs-time-control.vjs-current-time,.vjs5-hola-skin.vjs-show-time-for-live .vjs-control-bar .vjs-time-control.vjs-duration,.vjs5-hola-skin.vjs-show-time-for-live .vjs-control-bar .vjs-time-control.vjs-time-divider{display:inline-block!important}.vjs5-hola-skin.vjs-small .vjs-time-control.vjs-duration{padding-right:0}.vjs5-hola-skin.vjs-small .vjs-volume-menu-button{margin-right:0}.vjs5-hola-skin .vjs-slider-padding{position:absolute;width:100%;height:2em;top:-1.3em}.vjs5-hola-skin .vjs-play-animation{display:none;border-radius:50%;border:0 solid transparent;font-size:2em;position:absolute;height:3em;width:3em;line-height:3em;left:50%;top:50%;margin-left:-1.5em;margin-top:-1.5em;background-color:#1c1c1c;background-color:rgba(28,28,28,.6);animation:vjs-play-animation .5s linear 1 normal forwards}.vjs5-hola-skin .vjs-play-animation:before{position:absolute;top:0;left:0;width:100%;height:100%;font-size:2em;content:'';background-repeat:no-repeat;background-size:1.2em;background-position:center center}.vjs5-hola-skin.vjs-paused .vjs-play-animation:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xMyAtMTAgNDAgNDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgZmlsbD0iI2ZmZiI+CiAgICA8Zz48cGF0aCBkPSJNIDAsMCA1LDAgNSwyMCAwLDIwIE0gOSwwIDE0LDAgMTQsMjAgOSwyMCBaIi8+PC9nPgo8L3N2Zz4=)}.vjs5-hola-skin.vjs-playing .vjs-play-animation:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9Ii0xNSAtMTAgNDAgNDAiIGhlaWdodD0iMjQiIHdpZHRoPSIyNCIgZmlsbD0iI2ZmZiI+CiAgICA8Zz48cGF0aCBkPSJNIDAsMCAwLDIwIDE0LDEwIFoiLz48L2c+Cjwvc3ZnPg==)}@keyframes vjs-play-animation{0%{opacity:1}to{opacity:0;transform:scale(2)}}.vjs5-hola-skin .vjs-loading-spinner{opacity:1;border:none;width:6.4em;height:6.4em;margin:-3.2em 0 0 -3.2em;animation:vjs-loading-spinner 1.5682353s linear infinite}.vjs5-hola-skin .vjs-loading-spinner:after,.vjs5-hola-skin .vjs-loading-spinner:before{content:none}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-rotator{position:absolute;width:100%;height:100%;animation:vjs-spinner-rotator 5332ms cubic-bezier(0.4,0,.2,1) infinite both}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-left,.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-right{position:absolute;top:0;bottom:0;overflow:hidden}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-left:before,.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-right:before{content:'';box-sizing:border-box;position:absolute;width:200%;height:100%;border-style:solid;border-color:#ddd #ddd transparent;border-radius:50%;border-width:.6em}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-left{right:49%;left:0}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-left:before{border-right-color:transparent;animation:vjs-spinner-left 1.333s cubic-bezier(0.4,0,.2,1) infinite both}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-right{left:49%;right:0}.vjs5-hola-skin .vjs-loading-spinner .vjs-spinner-right:before{left:-100%;border-left-color:transparent;animation:vjs-spinner-right 1.333s cubic-bezier(0.4,0,.2,1) infinite both}@keyframes vjs-loading-spinner{to{transform:rotate(360deg)}}@keyframes vjs-spinner-rotator{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}to{transform:rotate(1080deg)}}@keyframes vjs-spinner-left{0%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}to{transform:rotate(130deg)}}@keyframes vjs-spinner-right{0%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}to{transform:rotate(-130deg)}}.vjs5-hola-skin .ima-ad-container .vjs-volume-menu-button.vjs-volume-menu-button-horizontal{height:3em}.vjs5-hola-skin .ima-ad-container .vjs-volume-menu-button.vjs-volume-menu-button-horizontal .vjs-volume-bar.vjs-slider-horizontal{margin-top:.6em;margin-bottom:.6em}.vjs5-hola-skin .vjs-modal-dialog .vjs-close-button{top:1.2em;right:1.2em;width:3.6em;height:3.6em;opacity:.8;background-image:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjZmZmIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICAgIDxwYXRoIGQ9Ik0xOSA2LjQxTDE3LjU5IDUgMTIgMTAuNTkgNi40MSA1IDUgNi40MSAxMC41OSAxMiA1IDE3LjU5IDYuNDEgMTkgMTIgMTMuNDEgMTcuNTkgMTkgMTkgMTcuNTkgMTMuNDEgMTJ6Ii8+Cjwvc3ZnPg==);background-repeat:no-repeat;background-size:2.4em;background-position:center center}.vjs5-hola-skin .vjs-modal-dialog .vjs-close-button:hover{opacity:1}.vjs5-hola-skin .vjs-modal-dialog .vjs-close-button:before{content:none}.vjs5-hola-skin .vjs-caption-settings select{color:#000}.vjs5-hola-skin.vjs-fullscreen{overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.vjs5-hola-skin .vjs-menu-button-popup .vjs-menu{display:block;width:13em;left:-6em;z-index:2;visibility:hidden}.vjs5-hola-skin .vjs-menu-button-popup .vjs-menu:not(.vjs-menu-popup-on-click){transition:visibility 500ms step-end}.vjs5-hola-skin .vjs-menu-button-popup .vjs-menu ul{bottom:4em}.vjs5-hola-skin .vjs-menu-button-popup .vjs-menu.vjs-menu-popup-on-click.vjs-lock-showing,.vjs5-hola-skin .vjs-menu-button-popup:hover .vjs-menu:not(.vjs-menu-popup-on-click){visibility:visible;transition:visibility 1ms}.vjs5-hola-skin .vjs-menu-button-inline .vjs-menu{left:3.6em}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-control-bar,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-loading-spinner,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-top-bar{font-size:150%}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-loading-spinner{font-size:200%}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small).vjs-paused .bumpable-ima-ad-container,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small).vjs-playing .bumpable-ima-ad-container,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small).vjs-playing:hover .bumpable-ima-ad-container,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small).vjs-user-active.vjs-playing .bumpable-ima-ad-container{margin-top:-75px}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small).vjs-user-inactive.vjs-playing .bumpable-ima-ad-container{margin-top:0}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-progress-control .vjs-progress-holder{height:5px}.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small):not(.vjs-ad-playing) .vjs-progress-control:hover:hover .vjs-progress-holder{height:8px}.vjs5-hola-skin .vjs-controls-watermark,.vjs5-hola-skin .vjs-controls-watermark:focus,.vjs5-hola-skin .vjs-controls-watermark:hover{width:auto;padding:0 1em;background-color:transparent;background-position:center center;background-repeat:no-repeat;cursor:default;order:6;display:flex;align-items:center}.vjs5-hola-skin .vjs-controls-watermark img,.vjs5-hola-skin .vjs-controls-watermark:focus img,.vjs5-hola-skin .vjs-controls-watermark:hover img{display:inline-block;width:auto;max-width:10em;max-height:3.2em;margin:0;padding:0}.vjs5-hola-skin .vjs-text-track-display{bottom:3.6em;z-index:1}.vjs5-hola-skin .vjs-gradient{position:absolute;pointer-events:none;height:10em;left:0;right:0}.vjs5-hola-skin .vjs-gradient.vjs-top-gradient{top:0;background:linear-gradient(to bottom,rgba(0,0,0,.666) 0,rgba(0,0,0,.492) 19%,rgba(0,0,0,.36) 34%,rgba(0,0,0,.254) 47%,rgba(0,0,0,.185) 56.5%,rgba(0,0,0,.129) 65%,rgba(0,0,0,.084) 73%,rgba(0,0,0,.05) 80.2%,rgba(0,0,0,.028) 86.1%,rgba(0,0,0,.014) 91%,rgba(0,0,0,.005) 95.2%,rgba(0,0,0,.001) 98.2%,rgba(0,0,0,0) 100%)}.vjs5-hola-skin .vjs-gradient.vjs-bottom-gradient{bottom:0;background:linear-gradient(to top,rgba(0,0,0,.666) 0,rgba(0,0,0,.492) 19%,rgba(0,0,0,.36) 34%,rgba(0,0,0,.254) 47%,rgba(0,0,0,.185) 56.5%,rgba(0,0,0,.129) 65%,rgba(0,0,0,.084) 73%,rgba(0,0,0,.05) 80.2%,rgba(0,0,0,.028) 86.1%,rgba(0,0,0,.014) 91%,rgba(0,0,0,.005) 95.2%,rgba(0,0,0,.001) 98.2%,rgba(0,0,0,0) 100%)}.vjs5-hola-skin .vjs-top-bar{position:absolute;pointer-events:none;top:0;left:0;width:100%;opacity:1;transition:visibility .1s,opacity .1s}.vjs5-hola-skin .vjs-top-bar .vjs-video-title{position:absolute;left:12px;padding-left:.22222222em;padding-top:.66666667em;color:#eee;font-size:1.8em;text-shadow:0 0 2px rgba(0,0,0,.5)}.vjs5-hola-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar,.vjs5-hola-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-top-bar{opacity:0;transition:visibility .25s,opacity .25s}.vjs5-hola-skin.video-js{direction:ltr}.vjs5-hola-skin.video-js ul li{list-style-type:none}.vjs-ad-playing .vjs-loading-spinner{display:none!important}.vjs-ad-loading .vjs-loading-spinner{display:block!important}.vjs-ios-skin{color:rgba(255,255,255,.75)}.vjs-ios-skin .vjs-control-bar{box-sizing:border-box;width:auto;background:0 0}.vjs-ios-skin .vjs-control{display:flex;height:100%;align-items:center}.vjs-ios-skin .vjs-control:before{line-height:31px;font-size:18px}.vjs-ios-skin .vjs-tooltip{display:none}.vjs-ios-skin .vjs-audio-button,.vjs-ios-skin .vjs-captions-button,.vjs-ios-skin .vjs-chapters-button,.vjs-ios-skin .vjs-descriptions-button,.vjs-ios-skin .vjs-duration,.vjs-ios-skin .vjs-subtitles-button,.vjs-ios-skin .vjs-time-divider{display:none!important}.vjs-ios-skin .vjs-control-bar,.vjs-ios-skin .vjs-control.vjs-ios-control-box{position:absolute;height:31px;margin:6px;border-radius:8px}.vjs-ios-skin .vjs-big-play-button:after,.vjs-ios-skin .vjs-big-play-button:before,.vjs-ios-skin .vjs-big-play-button>*,.vjs-ios-skin .vjs-control-bar:after,.vjs-ios-skin .vjs-control-bar:before,.vjs-ios-skin .vjs-control-bar>*,.vjs-ios-skin .vjs-control.vjs-ios-control-box:after,.vjs-ios-skin .vjs-control.vjs-ios-control-box:before,.vjs-ios-skin .vjs-control.vjs-ios-control-box>*{z-index:2}.vjs-ios-skin .vjs-control-bar{padding:0 8px}.vjs-ios-skin .vjs-custom-control-spacer{display:flex;margin-right:auto}.vjs-ios-skin .vjs-ios-control-box{display:none}.vjs-ios-skin.vjs-has-started .vjs-ios-control-box{display:block;visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-ios-skin.vjs-has-started.vjs-user-inactive.vjs-ad-playing:not(.vjs-ad-paused) .vjs-ios-control-box,.vjs-ios-skin.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-ios-control-box{visibility:hidden;opacity:0;transition:visibility 1s,opacity 1s}.vjs-ios-skin.vjs-has-started .vjs-volume-menu-button{display:block!important}.vjs-ios-skin.vjs-controls-disabled .vjs-ios-control-box .vjs-ios-control-box,.vjs-ios-skin.vjs-controls-disabled .vjs-ios-control-box .vjs-loading-spinner,.vjs-ios-skin.vjs-controls-disabled .vjs-ios-control-box .vjs-share-button,.vjs-ios-skin.vjs-error .vjs-ios-control-box,.vjs-ios-skin.vjs-error .vjs-loading-spinner,.vjs-ios-skin.vjs-error .vjs-share-button,.vjs-ios-skin.vjs-using-native-controls .vjs-ios-control-box .vjs-ios-control-box,.vjs-ios-skin.vjs-using-native-controls .vjs-ios-control-box .vjs-loading-spinner,.vjs-ios-skin.vjs-using-native-controls .vjs-ios-control-box .vjs-share-button{display:none!important}.vjs-ios-skin.video-js.vjs-ad-playing .vjs-ios-control-box,.vjs-ios-skin.vjs-ima-non-linear .vjs-ios-control-box{z-index:1112}.vjs-ios-skin .vjs-ios-background-tint{pointer-events:none;z-index:0!important}.vjs-ios-skin .vjs-ios-background-tint,.vjs-ios-skin .vjs-ios-background-tint>div{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:8px}.vjs-ios-skin .vjs-ios-background-tint>.vjs-ios-blur{background-color:rgba(0,0,0,.85)}.vjs-ios-skin .vjs-ios-background-tint>.vjs-ios-tint{background-color:rgba(255,255,255,.14)}.vjs-ios-skin .vjs-info-overlay,.vjs-ios-skin .vjs-menu>.vjs-menu-content,.vjs-ios-skin .vjs-rightclick-popup,.vjs-ios-skin .vjs-settings-menu,.vjs-ios-skin.video-js .vjs-button.vjs-share-button{background:0 0;color:rgba(255,255,255,.75);box-shadow:none}.vjs-ios-skin .vjs-info-overlay,.vjs-ios-skin .vjs-info-overlay:after,.vjs-ios-skin .vjs-info-overlay:before,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:after,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:before,.vjs-ios-skin .vjs-rightclick-popup,.vjs-ios-skin .vjs-rightclick-popup:after,.vjs-ios-skin .vjs-rightclick-popup:before,.vjs-ios-skin .vjs-settings-menu,.vjs-ios-skin .vjs-settings-menu:after,.vjs-ios-skin .vjs-settings-menu:before,.vjs-ios-skin.video-js .vjs-button.vjs-share-button,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:after,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:before{border-radius:8px}.vjs-ios-skin .vjs-info-overlay:after,.vjs-ios-skin .vjs-info-overlay:before,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:after,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:before,.vjs-ios-skin .vjs-rightclick-popup:after,.vjs-ios-skin .vjs-rightclick-popup:before,.vjs-ios-skin .vjs-settings-menu:after,.vjs-ios-skin .vjs-settings-menu:before,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:after,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:before{content:' ';display:block;width:100%;height:100%;position:absolute;top:0;left:0;z-index:0!important}.vjs-ios-skin .vjs-info-overlay:before,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:before,.vjs-ios-skin .vjs-rightclick-popup:before,.vjs-ios-skin .vjs-settings-menu:before,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:before{background-color:rgba(0,0,0,.85)}.vjs-ios-skin .vjs-info-overlay:after,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content:after,.vjs-ios-skin .vjs-rightclick-popup:after,.vjs-ios-skin .vjs-settings-menu:after,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:after{background-color:rgba(255,255,255,.14)}.vjs-ios-skin .vjs-info-overlay>*,.vjs-ios-skin .vjs-menu:not(.vjs-settings-menu)>.vjs-menu-content>*,.vjs-ios-skin .vjs-rightclick-popup>*,.vjs-ios-skin .vjs-settings-menu>*,.vjs-ios-skin.video-js .vjs-button.vjs-share-button>*{position:relative;z-index:2}.vjs-ios-skin.video-js .vjs-button.vjs-share-button,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:after,.vjs-ios-skin.video-js .vjs-button.vjs-share-button:before{border-radius:50%}.vjs-ios-skin .vjs-big-play-button:before,.vjs-ios-skin .vjs-control:before{content:'';display:none}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon,.vjs-ios-skin .vjs-control>.vjs-button-icon{position:absolute;left:0;top:0;width:100%;height:100%;transition:transform 150ms;mask-size:100% 100%;mask-repeat:no-repeat;-webkit-mask-size:100% 100%;-webkit-mask-repeat:no-repeat}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon>svg,.vjs-ios-skin .vjs-control>.vjs-button-icon>svg{fill:rgba(255,255,255,.75);width:100%;height:100%}.vjs-ios-skin .vjs-big-play-button:hover>.vjs-button-icon>svg,.vjs-ios-skin .vjs-control:hover>.vjs-button-icon>svg{fill:rgba(255,255,255,.9)}.vjs-ios-skin .vjs-big-play-button:active>.vjs-button-icon,.vjs-ios-skin .vjs-control:active>.vjs-button-icon{transform:scale(0.89)}.vjs-ios-skin .vjs-big-play-button{position:absolute;left:50%;top:50%;width:60px;height:60px;transform:translate(-50%,-50%);transition:none}.vjs-ios-skin .vjs-big-play-button,.vjs-ios-skin .vjs-big-play-button:active,.vjs-ios-skin .vjs-big-play-button:focus,.vjs-ios-skin:hover .vjs-big-play-button{border:none;background:0 0}.vjs-ios-skin .vjs-big-play-button>.vjs-ios-background-tint,.vjs-ios-skin .vjs-big-play-button>.vjs-ios-background-tint>div{border-radius:50%}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon,.vjs-ios-skin .vjs-fullscreen-control>.vjs-button-icon,.vjs-ios-skin .vjs-play-control>.vjs-button-icon,.vjs-ios-skin .vjs-skip-button>.vjs-button-icon,.vjs-ios-skin .vjs-volume-menu-button>.vjs-button-icon{background-color:rgba(255,255,255,.55)}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon,.vjs-ios-skin .vjs-fullscreen-control>.vjs-button-icon,.vjs-ios-skin .vjs-volume-menu-button>.vjs-button-icon{transform:scale(0.4)}.vjs-ios-skin .vjs-big-play-button:active>.vjs-button-icon,.vjs-ios-skin .vjs-fullscreen-control:active>.vjs-button-icon,.vjs-ios-skin .vjs-volume-menu-button:active>.vjs-button-icon{transform:scale(0.4) scale(0.88888889)}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon,.vjs-ios-skin .vjs-play-control>.vjs-button-icon{background-color:rgba(255,255,255,.75);mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTEgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9QbGF5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1BsYXkiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNMCwwLjYwNTA2ODY5MiBDMCwwLjA1ODE3MzcxMjEgMC4zODI1MTY0ODgsLTAuMTU2MTA0Nzg5IDAuODY0MTIyNjUsMC4xMzIzMDE4ODcgTDEwLjYzMjU5ODUsNS45ODIwODkyOCBDMTEuMTA5ODQwMyw2LjI2Nzg4MjM3IDExLjExNDIwNDcsNi43Mjg2MTkxMyAxMC42MzI1OTg1LDcuMDE3MDEwOTcgTDAuODY0MTIyNjUsMTIuODY2NDk3NSBDMC4zODY4ODA4ODksMTMuMTUyMjc1OSAwLDEyLjk0MTQxNjYgMCwxMi4zOTM3MDQxIEwwLDAuNjA1MDY4NjkyIFoiIGlkPSJSZWN0YW5nbGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTEgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9QbGF5PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1BsYXkiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNMCwwLjYwNTA2ODY5MiBDMCwwLjA1ODE3MzcxMjEgMC4zODI1MTY0ODgsLTAuMTU2MTA0Nzg5IDAuODY0MTIyNjUsMC4xMzIzMDE4ODcgTDEwLjYzMjU5ODUsNS45ODIwODkyOCBDMTEuMTA5ODQwMyw2LjI2Nzg4MjM3IDExLjExNDIwNDcsNi43Mjg2MTkxMyAxMC42MzI1OTg1LDcuMDE3MDEwOTcgTDAuODY0MTIyNjUsMTIuODY2NDk3NSBDMC4zODY4ODA4ODksMTMuMTUyMjc1OSAwLDEyLjk0MTQxNjYgMCwxMi4zOTM3MDQxIEwwLDAuNjA1MDY4NjkyIFoiIGlkPSJSZWN0YW5nbGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.vjs-ios-skin .vjs-big-play-button>.vjs-button-icon{left:3px}.vjs-ios-skin .vjs-play-control.vjs-playing>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTEgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9QYXVzZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJNZWRpYS1Db250cm9sLVN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJfQXNzZXRzL0lubGluZS9QYXVzZSIgZmlsbD0iIzAwMDAwMCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDAuOTk4NTAyMzI5IEM3LDAuNDQ3MDQ0NzIgNy40NDMzNTMxOCwwIDguMDA5MzY4OSwwIEw5Ljk5MDYzMTEsMCBDMTAuNTQ4MDkwMiwwIDExLDAuNDQ3NDg5NDI2IDExLDAuOTk4NTAyMzI5IEwxMSwxMi4wMDE0OTc3IEMxMSwxMi41NTI5NTUzIDEwLjU1NjY0NjgsMTMgOS45OTA2MzExLDEzIEw4LjAwOTM2ODksMTMgQzcuNDUxOTA5ODUsMTMgNywxMi41NTI1MTA2IDcsMTIuMDAxNDk3NyBMNywwLjk5ODUwMjMyOSBaIE0wLDAuOTk4NTAyMzI5IEMwLDAuNDQ3MDQ0NzIgMC40NDMzNTMxNzYsMCAxLjAwOTM2ODksMCBMMi45OTA2MzExLDAgQzMuNTQ4MDkwMTUsMCA0LDAuNDQ3NDg5NDI2IDQsMC45OTg1MDIzMjkgTDQsMTIuMDAxNDk3NyBDNCwxMi41NTI5NTUzIDMuNTU2NjQ2ODIsMTMgMi45OTA2MzExLDEzIEwxLjAwOTM2ODksMTMgQzAuNDUxOTA5ODQ4LDEzIDAsMTIuNTUyNTEwNiAwLDEyLjAwMTQ5NzcgTDAsMC45OTg1MDIzMjkgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTFweCIgaGVpZ2h0PSIxM3B4IiB2aWV3Qm94PSIwIDAgMTEgMTMiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9QYXVzZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJNZWRpYS1Db250cm9sLVN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJfQXNzZXRzL0lubGluZS9QYXVzZSIgZmlsbD0iIzAwMDAwMCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik03LDAuOTk4NTAyMzI5IEM3LDAuNDQ3MDQ0NzIgNy40NDMzNTMxOCwwIDguMDA5MzY4OSwwIEw5Ljk5MDYzMTEsMCBDMTAuNTQ4MDkwMiwwIDExLDAuNDQ3NDg5NDI2IDExLDAuOTk4NTAyMzI5IEwxMSwxMi4wMDE0OTc3IEMxMSwxMi41NTI5NTUzIDEwLjU1NjY0NjgsMTMgOS45OTA2MzExLDEzIEw4LjAwOTM2ODksMTMgQzcuNDUxOTA5ODUsMTMgNywxMi41NTI1MTA2IDcsMTIuMDAxNDk3NyBMNywwLjk5ODUwMjMyOSBaIE0wLDAuOTk4NTAyMzI5IEMwLDAuNDQ3MDQ0NzIgMC40NDMzNTMxNzYsMCAxLjAwOTM2ODksMCBMMi45OTA2MzExLDAgQzMuNTQ4MDkwMTUsMCA0LDAuNDQ3NDg5NDI2IDQsMC45OTg1MDIzMjkgTDQsMTIuMDAxNDk3NyBDNCwxMi41NTI5NTUzIDMuNTU2NjQ2ODIsMTMgMi45OTA2MzExLDEzIEwxLjAwOTM2ODksMTMgQzAuNDUxOTA5ODQ4LDEzIDAsMTIuNTUyNTEwNiAwLDEyLjAwMTQ5NzcgTDAsMC45OTg1MDIzMjkgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=)}.vjs-ios-skin .vjs-live-control,.vjs-ios-skin .vjs-play-control,.vjs-ios-skin .vjs-skip-button{box-sizing:content-box;padding:0 8px}.vjs-ios-skin .vjs-play-control,.vjs-ios-skin .vjs-skip-button{cursor:pointer}.vjs-ios-skin .vjs-play-control>.vjs-button-icon,.vjs-ios-skin .vjs-skip-button>.vjs-button-icon{position:relative;height:31px}.vjs-ios-skin .vjs-play-control,.vjs-ios-skin .vjs-play-control>.vjs-button-icon{width:11px}.vjs-ios-skin .vjs-skip-button,.vjs-ios-skin .vjs-skip-button>.vjs-button-icon{width:13px}.vjs-ios-skin .vjs-skip-forward>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTNweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgMTMgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjIgKDM5MDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9Ta2lwRm9yd2FyZDE1PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1NraXBGb3J3YXJkMTUiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC4wMTE0ODQzOCwxMSBMNS4wNDM3MTA5NSwxMSBMNS4wNDM3MTA5NSw2LjA2Nzg3MTA5IEw0LjAxNDkwMjM1LDYuMDY3ODcxMDkgTDIuNzQwMDAwMDEsNi45NDYyODkwNiBMMi43NDAwMDAwMSw3LjkwNjczODI4IEwzLjk0OTk2MDk1LDcuMDcyNzUzOTEgTDQuMDExNDg0MzgsNy4wNzI3NTM5MSBMNC4wMTE0ODQzOCwxMSBaIE04LjAxMzY5MTQzLDExLjEyNjQ2NDggQzkuMTQ1MDM5MDgsMTEuMTI2NDY0OCA5LjkwMDQxMDE4LDEwLjQxMjEwOTQgOS45MDA0MTAxOCw5LjM2NjIxMDk0IEM5LjkwMDQxMDE4LDguMzk4OTI1NzggOS4yMzczMjQyNCw3LjcxMTkxNDA2IDguMzAwODAwOCw3LjcxMTkxNDA2IEM3LjgxMjAzMTI3LDcuNzExOTE0MDYgNy40NjMzOTg0Niw3Ljg5MzA2NjQxIDcuMjU0OTAyMzYsOC4xOTM4NDc2NiBMNy4xOTMzNzg5Myw4LjE5Mzg0NzY2IEw3LjMwMjc1MzkzLDYuOTI1NzgxMjUgTDkuNjAzMDQ2ODksNi45MjU3ODEyNSBMOS42MDMwNDY4OSw2LjA2Nzg3MTA5IEw2LjUwMjk0OTI0LDYuMDY3ODcxMDkgTDYuMjU2ODU1NDksOC45Mjg3MTA5NCBMNy4xNzk3MDcwNSw4LjkyODcxMDk0IEM3LjM1MDYwNTQ5LDguNjUxODU1NDcgNy42NDExMzI4Myw4LjQ4NDM3NSA4LjAyMzk0NTMzLDguNDg0Mzc1IEM4LjU0Njg5NDU1LDguNDg0Mzc1IDguOTE2MDM1MTgsOC44NDY2Nzk2OSA4LjkxNjAzNTE4LDkuMzkwMTM2NzIgQzguOTE2MDM1MTgsOS45MjY3NTc4MSA4LjU1MDMxMjUyLDEwLjI4MjIyNjYgOC4wMjA1MjczNiwxMC4yODIyMjY2IEM3LjU1MjI2NTY0LDEwLjI4MjIyNjYgNy4xODk5NjA5NiwxMC4wMDg3ODkxIDcuMTMxODU1NDksOS41OTg2MzI4MSBMNi4xNzgyNDIyMSw5LjU5ODYzMjgxIEM2LjIwOTAwMzkzLDEwLjQ4MDQ2ODggNi45NDA0NDkyNCwxMS4xMjY0NjQ4IDguMDEzNjkxNDMsMTEuMTI2NDY0OCBaIiBpZD0iMTUiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTUsMyBMNy41NTY2NDY4Miw0LjI3ODMyMzQxIEM3LjgwNzA3MTY5LDQuNDAzNTM1ODQgOCw0LjI4MDQwNTI5IDgsNC4wMDk1MjE0OCBMOCwzLjIwNzAzMjQ5IEMxMC4zMDg1MDQ4LDMuODU5OTYxMzggMTIsNS45ODI0NDU3NSAxMiw4LjUgQzEyLDExLjUzNzU2NjEgOS41Mzc1NjYxMiwxNCA2LjUsMTQgQzMuNDYyNDMzODgsMTQgMSwxMS41Mzc1NjYxIDEsOC41IEMxLDguMzMxNDU1MTUgMS4wMDc1ODEzMSw4LjE2NDY4MTAyIDEuMDIyNDIxNTEsOCBMMC4wMTg5NDQ4MTY3LDggQzAuMDA2MzkxNDYzMDIsOC4xNjUwMjA4MSAxLjMxODM4OTg0ZS0xNiw4LjMzMTc2NCAxLjMxODM4OTg0ZS0xNiw4LjUgQzEuMzE4Mzg5ODRlLTE2LDEyLjA4OTg1MDkgMi45MTAxNDkxMywxNSA2LjUsMTUgQzEwLjA4OTg1MDksMTUgMTMsMTIuMDg5ODUwOSAxMyw4LjUgQzEzLDUuNDI2NDE4MzYgMTAuODY2NywyLjg1MTA5NTY0IDgsMi4xNzM5MzE4NCBMOCwwLjk5MDQ3ODUxNiBDOCwwLjcxNTA1NzM3MyA3LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDcuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDUsMiBMNSwwLjk5MDQ3ODUxNiBDNSwwLjcxNTA1NzM3MyA0LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDQuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDEuNDQzMzUzMTgsMi4yNzgzMjM0MSBDMS4xOTI5MjgzMSwyLjQwMzUzNTg0IDEuMTk4NDk1OTgsMi41OTkyNDc5OSAxLjQ0MzM1MzE4LDIuNzIxNjc2NTkgTDQuNTU2NjQ2ODIsNC4yNzgzMjM0MSBDNC44MDcwNzE2OSw0LjQwMzUzNTg0IDUsNC4yODA0MDUyOSA1LDQuMDA5NTIxNDggTDUsMyBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNTAwMDAwLCA3LjgzNjUzMikgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNi41MDAwMDAsIC03LjgzNjUzMikgIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTNweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgMTMgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjIgKDM5MDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9Ta2lwRm9yd2FyZDE1PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1NraXBGb3J3YXJkMTUiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC4wMTE0ODQzOCwxMSBMNS4wNDM3MTA5NSwxMSBMNS4wNDM3MTA5NSw2LjA2Nzg3MTA5IEw0LjAxNDkwMjM1LDYuMDY3ODcxMDkgTDIuNzQwMDAwMDEsNi45NDYyODkwNiBMMi43NDAwMDAwMSw3LjkwNjczODI4IEwzLjk0OTk2MDk1LDcuMDcyNzUzOTEgTDQuMDExNDg0MzgsNy4wNzI3NTM5MSBMNC4wMTE0ODQzOCwxMSBaIE04LjAxMzY5MTQzLDExLjEyNjQ2NDggQzkuMTQ1MDM5MDgsMTEuMTI2NDY0OCA5LjkwMDQxMDE4LDEwLjQxMjEwOTQgOS45MDA0MTAxOCw5LjM2NjIxMDk0IEM5LjkwMDQxMDE4LDguMzk4OTI1NzggOS4yMzczMjQyNCw3LjcxMTkxNDA2IDguMzAwODAwOCw3LjcxMTkxNDA2IEM3LjgxMjAzMTI3LDcuNzExOTE0MDYgNy40NjMzOTg0Niw3Ljg5MzA2NjQxIDcuMjU0OTAyMzYsOC4xOTM4NDc2NiBMNy4xOTMzNzg5Myw4LjE5Mzg0NzY2IEw3LjMwMjc1MzkzLDYuOTI1NzgxMjUgTDkuNjAzMDQ2ODksNi45MjU3ODEyNSBMOS42MDMwNDY4OSw2LjA2Nzg3MTA5IEw2LjUwMjk0OTI0LDYuMDY3ODcxMDkgTDYuMjU2ODU1NDksOC45Mjg3MTA5NCBMNy4xNzk3MDcwNSw4LjkyODcxMDk0IEM3LjM1MDYwNTQ5LDguNjUxODU1NDcgNy42NDExMzI4Myw4LjQ4NDM3NSA4LjAyMzk0NTMzLDguNDg0Mzc1IEM4LjU0Njg5NDU1LDguNDg0Mzc1IDguOTE2MDM1MTgsOC44NDY2Nzk2OSA4LjkxNjAzNTE4LDkuMzkwMTM2NzIgQzguOTE2MDM1MTgsOS45MjY3NTc4MSA4LjU1MDMxMjUyLDEwLjI4MjIyNjYgOC4wMjA1MjczNiwxMC4yODIyMjY2IEM3LjU1MjI2NTY0LDEwLjI4MjIyNjYgNy4xODk5NjA5NiwxMC4wMDg3ODkxIDcuMTMxODU1NDksOS41OTg2MzI4MSBMNi4xNzgyNDIyMSw5LjU5ODYzMjgxIEM2LjIwOTAwMzkzLDEwLjQ4MDQ2ODggNi45NDA0NDkyNCwxMS4xMjY0NjQ4IDguMDEzNjkxNDMsMTEuMTI2NDY0OCBaIiBpZD0iMTUiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTUsMyBMNy41NTY2NDY4Miw0LjI3ODMyMzQxIEM3LjgwNzA3MTY5LDQuNDAzNTM1ODQgOCw0LjI4MDQwNTI5IDgsNC4wMDk1MjE0OCBMOCwzLjIwNzAzMjQ5IEMxMC4zMDg1MDQ4LDMuODU5OTYxMzggMTIsNS45ODI0NDU3NSAxMiw4LjUgQzEyLDExLjUzNzU2NjEgOS41Mzc1NjYxMiwxNCA2LjUsMTQgQzMuNDYyNDMzODgsMTQgMSwxMS41Mzc1NjYxIDEsOC41IEMxLDguMzMxNDU1MTUgMS4wMDc1ODEzMSw4LjE2NDY4MTAyIDEuMDIyNDIxNTEsOCBMMC4wMTg5NDQ4MTY3LDggQzAuMDA2MzkxNDYzMDIsOC4xNjUwMjA4MSAxLjMxODM4OTg0ZS0xNiw4LjMzMTc2NCAxLjMxODM4OTg0ZS0xNiw4LjUgQzEuMzE4Mzg5ODRlLTE2LDEyLjA4OTg1MDkgMi45MTAxNDkxMywxNSA2LjUsMTUgQzEwLjA4OTg1MDksMTUgMTMsMTIuMDg5ODUwOSAxMyw4LjUgQzEzLDUuNDI2NDE4MzYgMTAuODY2NywyLjg1MTA5NTY0IDgsMi4xNzM5MzE4NCBMOCwwLjk5MDQ3ODUxNiBDOCwwLjcxNTA1NzM3MyA3LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDcuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDUsMiBMNSwwLjk5MDQ3ODUxNiBDNSwwLjcxNTA1NzM3MyA0LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDQuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDEuNDQzMzUzMTgsMi4yNzgzMjM0MSBDMS4xOTI5MjgzMSwyLjQwMzUzNTg0IDEuMTk4NDk1OTgsMi41OTkyNDc5OSAxLjQ0MzM1MzE4LDIuNzIxNjc2NTkgTDQuNTU2NjQ2ODIsNC4yNzgzMjM0MSBDNC44MDcwNzE2OSw0LjQwMzUzNTg0IDUsNC4yODA0MDUyOSA1LDQuMDA5NTIxNDggTDUsMyBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNTAwMDAwLCA3LjgzNjUzMikgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNi41MDAwMDAsIC03LjgzNjUzMikgIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=)}.vjs-ios-skin .vjs-skip-back>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTNweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgMTMgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjIgKDM5MDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9Ta2lwQmFjazE1PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1NraXBCYWNrMTUiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC4wMjE0ODQzOCwxMSBMNS4wNTM3MTA5NCwxMSBMNS4wNTM3MTA5NCw2LjA2Nzg3MTA5IEw0LjAyNDkwMjM0LDYuMDY3ODcxMDkgTDIuNzUsNi45NDYyODkwNiBMMi43NSw3LjkwNjczODI4IEwzLjk1OTk2MDk0LDcuMDcyNzUzOTEgTDQuMDIxNDg0MzgsNy4wNzI3NTM5MSBMNC4wMjE0ODQzOCwxMSBaIE04LjAyMzY5MTQyLDExLjEyNjQ2NDggQzkuMTU1MDM5MDcsMTEuMTI2NDY0OCA5LjkxMDQxMDE3LDEwLjQxMjEwOTQgOS45MTA0MTAxNyw5LjM2NjIxMDk0IEM5LjkxMDQxMDE3LDguMzk4OTI1NzggOS4yNDczMjQyMyw3LjcxMTkxNDA2IDguMzEwODAwNzksNy43MTE5MTQwNiBDNy44MjIwMzEyNiw3LjcxMTkxNDA2IDcuNDczMzk4NDUsNy44OTMwNjY0MSA3LjI2NDkwMjM1LDguMTkzODQ3NjYgTDcuMjAzMzc4OTIsOC4xOTM4NDc2NiBMNy4zMTI3NTM5Miw2LjkyNTc4MTI1IEw5LjYxMzA0Njg4LDYuOTI1NzgxMjUgTDkuNjEzMDQ2ODgsNi4wNjc4NzEwOSBMNi41MTI5NDkyMyw2LjA2Nzg3MTA5IEw2LjI2Njg1NTQ4LDguOTI4NzEwOTQgTDcuMTg5NzA3MDQsOC45Mjg3MTA5NCBDNy4zNjA2MDU0OCw4LjY1MTg1NTQ3IDcuNjUxMTMyODIsOC40ODQzNzUgOC4wMzM5NDUzMiw4LjQ4NDM3NSBDOC41NTY4OTQ1NCw4LjQ4NDM3NSA4LjkyNjAzNTE3LDguODQ2Njc5NjkgOC45MjYwMzUxNyw5LjM5MDEzNjcyIEM4LjkyNjAzNTE3LDkuOTI2NzU3ODEgOC41NjAzMTI1MSwxMC4yODIyMjY2IDguMDMwNTI3MzUsMTAuMjgyMjI2NiBDNy41NjIyNjU2MywxMC4yODIyMjY2IDcuMTk5OTYwOTUsMTAuMDA4Nzg5MSA3LjE0MTg1NTQ4LDkuNTk4NjMyODEgTDYuMTg4MjQyMiw5LjU5ODYzMjgxIEM2LjIxOTAwMzkyLDEwLjQ4MDQ2ODggNi45NTA0NDkyMywxMS4xMjY0NjQ4IDguMDIzNjkxNDIsMTEuMTI2NDY0OCBaIiBpZD0iMTUiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTUsMyBMNy41NTY2NDY4Miw0LjI3ODMyMzQxIEM3LjgwNzA3MTY5LDQuNDAzNTM1ODQgOCw0LjI4MDQwNTI5IDgsNC4wMDk1MjE0OCBMOCwzLjIwNzAzMjQ5IEMxMC4zMDg1MDQ4LDMuODU5OTYxMzggMTIsNS45ODI0NDU3NSAxMiw4LjUgQzEyLDExLjUzNzU2NjEgOS41Mzc1NjYxMiwxNCA2LjUsMTQgQzMuNDYyNDMzODgsMTQgMSwxMS41Mzc1NjYxIDEsOC41IEMxLDguMzMxNDU1MTUgMS4wMDc1ODEzMSw4LjE2NDY4MTAyIDEuMDIyNDIxNTEsOCBMMC4wMTg5NDQ4MTY3LDggQzAuMDA2MzkxNDYzMDIsOC4xNjUwMjA4MSAxLjMxODM4OTg0ZS0xNiw4LjMzMTc2NCAxLjMxODM4OTg0ZS0xNiw4LjUgQzEuMzE4Mzg5ODRlLTE2LDEyLjA4OTg1MDkgMi45MTAxNDkxMywxNSA2LjUsMTUgQzEwLjA4OTg1MDksMTUgMTMsMTIuMDg5ODUwOSAxMyw4LjUgQzEzLDUuNDI2NDE4MzYgMTAuODY2NywyLjg1MTA5NTY0IDgsMi4xNzM5MzE4NCBMOCwwLjk5MDQ3ODUxNiBDOCwwLjcxNTA1NzM3MyA3LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDcuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDUsMiBMNSwwLjk5MDQ3ODUxNiBDNSwwLjcxNTA1NzM3MyA0LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDQuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDEuNDQzMzUzMTgsMi4yNzgzMjM0MSBDMS4xOTI5MjgzMSwyLjQwMzUzNTg0IDEuMTk4NDk1OTgsMi41OTkyNDc5OSAxLjQ0MzM1MzE4LDIuNzIxNjc2NTkgTDQuNTU2NjQ2ODIsNC4yNzgzMjM0MSBDNC44MDcwNzE2OSw0LjQwMzUzNTg0IDUsNC4yODA0MDUyOSA1LDQuMDA5NTIxNDggTDUsMyBaIiBpZD0iQ29tYmluZWQtU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTNweCIgaGVpZ2h0PSIxN3B4IiB2aWV3Qm94PSIwIDAgMTMgMTciIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjIgKDM5MDY5KSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9Ta2lwQmFjazE1PC90aXRsZT4KICAgIDxkZXNjPkNyZWF0ZWQgd2l0aCBTa2V0Y2guPC9kZXNjPgogICAgPGRlZnM+PC9kZWZzPgogICAgPGcgaWQ9Ik1lZGlhLUNvbnRyb2wtU3ltYm9scyIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Il9Bc3NldHMvSW5saW5lL1NraXBCYWNrMTUiIGZpbGw9IiMwMDAwMDAiPgogICAgICAgICAgICA8cGF0aCBkPSJNNC4wMjE0ODQzOCwxMSBMNS4wNTM3MTA5NCwxMSBMNS4wNTM3MTA5NCw2LjA2Nzg3MTA5IEw0LjAyNDkwMjM0LDYuMDY3ODcxMDkgTDIuNzUsNi45NDYyODkwNiBMMi43NSw3LjkwNjczODI4IEwzLjk1OTk2MDk0LDcuMDcyNzUzOTEgTDQuMDIxNDg0MzgsNy4wNzI3NTM5MSBMNC4wMjE0ODQzOCwxMSBaIE04LjAyMzY5MTQyLDExLjEyNjQ2NDggQzkuMTU1MDM5MDcsMTEuMTI2NDY0OCA5LjkxMDQxMDE3LDEwLjQxMjEwOTQgOS45MTA0MTAxNyw5LjM2NjIxMDk0IEM5LjkxMDQxMDE3LDguMzk4OTI1NzggOS4yNDczMjQyMyw3LjcxMTkxNDA2IDguMzEwODAwNzksNy43MTE5MTQwNiBDNy44MjIwMzEyNiw3LjcxMTkxNDA2IDcuNDczMzk4NDUsNy44OTMwNjY0MSA3LjI2NDkwMjM1LDguMTkzODQ3NjYgTDcuMjAzMzc4OTIsOC4xOTM4NDc2NiBMNy4zMTI3NTM5Miw2LjkyNTc4MTI1IEw5LjYxMzA0Njg4LDYuOTI1NzgxMjUgTDkuNjEzMDQ2ODgsNi4wNjc4NzEwOSBMNi41MTI5NDkyMyw2LjA2Nzg3MTA5IEw2LjI2Njg1NTQ4LDguOTI4NzEwOTQgTDcuMTg5NzA3MDQsOC45Mjg3MTA5NCBDNy4zNjA2MDU0OCw4LjY1MTg1NTQ3IDcuNjUxMTMyODIsOC40ODQzNzUgOC4wMzM5NDUzMiw4LjQ4NDM3NSBDOC41NTY4OTQ1NCw4LjQ4NDM3NSA4LjkyNjAzNTE3LDguODQ2Njc5NjkgOC45MjYwMzUxNyw5LjM5MDEzNjcyIEM4LjkyNjAzNTE3LDkuOTI2NzU3ODEgOC41NjAzMTI1MSwxMC4yODIyMjY2IDguMDMwNTI3MzUsMTAuMjgyMjI2NiBDNy41NjIyNjU2MywxMC4yODIyMjY2IDcuMTk5OTYwOTUsMTAuMDA4Nzg5MSA3LjE0MTg1NTQ4LDkuNTk4NjMyODEgTDYuMTg4MjQyMiw5LjU5ODYzMjgxIEM2LjIxOTAwMzkyLDEwLjQ4MDQ2ODggNi45NTA0NDkyMywxMS4xMjY0NjQ4IDguMDIzNjkxNDIsMTEuMTI2NDY0OCBaIiBpZD0iMTUiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTUsMyBMNy41NTY2NDY4Miw0LjI3ODMyMzQxIEM3LjgwNzA3MTY5LDQuNDAzNTM1ODQgOCw0LjI4MDQwNTI5IDgsNC4wMDk1MjE0OCBMOCwzLjIwNzAzMjQ5IEMxMC4zMDg1MDQ4LDMuODU5OTYxMzggMTIsNS45ODI0NDU3NSAxMiw4LjUgQzEyLDExLjUzNzU2NjEgOS41Mzc1NjYxMiwxNCA2LjUsMTQgQzMuNDYyNDMzODgsMTQgMSwxMS41Mzc1NjYxIDEsOC41IEMxLDguMzMxNDU1MTUgMS4wMDc1ODEzMSw4LjE2NDY4MTAyIDEuMDIyNDIxNTEsOCBMMC4wMTg5NDQ4MTY3LDggQzAuMDA2MzkxNDYzMDIsOC4xNjUwMjA4MSAxLjMxODM4OTg0ZS0xNiw4LjMzMTc2NCAxLjMxODM4OTg0ZS0xNiw4LjUgQzEuMzE4Mzg5ODRlLTE2LDEyLjA4OTg1MDkgMi45MTAxNDkxMywxNSA2LjUsMTUgQzEwLjA4OTg1MDksMTUgMTMsMTIuMDg5ODUwOSAxMyw4LjUgQzEzLDUuNDI2NDE4MzYgMTAuODY2NywyLjg1MTA5NTY0IDgsMi4xNzM5MzE4NCBMOCwwLjk5MDQ3ODUxNiBDOCwwLjcxNTA1NzM3MyA3LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDcuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDUsMiBMNSwwLjk5MDQ3ODUxNiBDNSwwLjcxNTA1NzM3MyA0LjgwMTUwNDAyLDAuNTk5MjQ3OTg5IDQuNTU2NjQ2ODIsMC43MjE2NzY1ODggTDEuNDQzMzUzMTgsMi4yNzgzMjM0MSBDMS4xOTI5MjgzMSwyLjQwMzUzNTg0IDEuMTk4NDk1OTgsMi41OTkyNDc5OSAxLjQ0MzM1MzE4LDIuNzIxNjc2NTkgTDQuNTU2NjQ2ODIsNC4yNzgzMjM0MSBDNC44MDcwNzE2OSw0LjQwMzUzNTg0IDUsNC4yODA0MDUyOSA1LDQuMDA5NTIxNDggTDUsMyBaIiBpZD0iQ29tYmluZWQtU2hhcGUiPjwvcGF0aD4KICAgICAgICA8L2c+CiAgICA8L2c+Cjwvc3ZnPg==)}.vjs-ios-skin .vjs-menu{background:0 0}.vjs-ios-skin .vjs-menu .vjs-menu-item,.vjs-ios-skin .vjs-menu li{height:31px;line-height:31px;padding-top:0;padding-bottom:0}.vjs-ios-skin .vjs-menu .vjs-menu-item.vjs-selected:focus,.vjs-ios-skin .vjs-menu .vjs-menu-item.vjs-selected:hover,.vjs-ios-skin .vjs-menu li:focus,.vjs-ios-skin .vjs-menu li:hover{background-color:rgba(255,255,255,.55)}.vjs-ios-skin .vjs-menu-item-link>.vjs-menu-link{display:block;color:inherit;text-decoration:inherit;text-transform:inherit;white-space:nowrap;border:none}.vjs-ios-skin .vjs-time-control{padding:0 6px;color:rgba(255,255,255,.55);font-size:12px;text-align:right}.vjs-ios-skin .vjs-current-time{padding-left:8px}.vjs-ios-skin .vjs-current-time-display{display:block;line-height:normal}.vjs-ios-skin.vjs-live .vjs-current-time,.vjs-ios-skin.vjs-live .vjs-duration,.vjs-ios-skin.vjs-live .vjs-progress-control,.vjs-ios-skin.vjs-live .vjs-remaining-time,.vjs-ios-skin.vjs-live .vjs-skip-button,.vjs-ios-skin.vjs-live .vjs-time-control,.vjs-ios-skin.vjs-live .vjs-time-divider{display:none}.vjs-ios-skin .vjs-volume-menu-button{top:0;right:0}.vjs-ios-skin .vjs-volume-menu-button,.vjs-ios-skin .vjs-volume-menu-button:focus,.vjs-ios-skin .vjs-volume-menu-button:hover{width:54px}.vjs-ios-skin .vjs-volume-menu-button:before{width:100%}.vjs-ios-skin .vjs-volume-menu-button>.vjs-menu{display:none}.vjs-ios-skin .vjs-volume-menu-button>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIycHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDIyIDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0MS4yICgzNTM5NykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+bWFjT1MtVm9sdW1lSGk8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjE5Ljk2NjcgMS4wMDAyIDE2LjQ0MDYzOTggMS4wMDAyIDE2LjQ0MDYzOTggMTUuNTU1MjkgMTkuOTY2NyAxNS41NTUyOSAxOS45NjY3IDEuMDAwMiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Im1hY09TLVZvbHVtZUhpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgLTEuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cC03IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNi4wMDAwMDAsIDAuNTU1MjAwKSI+PC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNMTEuMDUxMyw4IEMxMS4wNTEzLDkuMDY1ODYyNTcgMTAuNjUyMyw5Ljk3OTMwOTkzIDkuOTI2MywxMC43OTA0NTEyIEM5Ljc2NTMsMTAuOTcxMDUyOCA5Ljc4NzMsMTEuMjQyNDc3MSA5Ljk3NzMsMTEuMzk2OTgwMiBDMTAuMTY2MywxMS41NTE0ODMzIDEwLjQ1MDMsMTEuNTI5NTYwNiAxMC42MTIzLDExLjM0ODk1OSBDMTEuNDc3MywxMC4zODIyNzA3IDExLjk1MjMsOS4yNzA0NzQ3OCAxMS45NTIzLDggQzExLjk1MjMsNi43Mjk1MjUyMiAxMS40NzczLDUuNjE3NzI5MyAxMC42MTIzLDQuNjUxMDQxMDEgQzEwLjQ1MDMsNC40NzA0Mzk0MiAxMC4xNjYzLDQuNDQ4NTE2NjggOS45NzczLDQuNjAzMDE5NzggQzkuNzg3Myw0Ljc1NzUyMjg3IDkuNzY1Myw1LjAyODk0NzIzIDkuOTI2Myw1LjIwOTU0ODgyIEMxMC42NTIzLDYuMDIwNjkwMDcgMTEuMDUxMyw2LjkzNDEzNzQzIDExLjA1MTMsOCIgaWQ9IkZpbGwtMSIgZmlsbD0iIzIyMUYyMCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMTUuMDczMSw4IEMxNS4wNzMxLDkuNzYxNTYzNjEgMTQuNDI1MSwxMS40Mzk1ODcgMTMuMjQ5MSwxMi44MDcxNzEgQzEzLjA5MjEsMTIuOTg5NzIxOCAxMy4xMjIxLDEzLjI1Njg0NDEgMTMuMzE1MSwxMy40MDUzNiBDMTMuNTA4MSwxMy41NTI4NDQ1IDEzLjc5MjEsMTMuNTI0OTk3OCAxMy45NDkxLDEzLjM0MjQ0NyBDMTUuMjU1MSwxMS44MjQyODQ1IDE1Ljk3NDEsOS45NTY0OTA3MyAxNS45NzQxLDggQzE1Ljk3NDEsNi4wNDM1MDkyNyAxNS4yNTUxLDQuMTc1NzE1NTMgMTMuOTQ5MSwyLjY1NzU1Mjk4IEMxMy43OTIxLDIuNDc1MDAyMTkgMTMuNTA4MSwyLjQ0NzE1NTQ2IDEzLjMxNTEsMi41OTQ2NCBDMTMuMTIyMSwyLjc0MzE1NTkgMTMuMDkyMSwzLjAxMDI3ODI1IDEzLjI0OTEsMy4xOTI4MjkwNSBDMTQuNDI1MSw0LjU2MDQxMjk3IDE1LjA3MzEsNi4yMzg0MzYzOSAxNS4wNzMxLDgiIGlkPSJGaWxsLTMiIGZpbGw9IiMyMjFGMjAiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQuMzI4MTQ0LDUuMDAwODY5MTkgTDYuNTg5MywyLjcyNDY4NTMzIEM2Ljk1OTMsMi4zNDI2ODUzMyA3LjI4MDMsMS44MzA2ODUzMyA3Ljc0MjMsMi4wNTQ2ODUzMyBDOC4wNjIzLDIuMjEwNjg1MzMgNy45OTAzLDMuMjE0Njg1MzMgNy45OTAzLDMuMjE0Njg1MzMgQzcuOTkwMywzLjIxNDY4NTMzIDcuOTg3Myw1LjQ4MzY4NTMzIDcuOTg0Myw3Ljk3MDY4NTMzIEM3Ljk4MjMsMTAuNDY1Njg1MyA3Ljk4MjMsNS41MjU2ODUzMyA3Ljk4NDMsOC4wMjA2ODUzMyBDNy45ODczLDEwLjUwNzY4NTMgNy45OTAzLDEyLjc3NjY4NTMgNy45OTAzLDEyLjc3NjY4NTMgQzcuOTkwMywxMi43NzY2ODUzIDguMDYyMywxMy43ODA2ODUzIDcuNzQyMywxMy45MzU2ODUzIEM3LjI4MDMsMTQuMTYwNjg1MyA2Ljk1OTMsMTMuNjQ4Njg1MyA2LjU4OTMsMTMuMjY2Njg1MyBMNC4zMzc1Nzk4MiwxMSBMNC4xMjMsMTEgTDEuODc3LDExIEwxLjY2MiwxMSBDMS42MDIsMTAuOTk5IDEuNTQxLDEwLjk5OSAxLjQ4MSwxMC45OTcgQzEuMzQ5LDEwLjk5MyAxLjIxNywxMC45ODYgMS4wODcsMTAuOTYyIEMwLjk1NSwxMC45MzkgMC44MzIsMTAuOSAwLjcxMiwxMC44MzkgQzAuNTk0LDEwLjc3OSAwLjQ4NiwxMC43MDEgMC4zOTMsMTAuNjA3IEMwLjI5OSwxMC41MTQgMC4yMjEsMTAuNDA2IDAuMTYxLDEwLjI4OCBDMC4xLDEwLjE2OCAwLjA2MSwxMC4wNDUgMC4wMzgsOS45MTMgQzAuMDE0LDkuNzgzIDAuMDA3LDkuNjUxIDAuMDAzLDkuNTE5IEMwLjAwMSw5LjQ1OSAwLjAwMSw5LjM5OSAwLjAwMSw5LjMzOCBDMCw5LjI2NyAwLDkuMTk1IDAsOS4xMjMgTDAsNi44NzcgQzAsNi44MDUgMCw2LjczNCAwLjAwMSw2LjY2MiBDMC4wMDEsNi42MDIgMC4wMDEsNi41NDEgMC4wMDMsNi40ODEgQzAuMDA3LDYuMzUgMC4wMTQsNi4yMTcgMC4wMzgsNi4wODcgQzAuMDYxLDUuOTU1IDAuMSw1LjgzMiAwLjE2MSw1LjcxMiBDMC4yMjEsNS41OTQgMC4yOTksNS40ODcgMC4zOTMsNS4zOTMgQzAuNDg2LDUuMyAwLjU5NCw1LjIyMSAwLjcxMiw1LjE2MSBDMC44MzIsNS4xIDAuOTU1LDUuMDYyIDEuMDg3LDUuMDM4IEMxLjIxNyw1LjAxNCAxLjM0OSw1LjAwNyAxLjQ4MSw1LjAwMyBDMS41NDEsNS4wMDIgMS42MDIsNS4wMDEgMS42NjIsNS4wMDEgQzEuNzM0LDUgMS44MDUsNSAxLjg3Nyw1IEw0LjEyMyw1IEM0LjE5MTcxMjY1LDUgNC4yNTk1MTQ1Miw1IDQuMzI4MTQ0LDUuMDAwODY5MTkgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSIjMjIxRjIwIj48L3BhdGg+CiAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNiI+PC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDY1Nyw4IEMxOS4wNjU3LDEwLjUzMTAyMjkgMTguMjAzNywxMi44MzIyMzM5IDE2LjUzODcsMTQuODEwODgzNyBDMTYuMzgzNywxNC45OTUzNTE2IDE2LjQxNTcsMTUuMjYyMjYzMiAxNi42MTE3LDE1LjQwNzU3MDMgQzE2LjgwNTcsMTUuNTUzOTA3OSAxNy4wODk3LDE1LjUyMjk5MTUgMTcuMjQ0NywxNS4zMzk1NTQyIEMxOS4wMzc3LDEzLjIwODM4MzUgMTkuOTY2NywxMC43MjQ3NjU3IDE5Ljk2NjcsOCBDMTkuOTY2Nyw1LjI3NTIzNDMgMTkuMDM3NywyLjc5MTYxNjU0IDE3LjI0NDcsMC42NjA0NDU3ODcgQzE3LjA4OTcsMC40NzcwMDg0NTkgMTYuODA1NywwLjQ0NjA5MjA1NiAxNi42MTE3LDAuNTkyNDI5NyBDMTYuNDE1NywwLjczNzczNjc5NiAxNi4zODM3LDEuMDA0NjQ4NDEgMTYuNTM4NywxLjE4OTExNjI5IEMxOC4yMDM3LDMuMTY3NzY2MTIgMTkuMDY1Nyw1LjQ2ODk3NzA5IDE5LjA2NTcsOCIgaWQ9IkZpbGwtNSIgZmlsbD0iIzIyMUYyMCIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+Cjxzdmcgd2lkdGg9IjIycHgiIGhlaWdodD0iMTVweCIgdmlld0JveD0iMCAwIDIyIDE1IiB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPgogICAgPCEtLSBHZW5lcmF0b3I6IFNrZXRjaCA0MS4yICgzNTM5NykgLSBodHRwOi8vd3d3LmJvaGVtaWFuY29kaW5nLmNvbS9za2V0Y2ggLS0+CiAgICA8dGl0bGU+bWFjT1MtVm9sdW1lSGk8L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz4KICAgICAgICA8cG9seWdvbiBpZD0icGF0aC0xIiBwb2ludHM9IjE5Ljk2NjcgMS4wMDAyIDE2LjQ0MDYzOTggMS4wMDAyIDE2LjQ0MDYzOTggMTUuNTU1MjkgMTkuOTY2NyAxNS41NTUyOSAxOS45NjY3IDEuMDAwMiI+PC9wb2x5Z29uPgogICAgPC9kZWZzPgogICAgPGcgaWQ9IlBhZ2UtMSIgc3Ryb2tlPSJub25lIiBzdHJva2Utd2lkdGg9IjEiIGZpbGw9Im5vbmUiIGZpbGwtcnVsZT0iZXZlbm9kZCI+CiAgICAgICAgPGcgaWQ9Im1hY09TLVZvbHVtZUhpIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLjAwMDAwMCwgLTEuMDAwMDAwKSI+CiAgICAgICAgICAgIDxnIGlkPSJHcm91cC03IiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxNi4wMDAwMDAsIDAuNTU1MjAwKSI+PC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNMTEuMDUxMyw4IEMxMS4wNTEzLDkuMDY1ODYyNTcgMTAuNjUyMyw5Ljk3OTMwOTkzIDkuOTI2MywxMC43OTA0NTEyIEM5Ljc2NTMsMTAuOTcxMDUyOCA5Ljc4NzMsMTEuMjQyNDc3MSA5Ljk3NzMsMTEuMzk2OTgwMiBDMTAuMTY2MywxMS41NTE0ODMzIDEwLjQ1MDMsMTEuNTI5NTYwNiAxMC42MTIzLDExLjM0ODk1OSBDMTEuNDc3MywxMC4zODIyNzA3IDExLjk1MjMsOS4yNzA0NzQ3OCAxMS45NTIzLDggQzExLjk1MjMsNi43Mjk1MjUyMiAxMS40NzczLDUuNjE3NzI5MyAxMC42MTIzLDQuNjUxMDQxMDEgQzEwLjQ1MDMsNC40NzA0Mzk0MiAxMC4xNjYzLDQuNDQ4NTE2NjggOS45NzczLDQuNjAzMDE5NzggQzkuNzg3Myw0Ljc1NzUyMjg3IDkuNzY1Myw1LjAyODk0NzIzIDkuOTI2Myw1LjIwOTU0ODgyIEMxMC42NTIzLDYuMDIwNjkwMDcgMTEuMDUxMyw2LjkzNDEzNzQzIDExLjA1MTMsOCIgaWQ9IkZpbGwtMSIgZmlsbD0iIzIyMUYyMCI+PC9wYXRoPgogICAgICAgICAgICA8cGF0aCBkPSJNMTUuMDczMSw4IEMxNS4wNzMxLDkuNzYxNTYzNjEgMTQuNDI1MSwxMS40Mzk1ODcgMTMuMjQ5MSwxMi44MDcxNzEgQzEzLjA5MjEsMTIuOTg5NzIxOCAxMy4xMjIxLDEzLjI1Njg0NDEgMTMuMzE1MSwxMy40MDUzNiBDMTMuNTA4MSwxMy41NTI4NDQ1IDEzLjc5MjEsMTMuNTI0OTk3OCAxMy45NDkxLDEzLjM0MjQ0NyBDMTUuMjU1MSwxMS44MjQyODQ1IDE1Ljk3NDEsOS45NTY0OTA3MyAxNS45NzQxLDggQzE1Ljk3NDEsNi4wNDM1MDkyNyAxNS4yNTUxLDQuMTc1NzE1NTMgMTMuOTQ5MSwyLjY1NzU1Mjk4IEMxMy43OTIxLDIuNDc1MDAyMTkgMTMuNTA4MSwyLjQ0NzE1NTQ2IDEzLjMxNTEsMi41OTQ2NCBDMTMuMTIyMSwyLjc0MzE1NTkgMTMuMDkyMSwzLjAxMDI3ODI1IDEzLjI0OTEsMy4xOTI4MjkwNSBDMTQuNDI1MSw0LjU2MDQxMjk3IDE1LjA3MzEsNi4yMzg0MzYzOSAxNS4wNzMxLDgiIGlkPSJGaWxsLTMiIGZpbGw9IiMyMjFGMjAiPjwvcGF0aD4KICAgICAgICAgICAgPHBhdGggZD0iTTQuMzI4MTQ0LDUuMDAwODY5MTkgTDYuNTg5MywyLjcyNDY4NTMzIEM2Ljk1OTMsMi4zNDI2ODUzMyA3LjI4MDMsMS44MzA2ODUzMyA3Ljc0MjMsMi4wNTQ2ODUzMyBDOC4wNjIzLDIuMjEwNjg1MzMgNy45OTAzLDMuMjE0Njg1MzMgNy45OTAzLDMuMjE0Njg1MzMgQzcuOTkwMywzLjIxNDY4NTMzIDcuOTg3Myw1LjQ4MzY4NTMzIDcuOTg0Myw3Ljk3MDY4NTMzIEM3Ljk4MjMsMTAuNDY1Njg1MyA3Ljk4MjMsNS41MjU2ODUzMyA3Ljk4NDMsOC4wMjA2ODUzMyBDNy45ODczLDEwLjUwNzY4NTMgNy45OTAzLDEyLjc3NjY4NTMgNy45OTAzLDEyLjc3NjY4NTMgQzcuOTkwMywxMi43NzY2ODUzIDguMDYyMywxMy43ODA2ODUzIDcuNzQyMywxMy45MzU2ODUzIEM3LjI4MDMsMTQuMTYwNjg1MyA2Ljk1OTMsMTMuNjQ4Njg1MyA2LjU4OTMsMTMuMjY2Njg1MyBMNC4zMzc1Nzk4MiwxMSBMNC4xMjMsMTEgTDEuODc3LDExIEwxLjY2MiwxMSBDMS42MDIsMTAuOTk5IDEuNTQxLDEwLjk5OSAxLjQ4MSwxMC45OTcgQzEuMzQ5LDEwLjk5MyAxLjIxNywxMC45ODYgMS4wODcsMTAuOTYyIEMwLjk1NSwxMC45MzkgMC44MzIsMTAuOSAwLjcxMiwxMC44MzkgQzAuNTk0LDEwLjc3OSAwLjQ4NiwxMC43MDEgMC4zOTMsMTAuNjA3IEMwLjI5OSwxMC41MTQgMC4yMjEsMTAuNDA2IDAuMTYxLDEwLjI4OCBDMC4xLDEwLjE2OCAwLjA2MSwxMC4wNDUgMC4wMzgsOS45MTMgQzAuMDE0LDkuNzgzIDAuMDA3LDkuNjUxIDAuMDAzLDkuNTE5IEMwLjAwMSw5LjQ1OSAwLjAwMSw5LjM5OSAwLjAwMSw5LjMzOCBDMCw5LjI2NyAwLDkuMTk1IDAsOS4xMjMgTDAsNi44NzcgQzAsNi44MDUgMCw2LjczNCAwLjAwMSw2LjY2MiBDMC4wMDEsNi42MDIgMC4wMDEsNi41NDEgMC4wMDMsNi40ODEgQzAuMDA3LDYuMzUgMC4wMTQsNi4yMTcgMC4wMzgsNi4wODcgQzAuMDYxLDUuOTU1IDAuMSw1LjgzMiAwLjE2MSw1LjcxMiBDMC4yMjEsNS41OTQgMC4yOTksNS40ODcgMC4zOTMsNS4zOTMgQzAuNDg2LDUuMyAwLjU5NCw1LjIyMSAwLjcxMiw1LjE2MSBDMC44MzIsNS4xIDAuOTU1LDUuMDYyIDEuMDg3LDUuMDM4IEMxLjIxNyw1LjAxNCAxLjM0OSw1LjAwNyAxLjQ4MSw1LjAwMyBDMS41NDEsNS4wMDIgMS42MDIsNS4wMDEgMS42NjIsNS4wMDEgQzEuNzM0LDUgMS44MDUsNSAxLjg3Nyw1IEw0LjEyMyw1IEM0LjE5MTcxMjY1LDUgNC4yNTk1MTQ1Miw1IDQuMzI4MTQ0LDUuMDAwODY5MTkgWiIgaWQ9IkNvbWJpbmVkLVNoYXBlIiBmaWxsPSIjMjIxRjIwIj48L3BhdGg+CiAgICAgICAgICAgIDxtYXNrIGlkPSJtYXNrLTIiIGZpbGw9IndoaXRlIj4KICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI3BhdGgtMSI+PC91c2U+CiAgICAgICAgICAgIDwvbWFzaz4KICAgICAgICAgICAgPGcgaWQ9IkNsaXAtNiI+PC9nPgogICAgICAgICAgICA8cGF0aCBkPSJNMTkuMDY1Nyw4IEMxOS4wNjU3LDEwLjUzMTAyMjkgMTguMjAzNywxMi44MzIyMzM5IDE2LjUzODcsMTQuODEwODgzNyBDMTYuMzgzNywxNC45OTUzNTE2IDE2LjQxNTcsMTUuMjYyMjYzMiAxNi42MTE3LDE1LjQwNzU3MDMgQzE2LjgwNTcsMTUuNTUzOTA3OSAxNy4wODk3LDE1LjUyMjk5MTUgMTcuMjQ0NywxNS4zMzk1NTQyIEMxOS4wMzc3LDEzLjIwODM4MzUgMTkuOTY2NywxMC43MjQ3NjU3IDE5Ljk2NjcsOCBDMTkuOTY2Nyw1LjI3NTIzNDMgMTkuMDM3NywyLjc5MTYxNjU0IDE3LjI0NDcsMC42NjA0NDU3ODcgQzE3LjA4OTcsMC40NzcwMDg0NTkgMTYuODA1NywwLjQ0NjA5MjA1NiAxNi42MTE3LDAuNTkyNDI5NyBDMTYuNDE1NywwLjczNzczNjc5NiAxNi4zODM3LDEuMDA0NjQ4NDEgMTYuNTM4NywxLjE4OTExNjI5IEMxOC4yMDM3LDMuMTY3NzY2MTIgMTkuMDY1Nyw1LjQ2ODk3NzA5IDE5LjA2NTcsOCIgaWQ9IkZpbGwtNSIgZmlsbD0iIzIyMUYyMCIgbWFzaz0idXJsKCNtYXNrLTIpIj48L3BhdGg+CiAgICAgICAgPC9nPgogICAgPC9nPgo8L3N2Zz4=)}.vjs-ios-skin .vjs-volume-menu-button.vjs-vol-0>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjJweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMjIgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0JvdGgvTXV0ZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJNZWRpYS1Db250cm9sLVN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJfQXNzZXRzL0JvdGgvTXV0ZSIgZmlsbD0iIzAwMDAwMCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjE1Nzk2NDMxLDMuMjY1MDM2MjUgTDcuMjY2MzM4MzUsMi4yNDYxODY0MiBDNy42NzE1Mjg0OSwxLjg3MzcyMzc5IDgsMi4wMjIyNDM2OCA4LDIuNTYyNTk3ODIgTDgsNC4zMjg1MzYwNSBMNi4xNTc5NjQzMSwzLjI2NTAzNjI1IFogTTgsOC4zNjk5ODc5NCBMOCwxMi40NDE0MSBDOCwxMi45ODg2MjE4IDcuNjcyNjYzMjEsMTMuMTE3NDQ4OSA3LjI4NDg4MDE2LDEyLjc0NDU0NjUgTDQuNDI5ODIzNjcsOS45OTkwNDg3NiBDNC4zOTkxMzI1LDkuOTk5MzY4OTcgNC4zNjg0Mzc1OCw5Ljk5OTU3NzI2IDQuMzM4LDEwIEw0LjEyMywxMCBMMS44NzcsMTAgTDEuNjYyLDEwIEMxLjYwMiw5Ljk5OTE2NjY3IDEuNTQxLDkuOTk5MTY2NjcgMS40ODEsOS45OTc1IEMxLjM0OSw5Ljk5NDE2NjY3IDEuMjE3LDkuOTg4MzMzMzMgMS4wODcsOS45NjgzMzMzMyBDMC45NTUsOS45NDkxNjY2NyAwLjgzMiw5LjkxNjY2NjY3IDAuNzEyLDkuODY1ODMzMzMgQzAuNTk0LDkuODE1ODMzMzMgMC40ODYsOS43NTA4MzMzMyAwLjM5Myw5LjY3MjUgQzAuMjk5LDkuNTk1IDAuMjIxLDkuNTA1IDAuMTYxLDkuNDA2NjY2NjcgQzAuMSw5LjMwNjY2NjY3IDAuMDYxLDkuMjA0MTY2NjcgMC4wMzgsOS4wOTQxNjY2NyBDMC4wMTQsOC45ODU4MzMzMyAwLjAwNyw4Ljg3NTgzMzMzIDAuMDAzLDguNzY1ODMzMzMgQzAuMDAxLDguNzE1ODMzMzMgMC4wMDEsOC42NjU4MzMzMyAwLjAwMSw4LjYxNSBDMCw4LjU1NTgzMzMzIDAsOC40OTU4MzMzMyAwLDguNDM1ODMzMzMgTDAsNi41NjQxNjY2NyBDMCw2LjUwNDE2NjY3IDAsNi40NDUgMC4wMDEsNi4zODUgQzAuMDAxLDYuMzM1IDAuMDAxLDYuMjg0MTY2NjcgMC4wMDMsNi4yMzQxNjY2NyBDMC4wMDcsNi4xMjUgMC4wMTQsNi4wMTQxNjY2NyAwLjAzOCw1LjkwNTgzMzMzIEMwLjA2MSw1Ljc5NTgzMzMzIDAuMSw1LjY5MzMzMzMzIDAuMTYxLDUuNTkzMzMzMzMgQzAuMjIxLDUuNDk1IDAuMjk5LDUuNDA1ODMzMzMgMC4zOTMsNS4zMjc1IEMwLjQ4Niw1LjI1IDAuNTk0LDUuMTg0MTY2NjcgMC43MTIsNS4xMzQxNjY2NyBDMC44MzIsNS4wODMzMzMzMyAwLjk1NSw1LjA1MTY2NjY3IDEuMDg3LDUuMDMxNjY2NjcgQzEuMjE3LDUuMDExNjY2NjcgMS4zNDksNS4wMDU4MzMzMyAxLjQ4MSw1LjAwMjUgQzEuNTQxLDUuMDAxNjY2NjcgMS42MDIsNS4wMDA4MzMzMyAxLjY2Miw1LjAwMDgzMzMzIEMxLjczNCw1IDEuODA1LDUgMS44NzcsNSBMMi4xNjMwMDk2Nyw1IEw4LDguMzY5OTg3OTQgWiBNMTAuNDEyNjkwNSw5Ljc2Mjk1NTQ1IEwxMS4xODQzMzUxLDEwLjIwODQ2NDYgQzExLjAzNTgxMDcsMTAuNDI4NjkyOSAxMC44Njg2MDM4LDEwLjY0MjE0NjcgMTAuNjgzNTQ2NiwxMC44NDg5NTkgQzEwLjUyMTU0NjYsMTEuMDI5NTYwNiAxMC4yMzc1NDY2LDExLjA1MTQ4MzMgMTAuMDQ4NTQ2NiwxMC44OTY5ODAyIEM5Ljg1ODU0NjU5LDEwLjc0MjQ3NzEgOS44MzY1NDY1OSwxMC40NzEwNTI4IDkuOTk3NTQ2NTksMTAuMjkwNDUxMiBDMTAuMTUwNzA2NywxMC4xMTkzMjkzIDEwLjI4OTMxMzMsOS45NDM2NTQyNCAxMC40MTI2OTA1LDkuNzYyOTU1NDUgWiBNMTAuODA2OTc4Niw1Ljk0OTE0NTkzIEMxMC42MTcyMjc0LDUuNTA4ODg3MTkgMTAuMzQ0NzkwNyw1LjA5NzUxNTc5IDkuOTk3NTQ2NTksNC43MDk1NDg4MiBDOS44MzY1NDY1OSw0LjUyODk0NzIzIDkuODU4NTQ2NTksNC4yNTc1MjI4NyAxMC4wNDg1NDY2LDQuMTAzMDE5NzggQzEwLjIzNzU0NjYsMy45NDg1MTY2OCAxMC41MjE1NDY2LDMuOTcwNDM5NDIgMTAuNjgzNTQ2Niw0LjE1MTA0MTAxIEMxMS4zMzg4NzA5LDQuODgzNDA0MzYgMTEuNzcwMzUxNCw1LjY5OTA1MzQ0IDExLjk0MTAyNzYsNi42MDM4ODk0MiBMMTAuODA2OTc4Niw1Ljk0OTE0NTkzIFogTTE1Ljg4NDg2NDksOC44ODA4NjQ5NSBMMTUuMDQ4MTQyMyw4LjM5Nzc4MjkzIEMxNS4wODU2NTMyLDguMTAxNzQxODcgMTUuMTA0NzExMiw3LjgwMjA5OTQxIDE1LjEwNDcxMTIsNy41IEMxNS4xMDQ3MTEyLDUuNzM4NDM2MzkgMTQuNDU2NzExMiw0LjA2MDQxMjk3IDEzLjI4MDcxMTIsMi42OTI4MjkwNSBDMTMuMTIzNzExMiwyLjUxMDI3ODI1IDEzLjE1MzcxMTIsMi4yNDMxNTU5IDEzLjM0NjcxMTIsMi4wOTQ2NCBDMTMuNTM5NzExMiwxLjk0NzE1NTQ2IDEzLjgyMzcxMTIsMS45NzUwMDIxOSAxMy45ODA3MTEyLDIuMTU3NTUyOTggQzE1LjI4NjcxMTIsMy42NzU3MTU1MyAxNi4wMDU3MTEyLDUuNTQzNTA5MjcgMTYuMDA1NzExMiw3LjUgQzE2LjAwNTcxMTIsNy45NjY1MTAyOSAxNS45NjQ4MzI2LDguNDI3OTc3NzMgMTUuODg0ODY0OSw4Ljg4MDg2NDk1IFogTTE0LjUyNzA2MzgsMTIuMTM4MzkgQzE0LjM1ODM4MTksMTIuMzgwMzIgMTQuMTc2MTE3LDEyLjYxNTI5NzEgMTMuOTgwNzExMiwxMi44NDI0NDcgQzEzLjgyMzcxMTIsMTMuMDI0OTk3OCAxMy41Mzk3MTEyLDEzLjA1Mjg0NDUgMTMuMzQ2NzExMiwxMi45MDUzNiBDMTMuMTUzNzExMiwxMi43NTY4NDQxIDEzLjEyMzcxMTIsMTIuNDg5NzIxOCAxMy4yODA3MTEyLDEyLjMwNzE3MSBDMTMuNDUwOTc0OCwxMi4xMDkxNjk0IDEzLjYxMDE3MDYsMTEuOTA0NjYwNSAxMy43NTc5MzQzLDExLjY5NDMzMjkgTDE0LjUyNzA2MzgsMTIuMTM4MzkgWiBNMTcuMTEwMjcwMywxMy42Mjk4MDUgTDE3Ljg3OTk4NDksMTQuMDc0MTk5OSBDMTcuNjkzMzMyOCwxNC4zMzQwNiAxNy40OTQ2NTYsMTQuNTg5MjM4MiAxNy4yODQwNTk3LDE0LjgzOTU1NDIgQzE3LjEyOTA1OTcsMTUuMDIyOTkxNSAxNi44NDUwNTk3LDE1LjA1MzkwNzkgMTYuNjUxMDU5NywxNC45MDc1NzAzIEMxNi40NTUwNTk3LDE0Ljc2MjI2MzIgMTYuNDIzMDU5NywxNC40OTUzNTE2IDE2LjU3ODA1OTcsMTQuMzEwODgzNyBDMTYuNzY1Njg4NywxNC4wODc5MDk0IDE2Ljk0MzEyMDQsMTMuODYwODM5IDE3LjExMDI3MDMsMTMuNjI5ODA1IFogTTE4LjY3NDI4MDcsMTAuNDkxMzM0OSBDMTguOTYwMTEwNiw5LjUzNzEzMDggMTkuMTA1MDU5Nyw4LjUzNzg4NzM0IDE5LjEwNTA1OTcsNy41IEMxOS4xMDUwNTk3LDQuOTY4OTc3MDkgMTguMjQzMDU5NywyLjY2Nzc2NjEyIDE2LjU3ODA1OTcsMC42ODkxMTYyODkgQzE2LjQyMzA1OTcsMC41MDQ2NDg0MTQgMTYuNDU1MDU5NywwLjIzNzczNjc5NiAxNi42NTEwNTk3LDAuMDkyNDI5Njk5NSBDMTYuODQ1MDU5NywtMC4wNTM5MDc5NDQyIDE3LjEyOTA1OTcsLTAuMDIyOTkxNTQwNiAxNy4yODQwNTk3LDAuMTYwNDQ1Nzg3IEMxOS4wNzcwNTk3LDIuMjkxNjE2NTQgMjAuMDA2MDU5Nyw0Ljc3NTIzNDMgMjAuMDA2MDU5Nyw3LjUgQzIwLjAwNjA1OTcsOC43MDAzNjE1NCAxOS44MjU3NjU2LDkuODUzOTIyNyAxOS40NzA3MzQ3LDEwLjk1MTE2NzggTDE4LjY3NDI4MDcsMTAuNDkxMzM0OSBaIE0wLjM0ODIwNTEwNiwxLjk5OTUxODk2IEMwLjU1NTMxMTg4NywxLjY0MDc5OTQ5IDEuMDA4MjU4MzEsMS41MTQ1NzU0NSAxLjM3MjQzMDczLDEuNzI0ODMwNSBMMjEuMzc4MjA0NywxMy4yNzUxNjk1IEMyMS43MzY3NjIyLDEzLjQ4MjE4MjcgMjEuODYwOTgxMSwxMy45MzgyOTg4IDIxLjY1MjQzMDQsMTQuMjk5NTE5MSBDMjEuNDQ1MzIzNiwxNC42NTgyMzg2IDIwLjk5MjM3NzIsMTQuNzg0NDYyNyAyMC42MjgyMDQ3LDE0LjU3NDIwNzYgTDAuNjIyNDMwNzM1LDMuMDIzODY4NiBDMC4yNjM4NzMzMjEsMi44MTY4NTUzOCAwLjEzOTY1NDQxNSwyLjM2MDczOTM1IDAuMzQ4MjA1MTA2LDEuOTk5NTE4OTYgWiIgaWQ9ImlPUy9GdWxsc2NyZWVuL011dGUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsOyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMjJweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMjIgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0JvdGgvTXV0ZTwvdGl0bGU+CiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggU2tldGNoLjwvZGVzYz4KICAgIDxkZWZzPjwvZGVmcz4KICAgIDxnIGlkPSJNZWRpYS1Db250cm9sLVN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPgogICAgICAgIDxnIGlkPSJfQXNzZXRzL0JvdGgvTXV0ZSIgZmlsbD0iIzAwMDAwMCI+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik02LjE1Nzk2NDMxLDMuMjY1MDM2MjUgTDcuMjY2MzM4MzUsMi4yNDYxODY0MiBDNy42NzE1Mjg0OSwxLjg3MzcyMzc5IDgsMi4wMjIyNDM2OCA4LDIuNTYyNTk3ODIgTDgsNC4zMjg1MzYwNSBMNi4xNTc5NjQzMSwzLjI2NTAzNjI1IFogTTgsOC4zNjk5ODc5NCBMOCwxMi40NDE0MSBDOCwxMi45ODg2MjE4IDcuNjcyNjYzMjEsMTMuMTE3NDQ4OSA3LjI4NDg4MDE2LDEyLjc0NDU0NjUgTDQuNDI5ODIzNjcsOS45OTkwNDg3NiBDNC4zOTkxMzI1LDkuOTk5MzY4OTcgNC4zNjg0Mzc1OCw5Ljk5OTU3NzI2IDQuMzM4LDEwIEw0LjEyMywxMCBMMS44NzcsMTAgTDEuNjYyLDEwIEMxLjYwMiw5Ljk5OTE2NjY3IDEuNTQxLDkuOTk5MTY2NjcgMS40ODEsOS45OTc1IEMxLjM0OSw5Ljk5NDE2NjY3IDEuMjE3LDkuOTg4MzMzMzMgMS4wODcsOS45NjgzMzMzMyBDMC45NTUsOS45NDkxNjY2NyAwLjgzMiw5LjkxNjY2NjY3IDAuNzEyLDkuODY1ODMzMzMgQzAuNTk0LDkuODE1ODMzMzMgMC40ODYsOS43NTA4MzMzMyAwLjM5Myw5LjY3MjUgQzAuMjk5LDkuNTk1IDAuMjIxLDkuNTA1IDAuMTYxLDkuNDA2NjY2NjcgQzAuMSw5LjMwNjY2NjY3IDAuMDYxLDkuMjA0MTY2NjcgMC4wMzgsOS4wOTQxNjY2NyBDMC4wMTQsOC45ODU4MzMzMyAwLjAwNyw4Ljg3NTgzMzMzIDAuMDAzLDguNzY1ODMzMzMgQzAuMDAxLDguNzE1ODMzMzMgMC4wMDEsOC42NjU4MzMzMyAwLjAwMSw4LjYxNSBDMCw4LjU1NTgzMzMzIDAsOC40OTU4MzMzMyAwLDguNDM1ODMzMzMgTDAsNi41NjQxNjY2NyBDMCw2LjUwNDE2NjY3IDAsNi40NDUgMC4wMDEsNi4zODUgQzAuMDAxLDYuMzM1IDAuMDAxLDYuMjg0MTY2NjcgMC4wMDMsNi4yMzQxNjY2NyBDMC4wMDcsNi4xMjUgMC4wMTQsNi4wMTQxNjY2NyAwLjAzOCw1LjkwNTgzMzMzIEMwLjA2MSw1Ljc5NTgzMzMzIDAuMSw1LjY5MzMzMzMzIDAuMTYxLDUuNTkzMzMzMzMgQzAuMjIxLDUuNDk1IDAuMjk5LDUuNDA1ODMzMzMgMC4zOTMsNS4zMjc1IEMwLjQ4Niw1LjI1IDAuNTk0LDUuMTg0MTY2NjcgMC43MTIsNS4xMzQxNjY2NyBDMC44MzIsNS4wODMzMzMzMyAwLjk1NSw1LjA1MTY2NjY3IDEuMDg3LDUuMDMxNjY2NjcgQzEuMjE3LDUuMDExNjY2NjcgMS4zNDksNS4wMDU4MzMzMyAxLjQ4MSw1LjAwMjUgQzEuNTQxLDUuMDAxNjY2NjcgMS42MDIsNS4wMDA4MzMzMyAxLjY2Miw1LjAwMDgzMzMzIEMxLjczNCw1IDEuODA1LDUgMS44NzcsNSBMMi4xNjMwMDk2Nyw1IEw4LDguMzY5OTg3OTQgWiBNMTAuNDEyNjkwNSw5Ljc2Mjk1NTQ1IEwxMS4xODQzMzUxLDEwLjIwODQ2NDYgQzExLjAzNTgxMDcsMTAuNDI4NjkyOSAxMC44Njg2MDM4LDEwLjY0MjE0NjcgMTAuNjgzNTQ2NiwxMC44NDg5NTkgQzEwLjUyMTU0NjYsMTEuMDI5NTYwNiAxMC4yMzc1NDY2LDExLjA1MTQ4MzMgMTAuMDQ4NTQ2NiwxMC44OTY5ODAyIEM5Ljg1ODU0NjU5LDEwLjc0MjQ3NzEgOS44MzY1NDY1OSwxMC40NzEwNTI4IDkuOTk3NTQ2NTksMTAuMjkwNDUxMiBDMTAuMTUwNzA2NywxMC4xMTkzMjkzIDEwLjI4OTMxMzMsOS45NDM2NTQyNCAxMC40MTI2OTA1LDkuNzYyOTU1NDUgWiBNMTAuODA2OTc4Niw1Ljk0OTE0NTkzIEMxMC42MTcyMjc0LDUuNTA4ODg3MTkgMTAuMzQ0NzkwNyw1LjA5NzUxNTc5IDkuOTk3NTQ2NTksNC43MDk1NDg4MiBDOS44MzY1NDY1OSw0LjUyODk0NzIzIDkuODU4NTQ2NTksNC4yNTc1MjI4NyAxMC4wNDg1NDY2LDQuMTAzMDE5NzggQzEwLjIzNzU0NjYsMy45NDg1MTY2OCAxMC41MjE1NDY2LDMuOTcwNDM5NDIgMTAuNjgzNTQ2Niw0LjE1MTA0MTAxIEMxMS4zMzg4NzA5LDQuODgzNDA0MzYgMTEuNzcwMzUxNCw1LjY5OTA1MzQ0IDExLjk0MTAyNzYsNi42MDM4ODk0MiBMMTAuODA2OTc4Niw1Ljk0OTE0NTkzIFogTTE1Ljg4NDg2NDksOC44ODA4NjQ5NSBMMTUuMDQ4MTQyMyw4LjM5Nzc4MjkzIEMxNS4wODU2NTMyLDguMTAxNzQxODcgMTUuMTA0NzExMiw3LjgwMjA5OTQxIDE1LjEwNDcxMTIsNy41IEMxNS4xMDQ3MTEyLDUuNzM4NDM2MzkgMTQuNDU2NzExMiw0LjA2MDQxMjk3IDEzLjI4MDcxMTIsMi42OTI4MjkwNSBDMTMuMTIzNzExMiwyLjUxMDI3ODI1IDEzLjE1MzcxMTIsMi4yNDMxNTU5IDEzLjM0NjcxMTIsMi4wOTQ2NCBDMTMuNTM5NzExMiwxLjk0NzE1NTQ2IDEzLjgyMzcxMTIsMS45NzUwMDIxOSAxMy45ODA3MTEyLDIuMTU3NTUyOTggQzE1LjI4NjcxMTIsMy42NzU3MTU1MyAxNi4wMDU3MTEyLDUuNTQzNTA5MjcgMTYuMDA1NzExMiw3LjUgQzE2LjAwNTcxMTIsNy45NjY1MTAyOSAxNS45NjQ4MzI2LDguNDI3OTc3NzMgMTUuODg0ODY0OSw4Ljg4MDg2NDk1IFogTTE0LjUyNzA2MzgsMTIuMTM4MzkgQzE0LjM1ODM4MTksMTIuMzgwMzIgMTQuMTc2MTE3LDEyLjYxNTI5NzEgMTMuOTgwNzExMiwxMi44NDI0NDcgQzEzLjgyMzcxMTIsMTMuMDI0OTk3OCAxMy41Mzk3MTEyLDEzLjA1Mjg0NDUgMTMuMzQ2NzExMiwxMi45MDUzNiBDMTMuMTUzNzExMiwxMi43NTY4NDQxIDEzLjEyMzcxMTIsMTIuNDg5NzIxOCAxMy4yODA3MTEyLDEyLjMwNzE3MSBDMTMuNDUwOTc0OCwxMi4xMDkxNjk0IDEzLjYxMDE3MDYsMTEuOTA0NjYwNSAxMy43NTc5MzQzLDExLjY5NDMzMjkgTDE0LjUyNzA2MzgsMTIuMTM4MzkgWiBNMTcuMTEwMjcwMywxMy42Mjk4MDUgTDE3Ljg3OTk4NDksMTQuMDc0MTk5OSBDMTcuNjkzMzMyOCwxNC4zMzQwNiAxNy40OTQ2NTYsMTQuNTg5MjM4MiAxNy4yODQwNTk3LDE0LjgzOTU1NDIgQzE3LjEyOTA1OTcsMTUuMDIyOTkxNSAxNi44NDUwNTk3LDE1LjA1MzkwNzkgMTYuNjUxMDU5NywxNC45MDc1NzAzIEMxNi40NTUwNTk3LDE0Ljc2MjI2MzIgMTYuNDIzMDU5NywxNC40OTUzNTE2IDE2LjU3ODA1OTcsMTQuMzEwODgzNyBDMTYuNzY1Njg4NywxNC4wODc5MDk0IDE2Ljk0MzEyMDQsMTMuODYwODM5IDE3LjExMDI3MDMsMTMuNjI5ODA1IFogTTE4LjY3NDI4MDcsMTAuNDkxMzM0OSBDMTguOTYwMTEwNiw5LjUzNzEzMDggMTkuMTA1MDU5Nyw4LjUzNzg4NzM0IDE5LjEwNTA1OTcsNy41IEMxOS4xMDUwNTk3LDQuOTY4OTc3MDkgMTguMjQzMDU5NywyLjY2Nzc2NjEyIDE2LjU3ODA1OTcsMC42ODkxMTYyODkgQzE2LjQyMzA1OTcsMC41MDQ2NDg0MTQgMTYuNDU1MDU5NywwLjIzNzczNjc5NiAxNi42NTEwNTk3LDAuMDkyNDI5Njk5NSBDMTYuODQ1MDU5NywtMC4wNTM5MDc5NDQyIDE3LjEyOTA1OTcsLTAuMDIyOTkxNTQwNiAxNy4yODQwNTk3LDAuMTYwNDQ1Nzg3IEMxOS4wNzcwNTk3LDIuMjkxNjE2NTQgMjAuMDA2MDU5Nyw0Ljc3NTIzNDMgMjAuMDA2MDU5Nyw3LjUgQzIwLjAwNjA1OTcsOC43MDAzNjE1NCAxOS44MjU3NjU2LDkuODUzOTIyNyAxOS40NzA3MzQ3LDEwLjk1MTE2NzggTDE4LjY3NDI4MDcsMTAuNDkxMzM0OSBaIE0wLjM0ODIwNTEwNiwxLjk5OTUxODk2IEMwLjU1NTMxMTg4NywxLjY0MDc5OTQ5IDEuMDA4MjU4MzEsMS41MTQ1NzU0NSAxLjM3MjQzMDczLDEuNzI0ODMwNSBMMjEuMzc4MjA0NywxMy4yNzUxNjk1IEMyMS43MzY3NjIyLDEzLjQ4MjE4MjcgMjEuODYwOTgxMSwxMy45MzgyOTg4IDIxLjY1MjQzMDQsMTQuMjk5NTE5MSBDMjEuNDQ1MzIzNiwxNC42NTgyMzg2IDIwLjk5MjM3NzIsMTQuNzg0NDYyNyAyMC42MjgyMDQ3LDE0LjU3NDIwNzYgTDAuNjIyNDMwNzM1LDMuMDIzODY4NiBDMC4yNjM4NzMzMjEsMi44MTY4NTUzOCAwLjEzOTY1NDQxNSwyLjM2MDczOTM1IDAuMzQ4MjA1MTA2LDEuOTk5NTE4OTYgWiIgaWQ9ImlPUy9GdWxsc2NyZWVuL011dGUiIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTogbm9ybWFsOyI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+)}.vjs-ios-skin .vjs-fullscreen-control{top:0;left:0;width:47px}.vjs-ios-skin .vjs-fullscreen-control>.vjs-button-icon{mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTVweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9FbnRlckZ1bGxzY3JlZW48L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iTWVkaWEtQ29udHJvbC1TeW1ib2xzIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iX0Fzc2V0cy9JbmxpbmUvRW50ZXJGdWxsc2NyZWVuIiBmaWxsPSIjMDAwMDAwIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNDQyMjYwNCw1LjUwMjg3ODgxIEwwLjIxNzc1MzE3OCwxLjI3ODM3MTU4IEMtMC4wNzMwNDMzOTgxLDAuOTg3NTc1MDA5IC0wLjA3MzM4NTczMSwwLjUxNjQ0MjkzNyAwLjIyMTU0OTQ4NSwwLjIyMTUwNzcyIEMwLjUxNDQ0MjcwNCwtMC4wNzEzODU0OTgzIDAuOTg1NzA0NDg3LC0wLjA3NDk5NzQ1MDIgMS4yNzg0MTMzNSwwLjIxNzcxMTQxMyBMNS41MTEyNjUxNiw0LjQ1MDU2MzIyIEw1LjUxMTI2NTE2LDIuMDQyMTI5MDYgQzUuNTExMjY1MTYsMS42MjkyNTcyNyA1Ljg0NDE2Mzc3LDEuMjk0NTU4NTUgNi4yNjEyNjUxNiwxLjI5NDU1ODU1IEM2LjY3NTQ3ODcyLDEuMjk0NTU4NTUgNy4wMTEyNjUxNiwxLjYzNTE0MDY5IDcuMDExMjY1MTYsMi4wNDIxMjkwNiBMNy4wMTEyNjUxNiw2LjIwOTM2OTYxIEM3LjAxNjYyMTM5LDYuMjg4Njc2OTMgNy4wMDkzMDI1OSw2LjM2ODc3NTQyIDYuOTg5MjY1MjgsNi40NDY0NTEzNyBDNi45MDg2MDM5NCw2Ljc3MTc5NjkgNi42MTUyNTk5OCw3LjAxMjg3ODggNi4yNjEyNjUxNiw3LjAxMjg3ODggQzYuMjE5NzI0MjEsNy4wMTI4Nzg4IDYuMTc4OTcyMDcsNy4wMDk0NTMyOCA2LjEzOTI2ODMzLDcuMDAyODc4ODEgTDIuMDQwNTE1NDIsNy4wMDI4Nzg4MSBDMS42Mjc2NDM2Miw3LjAwMjg3ODgxIDEuMjkyOTQ0OTEsNi42Njk5ODAxOSAxLjI5Mjk0NDkxLDYuMjUyODc4ODEgQzEuMjkyOTQ0OTEsNS44Mzg2NjUyNSAxLjYzMzUyNzA0LDUuNTAyODc4ODEgMi4wNDA1MTU0Miw1LjUwMjg3ODgxIEw0LjQ0MjI2MDQsNS41MDI4Nzg4MSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuNTA2NDgxLCAzLjUwNjQzOSkgcm90YXRlKDE4MC4wMDAwMDApIHRyYW5zbGF0ZSgtMy41MDY0ODEsIC0zLjUwNjQzOSkgIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi40NDIyNjA0LDEzLjUwMjg3ODggTDguMjE3NzUzMTgsOS4yNzgzNzE1OCBDNy45MjY5NTY2LDguOTg3NTc1MDEgNy45MjY2MTQyNyw4LjUxNjQ0Mjk0IDguMjIxNTQ5NDksOC4yMjE1MDc3MiBDOC41MTQ0NDI3LDcuOTI4NjE0NSA4Ljk4NTcwNDQ5LDcuOTI1MDAyNTUgOS4yNzg0MTMzNSw4LjIxNzcxMTQxIEwxMy41MTEyNjUyLDEyLjQ1MDU2MzIgTDEzLjUxMTI2NTIsMTAuMDQyMTI5MSBDMTMuNTExMjY1Miw5LjYyOTI1NzI3IDEzLjg0NDE2MzgsOS4yOTQ1NTg1NSAxNC4yNjEyNjUyLDkuMjk0NTU4NTUgQzE0LjY3NTQ3ODcsOS4yOTQ1NTg1NSAxNS4wMTEyNjUyLDkuNjM1MTQwNjkgMTUuMDExMjY1MiwxMC4wNDIxMjkxIEwxNS4wMTEyNjUyLDE0LjIwOTM2OTYgQzE1LjAxNjYyMTQsMTQuMjg4Njc2OSAxNS4wMDkzMDI2LDE0LjM2ODc3NTQgMTQuOTg5MjY1MywxNC40NDY0NTE0IEMxNC45MDg2MDM5LDE0Ljc3MTc5NjkgMTQuNjE1MjYsMTUuMDEyODc4OCAxNC4yNjEyNjUyLDE1LjAxMjg3ODggQzE0LjIxOTcyNDIsMTUuMDEyODc4OCAxNC4xNzg5NzIxLDE1LjAwOTQ1MzMgMTQuMTM5MjY4MywxNS4wMDI4Nzg4IEwxMC4wNDA1MTU0LDE1LjAwMjg3ODggQzkuNjI3NjQzNjIsMTUuMDAyODc4OCA5LjI5Mjk0NDkxLDE0LjY2OTk4MDIgOS4yOTI5NDQ5MSwxNC4yNTI4Nzg4IEM5LjI5Mjk0NDkxLDEzLjgzODY2NTIgOS42MzM1MjcwNCwxMy41MDI4Nzg4IDEwLjA0MDUxNTQsMTMuNTAyODc4OCBMMTIuNDQyMjYwNCwxMy41MDI4Nzg4IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+);-webkit-mask-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB3aWR0aD0iMTVweCIgaGVpZ2h0PSIxNXB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgICA8IS0tIEdlbmVyYXRvcjogU2tldGNoIDQzLjEgKDM5MDEyKSAtIGh0dHA6Ly93d3cuYm9oZW1pYW5jb2RpbmcuY29tL3NrZXRjaCAtLT4KICAgIDx0aXRsZT5fQXNzZXRzL0lubGluZS9FbnRlckZ1bGxzY3JlZW48L3RpdGxlPgogICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+CiAgICA8ZGVmcz48L2RlZnM+CiAgICA8ZyBpZD0iTWVkaWEtQ29udHJvbC1TeW1ib2xzIiBzdHJva2U9Im5vbmUiIHN0cm9rZS13aWR0aD0iMSIgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgICAgICA8ZyBpZD0iX0Fzc2V0cy9JbmxpbmUvRW50ZXJGdWxsc2NyZWVuIiBmaWxsPSIjMDAwMDAwIj4KICAgICAgICAgICAgPHBhdGggZD0iTTQuNDQyMjYwNCw1LjUwMjg3ODgxIEwwLjIxNzc1MzE3OCwxLjI3ODM3MTU4IEMtMC4wNzMwNDMzOTgxLDAuOTg3NTc1MDA5IC0wLjA3MzM4NTczMSwwLjUxNjQ0MjkzNyAwLjIyMTU0OTQ4NSwwLjIyMTUwNzcyIEMwLjUxNDQ0MjcwNCwtMC4wNzEzODU0OTgzIDAuOTg1NzA0NDg3LC0wLjA3NDk5NzQ1MDIgMS4yNzg0MTMzNSwwLjIxNzcxMTQxMyBMNS41MTEyNjUxNiw0LjQ1MDU2MzIyIEw1LjUxMTI2NTE2LDIuMDQyMTI5MDYgQzUuNTExMjY1MTYsMS42MjkyNTcyNyA1Ljg0NDE2Mzc3LDEuMjk0NTU4NTUgNi4yNjEyNjUxNiwxLjI5NDU1ODU1IEM2LjY3NTQ3ODcyLDEuMjk0NTU4NTUgNy4wMTEyNjUxNiwxLjYzNTE0MDY5IDcuMDExMjY1MTYsMi4wNDIxMjkwNiBMNy4wMTEyNjUxNiw2LjIwOTM2OTYxIEM3LjAxNjYyMTM5LDYuMjg4Njc2OTMgNy4wMDkzMDI1OSw2LjM2ODc3NTQyIDYuOTg5MjY1MjgsNi40NDY0NTEzNyBDNi45MDg2MDM5NCw2Ljc3MTc5NjkgNi42MTUyNTk5OCw3LjAxMjg3ODggNi4yNjEyNjUxNiw3LjAxMjg3ODggQzYuMjE5NzI0MjEsNy4wMTI4Nzg4IDYuMTc4OTcyMDcsNy4wMDk0NTMyOCA2LjEzOTI2ODMzLDcuMDAyODc4ODEgTDIuMDQwNTE1NDIsNy4wMDI4Nzg4MSBDMS42Mjc2NDM2Miw3LjAwMjg3ODgxIDEuMjkyOTQ0OTEsNi42Njk5ODAxOSAxLjI5Mjk0NDkxLDYuMjUyODc4ODEgQzEuMjkyOTQ0OTEsNS44Mzg2NjUyNSAxLjYzMzUyNzA0LDUuNTAyODc4ODEgMi4wNDA1MTU0Miw1LjUwMjg3ODgxIEw0LjQ0MjI2MDQsNS41MDI4Nzg4MSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDMuNTA2NDgxLCAzLjUwNjQzOSkgcm90YXRlKDE4MC4wMDAwMDApIHRyYW5zbGF0ZSgtMy41MDY0ODEsIC0zLjUwNjQzOSkgIj48L3BhdGg+CiAgICAgICAgICAgIDxwYXRoIGQ9Ik0xMi40NDIyNjA0LDEzLjUwMjg3ODggTDguMjE3NzUzMTgsOS4yNzgzNzE1OCBDNy45MjY5NTY2LDguOTg3NTc1MDEgNy45MjY2MTQyNyw4LjUxNjQ0Mjk0IDguMjIxNTQ5NDksOC4yMjE1MDc3MiBDOC41MTQ0NDI3LDcuOTI4NjE0NSA4Ljk4NTcwNDQ5LDcuOTI1MDAyNTUgOS4yNzg0MTMzNSw4LjIxNzcxMTQxIEwxMy41MTEyNjUyLDEyLjQ1MDU2MzIgTDEzLjUxMTI2NTIsMTAuMDQyMTI5MSBDMTMuNTExMjY1Miw5LjYyOTI1NzI3IDEzLjg0NDE2MzgsOS4yOTQ1NTg1NSAxNC4yNjEyNjUyLDkuMjk0NTU4NTUgQzE0LjY3NTQ3ODcsOS4yOTQ1NTg1NSAxNS4wMTEyNjUyLDkuNjM1MTQwNjkgMTUuMDExMjY1MiwxMC4wNDIxMjkxIEwxNS4wMTEyNjUyLDE0LjIwOTM2OTYgQzE1LjAxNjYyMTQsMTQuMjg4Njc2OSAxNS4wMDkzMDI2LDE0LjM2ODc3NTQgMTQuOTg5MjY1MywxNC40NDY0NTE0IEMxNC45MDg2MDM5LDE0Ljc3MTc5NjkgMTQuNjE1MjYsMTUuMDEyODc4OCAxNC4yNjEyNjUyLDE1LjAxMjg3ODggQzE0LjIxOTcyNDIsMTUuMDEyODc4OCAxNC4xNzg5NzIxLDE1LjAwOTQ1MzMgMTQuMTM5MjY4MywxNS4wMDI4Nzg4IEwxMC4wNDA1MTU0LDE1LjAwMjg3ODggQzkuNjI3NjQzNjIsMTUuMDAyODc4OCA5LjI5Mjk0NDkxLDE0LjY2OTk4MDIgOS4yOTI5NDQ5MSwxNC4yNTI4Nzg4IEM5LjI5Mjk0NDkxLDEzLjgzODY2NTIgOS42MzM1MjcwNCwxMy41MDI4Nzg4IDEwLjA0MDUxNTQsMTMuNTAyODc4OCBMMTIuNDQyMjYwNCwxMy41MDI4Nzg4IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPgogICAgICAgIDwvZz4KICAgIDwvZz4KPC9zdmc+);transform:scale(0.5)}.vjs-ios-skin .vjs-fullscreen-control:active>.vjs-button-icon{transform:scale(0.5) scale(0.88888889)}.vjs-ios-skin .vjs-mouse-display,.vjs-ios-skin .vjs-mouse-display-tooltip{display:none!important}.vjs-ios-skin .vjs-live-control{flex:none;width:auto;font-size:12px}.vjs-ios-skin .vjs-live-display{margin:0}.vjs-ios-skin .vjs-slider{background-color:rgba(255,255,255,.1)}.vjs-ios-skin .vjs-progress-control:hover .vjs-progress-holder{font-size:100%}.vjs-ios-skin .vjs-progress-holder{margin:0}.vjs-ios-skin .vjs-progress-holder,.vjs-ios-skin .vjs-progress-holder>.vjs-load-progress,.vjs-ios-skin .vjs-progress-holder>.vjs-load-progress>div,.vjs-ios-skin .vjs-progress-holder>.vjs-play-progress,.vjs-ios-skin .vjs-progress-holder>.vjs-tooltip-progress-bar{height:5px;border-radius:4.5px}.vjs-ios-skin .vjs-load-progress,.vjs-ios-skin .vjs-load-progress>div{background-color:rgba(255,255,255,.08)}.vjs-ios-skin .vjs-play-progress{min-width:8px;background-color:rgba(255,255,255,.35)}.vjs-ios-skin .vjs-play-progress:before{top:-2px;right:-5px;width:9px;height:9px;border-radius:50%;background-color:#fff;transform:translateX(-50%)}.vjs-ios-skin .vjs-play-progress:after{content:'';display:none!important}.vjs-ios-skin.vjs-ad-playing .vjs-ios-background-tint{display:block!important}.vjs-ios-skin.vjs-ad-playing .vjs-control-bar .ima-countdown-div{left:0}.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar{padding:0 3px}.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar>.vjs-ios-background-tint{opacity:1!important;visibility:visible!important;height:10px;top:-5px}.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-current-time,.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-play-control,.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-remaining-time,.vjs-ios-skin.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-skip-button{display:none}.vjs-ios-skin .videoAdUiPreSkipContainer{bottom:27px;margin-right:6px}.vjs-ios-skin .videoAdUiPreSkipButton{background:rgba(255,255,255,.55);border-radius:8px}"; a("browserify-css").createStyle(d, { href: "src/css/videojs-hola-skin.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 282: [function (a, b, c) { var d = '.ima-ad-container{top:0;position:absolute;display:block;width:100%;height:100%}.video-js.vjs-playing .bumpable-ima-ad-container{margin-top:-50px}.video-js.vjs-user-inactive.vjs-playing .bumpable-ima-ad-container{margin-top:0}.video-js.vjs-paused .bumpable-ima-ad-container,.video-js.vjs-playing:hover .bumpable-ima-ad-container,.video-js.vjs-user-active.vjs-playing .bumpable-ima-ad-container{margin-top:-50px}.vjs-ima-non-linear .vjs-big-play-button,.vjs-ima-non-linear .vjs-control-bar,.vjs-ima-non-linear .vjs-info-overlay,.vjs-ima-non-linear .vjs-menu.vjs-settings-menu,.vjs-ima-non-linear .vjs-modal-overlay{z-index:1112}.ima-controls-div{bottom:0;height:37px;position:absolute;overflow:hidden;display:none;opacity:1;background:-moz-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:-webkit-gradient(linear,left bottom,left top,color-stop(0%,rgba(7,20,30,.7)),color-stop(100%,rgba(7,20,30,0)));background:-webkit-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:-o-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:-ms-linear-gradient(bottom,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);background:linear-gradient(to top,rgba(7,20,30,.7) 0,rgba(7,20,30,0) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=\'#0007141E\', endColorstr=\'#07141E\', GradientType=0)}.ima-countdown-div{height:10px;color:#FFF;text-shadow:0 0 .2em #000;cursor:default}.ima-seek-bar-div{top:12px;height:3px;position:absolute;background:rgba(255,255,255,.4)}.ima-progress-div{width:0;height:3px;background-color:#ECC546}.ima-fullscreen-div,.ima-mute-div,.ima-play-pause-div,.ima-slider-div{width:35px;height:20px;top:11px;left:0;position:absolute;color:#CCC;font-size:1.5em;line-height:2;text-align:center;font-family:VideoJS;cursor:pointer}.ima-mute-div{left:auto;right:85px}.ima-slider-div{left:auto;right:35px;width:50px;height:10px;top:20px;background-color:#555}.ima-slider-level-div{width:100%;height:10px;background-color:#ECC546}.ima-fullscreen-div{left:auto;right:0}.ima-playing:before{content:"\\00f103"}.ima-paused:before{content:"\\00f101"}.ima-paused:hover:before,.ima-playing:hover:before{text-shadow:0 0 1em #fff}.ima-non-muted:before{content:"\\00f107"}.ima-muted:before{content:"\\00f104"}.ima-muted:hover:before,.ima-non-muted:hover:before{text-shadow:0 0 1em #fff}.ima-non-fullscreen:before{content:"\\00f108"}.ima-fullscreen:before{content:"\\00f109"}.ima-fullscreen:hover:before,.ima-non-fullscreen:hover:before{text-shadow:0 0 1em #fff}.video-js.vjs-ad-playing .vjs-control-bar{z-index:1112}.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control{pointer-events:none}.video-js.vjs-ad-playing .vjs-control-bar .vjs-mouse-display-tooltip,.video-js.vjs-ad-playing .vjs-control-bar .vjs-play-progress:before,.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control .vjs-load-progress,.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control .vjs-mouse-display,.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control:before,.video-js.vjs-ad-playing .vjs-control-bar>:not(.vjs-play-control):not(.vjs-volume-menu-button):not(.vjs-time-control):not(.vjs-progress-control):not(.vjs-spacer):not(.vjs-fullscreen-control):not(.vjs-gradient):not(.ima-countdown-div){display:none}.video-js.vjs-ad-playing .vjs-control-bar{transition:height .1s ease}.video-js.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar{opacity:1;height:0}.video-js.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar .vjs-progress-holder{margin:0}.video-js.vjs-ad-playing .vjs-control-bar>:not(.vjs-progress-control):not(.ima-countdown-div){transition:opacity .1s ease,visibility .1s ease}.video-js.vjs-ad-playing .vjs-control-bar>:not(.vjs-progress-control):not(.ima-countdown-div) div{transition:line-height .1s ease}.video-js.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar>:not(.vjs-progress-control):not(.ima-countdown-div){opacity:0;visibility:hidden;overflow:hidden}.video-js.vjs-ad-playing.vjs-user-inactive:not(.vjs-ad-paused) .vjs-control-bar>:not(.vjs-progress-control):not(.ima-countdown-div) div{line-height:.01em}.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control .vjs-thumbnail,.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control .vjs-thumbnail-holder{display:none!important}.video-js.vjs-ad-playing .vjs-control-bar .vjs-progress-control .vjs-progress-holder{cursor:auto;box-shadow:none;font-size:100%;margin:0 1em}.video-js .vjs-control-bar .ima-countdown-div{display:none;z-index:1}.video-js.vjs-ad-playing .vjs-control-bar .ima-countdown-div{display:block;position:absolute;margin-top:-2em;left:2em;font-size:1.2em}.video-js.vjs-disable-fullecreen .ima-fullscreen-div,.video-js.vjs-disable-fullecreen .vjs-fullscreen-control{display:none!important}'; a("browserify-css").createStyle(d, { href: "src/css/videojs-ima.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 283: [function (a, b, c) { var d = ".text-shadow{text-shadow:0 0 2px rgba(0,0,0,.5)}.vjs-ios-skin .vjs-settings-button,.vjs5-hola-skin .vjs-settings-button{order:19}.vjs-ios-skin .vjs-settings-button>.vjs-button-icon,.vjs5-hola-skin .vjs-settings-button>.vjs-button-icon{height:100%;width:3.6em;padding:0;opacity:.9;transition:opacity 200ms ease}.vjs-ios-skin .vjs-settings-button>.vjs-button-icon>svg,.vjs5-hola-skin .vjs-settings-button>.vjs-button-icon>svg{fill:#fff;transform-origin:50% 50%;transition:transform 100ms ease}.vjs-ios-skin .vjs-settings-button[aria-expanded=true]>.vjs-button-icon>svg,.vjs5-hola-skin .vjs-settings-button[aria-expanded=true]>.vjs-button-icon>svg{transform:rotateZ(30deg)}.vjs-ios-skin .vjs-settings-button:hover>.vjs-button-icon,.vjs5-hola-skin .vjs-settings-button:hover>.vjs-button-icon{opacity:1}.vjs-ios-skin .vjs-settings-button.vjs-quality-4k .vjs-button-icon:after,.vjs-ios-skin .vjs-settings-button.vjs-quality-hd .vjs-button-icon:after,.vjs5-hola-skin .vjs-settings-button.vjs-quality-4k .vjs-button-icon:after,.vjs5-hola-skin .vjs-settings-button.vjs-quality-hd .vjs-button-icon:after{content:'';position:absolute;background-color:#f10;width:1.3em;height:.9em;left:1.8em;bottom:1.8em;background-size:contain;background-repeat:no-repeat}.vjs-ios-skin .vjs-settings-button.vjs-quality-hd .vjs-button-icon:after,.vjs5-hola-skin .vjs-settings-button.vjs-quality-hd .vjs-button-icon:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iOXB4IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMyA5IiB3aWR0aD0iMTNweCIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgIDxwYXRoIGQ9Ik01LDcgTDYsNyBMNiw4IEw1LDggTDUsNyBaIE0xMCwzIEwxMCw0IEw4LDQgTDgsMyBMMTAsMyBaIE0zLDYgTDMsNSBMNSw1IEw1LDYgTDMsNiBaIE0yLDcgTDMsNyBMMyw4IEwyLDggTDIsNyBaIE03LDcgTDEwLDcgTDEwLDggTDcsOCBMNyw3IFogTTEwLDYgTDExLDYgTDExLDcgTDEwLDcgTDEwLDYgWiIgZmlsbD0iIzAwMCIgZmlsbC1vcGFjaXR5PSIwLjY0NzEiIGZpbGwtcnVsZT0iZXZlbm9kZCIgLz48cGF0aCBkPSJNNSw3IEw1LDYgTDUsNSBMMyw1IEwzLDYgTDMsNyBMMiw3IEwyLDIgTDMsMiBMMyw0IEw1LDQgTDUsMiBMNiwyIEw2LDcgTDUsNyBaIE0xMSw2IEwxMCw2IEwxMCw3IEw3LDcgTDcsMiBMMTAsMiBMMTAsMyBMMTEsMyBMMTEsNiBaIE0xMCw0IEwxMCwzIEw4LDMgTDgsNCBMOCw2IEwxMCw2IEwxMCw0IFoiLz4KPC9zdmc+)}.vjs-ios-skin .vjs-settings-button.vjs-quality-4k .vjs-button-icon:after,.vjs5-hola-skin .vjs-settings-button.vjs-quality-4k .vjs-button-icon:after{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iOXB4IiB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxMyA5IiB3aWR0aD0iMTNweCIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIj4KICAgIDxwYXRoIGQ9Ik0xMCw0IEwxMSw0IEwxMSw1IEwxMCw1IEwxMCw0IFogTTEwLDcgTDExLDcgTDExLDggTDEwLDggTDEwLDcgWiBNOCw1IEwxMCw1IEwxMCw2IEw4LDYgTDgsNSBaIE03LDcgTDgsNyBMOCw4IEw3LDggTDcsNyBaIE01LDYgTDYsNiBMNiw3IEw1LDcgTDUsNiBaIE00LDcgTDUsNyBMNSw4IEw0LDggTDQsNyBaIE0yLDYgTDQsNiBMNCw3IEwyLDcgTDIsNiBaIE0zLDQgTDQsNCBMNCw1IEwzLDUgTDMsNCBaIiBmaWxsPSIjMDAwIiBmaWxsLW9wYWNpdHk9IjAuNjQ3MSIgZmlsbC1ydWxlPSJldmVub2RkIiAvPjxwYXRoIGQ9Ik0xMSw1IEwxMSw3IEwxMCw3IEwxMCw2IEwxMCw1IEwxMSw1IFogTTEwLDUgTDgsNSBMOCw2IEw4LDcgTDcsNyBMNywyIEw4LDIgTDgsNCBMMTAsNCBMMTAsNSBaIE00LDQgTDMsNCBMMyw1IEw0LDUgTDQsNCBaIE00LDcgTDQsNiBMMiw2IEwyLDQgTDMsNCBMMywzIEw0LDMgTDQsMiBMNSwyIEw1LDUgTDYsNSBMNiw2IEw1LDYgTDUsNyBMNCw3IFogTTEwLDIgTDExLDIgTDExLDQgTDEwLDQgTDEwLDIgWiIvPgo8L3N2Zz4=)}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup,.vjs-ios-skin .vjs-menu.vjs-settings-menu,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup,.vjs5-hola-skin .vjs-menu.vjs-settings-menu{background-color:#1c1c1c;background-color:rgba(28,28,28,.9);white-space:nowrap}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item{color:#eee;font-size:1em;line-height:3.3em;height:3.3em;cursor:pointer;padding:0 3.6em 0 1.5em;clear:both}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item[role=menuitemcheckbox],.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item[role=menuitemcheckbox],.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item[role=menuitemcheckbox],.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item[role=menuitemcheckbox]{padding:0 2.1em 0 3.6em}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item.vjs-selected:focus,.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item.vjs-selected:hover,.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item:focus,.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item:hover,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-selected:focus,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-selected:hover,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item:focus,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item:hover,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item.vjs-selected:focus,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item.vjs-selected:hover,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item:focus,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item:hover,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-selected:focus,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-selected:hover,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item:focus,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item:hover{color:#eee;background-color:#fff;background-color:rgba(255,255,255,.1)}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-label,.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-link,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-label,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-link,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-label,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-link,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-label,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-link{font-size:1.3em;font-weight:500}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-content,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-content,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-content,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-content{font-size:1.2em;float:right;margin-left:3em}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-content .vjs-minor-label,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-content .vjs-minor-label,.vjs5-hola-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item .vjs-menu-item-content .vjs-minor-label,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item .vjs-menu-item-content .vjs-minor-label{padding-left:.2em;color:#ccc;font-size:.92em}.vjs-ios-skin .vjs-menu.vjs-settings-menu,.vjs5-hola-skin .vjs-menu.vjs-settings-menu{position:absolute;width:auto;right:.9em;bottom:4.8em;z-index:4;visibility:hidden;overflow:hidden;opacity:0;transition:opacity 100ms;will-change:width,height}.vjs-ios-skin .vjs-menu.vjs-settings-menu.vjs-size-transition,.vjs5-hola-skin .vjs-menu.vjs-settings-menu.vjs-size-transition{transition:height 200ms,width 200ms}.vjs-ios-skin .vjs-menu.vjs-settings-menu.vjs-lock-showing,.vjs5-hola-skin .vjs-menu.vjs-settings-menu.vjs-lock-showing{visibility:visible;opacity:1}.vjs-ios-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content,.vjs5-hola-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content{position:relative;width:auto;min-width:9em;padding:.5em 0;transition:background 200ms ease;cursor:default;overflow:hidden}.vjs-ios-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar,.vjs5-hola-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar{width:1em;background-color:#4c4c4c}.vjs-ios-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar-track,.vjs5-hola-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar-track{background-color:#4c4c4c}.vjs-ios-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar-thumb,.vjs5-hola-skin .vjs-menu.vjs-settings-menu ::-webkit-scrollbar-thumb{background-color:#8d8d8d;border:1px solid #4c4c4c;border-radius:.5em}.vjs-ios-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content:not(.vjs-active-submenu),.vjs5-hola-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content:not(.vjs-active-submenu){position:fixed;top:0;left:0;visibility:hidden}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-submenu,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-submenu{position:relative;margin:4em 0 0;padding:0;border-top:1px solid rgba(255,255,255,.3);overflow:auto}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu{min-width:18em}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd{padding-right:5.4em}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu>.vjs-menu-submenu,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu>.vjs-menu-submenu{margin-top:0;border-top:0}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-captions-options-submenu,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-captions-options-submenu{min-width:28em}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next{text-align:left;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjQiIHZlcnNpb249IjEuMSIgdmlld0JveD0iMCAwIDMyIDMyIiB3aWR0aD0iMjQiIGZpbGw9IiNGRkZGRkYiPjxwYXRoIGQ9Im0gMTIuNTksMjAuMzQgNC41OCwtNC41OSAtNC41OCwtNC41OSAxLjQxLC0xLjQxIDYsNiAtNiw2IHoiLz48L3N2Zz4=) right .9em center/3.2em no-repeat}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next:focus,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next:hover,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next:focus,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-menu-item-next:hover{background-color:#fff;background-color:rgba(255,255,255,.1)}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd{position:relative}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd:after{position:absolute;font-size:.9em;color:#f10;vertical-align:super;margin-left:.2em;margin-top:-.5em}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after{font-size:.75em;margin-left:.16em;margin-top:-.41em}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-hd .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-hd:after{content:'HD'}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-main-submenu .vjs-menu-item.vjs-quality-4k .vjs-menu-item-content:after,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item.vjs-quality-4k:after{content:'4K'}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-quality-submenu .vjs-menu-item{text-align:right}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-submenu-title,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-submenu-title{position:absolute;top:0;line-height:4.5em;height:4.5em;padding:0 2.1em 0 3.6em;margin-bottom:.2em;text-align:left;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgZmlsbD0iI0ZGRkZGRiIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDMyIDMyIiB3aWR0aD0iMjQiPjxwYXRoIGQ9Ik0gMTkuNDEsMjAuMDkgMTQuODMsMTUuNSAxOS40MSwxMC45MSAxOCw5LjUgbCAtNiw2IDYsNiB6IiAvPjwvc3ZnPg==) left .3em center/3.2em no-repeat}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-submenu-title .vjs-minor-label,.vjs5-hola-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-submenu-title .vjs-minor-label{font-size:1.3em;margin-left:1.3em;text-decoration:underline;display:inline-block;cursor:pointer}.vjs-ios-skin.vjs-settings-expanded .vjs-progress-control:hover .vjs-mouse-display-tooltip,.vjs-ios-skin.vjs-settings-expanded .vjs-thumbnail,.vjs-ios-skin.vjs-settings-expanded .vjs-thumbnail-holder,.vjs-ios-skin.vjs-settings-expanded .vjs-tooltip,.vjs5-hola-skin.vjs-settings-expanded .vjs-progress-control:hover .vjs-mouse-display-tooltip,.vjs5-hola-skin.vjs-settings-expanded .vjs-thumbnail,.vjs5-hola-skin.vjs-settings-expanded .vjs-thumbnail-holder,.vjs5-hola-skin.vjs-settings-expanded .vjs-tooltip{display:none!important}.vjs-ios-skin.vjs-live:not(.vjs-dvr) .vjs-settings-menu,.vjs5-hola-skin.vjs-live:not(.vjs-dvr) .vjs-settings-menu{bottom:3.9em}.vjs-ios-skin .vjs-info-overlay,.vjs5-hola-skin .vjs-info-overlay{-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;background-color:#1c1c1c;background-color:rgba(28,28,28,.9);-webkit-box-shadow:.2em .2em .3em rgba(0,0,0,.5);-moz-box-shadow:.2em .2em .3em rgba(0,0,0,.5);box-shadow:.2em .2em .3em rgba(0,0,0,.5);position:absolute;top:1em;left:1em;z-index:3;display:inline-block;padding:1em;font-size:1.2em}.vjs-ios-skin .vjs-info-overlay.vjs-notify-overlay,.vjs5-hola-skin .vjs-info-overlay.vjs-notify-overlay{bottom:50%;top:auto;z-index:4;margin-bottom:-3em;left:50%;margin-left:-8.5em;opacity:1}.vjs-ios-skin .vjs-info-overlay.vjs-notify-overlay.vjs-notify-flash,.vjs5-hola-skin .vjs-info-overlay.vjs-notify-overlay.vjs-notify-flash{transition:opacity 500ms ease;transition-delay:2500ms;opacity:0}.vjs-ios-skin .vjs-info-overlay-title,.vjs5-hola-skin .vjs-info-overlay-title{margin-bottom:1em;font-size:1.2em}.vjs-ios-skin .vjs-info-overlay-x,.vjs5-hola-skin .vjs-info-overlay-x{position:absolute;top:1em;right:1em;transition:color 200ms ease;cursor:pointer}.vjs-ios-skin .vjs-info-overlay-x:hover,.vjs5-hola-skin .vjs-info-overlay-x:hover{color:#fff}.vjs-ios-skin .vjs-info-overlay-x:after,.vjs5-hola-skin .vjs-info-overlay-x:after{content:'\\00274c'}.vjs-ios-skin .vjs-notify-overlay-title,.vjs5-hola-skin .vjs-notify-overlay-title{margin-bottom:1em;font-size:1.5em}.vjs-ios-skin .vjs-notify-overlay-content,.vjs5-hola-skin .vjs-notify-overlay-content{text-align:center}.vjs-ios-skin .vjs-info-overlay-list,.vjs5-hola-skin .vjs-info-overlay-list{list-style:none;position:relative;margin:0;padding:0}.vjs-ios-skin .vjs-info-overlay-list-item,.vjs5-hola-skin .vjs-info-overlay-list-item{padding:0;margin:0;height:1.6em;line-height:1.6em}.vjs-ios-skin .vjs-info-overlay-list-item strong,.vjs5-hola-skin .vjs-info-overlay-list-item strong{font-weight:500;color:#fff}.vjs-ios-skin .vjs-info-overlay-list-item span,.vjs5-hola-skin .vjs-info-overlay-list-item span{color:#ccc}.vjs-ios-skin .vjs-rightclick-popup,.vjs5-hola-skin .vjs-rightclick-popup{position:absolute;z-index:6;width:auto;padding:.5em 0}.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by,.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by:hover,.vjs5-hola-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by,.vjs5-hola-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by:hover{line-height:4.5em;height:4.5em;padding:0 1em 0 4.3em;border-bottom:1px solid rgba(255,255,255,.3);background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2aWV3Qm94PSIwIDAgNzAgNzAuMDQiPjxkZWZzPjxzdHlsZT4uY2xzLTF7ZmlsbDp1cmwoI3JhZGlhbC1ncmFkaWVudCk7fS5jbHMtMiwuY2xzLTQsLmNscy02e2ZpbGw6I2ViM2EyODt9LmNscy0ye29wYWNpdHk6MC4xO30uY2xzLTIsLmNscy02LC5jbHMtN3tpc29sYXRpb246aXNvbGF0ZTt9LmNscy0zLC5jbHMtNntvcGFjaXR5OjAuMTU7fS5jbHMtNXtmaWxsOiNmZmM4MDA7fS5jbHMtN3tmaWxsOiNmZmY7b3BhY2l0eTowLjI7fS5jbHMtOHtmaWxsOiNmZmI5MDA7fX08L3N0eWxlPjxyYWRpYWxHcmFkaWVudCBpZD0icmFkaWFsLWdyYWRpZW50IiBjeD0iMzUuNyIgY3k9IjQ3Ni40MyIgcj0iMzEuMDgiIGdyYWRpZW50VHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTAuODEgLTQzNy4xNikgc2NhbGUoMC45OSAxKSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZGMwMCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZhMCIvPjwvcmFkaWFsR3JhZGllbnQ+PC9kZWZzPjx0aXRsZT5zcGFya19sb2dvX2JsYWNrPC90aXRsZT48cGF0aCBjbGFzcz0iY2xzLTEiIGQ9Ik0zNSwwYy01LjgsMjAuNS0yNiwyNi4zLTI2LDQzLjlhMjYsMjYsMCwxLDAsNTIsMGgwQzYxLDI2LjM0LDQwLjgsMjAuNTQsMzUsMFoiLz48cGF0aCBjbGFzcz0iY2xzLTIiIGQ9Ik02MSw0My43NEM2MSwyNi4yNCw0MC44LDIwLjQ0LDM1LDBWNzBhMjYuMTQsMjYuMTQsMCwwLDAsMjYtMjYuM1oiLz48cGF0aCBkPSJNNDQuNSw0NGMxLjksMCwzLjUtMi4yLDMuNS01cy0xLjYtNS0zLjUtNVM0MSwzNi4yNCw0MSwzOSw0Mi42LDQ0LDQ0LjUsNDRaIi8+PHBhdGggZD0iTTI1LjUsNDRjMiwwLDMuNS0yLjIsMy41LTVzLTEuNi01LTMuNS01UzIyLDM2LjI0LDIyLDM5LDIzLjcsNDQsMjUuNSw0NFoiLz48ZyBjbGFzcz0iY2xzLTMiPjxlbGxpcHNlIGNsYXNzPSJjbHMtNCIgY3g9IjQ0LjUiIGN5PSI0MC4wNCIgcng9IjMuNSIgcnk9IjUiLz48ZWxsaXBzZSBjbGFzcz0iY2xzLTQiIGN4PSIyNS41IiBjeT0iNDAuMDQiIHJ4PSIzLjUiIHJ5PSI1Ii8+PHBhdGggY2xhc3M9ImNscy00IiBkPSJNNTIsNDVjLTEsMTEtNy45LDE2LjgtMTcsMTctOS0uMi0xNi02LTE3LTE3SDE1YTIwLDIwLDAsMSwwLDQwLDBaIi8+PC9nPjxwYXRoIGQ9Ik01Miw0NGMtMSwxMS03LjksMTYuOC0xNywxNy05LS4yLTE2LTYtMTctMTdIMTVhMjAsMjAsMCwxLDAsNDAsMFoiLz48cmVjdCBjbGFzcz0iY2xzLTUiIHg9IjQ1LjQ3IiB5PSIxLjQ3IiB3aWR0aD0iNy4xIiBoZWlnaHQ9IjcuMSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTAuODEgMzYuMTMpIHJvdGF0ZSgtNDUpIi8+PHJlY3QgY2xhc3M9ImNscy01IiB4PSIxLjMiIHk9IjI2LjM0IiB3aWR0aD0iNi40IiBoZWlnaHQ9IjYuNCIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLTE5LjU3IDExLjgzKSByb3RhdGUoLTQ1KSIvPjxwYXRoIGNsYXNzPSJjbHMtNiIgZD0iTTM1LDY5QzIwLjgsNjksOS40LDU3LjM0LDksNDN2LjhhMjYsMjYsMCwxLDAsNTIsMGgwVjQzQzYwLjYsNTcuMzQsNDkuMiw2OSwzNSw2OVoiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0zNSw0LjQ0YzUuOCwxNiwyNS4zLDIzLjEsMjYsNDB2LS42YzAtMTcuNS0yMC4yLTIzLjMtMjYtNDMuNy01LjgsMjAuMy0yNiwyNi4yLTI2LDQzLjd2LjZDOS43LDI3LjU0LDI5LjIsMjAuNDQsMzUsNC40NFoiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik02MCwyNlY2QTEyLjg1LDEyLjg1LDAsMCwxLDUwLDE2LDEyLjg1LDEyLjg1LDAsMCwxLDYwLDI2WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTYwLDZWMjZBMTMsMTMsMCwwLDEsNzAsMTYsMTMuMTIsMTMuMTIsMCwwLDEsNjAsNloiLz48cGF0aCBjbGFzcz0iY2xzLTUiIGQ9Ik0xMi41LDI1VjBBMTYuMDYsMTYuMDYsMCwwLDEsMCwxMi41NCwxNi4wNiwxNi4wNiwwLDAsMSwxMi41LDI1WiIvPjxwYXRoIGNsYXNzPSJjbHMtOCIgZD0iTTEyLjUsMFYyNUExNi4zMSwxNi4zMSwwLDAsMSwyNSwxMi40NCwxNS45NCwxNS45NCwwLDAsMSwxMi41LDBaIi8+PHBhdGggY2xhc3M9ImNscy0yIiBkPSJNNTAsMTZjNSwwLDksMywxMCw2LDEtMyw1LTYsMTAtNkExMy4xMiwxMy4xMiwwLDAsMCw2MCwyNiwxMi44NSwxMi44NSwwLDAsMCw1MCwxNloiLz48cGF0aCBjbGFzcz0iY2xzLTciIGQ9Ik0yNSwxMi41NEMxOSwxMiwxNCw5LDEyLjUsNSwxMSw5LDYsMTIsMCwxMi41NEExNi4zMywxNi4zMywwLDAsMCwxMi41LDAsMTYuMDYsMTYuMDYsMCwwLDAsMjUsMTIuNTRaIi8+PC9zdmc+) left 1.2em center/2.6em no-repeat;cursor:default}.vjs-ios-skin.vjs-ima-ad .vjs-rightclick-popup,.vjs5-hola-skin.vjs-ima-ad .vjs-rightclick-popup{z-index:1113}.vjs-ios-skin .vjs-menu .vjs-menu-item.vjs-selected,.vjs5-hola-skin .vjs-menu .vjs-menu-item.vjs-selected{background:url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjRkZGRkZGIiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4gICAgPHBhdGggZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIvPiAgICA8cGF0aCBkPSJNOSAxNi4yTDQuOCAxMmwtMS40IDEuNEw5IDE5IDIxIDdsLTEuNC0xLjRMOSAxNi4yeiIvPjwvc3ZnPg==) .8em center/1.5em no-repeat}.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-info-overlay,.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-rightclick-popup,.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-settings-menu,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-info-overlay,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-rightclick-popup,.vjs5-hola-skin.vjs-fullscreen:not(.vjs-small) .vjs-settings-menu{font-size:150%}.vjs-ios-skin .vjs-control-bar .vjs-control.vjs-captions-button,.vjs-ios-skin .vjs-control-bar .vjs-control.vjs-subtitles-button,.vjs5-hola-skin .vjs-control-bar .vjs-control.vjs-captions-button,.vjs5-hola-skin .vjs-control-bar .vjs-control.vjs-subtitles-button{display:none}.vjs-ios-skin .vjs-captions-toggle,.vjs5-hola-skin .vjs-captions-toggle{width:3.6em;margin-right:.4em;order:9;opacity:.9;font-family:VideoJS;cursor:pointer}.vjs-ios-skin .vjs-captions-toggle>.vjs-button-icon,.vjs5-hola-skin .vjs-captions-toggle>.vjs-button-icon{height:100%;width:100%}.vjs-ios-skin .vjs-captions-toggle>.vjs-button-icon>svg,.vjs5-hola-skin .vjs-captions-toggle>.vjs-button-icon>svg{fill:#fff}.vjs-ios-skin .vjs-captions-toggle>.vjs-button-icon:after,.vjs5-hola-skin .vjs-captions-toggle>.vjs-button-icon:after{content:'';position:absolute;bottom:.6em;left:0;right:0;height:.2em;width:0;margin:0 auto;border-radius:.2em;background-color:#00b7f1;transition:width 250ms ease-in-out}.vjs-ios-skin .vjs-captions-toggle.vjs-pressed,.vjs-ios-skin .vjs-captions-toggle:hover,.vjs5-hola-skin .vjs-captions-toggle.vjs-pressed,.vjs5-hola-skin .vjs-captions-toggle:hover{opacity:1}.vjs-ios-skin .vjs-captions-toggle.vjs-pressed>.vjs-button-icon:after,.vjs5-hola-skin .vjs-captions-toggle.vjs-pressed>.vjs-button-icon:after{width:2em}.vjs-ios-skin .vjs-text-track-display>div>div>div,.vjs5-hola-skin .vjs-text-track-display>div>div>div{padding:1px .3em;border-radius:.1em;-webkit-box-decoration-break:clone;box-decoration-break:clone}.vjs-ios-skin .vjs-text-track-display svg,.vjs5-hola-skin .vjs-text-track-display svg{fill:#fff;height:1em;width:1em;vertical-align:bottom}.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-info-overlay,.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-rightclick-popup,.vjs-ios-skin.vjs-fullscreen:not(.vjs-small) .vjs-settings-menu{font-size:100%}.vjs-ios-skin .vjs-settings-button{width:23px}.vjs-ios-skin .vjs-settings-button>.vjs-button-icon{width:100%;height:100%;padding:0}.vjs-ios-skin .vjs-settings-button>.vjs-button-icon>svg{width:100%;height:100%;transform:scale(1.2)}.vjs-ios-skin .vjs-settings-button>.vjs-button-icon>svg>path{fill:rgba(255,255,255,.75)}.vjs-ios-skin .vjs-settings-button:active>.vjs-button-icon,.vjs-ios-skin[aria-expanded=true]>.vjs-button-icon>svg{transform:rotateZ(30deg) scale(1.2) scale(0.88888889)}.vjs-ios-skin .vjs-settings-button>.vjs-menu{left:auto;right:-9px;display:block;visibility:hidden;opacity:0;transition:visibility .5s,opacity .5s}.vjs-ios-skin .vjs-lock-showing.vjs-menu,.vjs-ios-skin .vjs-lock-showing>.vjs-menu{visibility:visible;opacity:1;transition:visibility .1s,opacity .1s}.vjs-ios-skin .vjs-menu-item.vjs-submenu-title,.vjs-ios-skin .vjs-menu.vjs-rightclick-popup .vjs-menu-item,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item,.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-item.vjs-submenu-title{height:31px;line-height:31px;padding-top:0;padding-bottom:0}.vjs-ios-skin .vjs-menu.vjs-rightclick-popup,.vjs-ios-skin .vjs-menu.vjs-settings-menu{background:0 0}.vjs-ios-skin .vjs-rightclick-popup{padding:0}.vjs-ios-skin .vjs-rightclick-popup,.vjs-ios-skin .vjs-rightclick-popup:after,.vjs-ios-skin .vjs-rightclick-popup:before{background:0 0;box-shadow:none}.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item,.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by,.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by:hover,.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item:hover{background-color:transparent}.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by,.vjs-ios-skin .vjs-rightclick-popup .vjs-menu-item.vjs-powered-by:hover{height:45px;line-height:45px}.vjs-ios-skin .vjs-menu.vjs-settings-menu{right:6px;bottom:40px}.vjs-ios-skin .vjs-menu.vjs-settings-menu .vjs-menu-submenu{margin-top:31px}.vjs-ios-skin .vjs-picker-wrapper{position:relative;height:100%;width:100%;display:flex;align-items:center}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper{margin-top:31px;border-top:1px solid rgba(255,255,255,.3);overflow:hidden}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container{position:relative;display:block;width:100%;height:31px;border:1px solid transparent;border-left:none;border-right:none;overflow:visible;-webkit-perspective:1100px;perspective:1100px;transition:border .2s}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu{position:relative;margin:0;top:0;left:0;height:100%;width:100%;border-top:0;overflow:visible;transform-style:preserve-3d;-webkit-transform-style:preserve-3d}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item{position:absolute;left:0;top:0;width:100%;opacity:.5;color:rgba(255,255,255,.55);-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-tap-highlight-color:transparent}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item.vjs-selected:focus,.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item.vjs-selected:hover,.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item:focus,.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item:hover{background:0 0}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item[role=menuitemcheckbox]{padding:0 2.1em}.vjs-ios-skin .vjs-picker>.vjs-picker-wrapper>.vjs-picker-container>.vjs-menu-submenu>.vjs-menu-item.vjs-selected{background:0 0;opacity:1;color:rgba(255,255,255,.75)}.vjs-ios-skin .vjs-rotate-transition .vjs-menu-submenu{transition:transform .2s linear}.vjs-ios-skin .vjs-rotate-transition>.vjs-picker-wrapper>.vjs-picker-container{border-color:rgba(255,255,255,.3)}.vjs-ios-skin .vjs-info-overlay{left:60px;top:50px;background:0 0;box-shadow:none}.vjs-ios-skin .vjs-info-overlay>.vjs-info-overlay-x{position:absolute}.vjs-ios-skin .vjs-control>.vjs-menu>.vjs-menu-content,.vjs-ios-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content,.vjs-ios-skin .vjs-menu.vjs-settings-menu>.vjs-menu-content:not(.vjs-active-submenu){padding:0;top:auto}.vjs-ios-skin .vjs-menu>.vjs-menu-content .vjs-menu-submenu::-webkit-scrollbar,.vjs-ios-skin .vjs-menu>.vjs-menu-content::-webkit-scrollbar{width:0;background-color:transparent}.vjs-ios-skin .vjs-menu>.vjs-menu-content .vjs-menu-submenu::-webkit-scrollbar-track,.vjs-ios-skin .vjs-menu>.vjs-menu-content::-webkit-scrollbar-track{background-color:transparent}.vjs-ios-skin .vjs-menu>.vjs-menu-content .vjs-menu-submenu::-webkit-scrollbar-thumb,.vjs-ios-skin .vjs-menu>.vjs-menu-content::-webkit-scrollbar-thumb{background-color:transparent;border:none;border-radius:0}"; a("browserify-css").createStyle(d, { href: "src/css/videojs-settings.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 284: [function (a, b, c) { var d = ".video-js .vjs-thumbnail-holder{position:absolute;display:none;overflow:hidden;outline:#2a2a2b solid 2px}.video-js .vjs-thumbnail-holder .vjs-thumbnail{position:relative;left:0;bottom:1.3em;opacity:0;padding:0!important;border:0!important;max-width:none!important;max-height:none!important;transition:opacity .2s ease;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;-mz-transition:opacity .2s ease}.vjs-progress-control.fake-active .vjs-thumbnail,.vjs-progress-control:active .vjs-thumbnail,.vjs-progress-control:hover .vjs-thumbnail{opacity:1}.vjs-progress-control:active .vjs-thumbnail:active,.vjs-progress-control:hover .vjs-thumbnail:hover{opacity:0}"; a("browserify-css").createStyle(d, { href: "src/css/videojs-thumbnails.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 285: [function (a, b, c) { var d = ".video-js.vjs-watermark{display:block}.video-js .vjs-watermark-content{opacity:.99;position:absolute;padding:5px;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-ms-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js .vjs-watermark-top-right{right:0;top:0}.video-js .vjs-watermark-top-left{left:0;top:0}.video-js .vjs-watermark-bottom-right{right:0;bottom:30px}.video-js .vjs-watermark-bottom-left{left:0;bottom:30px}.video-js.vjs-user-inactive.vjs-playing .vjs-watermark-fade{opacity:0}"; a("browserify-css").createStyle(d, { href: "src/css/videojs-watermark.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 286: [function (a, b, c) { var d = '.video-js .vjs-big-play-button:before,.video-js .vjs-control:before,.video-js .vjs-modal-dialog,.vjs-modal-dialog .vjs-modal-dialog-content{position:absolute;top:0;left:0;width:100%;height:100%}.video-js .vjs-big-play-button:before,.video-js .vjs-control:before{text-align:center}@font-face{font-family:VideoJS;src:url(node_modules/video.js/dist/font/VideoJS.eot?#iefix) format("eot")}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAA54AAoAAAAAFmgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAA9AAAAD4AAABWUZFeBWNtYXAAAAE0AAAAOgAAAUriMBC2Z2x5ZgAAAXAAAAouAAAPUFvx6AdoZWFkAAALoAAAACsAAAA2DIPpX2hoZWEAAAvMAAAAGAAAACQOogcgaG10eAAAC+QAAAAPAAAAfNkAAABsb2NhAAAL9AAAAEAAAABAMMg06m1heHAAAAw0AAAAHwAAACABMAB5bmFtZQAADFQAAAElAAACCtXH9aBwb3N0AAANfAAAAPwAAAGBZkSN43icY2BkZ2CcwMDKwMFSyPKMgYHhF4RmjmEIZzzHwMDEwMrMgBUEpLmmMDh8ZPwoxw7iLmSHCDOCCADvEAo+AAB4nGNgYGBmgGAZBkYGEHAB8hjBfBYGDSDNBqQZGZgYGD7K/f8PUvCREUTzM0DVAwEjG8OIBwCPdwbVAAB4nI1Xe1CU1xX/zv1eLItLln0JwrIfC7sJGET2hRJ2N1GUoBJE8AESQEEhmBHjaB7UuBMTO4GMaSu7aY3RNlOdRPNqO2pqRmuTaSZtR6JJILUZk00a/4imjpmiecB303O/XUgMJOPufvd+99xzzz33nN855y4HHH7EfrGfIxwHRiANvF/sH71I9BzHszmpW+rGOQOXxXE6YhI4PoMT8zkT4cDFuf1cwMrZJI5cglM0HKVv0MaUFDgIFfg9mJJCG+kbKn1JkqBOVaFOkuhLpARq8fu0Nnc9/zdvfY9PxXW4PdH0C6N+PCejhorxFjAqRjgFRXSINEARbBGsoxcFK7IJmr4OycFJnInL59zIXwxui80fkGRbEHyosMWaATJKUfCskmwJQsAWANkmnIGOhlf514h7U8HNIv3owoHB0WMt0Eb3sx0guLi5pq/8Ny1q6969fKR9X9GBV6dPv6dp04K99SOwtmyPl47ApRa6n4ZpP1yjr5fn7MmYP/vXLUJs715UguklHBaHOZHZmG1N9FAIW2mf0MqWCIdo/8RZ1yGfxKUldDcGIbFA7ICO+vqOMSPTh/ZrSqgHi/bB/O8E8Mnzp+M+acxfpsTShBwej26TiGxBn7m4eEIO+Rueu6Hj+IFBnh88cAEUEQ//nVLx5C7kf+yIR47QEe+eMlhz9SqsGbe3hh2R03NGzoY6O42Kz8l7fB6fAk6LYnTyFo/FYyT6GGyNx2Jx2sdH4rA1Fo/HyCXaFyOp8dhYBCfJb2NIn1ImE6CYNGmgSTb52DawJR6jfXEmDU4xyTEmpgHHOIStoxfjSGdkbsK2w2jbdMQG4sgAstEONgURYCwGHhEhhscioQaAhhCf7McifEQc0l6+mxj9nI+gmSdiQ0Zbm7gZnIO7GSMEXG6UDAVocxAV8GcEXCKg1a02RcTtwANWRGIAyElor6n/+ZU2yOB3+T77Hb1MLqhn4KHVnQBjJnqe9QZSon6Kc5DxAD2vMdPL/BXSmQGwspa67z9wLUjdi9TN7QC7lyyBr9rpt7uXVC1CMpyjKRoXnGPHTuiaPLsNdc2dbAFQLAooPkXEh33FodHl4XpC6sPCIa0ftUIhHSYXVSu5iME+DIXsbZJ51BeidCgajcai43jU9nVzoSn2dPqcFvSoxSzJzgRKAx47WMRxOrIj3Wf0+hndxhJTiOkSEqxar3b3RKM9hY64oxBA64ieURLvCfpkDb8siBdUJ1bgT+urJ5PGfewQrmm5R5+0HmfyIPySD7OYkT0WxRePah8oEiyjlxIP74thVoRTURpmL6QhGuWS+QDjdANXjIM8SQa/1w128ODx0Qp4aLMNg9+JL3joUn8AMxW+aLNiuKjarn4uyyTdXjOzZTsh21uwldUvJoYza+zELALfu3p1L8/3krtyZ0Ag058J3hxHghvbGZn0dHZy6Mim/7Blre4lpHd1c28yVqRViO153F2oIWoXCIKbL4Z0cM1iaQn9mI5KuV2SzEvWXJDMNtkANpMdQoDDhIdD4A/YrP6Aye9ysxyE+uOEAcTDorgvVZJjcua043PnZ/PmdDqcbibZlXOOT8uSo7Kof0YUn9GL+Jo17ficymxiTofC6znUso0DhAxs1Fo+kF+d36vLmgZ8mk5cdGv2mwYj5k3Dm9m3LhJ1aVRNm6HrTbLgYAoWXDhDd/u4PGy5CT+xGMdiaBovewUCF/1BiWNljI9MLn7jeScpg+WyH6mfU62eVDql7hsrmvx1ezp/YldE2LhjbkiDnAn8tGy/MW3IXRMYJduvq9HpmIcKuFt+JCtgdGEGKAcF6UacVwIYbVPGfw/+YuNBS4cx/CUHcnyfc+wRDMtTr72mMSBjT/yn/GKSdeDWQUCH6Xoqq5R10RE60gV6erUL0iCti16d0hZjxut4QI/rEpgSh6WjnJXdBXRg1GKCucGJPtFqM27aD1tOqqKonsQ2KsFSSmEpmvRlsR+TcD9OFwrqXxIclL4sJTnGMSuG8KpkZvKdeVIOKDyWSyPLV16/p1QMPbP8NihwUzr47bdnXtwtjdCvqqpO0H+pOvIl3Pzv46e5CT/tQjklXCXXym1AaWY7bzHLkuDMc7ldKCvgxzLn8wYkJLBhEDyK7MT8bTbwbkxbfp+3mKAGsmTBpabSIEECzMIcQlzOPAMKsxMs7uhsnxPLuofPDTc1hkuq6MX9j16YU7CqegcYHbmWYuvAP6tCS97tgWf7dlQvnl25YPavXLVZvrzQPeHCpZmzzEUVq/xzu5sChnSTPTW7oOYmh69z4zL/gk3b+O6hoa733uviP82vnFcbqWlc9tDmZa23LVzaV1yXURi+JX+28NeBuj3+O8IrQ080Vm1eWB4OKjPmrJu7c1udWynvKF6/vs479lSW9+5gZkn+dKfellNGDPllzeULustz+A0bPvhgw7lkvEUwn/N4Ty7U7nhGsEpFkOfy+kutbOh1JQxhVDJumoW11hnkPThznh6FFlhfT+ra1x9sF56kx5YuDzVY9PQYAYA7iblw4frQ4TPCk2MK/xGU3rlmze62trHz6lsko+v+So/do74PT8KVkpJfOErKcv8znrMGsHTNxoEkWy1mYgDB6XBbPaWsuiS6CryGaL6zCjaXBgvtkuyXBua1wOKnh+k7L9AvPnYWffxK18FcJbuosGf3/Jo7amY+CE1vppzY+UTrva0FXc1i55pKQ/YjVL187N5fCn1kW5uot/1hi+DiZ+5atnJR9E+prvydJ9ZZ5mwOpU5gM4KYysMBQ71UzPuMTl9QQOyUo5nwioeYCPjFklrbK6s6X+ypUZ6rum9+CZYzWRiBJfSP0xzzSmrg7f86g0DKVj/wwFzieD9rRfPGFbeKMl05pn5j9/rsQJJ2iEgRrpohlyBo3f4QK7Kl+EcAYZgAoNVmZWXK704YAa3FwBxgSGUOs5htvGRz4Sgj3yFkSJFBuv/sxu5yk998T8WDJzvv/2RX19HtTUW1S+wpKRKRjJ6zzz/1/OPdFdWGlAKbvzS4PHOtURikg9AGz0LbIB85S/cPOpoXvuue8/iV2H1vPTy3ddvOeZ37HGmO3OmSzVzR+NS53+84dHlFhXPLqtzSO+5ruHM2vXtBdxP87LOzKAD359j/INYIbyPabIi3Cq6Wa+SaGe78diIzu7qcblcAa6/fJRvNopXFJnO+U9KKM5bqH5LM0iQSVmpPCPDu7ZT4Aoubz3709EBTyrTDjyx8MQXgUH1nqm7TWng4TzE4i4AsKskBITXfSyC4Fkl5MxnJDiKSIDSJAsGvd1y+/eNDp2e+A+5d8HeiiunrTkT6TqWLIs+/QRoWr98s0qj8uuzLuS22Ytufg3rdTaHn1m46sfgGKHXt0MGnLaRHdnwN37tvHcWKo2V6lnPxL4UvUQcRdOzmZSQs8X5CH5OxXMXpkATuDz8Et0SH4uyCRR+TjmBDP1GvsVrWEGVzEj33YVQ9jAtIKpqsl/s/0xrocwAAeJxjYGRgYADig3cEzsTz23xl4GZnAIHLRucNkWl2BrA4BwMTiAIAF4IITwB4nGNgZGBgZwCChWASxGZkQAXyABOUANh4nGNnYGBgHyAMADa8ANoAAAAAAAAOAFAAZgCyAMYA5gEeAUgBdAGcAfICLgKOAroDCgOOA7AD6gQ4BHwEuAToBQwFogXoBjYGbAbaB3IHqHicY2BkYGCQZ8hlYGcAASYg5gJCBob/YD4DABbVAaoAeJxdkE1qg0AYhl8Tk9AIoVDaVSmzahcF87PMARLIMoFAl0ZHY1BHdBJIT9AT9AQ9RQ9Qeqy+yteNMzDzfM+88w0K4BY/cNAMB6N2bUaPPBLukybCLvleeAAPj8JD+hfhMV7hC3u4wxs7OO4NzQSZcI/8Ltwnfwi75E/hAR7wJTyk/xYeY49fYQ/PztM+jbTZ7LY6OWdBJdX/pqs6NYWa+zMxa13oKrA6Uoerqi/JwtpYxZXJ1coUVmeZUWVlTjq0/tHacjmdxuL90OR8O0UEDYMNdtiSEpz5XQGqzlm30kzUdAYFFOb8R7NOZk0q2lwAyz1i7oAr1xoXvrOgtYhZx8wY5KRV269JZ5yGpmzPTjQhvY9je6vEElPOuJP3mWKnP5M3V+YAAAB4nG2P2XLCMAxFfYFspGUp3Te+IB9lHJF4cOzUS2n/voaEGR6qB+lKo+WITdhga/a/bRnDBFPMkCBFhhwF5ihxg1sssMQKa9xhg3s84BFPeMYLXvGGd3zgE9tZr/hveXKVkFYoSnoeHJXfRoWOqi54mo9ameNFdrK+dLSyaVf7oJQTlkhXpD3Z5XXhR/rUfQVuKXO91Jps4cLOS6/I5YL3XhodRRsVWZe4NnZOhWnSAWgxhMoEr6SmzZieF43Mk7ZOBdeCVGrp9Eu+54J2xhySplfB5XHwQLXUmT9KH6+kPnQ7ZYuIEzNyfs1DLU1VU4SWZ6LkXGHsD1ZKbMw=) format("woff"),url(data:application/x-font-ttf;charset=utf-8;base64,AAEAAAAKAIAAAwAgT1MvMlGRXgUAAAEoAAAAVmNtYXDiMBC2AAAB/AAAAUpnbHlmW/HoBwAAA4gAAA9QaGVhZAyD6V8AAADQAAAANmhoZWEOogcgAAAArAAAACRobXR42QAAAAAAAYAAAAB8bG9jYTDINOoAAANIAAAAQG1heHABMAB5AAABCAAAACBuYW1l1cf1oAAAEtgAAAIKcG9zdGZEjeMAABTkAAABgQABAAAHAAAAAKEHAAAAAAAHAAABAAAAAAAAAAAAAAAAAAAAHwABAAAAAQAAwdxheF8PPPUACwcAAAAAANMyzzEAAAAA0zLPMQAAAAAHAAcAAAAACAACAAAAAAAAAAEAAAAfAG0ABwAAAAAAAgAAAAoACgAAAP8AAAAAAAAAAQcAAZAABQAIBHEE5gAAAPoEcQTmAAADXABXAc4AAAIABQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUGZFZABA8QHxHgcAAAAAoQcAAAAAAAABAAAAAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAAAAAMAAAADAAAAHAABAAAAAABEAAMAAQAAABwABAAoAAAABgAEAAEAAgAA8R7//wAAAADxAf//AAAPAAABAAAAAAAAAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAFAAZgCyAMYA5gEeAUgBdAGcAfICLgKOAroDCgOOA7AD6gQ4BHwEuAToBQwFogXoBjYGbAbaB3IHqAABAAAAAAWLBYsAAgAAAREBAlUDNgWL++oCCwAAAwAAAAAGawZrAAIADgAaAAAJAhMEAAMSAAUkABMCAAEmACc2ADcWABcGAALrAcD+QJX+w/5aCAgBpgE9AT0BpggI/lr+w/3+rgYGAVL9/QFSBgb+rgIwAVABUAGbCP5a/sP+w/5aCAgBpgE9AT0BpvrIBgFS/f0BUgYG/q79/f6uAAAAAgAAAAAFQAWLAAMABwAAASERKQERIREBwAEr/tUCVQErAXUEFvvqBBYAAAAEAAAAAAYgBiAABgATACQAJwAAAS4BJxUXNjcGBxc+ATUmACcVFhIBBwEhESEBEQEGBxU+ATcXNwEHFwTQAWVVuAO7AidxJSgF/t/lpc77t18BYf6fASsBdQE+TF1OijuZX/1gnJwDgGSeK6W4GBhqW3FGnFT0AWM4mjT+9AHrX/6f/kD+iwH2/sI7HZoSRDGYXwSWnJwAAAEAAAAABKsF1gAFAAABESEBEQECCwEqAXb+igRg/kD+iwSq/osAAAACAAAAAAVmBdYABgAMAAABLgEnET4BAREhAREBBWUBZVRUZfwRASsBdf6LA4Bkniv9piueAUT+QP6LBKr+iwAAAwAAAAAGIAYPAAUADAAaAAATESEBEQEFLgEnET4BAxUWEhcGAgcVNgA3JgDgASsBdf6LAsUBZVVVZbqlzgMDzqXlASEFBf7fBGD+QP6LBKr+i+Bkniv9piueAvOaNP70tbX+9DSaOAFi9fUBYgAAAAQAAAAABYsFiwAFAAsAEQAXAAABIxEhNSMDMzUzNSEBIxUhESMDFTMVMxECC5YBduCWluD+igOA4AF2luDglgLr/oqWAgrglvyAlgF2AqCW4AF2AAQAAAAABYsFiwAFAAsAEQAXAAABMxUzESETIxUhESMBMzUzNSETNSMRITUBdeCW/org4AF2lgHAluD+ipaWAXYCVeABdgHAlgF2++rglgHA4P6KlgAAAAACAAAAAAXWBdYADwATAAABIQ4BBxEeARchPgE3ES4BAyERIQVA/IA/VQEBVT8DgD9VAQFVP/yAA4AF1QFVP/yAP1UBAVU/A4A/VfvsA4AAAAYAAAAABmsGawAHAAwAEwAbACAAKAAACQEmJw4BBwElLgEnAQUhATYSNyYFAQYCBxYXIQUeARcBMwEWFz4BNwECvgFkTlSH8GEBEgOONemh/u4C5f3QAXpcaAEB/BP+3VxoAQEOAjD95DXpoQESeP7dTlSH8GH+7gPwAmgSAQFYUP4nd6X2Pv4nS/1zZAEBk01NAfhk/v+TTUhLpfY+Adn+CBIBAVhQAdkAAAAFAAAAAAZrBdYADwATABcAGwAfAAABIQ4BBxEeARchPgE3ES4BASEVIQEhNSEFITUhNSE1IQXV+1ZAVAICVEAEqkBUAgJU+xYBKv7WAur9FgLqAcD+1gEq/RYC6gXVAVU//IA/VQEBVT8DgD9V/ayV/tWVlZWWlQADAAAAAAYgBdYADwAnAD8AAAEhDgEHER4BFyE+ATcRLgEBIzUjFTM1MxUUBgcjLgEnET4BNzMeARUFIzUjFTM1MxUOAQcjLgE1ETQ2NzMeARcFi/vqP1QCAlQ/BBY/VAICVP1rcJWVcCog4CAqAQEqIOAgKgILcJWVcAEqIOAgKiog4CAqAQXVAVU//IA/VQEBVT8DgD9V/fcl4CVKICoBASogASogKgEBKiBKJeAlSiAqAQEqIAEqICoBASogAAAGAAAAAAYgBPYAAwAHAAsADwATABcAABMzNSMRMzUjETM1IwEhNSERITUhERUhNeCVlZWVlZUBKwQV++sEFfvrBBUDNZb+QJUBwJX+QJb+QJUCVZWVAAAAAQAAAAAGIAZsAC4AAAEiBgcBNjQnAR4BMz4BNy4BJw4BBxQXAS4BIw4BBx4BFzI2NwEGBx4BFz4BNy4BBUArSh797AcHAg8eTixffwICf19ffwIH/fEeTixffwICf18sTh4CFAUBA3tcXHsDA3sCTx8bATcZNhkBNB0gAn9fX38CAn9fGxn+zRwgAn9fX38CIBz+yhcaXHsCAntcXXsAAAIAAAAABlkGawBDAE8AAAE2NCc3PgEnAy4BDwEmLwEuASchDgEPAQYHJyYGBwMGFh8BBhQXBw4BFxMeAT8BFh8BHgEXIT4BPwE2NxcWNjcTNiYnBS4BJz4BNx4BFw4BBasFBZ4KBgeWBxkNujpEHAMUD/7WDxQCHEU5ug0aB5UHBQudBQWdCwUHlQcaDbo5RRwCFA8BKg8UAhxFOboNGgeVBwUL/ThvlAIClG9vlAIClAM3JEokewkaDQEDDAkFSy0cxg4RAQERDsYcLUsFCQz+/QwbCXskSiR7CRoN/v0MCQVLLRzGDhEBAREOxhwtSwUJDAEDDBsJQQKUb2+UAgKUb2+UAAAAAAEAAAAABmsGawALAAATEgAFJAATAgAlBACVCAGmAT0BPQGmCAj+Wv7D/sP+WgOA/sP+WggIAaYBPQE9AaYICP5aAAAAAgAAAAAGawZrAAsAFwAAAQQAAxIABSQAEwIAASYAJzYANxYAFwYAA4D+w/5aCAgBpgE9AT0BpggI/lr+w/3+rgYGAVL9/QFSBgb+rgZrCP5a/sP+w/5aCAgBpgE9AT0BpvrIBgFS/f0BUgYG/q79/f6uAAADAAAAAAZrBmsACwAXACMAAAEEAAMSAAUkABMCAAEmACc2ADcWABcGAAMOAQcuASc+ATceAQOA/sP+WggIAaYBPQE9AaYICP5a/sP9/q4GBgFS/f0BUgYG/q4dAn9fX38CAn9fX38Gawj+Wv7D/sP+WggIAaYBPQE9Aab6yAYBUv39AVIGBv6u/f3+rgJPX38CAn9fX38CAn8AAAAEAAAAAAYgBiAADwAbACUAKQAAASEOAQcRHgEXIT4BNxEuAQEjNSMVIxEzFTM1OwEhHgEXEQ4BByE3MzUjBYv76j9UAgJUPwQWP1QCAlT9a3CVcHCVcJYBKiAqAQEqIP7WcJWVBiACVD/76j9UAgJUPwQWP1T8gpWVAcC7uwEqIP7WICoBcOAAAgAAAAAGawZrAAsAFwAAAQQAAxIABSQAEwIAEwcJAScJATcJARcBA4D+w/5aCAgBpgE9AT0BpggI/lo4af70/vRpAQv+9WkBDAEMaf71BmsI/lr+w/7D/loICAGmAT0BPQGm/BFpAQv+9WkBDAEMaf71AQtp/vQAAQAAAAAF1ga2ABYAAAERCQERHgEXDgEHLgEnIxYAFzYANyYAA4D+iwF1vv0FBf2+vv0FlQYBUf7+AVEGBv6vBYsBKv6L/osBKgT9v779BQX9vv7+rwYGAVH+/gFRAAAAAQAAAAAFPwcAABQAAAERIyIGHQEhAyMRIREjETM1NDYzMgU/nVY8ASUn/v7O///QrZMG9P74SEi9/tj9CQL3ASjaus0AAAAABAAAAAAGjgcAADAARQBgAGwAAAEUHgMVFAcGBCMiJicmNTQ2NzYlLgE1NDcGIyImNTQ2Nz4BMyEHIx4BFRQOAycyNjc2NTQuAiMiBgcGFRQeAxMyPgI1NC4BLwEmLwImIyIOAxUUHgIBMxUjFSM1IzUzNTMDH0BbWkAwSP7qn4TlOSVZSoMBESAfFS4WlMtIP03TcAGiioNKTDFFRjGSJlAaNSI/akAqURkvFCs9WTY6a1s3Dg8THgocJU4QIDVob1M2RnF9A2vV1WnU1GkD5CRFQ1CATlpTenNTYDxHUYouUhIqQCkkMQTBlFKaNkJAWD+MWkhzRztAPiEbOWY6hn1SJyE7ZS5nZ1I0/JcaNF4+GTAkGCMLFx04Ag4kOF07Rms7HQNsbNvbbNkAAwAAAAAGgAZsAAMADgAqAAABESERARYGKwEiJjQ2MhYBESERNCYjIgYHBhURIRIQLwEhFSM+AzMyFgHd/rYBXwFnVAJSZGemZASP/rdRVj9VFQv+twIBAQFJAhQqR2c/q9AEj/whA98BMkliYpNhYfzd/cgCEml3RTMeM/3XAY8B8DAwkCAwOB/jAAABAAAAAAaUBgAAMQAAAQYHFhUUAg4BBCMgJxYzMjcuAScWMzI3LgE9ARYXLgE1NDcWBBcmNTQ2MzIXNjcGBzYGlENfAUyb1v7SrP7x4SMr4bBpph8hHCsqcJNETkJOLHkBW8YIvYaMYG1gJWldBWhiRQ4cgv797rdtkQSKAn1hBQsXsXUEJgMsjlNYS5WzCiYkhr1mFTlzPwoAAAABAAAAAAWABwAAIgAAARcOAQcGLgM1ESM1PgQ3PgE7AREhFSERFB4CNzYFMFAXsFlorXBOIahIckQwFAUBBwT0AU3+sg0gQzBOAc/tIz4BAjhceHg6AiDXGlddb1ctBQf+WPz9+h40NR4BAgABAAAAAAaABoAASgAAARQCBCMiJzY/AR4BMzI+ATU0LgEjIg4DFRQWFxY/ATY3NicmNTQ2MzIWFRQGIyImNz4CNTQmIyIGFRQXAwYXJgI1NBIkIAQSBoDO/p/Rb2s7EzYUaj15vmh34o5ptn9bK1BNHggIBgIGETPRqZepiWs9Sg4IJRc2Mj5WGWMRBM7+zgFhAaIBYc4DgNH+n84gXUfTJzmJ8JZyyH46YH2GQ2ieIAwgHxgGFxQ9WpfZpIOq7lc9I3VZHzJCclVJMf5eRmtbAXzp0QFhzs7+nwAABwAAAAAHAATPAA4AFwAqAD0AUABaAF0AAAERNh4CBw4BBwYmIycmNxY2NzYmBxEUBRY2Nz4BNy4BJyMGHwEeARcOARcWNjc+ATcuAScjBh8BHgEXFAYXFjY3PgE3LgEnIwYfAR4BFw4BBTM/ARUzESMGAyUVJwMchM2UWwgNq4JHrQgBAapUaAoJcWMBfiIhDiMrAQJLMB0BBAokNAIBPmMiIQ4iLAECSzAeAQUKJDQBP2MiIQ4iLAECSzAeAQUKJDQBAT75g+5B4arNLNIBJ44ByQL9BQ9mvYCKwA8FBQMDwwJVTGdzBf6VB8IHNR08lld9uT4LCRA/qGNxvUwHNR08lld9uT4LCRA/qGNxvUwHNR08lld9uT4LCRA/qGNxvVJkAWUDDEf+tYP5AQAAAAEAAAAABiAGtgAbAAABBAADER4BFzMRITU2ADcWABcVIREzPgE3EQIAA4D+4v6FBwJ/X+D+1QYBJ97eAScG/tXgX38CB/6FBrUH/oX+4v32X38CAlWV3gEnBgb+2d6V/asCf18CCgEeAXsAAAAAEADGAAEAAAAAAAEABwAAAAEAAAAAAAIABwAHAAEAAAAAAAMABwAOAAEAAAAAAAQABwAVAAEAAAAAAAUACwAcAAEAAAAAAAYABwAnAAEAAAAAAAoAKwAuAAEAAAAAAAsAEwBZAAMAAQQJAAEADgBsAAMAAQQJAAIADgB6AAMAAQQJAAMADgCIAAMAAQQJAAQADgCWAAMAAQQJAAUAFgCkAAMAAQQJAAYADgC6AAMAAQQJAAoAVgDIAAMAAQQJAAsAJgEeVmlkZW9KU1JlZ3VsYXJWaWRlb0pTVmlkZW9KU1ZlcnNpb24gMS4wVmlkZW9KU0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAFYAaQBkAGUAbwBKAFMAUgBlAGcAdQBsAGEAcgBWAGkAZABlAG8ASgBTAFYAaQBkAGUAbwBKAFMAVgBlAHIAcwBpAG8AbgAgADEALgAwAFYAaQBkAGUAbwBKAFMARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAgAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAAABAgEDAQQBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMBFAEVARYBFwEYARkBGgEbARwBHQEeAR8EcGxheQtwbGF5LWNpcmNsZQVwYXVzZQt2b2x1bWUtbXV0ZQp2b2x1bWUtbG93CnZvbHVtZS1taWQLdm9sdW1lLWhpZ2gQZnVsbHNjcmVlbi1lbnRlcg9mdWxsc2NyZWVuLWV4aXQGc3F1YXJlB3NwaW5uZXIJc3VidGl0bGVzCGNhcHRpb25zCGNoYXB0ZXJzBXNoYXJlA2NvZwZjaXJjbGUOY2lyY2xlLW91dGxpbmUTY2lyY2xlLWlubmVyLWNpcmNsZQJoZAZjYW5jZWwGcmVwbGF5CGZhY2Vib29rBWdwbHVzCGxpbmtlZGluB3R3aXR0ZXIGdHVtYmxyCXBpbnRlcmVzdBFhdWRpby1kZXNjcmlwdGlvbgVhdWRpbwAAAAAA) format("truetype");font-weight:400;font-style:normal}.video-js .vjs-big-play-button,.video-js .vjs-play-control,.vjs-icon-play{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-big-play-button:before,.video-js .vjs-play-control:before,.vjs-icon-play:before{content:"\\f101"}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:"\\f102"}.video-js .vjs-play-control.vjs-playing,.vjs-icon-pause{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-play-control.vjs-playing:before,.vjs-icon-pause:before{content:"\\f103"}.video-js .vjs-mute-control.vjs-vol-0,.video-js .vjs-volume-menu-button.vjs-vol-0,.vjs-icon-volume-mute{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-0:before,.video-js .vjs-volume-menu-button.vjs-vol-0:before,.vjs-icon-volume-mute:before{content:"\\f104"}.video-js .vjs-mute-control.vjs-vol-1,.video-js .vjs-volume-menu-button.vjs-vol-1,.vjs-icon-volume-low{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-1:before,.video-js .vjs-volume-menu-button.vjs-vol-1:before,.vjs-icon-volume-low:before{content:"\\f105"}.video-js .vjs-mute-control.vjs-vol-2,.video-js .vjs-volume-menu-button.vjs-vol-2,.vjs-icon-volume-mid{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control.vjs-vol-2:before,.video-js .vjs-volume-menu-button.vjs-vol-2:before,.vjs-icon-volume-mid:before{content:"\\f106"}.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button,.vjs-icon-volume-high{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mute-control:before,.video-js .vjs-volume-menu-button:before,.vjs-icon-volume-high:before{content:"\\f107"}.video-js .vjs-fullscreen-control,.vjs-icon-fullscreen-enter{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-fullscreen-control:before,.vjs-icon-fullscreen-enter:before{content:"\\f108"}.video-js.vjs-fullscreen .vjs-fullscreen-control,.vjs-icon-fullscreen-exit{font-family:VideoJS;font-weight:400;font-style:normal}.video-js.vjs-fullscreen .vjs-fullscreen-control:before,.vjs-icon-fullscreen-exit:before{content:"\\f109"}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:"\\f10a"}.vjs-icon-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before{content:"\\f10b"}.video-js .vjs-subtitles-button,.vjs-icon-subtitles{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-subtitles-button:before,.vjs-icon-subtitles:before{content:"\\f10c"}.video-js .vjs-captions-button,.vjs-icon-captions{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-captions-button:before,.vjs-icon-captions:before{content:"\\f10d"}.video-js .vjs-chapters-button,.vjs-icon-chapters{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-chapters-button:before,.vjs-icon-chapters:before{content:"\\f10e"}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:"\\f10f"}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:"\\f110"}.video-js .vjs-mouse-display,.video-js .vjs-play-progress,.video-js .vjs-volume-display,.video-js .vjs-volume-level,.vjs-icon-circle{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-mouse-display:before,.video-js .vjs-play-progress:before,.video-js .vjs-volume-display:before,.video-js .vjs-volume-level:before,.vjs-icon-circle:before{content:"\\f111"}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:"\\f112"}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:"\\f113"}.vjs-icon-hd{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-hd:before{content:"\\f114"}.video-js .vjs-control.vjs-close-button,.vjs-icon-cancel{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-control.vjs-close-button:before,.vjs-icon-cancel:before{content:"\\f115"}.vjs-icon-replay{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-replay:before{content:"\\f116"}.vjs-icon-facebook{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-facebook:before{content:"\\f117"}.vjs-icon-gplus{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-gplus:before{content:"\\f118"}.vjs-icon-linkedin{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-linkedin:before{content:"\\f119"}.vjs-icon-twitter{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-twitter:before{content:"\\f11a"}.vjs-icon-tumblr{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-tumblr:before{content:"\\f11b"}.vjs-icon-pinterest{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pinterest:before{content:"\\f11c"}.video-js .vjs-descriptions-button,.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-descriptions-button:before,.vjs-icon-audio-description:before{content:"\\f11d"}.video-js .vjs-audio-button,.vjs-icon-audio{font-family:VideoJS;font-weight:400;font-style:normal}.video-js .vjs-audio-button:before,.vjs-icon-audio:before{content:"\\f11e"}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;line-height:1;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js *,.video-js :after,.video-js :before{box-sizing:inherit}.video-js ul{font-family:inherit;font-size:inherit;line-height:inherit;list-style-position:outside;margin:0}.video-js.vjs-16-9,.video-js.vjs-4-3,.video-js.vjs-fluid{width:100%;max-width:100%;height:0}.video-js.vjs-16-9{padding-top:56.25%}.video-js.vjs-4-3{padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.vjs-fake-fullscreen-parent{transform:none!important;overflow:visible!important;z-index:2147483647!important}.vjs-full-window .video-js.vjs-fullscreen{position:fixed!important;overflow:hidden;z-index:1000;left:0!important;top:0!important;bottom:0!important;right:0!important}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-disabled{opacity:.5;cursor:default}.video-js .vjs-offscreen{height:1px;left:-9999px;position:absolute;top:0;width:1px}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#66A8CC}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.5em;width:3em;display:block;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:.06666em solid #fff;background-color:#2B333F;background-color:rgba(43,51,63,.7);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.75em;margin-left:-1.5em}.video-js .vjs-big-play-button:focus,.video-js:hover .vjs-big-play-button{outline:0;border-color:#fff;background-color:#73859f;background-color:rgba(115,133,159,.5);-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-controls-disabled .vjs-big-play-button,.vjs-error .vjs-big-play-button,.vjs-has-started .vjs-big-play-button,.vjs-using-native-controls .vjs-big-play-button{display:none}.video-js button{background:0 0;border:none;color:inherit;display:inline-block;overflow:visible;font-size:inherit;line-height:inherit;text-transform:none;text-decoration:none;transition:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js .vjs-control.vjs-close-button{cursor:pointer;height:3em;position:absolute;right:0;top:.5em;z-index:2}.video-js .vjs-tooltip{position:absolute;top:-3em;left:0;z-index:10;display:none;padding:6px 8px 8px;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;background-color:#2B333F;background-color:rgba(43,51,63,.7);color:#fff;font-size:.9em;font-family:Arial,Helvetica,sans-serif;white-space:nowrap;pointer-events:none}.video-js .vjs-tooltip-active{display:block}.vjs-menu-button{cursor:pointer}.vjs-menu-button.vjs-disabled{cursor:default}.vjs-workinghover .vjs-menu-button.vjs-disabled:hover .vjs-menu{display:none}.vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;overflow:auto}.vjs-scrubbing .vjs-menu-button:hover .vjs-menu{display:none}.vjs-menu li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.vjs-menu li:focus,.vjs-menu li:hover{outline:0;background-color:#73859f;background-color:rgba(115,133,159,.5)}.vjs-menu li.vjs-selected,.vjs-menu li.vjs-selected:focus,.vjs-menu li.vjs-selected:hover{background-color:#fff;color:#2B333F}.vjs-menu li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.vjs-control .vjs-menu{text-shadow:none}.vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;width:10em;left:-3em;height:0;margin-bottom:1.5em;border-top-color:rgba(43,51,63,.7)}.vjs-menu-button-popup .vjs-menu .vjs-menu-content{background-color:#2B333F;background-color:rgba(43,51,63,.7);position:absolute;width:100%;bottom:1.5em;max-height:15em}.vjs-menu-button-popup .vjs-menu.vjs-lock-showing,.vjs-workinghover .vjs-menu-button-popup:hover .vjs-menu{display:block}.video-js .vjs-menu-button-inline{-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s;overflow:hidden}.video-js .vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline.vjs-slider-active:not(.vjs-no-volume),.video-js .vjs-menu-button-inline:focus:not(.vjs-no-volume),.video-js .vjs-menu-button-inline:hover:not(.vjs-no-volume),.video-js.vjs-no-flex .vjs-menu-button-inline:not(.vjs-no-volume){width:12em}.video-js .vjs-menu-button-inline.vjs-slider-active{-webkit-transition:none;-moz-transition:none;-o-transition:none;transition:none}.vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:4em;top:0;padding:0;margin:0;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-menu-button-inline:focus .vjs-menu,.vjs-menu-button-inline:hover .vjs-menu{display:block;opacity:1}.vjs-no-flex .vjs-menu-button-inline .vjs-menu{display:block;opacity:1;position:relative;width:auto}.vjs-no-flex .vjs-menu-button-inline.vjs-slider-active .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:focus .vjs-menu,.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.vjs-menu-button-inline .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2B333F;background-color:rgba(43,51,63,.7)}.vjs-has-started .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:visible;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}@media \\0screen{.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:hidden}}.vjs-controls-disabled .vjs-control-bar,.vjs-error .vjs-control-bar,.vjs-using-native-controls .vjs-control-bar{display:none!important}.video-js:not(.vjs-using-native-controls) video::-webkit-media-controls-panel,.video-js:not(.vjs-using-native-controls) video::-webkit-media-controls-panel-container,.video-js:not(.vjs-using-native-controls) video::-webkit-media-controls-start-playback-button{display:none!important;-webkit-appearance:none}.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}@media \\0screen{.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{outline:0;position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-control:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus,.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center;min-width:4em}.vjs-live .vjs-progress-control{display:none}.video-js .vjs-progress-holder{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s;height:.3em}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.666666666666666666em}.video-js .vjs-progress-control:hover .vjs-mouse-display-tooltip,.video-js .vjs-progress-control:hover .vjs-play-progress:after,.video-js .vjs-progress-control:hover .vjs-time-tooltip{font-family:Arial,Helvetica,sans-serif;visibility:visible;font-size:.6em}.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div,.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-tooltip-progress-bar{position:absolute;display:block;height:.3em;margin:0;padding:0;width:0;left:0;top:0}.video-js .vjs-mouse-display:before{display:none}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{position:absolute;top:-.333333333333333em;right:-.5em;font-size:.9em}.video-js .vjs-mouse-display-tooltip,.video-js .vjs-play-progress:after,.video-js .vjs-time-tooltip{visibility:hidden;pointer-events:none;position:absolute;top:-3.4em;right:-1.9em;font-size:.9em;color:#000;content:attr(data-current-time);padding:6px 8px 8px;background-color:#fff;background-color:rgba(255,255,255,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em}.video-js .vjs-play-progress:after,.video-js .vjs-play-progress:before,.video-js .vjs-time-tooltip{z-index:1}.video-js .vjs-progress-control .vjs-keep-tooltips-inside:after{display:none}.video-js .vjs-load-progress{background:#bfc7d3;background:rgba(115,133,159,.5)}.video-js .vjs-load-progress div{background:#fff;background:rgba(115,133,159,.75)}.video-js.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-time-tooltip{display:inline-block;height:2.4em;position:relative;float:right;right:-1.9em}.vjs-tooltip-progress-bar{visibility:hidden}.video-js .vjs-progress-control .vjs-mouse-display{display:none;position:absolute;width:1px;height:100%;background-color:#000;z-index:1}.vjs-no-flex .vjs-progress-control .vjs-mouse-display{z-index:0}.video-js .vjs-progress-control:hover .vjs-mouse-display{display:block}.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display,.video-js.vjs-user-inactive .vjs-progress-control .vjs-mouse-display-tooltip{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display,.video-js.vjs-user-inactive.vjs-no-flex .vjs-progress-control .vjs-mouse-display-tooltip{display:none}.video-js .vjs-progress-control .vjs-mouse-display-tooltip,.vjs-mouse-display .vjs-time-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.video-js .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;margin:0 .45em;background-color:#73859f;background-color:rgba(115,133,159,.5)}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-volume-control{width:5em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-volume-bar{margin:1.35em .45em}.vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em;margin:1.35em auto}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.vjs-slider-vertical .vjs-volume-level{width:.3em}.vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.vjs-slider-horizontal .vjs-volume-level{height:.3em}.vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu{display:block;width:0;height:0;border-top-color:transparent}.vjs-menu-button-popup.vjs-volume-menu-button-vertical .vjs-menu{left:.5em;height:8em}.vjs-menu-button-popup.vjs-volume-menu-button-horizontal .vjs-menu{left:-2em}.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu-content{height:0;width:0;overflow-x:hidden;overflow-y:hidden}.vjs-volume-menu-button-vertical .vjs-lock-showing .vjs-menu-content,.vjs-volume-menu-button-vertical.vjs-slider-active .vjs-menu-content,.vjs-volume-menu-button-vertical:focus .vjs-menu-content,.vjs-volume-menu-button-vertical:hover .vjs-menu-content{height:8em;width:2.9em}.vjs-volume-menu-button-horizontal .vjs-lock-showing .vjs-menu-content,.vjs-volume-menu-button-horizontal .vjs-slider-active .vjs-menu-content,.vjs-volume-menu-button-horizontal:focus .vjs-menu-content,.vjs-volume-menu-button-horizontal:hover .vjs-menu-content{height:2.9em;width:8em}.vjs-volume-menu-button.vjs-menu-button-inline .vjs-menu-content{background-color:transparent!important}.video-js .vjs-volume-display:before{display:none}.video-js .vjs-volume-display-tooltip{display:none;position:absolute;top:-1em;font-size:1em;padding:.5em;-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em}.video-js .vjs-volume-display-tooltip-active{display:block}.video-js .vjs-volume-bar .vjs-volume-display{position:absolute;top:0;z-index:1;display:none;width:1px;height:100%;background-color:#000}.vjs-no-flex .vjs-volume-bar .vjs-volume-display{z-index:0}.video-js .vjs-volume-bar:hover .vjs-volume-display{display:block}.video-js.vjs-user-inactive .vjs-volume-bar .vjs-volume-display,.video-js.vjs-user-inactive .vjs-volume-display-tooltip{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-bar .vjs-volume-display,.video-js.vjs-user-inactive.vjs-no-flex .vjs-volume-display-tooltip{display:none}.video-js .vjs-volume-display-tooltip{color:#fff;background-color:#000;background-color:rgba(0,0,0,.8)}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;background-color:#000;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-poster img{display:block;vertical-align:middle;margin:0 auto;max-height:100%;padding:0;width:100%}.vjs-has-started .vjs-poster{display:none}.vjs-audio.vjs-has-started .vjs-poster{display:block}.vjs-controls-disabled .vjs-poster,.vjs-using-native-controls .vjs-poster{display:none}.video-js .vjs-live-control{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:flex-start;-webkit-align-items:flex-start;-ms-flex-align:flex-start;align-items:flex-start;-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;font-size:1em;line-height:3em}.vjs-no-flex .vjs-live-control{display:table-cell;width:auto;text-align:left}.video-js .vjs-time-control{-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;font-size:1em;line-height:3em;min-width:2em;width:auto;padding-left:1em;padding-right:1em}.video-js .vjs-current-time,.video-js .vjs-duration,.vjs-live .vjs-time-control,.vjs-no-flex .vjs-current-time,.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.vjs-live .vjs-time-divider{display:none}.video-js .vjs-play-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.vjs-subtitles{color:#fff}.vjs-captions{color:#fc6}.vjs-tt-cue{display:block}video::-webkit-media-text-track-display{-moz-transform:translateY(-3em);-ms-transform:translateY(-3em);-o-transform:translateY(-3em);-webkit-transform:translateY(-3em);transform:translateY(-3em)}.video-js.vjs-user-inactive.vjs-playing video::-webkit-media-text-track-display{-moz-transform:translateY(-1.5em);-ms-transform:translateY(-1.5em);-o-transform:translateY(-1.5em);-webkit-transform:translateY(-1.5em);transform:translateY(-1.5em)}.video-js .vjs-fullscreen-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.vjs-playback-rate .vjs-menu{width:4em;left:0}.vjs-error .vjs-error-display .vjs-modal-dialog-content{font-size:1.4em;text-align:center}.vjs-error .vjs-error-display:before{color:#fff;content:\'X\';font-family:Arial,Helvetica,sans-serif;font-size:4em;left:0;line-height:1;margin-top:-.5em;position:absolute;text-shadow:.05em .05em .1em #000;text-align:center;top:50%;vertical-align:middle;width:100%}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;opacity:.85;text-align:left;border:6px solid rgba(43,51,63,.7);box-sizing:border-box;background-clip:padding-box;width:50px;height:50px;border-radius:25px}.vjs-seeking .vjs-loading-spinner,.vjs-waiting .vjs-loading-spinner{display:block}.vjs-using-native-controls .vjs-loading-spinner{display:none!important}.vjs-loading-spinner:after,.vjs-loading-spinner:before{content:"";position:absolute;margin:-6px;box-sizing:inherit;width:inherit;height:inherit;border-radius:inherit;opacity:1;border:inherit;border-color:#fff transparent transparent}.vjs-seeking .vjs-loading-spinner:after,.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:before{-webkit-animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite;animation:vjs-spinner-spin 1.1s cubic-bezier(0.6,.2,0,.8) infinite,vjs-spinner-fade 1.1s linear infinite}.vjs-seeking .vjs-loading-spinner:before,.vjs-waiting .vjs-loading-spinner:before{border-top-color:#fff}.vjs-seeking .vjs-loading-spinner:after,.vjs-waiting .vjs-loading-spinner:after{border-top-color:#fff;-webkit-animation-delay:.44s;animation-delay:.44s}@keyframes vjs-spinner-spin{100%{transform:rotate(360deg)}}@-webkit-keyframes vjs-spinner-spin{100%{-webkit-transform:rotate(360deg)}}@keyframes vjs-spinner-fade{0%,20%{border-top-color:#73859f}35%{border-top-color:#fff}100%,60%{border-top-color:#73859f}}@-webkit-keyframes vjs-spinner-fade{0%,20%{border-top-color:#73859f}35%{border-top-color:#fff}100%,60%{border-top-color:#73859f}}.vjs-chapters-button .vjs-menu ul{width:24em}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-menu-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-menu-button{display:none}.vjs-caption-settings{position:relative;top:1em;background-color:#2B333F;background-color:rgba(43,51,63,.75);color:#fff;margin:0 auto;padding:.5em;height:15em;font-size:12px;width:40em}.vjs-caption-settings .vjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.vjs-caption-settings .vjs-tracksettings-colors,.vjs-caption-settings .vjs-tracksettings-font{float:left}.vjs-caption-settings .vjs-tracksettings-colors:after,.vjs-caption-settings .vjs-tracksettings-controls:after,.vjs-caption-settings .vjs-tracksettings-font:after{clear:both}.vjs-caption-settings .vjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.vjs-caption-settings .vjs-tracksetting>div{margin-bottom:5px;min-height:20px}.vjs-caption-settings .vjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.vjs-caption-settings label>input{margin-right:10px}.vjs-caption-settings input[type=button]{width:40px;height:40px}.video-js .vjs-modal-dialog{background:rgba(0,0,0,.8);background:-webkit-linear-gradient(-90deg,rgba(0,0,0,.8),rgba(255,255,255,0));background:linear-gradient(180deg,rgba(0,0,0,.8),rgba(255,255,255,0))}.vjs-modal-dialog .vjs-modal-dialog-content{font-size:1.2em;line-height:1.5;padding:20px 24px;z-index:1}'; a("browserify-css").createStyle(d, { href: "src/css/videojs.css" }, { insertAt: "bottom" }), b.exports = d }, { "browserify-css": 49 }], 287: [function (a, b, c) { "use strict"; function d(a) { var b; if (!a.getBoundingClientRect || !a.parentNode) return 0; b = a.getBoundingClientRect(); var c = document.body, d = document.documentElement.clientLeft || c.clientLeft || 0, e = window.pageXOffset || c.scrollLeft; return Math.round(b.left + e - d) } var e = a("video.js"), f = a("lodash/throttle"), g = a("lodash/get"); e.plugin("dvr", function () { function a(a, b) { var c = a.getChild(b); a.removeChild(c), c.dispose() } function b() { var b = c.tech_.hls_obj, d = c.tech_.flashlsProvider, e = c.seekable(); if ((b || d) && c.duration() == 1 / 0 && e && e.length && !(e.end(0) - e.start(0) < 60)) { var f = c.controlBar.progressControl; a(f, "seekBar"), f.seekBar = f.addChild("DvrSeekBar"), a(c.controlBar, "liveDisplay"), c.controlBar.addChild("LiveButton"), c.addClass("vjs-dvr"), c.hasStarted() || c.one("play", function () { c.dvr.seek_to_live() }), c.on("timeupdate", function () { c.toggleClass("vjs-dvr-live", c.dvr.is_live()) }), d ? c.dvr.live_threshold = Math.max(1.5 * d.avg_duration, 10) : b.on("hlsLevelUpdated", function (a, b) { c.dvr.live_threshold = Math.max(1.5 * b.details.targetduration, 10) }) } } var c = this; c.ready(function () { var a = c.seekable(); c.duration() && a && a.length ? b() : c.one("loadedmetadata", function () { if (!c.tech_.flashlsProvider) return void b(); c.on("timeupdate", function a() { var d = c.seekable(); d && d.length && (c.off("timeupdate", a), b()) }) }) }), c.dvr = { live_threshold: 10, range: function () { var a = c.seekable(); return a && a.length ? { start: a.start(0), end: a.end(0) } : null }, is_live: function () { var a = this.range(), b = a && a.end; return b && b - c.currentTime() <= this.live_threshold }, format_time: function (a) { var b = this.range(); return b ? (a || (a = c.scrubbing() ? c.getCache().currentTime : c.currentTime()), b.end - a < this.live_threshold ? c.localize("Live") : (a = Math.max(b.end - a, 0), (a > 0 ? "-" : "") + e.formatTime(a, b.end))) : "0:00" }, seek_to_live: function () { var a = this.range(); a && !this.is_live() && c.currentTime(a.end) } } }); var h = e.getComponent("SeekBar"); e.registerComponent("DvrSeekBar", e.extend(h, { options_: { children: ["dvrLoadProgressBar", "dvrMouseTimeDisplay", "dvrPlayProgressBar"], barName: "dvrPlayProgressBar" }, getPercent: function () { var a = this.player_.dvr, b = a.range(); return !b || a.is_live() ? 1 : (this.player_.currentTime() - b.start) / (b.end - b.start) }, handleMouseMove: function (a) { var b = this.player_.dvr.range(); if (b) { var c = b.start + this.calculateDistance(a) * (b.end - b.start); b.end - c < this.player_.dvr.live_threshold ? this.player_.dvr.seek_to_live() : this.player_.currentTime(Math.min(c, b.end)) } }, updateAriaAttributes: function (a) { a.setAttribute("aria-valuenow", (100 * this.getPercent()).toFixed(2)), a.setAttribute("aria-valuetext", this.player_.dvr.format_time()) } })); var i = e.getComponent("PlayProgressBar"); e.registerComponent("DvrPlayProgressBar", e.extend(i, { updateDataAttr: function () { this.el_.setAttribute("data-current-time", this.player_.dvr.format_time()) } })); var j = e.getComponent("MouseTimeDisplay"), k = e.getComponent("Component"); e.registerComponent("DvrMouseTimeDisplay", e.extend(j, { constructor: function (a, b) { k.call(this, a, b), this.keepTooltipsInside = g(b, "playerOptions.controlBar.progressControl.keepTooltipsInside"), this.keepTooltipsInside && (this.tooltip = e.createEl("div", { className: "vjs-time-tooltip" }), this.el().appendChild(this.tooltip), this.addClass("vjs-keep-tooltips-inside")), this.update(0, 0, 0); var c = this.player_.controlBar.progressControl.el(); c.appendChild(this.tooltip), this.on(c, "mousemove", f(this.handleMouseMove.bind(this)), 25) }, handleMouseMove: function (a) { var b = this.player_.dvr.range(), c = b ? this.calculateDistance(a) * (b.end - b.start) + b.start : 0, e = this.player_.controlBar.progressControl.seekBar.width() - this.width(), f = a.pageX - d(this.el().parentNode); f = Math.min(Math.max(0, f), e); var g = this.tooltip.offsetWidth, h = this.tooltip.parentNode.offsetWidth - g, i = a.pageX - d(this.tooltip.parentNode) - g / 2; i = Math.min(Math.max(0, i), h), this.update(c, f, i) }, update: function (a, b, c) { if (this.el().style.left = b + "px", this.tooltip.innerHTML = this.player_.dvr.format_time(a), this.keepTooltipsInside) { var d = b - this.clampPosition_(b) + 1, e = parseFloat(window.getComputedStyle(this.tooltip).width); this.tooltip.style.left = "auto", this.tooltip.style.right = "-" + (e / 2 - d) + "px" } else this.tooltip.style.right = "auto", this.tooltip.style.left = c + "px" } })); var l = e.getComponent("LoadProgressBar"); e.registerComponent("DvrLoadProgressBar", e.extend(l, { constructor: function (a, b) { l.call(this, a, b), this.partEls_ = []; var c; a.tech_.hls_obj ? this.on(a.tech_.hls_obj, "hlsLevelUpdated", this.update) : (c = a.tech_.flashlsProvider) && this.on(a, "timeupdate", function () { this.update(c.buffer) }) }, update: function (a) { var b, c = function (a, b) { var c = a / b || 0; return 100 * (c >= 1 ? 1 : c) + "%" }, d = this.player_.dvr.range(), f = d ? d.start : 0, g = d ? d.end : 0, h = this.partEls_, i = []; if (a) { var j = this.player_.currentTime(); i = [{ start: j, end: j + a }] } else { var k = this.player_.buffered(); for (b = 0; b < k.length; b++) k.end(b) <= f || k.start(b) >= g || i.push({ start: Math.max(k.start(b), f), end: Math.min(k.end(b), g) }) } var l = i.length ? i[i.length - 1].end - f : 0; for (this.el_.style.width = c(l, g - f), b = 0; b < i.length; b++) { h[b] = h[b] || this.el_.appendChild(e.createEl()); var m = h[b]; m.style.left = c(i[b].start - f, l), m.style.width = c(i[b].end - i[b].start, l) } for (b = h.length; b > i.length; b--) this.el_.removeChild(h[b - 1]); h.length = i.length } })); var m = e.getComponent("Button"); e.registerComponent("LiveButton", e.extend(m, { controlText_: "Skip back to live", createEl: function () { var a = m.prototype.createEl.call(this, "button", { className: "vjs-live-control vjs-control" }); return this.contentEl_ = e.createEl("div", { className: "vjs-live-display", innerHTML: this.localize("LIVE") }, { "aria-live": "off" }), a.appendChild(this.contentEl_), a }, handleClick: function () { this.player_.dvr.seek_to_live(), this.player_.play() } })) }, { "lodash/get": 224, "lodash/throttle": 254, "video.js": 269 }], 288: [function (a, b, c) { "use strict"; function d(a, b) { function c(a) { var b = a.height || Math.round(9 * a.width / 16); return b ? b + "p" : "" } function d(a) { return a.bitrate ? h.scaled_number(a.bitrate) + "bps" : "" } function g(a, b) { var e = c(a); return e ? i(b, function (b) { return b != a && c(b) == e }) ? e + " " + d(a) : e : d(a) } function j(a) { o = a, n.vjs_setProperty("level", a), k() } function k() { var a = n.hola_hls_get_levels(), c = []; a.length > 1 && c.push({ id: -1, label: "Auto" }); for (var d = 0; d < a.length; d++) c.push({ id: a[d].index, label: g(a[d], a), bitrate: a[d].bitrate }); var e = b.quality_data = { quality: { list: c, selected: o, current: n.vjs_getProperty("level") }, callback: j }; b.trigger("loadedqualitydata", e) } function l(a) { if (a && a.data && a.data.player_id == p) switch (a.data.id) { case "flashls.hlsEventLevelSwitch": k(); break; case "flashls.hlsEventManifestLoaded": var b = a.data.levels[0]; q = b.duration, t.avg_duration = b.averageduration; break; case "flashls.hlsEventMediaTime": r = a.data.mediatime.live_sliding_main, q = a.data.mediatime.duration, t.buffer = a.data.mediatime.buffer } } function m() { p = n.hola_settings({}).player_id } var n = b.el_, o = -1, p = n.id, q = 0, r = 0, s = e(b), t = this; this.avg_duration = 0, this.buffer = 0, this.seekable = function () { return q ? s.dvr && n.hola_hls_get_type && "LIVE" == n.hola_hls_get_type() ? f.createTimeRanges([ [r, q + r - 3 * t.avg_duration] ]) : f.createTimeRanges([ [0, q] ]) : f.createTimeRanges([]) }, this.dispose = function () { window.removeEventListener("message", l), s.off("hola.wrapper_attached", m), b.flashlsProvider = void 0 }, window.addEventListener("message", l), s.on("hola.wrapper_attached", m), b.setSrc(a.src) } function e(a) { var b = f.getPlayers(); for (var c in b) { var d = b[c]; if (d.tech_ === a) return d } } var f = a("video.js"), g = a("./mime.js"), h = a("./util.js"), i = a("lodash/some"); b.exports = function () { f.getComponent("Flash").registerSourceHandler({ canHandleSource: function (a) { return g.is_hls_type(a.type) ? "probably" : g.is_hls_link(a.src) ? "maybe" : "" }, handleSource: function (a, b) { return b.flashlsProvider && b.flashlsProvider.dispose(), b.flashlsProvider = new d(a, b) } }, 0) } }, { "./mime.js": 291, "./util.js": 294, "lodash/some": 251, "video.js": 269 }], 289: [function (a, b, c) { "use strict"; function d() { var a = {}; try { var b; (b = localStorage.getItem("hola_geoip")) && (a = JSON.parse(b)) } catch (a) {} return a } function e(a) { if (a.__RegExp__) { var b = /^\/(.*)\/(\w*)$/.exec(a.__RegExp__); if (!b) throw a; return new RegExp(b[1], b[2]) } return a } function f() { var a = J && J.spark || {}; if (!a.zones) return a; var b = H.values(a.zones); b.sort(function (a, b) { return a.order - b.order }); var c = H.find(b, function (a) { return function () { return (a.by_frame_url ? location.href : z()).match(e(a.match)) }() && function () { var b = d().country, c = a.country ? a.country.include : [], e = a.country ? a.country.exclude : []; return (!c.length || H.includes(c, b)) && (!e.length || !H.includes(e, b)) }() }); return c = c || a, ["player", "playlist"].forEach(function (b) { (c[b] || { use_default_conf: !0 }).use_default_conf && (c[b] = a[b]) }), H.merge({ general: a.general }, c) } function g(a, b) { "function" == typeof a && (b = a, a = {}), a = A.mergeOptions(a); var c = a.player && "string" != typeof a.player && a.player.length ? a.player[0] : a.player, d = c ? A.isEl(c) ? c : document.querySelector(c) : document.querySelector("video, object, embed"); return d ? d.hola_player ? d.hola_player : (a = h(d, a)) ? new j(d, a, b) : void 0 : null } function h(a, b) { var c, d, e = f(), g = z(); if ((d = e.player) && (d = H.omit(d, "strings"), b = A.mergeOptions(d, b)), I.debug = e.debug || b.debug || -1 != g.indexOf("hola_debug_spark"), b.autoplay = b.auto_play || b.autoplay, e.autoplay && e.autoplay.enable && (b.autoplay = !1), b.base_url = b.base_url || "//player2.h-cdn.com", b.video_url ? b.sources = [{ src: b.video_url, type: b.video_type || B.guess_link_type(b.video_url) }] : b.sources && !b.sources.length && (b.sources = void 0), !(["VIDEO", "DIV", "OBJECT", "EMBED"].indexOf(a.tagName) < 0)) { if ("VIDEO" == a.tagName) { if (!b.sources) { var h = a.querySelectorAll("source"); if (!h.length) return; b.sources = Array.prototype.map.call(h, A.getAttributes) } b = A.mergeOptions(A.getAttributes(a), b) } return b.sources && b.sources.forEach(function (a) { a.type = a.type || B.guess_link_type(a.src) }), void 0 === b.share && (b.share = {}), !b.share || b.share.buttons && !b.share.buttons.length ? b.share = void 0 : b.share = A.mergeOptions(b.share, { title: b.title }), (c = e.playlist) && c.next_btn && (c.enable || window.hola_ve_playlist || g && g.match(/hola_ve_playlist=(1|on)/)) && (b.next = {}), b.watermark && !b.watermark.fadeTime && (b.watermark.fadeTime = null), b.sources && b } } function i(b) { b = b || {}, window.WebVTT || a("videojs-vtt.js"), a("@hola.org/videojs-osmf"), a("@hola.org/videojs-contrib-media-sources"), b["videojs-settings"] && (a("@hola.org/videojs-settings"), a("./css/videojs-settings.css")), b["videojs-hola-skin"] && (a("@hola.org/videojs-hola-skin"), a("./css/videojs-hola-skin.css")), b["videojs-thumbnails"] && (a("@hola.org/videojs-thumbnails"), a("./css/videojs-thumbnails.css")), b["videojs-contrib-ads"] && (a("@hola.org/videojs-contrib-ads"), a("./css/videojs-contrib-ads.css")), b["videojs-ima"] && (a("@hola.org/videojs-ima"), a("./css/videojs-ima.css")), b["videojs-contrib-dash"] && (window.dashjs = { MediaPlayer: a("@hola.org/dashjs/dist/dash.mediaplayer.debug.js") }, a("videojs-contrib-dash")), b.dvr && (a("./dvr.js"), a("./css/dvr.css")), b.share && (a("./share.js"), a("./css/share.css")), b.next && (a("./next.js"), a("./css/next.css")), b["videojs-watermark"] && (a("videojs-watermark"), a("./css/videojs-watermark.css")) } function j(a, b, c) { I.log.info("init Spark Player v" + I.VERSION), this.ready_cb = c, this.opt = b, this.element = this.init_element(a), this.vjs = this.init_vjs(), this.tech_call_rewrites = {}, this.vjs.hola = this.vjs.hola || {}, this.vjs.hola.tech_call = this.tech_call.bind(this), I.players[this.id = this.vjs.id()] = this } function k() { var a = window.hola_cdn, b = a && a._get_bws(); if (!window.cdn_graph && b && "cdn" == a._get_mode()) try { var c = { graph: "newgraph_progress_mode_highlight_tips", player_obj: b.player, video: b.player.vjs }, d = "//player.h-cdn.com" + a.require.zdot("cdngraph_js"); a.util.load_script(d, function () { window.cdn_graph.init(c, b, a) }) } catch (a) { I.log.error(a.stack || a) } } function l(a, b, c) { if (a && a[b]) return a[b].filter(function (a) { return a == c })[0] } function m(a) { if (isFinite(a)) { var b = Math.floor(a / 3600); a %= 3600; var c = Math.floor(a / 60), d = a % 60; return b = b < 10 ? "0" + b : b, c = c < 10 ? "0" + c : c, d = d < 10 ? "0" + d.toFixed(3) : d.toFixed(3), b + ":" + c + ":" + d } } function n(a) { if (!Array.isArray(a)) return void I.log.error("ads.schedule param must be an array"); for (var b = '\n\n', c = 0; c < a.length; c++) { var d = a[c], e = "start" == d.time || "end" == d.time ? d.time : m(d.time); if (!e) return void I.log.error("wrong ad time format"); if (!d.tag) return void I.log.error("ad tag not found"); b += ' \n \n \n \n \n \n \n" } return b + "" } function o(a) { var b = [], c = {}; a.on("timeupdate", function () { var d = a.currentTime(); b.forEach(function (b) { c[b.time] || d < b.time || d - b.time > .5 || (a.ima.playAd(b.ad), c[b.time] = !0) }) }), a.tech_.on("parsedmetadata", function (c, d) { var e = d && d.samples && d.samples[0], f = D.parse_id3(e.data || e.unit), g = f.TXXX && f.TXXX.adID; g && b.indexOf(e.dts) < 0 && (b.push({ ad: g, time: e.dts }), a.trigger("ads-cuepoints", H.map(b, "time"))) }) } function p(a) { return B.is_hls_link(a.src) || B.is_hls_type(a.type) } function q(a) { return B.is_dash_link(a.src) || B.is_dash_type(a.type) } function r(a) { return B.is_hds_link(a.src) || B.is_hds_type(a.type) } function s(a) { return p(a) || q(a) || r(a) } function t(a, b) { a.canPlayType("application/x-mpegurl") && b.some(p) && (a.src = "", a.load()) } function u() { if (K) { if (document.querySelector('script[src*="//player.h-cdn.com/loader"]')) return void I.log.warn("Spark loader.js is included with Spark Player. There is no need to load it separately"); I.log.info("Adding CDN loader..."), C.load_script("//player.h-cdn.com/loader.js?customer=" + K, void 0, { async: !0, crossOrigin: "anonymous" }) } } function v() { if (!(Math.random() > .1)) { var a = new XMLHttpRequest, b = C.current_script(), c = { v: I.VERSION, loader: window.hola_cdn && window.hola_cdn.ver, hls: window.Hls && window.Hls.version, customer: K, hosted: !b || !b.src.match(/^(https?:)?\/\/\w*\.h-cdn\.com/), url: z() }, d = Object.keys(c).filter(function (a) { return !!c[a] }).map(function (a) { return a + "=" + encodeURIComponent(c[a]) }).join("&"); a.open("GET", "https://perr.h-cdn.com/hola_player/license_init?" + d), a.send() } } function w(a, b) { return ("000" + a).slice(-b) } function x() { var a = new Date; return w(a.getUTCFullYear(), 4) + "-" + w(a.getUTCMonth() + 1, 2) + "-" + w(a.getUTCDate(), 2) + " " + w(a.getUTCHours(), 2) + ":" + w(a.getUTCMinutes(), 2) + ":" + w(a.getUTCSeconds(), 2) + "." + w(a.getUTCMilliseconds(), 3) } function y(a, b) { ("info" != a || I.debug) && console["info" == a ? "log" : a](x() + " hola_player: " + b) } function z() { return window.top == window ? location.href : document.referrer } var A = window.videojs = a("video.js"); a("./css/videojs.css"); var B = a("./mime.js"), C = a("./util.js"), D = a("./id3.js"), E = hola_vjs_provider_require(), F = a("./flashls_source_handler.js"), G = a("url"), H = { map: a("lodash/map"), pick: a("lodash/pick"), omit: a("lodash/omit"), values: a("lodash/values"), find: a("lodash/find"), merge: a("lodash/merge"), includes: a("lodash/includes") }, I = window.hola_player = b.exports = g; I.VERSION = "1.0.157", I.players = {}; var J, K; try { J = JSON.parse(hola_player_api && hola_player_api.zdot("json")) } catch (a) {} J = J || {}, I.log = { info: y.bind(I.log, "info"), warn: y.bind(I.log, "warn"), error: y.bind(I.log, "error") }, function () { try { var a = C.current_script(); K = a && G.parse(a.src, !0, !0).query.customer, E.attach(), F(), u(), v() } catch (a) { I.log.error(a.stack || a) } }(), j.prototype.init_element = function (a) { var b = this.opt; if ("VIDEO" == a.tagName) a.autoplay = !1, a.controls = !1, a.removeAttribute("data-setup"), b.poster && (a.poster = b.poster), t(a, b.sources); else { var c = window.getComputedStyle(a), d = { id: C.unique_id("hola_player"), class: "video-js", preload: b.preload || "auto" }, e = !b.height || isNaN(b.height), f = !b.width || isNaN(b.width); e || (d.height = b.height || parseFloat(c.height)), f || (d.width = b.width || parseFloat(c.width)), b.poster && (d.poster = b.poster); var g = A.createEl("video", {}, d); f && (g.style.width = "100%"), e && (g.style.height = "100%"), A.appendContent(g, b.sources.map(function (a) { return A.createEl("source", {}, a) })), g.style.position = "static" == c.position ? "relative" : c.position, g.style.left = c.left, g.style.top = c.top, a.parentNode.insertBefore(g, a.nextSibling), a.style.display = "none", a.hola_player = this, a = g } return a.id || (a.id = C.unique_id("hola_player")), a.setAttribute("playsinline", ""), a.setAttribute("data-fb-disable-controls", ""), a.hola_player = this, a }, j.prototype.add_languages = function () { var a, b = f().player, c = b && b.strings; try { a = c && JSON.parse(c) } catch (a) {} if (a) for (var d in a) a[d] && "object" == typeof a[d] && A.addLanguage(d, a[d]) }, j.prototype.init_vjs = function () { var a = this.opt, b = this.ready_cb, c = this, d = this.get_vjs_opt(); i({ "videojs-settings": !!d.plugins.settings, "videojs-hola-skin": !!d.plugins.hola_skin, "videojs-thumbnails": !!a.thumbnails || void 0 === a.thumbnails, "videojs-contrib-ads": !!a.ads, "videojs-ima": !!a.ads, "videojs-contrib-dash": a.sources.some(q), dvr: a.dvr, share: a.share, next: a.next, "videojs-watermark": !!d.plugins.watermark }); var e = this.element; return this.add_languages(), A(this.element, d, function () { var d = this; if (d.emitTapEvents(), d.tech_ && a.controls && d.controls(!0), a.thumbnails && d.thumbnails(a.thumbnails), c.init_ads(d), c.init_captions(d, e), setTimeout(function () { c.init_watermark(d, a) }), d.on("pause", function (a) { d.scrubbing() && a.stopImmediatePropagation() }).on("fullscreenchange", function (a) { var b = window.screen && window.screen.orientation; A.browser.IS_ANDROID && b && b.lock && (d.isFullscreen() ? b.lock(d.videoWidth() > d.videoHeight() ? "landscape" : "portrait") : b.unlock()) }).on("save_logs", function (a) {}).on("problem_report", function (a) {}).on("cdn_graph_overlay", k), b) try { b(d) } catch (a) { I.log.error(a.stack || a) } a.autoplay && C.can_autoplay(function (b) { I.log.info("can autoplay: " + b), !b || "sound" == a.autoplay && "sound" != b || ("muted" == b && d.muted(!0), d.play(), d.autoplay(!0)) }) }).on("error", function () { var b = this, c = b.error; if (c && c.code == c.MEDIA_ERR_SRC_NOT_SUPPORTED) { var d = a.sources.every(function (a) { return B.is_hds_link(a.src) || B.is_flv_link(a.src) }), e = A.getTech("Flash"), f = b.getChild("errorDisplay"); !f || !d || e && e.isSupported() || (f.fillWith(b.localize("Flash plugin is required to play this media")), I.log.error("flash plugin is required")) } }) }, j.prototype.get_settings_opt = function () { var a = this.opt, b = a.settings; if (!1 !== b) { b = A.mergeOptions({ graph: a.graph, volume: a.volume, embed_code: a.embed_code, copy_url: a.copy_url, copy_url_with_time: a.copy_url_with_time }, b); var c = a.sources && a.sources.filter(function (a) { return !s(a) }); return !1 !== b.quality && (b.quality = { sources: c }), b } }, j.prototype.get_vjs_opt = function () { var a = this.opt, b = this.opt["data-setup"] || {}; if (b && "string" == typeof b) try { b = JSON.parse(b) } catch (a) {} b = H.pick(b, ["playbackRates"]); var c = A.browser.IS_ANDROID || A.browser.IS_IOS, d = c && !a.use_desktop_skin ? "vjs-ios-skin" : void 0; return A.mergeOptions({ sources: a.sources, osmf: { swf: a.osmf_swf || a.base_url + "/videojs-osmf.swf?customer=" + K }, flash: { swf: a.swf || a.base_url + "/videojs.swf?customer=" + K, accelerated: a.accelerated }, html5: { hlsjsConfig: { debug: !1, fragLoadingLoopThreshold: 1e3, manifestLoadingTimeOut: 2e4, manifestLoadingMaxRetry: 4, levelLoadingTimeOut: 2e4, levelLoadingMaxRetry: 4, xhrSetup: a.withCredentials && function (a) { a.withCredentials = !0 } }, nativeTextTracks: !1 }, inactivityTimeout: void 0 === a.inactivity_timeout ? 2e3 : a.inactivity_timeout, poster: a.poster, loop: a.loop, muted: a.muted, preload: a.preload, language: a.force_language, techOrder: ("flash" == a.tech ? ["flash", "html5"] : ["html5", "flash"]).concat("osmf"), tooltips: !0, plugins: { settings: this.get_settings_opt(), dvr: a.dvr, share: a.share, next: a.next, watermark: a.watermark, hola_skin: !a.skin && { css: !1, className: d, show_controls_before_start: a.show_controls_before_start, show_time_for_live: a.show_time_for_live, play_button_color: a.play_button_color, seek_bar_color: a.seek_bar_color, title: a.title, hide_skip_buttons: a.hide_skip_buttons } }, errorDisplay: { ignoreErr: a.hide_err_display } }, b, a.videojs_options) }, j.prototype.add_rewrite = function (a, b) { var c = this.tech_call_rewrites[a]; l(c, a, b) || (c || (c = this.tech_call_rewrites[a] = []), c.push(b)) }, j.prototype.remove_rewrite = function (a, b) { var c = this.tech_call_rewrites[a], d = l(c, a, b); if (d) { var e = c.indexOf(d); e >= 0 && c.splice(e, 1) } }, j.prototype.tech_call = function (a, b) { var c = this.tech_call_rewrites[a]; if (!c) return !1; var d = !1; return c.forEach(function (c) { c(a, b) && (d = !0) }), d }, j.prototype.init_ads = function (a) { function b(c) { a.off(["tap", "click", "play"], b), a.ima.adContainerDiv && (a.ima.adContainerDiv.style.cursor = "", e.ads.hideAdContainer && (a.ima.adContainerDiv.style.display = "block")), I.log.info("init ad container"), a.ima.initializeAdDisplayContainer(), e.ads.manual ? (a.trigger("nopreroll"), a.trigger("adsready")) : a.ima.requestAds(), c && "play" != c.type && a.play() } function c() { var b = a.ima; if (b && b.adsActive) return b } function d(a, b) { var d = c(); if (d) { if ("play" == a) { if (d.adPlaying) return !0; I.log.info("resume ad"), d.resumeAd() } if ("pause" == a) { if (!d.adPlaying) return !0; I.log.info("pause ad"), d.pauseAd() } return !0 } } var e = this.opt; if (e.ads) { if (!window.google || !window.google.ima) return C.load_script("//imasdk.googleapis.com/js/sdkloader/ima3.js", this.init_ads.bind(this, a)), void I.log.info("loading imasdk..."); if (e.ads.id3 && (e.ads.manual = !0), e.ads.schedule && (e.ads.adsResponse = n(e.ads.schedule)), !e.ads.adTagUrl && !e.ads.adsResponse && !e.ads.manual) return I.log.error("missing Ad Tag"); if (!window.google) return I.log.error("missing IMA HTML5 SDK"); if (!a.ads || !a.ima) return I.log.error("missing ad modules"); a.ima(A.mergeOptions({ id: a.id(), vjsControls: !0, contribAdsSettings: { prerollTimeout: 1e4, postrollTimeout: 1e3, disablePlayContentBehindAd: !0 } }, e.ads)), I.log.info("init ima plugin"), a.ima.adContainerDiv && (a.ima.adContainerDiv.style.cursor = "pointer", e.ads.hideAdContainer && (a.ima.adContainerDiv.style.display = "none")), this.add_rewrite("play", d), this.add_rewrite("pause", d), a.paused() ? a.on(["tap", "click", "play"], b) : b(), e.ads.id3 && o(a) } }, j.prototype.init_captions = function (a, b) { if (b && b.textTracks && a) { var c = b.textTracks; if (c && c.addEventListener) { var d = function (a, b, c) { var d = a[b]; a[b] = function () { return c.apply(this, arguments), d.apply(this, arguments) } }; c.addEventListener("addtrack", function (b) { var c = b && b.track; if (c) { var e = { kind: c.kind, label: c.label, language: c.language, mode: c.mode }; e.default = c.default, I.log.info("add text track"); for (var f = a.addRemoteTextTrack(e).track, g = 0; g < c.cues.length; g++) f.addCue(c.cues[g]); d(c, "addCue", function (a) { for (var b = 0; b < f.cues.length; b++) f.cues[b].startTime == a.startTime && f.cues[b].text == a.text && f.removeCue(f.cues[b]); f.addCue(a) }), d(c, "removeCue", function (a) { f.removeCue(a) }) } }) } } }, j.prototype.init_watermark = function (a, b) { var c, d, e; if (c = b.controls_watermark) { "string" == typeof c && (c = { image: c }); var f = a.getChild("controlBar").addChild("controlsWatermark", c).el(); (d = c.tooltip) && (e = f.querySelector("img")) && (e.alt = d) }(d = b.watermark && b.watermark.tooltip) && (e = a.el().querySelector(".vjs-watermark-content img")) && (e.alt = d, e.title = d) } }, { "./css/dvr.css": 277, "./css/next.css": 278, "./css/share.css": 279, "./css/videojs-contrib-ads.css": 280, "./css/videojs-hola-skin.css": 281, "./css/videojs-ima.css": 282, "./css/videojs-settings.css": 283, "./css/videojs-thumbnails.css": 284, "./css/videojs-watermark.css": 285, "./css/videojs.css": 286, "./dvr.js": 287, "./flashls_source_handler.js": 288, "./id3.js": 290, "./mime.js": 291, "./next.js": 292, "./share.js": 293, "./util.js": 294, "@hola.org/dashjs/dist/dash.mediaplayer.debug.js": 50, "@hola.org/videojs-contrib-ads": 5, "@hola.org/videojs-contrib-media-sources": 17, "@hola.org/videojs-hola-skin": 42, "@hola.org/videojs-ima": 43, "@hola.org/videojs-osmf": 44, "@hola.org/videojs-settings": 45, "@hola.org/videojs-thumbnails": 46, "lodash/find": 221, "lodash/includes": 227, "lodash/map": 244, "lodash/merge": 246, "lodash/omit": 248, "lodash/pick": 249, "lodash/values": 260, url: 267, "video.js": 269, "videojs-contrib-dash": 50, "videojs-vtt.js": 270, "videojs-watermark": 276 }], 290: [function (a, b, c) { "use strict"; function d(a, b) { return a[b++] << 21 | a[b++] << 14 | a[b++] << 7 | a[b++] } function e(a, b, c) { for (var d = "", e = b; e < b + c; e++) d += String.fromCharCode(a[e]); return d } function f(a) { var b = {}, c = a.indexOf(0); return 3 != a[0] || c < 0 ? b : (b[e(a, 1, c - 1)] = e(a, c + 1, a.length - c - 1), b) } function g(a) { for (var b, c, g = 0, h = {}; g + 8 <= a.length;) b = e(a, g, 4), g += 4, c = d(a, g), g += 6, "TXXX" == b && (h.TXXX = f(a.subarray(g, g + c))), g += c; return h } b.exports.parse_id3 = function (a) { if (!a || !a.length) return {}; var b, c = 0; return "ID3" != e(a, c, 3) ? {} : (c += 6, b = d(a, c), c += 4, g(a.subarray(c, c + b))) } }, {}], 291: [function (a, b, c) { "use strict"; function d(a, b) { return !!a && b.test(e.parse(a).pathname.split(";")[0]) } var e = a("url"), f = b.exports, g = /\.(mp4|m4p|m4v|mov)$/i, h = /\.m3u8$/, i = /\.f4m$/, j = /\.mpd$/, k = /\.flv$/, l = /\.webm$/; f.is_mp4_link = function (a) { return d(a, g) }, f.is_hls_link = function (a) { return d(a, h) }, f.is_hds_link = function (a) { return d(a, i) }, f.is_dash_link = function (a) { return d(a, j) }, f.is_flv_link = function (a) { return d(a, k) }, f.is_webm_link = function (a) { return d(a, l) }, f.guess_link_type = function (a) { var b = e && e.parse(a).pathname; return g.test(b) ? "video/mp4" : h.test(b) ? "application/x-mpegurl" : i.test(b) ? "application/adobe-f4m" : j.test(b) ? "application/dash+xml" : k.test(b) ? "video/flv" : l.test(b) ? "video/webm" : (console.log('could not guess link type: "' + a + '" assuming mp4'), "video/mp4") }, f.is_hls_type = function (a) { return /^application\/x-mpegurl$/i.test(a) }, f.is_hds_type = function (a) { return /^application\/adobe-f4m$/i.test(a) }, f.is_dash_type = function (a) { return /^application\/dash\+xml/i.test(a) } }, { url: 267 }], 292: [function (a, b, c) { "use strict"; var d = a("video.js"); d.plugin("next", function (a) { var b = this; b.ready(function () { var c, d = b.controlBar; c = d.nextVideo = d.addChild("nextButton", a || {}), c.on("mouseenter", function () { c.addClass("vjs-next-suggestion-show"), b.trigger("next_suggestion_show") }), c.on("mouseleave", function () { c.removeClass("vjs-next-suggestion-show"), b.trigger("next_suggestion_hide") }) }) }); var e = ["touchstart", "touchend", "click"], f = function (a) { a.stopPropagation() }, g = d.getComponent("Button"); d.registerComponent("NextButton", d.extend(g, { controlText_: "Next", constructor: function (a, b) { g.call(this, a, b), this.on(e, f) }, createEl: function () { var a = g.prototype.createEl.apply(this, arguments); return a.appendChild(d.createEl("div", { className: "vjs-button-icon", innerHTML: '\n \n \n' })), a }, buildCSSClass: function () { return "vjs-next-button " + g.prototype.buildCSSClass.call(this) }, handleClick: function (a) { this.player_.trigger("next_suggestion_play") } })) }, { "video.js": 269 }], 293: [function (a, b, c) { "use strict"; function d() { return window.top == window ? location.href : document.referrer } var e = a("video.js"), f = { facebook: { text: "Facebook", link: "https://www.facebook.com/sharer/sharer.php?u={url}", svg: '\n \n \n\n', popup: { width: 560, height: 610 } }, twitter: { text: "Twitter", link: "https://twitter.com/intent/tweet?url={url}&text={title}", svg: '\n \n \n\n', popup: { width: 500, height: 260 } }, blogger: { text: "Blogger", link: "https://www.blogger.com/blog-this.g?u={url}&n={title}", svg: '\n \n \n\n', popup: { width: 705, height: 455 } }, reddit: { text: "Reddit", link: "https://reddit.com/submit?url={url}", svg: '\n \n \n \n \n \n \n \n\n', popup: { width: 860, height: 770 } }, tumblr: { text: "Tumblr", link: "https://www.tumblr.com/widgets/share/tool?canonicalUrl={url}", svg: '\n \n \n\n', popup: { width: 600, height: 500 } }, vk: { text: "VK", link: "https://vk.com/share.php?url={url}", svg: '\n \n \n\n', popup: { width: 650, height: 580 } }, linkedin: { text: "LinkedIn", link: "https://www.linkedin.com/shareArticle?url={url}&title={title}", svg: '\n \n \n\n', popup: { width: 550, height: 470 } }, email: { text: "Email", link: "mailto:?body={url}", svg: '\n \n \n\n\n' } }; e.plugin("share", function (a) { var b = this; b.ready(function () { b.addChild("ShareButton", a || {}) }) }); var g = ["touchstart", "touchend", "click"], h = function (a) { a.stopPropagation() }, i = e.getComponent("Button"); e.registerComponent("ShareButton", e.extend(i, { controlText_: "Share video", constructor: function (a, b) { i.call(this, a, b), this.on(g, h) }, createEl: function () { var a = i.prototype.createEl.apply(this, arguments); return a.appendChild(e.createEl("div", { className: "vjs-button-icon", innerHTML: '\n \n\n' })), a }, buildCSSClass: function () { return "vjs-share-button " + i.prototype.buildCSSClass.call(this) }, handleClick: function (a) { var b = this.player_, c = b.addChild("shareDialog", this.options_); this.on(c, "dispose", function () { b.removeChild(c), this.show() }), c.open(), this.hide() } })); var j = e.getComponent("ModalDialog"); e.registerComponent("ShareDialog", e.extend(j, { constructor: function (a, b) { j.call(this, a, b), this.on(g, h), this.on(this.getChild("closeButton"), g, h), this.options_.fillAlways = !1, this.hasBeenFilled_ = !0; var c = this.contentEl_; c.appendChild(e.createEl("div", { className: "vjs-share-dialog-title", innerHTML: this.localize("Share video") })); var d = e.createEl("div", { className: "vjs-share-dialog-buttons" }); c.appendChild(d), this.contentEl_ = d; var i = Object.keys(f), k = b.buttons || i, l = this; k.forEach(function (a) { -1 != i.indexOf(a) && l.addChild("ShareLink", e.mergeOptions(l.options_, { type: a })) }), this.contentEl_ = c }, buildCSSClass: function () { return "vjs-share-dialog " + j.prototype.buildCSSClass.call(this) } })); var k = e.getComponent("ClickableComponent"); e.registerComponent("ShareLink", e.extend(k, { constructor: function (a, b) { k.call(this, a, b), this.on(g, h), this.type_ = b.type; var c = f[this.type_]; this.controlText(c.text), this.addClass("vjs-share-" + this.type_); var i = this.options_.url || d(); this.href = c.link.replace("{url}", encodeURIComponent(i)).replace("{title}", encodeURIComponent(this.options_.title || "")), this.link = e.createEl("a", { className: "vjs-share-link", innerHTML: c.svg }, { target: "email" != this.type_ ? "_blank" : "", href: this.href }), this.link.addEventListener("touchstart", function (a) { a.stopPropagation() }), this.link.addEventListener("click", this.on_click.bind(this)), this.el_.appendChild(this.link) }, on_click: function (a) { var b, c = f[this.type_]; (b = c.popup) && (a.preventDefault(), window.open(this.href, this.type_, "left=20,top=20,height=" + b.height + ",width=" + b.width + ",resizable=1")) } })) }, { "video.js": 269 }], 294: [function (a, b, c) { "use strict"; function d() { try { throw new Error } catch (b) { var a = /.*at [^\(]*\((.*):.+:.+\)$/gi.exec(b.stack); if (a) return document.querySelector('script[src="' + a[1] + '"]') } } function e(a, b) { var c = a.play(); if (c && c.then) return void c.then(function () { b() }, function (a) { b(a) }); if (a.paused) return b("play refused"); var d = function (c) { if (a.removeEventListener("playing", d), a.removeEventListener("error", d), a.removeEventListener("abort", d), a.removeEventListener("pause", d), "playing" == c.type) return b(); var e, f = "not playing: " + c.type; "error" == c.type && (e = a.error && a.error.message) && (f += ", " + e), b(f) }; a.addEventListener("playing", d), a.addEventListener("error", d), a.addEventListener("abort", d), a.addEventListener("pause", d) } var f = window.videojs, g = b.exports; g.small_mp4_with_sound = "data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE=", g.load_script = function (a, b, c) { var d = document.createElement("script"); d.src = a, d.onload = b, c && Object.assign(d, c), document.getElementsByTagName("head").length ? document.getElementsByTagName("head")[0].appendChild(d) : document.getElementsByTagName("body").length ? document.getElementsByTagName("body")[0].appendChild(d) : document.head && document.head.appendChild(d) }, g.current_script = function () { var a; if (a = document.querySelector('script[src*="//player.h-cdn.com/player/"]') || document.querySelector('script[src*="//player2.h-cdn.com/"]') || document.querySelector('script[src*="//cdn.jsdelivr.net/hola_player/"]') || document.querySelector('script[src*="//cdn.jsdelivr.net/npm/@hola.org/hola_player@"]')) return a; if (a = document.currentScript || d()) return a; var b = document.getElementsByTagName("script"); return b[b.length - 1] }; var h = 0, i = Math.floor(1e4 * Math.random()) + ""; g.unique_id = function (a) { return (a ? a + "_" : "") + i + "_" + ++h }, g.scaled_number = function (a) { if (void 0 === a) return ""; if (!a) return "0"; var b = 1024, c = ["", "K", "M", "G", "T", "P"], d = Math.floor(Math.log(a) / Math.log(b)); return (a /= Math.pow(b, d)) < .001 ? "0" : (a >= b - 1 && (a = Math.trunc(a)), a.toFixed(a < 1 ? 3 : a < 10 ? 2 : a < 100 ? 1 : 0).replace(/\.0*$/, "") + c[d]) }, g.can_autoplay = function (a, b, c) { if (f.browser.IE_VERSION && f.browser.IE_VERSION < 10) return "sound"; if (void 0 !== g._can_autoplay && !c) return Array.isArray(g._can_autoplay) ? void g._can_autoplay.push(a) : void a(g._can_autoplay); g._can_autoplay = g._can_autoplay || []; var d = document.createElement("video"); d.muted = b, d.setAttribute("muted", b), d.setAttribute("playsinline", 1), d.src = g.small_mp4_with_sound, e(d, function (c) { var d; if (c ? b && (d = !1) : d = b ? "muted" : "sound", void 0 === d) setTimeout(function () { g.can_autoplay(a, !0, !0) }); else { var e = g._can_autoplay; if (g._can_autoplay = d, a(d), !Array.isArray(e)) return; for (var f = 0; f < e.length; f++) e[f](d) } }) } }, {}] }, {}, [289])(289) }); }; hola_vjs_provider_require = function () { var res, define = function (name, fn) { res = fn(); }; define.amd = true; ! function (a) { if ("object" == typeof exports && "undefined" != typeof module) module.exports = a(); else if ("function" == typeof define && define.amd) define([], a); else { var b; b = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this, b.hola_videojs_hls = a() } }(function () { return function () { function a(b, c, d) { function e(g, h) { if (!c[g]) { if (!b[g]) { var i = "function" == typeof require && require; if (!h && i) return i(g, !0); if (f) return f(g, !0); var j = new Error("Cannot find module '" + g + "'"); throw j.code = "MODULE_NOT_FOUND", j } var k = c[g] = { exports: {} }; b[g][0].call(k.exports, function (a) { return e(b[g][1][a] || a) }, k, k.exports, a, b, c, d) } return c[g].exports } for (var f = "function" == typeof require && require, g = 0; g < d.length; g++) e(d[g]); return e } return a }()({ 1: [function (a, b, c) { function d(a, b) { var c = b.match(new RegExp("[?&#]" + a + "(=.*?)?(#|&|$)")); return c && (c[1] ? c[1].replace(/^=/, "") : "") } function e(a) { var b; return m.forEach(function (c) { b = b || d(a, c) }), b } function f(a, b) { var c, d = "hola_provider_" + a; return null != (c = e(d)) ? console.info(k.provider_id + ": using " + d + " from url") : l && void 0 != (c = l["hola_provider_" + a]) ? console.info(k.provider_id + ": using " + d + " from lstorage") : k.owner && k.owner.hasAttribute(a.replace("_", "-")) ? c = k.owner.getAttribute(a.replace("_", "-")) : i[a] && !i[a].match(/^{\[=.*\]}$/) && (c = i[a]), c || ("" == c ? b : c) } function g(a, b, c) { return !((a = "string" == typeof a ? [a] : a) && a instanceof Array) || c == a.indexOf(b) >= 0 } function h() { var a; if (a = f("force", "enabled")) return "disabled" == a; if (a = f("register_percent", "n/a")) { if (isNaN(a) || a < 0 || a > 100) return console.error(k.provider_id + ": invalid register_percent, expected a value between 0 and 100 but " + a + " found"), !0; if (!a || 100 * Math.random() > a) return !0 } if (a = f("register_browser")) { var b = j.user_agent.guess_browser(), c = j.user_agent.guess(), d = c.mobile ? "mobile" : c.tv ? "tv" : "desktop"; b.opera && "chrome" == b.browser && (b.browser = "opera"); try { a = JSON.parse(a) } catch (b) { a = {} } if (!(g(a.browser_in, b.browser, !0) && g(a.browser_out, b.browser) && g(a.os_in, c.os, !0) && g(a.os_out, c.os) && g(a.platform_in, d, !0) && g(a.platform_out, d))) return !0 } } var i = a("./zdot_conf.js"), j = a("./external_util.js"), k = {}, l = "undefined" != typeof window && window.localStorage, m = []; "undefined" != typeof window && (window.top != window && m.push(document.referrer), m.push(location.href)), k.init = function (a) { k.provider_id = a, k.owner = document.currentScript || document.querySelector("#" + k.provider_id); var b, c = { autoinit: !0, disabled: !1, hls_params: {} }; if (i.embedded_provider ? c.autoinit = !1 : (f("manual_init", !0) && (c.autoinit = !1), c.disabled = h()), b = f("hls_params")) try { c.hls_params = j.conv.parse_obj(JSON.parse(b), { func: !0, re: !0 }) } catch (a) {} return c }, b.exports = k }, { "./external_util.js": 2, "./zdot_conf.js": 4 }], 2: [function (a, b, c) { var d = b.exports = {}; d.conv = function () { function a(a, b) { if (!a || "object" != typeof a || 1 != Object.keys(a).length) return a; if (a.__Function__ && b.func) return new Function("", '"use strict";return (' + a.__Function__ + ");")(); if (a.__RegExp__ && b.re) { var c = /^\/(.*)\/(\w*)$/.exec(a.__RegExp__); if (!c) throw new Error("failed parsing regexp"); return new RegExp(c[1], c[2]) } return a } function b(c, d) { if (!c || "object" != typeof c) return c; if (Array.isArray(c)) { for (var e = 0; e < c.length; e++) c[e] = b(c[e], d); return c } var f = a(c, d); if (f !== c) return f; for (var g in c) c[g] = b(c[g], d); return c } var c = {}; return c.parse_obj = b, c }(), d.user_agent = function () { function a(a, b) { var c; if (c = /(?:iPhone|iPad|iPod|iPod touch);.*?OS ([\d._]+)/.exec(a)) { var d = c[1]; return { browser: "safari", version: b || d, ios: d, hola_ios: n && window.hola_cdn_sdk || h.test(a) } } if (/HolaCDN iOS/.exec(a)) return { browser: "safari", hola_ios: !0 } } function b(a) { if (m.test(a) || /Android/.test(a) || / Mobile /.test(a) || i.test(a)) return !1; var b = "(?: (\\w*)\\/)?", c = "\\/[\\d\\.]+", d = new RegExp("AppleWebKit" + c + "(?: \\(.*\\))?" + b + ".* Chrome" + c + b + ".* Safari" + c + b).exec(a); return d && (d[1] || d[2] || d[3]) } var c = {}, d = { "10.0": "10.0", 6.3: "8.1", 6.2: "8", 6.1: "7", "6.0": "vista", 5.2: "2003", 5.1: "xp", "5.0": "2000" }, e = { x86_64: "64", i686: "32", arm: "arm" }, f = /\bhola_android\b/i, g = /Android.* CDNService\/([0-9\.]+)$/, h = / CDNService\/([0-9\.]+)$/, i = /\bOPR\b\/(\d+)/i, j = /\bEdge\b\/(\d+)/i, k = /\bxbox\b/i, l = /\bUCBrowser\b\/(\d+)/i, m = / Version\/(\d+)(\.\d)/, n = !0; return c.guess_browser = function (c) { var d; if (c = c || (n ? window.navigator && navigator.userAgent : ""), d = /\bOpera Mini\/(\d+)/.exec(c)) return { browser: "opera_mini", version: d[1] }; var e = l.exec(c); if (d = /[( ]MSIE ([6789]|10).\d[);]/.exec(c)) return { browser: "ie", version: d[1], xbox: k.test(c) }; if (d = /[( ]Trident\/\d+(\.\d)+.*rv:(\d\d)(\.\d)+[);]/.exec(c)) return { browser: "ie", version: d[2], xbox: k.test(c) }; if (d = / Chrome\/(\d+)(\.\d+)+.* Safari\/\d+(\.\d+)+/.exec(c)) { var h, o = i.exec(c); return (h = j.exec(c)) ? { browser: "edge", version: h[1] } : { browser: "chrome", version: d[1], android: c.match(/Android/), webview: c.match(m), hola_android: f.test(c), hola_app: g.test(c), chromium_based: b(c), opera: o && !!o[1], opera_version: o ? o[1] : void 0, ucbrowser: e && !!e[1], ucbrowser_version: e ? e[1] : void 0, webos_app: /Web0S/.test(c) } } return (d = / QupZilla\/(\d+\.\d+\.\d+).* Safari\/\d+.\d+/.exec(c)) ? { browser: "qupzilla", version: d[1] } : (d = /\(PlayStation (\d+) (\d+\.\d+)\).* AppleWebKit\/\d+.\d+/.exec(c)) ? { browser: "playstation" + d[1], version: d[2] } : (d = / Version\/(\d+)(\.\d)+.* Safari\/\d+.\d+/.exec(c)) ? c.match(/Android/) ? { browser: "chrome", version: d[1], android: !0, webview: !0, hola_android: f.test(c), hola_app: g.test(c), ucbrowser: e && !!e[1], ucbrowser_version: e ? e[1] : void 0 } : a(c, d[1]) || { browser: "safari", version: d[1] } : (d = / (Firefox|PaleMoon)\/(\d+).\d/.exec(c)) ? { browser: "firefox", version: d[2], palemoon: "PaleMoon" == d[1] } : /Hola\/\d+\.\d+.*?(?:iPhone|iPad|iPod)/.exec(c) ? { browser: "safari", version: "Hola" } : (d = a(c)) ? d : {} }, c.guess = function (a, b) { var c; return a = a || (n ? navigator.userAgent : ""), b = b || (n ? navigator.platform : ""), k.exec(a) ? { os: "xbox", mobile: !1 } : (c = /Windows(?: NT(?: (.*?))?)?[);]/.exec(a)) ? { os: "windows", version: d[c[1]], release_version: c[1], arch: a.match(/WOW64|Win64|x64/) ? "64" : "32", mobile: !1 } : (c = /Macintosh.*; (?:Intel|PPC) Mac OS X (\d+[._]\d+)/.exec(a)) ? { os: "macos", version: c[1].replace("_", "."), mobile: !1 } : /Macintosh/.exec(a) ? { os: "macos", mobile: !1 } : /Web0S.*SmartTV/.exec(a) ? { os: "webos", version: /Chrome/.test(a) ? "3" : "2", mobile: !1, tv: !0 } : (c = /Android(?: (\d+\.\d+))?/.exec(a)) ? { os: "android", version: c[1], mobile: !0 } : (c = /(Linux|CrOS|OpenBSD|FreeBSD)(?: (x86_64|i686|arm))?/.exec(a)) ? i.test(a) && "Linux" == c[1] && "x86_64" == c[2] && /^Linux arm/.test(b) ? { os: "android", mobile: !0 } : { os: c[1].toLowerCase(), arch: e[c[2]], nix: !0, mobile: !1 } : (c = /(?:iPhone|iPad|iPod|iPod touch);.*?OS (\d+[._]\d+)/.exec(a)) ? { os: "ios", version: c[1].replace("_", "."), mobile: !0 } : /iPhone|iPad|iPod|HolaCDN iOS/.exec(a) ? { os: "ios", mobile: !0 } : /PLAYSTATION/.exec(a) ? { os: "ps", mobile: !1 } : /Windows Phone/.exec(a) ? { os: "winphone", mobile: !0 } : /HitLeap Viewer/.exec(a) ? { os: "windows", mobile: !1 } : {} }, c }() }, {}], 3: [function (a, b, c) { try { b.exports = function () { var b = a("./conf.js").init("hola_videojs_hls_provider"); if (b.disabled) return { disabled: !0, attach: function () {}, detach: function () {} }; var c = window.Hls = a("@hola.org/hls.js").default, d = a("@hola.org/videojs5-hlsjs-source-handler"); return d.Hls = c, d.version = "1.0.148", d.provider_version = d.VERSION, d.hls_version = d.Hls.version, d.hls_params = b.hls_params, b.autoinit && d.attach(), d }() } catch (a) { b.exports = { init_failure: a } } }, { "./conf.js": 1, "@hola.org/hls.js": 29, "@hola.org/videojs5-hlsjs-source-handler": 45 }], 4: [function (a, b, c) { b.exports = { embedded_provider: function (a) { return 1 == a }(" 1"), register_percent: " 50", register_browser: "{[=it.HOLA_REGISTER_BROWSER]}", hls_params: "{\"xhrSetup\":{\"__Function__\":\"function (x){ x.withCredentials = true; }\"}}" } }, {}], 5: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../helper/buffer-helper"), n = d(m), o = a("../errors"), p = a("../utils/logger"), q = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.FRAG_LOADING, j.default.FRAG_LOAD_PROGRESS, j.default.FRAG_LOADED, j.default.ERROR)); return c.lastLoadedFragLevel = 0, c._autoLevelCapping = -1, c._nextAutoLevel = -1, c.hls = a, c.onCheck = c.abandonRulesCheck.bind(c), c } return g(b, a), h(b, [{ key: "destroy", value: function () { this.clearTimer(), l.default.prototype.destroy.call(this) } }, { key: "onFragLoading", value: function (a) { this.timer || (this.timer = setInterval(this.onCheck, 100)), this.fragCurrent = a.frag } }, { key: "onFragLoadProgress", value: function (a) { var b = a.stats; void 0 === b.aborted && 1 === a.frag.loadCounter && (this.lastfetchduration = (performance.now() - b.trequest) / 1e3, this.lastbw = 8 * b.loaded / this.lastfetchduration) } }, { key: "abandonRulesCheck", value: function () { var a = this.hls, b = a.media, c = this.fragCurrent; if (!c.loader || c.loader.stats && c.loader.stats.aborted) return p.logger.warn("frag loader destroy or aborted, disarm abandonRulesCheck"), void this.clearTimer(); if (b && (!b.paused || !b.readyState) && c.autoLevel && c.level) { var d = performance.now() - c.trequest; if (d > 500 * c.duration) { var e = Math.max(1, 1e3 * c.loaded / d); c.expectedLen < c.loaded && (c.expectedLen = c.loaded); var f = b.currentTime, g = (c.expectedLen - c.loaded) / e, h = n.default.bufferInfo(b, f, a.config.maxBufferHole).end - f; if (h < 2 * c.duration && g > h) { var i = void 0, k = void 0; for (k = c.level - 1; k >= 0 && (i = c.duration * a.levels[k].bitrate / (6.4 * e), p.logger.log("fragLoadedDelay/bufferStarvationDelay/fragLevelNextLoadedDelay[" + k + "] :" + g.toFixed(1) + "/" + h.toFixed(1) + "/" + i.toFixed(1)), !(i < h)); k--); i < g && (k = Math.max(0, k), a.nextLoadLevel = k, p.logger.warn("loading too slow, abort fragment loading and switch to level " + k), c.loader.abort(), this.clearTimer(), a.trigger(j.default.FRAG_LOAD_EMERGENCY_ABORTED, { frag: c })) } } } } }, { key: "onFragLoaded", value: function (a) { this.clearTimer(), this.lastLoadedFragLevel = a.frag.level, this._nextAutoLevel = -1 } }, { key: "onError", value: function (a) { switch (a.details) { case o.ErrorDetails.FRAG_LOAD_ERROR: case o.ErrorDetails.FRAG_LOAD_TIMEOUT: this.clearTimer() } } }, { key: "clearTimer", value: function () { this.timer && (clearInterval(this.timer), this.timer = null) } }, { key: "autoLevelCapping", get: function () { return this._autoLevelCapping }, set: function (a) { this._autoLevelCapping = a } }, { key: "nextAutoLevel", get: function () { var a, b, c = this.lastbw, d = this.hls; if (-1 === this._autoLevelCapping && d.levels && d.levels.length) { if (b = d.levels.length - 1, this.maxLevelBitrate) { for (a = b; a >= 0 && d.levels[a].bitrate > this.maxLevelBitrate; a--); a > 0 && (b = a) } } else b = this._autoLevelCapping; if (-1 !== this._nextAutoLevel) return Math.min(this._nextAutoLevel, b); for (a = 0; a <= b; a++) if ((a <= this.lastLoadedFragLevel ? .8 * c : .7 * c) < d.levels[a].bitrate) return Math.max(0, a - 1); return a - 1 }, set: function (a) { this._nextAutoLevel = a } }]), b }(l.default); c.default = q }, { "../errors": 23, "../event-handler": 24, "../events": 25, "../helper/buffer-helper": 27, "../utils/logger": 41 }], 6: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../utils/logger"), n = a("../errors"), o = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.MEDIA_ATTACHING, j.default.MEDIA_DETACHING, j.default.BUFFER_RESET, j.default.BUFFER_APPENDING, j.default.BUFFER_CODECS, j.default.BUFFER_EOS, j.default.BUFFER_FLUSHING, j.default.FRAG_PARSING_DATA, j.default.FRAG_APPENDING, j.default.LEVEL_UPDATED)); return c._msDuration = null, c._levelDuration = null, c.onsbue = c.onSBUpdateEnd.bind(c), c.onsbe = c.onSBUpdateError.bind(c), c.tracks = {}, c } return g(b, a), h(b, [{ key: "destroy", value: function () { l.default.prototype.destroy.call(this) } }, { key: "onFragParsingData", value: function (a) { var b = a.type, c = this.tracks.audio; if ("audio" === b && c && "audio/mpeg" === c.container) { var d = this.sourceBuffer.audio; if (Math.abs(d.timestampOffset - a.startPTS) > .1) { var e = d.updating; try { d.abort() } catch (a) { e = !0, m.logger.warn("can not abort audio buffer: " + a) } e ? this.audioTimestampOffset = a.startPTS : (m.logger.warn("change mpeg audio timestamp offset from " + d.timestampOffset + " to " + a.startPTS), d.timestampOffset = a.startPTS) } } } }, { key: "onMediaAttaching", value: function (a) { var b = this.media = a.media; if (b) { var c = this.mediaSource = new MediaSource; this.onmso = this.onMediaSourceOpen.bind(this), this.onmse = this.onMediaSourceEnded.bind(this), this.onmsc = this.onMediaSourceClose.bind(this), c.addEventListener("sourceopen", this.onmso), c.addEventListener("sourceended", this.onmse), c.addEventListener("sourceclose", this.onmsc); var d = URL.createObjectURL(c); m.logger.log("set object url " + d), b.src = d, this.sbAppend = 0 } } }, { key: "onMediaDetaching", value: function () { m.logger.log("media source detaching"); var a = this.mediaSource; if (a) { if ("open" === a.readyState) try { a.endOfStream() } catch (a) { m.logger.warn("onMediaDetaching:" + a.message + " while calling endOfStream") } a.removeEventListener("sourceopen", this.onmso), a.removeEventListener("sourceended", this.onmse), a.removeEventListener("sourceclose", this.onmsc), this.media && (this.media.removeAttribute("src"), this.media.load()), this.mediaSource = null, this.media = null, this.pendingTracks = null, this.tracks = {}, this.sourceBuffer = {}, this.flushRange = [], this.segments = [], this.appended = 0 } this.onmso = this.onmse = this.onmsc = null, this.waitForAppended = !1, this.hls.trigger(j.default.MEDIA_DETACHED) } }, { key: "onMediaSourceOpen", value: function () { m.logger.log("media source opened"), this.hls.trigger(j.default.MEDIA_ATTACHED, { media: this.media }), this.mediaSource.removeEventListener("sourceopen", this.onmso); var a = this.pendingTracks; a && (this.onBufferCodecs(a), this.pendingTracks = null, this.doAppending()) } }, { key: "onMediaSourceClose", value: function () { m.logger.log("media source closed") } }, { key: "onMediaSourceEnded", value: function () { m.logger.log("media source ended") } }, { key: "onFragAppending", value: function () { (this.segments || []).length || this.isSbUpdating() ? this.waitForAppended = !0 : this.hls.trigger(j.default.FRAG_APPENDED) } }, { key: "isSbUpdating", value: function () { var a = this.sourceBuffer; if (a) for (var b in a) if (a[b].updating) return !0 } }, { key: "dump", value: function (a) { for (var b = "", c = a.buffered, d = c.length, e = 0; e < d; e++) b += "[" + c.start(e) + "," + c.end(e) + "]"; return b } }, { key: "clear", value: function (a, b) { var c, d = this.sourceBuffer, e = a.currentTime - b, f = a.buffered; if (!(e <= 0 || this.isSbUpdating()) && f.length && (c = f.start(0)) < e) { m.logger.log("video buffered: " + this.dump(this.media) + " removing: [" + c + "," + e + "]"); for (var g in d) d[g].remove(c, e) } } }, { key: "onSBUpdateEnd", value: function (a) { if (this.audioTimestampOffset) { var b = this.sourceBuffer.audio; b && !b.updating && (m.logger.warn("change mpeg audio timestamp offset from " + b.timestampOffset + " to " + this.audioTimestampOffset), b.timestampOffset = this.audioTimestampOffset, delete this.audioTimestampOffset) } this._needsFlush && this.doFlush(), this._needsEos && this.onBufferEos(), a && this.sbAppend--, m.logger.log("sb updateend " + (a ? a.target === this.sourceBuffer.audio ? "audio" : a.target === this.sourceBuffer.video ? "video" : "unknown sb" : "unknown") + " " + this.sbAppend), this.updateMediaElementDuration(), this.doAppending(), !this.waitForAppended || this.segments.length || this.isSbUpdating() || (this.hls.trigger(j.default.FRAG_APPENDED), this.waitForAppended = !1); var c = void 0; if ((c = this.hls.config.keepBuffered) && this.media) try { this.clear(this.media, c) } catch (a) { m.logger.log(a) } } }, { key: "onSBUpdateError", value: function (a) { var b = this.lastSegment ? "last segment type:" + this.lastSegment.type + ",size:" + this.lastSegment.data.length + ")" : ""; m.logger.error("onSBUpdateError: sourceBuffer error:" + a + " " + b), this.lastSegment = void 0, this.printDump(), this.hls.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.BUFFER_APPENDING_ERROR, fatal: !1 }) } }, { key: "onBufferReset", value: function () { var a = this.sourceBuffer, b = this.segments || []; m.logger.log("onBufferReset: pending segments:" + b.length); for (var c in a) { var d = a[c]; try { this.mediaSource.removeSourceBuffer(d), d.removeEventListener("updateend", this.onsbue), d.removeEventListener("error", this.onsbe) } catch (a) {} } this.sourceBuffer = {}, this.flushRange = [], this.appended = 0, this.segments = [], this.dumpSegments = void 0 } }, { key: "isTrackChanged", value: function (a) { var b = void 0, c = this.sourceBuffer; if (c.video && !a.video || !c.video && c.audio && a.video) return !0; if (c.audio && (b = a.audio)) { var d = this.tracks.audio, e = b.levelCodec || b.codec, f = "audio/mpeg" === b.container || "audio/mpeg" === d.container || "mp3" === e || "mp3" === d.codec; if ((b.container !== d.container || d.codec !== e) && f) return !0 } } }, { key: "onBufferCodecs", value: function (a) { var b = this.mediaSource; if (!b || "open" !== b.readyState) return void(this.pendingTracks = a); var c = this.sourceBuffer; if (this.isTrackChanged(a)) { var d = this.media; return this.hls.detachMedia(), void this.hls.attachMedia(d) } for (var e in a) if (!c[e]) { var f = a[e], g = f.levelCodec || f.codec, h = f.container + ";codecs=" + g; m.logger.log("creating sourceBuffer with mimeType:" + h); try { var i = c[e] = b.addSourceBuffer(h); i.addEventListener("updateend", this.onsbue), i.addEventListener("error", this.onsbe), this.tracks[e] = { codec: g, container: f.container } } catch (a) { m.logger.error("error while trying to add sourceBuffer:" + a.message), this.hls.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.BUFFER_ADD_CODEC_ERROR, fatal: !1, err: a, mimeType: h }) } } } }, { key: "onBufferAppending", value: function (a) { this.segments = this.segments || [], this.segments.push(a), this.doAppending() } }, { key: "onBufferAppendFail", value: function (a) { var b = this.lastSegment ? "last segment type:" + this.lastSegment.type + ",size:" + this.lastSegment.data.length + ")" : ""; m.logger.error("onBufferAppendFail:sourceBuffer error:" + a.event + " " + b), this.lastSegment = void 0, this.printDump(), this.hls.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.BUFFER_APPENDING_ERROR, fatal: !1, frag: this.fragCurrent }) } }, { key: "onBufferEos", value: function () { var a = this.sourceBuffer, b = this.mediaSource; b && "open" === b.readyState && (a.audio && a.audio.updating || a.video && a.video.updating ? this._needsEos = !0 : (m.logger.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment"), m.logger.log("append/updateend count " + this.sbAppend), b.endOfStream(), this._needsEos = !1)) } }, { key: "onBufferFlushing", value: function (a) { this.flushRange.push({ start: a.startOffset, end: a.endOffset }), this.flushBufferCounter = 0, this.doFlush() } }, { key: "onLevelUpdated", value: function (a) { var b = a.details; 0 !== b.fragments.length && (this._levelDuration = b.totalduration + b.fragments[0].start, this.updateMediaElementDuration()) } }, { key: "updateMediaElementDuration", value: function () { var a = this.media, b = this.mediaSource, c = this._levelDuration; if (null !== c && a && b && 0 !== a.readyState && "open" === b.readyState) { for (var d = 0; d < b.sourceBuffers.length; d++) if (b.sourceBuffers[d].updating) return; null === this._msDuration && (this._msDuration = b.duration); var e = a.duration; (c > this._msDuration && c > e || e === 1 / 0 || isNaN(e)) && (m.logger.log("Updating mediasource duration to " + c.toFixed(3)), this._msDuration = b.duration = c) } } }, { key: "doFlush", value: function () { for (; this.flushRange.length;) { var a = this.flushRange[0]; if (!this.flushBuffer(a.start, a.end)) return void(this._needsFlush = !0); this.flushRange.shift(), this.flushBufferCounter = 0 } if (0 === this.flushRange.length) { this._needsFlush = !1; var b = 0, c = this.sourceBuffer; for (var d in c) b += c[d].buffered.length; this.appended = b, this.hls.trigger(j.default.BUFFER_FLUSHED) } } }, { key: "dumpSegment", value: function (a) { var b = void 0, c = a.data.length, d = "queue:" + this.segments.length + "type:" + a.type + ",size:" + c + ",buf:["; for (b = 0, c = Math.min(c, 10); b < c; b++) b && (d += ","), d += a.data[b]; d += "..]", this.dumpSegments ? this.dumpSegments.push(d) : this.dumpSegments = [d], this.dumpSegments.length > 10 && this.dumpSegments.shift() } }, { key: "printDump", value: function () { this.dumpSegments && this.dumpSegments.length && m.logger.error(this.dumpSegments.join("|")) } }, { key: "doAppending", value: function () { var a = this.hls, b = this.sourceBuffer, c = this.segments; if (b && Object.keys(b).length) { if (!this.media) return; if (this.media.error) return this.segments = [], void m.logger.error("trying to append although a media error occured, flush segment and abort"); if (this.isSbUpdating()) return void m.logger.log("sb update in progress"); if (c.length) { var d = c.shift(); this.dumpSegment(d); try { m.logger.log("appending " + d.type + " SB, size:" + d.data.length + " " + this.sbAppend), b[d.type] ? (this.lastSegment = d, b[d.type].appendBuffer(d.data), this.appendError = 0, this.appended++, this.sbAppend++) : this.onSBUpdateEnd() } catch (b) { m.logger.error("error while trying to append buffer: " + b.message), c.unshift(d); var e = { type: n.ErrorTypes.MEDIA_ERROR }; if (22 !== b.code) { if (this.appendError ? this.appendError++ : this.appendError = 1, e.details = n.ErrorDetails.BUFFER_APPEND_ERROR, e.frag = this.fragCurrent, e.reason = b.message + " (type:" + d.type + ",size:" + d.data.length + ")", this.appendError > a.config.appendErrorMaxRetry) return m.logger.log("fail " + a.config.appendErrorMaxRetry + " times to append segment in sourceBuffer"), this.segments = [], e.fatal = !0, void a.trigger(j.default.ERROR, e); e.fatal = !1, a.trigger(j.default.ERROR, e) } else this.segments = [], e.details = n.ErrorDetails.BUFFER_FULL_ERROR, a.trigger(j.default.ERROR, e) } } } } }, { key: "flushBuffer", value: function (a, b) { var c, d, e, f, g, h; if (m.logger.log("flushBuffer,pos/start/end: " + this.media.currentTime + "/" + a + "/" + b), this.flushBufferCounter < this.appended && this.sourceBuffer) for (var i in this.sourceBuffer) { if (c = this.sourceBuffer[i], c.updating) return m.logger.warn("cannot flush, sb updating in progress"), !1; for (d = 0; d < c.buffered.length; d++) if (e = c.buffered.start(d), f = c.buffered.end(d), this.hls.config.browser.isFirefox && b === Number.POSITIVE_INFINITY ? (g = a, h = b) : (g = Math.max(e, a), h = Math.min(f, b)), Math.min(h, f) - g > .5) return this.flushBufferCounter++, m.logger.log("flush " + i + " [" + g + "," + h + "], of [" + e + "," + f + "], pos:" + this.media.currentTime), c.remove(g, h), !1 } else m.logger.warn("abort flushing too many retries"); return m.logger.log("buffer flushed"), !0 } }]), b }(l.default); c.default = o }, { "../errors": 23, "../event-handler": 24, "../events": 25, "../utils/logger": 41 }], 7: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = function (a) { function b(a) { return e(this, b), f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.FPS_DROP_LEVEL_CAPPING, j.default.MEDIA_ATTACHING, j.default.MANIFEST_PARSED)) } return g(b, a), h(b, [{ key: "destroy", value: function () { this.hls.config.capLevelToPlayerSize && (this.media = this.restrictedLevels = null, this.autoLevelCapping = Number.POSITIVE_INFINITY, this.timer && (this.timer = clearInterval(this.timer))) } }, { key: "onFpsDropLevelCapping", value: function (a) { this.restrictedLevels || (this.restrictedLevels = []), this.isLevelRestricted(a.droppedLevel) || this.restrictedLevels.push(a.droppedLevel) } }, { key: "onMediaAttaching", value: function (a) { this.media = a.media instanceof HTMLVideoElement ? a.media : null } }, { key: "onManifestParsed", value: function (a) { this.hls.config.capLevelToPlayerSize && (this.autoLevelCapping = Number.POSITIVE_INFINITY, this.levels = a.levels, this.hls.firstLevel = this.getMaxLevel(a.firstLevel), clearInterval(this.timer), this.timer = setInterval(this.detectPlayerSize.bind(this), 1e3), this.detectPlayerSize()) } }, { key: "detectPlayerSize", value: function () { if (this.media) { var a = this.levels ? this.levels.length : 0; a && (this.hls.autoLevelCapping = this.getMaxLevel(a - 1), this.hls.autoLevelCapping > this.autoLevelCapping && this.hls.streamController.nextLevelSwitch(), this.autoLevelCapping = this.hls.autoLevelCapping) } } }, { key: "getMaxLevel", value: function (a) { var b = 0, c = void 0, d = void 0, e = this.mediaWidth, f = this.mediaHeight, g = 0, h = 0; for (c = 0; c <= a && (d = this.levels[c], !this.isLevelRestricted(c)) && (b = c, g = d.width, h = d.height, !(e <= g || f <= h)); c++); return b } }, { key: "isLevelRestricted", value: function (a) { return !(!this.restrictedLevels || -1 === this.restrictedLevels.indexOf(a)) } }, { key: "contentScaleFactor", get: function () { var a = 1; try { a = window.devicePixelRatio } catch (a) {} return a } }, { key: "mediaWidth", get: function () { var a = void 0; return this.media && (a = this.media.width || this.media.clientWidth || this.media.offsetWidth, a *= this.contentScaleFactor), a } }, { key: "mediaHeight", get: function () { var a = void 0; return this.media && (a = this.media.height || this.media.clientHeight || this.media.offsetHeight, a *= this.contentScaleFactor), a } }]), b }(l.default); c.default = m }, { "../event-handler": 24, "../events": 25 }], 8: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../utils/logger"), n = function (a) { function b(a) { return e(this, b), f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.MEDIA_ATTACHING)) } return g(b, a), h(b, [{ key: "destroy", value: function () { this.timer && clearInterval(this.timer), this.isVideoPlaybackQualityAvailable = !1 } }, { key: "onMediaAttaching", value: function (a) { this.hls.config.capLevelOnFPSDrop && (this.video = a.media instanceof HTMLVideoElement ? a.media : null, "function" == typeof this.video.getVideoPlaybackQuality && (this.isVideoPlaybackQualityAvailable = !0), clearInterval(this.timer), this.timer = setInterval(this.checkFPSInterval.bind(this), this.hls.config.fpsDroppedMonitoringPeriod)) } }, { key: "checkFPS", value: function (a, b, c) { var d = performance.now(); if (b) { if (this.lastTime) { var e = d - this.lastTime, f = c - this.lastDroppedFrames, g = b - this.lastDecodedFrames, h = 1e3 * f / e; if (this.hls.trigger(j.default.FPS_DROP, { currentDropped: f, currentDecoded: g, totalDroppedFrames: c }), h > 0 && f > this.hls.config.fpsDroppedMonitoringThreshold * g) { var i = this.hls.currentLevel; m.logger.warn("drop FPS ratio greater than max allowed value for currentLevel: " + i), i > 0 && (-1 === this.hls.autoLevelCapping || this.hls.autoLevelCapping >= i) && (i -= 1, this.hls.trigger(j.default.FPS_DROP_LEVEL_CAPPING, { level: i, droppedLevel: this.hls.currentLevel }), this.hls.autoLevelCapping = i, this.hls.streamController.nextLevelSwitch()) } } this.lastTime = d, this.lastDroppedFrames = c, this.lastDecodedFrames = b } } }, { key: "checkFPSInterval", value: function () { if (this.video) if (this.isVideoPlaybackQualityAvailable) { var a = this.video.getVideoPlaybackQuality(); this.checkFPS(this.video, a.totalVideoFrames, a.droppedVideoFrames) } else this.checkFPS(this.video, this.video.webkitDecodedFrameCount, this.video.webkitDroppedFrameCount) } }]), b }(l.default); c.default = n }, { "../event-handler": 24, "../events": 25, "../utils/logger": 41 }], 9: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../helper/level-helper"), n = d(m), o = a("../utils/logger"), p = a("../errors"), q = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.MANIFEST_LOADED, j.default.MANIFEST_REPLACE, j.default.LEVEL_LOADED, j.default.ERROR)); return c.ontick = c.tick.bind(c), c._manualLevel = c._autoLevelCapping = -1, c } return g(b, a), h(b, [{ key: "destroy", value: function () { this.cleanTimer(), this._manualLevel = -1 } }, { key: "cleanTimer", value: function () { this.timer && (clearTimeout(this.timer), this.timer = null) } }, { key: "clearLevelDetails", value: function () { this._levels && this._levels.forEach(function (a) { a.loadError = 0, a.fragmentError = !1; var b = a.details; b && b.live && (a.details = void 0) }) } }, { key: "startLoad", value: function () { this.canload = !0, this.levelRetryCount = 0, n.default.isLive(this._level, this._levels) && this.tick() } }, { key: "stopLoad", value: function () { this.canload = !1 } }, { key: "isVideoLevel", value: function (a) { return a.videoCodec || !a.audioCodec && (a.bitrate > 64e3 || a.width || a.height) } }, { key: "parseManifest", value: function (a) { var b = this, c = [], d = [], e = {}, f = !1, g = !1, h = this.hls.config.browser, i = h.isChrome || h.isFirefox, j = function (a, b) { return MediaSource.isTypeSupported(a + "/mp4;codecs=" + b) }; return a.levels.forEach(function (a) { b.isVideoLevel(a) && (f = !0), i && a.audioCodec && -1 !== a.audioCodec.indexOf("mp4a.40.34") && (a.audioCodec = void 0), (a.audioCodec || a.attrs && a.attrs.AUDIO) && (g = !0); var d = e[a.bitrate]; void 0 === d ? (e[a.bitrate] = c.length, a.url = [a.url], a.urlId = 0, c.push(a)) : c[d].url.push(a.url) }), f && g ? c.forEach(function (a) { b.isVideoLevel(a) && d.push(a) }) : d = c, d = d.filter(function (a) { var b = a.audioCodec, c = a.videoCodec; return (!b || j("audio", b)) && (!c || j("video", c)) }) } }, { key: "onManifestLoaded", value: function (a) { var b = this.parseManifest(a); if (b.length) { var c = b[0].bitrate; b.sort(function (a, b) { return a.bitrate - b.bitrate }), this._levels = b, this._firstLevel = void 0; for (var d = 0; d < b.length; d++) { var e = b[d]; e.loadError = 0, e.fragmentError = !1, e.bitrate === c && void 0 === this._firstLevel && (this._firstLevel = d, o.logger.log("manifest loaded," + b.length + " level(s) found, first bitrate:" + c)) } this.hls.trigger(j.default.MANIFEST_PARSED, { levels: this._levels, firstLevel: this._firstLevel, stats: a.stats }) } else this.hls.trigger(j.default.ERROR, { type: p.ErrorTypes.MEDIA_ERROR, details: p.ErrorDetails.MANIFEST_INCOMPATIBLE_CODECS_ERROR, fatal: !0, url: this.hls.url, reason: "no level with compatible codecs found in manifest" }) } }, { key: "onManifestReplace", value: function (a) { var b = this.parseManifest(a), c = this; b.length && (o.logger.log("replace manifest with a new version"), b.sort(function (a, b) { return a.bitrate - b.bitrate }), b.forEach(function (a, b) { c.levels[b].url = a.url })) } }, { key: "setLevelInternal", value: function (a) { var b = this._levels; if (a >= 0 && a < b.length) { this.cleanTimer(), this._level !== a && (o.logger.log("switching to level " + a), this._level = a, this.hls.trigger(j.default.LEVEL_SWITCH, { level: a })); var c = b[a]; if (!c.details || !0 === c.details.live) { o.logger.log("(re)loading playlist for level " + a); var d = c.urlId; this.hls.trigger(j.default.LEVEL_LOADING, { url: c.url[d], level: a, id: d }) } } else this.hls.trigger(j.default.ERROR, { type: p.ErrorTypes.OTHER_ERROR, details: p.ErrorDetails.LEVEL_SWITCH_ERROR, level: a, fatal: !1, reason: "invalid level idx" }) } }, { key: "onError", value: function (a) { if (!a.fatal) { var b = a.details, c = this.hls, d = void 0, e = void 0, f = !1, g = !1; switch (b) { case p.ErrorDetails.FRAG_LOAD_ERROR: case p.ErrorDetails.FRAG_LOAD_TIMEOUT: case p.ErrorDetails.FRAG_LOOP_LOADING_ERROR: case p.ErrorDetails.KEY_LOAD_ERROR: case p.ErrorDetails.KEY_LOAD_TIMEOUT: d = a.frag.level, g = !0; break; case p.ErrorDetails.LEVEL_LOAD_ERROR: case p.ErrorDetails.LEVEL_LOAD_TIMEOUT: d = a.level, f = !0 } if (void 0 !== d) { var h = this.hls.config; if (e = this._levels[d], e.loadError++, e.fragmentError = g, g) { var i = e.url.length; i > 1 && e.loadError < i ? (e.urlId = (e.urlId + 1) % i, h.clearLevelDetailsOnSwitching && (e.details = void 0), o.logger.warn("level controller," + b + " for level " + d + ": switching to redundant stream id " + e.urlId)) : -1 === this._manualLevel && d ? (o.logger.warn("level controller," + b + ": emergency switch-down for next fragment"), c.abrController.nextAutoLevel = d - 1) : (o.logger.warn("level controller, " + b + ": reload a fragment"), this._level = void 0) } else if (f) if (this.levelRetryCount < h.levelLoadingMaxRetry) { var k = Math.min(Math.pow(2, this.levelRetryCount) * h.levelLoadingRetryDelay, h.levelLoadingMaxRetryTimeout); this.timer = setTimeout(this.ontick, k), a.levelRetry = !0, this.levelRetryCount++, o.logger.warn("level controller," + b + ", retry in " + k + " ms, current retry count is " + this.levelRetryCount) } else o.logger.error("cannot recover " + b + " error"), this._level = void 0, this.cleanTimer(), a.fatal = !0, c.trigger(j.default.ERROR, a) } } } }, { key: "onFragLoaded", value: function (a) { if (a.frag) { var b = this._levels[a.frag.level]; void 0 !== b && (b.fragmentError = !1, b.loadError = 0, this.levelRetryCount = 0) } } }, { key: "onLevelLoaded", value: function (a) { if (a.level === this._level) { var b = a.details, c = this._levels[a.level]; if (c.fragmentError || (c.loadError = 0, this.levelRetryCount = 0), b.live) { var d = 1e3 * (b.averagetargetduration ? b.averagetargetduration : b.targetduration), e = c.details; e && b.endSN === e.endSN && (d /= 2, o.logger.log("same live playlist, reload twice faster")), d -= performance.now() - a.stats.trequest, d = Math.max(1e3, Math.round(d)), o.logger.log("live playlist, reload in " + d + " ms"), this.timer = setTimeout(this.ontick, d) } else this.timer = null } if (this.hls.config.levelsPreload && !a.details.live) for (var f = 0; f < this._levels.length; f++) { var g = this._levels[f]; if (a.level !== f && !g.details) return o.logger.log("preloading playlist for level " + f), void this.hls.trigger(j.default.LEVEL_LOADING, { url: g.url[g.urlId], level: f, id: g.urlId, preload: !0 }) } } }, { key: "tick", value: function () { var a = this._level; if (void 0 !== a && this.canload) { var b = this._levels[a], c = b.urlId; this.hls.trigger(j.default.LEVEL_LOADING, { url: b.url[c], level: a, id: c }) } } }, { key: "levels", get: function () { return this._levels } }, { key: "level", get: function () { return this._level }, set: function (a) { var b = this._levels; b && b.length > a && (this._level === a && void 0 !== b[a].details || this.setLevelInternal(a)) } }, { key: "manualLevel", get: function () { return this._manualLevel }, set: function (a) { this._manualLevel = a, void 0 === this._startLevel && (this._startLevel = a), -1 !== a && (this.level = a) } }, { key: "firstLevel", get: function () { return this._firstLevel }, set: function (a) { this._firstLevel = a } }, { key: "startLevel", get: function () { return void 0 === this._startLevel ? this._firstLevel : this._startLevel }, set: function (a) { this._startLevel = a } }, { key: "nextLoadLevel", get: function () { return -1 !== this._manualLevel ? this._manualLevel : this.hls.abrController.nextAutoLevel }, set: function (a) { this.level = a, -1 === this._manualLevel && (this.hls.abrController.nextAutoLevel = a) } }]), b }(l.default); c.default = q }, { "../errors": 23, "../event-handler": 24, "../events": 25, "../helper/level-helper": 28, "../utils/logger": 41 }], 10: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../demux/demuxer"), j = d(i), k = a("../events"), l = d(k), m = a("../event-handler"), n = d(m), o = a("../utils/logger"), p = a("../utils/binary-search"), q = d(p), r = a("../helper/buffer-helper"), s = d(r), t = a("../helper/level-helper"), u = d(t), v = a("../errors"), w = { STOPPED: "STOPPED", STARTING: "STARTING", IDLE: "IDLE", PAUSED: "PAUSED", KEY_LOADING: "KEY_LOADING", FRAG_LOADING: "FRAG_LOADING", FRAG_LOADING_WAITING_RETRY: "FRAG_LOADING_WAITING_RETRY", WAITING_LEVEL: "WAITING_LEVEL", PARSING: "PARSING", PARSED: "PARSED", ENDED: "ENDED", ERROR: "ERROR" }, x = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, l.default.MEDIA_ATTACHED, l.default.MEDIA_DETACHING, l.default.MANIFEST_LOADING, l.default.MANIFEST_PARSED, l.default.LEVEL_LOADED, l.default.LEVEL_REPLACE, l.default.LEVEL_PTS_UPDATED, l.default.KEY_LOADED, l.default.FRAG_CHUNK_LOADED, l.default.FRAG_LOADED, l.default.FRAG_LOAD_EMERGENCY_ABORTED, l.default.FRAG_PARSING_INIT_SEGMENT, l.default.FRAG_PARSING_DATA, l.default.FRAG_PARSED, l.default.FRAG_APPENDED, l.default.ERROR, l.default.BUFFER_FLUSHED, l.default.DEMUXER_QUEUE_EMPTY)); return c.config = a.config, c.audioCodecSwap = !1, c.ticks = 0, c.ontick = c.tick.bind(c), c.noMediaCount = 0, c } return g(b, a), h(b, [{ key: "destroy", value: function () { this.stopLoad(), delete this.fragPreviousSaved, this.timer && (clearInterval(this.timer), this.timer = null), n.default.prototype.destroy.call(this), this.state = w.STOPPED } }, { key: "startLoad", value: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; if (this.levels) { var b = this.media, c = this.lastCurrentTime, d = this.level; if (this.stopLoad(), this.demuxer || (this.demuxer = new j.default(this.hls), this.fragParsing = null), this.timer || (this.timer = setInterval(this.ontick, 100)), this.fragPreviousSaved && (this.fragPrevious = this.fragPreviousSaved, delete this.fragPreviousSaved), this.level = -1, this.fragLoadError = 0, b && c > 0) { var e = this.hls.loadLevel; u.default.isLive(e, this.levels) && (this.level = e, this.waitLiveLevel = !0), o.logger.log("configure startPosition @" + c), this.state = -1 === this.level ? w.IDLE : w.WAITING_LEVEL } else { this.lastCurrentTime = this.startPosition ? this.startPosition : a, o.logger.log("configure lastCurrentTime @" + this.lastCurrentTime + " start:" + this.startPosition + "," + a); var f = -1 !== d && d === this.hls.startLevel && this.levels[d]; f && f.details && !f.details.live ? (this.state = w.IDLE, this.level = d) : this.state = w.STARTING } this.nextLoadPosition = this.startPosition = this.lastCurrentTime, this.tick() } else o.logger.warn("cannot start loading as manifest not parsed yet"), this.state = w.STOPPED } }, { key: "onDemuxerQueueEmpty", value: function () { this.fragParsing = null } }, { key: "stopLoad", value: function (a) { var b = this.fragCurrent; b && (b.loader && b.loader.abort(), this.fragCurrent = null), this.fragPreviousSaved = this.fragPrevious || this.fragPreviousSaved, this.fragPrevious = null, this.state === w.PARSING && this.demuxer && this.config.enableWorker && (this.fragParsing = b, this.demuxer.waitQueue()), a && this.demuxer && (this.demuxer.destroy(), this.demuxer = null), this.state = w.STOPPED } }, { key: "tick", value: function () { 1 === ++this.ticks && (this.doTick(), this.ticks > 1 && setTimeout(this.tick, 1), this.ticks = 0) } }, { key: "doTick", value: function () { switch (this.state) { case w.STARTING: var a = this.hls, b = a.startLevel; - 1 === b && (b = 0), this.level = a.nextLoadLevel = b, this.state = w.WAITING_LEVEL, this.loadedmetadata = !1; break; case w.IDLE: if (this.media) this.noMediaCount && o.logger.log("media is set to " + this.media.src), this.noMediaCount = 0; else if (this.noMediaCount++ % 20 == 0) { var c = this.hls.bufferController.media || {}, d = this.hls.bufferController.mediaSource || {}; o.logger.log("no media " + c + " src=" + c.src + " ms_state=" + d.readyState) } if (!this._doTickIdle()) return; break; case w.WAITING_LEVEL: var e = this.levels[this.level]; e && e.details && !this.waitLiveLevel && (this.state = w.IDLE); break; case w.FRAG_LOADING: try { var f = this.fragCurrent, g = void 0 !== this.levelLastLoaded && this.levels[this.levelLastLoaded] && this.levels[this.levelLastLoaded].details; g.live && (f.sn < g.startSN || f.sn > g.endSN) && (o.logger.log("live playlist slided forward loading segments: reload"), this.state = w.IDLE, f.loader && f.loader.abort()) } catch (a) {} break; case w.FRAG_LOADING_WAITING_RETRY: var h = performance.now(), i = this.retryDate; (!i || h >= i || this.media && this.media.seeking) && (o.logger.log("mediaController: retryDate reached, switch back to IDLE state"), this.state = w.IDLE) } this._checkBuffer(), this._checkFragmentChanged() } }, { key: "_doTickIdle", value: function () { var a = this.hls, b = a.config, c = this.media; if (void 0 !== this.levelLastLoaded && !c && (this.startFragRequested || !b.startFragPrefetch)) return !0; var d = this.loadedmetadata ? c.currentTime : this.nextLoadPosition, e = a.nextLoadLevel, f = void 0; this.levels[e].hasOwnProperty("bitrate") ? (f = Math.max(8 * b.maxBufferSize / this.levels[e].bitrate, b.maxBufferLength), f = Math.min(f, b.maxMaxBufferLength)) : f = b.maxBufferLength, !b.disableStartBufReduce && this.loadedmetadata && d < 2 && c.paused && (f = b.maxStartBufferLength); var g = s.default.bufferInfo(c, d, b.maxBufferHole), h = g.len; if (h >= f) return !0; o.logger.trace("buffer length of " + h.toFixed(3) + " is below max of " + f.toFixed(3) + ". checking for more payload ..."), this.level = a.nextLoadLevel = e; var i = this.levels[e].details; return void 0 === i || i.live && this.levelLastLoaded !== e ? (this.state = w.WAITING_LEVEL, !0) : this._fetchPayloadOrEos({ pos: d, bufferInfo: g, levelDetails: i }) } }, { key: "_fetchPayloadOrEos", value: function (a) { var b = a.pos, c = a.bufferInfo, d = a.levelDetails, e = this.fragPrevious, f = this.level, g = d.fragments, h = g.length; if (0 === h) return !1; var i = g[0].start, j = g[h - 1].start + g[h - 1].duration, k = c.end, l = void 0; if (d.live) { l = this._ensureFragmentAtLivePoint({ levelDetails: d, bufferEnd: k, start: i, end: j, fragPrevious: e, fragments: g, fragLen: h }); var m = this.media.currentTime; if (null === l) return !1; void 0 === l && this.loadedmetadata && b !== m && m > k && (b = k = m) } else k < i && (l = g[0]); return l || (l = this._findFragment({ start: i, fragPrevious: e, fragLen: h, fragments: g, bufferEnd: k, end: j, levelDetails: d, fetch: !0 })), !l || this._loadFragmentOrKey({ frag: l, level: f, levelDetails: d, pos: b, bufferEnd: k }) } }, { key: "_ensureFragmentAtLivePoint", value: function (a) { var b = a.levelDetails, c = a.bufferEnd, d = a.start, e = a.end, f = a.fragPrevious, g = a.fragments, h = a.fragLen, i = this.hls.config, j = this.media, k = void 0, l = void 0 !== i.liveMaxLatencyDuration ? i.liveMaxLatencyDuration : i.liveMaxLatencyDurationCount * b.targetduration; if (c < Math.max(d - i.maxFragLookUpTolerance, e - l)) { var m = this.computeLivePosition(d, b); o.logger.log("buffer end: " + c.toFixed(3) + " is located too far from the end of live sliding playlist, reset currentTime to : " + m.toFixed(3)), c = m, j && j.readyState && j.duration > m && (j.currentTime = m) } if (b.PTSKnown && c > e && j && j.readyState) return null; if (this.startFragRequested && !b.PTSKnown) { if (f) { var n = f.sn + 1; n >= b.startSN && n <= b.endSN && (k = g[n - b.startSN], o.logger.log("live playlist, switching playlist, load frag with next SN: " + k.sn)) } k || (k = g[Math.min(h - 1, Math.round((h - 1) / 2))], o.logger.log("live playlist, switching playlist, unknown, load middle frag : " + k.sn)) } return k } }, { key: "_findFragment", value: function (a) { var b = (a.start, a.fragPrevious), c = a.fragLen, d = a.fragments, e = a.bufferEnd, f = a.end, g = a.levelDetails, h = a.holaSeek, i = a.fetch, j = this.hls.config, k = void 0, m = void 0, n = j.maxFragLookUpTolerance, p = this.media, r = p && p.seeking || h; if (e < f - .05 ? (e > f - n && (n = 0), m = q.default.search(d, function (a) { return !r && a.lastGop - n < e && a.lastGop + n > e ? 1 : !r && a.firstGop - n < e && a.firstGop + n > e ? 0 : a.start + a.duration - n <= e ? 1 : a.start - n > e && a.start && a.sn > g.startSN ? -1 : 0 })) : m = d[c - 1], m) { k = m; var t = k.sn - g.startSN, u = d[t - 1], v = d[t + 1]; o.logger.log("find SN matching with pos:" + e + ":" + k.sn); var x = !k.backtracked || !u || k.backtracked && (!k.dropped && !v || k.lastGop && e >= k.lastGop || b && u && b.level === u.level && b.sn === u.sn); if (x && b && k.sn === b.sn) if (k.sn < g.endSN) { var y = b.deltaPTS; !(u && this.loadedmetadata && y && y > j.maxBufferHole && b.dropped) || p && s.default.isBuffered(p, e) ? (k = v, o.logger.log("SN just loaded, load next one: " + k.sn)) : (k = u, o.logger.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this"), b.loadCounter--) } else g.live || (this.hls.trigger(l.default.BUFFER_EOS), this.media.seeking || (this.state = w.ENDED)), k = null; else k.dropped && !x && (v && v.backtracked ? (o.logger.log("Already backtracked from fragment " + (t + 1) + ", will not backtrack to fragment " + t + ". Loading fragment " + (t + 1)), k = v) : (o.logger.log("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"), i && (k.dropped = 0), u ? (u.loadCounter && u.loadCounter--, k = u, k.forceQid = !0) : k = null)) } return k } }, { key: "_loadFragmentOrKey", value: function (a) { var b = a.frag, c = a.level, d = a.levelDetails, e = a.pos, f = a.bufferEnd, g = this.hls, h = g.config; if (null == b.decryptdata.uri || null != b.decryptdata.key) { if (o.logger.log("Loading " + b.sn + " of [" + d.startSN + " ," + d.endSN + "],level " + c + ", currentTime:" + e + ",bufferEnd:" + f.toFixed(3)), b.autoLevel = g.autoLevelEnabled, this.levels.length > 1 && (b.expectedLen = Math.round(b.duration * this.levels[c].bitrate / 8), b.trequest = performance.now()), void 0 !== this.fragLoadIdx ? this.fragLoadIdx++ : this.fragLoadIdx = 0, b.loadCounter) { b.loadCounter++; var i = h.fragLoadingLoopThreshold; if (b.loadCounter > i && Math.abs(this.fragLoadIdx - b.loadIdx) < i) return g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.FRAG_LOOP_LOADING_ERROR, fatal: !1, frag: b }), !1 } else b.loadCounter = 1; return b.loadIdx = this.fragLoadIdx, this.fragCurrent = b, this.fragCurrent.loaded = !1, this.startFragRequested = !0, this.nextLoadPosition = b.start + b.duration, this.fragTimeOffset = b.start, this.demuxer || (this.demuxer = new j.default(g, "main")), this.stats = { tfirst: performance.now() }, this.state = w.FRAG_LOADING, g.trigger(l.default.FRAG_LOADING, { frag: b }), !0 } o.logger.log("Loading key for " + b.sn + " of [" + d.startSN + " ," + d.endSN + "],level " + c), this.state = w.KEY_LOADING, g.trigger(l.default.KEY_LOADING, { frag: b }) } }, { key: "getBufferRange", value: function (a) { return q.default.search(this.bufferRange, function (b) { return a < b.start ? -1 : a > b.end ? 1 : 0 }) } }, { key: "followingBufferRange", value: function (a) { return a ? this.getBufferRange(a.end + .5) : null } }, { key: "_checkFragmentChanged", value: function () { var a, b = this.media; b && !1 === b.seeking && (a = b.currentTime) > b.playbackRate * this.lastCurrentTime && (this.lastCurrentTime = a) } }, { key: "immediateLevelSwitch", value: function () { o.logger.log("immediateLevelSwitch"), this.immediateSwitch || (this.immediateSwitch = !0, this.previouslyPaused = this.media.paused, this.media.pause()); var a = this.fragCurrent; a && a.loader && a.loader.abort(), this.fragCurrent = null, this.fragLoadIdx += 2 * this.config.fragLoadingLoopThreshold, this.flushMainBuffer(0, Number.POSITIVE_INFINITY) } }, { key: "immediateLevelSwitchEnd", value: function () { var a = this.media; a && a.buffered.length && (this.immediateSwitch = !1, s.default.isBuffered(a, a.currentTime) && (a.currentTime -= 1e-4), this.previouslyPaused || a.play()) } }, { key: "nextLevelSwitch", value: function () { var a = this.media; if (a && a.readyState) { var b = void 0, c = void 0, d = void 0; if (this.fragLoadIdx += 2 * this.config.fragLoadingLoopThreshold, c = this.getBufferRange(a.currentTime), c && c.start > 1 && this.flushMainBuffer(0, c.start - 1), a.paused) b = 0; else { var e = this.hls.nextLoadLevel, f = this.levels[e], g = this.fragLastKbps; b = g && this.fragCurrent ? this.fragCurrent.duration * f.bitrate / (1e3 * g) + 1 : 0 } if ((d = this.getBufferRange(a.currentTime + b)) && (d = this.followingBufferRange(d))) { var h = this.fragCurrent; h && h.loader && h.loader.abort(), this.fragCurrent = null, this.flushMainBuffer(d.start, Number.POSITIVE_INFINITY) } } } }, { key: "flushMainBuffer", value: function (a, b) { this.state = w.PAUSED; var c = { startOffset: a, endOffset: b }; this.altAudio && (c.type = "video"), this.hls.trigger(l.default.BUFFER_FLUSHING, c) } }, { key: "onMediaAttached", value: function (a) { var b = this.media = a.media; this.onvseeking = this.onMediaSeeking.bind(this), this.onvseeked = this.onMediaSeeked.bind(this), this.onvended = this.onMediaEnded.bind(this), b.addEventListener("seeking", this.onvseeking), b.addEventListener("seeked", this.onvseeked), b.addEventListener("ended", this.onvended), this.demuxer && (this.demuxer.destroy(), this.demuxer = new j.default(this.hls), this.fragParsing = null), this.levels && this.config.autoStartLoad && this.hls.startLoad() } }, { key: "onMediaDetaching", value: function () { var a = this.media; (a && a.ended || this.state === w.ENDED) && (o.logger.log("MSE detaching and video ended, reset startPosition"), this.startPosition = this.lastCurrentTime = 0); var b = this.levels; b && b.forEach(function (a) { a.details && a.details.fragments.forEach(function (a) { a.loadCounter = a.backtracked = a.forceQid = void 0 }) }), a && (a.removeEventListener("seeking", this.onvseeking), a.removeEventListener("seeked", this.onvseeked), a.removeEventListener("ended", this.onvended), this.onvseeking = this.onvseeked = this.onvended = null), this.media = null, this.loadedmetadata = !1, this.stopLoad(), this.fragParsing = null } }, { key: "onMediaSeeking", value: function () { var a = this.media, b = a ? a.currentTime : void 0; o.logger.log("media seeking to " + b); var c = this.fragCurrent; if (void 0 !== b && a.buffered.length && a.buffered.start(0) > b && a.buffered.start(0) - b < .5 && (a.currentTime = a.buffered.start(0) + .001), this.state === w.FRAG_LOADING) { if (0 === s.default.bufferInfo(a, b, this.config.maxBufferHole).len && c) { var d = this.fragPrevious, e = d && c.sn - d.sn == 1, f = e ? d.start : c.start - this.config.maxFragLookUpTolerance, g = f + (e ? d.duration : 0) + c.duration; b < f || b > g ? (o.logger.log("seeking outside of buffer while fragment load in progress, cancel fragment load"), c.loader && c.loader.abort(), this.fragCurrent = null, this.fragPrevious = null, this.state = w.IDLE) : o.logger.log("seeking outside of buffer but within currently loaded fragment range") } } else this.state === w.ENDED ? this.state = w.IDLE : this.state === w.PARSING && c && !c.loaded && (o.logger.log("mediaController: no final chunk, switch back to IDLE state"), this.state = w.IDLE); a && (this.lastCurrentTime = b), void 0 !== this.fragLoadIdx && (this.fragLoadIdx += 2 * this.config.fragLoadingLoopThreshold), this.loadedmetadata || (this.nextLoadPosition = this.startPosition = b, this.fragCurrent && (this.fragCurrent.start > b || this.fragCurrent.start + this.fragCurrent.duration < b) && (this.seekDuringFirst = !0)), this.tick() } }, { key: "onMediaSeeked", value: function () { o.logger.log("media seeked to " + this.media.currentTime), !this.stalled || this.nudgeRetry || this.stallLowBuf || (this.stalled = void 0), this.tick() } }, { key: "onMediaEnded", value: function () { o.logger.log("media ended"), this.startPosition = this.lastCurrentTime = 0 } }, { key: "onManifestLoading", value: function () { o.logger.log("trigger BUFFER_RESET"), this.hls.trigger(l.default.BUFFER_RESET), this.bufferRange = [], this.stalled = !1, this.startPosition = this.lastCurrentTime = 0, this.fragParsing = null, delete this.fragPreviousSaved } }, { key: "onManifestParsed", value: function (a) { var b, c = !1, d = !1; a.levels.forEach(function (a) { (b = a.audioCodec) && (-1 !== b.indexOf("mp4a.40.2") && (c = !0), -1 !== b.indexOf("mp4a.40.5") && (d = !0)) }), this.audioCodecSwitch = c && d, this.audioCodecSwitch && o.logger.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"), this.levels = a.levels, this.startLevelLoaded = !1, this.startFragRequested = !1, this.demuxer && (this.demuxer.destroy(), this.demuxer = new j.default(this.hls), this.fragParsing = null), this.config.autoStartLoad && this.hls.startLoad() } }, { key: "onLevelLoaded", value: function (a) { var b = a.details, c = a.level, d = a.preload, e = this.levels[c], f = b.totalduration, g = 0, h = void 0 !== this.levelLastLoaded && this.levels[this.levelLastLoaded] && this.levels[this.levelLastLoaded].details; if (o.logger.log("level " + c + " loaded [" + b.startSN + "," + b.endSN + "],duration:" + f), b.live) { var i = e.details; if (h && u.default.canMerge(h, b)) i = h, this.reinit = !1; else if (i && !u.default.canMerge(i, b)) { var j = i.fragments[i.fragments.length - 1]; j && i.startSN > b.endSN && (u.default.adjustSliding(b.fragments, j.start + j.duration), this.reinit = !0), i = void 0, this.hls.clearLevelDetails() } i ? (u.default.mergeDetails(i, b), g = b.fragments[0].start, b.PTSKnown ? o.logger.log("live playlist sliding:" + g.toFixed(3)) : o.logger.log("live playlist - outdated PTS, unknown sliding")) : (b.PTSKnown = !1, o.logger.log("live playlist - first load, unknown sliding")) } else b.PTSKnown = !1, h && h.fragments.length === b.fragments.length && u.default.mergeDetails(h, b); this.levelLastLoaded = c, e.details = b, this.hls.trigger(l.default.LEVEL_UPDATED, { details: b, level: c }), d || (!1 === this.startFragRequested && (b.live && (this.startPosition = this.computeLivePosition(g, b), o.logger.log("configure startPosition to " + this.startPosition)), this.nextLoadPosition = this.startPosition), this.state === w.WAITING_LEVEL && (this.waitLiveLevel = !1, this.state = w.IDLE), this.tick()) } }, { key: "onLevelReplace", value: function (a) { o.logger.log("replace level " + a.level + " playlist with a new version"), this.levels[a.level].details = a.details, this.hls.trigger(l.default.LEVEL_UPDATED, { details: a.details, level: a.level }) } }, { key: "onKeyLoaded", value: function () { this.state === w.KEY_LOADING && (this.state = w.IDLE, this.tick()) } }, { key: "onFragChunkLoaded", value: function (a) { var b = this.fragCurrent; if (this.state !== w.FRAG_LOADING && this.state !== w.PARSING || !b || a.frag.level !== b.level || a.frag.sn !== b.sn) o.logger.warn("not in FRAG_LOADING state but " + this.state + ", ignoring FRAG_CHUNK_LOADED event for " + a.frag.sn); else { if (o.logger.log("Loaded chunk " + a.payload.byteLength + " of frag " + b.sn + " of level " + b.level), this.state === w.PARSING && b.loaded && o.logger.log("Same chunk loaded in PARSING state"), a.payload.keymaps) { var c = a.payload.keymaps; if (this.savedKeymaps = Object.assign(this.savedKeymaps || {}, c), !("old_map" in this.savedKeymaps && "new_map" in this.savedKeymaps)) return void(this.savedChunk = new Uint8Array(a.payload)); if (this.savedChunk) { var d = new Uint8Array(a.payload.byteLength + this.savedChunk.byteLength); d.set("old_map" in c ? new Uint8Array(a.payload) : this.savedChunk), d.set("old_map" in c ? this.savedChunk : new Uint8Array(a.payload), "old_map" in c ? a.payload.byteLength : this.savedChunk.byteLength), a.payload = d.buffer, a.payload.first = a.payload.final = !0, delete this.savedChunk } var e = a.payload.keymaps = this.savedKeymaps.new_map; e.switchPoint = this.savedKeymaps.old_map.len, e.firstSN = e.idr[0].sn || e.sei[0].sn || e.indr[0].sn, delete this.savedKeymaps } this.state = w.PARSING, !a.stats.tfirst && this.stats && this.stats.tfirst && (a.stats.tfirst = this.stats.tfirst), this.stats = a.stats; var f = b.level, g = this.levels[f], h = g.details, i = h.totalduration, j = this.fragTimeOffset, k = b.sn, l = this.config.defaultAudioCodec || g.audioCodec; this.audioCodecSwap && (o.logger.log("swapping playlist audio codec"), void 0 === l && (l = this.lastAudioCodec), l && (l = -1 !== l.indexOf("mp4a.40.5") ? "mp4a.40.2" : "mp4a.40.5")), o.logger.log("Demuxing " + k + " of [" + h.startSN + " ," + h.endSN + "],level " + f + ", cc " + b.cc); var m = this.demuxer; if (m) { var n = this.media, p = n && n.seeking, q = !p && (h.PTSKnown || !h.live); m.push(a.payload, l, g.videoCodec, j, b.cc, f, k, i, b.decryptdata, q, h.endSN, this.reinit), this.reinit = !1 } a.payload.final && (b.loaded = !0) } } }, { key: "onFragLoaded", value: function () { o.logger.log("Loaded " + this.fragCurrent.sn + " of level " + this.fragCurrent.level), this.fragLoadError = 0, void 0 === this.stats.tload && (this.stats.tload = performance.now()) } }, { key: "onFragParsingInitSegment", value: function (a) { if (this.state === w.PARSING) { var b, c, d = a.tracks; if (c = d.audio) { var e = this.levels[this.level].audioCodec, f = this.config.browser; e && this.audioCodecSwap && (o.logger.log("swapping playlist audio codec"), e = -1 !== e.indexOf("mp4a.40.5") ? "mp4a.40.2" : "mp4a.40.5"), this.audioCodecSwitch && (1 === c.metadata.channelCount || f.isFirefox || (e = "mp4a.40.5")), f.isAndroid && "audio/mpeg" !== c.container && (e = "mp4a.40.2", o.logger.log("Android: force audio codec to " + e)), c.levelCodec = e } if (c = d.video, c && (c.levelCodec = this.levels[this.level].videoCodec), a.unique) { var g = { codec: "", levelCodec: "" }; for (b in a.tracks) c = d[b], g.container = c.container, g.codec && (g.codec += ",", g.levelCodec += ","), c.codec && (g.codec += c.codec), c.levelCodec && (g.levelCodec += c.levelCodec); d = { audiovideo: g } } if (this.hls.trigger(l.default.BUFFER_CODECS, d), this.state !== w.STOPPED) for (b in d) { c = d[b]; var h = c.initSegment; o.logger.log("track:" + b + ",container:" + c.container + ",codecs[level/parsed]=[" + c.levelCodec + "/" + c.codec + "]" + (h ? ",init:" + h.length : "")), h && this.hls.trigger(l.default.BUFFER_APPENDING, { type: b, data: h }) } this.tick() } } }, { key: "onFragParsingData", value: function (a) { var b = this; if (this.state === w.PARSING || this.fragParsing) { this.tparse2 = Date.now(); var c = this.fragCurrent || this.fragParsing; o.logger.log("parsed " + a.type + ",PTS:[" + a.startPTS.toFixed(3) + "," + a.endPTS.toFixed(3) + "],DTS:[" + a.startDTS.toFixed(3) + "/" + a.endDTS.toFixed(3) + "],nb:" + a.nb + ",dropped:" + (a.dropped || 0) + ",deltaPTS:" + (a.deltaPTS || 0)); var d = this.hls; "video" === a.type && (c.dropped = a.dropped, a.deltaPTS && (isNaN(c.deltaPTS) ? c.deltaPTS = a.deltaPTS : c.deltaPTS = Math.max(a.deltaPTS, c.deltaPTS))), [a.data1, a.data2].forEach(function (c) { c && c.length && b.state === w.PARSING && d.trigger(l.default.BUFFER_APPENDING, { type: a.type, data: c }) }), this.tick() } else o.logger.warn("not in PARSING state but " + this.state + ", ignoring FRAG_PARSING_DATA event") } }, { key: "onFragParsed", value: function (a) { if (this.state === w.PARSING) { var b = this.fragCurrent, c = this.fragPrevious, d = this.levels[b.level].details; if (this.stats.tparsed = performance.now(), this.state = w.PARSED, o.logger.log("parsed frag sn:" + b.sn + ",PTS:[" + (a.startPTS ? a.startPTS.toFixed(3) : "none") + "," + (a.endPTS ? a.endPTS.toFixed(3) : "none") + "],lastGopPTS:" + (a.lastGopPTS ? a.lastGopPTS.toFixed(3) : "none")), d) { if (void 0 !== a.startPTS && void 0 !== a.endPTS) { var e = u.default.updateFragPTS(d, b.sn, a.startPTS, a.endPTS, a.lastGopPTS); this.hls.trigger(l.default.LEVEL_PTS_UPDATED, { details: d, level: b.level, drift: e }) } else b.dropped = 1, b.deltaPTS = this.config.maxSeekHole + 1; var f = b.sn - d.startSN; if (f >= 0) { var g = d.fragments[f]; g.loadCounter = b.loadCounter; var h = c && b.level === c.level; this.config.disableBacktrack || a.isPartial || h || !this.loadedmetadata || (b.dropped ? (g.dropped = b.dropped, g.backtracked ? o.logger.log("Already backtracked on this fragment, appending with the gap") : (b.backtracked = g.backtracked = !0, this.nextLoadPosition = a.startPTS)) : (b.backtracked = g.backtracked = !1, b.forceQid = g.forceQid = !1)) } } else o.logger.log("level " + b.level + " details not found"); this.hls.trigger(l.default.FRAG_APPENDING) } } }, { key: "onFragAppended", value: function () { var a = this; if (this.state === w.PARSED) { this._checkBuffer(!0); var b = this.fragCurrent; if (b) { o.logger.log("media buffered : " + this.timeRangesToString(this.media.buffered)); var c = this.bufferRange.filter(function (b) { return s.default.isBuffered(a.media, (b.start + b.end) / 2) }); c.push({ type: b.type, start: b.startPTS, end: b.endPTS, frag: b }), this.bufferRange = c.sort(function (a, b) { return a.start - b.start }), this.fragPrevious = b; var d = this.stats; d.tbuffered = performance.now(), this.fragLastKbps = Math.round(8 * d.length / (d.tbuffered - d.tfirst)), this.hls.trigger(l.default.FRAG_BUFFERED, { stats: d, frag: b }), this.state = w.IDLE } this.tick() } else o.logger.warn("not in PARSED state but " + this.state) } }, { key: "onError", value: function (a) { switch (a.details) { case v.ErrorDetails.FRAG_LOAD_ERROR: case v.ErrorDetails.FRAG_LOAD_TIMEOUT: if (!a.fatal) { var b = (this.fragLoadError || 0) + 1; if (b <= this.config.fragLoadingMaxRetry) { this.fragLoadError = b, a.frag.loadCounter = 0; var c = Math.min(Math.pow(2, b - 1) * this.config.fragLoadingRetryDelay, 64e3); o.logger.warn("mediaController: frag loading failed, retry in " + c + " ms"), this.retryDate = performance.now() + c, this.state = w.FRAG_LOADING_WAITING_RETRY } else o.logger.error("mediaController: " + a.details + " reaches max retry, redispatch as fatal ..."), a.fatal = !0, this.hls.trigger(l.default.ERROR, a), this.state = w.ERROR } break; case v.ErrorDetails.FRAG_LOOP_LOADING_ERROR: case v.ErrorDetails.LEVEL_LOAD_ERROR: case v.ErrorDetails.LEVEL_LOAD_TIMEOUT: case v.ErrorDetails.KEY_LOAD_ERROR: case v.ErrorDetails.KEY_LOAD_TIMEOUT: this.state !== w.ERROR && (this.state = a.fatal ? w.ERROR : w.IDLE, o.logger.warn("mediaController: " + a.details + " while loading frag,switch to " + this.state + " state ...")); break; case v.ErrorDetails.BUFFER_FULL_ERROR: if (this.state === w.PARSING || this.state === w.PARSED) { var d = this.media; d && s.default.isBuffered(d, d.currentTime) && s.default.isBuffered(d, d.currentTime + .5) ? (this._reduceMaxBufferLength(this.config.maxBufferLength), this.state = w.IDLE) : (o.logger.warn("buffer full error also media.currentTime is not buffered, flush everything"), this.fragCurrent = null, this.flushMainBuffer(0, Number.POSITIVE_INFINITY)) } } } }, { key: "_reduceMaxBufferLength", value: function (a) { var b = this.config; b.maxMaxBufferLength >= a && (b.maxMaxBufferLength /= 2, o.logger.warn("reduce max buffer length to " + b.maxMaxBufferLength + "s"), this.fragLoadIdx += 2 * b.fragLoadingLoopThreshold) } }, { key: "_checkBuffer", value: function (a) { var b = this.media; if (b && b.readyState) { var c; if (c = b.currentTime, !this.loadedmetadata && b.buffered.length && a) { if (this.seekDuringFirst) return void(this.seekDuringFirst = null); this.loadedmetadata = !0; var d = this.startPosition, e = s.default.isBuffered(b, d); if (c !== this.startPosition || !e) { if (o.logger.log("target start position:" + d), !e) { for (var f = 0; f < b.buffered.length; f++) if (b.buffered.start(f) > d) { d = b.buffered.start(f); break } f === b.buffered.length && (f = 0, d = b.buffered.start(f)), d += .001, o.logger.log("target start position not buffered, seek to buffered.start(" + f + ") " + d) } o.logger.log("adjust currentTime from " + c + " to " + d), b.currentTime = d } } else { var g = this.hls, h = s.default.bufferInfo(b, c, 0), i = !(b.paused || b.ended || 0 === b.buffered.length), j = c !== this.lastCurrentTime, k = this.config; if (j) { if (this.stallReported) { var m = Math.round(performance.now() - this.stalled); o.logger.warn("playback not stuck anymore @" + c + ", after " + m + "ms"), g.trigger(l.default.BUF_STATISTICS, { bufNotStalled: { ts: c, dur: m, lowBuf: this.stallLowBuf } }), this.stallLowBuf = this.stallReported = !1 } this.stalled = void 0, this.nudgeRetry = 0 } else if (i) { var n = performance.now(), p = (!this.nudgeRetry && b.seeking ? 2 : 1) * k.highBufferWatchdogPeriod; if (this.stalled) { var q = n - this.stalled, r = h.len, t = this.nudgeRetry || 0; if (r <= .5 && q > 1e3 * k.lowBufferWatchdogPeriod) { this.stallReported || (this.stallReported = !0, this.stallLowBuf = !0, o.logger.warn("playback stalling in low buffer @" + c), g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.BUFFER_STALLED_ERROR, fatal: !1, buffer: r }), g.trigger(l.default.BUF_STATISTICS, { bufStalledLow: { ts: c } })); var u = h.nextStart, w = u - c; if (u && w < k.maxSeekHole && w > 0) { this.nudgeRetry = ++t; var x = t * k.nudgeOffset; o.logger.log("adjust currentTime from " + b.currentTime + " to next buffered @ " + u + " + nudge " + x), b.currentTime = u + x, this.stalled = void 0, g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.BUFFER_SEEK_OVER_HOLE, fatal: !1, hole: u + x - c }), g.trigger(l.default.BUF_STATISTICS, { bufSeekOverHole: { ts: c } }) } } else if (r > .5 && q > 1e3 * p) if (this.stallReported && this.stallLowBuf) this.stalled = void 0; else if (this.stallReported || (this.stallReported = !0, o.logger.warn("playback stalling in high buffer @" + c), g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.BUFFER_STALLED_ERROR, fatal: !1, buffer: r }), g.trigger(l.default.BUF_STATISTICS, { bufStalledHigh: { ts: c } })), this.stalled = void 0, this.nudgeRetry = ++t, t < k.nudgeMaxRetry) { var y = b.currentTime, z = y + t * k.nudgeOffset; o.logger.log("adjust currentTime from " + y + " to " + z), b.currentTime = z, g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.BUFFER_NUDGE_ON_STALL, fatal: !1 }), g.trigger(l.default.BUF_STATISTICS, { bufNudge: { ts: y } }) } else o.logger.error("still stuck in high buffer @" + c + " after " + k.nudgeMaxRetry + ", raise fatal error"), g.trigger(l.default.ERROR, { type: v.ErrorTypes.MEDIA_ERROR, details: v.ErrorDetails.BUFFER_STALLED_ERROR, fatal: !0 }) } else this.stalled = n, this.stallLowBuf = this.stallReported = !1 } else this.stalled = void 0, this.nudgeRetry = 0 } } } }, { key: "onFragLoadEmergencyAborted", value: function () { this.state = w.IDLE, this.tick() } }, { key: "onBufferFlushed", value: function () { var a = this; this.bufferRange = this.bufferRange.filter(function (b) { return s.default.isBuffered(a.media, (b.start + b.end) / 2) }), this.immediateSwitch && this.immediateLevelSwitchEnd(), this.state = w.IDLE, this.fragPrevious = null } }, { key: "onLevelPtsUpdated", value: function (a) { var b = this.levels && this.levels[a.level].details; if (b && !b.live) for (var c = 0; c < this.levels.length; c++) { var d = this.levels[c].details; c !== a.level && d && b.fragments.length === d.fragments.length && u.default.mergeDetails(b, d) } } }, { key: "swapAudioCodec", value: function () { this.audioCodecSwap = !this.audioCodecSwap } }, { key: "timeRangesToString", value: function (a) { if (!a) return "[]"; for (var b = "", c = a.length, d = 0; d < c; d++) b += "[" + a.start(d) + "," + a.end(d) + "]"; return b } }, { key: "computeLivePosition", value: function (a, b) { var c = void 0 !== this.config.liveSyncDuration ? this.config.liveSyncDuration : this.config.liveSyncDurationCount * b.targetduration; return a + Math.max(0, b.totalduration - c) } }, { key: "state", set: function (a) { if (this.state !== a) { var b = this.state; if (this._state = a, o.logger.log("engine state transition from " + b + " to " + a), "IDLE" === a) { var c = this.media || {}; o.logger.log("media " + c + " ct=" + c.currentTime + " dur=" + c.duration + " buf=" + this.timeRangesToString(c.buffered) + " err=" + c.error) } this.hls.trigger(l.default.STREAM_STATE_TRANSITION, { previousState: b, nextState: a }) } }, get: function () { return this._state } }, { key: "currentLevel", get: function () { if (this.media) { var a = this.getBufferRange(this.media.currentTime); if (a) return a.frag.level } return -1 } }, { key: "nextBufferRange", get: function () { return this.media ? this.followingBufferRange(this.getBufferRange(this.media.currentTime)) : null } }, { key: "nextLevel", get: function () { var a = this.nextBufferRange; return a ? a.frag.level : -1 } }]), b }(n.default); c.default = x }, { "../demux/demuxer": 19, "../errors": 23, "../event-handler": 24, "../events": 25, "../helper/buffer-helper": 27, "../helper/level-helper": 28, "../utils/binary-search": 37, "../utils/logger": 41 }], 11: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../utils/cea-608-parser"), n = d(m), o = a("../utils/cues"), p = d(o), q = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.MEDIA_ATTACHING, j.default.MEDIA_DETACHING, j.default.FRAG_PARSING_USERDATA, j.default.MANIFEST_LOADING, j.default.FRAG_LOADED, j.default.LEVEL_SWITCH)); if (c.hls = a, c.config = a.config, c.enabled = !0, c.config.enableCEA708Captions) { var d = c, g = { newCue: function (a, b, c) { d.textTrack1 || (d.textTrack1 = d.createTextTrack("captions", "Unknown CC1", "en")), p.default.newCue(d.textTrack1, a, b, c) } }, h = { newCue: function (a, b, c) { d.textTrack2 || (d.textTrack2 = d.createTextTrack("captions", "Unknown CC2", "es")), p.default.newCue(d.textTrack2, a, b, c) } }; c.cea608Parser = new n.default(0, g, h) } return c } return g(b, a), h(b, [{ key: "clearCurrentCues", value: function (a, b) { if (a && a.cues) for (var c = a.cues.length - 1; a.cues[c].startTime >= b && c > -1; c--) a.removeCue(a.cues[c]) } }, { key: "createTextTrack", value: function (a, b, c) { if (this.media) return this.media.addTextTrack(a, b, c) } }, { key: "destroy", value: function () { l.default.prototype.destroy.call(this) } }, { key: "onMediaAttaching", value: function (a) { this.media = a.media } }, { key: "onMediaDetaching", value: function () {} }, { key: "onManifestLoading", value: function () { this.lastPts = Number.NEGATIVE_INFINITY } }, { key: "onLevelSwitch", value: function () { "NONE" === this.hls.currentLevel.closedCaptions ? this.enabled = !1 : this.enabled = !0 } }, { key: "onFragLoaded", value: function (a) { var b = a.frag.start; b < this.lastPts && (this.clearCurrentCues(this.textTrack1, b), this.clearCurrentCues(this.textTrack2, b)), this.lastPts = b } }, { key: "onFragParsingUserdata", value: function (a) { if (this.enabled) for (var b = 0; b < a.samples.length; b++) { var c = this.extractCea608Data(a.samples[b].bytes); this.cea608Parser.addData(a.samples[b].pts, c) } } }, { key: "extractCea608Data", value: function (a) { for (var b, c, d, e, f, g = 31 & a[0], h = 2, i = [], j = 0; j < g; j++) b = a[h++], c = 127 & a[h++], d = 127 & a[h++], e = 0 != (4 & b), f = 3 & b, 0 === c && 0 === d || e && 0 === f && (i.push(c), i.push(d)); return i } }]), b }(l.default); c.default = q }, { "../event-handler": 24, "../events": 25, "../utils/cea-608-parser": 39, "../utils/cues": 40 }], 12: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = function () { function a(b) { d(this, a), this._tables = [ [ [], [], [], [], [] ], [ [], [], [], [], [] ] ], this._precompute(); var c, e, f, g, h, i = this._tables[0][4], j = this._tables[1], k = b.length, l = 1; if (4 !== k && 6 !== k && 8 !== k) throw new Error("Invalid aes key size=" + k); for (g = b.slice(0), h = [], this._key = [g, h], c = k; c < 4 * k + 28; c++) f = g[c - 1], (c % k == 0 || 8 === k && c % k == 4) && (f = i[f >>> 24] << 24 ^ i[f >> 16 & 255] << 16 ^ i[f >> 8 & 255] << 8 ^ i[255 & f], c % k == 0 && (f = f << 8 ^ f >>> 24 ^ l << 24, l = l << 1 ^ 283 * (l >> 7))), g[c] = g[c - k] ^ f; for (e = 0; c; e++, c--) f = g[3 & e ? c : c - 4], h[e] = c <= 4 || e < 4 ? f : j[0][i[f >>> 24]] ^ j[1][i[f >> 16 & 255]] ^ j[2][i[f >> 8 & 255]] ^ j[3][i[255 & f]] } return e(a, [{ key: "_precompute", value: function () { var a, b, c, d, e, f, g, h, i, j = this._tables[0], k = this._tables[1], l = j[4], m = k[4], n = [], o = []; for (a = 0; a < 256; a++) o[(n[a] = a << 1 ^ 283 * (a >> 7)) ^ a] = a; for (b = c = 0; !l[b]; b ^= d || 1, c = o[c] || 1) for (g = c ^ c << 1 ^ c << 2 ^ c << 3 ^ c << 4, g = g >> 8 ^ 255 & g ^ 99, l[b] = g, m[g] = b, f = n[e = n[d = n[b]]], i = 16843009 * f ^ 65537 * e ^ 257 * d ^ 16843008 * b, h = 257 * n[g] ^ 16843008 * g, a = 0; a < 4; a++) j[a][b] = h = h << 24 ^ h >>> 8, k[a][g] = i = i << 24 ^ i >>> 8; for (a = 0; a < 5; a++) j[a] = j[a].slice(0), k[a] = k[a].slice(0) } }, { key: "decrypt", value: function (a, b, c, d, e, f) { var g, h, i, j, k = this._key[1], l = a ^ k[0], m = d ^ k[1], n = c ^ k[2], o = b ^ k[3], p = k.length / 4 - 2, q = 4, r = this._tables[1], s = r[0], t = r[1], u = r[2], v = r[3], w = r[4]; for (j = 0; j < p; j++) g = s[l >>> 24] ^ t[m >> 16 & 255] ^ u[n >> 8 & 255] ^ v[255 & o] ^ k[q], h = s[m >>> 24] ^ t[n >> 16 & 255] ^ u[o >> 8 & 255] ^ v[255 & l] ^ k[q + 1], i = s[n >>> 24] ^ t[o >> 16 & 255] ^ u[l >> 8 & 255] ^ v[255 & m] ^ k[q + 2], o = s[o >>> 24] ^ t[l >> 16 & 255] ^ u[m >> 8 & 255] ^ v[255 & n] ^ k[q + 3], q += 4, l = g, m = h, n = i; for (j = 0; j < 4; j++) e[(3 & -j) + f] = w[l >>> 24] << 24 ^ w[m >> 16 & 255] << 16 ^ w[n >> 8 & 255] << 8 ^ w[255 & o] ^ k[q++], g = l, l = m, m = n, n = o, o = g } }]), a }(); c.default = f }, {}], 13: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("./aes"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function () { function a(b, c) { d(this, a), this.key = b, this.iv = new Uint32Array(c) } return e(a, [{ key: "ntoh", value: function (a) { return a << 24 | (65280 & a) << 8 | (16711680 & a) >> 8 | a >>> 24 } }, { key: "doDecrypt", value: function (a, b, c) { var d, e, f, h, i, j, k, l, m, n = new Int32Array(a.buffer, a.byteOffset, a.byteLength >> 2), o = new g.default(Array.prototype.slice.call(b)), p = new Uint8Array(a.byteLength), q = new Int32Array(p.buffer); for (d = ~~c[0], e = ~~c[1], f = ~~c[2], h = ~~c[3], m = 0; m < n.length; m += 4) i = ~~this.ntoh(n[m]), j = ~~this.ntoh(n[m + 1]), k = ~~this.ntoh(n[m + 2]), l = ~~this.ntoh(n[m + 3]), o.decrypt(i, j, k, l, q, m), q[m] = this.ntoh(q[m] ^ d), q[m + 1] = this.ntoh(q[m + 1] ^ e), q[m + 2] = this.ntoh(q[m + 2] ^ f), q[m + 3] = this.ntoh(q[m + 3] ^ h), d = i, e = j, f = k, h = l; return p } }, { key: "localDecrypt", value: function (a, b, c, d) { var e = this.doDecrypt(a, b, c); d.set(e, a.byteOffset) } }, { key: "decrypt", value: function (a) { var b = new Int32Array(a), c = new Uint8Array(a.byteLength), d = 0, e = this.key, f = this.iv; for (this.localDecrypt(b.subarray(d, d + 32e3), e, f, c), d = 32e3; d < b.length; d += 32e3) f = new Uint32Array([this.ntoh(b[d - 4]), this.ntoh(b[d - 3]), this.ntoh(b[d - 2]), this.ntoh(b[d - 1])]), this.localDecrypt(b.subarray(d, d + 32e3), e, f, c); return c } }]), a }(); c.default = h }, { "./aes": 12 }], 14: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("./aes128-decrypter"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = a("../errors"), i = a("../utils/logger"), j = function () { function a(b) { d(this, a), this.hls = b, this.iv = null; try { var c = window ? window.crypto : crypto; this.subtle = c.subtle || c.webkitSubtle, this.disableWebCrypto = !this.subtle } catch (a) { this.disableWebCrypto = !0 } } return e(a, [{ key: "destroy", value: function () {} }, { key: "decrypt", value: function (a, b, c, d) { this.disableWebCrypto && this.hls.config.enableSoftwareAES ? this.decryptBySoftware(a, b, c, d) : this.decryptByWebCrypto(a, b, c, d) } }, { key: "decryptByWebCrypto", value: function (a, b, c, d) { var e = this; i.logger.log("decrypting by WebCrypto API"), this.subtle.importKey("raw", b, { name: "AES-CBC", length: 128 }, !1, ["decrypt"]).then(function (f) { e.subtle.decrypt({ name: "AES-CBC", iv: c.buffer }, f, a).then(d).catch(function (f) { e.onWebCryptoError(f, a, b, c, d) }) }).catch(function (f) { e.onWebCryptoError(f, a, b, c, d) }) } }, { key: "decryptBySoftware", value: function (a, b, c, d) { i.logger.log("decrypting by JavaScript Implementation"); var e = new DataView(b.buffer), f = new Uint32Array([e.getUint32(0), e.getUint32(4), e.getUint32(8), e.getUint32(12)]); c && (e = new DataView(c.buffer), this.iv = new Uint32Array([e.getUint32(0), e.getUint32(4), e.getUint32(8), e.getUint32(12)])); var h = new g.default(f, this.iv), j = new DataView(a), k = a.byteLength; this.iv = new Uint32Array([j.getUint32(k - 16), j.getUint32(k - 12), j.getUint32(k - 8), j.getUint32(k - 4)]), d(h.decrypt(a).buffer) } }, { key: "onWebCryptoError", value: function (a, b, c, d, e) { this.hls.config.enableSoftwareAES ? (i.logger.log("disabling to use WebCrypto API"), this.disableWebCrypto = !0, this.decryptBySoftware(b, c, d, e)) : (i.logger.error("decrypting error : " + a.message), this.hls.trigger(Event.ERROR, { type: h.ErrorTypes.MEDIA_ERROR, details: h.ErrorDetails.FRAG_DECRYPT_ERROR, fatal: !0, reason: a.message })) } }]), a }(); c.default = j }, { "../errors": 23, "../utils/logger": 41, "./aes128-decrypter": 13 }], 15: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("./adts"), h = d(g), i = a("../utils/logger"), j = a("../demux/id3"), k = d(j), l = a("../events"), m = d(l), n = function () { function a(b, c, d, f) { e(this, a), this.observer = b, this.remuxerClass = c, this.config = d, this.remuxer = new this.remuxerClass(b, d, f), this._aacTrack = { container: "audio/adts", type: "audio", id: -1, sequenceNumber: 0, isAAC: !0, samples: [], len: 0 } } return f(a, [{ key: "push", value: function (a, b, c, d, e, f, g, j, l, n, o) { var p, q, r, s, t, u, v, w, x, y, z, A = this._aacTrack, B = new k.default(a), C = 90 * B.timeStamp; for (t = B.length, w = a.length; t < w - 1 && (255 !== a[t] || 240 != (240 & a[t + 1])); t++); for (n && (this.fragStats = { keyFrames: 0, dropped: 0, segment: g, level: f, notFirstKeyframe: 0 }), A.audiosamplerate || (p = h.default.getAudioConfig(this.observer, a, t, b, this.config), A.config = p.config, A.audiosamplerate = p.samplerate, A.channelCount = p.channelCount, A.codec = p.codec, A.duration = j, i.logger.log("parsed codec:" + A.codec + ",rate:" + p.samplerate + ",nb channel:" + p.channelCount)), s = 0, r = 9216e4 / A.audiosamplerate; t + 5 < w && (u = 1 & a[t + 1] ? 7 : 9, q = (3 & a[t + 3]) << 11 | a[t + 4] << 3 | (224 & a[t + 5]) >>> 5, (q -= u) > 0 && t + u + q <= w);) for (v = C + s * r, x = { unit: a.subarray(t + u, t + u + q), pts: v, dts: v }, A.samples.push(x), A.len += q, t += q + u, s++; t < w - 1 && (255 !== a[t] || 240 != (240 & a[t + 1])); t++); if (A.samples.length && o) { var D = this.remuxer.PES_TIMESCALE, E = void 0 === this.remuxer._initDTS ? A.samples[0].dts - D * d : this.remuxer._initDTS, F = d * D; y = this.remuxer._PTSNormalize(A.samples[0].pts - E, F) / D, z = this.remuxer._PTSNormalize(A.samples[A.samples.length - 1].pts + r - E, F) / D } this.remuxer.remux(this._aacTrack, { samples: [] }, { samples: [{ pts: C, dts: C, unit: B.payload }] }, { samples: [] }, d, void 0, void 0, void 0, void 0, this.fragStats), o && this.observer.trigger(m.default.FRAG_PARSED, { startPTS: y, endPTS: z }) } }, { key: "destroy", value: function () {} }], [{ key: "probe", value: function (a) { var b, c, d = new k.default(a); if (d.hasTimeStamp) for (b = d.length, c = a.length; b < c - 1; b++) if (255 === a[b] && 240 == (240 & a[b + 1])) return !0; return !1 } }]), a }(); c.default = n }, { "../demux/id3": 21, "../events": 25, "../utils/logger": 41, "./adts": 16 }], 16: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../utils/logger"), g = a("../errors"), h = function () { function a() { d(this, a) } return e(a, null, [{ key: "getAudioConfig", value: function (a, b, c, d, e) { var h, i, j, k, l, m = e.browser, n = [96e3, 88200, 64e3, 48e3, 44100, 32e3, 24e3, 22050, 16e3, 12e3, 11025, 8e3, 7350]; return h = 1 + ((192 & b[c + 2]) >>> 6), (i = (60 & b[c + 2]) >>> 2) > n.length - 1 ? void a.trigger(Event.ERROR, { type: g.ErrorTypes.MEDIA_ERROR, details: g.ErrorDetails.FRAG_PARSING_ERROR, fatal: !0, reason: "invalid ADTS sampling index:" + i }) : (k = (1 & b[c + 2]) << 2, k |= (192 & b[c + 3]) >>> 6, f.logger.log("manifest codec:" + d + ",ADTS data:type:" + h + ",sampleingIndex:" + i + "[" + n[i] + "Hz],channelConfig:" + k), m.isFirefox ? i >= 6 ? (h = 5, l = new Array(4), j = i - 3) : (h = 2, l = new Array(2), j = i) : m.isAndroid ? (h = 2, l = new Array(2), j = i) : (h = 5, l = new Array(4), d && (-1 !== d.indexOf("mp4a.40.29") || -1 !== d.indexOf("mp4a.40.5")) || !d && i >= 6 ? j = i - 3 : ((d && -1 !== d.indexOf("mp4a.40.2") && i >= 6 && 1 === k || !d && 1 === k) && (h = 2, l = new Array(2)), j = i)), l[0] = h << 3, l[0] |= (14 & i) >> 1, l[1] |= (1 & i) << 7, l[1] |= k << 3, 5 === h && (l[1] |= (14 & j) >> 1, l[2] = (1 & j) << 7, l[2] |= 8, l[3] = 0), { config: l, samplerate: n[i], channelCount: k, codec: "mp4a.40." + h }) } }]), a }(); c.default = h }, { "../errors": 23, "../utils/logger": 41 }], 17: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("../events"), h = d(g), i = a("../errors"), j = a("../demux/aacdemuxer"), k = d(j), l = a("../demux/tsdemuxer"), m = d(l), n = a("../remux/mp4-remuxer"), o = d(n), p = a("../remux/passthrough-remuxer"), q = d(p), r = function () { function a(b, c) { var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null; e(this, a); var f = this; this.hls = b, this.config = this.hls.config || d, this.typeSupported = c, this.timeOffset = 0, this.onFragParsingData = function (a, b) { "video" !== b.type || b.flush || (f.timeOffset += b.endDTS - b.startDTS) }, this.hls.on(h.default.FRAG_PARSING_DATA, this.onFragParsingData) } return f(a, [{ key: "destroy", value: function () { var a = this.demuxer; a && a.destroy(), this.hls.off(h.default.FRAG_PARSING_DATA, this.onFragParsingData) } }, { key: "push", value: function (a, b, c, d, e, f, g, j, l, n, p, r, s, t) { var u = this.demuxer; if (!u) { var v = this.hls, w = this.config, x = this.typeSupported; if (m.default.probe(a)) u = !0 === x.mp2t ? new m.default(v, q.default, w, x) : new m.default(v, o.default, w, x); else { if (!k.default.probe(a)) { var y = void 0, z = a.length, A = "len:" + z + " ["; for (y = 0, z = Math.min(z, 10); y < z; y++) y && (A += ","), A += a[y]; return A += "..]", a.length >= 564 && (A += " [0]==" + a[0] + " [188]==" + a[188] + " [2*188]==" + a[376]), void v.trigger(h.default.ERROR, { type: i.ErrorTypes.MEDIA_ERROR, details: i.ErrorDetails.FRAG_PARSING_ERROR, fatal: !0, reason: "no demux matching with content found " + A }) } u = new k.default(v, o.default, w, x) } this.demuxer = u } n && (this.timeOffset = d), u.push(a, b, c, this.timeOffset, e, f, g, j, l, n, p, r, s, t) } }]), a }(); c.default = r }, { "../demux/aacdemuxer": 15, "../demux/tsdemuxer": 22, "../errors": 23, "../events": 25, "../remux/mp4-remuxer": 34, "../remux/passthrough-remuxer": 35 }], 18: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } Object.defineProperty(c, "__esModule", { value: !0 }); var e = a("../demux/demuxer-inline"), f = d(e), g = a("../events"), h = d(g), i = a("events"), j = d(i), k = function (a) { var b = new j.default; b.trigger = function (a) { for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), e = 1; e < c; e++) d[e - 1] = arguments[e]; b.emit.apply(b, [a, a].concat(d)) }, b.off = function (a) { for (var c = arguments.length, d = Array(c > 1 ? c - 1 : 0), e = 1; e < c; e++) d[e - 1] = arguments[e]; b.removeListener.apply(b, [a].concat(d)) }, a.addEventListener("message", function (c) { var d = c.data; switch (d.cmd) { case "init": a.demuxer = new f.default(b, d.typeSupported, JSON.parse(d.config)); break; case "demux": a.demuxer.push(new Uint8Array(d.data), d.audioCodec, d.videoCodec, d.timeOffset, d.cc, d.level, d.sn, d.duration, d.accurate, d.first, d.final, d.lastSN, d.keymaps, d.reinit); break; case "empty": a.postMessage({ event: h.default.DEMUXER_QUEUE_EMPTY }) } }), b.on(h.default.FRAG_PARSING_INIT_SEGMENT, function (b, c) { a.postMessage({ event: b, tracks: c.tracks, unique: c.unique }) }), b.on(h.default.FRAG_PARSING_DATA, function (b, c) { var d = { event: b, type: c.type, startPTS: c.startPTS, endPTS: c.endPTS, startDTS: c.startDTS, endDTS: c.endDTS, data1: c.data1.buffer, data2: c.data2.buffer, nb: c.nb, dropped: c.dropped, deltaPTS: c.deltaPTS, isPartial: c.isPartial }; a.postMessage(d, [d.data1, d.data2]) }), b.on(h.default.FRAG_PARSED, function (b, c) { a.postMessage({ event: b, data: c }) }), b.on(h.default.FRAG_STATISTICS, function (b, c) { a.postMessage({ event: b, data: c }) }), b.on(h.default.ERROR, function (b, c) { a.postMessage({ event: b, data: c }) }), b.on(h.default.FRAG_PARSING_METADATA, function (b, c) { var d = { event: b, samples: c.samples }; a.postMessage(d) }), b.on(h.default.FRAG_PARSING_USERDATA, function (b, c) { var d = { event: b, samples: c.samples }; a.postMessage(d) }) }; c.default = k }, { "../demux/demuxer-inline": 17, "../events": 25, events: 46 }], 19: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("../events"), h = d(g), i = a("../demux/demuxer-inline"), j = d(i), k = a("../demux/demuxer-worker"), l = d(k), m = a("../utils/logger"), n = a("../crypt/decrypter"), o = d(n), p = function () { function b(c) { e(this, b), this.hls = c, this.trail = new Uint8Array(0); var d = { mp4: MediaSource.isTypeSupported("video/mp4"), mp2t: c.config.enableMP2TPassThrough && MediaSource.isTypeSupported("video/mp2t"), mpeg: MediaSource.isTypeSupported("audio/mpeg"), mp3: MediaSource.isTypeSupported('audio/mp4; codecs="mp3"') }; if (c.config.disableMp3 && (d.mpeg = d.mp3 = !1), c.config.enableWorker && "undefined" != typeof Worker) { m.logger.log("demuxing in webworker"); try { var f = a("webworkify"); this.w = f(l.default), this.onwmsg = this.onWorkerMessage.bind(this), this.w.addEventListener("message", this.onwmsg), this.w.postMessage({ cmd: "init", typeSupported: d, config: JSON.stringify(c.config) }) } catch (a) { m.logger.error("error while initializing DemuxerWorker, fallback on DemuxerInline"), this.demuxer = new j.default(c, d) } } else this.demuxer = new j.default(c, d); this.demuxInitialized = !0 } return f(b, [{ key: "destroy", value: function () { this.w ? (this.w.removeEventListener("message", this.onwmsg), this.w.terminate(), this.w = null) : (this.demuxer.destroy(), this.demuxer = null), this.decrypter && (this.decrypter.destroy(), this.decrypter = null) } }, { key: "pushDecrypted", value: function (a, b, c, d, e, f, g, h, i, j, k, l, m) { this.w ? this.w.postMessage({ cmd: "demux", data: a, audioCodec: b, videoCodec: c, timeOffset: d, cc: e, level: f, sn: g, duration: h, accurate: i, first: j, final: k, lastSN: l, keymaps: a.keymaps, reinit: m }, [a]) : this.demuxer.push(new Uint8Array(a), b, c, d, e, f, g, h, i, j, k, l, a.keymaps, m) } }, { key: "push", value: function (a, b, c, d, e, f, g, h, i, j, k, l) { a.first && (this.trail = new Uint8Array(0), this.trail.first = !0); var m = this.trail.length; if (m || (a.byteLength + m) % 752 && !a.final) { var n = a.final, p = a.first || this.trail.first || !1, q = a.byteLength + m; n || (q -= q % 752); var r = new Uint8Array(a), s = new Uint8Array(q), t = new Uint8Array(a.byteLength + m - q); if (q && (s.set(this.trail), s.set(r.subarray(0, q - m), m)), t.length && (q ? t.set(r.subarray(-t.length)) : (t.set(this.trail), t.set(r, m), t.first = p)), r = null, this.trail = t, !s.length) return; a = s.buffer, a.final = n, a.first = p, s = null } if (a.byteLength > 0 && null != i && null != i.key && "AES-128" === i.method) { null == this.decrypter && (this.decrypter = new o.default(this.hls)); var u = this; this.decrypter.decrypt(a, i.key, a.first && i.iv, function (i) { u.pushDecrypted(i, b, c, d, e, f, g, h, j, !!a.first, !!a.final, k, l) }) } else this.pushDecrypted(a, b, c, d, e, f, g, h, j, !!a.first, !!a.final, k, l) } }, { key: "onWorkerMessage", value: function (a) { var b = a.data; switch (b.event) { case h.default.FRAG_PARSING_INIT_SEGMENT: var c = {}; c.tracks = b.tracks, c.unique = b.unique, this.hls.trigger(h.default.FRAG_PARSING_INIT_SEGMENT, c); break; case h.default.FRAG_PARSING_DATA: this.hls.trigger(h.default.FRAG_PARSING_DATA, { data1: new Uint8Array(b.data1), data2: new Uint8Array(b.data2), startPTS: b.startPTS, endPTS: b.endPTS, startDTS: b.startDTS, endDTS: b.endDTS, type: b.type, nb: b.nb, dropped: b.dropped, deltaPTS: b.deltaPTS, isPartial: b.isPartial }); break; case h.default.FRAG_PARSING_METADATA: this.hls.trigger(h.default.FRAG_PARSING_METADATA, { samples: b.samples }); break; case h.default.FRAG_PARSING_USERDATA: this.hls.trigger(h.default.FRAG_PARSING_USERDATA, { samples: b.samples }); break; default: this.hls.trigger(b.event, b.data) } } }, { key: "waitQueue", value: function () { this.w && this.w.postMessage({ cmd: "empty" }) } }]), b }(); c.default = p }, { "../crypt/decrypter": 14, "../demux/demuxer-inline": 17, "../demux/demuxer-worker": 18, "../events": 25, "../utils/logger": 41, webworkify: 47 }], 20: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../utils/logger"), g = function () { function a(b) { d(this, a), this.data = b, this.bytesAvailable = this.data.byteLength, this.word = 0, this.bitsAvailable = 0 } return e(a, [{ key: "wholeBytesAvailable", value: function () { return this.bytesAvailable + (this.bitsAvailable >> 3) } }, { key: "loadWord", value: function () { var a = this.data.byteLength - this.bytesAvailable, b = new Uint8Array(4), c = Math.min(4, this.bytesAvailable); if (0 === c) throw new Error("no bytes available"); b.set(this.data.subarray(a, a + c)), this.word = new DataView(b.buffer).getUint32(0), this.bitsAvailable = 8 * c, this.bytesAvailable -= c } }, { key: "skipBits", value: function (a) { var b; this.bitsAvailable > a ? (this.word <<= a, this.bitsAvailable -= a) : (a -= this.bitsAvailable, b = a >> 3, a -= b >> 3, this.bytesAvailable -= b, this.loadWord(), this.word <<= a, this.bitsAvailable -= a) } }, { key: "readBits", value: function (a) { var b = Math.min(this.bitsAvailable, a), c = this.word >>> 32 - b; return a > 32 && f.logger.error("Cannot read more than 32 bits at a time"), this.bitsAvailable -= b, this.bitsAvailable > 0 ? this.word <<= b : this.bytesAvailable > 0 && this.loadWord(), b = a - b, b > 0 && this.bitsAvailable ? c << b | this.readBits(b) : c } }, { key: "skipLZ", value: function () { var a; for (a = 0; a < this.bitsAvailable; ++a) if (0 != (this.word & 2147483648 >>> a)) return this.word <<= a, this.bitsAvailable -= a, a; return this.loadWord(), a + this.skipLZ() } }, { key: "skipUEG", value: function () { this.skipBits(1 + this.skipLZ()) } }, { key: "skipEG", value: function () { this.skipBits(1 + this.skipLZ()) } }, { key: "readUEG", value: function () { var a = this.skipLZ(); return this.readBits(a + 1) - 1 } }, { key: "readEG", value: function () { var a = this.readUEG(); return 1 & a ? 1 + a >>> 1 : -1 * (a >>> 1) } }, { key: "readBoolean", value: function () { return 1 === this.readBits(1) } }, { key: "readUByte", value: function () { return this.readBits(8) } }, { key: "readUShort", value: function () { return this.readBits(16) } }, { key: "readUInt", value: function () { return this.readBits(32) } }, { key: "skipScalingList", value: function (a) { var b, c, d = 8, e = 8; for (b = 0; b < a; b++) 0 !== e && (c = this.readEG(), e = (d + c + 256) % 256), d = 0 === e ? d : e } }, { key: "readSPS", value: function () { var a, b, c, d, e, f, g, h = 0, i = 0, j = 0, k = 0; if (this.readUByte(), a = this.readUByte(), this.readBits(5), this.skipBits(3), this.readUByte(), this.skipUEG(), 100 === a || 110 === a || 122 === a || 244 === a || 44 === a || 83 === a || 86 === a || 118 === a || 128 === a) { var l = this.readUEG(); if (3 === l && this.skipBits(1), this.skipUEG(), this.skipUEG(), this.skipBits(1), this.readBoolean()) for (f = 3 !== l ? 8 : 12, g = 0; g < f; g++) this.readBoolean() && (g < 6 ? this.skipScalingList(16) : this.skipScalingList(64)) } this.skipUEG(); var m = this.readUEG(); if (0 === m) this.readUEG(); else if (1 === m) for (this.skipBits(1), this.skipEG(), this.skipEG(), b = this.readUEG(), g = 0; g < b; g++) this.skipEG(); this.skipUEG(), this.skipBits(1), c = this.readUEG(), d = this.readUEG(), e = this.readBits(1), 0 === e && this.skipBits(1), this.skipBits(1), this.readBoolean() && (h = this.readUEG(), i = this.readUEG(), j = this.readUEG(), k = this.readUEG()); var n = [1, 1]; if (this.readBoolean() && this.readBoolean()) { switch (this.readUByte()) { case 1: n = [1, 1]; break; case 2: n = [12, 11]; break; case 3: n = [10, 11]; break; case 4: n = [16, 11]; break; case 5: n = [40, 33]; break; case 6: n = [24, 11]; break; case 7: n = [20, 11]; break; case 8: n = [32, 11]; break; case 9: n = [80, 33]; break; case 10: n = [18, 11]; break; case 11: n = [15, 11]; break; case 12: n = [64, 33]; break; case 13: n = [160, 99]; break; case 14: n = [4, 3]; break; case 15: n = [3, 2]; break; case 16: n = [2, 1]; break; case 255: n = [this.readUByte() << 8 | this.readUByte(), this.readUByte() << 8 | this.readUByte()] } } return { width: Math.ceil(16 * (c + 1) - 2 * h - 2 * i), height: (2 - e) * (d + 1) * 16 - (e ? 2 : 4) * (j + k), pixelRatio: n } } }, { key: "readSliceType", value: function () { return this.readUByte(), this.readUEG(), this.readUEG() } }]), a }(); c.default = g }, { "../utils/logger": 41 }], 21: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../utils/logger"), g = function () { function a(b) { d(this, a), this._hasTimeStamp = !1; for (var c, e, g, h, i, j, k, l, m = 0;;) if (k = this.readUTF(b, m, 3), m += 3, "ID3" === k) m += 3, c = 127 & b[m++], e = 127 & b[m++], g = 127 & b[m++], h = 127 & b[m++], i = (c << 21) + (e << 14) + (g << 7) + h, j = m + i, this._parseID3Frames(b, m, j), m = j; else { if ("3DI" !== k) return m -= 3, void((l = m) && (this.hasTimeStamp || f.logger.warn("ID3 tag found, but no timestamp"), this._length = l, this._payload = b.subarray(0, l))); m += 7, f.logger.log("3DI footer found, end: " + m) } } return e(a, [{ key: "readUTF", value: function (a, b, c) { var d = "", e = b, f = b + c; do { d += String.fromCharCode(a[e++]) } while (e < f); return d } }, { key: "_parseID3Frames", value: function (a, b, c) { for (var d, e; b + 8 <= c;) switch (d = this.readUTF(a, b, 4), b += 4, a[b++] << 24 + a[b++] << 16 + a[b++] << 8 + a[b++], a[b++] << 8 + a[b++], b, d) { case "PRIV": if ("com.apple.streaming.transportStreamTimestamp" === this.readUTF(a, b, 44)) { b += 44, b += 4; var g = 1 & a[b++]; this._hasTimeStamp = !0, e = ((a[b++] << 23) + (a[b++] << 15) + (a[b++] << 7) + a[b++]) / 45, g && (e += 47721858.84), e = Math.round(e), f.logger.trace("ID3 timestamp found: " + e), this._timeStamp = e } } } }, { key: "hasTimeStamp", get: function () { return this._hasTimeStamp } }, { key: "timeStamp", get: function () { return this._timeStamp } }, { key: "length", get: function () { return this._length } }, { key: "payload", get: function () { return this._payload } }]), a }(); c.default = g }, { "../utils/logger": 41 }], 22: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("./adts"), h = d(g), i = a("../events"), j = d(i), k = a("./exp-golomb"), l = d(k), m = a("../utils/logger"), n = a("../errors"); a("../utils/polyfill"); var o = function () { function a(b, c, d, f) { e(this, a), this.observer = b, this.remuxerClass = c, this.config = d, this.typeSupported = f, this.lastCC = 0, this._setEmptyTracks(), this._clearAllData(), this.remuxer = new this.remuxerClass(b, d, f), this.levelParams = {} } return f(a, [{ key: "_setEmptyTracks", value: function (a) { var b = void 0; if (b = this._avcTrack) { var c = {}, d = this.levelParams[this.lastLevel] || {}; c.sps = b.sps || d.sps, c.pps = b.pps || d.pps } this._avcTrack = Object.assign({}, this._avcTrack, { container: "video/mp2t", inputTimeScale: 9e4, type: "video", samples: [], len: 0, nbNalu: 0 }), a && (delete this._avcTrack.sps, delete this._avcTrack.pps), this._aacTrack = Object.assign({}, this._aacTrack, { container: "video/mp2t", inputTimeScale: 9e4, type: "audio", samples: [], len: 0, isAAC: !0 }), this._id3Track = Object.assign({}, this._id3Track, { type: "id3", samples: [], inputTimeScale: 9e4, len: 0 }), this._txtTrack = Object.assign({}, this._txtTrack, { type: "text", samples: [], inputTimeScale: 9e4, len: 0 }), this._avcTrack.sequenceNumber = 0 | this._avcTrack.sequenceNumber, this._aacTrack.sequenceNumber = 0 | this._aacTrack.sequenceNumber, this._id3Track.sequenceNumber = 0 | this._id3Track.sequenceNumber, this._txtTrack.sequenceNumber = 0 | this._txtTrack.sequenceNumber } }, { key: "_clearIDs", value: function () { this._aacTrack.id = this._avcTrack.id = this._id3Track.id = this._txtTrack.id = -1 } }, { key: "switchLevel", value: function (a) { this._avcTrack.samples.length && this.remux(null, !1, !0, !1), delete this.audioConfig, this.pmtParsed = !1, this._pmtId = -1, this._setEmptyTracks(!0), this._clearAllData(), this._clearIDs(), this.aacOverFlow = null, this.aacLastPTS = null, this.avcNaluState = 0, this.remuxer.switchLevel(a) } }, { key: "_clearAvcData", value: function (a) { return this._avcData = { data: [], size: 0, offset: a || 0 } } }, { key: "_clearAacData", value: function () { return this._aacData = { data: [], size: 0 } } }, { key: "_clearID3Data", value: function () { return this._id3Data = { data: [], size: 0 } } }, { key: "_clearAllData", value: function () { this._clearAvcData(), this._clearAacData(), this._clearID3Data() } }, { key: "insertDiscontinuity", value: function () { this.switchLevel(), this.remuxer.insertDiscontinuity() } }, { key: "push", value: function (a, b, c, d, e, f, g, h, i, k, l, o, p, q) { var r, s, t, u, v, w, x, y = this, z = this._avcData, A = this._aacData, B = this._id3Data, C = a.length, D = this.remuxer.passthrough, E = !1, F = function (a) { a in p && (y._avcTrack[a] = p[a].map(function (a) { return new Uint8Array(a) })) }; this.audioCodec = b, this.videoCodec = c, this.timeOffset = d, this.lastAVCFrameStart = 0, this.accurate = i, this._duration = h, this.contiguous = !1, this.numSample = k ? 0 : this.numSample, e !== this.lastCC && (m.logger.log("discontinuity detected"), this.insertDiscontinuity(), this.lastCC = e); var G = f !== this.lastLevel && !p; p && m.logger.log("got mixed segment " + p.firstSN + " " + p.switchPoint), G && (m.logger.log("level switch detected"), this.switchLevel(), this.lastLevel = f), !G && g === this.lastSN + 1 || !k ? this.contiguous = !0 : (this._avcTrack.samples.length && this.remux(null, !1, !0, !1), this.aacOverFlow = null, this._clearAllData(), this._setEmptyTracks()), this.currentSN = g; var H = this._avcTrack.id, I = this._aacTrack.id, J = this._id3Track.id; for (k && (delete this.audioConfig, this.lastContiguous = !G && g === this.lastSN + 1, this.fragStats = { framesCount: 0, keyFrames: 0, dropped: 0, segment: g, level: f, notFirstKeyframe: 0, keymap: { pmt: { aac: I, avc: H, id3: J }, idr: [], indr: [], sei: [] } }, this.remuxAVCCount = this.remuxAACCount = 0, this.fragStartPts = this.fragStartDts = this.gopStartDTS = void 0, this.fragStartAVCPos = this._avcTrack.samples.length, this.fragStartAACPos = this._aacTrack.samples.length, this.nextAvcDts = this.contiguous ? this.remuxer.nextAvcDts : this.timeOffset * this.remuxer.PES_TIMESCALE), C -= C % 188, s = 0, w = 0; s < C; s += 188) if (71 === a[s]) { if (t = !!(64 & a[s + 1]), u = ((31 & a[s + 1]) << 8) + a[s + 2], (48 & a[s + 3]) >> 4 > 1) { if ((x = s + 5 + a[s + 4]) === s + 188) continue } else x = s + 4; switch (u) { case H: if (t) { if (this.fragStats.keymap.first = this.fragStats.keymap.first || s, (r = this._parsePES(z)) && (this._parseAVCPES(r, !l), D && this._avcTrack.codec && (-1 === I || this._aacTrack.codec))) return void this.remux(a); if (this.lastAVCFrameStart = s, z = this._clearAvcData(s), p && this.numSample === p.firstSN) { this.switchLevel(!0), this.lastLevel = f, z = this._avcData, A = this._aacData, B = this._id3Data, s = p.switchPoint - 188, void 0 !== p.pmtId && (this._pmtId = p.pmtId), p.pmt && (H = this._avcTrack.id = p.pmt.avc, I = this._aacTrack.id = p.pmt.aac, J = this._id3Track.id = p.pmt.id3), ["sps", "pps"].forEach(F), delete p.firstSN; continue } } z.data.push(a.subarray(x, s + 188)), z.size += s + 188 - x; break; case I: if (t) { if ((r = this._parsePES(A)) && (this._aacTrack.isAAC ? this._parseAACPES(r) : this._parseMPEGPES(r), D && this._aacTrack.codec && (-1 === H || this._avcTrack.codec))) return void this.remux(a); A = this._clearAacData() } A.data.push(a.subarray(x, s + 188)), A.size += s + 188 - x; break; case J: t && ((r = this._parsePES(B)) && this._parseID3PES(r), B = this._clearID3Data()), B.data.push(a.subarray(x, s + 188)), B.size += s + 188 - x; break; case 0: t && (x += a[x] + 1), this._parsePAT(a, x); break; case this._pmtId: t && (x += a[x] + 1), this._parsePMT(a, x, !0 === this.typeSupported.mpeg || !0 === this.typeSupported.mp3), H = this._avcTrack.id, I = this._aacTrack.id, J = this._id3Track.id, E && !this.pmtParsed && (m.logger.log("reparse from beginning"), E = !1, s = -188), this.pmtParsed = !0; break; case 17: case 8191: break; default: E = !0 } } else { if (0 === w) { var K = void 0, L = a.length; for (v = "len:" + L + " [", K = 0, L = Math.min(L, 10); K < L; K++) K && (v += ","), v += a[s + K]; v += "..]" } w++ } w && this.observer.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.FRAG_PARSING_ERROR, fatal: !1, reason: "TS packet did not start with 0x47 sn:" + g + " samples: " + w + " " + v }), l && (z.size && (r = this._parsePES(z)) ? (this._parseAVCPES(r, !0), this._clearAvcData()) : this.avcSample && (this.pushAccessUnit(this.avcSample, this._avcTrack), this.avcSample = null), A.size && (r = this._parsePES(A)) && (this._aacTrack.isAAC ? this._parseAACPES(r) : this._parseMPEGPES(r), this._clearAacData()), B.size && (r = this._parsePES(B)) && (this._parseID3PES(r), this._clearID3Data()), this.lastSN = g), void 0 === this.fragStartPts && this._avcTrack.samples.length > this.fragStartAVCPos && (this.fragStartPts = this._avcTrack.samples[this.fragStartAVCPos].pts, this.fragStartDts = this._avcTrack.samples[this.fragStartAVCPos].dts), void 0 === this.gopStartDTS && this._avcTrack.samples.length && (this.gopStartDTS = this._avcTrack.samples[0].dts), this.remux(null, l, l && g === o, !0, q), l && (this.fragStats.keymap.sps = this._avcTrack.sps || void 0, this.fragStats.keymap.pps = this._avcTrack.pps || void 0, p && delete this.fragStats.keymap, this.observer.trigger(j.default.FRAG_STATISTICS, this.fragStats)) } }, { key: "_recalcTrack", value: function (a) { a.hasOwnProperty("nbNalu") && (a.nbNalu = 0), a.len = 0; for (var b = 0; b < a.samples.length; b++) { var c = a.samples[b]; a.len += (0 | (c.units && c.units.length)) + (0 | (c.unit && c.unit.length)) + (0 | c.len) + (0 | (c.bytes && c.bytes.length)), a.hasOwnProperty("nbNalu") && (a.nbNalu += c.units.units.length) } } }, { key: "_filterSamples", value: function (a, b, c) { for (var d = [], e = 0; e < a.samples.length; e++) { var f = a.samples[e]; (f.dts || f.pts) <= b ? d.push(f) : c && c.push(f) } if (!c) return d; a.samples = d, this._recalcTrack(a) } }, { key: "remux", value: function (a, b, c, d, e) { var f, g, h, i, k, l, m, n = [], o = [], p = [], q = [], r = this._avcTrack.samples, s = this.remuxer.PES_TIMESCALE; if (r.length && b) { m = e || void 0 === this.remuxer._initDTS || this.accurate && Math.abs(r[0].dts - this.remuxer.nextAvcDts - this.remuxer._initDTS) > this.config.maxBufferHole * s && (!this._aacTrack.samples.length || Math.abs(this._aacTrack.samples[0].pts - this.remuxer.nextAacPts - this.remuxer._initDTS) > this.config.maxBufferHole * s), l = m ? Math.min(this._aacTrack.samples.length ? this._aacTrack.samples[0].pts : 1 / 0, r[0].dts) - s * this.timeOffset : this.remuxer._initDTS, m && (this.accurate = !1, this.remuxer.switchLevel(), this.remuxer.insertDiscontinuity()); var t = c && !d || (void 0 !== this.lastContiguous ? this.lastContiguous : this.contiguous) || this.remuxer.contiguousTest(r, this.fragStats.dropped, c && this.nextStartPts ? this.nextStartPts : this.timeOffset, this.accurate), u = Math.max(this.remuxer._PTSNormalize((void 0 === this.gopStartDTS ? r[0].dts : this.gopStartDTS) - l, this.nextAvcDts), 0), v = r[r.length - 1], w = void 0; if (i = Math.max(this.remuxer._PTSNormalize((void 0 === this.fragStartDts ? r[0].dts : this.fragStartDts) - l, this.nextAvcDts), 0) / s, k = Math.max(this.remuxer._PTSNormalize(v.dts - l, this.nextAvcDts), 0) / s, this.accurate && Math.abs(u - this.nextAvcDts) > 90 && (i -= (u - this.nextAvcDts) / s), r.length + this.remuxAVCCount > this.fragStartAVCPos + 1 && void 0 !== this.fragStartDts) { var x = this.remuxer._PTSNormalize(this.fragStartDts, this.nextAvcDts); w = (this.remuxer._PTSNormalize(v.dts, this.nextAvcDts) - x) / (r.length + this.remuxAVCCount - this.fragStartAVCPos - 1), k += w / s } if (g = i, h = k, this.fragStats.dropped && w && (t ? k += w * this.fragStats.dropped / s : i -= w * this.fragStats.dropped / s), this._aacTrack.audiosamplerate) { var y = 1024 / this._aacTrack.audiosamplerate, z = this._aacTrack.samples.length, A = (void 0 !== this.lastContiguous && this.lastContiguous || this.contiguous && this.remuxAACCount) && this.remuxer.nextAacPts ? this.remuxer.nextAacPts / s : this.accurate ? this.timeOffset : g; g = Math.max(g, A + (this.fragStartAACPos - this.remuxAACCount) * y), z && (h = Math.min(h, A + y * z)); var B = void 0; (B = h - g + i - k) > .2 && (this.fragStats.AVUnsync = B) } } if (!(c || this.config && this.config.disableBrakeByGop)) { for (f = r.length - 1; f > 1; f--) if (r[f].key) { var C = (r[f - 1].dts - l) / s; (C < g || C - i < (k - i) / 3) && (f = 0); break } if (f > 1) { var D = this._avcTrack.samples[f - 1].dts; (this.remuxer.ISGenerated || !this.remuxer.ISGenerated && this._aacTrack.samples.length && this._filterSamples(this._aacTrack, D).length) && (n = r.slice(f), this._avcTrack.samples = r.slice(0, f), this._recalcTrack(this._avcTrack), this._filterSamples(this._aacTrack, D, o), this._filterSamples(this._id3Track, D, p), this._filterSamples(this._txtTrack, D, q)) } } if (((c || b && !this.remuxAVCCount) && this._avcTrack.samples.length + this._aacTrack.samples.length || f > 0) && (this.remuxAVCCount += this._avcTrack.samples.length, this.remuxAACCount += this._aacTrack.samples.length, this.remuxer.remux(this._aacTrack, this._avcTrack, this._id3Track, this._txtTrack, c && this.nextStartPts ? this.nextStartPts : this.timeOffset, c && !d || (void 0 !== this.lastContiguous ? this.lastContiguous : this.contiguous), this.accurate, a, c, this.fragStats, c && !d, this.remuxAACCount - this.fragStartAACPos), this.lastContiguous = void 0, this.nextStartPts = this.remuxer.endPTS, this._avcTrack.samples = n, this._aacTrack.samples = o, this._id3Track.samples = p, this._txtTrack.samples = q, this._recalcTrack(this._avcTrack), this._recalcTrack(this._aacTrack), this._recalcTrack(this._id3Track), this._recalcTrack(this._txtTrack)), b) { var E = Math.min(this.remuxer.nextAvcDts, this.remuxer.nextAacPts) / s; this.observer.trigger(j.default.FRAG_PARSED, { startPTS: i, endPTS: k, lastGopPTS: E }) } } }, { key: "destroy", value: function () { this.switchLevel(), this._initPTS = this._initDTS = void 0, this._duration = 0 } }, { key: "_parsePAT", value: function (a, b) { this._pmtId = (31 & a[b + 10]) << 8 | a[b + 11], this.fragStats.keymap.pmtId = this._pmtId } }, { key: "_parsePMT", value: function (a, b, c) { var d, e, f, g; for (d = (15 & a[b + 1]) << 8 | a[b + 2], e = b + 3 + d - 4, f = (15 & a[b + 10]) << 8 | a[b + 11], b += 12 + f; b < e;) { switch (g = (31 & a[b + 1]) << 8 | a[b + 2], a[b]) { case 15: -1 === this._aacTrack.id && (this._aacTrack.id = g, this.fragStats.keymap.pmt.aac = g); break; case 21: -1 === this._id3Track.id && (this._id3Track.id = g, this.fragStats.keymap.pmt.id3 = g); break; case 27: -1 === this._avcTrack.id && (this._avcTrack.id = g, this.fragStats.keymap.pmt.avc = g); break; case 3: case 4: m.logger.log("MPEG PID:" + g), c ? (-1 === this._aacTrack.id && (this._aacTrack.id = g, this.fragStats.keymap.pmt.mpg = g), this._aacTrack.isAAC = !1) : m.logger.log("MPEG audio found, not supported in this browser for now"); break; case 36: this.fragStats.HEVC = 1 + (0 | this.fragStats.HEVC), m.logger.warn("HEVC stream type found, not supported for now"); break; default: this.fragStats.unknownStream = 1 + (0 | this.fragStats.unknownStream), m.logger.log("unkown stream type:" + a[b]) } b += 5 + ((15 & a[b + 3]) << 8 | a[b + 4]) } } }, { key: "_parsePES", value: function (a) { var b, c, d, e, f, g, h, i, j = 0, k = a.data; if (!a || 0 === a.size) return null; for (; k[0].length < 19 && k.length > 1;) { var l = new Uint8Array(k[0].length + k[1].length); l.set(k[0]), l.set(k[1], k[0].length), k[0] = l, k.splice(1, 1) } if (b = k[0], 1 === (b[0] << 16) + (b[1] << 8) + b[2]) { if ((d = (b[4] << 8) + b[5]) && d > a.size - 6) return null; for (c = b[7], 192 & c && (g = 536870912 * (14 & b[9]) + 4194304 * (255 & b[10]) + 16384 * (254 & b[11]) + 128 * (255 & b[12]) + (254 & b[13]) / 2, g > 4294967295 && (g -= 8589934592), 64 & c ? (h = 536870912 * (14 & b[14]) + 4194304 * (255 & b[15]) + 16384 * (254 & b[16]) + 128 * (255 & b[17]) + (254 & b[18]) / 2, h > 4294967295 && (h -= 8589934592), g - h > 54e5 && (m.logger.warn(Math.round((g - h) / 9e4) + "s delta between PTS and DTS, align them"), g = h)) : h = g), e = b[8], i = e + 9, a.size -= i, f = new Uint8Array(a.size); k.length;) { b = k.shift(); var n = b.byteLength; if (i) { if (i > n) { i -= n; continue } b = b.subarray(i), n -= i, i = 0 } f.set(b, j), j += n } return d && (d -= e + 3), { data: f, pts: g, dts: h, len: d } } return null } }, { key: "pushAccessUnit", value: function (a, b) { if (a.units.length) { var c = b.samples, d = c.length; this.fragStats.framesCount++, !0 === a.key || b.sps && (d || this.contiguous) ? (a.key && this.fragStats.keyFrames++, a.id = d, c.push(a), b.len += a.units.length, b.nbNalu += a.units.units.length) : this.fragStats.dropped++, this.numSample || a.key || this.fragStats.notFirstKeyframe++, this.numSample++ } } }, { key: "_parseAVCPES", value: function (a, b) { var c, d, e, f = this, g = this._avcTrack, h = this._parseAVCNALu(a.data), i = !1, j = this.avcSample, k = this.config, n = function (a, b, c) { return { key: a, pts: b, dts: c, units: { units: [], length: 0 } } }; if (0 === h.length && j && j.units.length > 0) { var o = j.units.units[j.units.units.length - 1], p = new Uint8Array(o.data.byteLength + a.data.byteLength); p.set(o.data, 0), p.set(a.data, o.data.byteLength), o.data = p, j.units.length += a.data.byteLength } a.data = null; var q = "", r = function (a) { for (var b = f.fragStats.keymap, c = -1, d = ["idr", "indr", "sei"], e = 0; e < d.length; e++) { var g = d[e]; b[g].length && (c = Math.max(b[g].slice(-1)[0].offset || -1, c)) } c !== f.lastAVCFrameStart && b[a].push({ offset: f.lastAVCFrameStart, sn: f.numSample }) }; j && j.pts === a.pts && j.dts === a.dts || (j && this.pushAccessUnit(j, g), j = this.avcSample = n(!1, a.pts, a.dts)), h.forEach(function (b) { switch (b.type) { case 1: d = !0; var h = b.data; if (i && h.length > 4) { var m = new l.default(h).readSliceType(); 2 !== m && 4 !== m && 7 !== m && 9 !== m || (j.key = !0, r("indr")) } break; case 5: d = !0, j.key = !0, r("idr"); break; case 6: d = !0, c = new l.default(f.discardEPB(b.data)), c.readUByte(); for (var o = 0, p = 0, s = !1, t = 0; !s && c.wholeBytesAvailable() > 1;) { o = 0; do { t = c.readUByte(), o += t } while (255 === t); p = 0; do { t = c.readUByte(), p += t } while (255 === t); if (k.disableSEIkeyframes || 6 !== o || (j.key = !0, r("sei")), 4 === o && 0 !== c.wholeBytesAvailable()) { s = !0; if (181 === c.readUByte()) { if (49 === c.readUShort()) { if (1195456820 === c.readUInt()) { if (3 === c.readUByte()) { var u = c.readUByte(), v = c.readUByte(), w = 31 & u, x = [u, v]; for (e = 0; e < w; e++) x.push(c.readUByte()), x.push(c.readUByte()), x.push(c.readUByte()); f._insertSampleInOrder(f._txtTrack.samples, { type: 3, pts: a.pts, bytes: x }) } } } } } else if (p < c.wholeBytesAvailable()) for (e = 0; e < p; e++) c.readUByte() } break; case 7: if (d = !0, i = !0, !g.sps) { c = new l.default(b.data); var y = c.readSPS(); g.width = y.width, g.height = y.height, g.pixelRatio = y.pixelRatio, g.sps = [b.data], g.duration = f._duration; var z = b.data.subarray(1, 4), A = "avc1."; for (e = 0; e < 3; e++) { var B = z[e].toString(16); B.length < 2 && (B = "0" + B), A += B } g.codec = A } break; case 8: d = !0, g.pps || (g.pps = [b.data]); break; case 9: d = !1, f.pushAccessUnit(j, g), j = f.avcSample = n(!1, a.pts, a.dts); break; case 12: d = !1; break; default: d = !1, q += "unknown NAL " + b.type + " " } d && (j.units.units.push(b), j.units.length += b.data.byteLength) }), q.length && m.logger.log(q), j.key && this.levelParams[this.lastLevel] && (g.sps = g.sps || this.levelParams[this.lastLevel].sps || void 0, g.pps = g.pps || this.levelParams[this.lastLevel].pps || void 0), j && (b && this.pushAccessUnit(j, g), (b || 0 === j.units.length) && (this.avcSample = null)) } }, { key: "_insertSampleInOrder", value: function (a, b) { var c = a.length; if (c > 0) { if (b.pts >= a[c - 1].pts) a.push(b); else for (var d = c - 1; d >= 0; d--) if (b.pts < a[d].pts) { a.splice(d, 0, b); break } } else a.push(b) } }, { key: "_parseAVCNALu", value: function (a) { for (var b, c, d, e, f, g, h = 0, i = a.byteLength, j = this.avcNaluState, k = []; h < i;) switch (b = a[h++], j) { case 0: 0 === b && (j = 1); break; case 1: j = 0 === b ? 2 : 0; break; case 2: case 3: if (0 === b) j = 3; else if (1 === b && h < i) { if (e = 31 & a[h], f) d = { data: a.subarray(f, h - j - 1), type: g }, k.push(d); else { var l = this.avcNaluState; if (l && h <= 4 - l) { var m = this.avcSample; if (m) { var n = m.units.units, o = n[n.length - 1]; o.state && (o.data = o.data.subarray(0, o.data.byteLength - l), m.units.length -= l) } } if ((c = h - j - 1) > 0) { var p = this.avcSample; if (p) { var q = p.units.units, r = q[q.length - 1], s = new Uint8Array(r.data.byteLength + c); s.set(r.data, 0), s.set(a.subarray(0, c), r.data.byteLength), r.data = s, p.units.length += c } } } f = h, g = e, j = 0 } else j = 0 } return f && (d = { data: a.subarray(f, i), type: g, state: j }, k.push(d), this.avcNaluState = j), k } }, { key: "discardEPB", value: function (a) { for (var b, c, d = a.byteLength, e = [], f = 1; f < d - 2;) 0 === a[f] && 0 === a[f + 1] && 3 === a[f + 2] ? (e.push(f + 2), f += 2) : f++; if (0 === e.length) return a; b = d - e.length, c = new Uint8Array(b); var g = 0; for (f = 0; f < b; g++, f++) g === e[0] && (g++, e.shift()), c[f] = a[g]; return c } }, { key: "_parseAACPES", value: function (a) { var b, c, d, e, f, g, i, k, l, o = this._aacTrack, p = a.data, q = a.pts, r = this._duration, s = this.audioCodec, t = this.aacOverFlow, u = this.aacLastPTS; if (t) { var v = new Uint8Array(t.byteLength + p.byteLength); v.set(t, 0), v.set(p, t.byteLength), p = v } for (f = 0, k = p.length; f < k - 1 && (255 !== p[f] || 240 != (240 & p[f + 1])); f++); if (f) { var w, x; if (f < k - 1 ? (w = "AAC PES did not start with ADTS header,offset:" + f, x = !1) : (w = "no ADTS header found in AAC PES", x = !0), this.observer.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.FRAG_PARSING_ERROR, fatal: x, reason: w }), x) return } if (this.audioConfig = b = this.audioConfig || h.default.getAudioConfig(this.observer, p, f, s, this.config), !b || o.audiosamplerate === b.samplerate && o.codec === b.codec && o.channelCount === b.channelCount || (o.config = b.config, o.audiosamplerate = b.samplerate, o.channelCount = b.channelCount, o.codec = b.codec, o.duration = r, m.logger.log("parsed codec:" + o.codec + ",rate:" + b.samplerate + ",nb channel:" + b.channelCount)), e = 0, d = 9216e4 / o.audiosamplerate, t && u) { var y = u + d; Math.abs(y - q) > 1 && (m.logger.log("AAC: align PTS for overlapping frames by " + Math.round((y - q) / 90)), q = y) } for (; f + 5 < k && (g = 1 & p[f + 1] ? 7 : 9, c = (3 & p[f + 3]) << 11 | p[f + 4] << 3 | (224 & p[f + 5]) >>> 5, (c -= g) > 0 && f + g + c <= k);) for (i = q + e * d, l = { unit: p.subarray(f + g, f + g + c), pts: i, dts: i }, o.samples.push(l), o.len += c, f += c + g, e++; f < k - 1 && (255 !== p[f] || 240 != (240 & p[f + 1])); f++); t = f < k ? p.subarray(f, k) : null, this.aacOverFlow = t, this.aacLastPTS = i } }, { key: "_parseMPEGPES", value: function (a) { for (var b, c = a.data, d = a.pts, e = c.length, f = 0, g = 0; g < e && (b = this._parseMpeg(c, g, e, f++, d)) > 0;) g += b } }, { key: "_onMpegFrame", value: function (a, b, c, d, e, f) { var g = 1152 / c * 1e3, h = f + e * g, i = this._aacTrack; i.config = [], i.channelCount = d, i.audiosamplerate = c, i.duration = this._duration, i.samples.push({ unit: a, pts: h, dts: h }), i.len += a.length } }, { key: "_onMpegNoise", value: function (a) { m.logger.warn("mpeg audio has noise: " + a.length + " bytes") } }, { key: "_parseMpeg", value: function (a, b, c, d, e) { var f = [32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 384, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320, 32, 48, 56, 64, 80, 96, 112, 128, 144, 160, 176, 192, 224, 256, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160], g = [44100, 48e3, 32e3, 22050, 24e3, 16e3, 11025, 12e3, 8e3]; if (b + 2 > c) return -1; if (255 === a[b] || 224 == (224 & a[b + 1])) { if (b + 24 > c) return -1; var h = a[b + 1] >> 3 & 3, i = a[b + 1] >> 1 & 3, j = a[b + 2] >> 4 & 15, k = a[b + 2] >> 2 & 3, l = !!(2 & a[b + 2]); if (1 !== h && 0 !== j && 15 !== j && 3 !== k) { var m = 3 === h ? 3 - i : 3 === i ? 3 : 4, n = 1e3 * f[14 * m + j - 1], o = 3 === h ? 0 : 2 === h ? 1 : 2, p = g[3 * o + k], q = l ? 1 : 0, r = a[b + 3] >> 6 == 3 ? 1 : 2, s = 3 === i ? (3 === h ? 12 : 6) * n / p + q << 2 : (3 === h ? 144 : 72) * n / p + q | 0; return b + s > c ? -1 : (this._onMpegFrame && this._onMpegFrame(a.subarray(b, b + s), n, p, r, d, e), s) } } for (var t = b + 2; t < c;) { if (255 === a[t - 1] && 224 == (224 & a[t])) return this._onMpegNoise && this._onMpegNoise(a.subarray(b, t - 1)), t - b - 1; t++ } return -1 } }, { key: "_parseID3PES", value: function (a) { this._id3Track.samples.push(a) } }], [{ key: "probe", value: function (a) { return a.length >= 564 && 71 === a[0] && 71 === a[188] && 71 === a[376] } }]), a }(); c.default = o }, { "../errors": 23, "../events": 25, "../utils/logger": 41, "../utils/polyfill": 42, "./adts": 16, "./exp-golomb": 20 }], 23: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); c.ErrorTypes = { NETWORK_ERROR: "networkError", MEDIA_ERROR: "mediaError", OTHER_ERROR: "otherError" }, c.ErrorDetails = { MANIFEST_LOAD_ERROR: "manifestLoadError", MANIFEST_LOAD_TIMEOUT: "manifestLoadTimeOut", MANIFEST_PARSING_ERROR: "manifestParsingError", MANIFEST_INCOMPATIBLE_CODECS_ERROR: "manifestIncompatibleCodecsError", LEVEL_LOAD_ERROR: "levelLoadError", LEVEL_LOAD_TIMEOUT: "levelLoadTimeOut", LEVEL_SWITCH_ERROR: "levelSwitchError", FRAG_LOAD_ERROR: "fragLoadError", FRAG_LOOP_LOADING_ERROR: "fragLoopLoadingError", FRAG_LOAD_TIMEOUT: "fragLoadTimeOut", FRAG_DECRYPT_ERROR: "fragDecryptError", FRAG_PARSING_ERROR: "fragParsingError", KEY_LOAD_ERROR: "keyLoadError", KEY_LOAD_TIMEOUT: "keyLoadTimeOut", BUFFER_ADD_CODEC_ERROR: "bufferAddCodecError", BUFFER_APPEND_ERROR: "bufferAppendError", BUFFER_APPENDING_ERROR: "bufferAppendingError", BUFFER_STALLED_ERROR: "bufferStalledError", BUFFER_FULL_ERROR: "bufferFullError", BUFFER_SEEK_OVER_HOLE: "bufferSeekOverHole", BUFFER_NUDGE_ON_STALL: "bufferNudgeOnStall", INTERNAL_EXCEPTION: "internalException" } }, {}], 24: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (a) { return typeof a } : function (a) { return a && "function" == typeof Symbol && a.constructor === Symbol && a !== Symbol.prototype ? "symbol" : typeof a }, f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("./utils/logger"), h = a("./errors"), i = a("./events"), j = function (a) { return a && a.__esModule ? a : { default: a } }(i), k = function () { function a(b) { d(this, a), this.hls = b, this.onEvent = this.onEvent.bind(this); for (var c = arguments.length, e = Array(c > 1 ? c - 1 : 0), f = 1; f < c; f++) e[f - 1] = arguments[f]; this.handledEvents = e, this.useGenericHandler = !0, this.registerListeners() } return f(a, [{ key: "destroy", value: function () { this.unregisterListeners() } }, { key: "isEventHandler", value: function () { return "object" === e(this.handledEvents) && this.handledEvents.length && "function" == typeof this.onEvent } }, { key: "registerListeners", value: function () { this.isEventHandler() && this.handledEvents.forEach(function (a) { if ("hlsEventGeneric" === a) throw new Error("Forbidden event name: " + a); this.hls.on(a, this.onEvent) }.bind(this)) } }, { key: "unregisterListeners", value: function () { this.isEventHandler() && this.handledEvents.forEach(function (a) { this.hls.off(a, this.onEvent) }.bind(this)) } }, { key: "onEvent", value: function (a, b) { this.onEventGeneric(a, b) } }, { key: "onEventGeneric", value: function (a, b) { var c = function (a, b) { var c = "on" + a.replace("hls", ""); if ("function" != typeof this[c]) throw new Error("Event " + a + " has no generic handler in this " + this.constructor.name + " class (tried " + c + ")"); return this[c].bind(this, b) }; try { c.call(this, a, b).call() } catch (b) { g.logger.error("internal error happened while processing " + a + ":" + b.stack), this.hls.trigger(j.default.ERROR, { type: h.ErrorTypes.OTHER_ERROR, details: h.ErrorDetails.INTERNAL_EXCEPTION, fatal: !1, event: a, err: b }) } } }]), a }(); c.default = k }, { "./errors": 23, "./events": 25, "./utils/logger": 41 }], 25: [function (a, b, c) { "use strict"; b.exports = { PLAYER_CREATED: "hlsPlayerCreated", PLAYER_DESTROYED: "hlsPlayerDestroyed", MEDIA_ATTACHING: "hlsMediaAttaching", MEDIA_ATTACHED: "hlsMediaAttached", MEDIA_DETACHING: "hlsMediaDetaching", MEDIA_DETACHED: "hlsMediaDetached", BUFFER_RESET: "hlsBufferReset", BUFFER_CODECS: "hlsBufferCodecs", BUFFER_APPENDING: "hlsBufferAppending", BUFFER_EOS: "hlsBufferEos", BUFFER_FLUSHING: "hlsBufferFlushing", BUFFER_FLUSHED: "hlsBufferFlushed", MANIFEST_LOADING: "hlsManifestLoading", MANIFEST_LOADED: "hlsManifestLoaded", MANIFEST_REPLACE: "hlsManifestReplace", MANIFEST_PARSED: "hlsManifestParsed", LEVEL_LOADING: "hlsLevelLoading", LEVEL_LOADED: "hlsLevelLoaded", LEVEL_REPLACE: "hlsLevelReplace", LEVEL_UPDATED: "hlsLevelUpdated", LEVEL_PTS_UPDATED: "hlsLevelPtsUpdated", LEVEL_SWITCH: "hlsLevelSwitch", FRAG_LOADING: "hlsFragLoading", FRAG_LOAD_PROGRESS: "hlsFragLoadProgress", FRAG_LOAD_EMERGENCY_ABORTED: "hlsFragLoadEmergencyAborted", FRAG_CHUNK_LOADED: "hlsFragChunkLoaded", FRAG_LOADED: "hlsFragLoaded", FRAG_PARSING_INIT_SEGMENT: "hlsFragParsingInitSegment", FRAG_PARSING_USERDATA: "hlsFragParsingUserdata", FRAG_PARSING_METADATA: "hlsFragParsingMetadata", FRAG_PARSING_DATA: "hlsFragParsingData", FRAG_PARSED: "hlsFragParsed", FRAG_STATISTICS: "hlsFragStatistics", FRAG_BUFFERED: "hlsFragBuffered", FRAG_CHANGED: "hlsFragChanged", FRAG_APPENDING: "hlsFragAppending", FRAG_APPENDED: "hlsFragAppended", FPS_DROP: "hlsFpsDrop", FPS_DROP_LEVEL_CAPPING: "hlsFpsDropLevelCapping", ERROR: "hlsError", DESTROYING: "hlsDestroying", KEY_LOADING: "hlsKeyLoading", KEY_LOADED: "hlsKeyLoaded", STREAM_STATE_TRANSITION: "hlsStreamStateTransition", DEMUXER_QUEUE_EMPTY: "hlsDemuxerQueueEmpty", BUF_STATISTICS: "hlsBufStatistics" } }, {}], 26: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = function () { function a() { d(this, a) } return e(a, null, [{ key: "getSilentFrame", value: function (a) { return 1 === a ? new Uint8Array([0, 200, 0, 128, 35, 128]) : 2 === a ? new Uint8Array([33, 0, 73, 144, 2, 25, 0, 35, 128]) : 3 === a ? new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 142]) : 4 === a ? new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 128, 44, 128, 8, 2, 56]) : 5 === a ? new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 56]) : 6 === a ? new Uint8Array([0, 200, 0, 128, 32, 132, 1, 38, 64, 8, 100, 0, 130, 48, 4, 153, 0, 33, 144, 2, 0, 178, 0, 32, 8, 224]) : null } }]), a }(); c.default = f }, {}], 27: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = function () { function a() { d(this, a) } return e(a, null, [{ key: "isBuffered", value: function (a, b) { if (a) for (var c = a.buffered, d = 0; d < c.length; d++) if (b >= c.start(d) && b <= c.end(d)) return !0; return !1 } }, { key: "bufferInfo", value: function (a, b, c) { if (a) { var d, e = a.buffered, f = []; for (d = 0; d < e.length; d++) f.push({ start: e.start(d), end: e.end(d) }); return this.bufferedInfo(f, b, c) } return { len: 0, start: 0, end: 0, nextStart: void 0 } } }, { key: "bufferedInfo", value: function (a, b, c) { var d, e, f, g, h, i = []; for (a.sort(function (a, b) { var c = a.start - b.start; return c || b.end - a.end }), h = 0; h < a.length; h++) { var j = i.length; if (j) { var k = i[j - 1].end; a[h].start - k < c ? a[h].end > k && (i[j - 1].end = a[h].end) : i.push(a[h]) } else i.push(a[h]) } for (h = 0, d = 0, e = f = b; h < i.length; h++) { var l = i[h].start, m = i[h].end; if (b + c >= l && b < m) e = l, f = m, d = f - b; else if (b + c < l) { g = l; break } } return { len: d, start: e, end: f, nextStart: g } } }]), a }(); c.default = f }, {}], 28: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../utils/logger"), g = function () { function a() { d(this, a) } return e(a, null, [{ key: "isLive", value: function (a, b) { return !!(void 0 !== a && b && b[a] && b[a].details && b[a].details.live) } }, { key: "canMerge", value: function (b, c) { var d = a.probeDetails(b, c), e = d.start; return d.end >= e } }, { key: "probeDetails", value: function (a, b) { function c(a) { for (var b = 0, c = 0, d = 0; d < a.fragments.length && !a.fragments[d].programDateTime; d++); if (d !== a.fragments.length) { b = c = a.fragments[d].programDateTime.getTime(); for (var e = 0; e < a.fragments.length - 1; e++) e < d ? b -= 1e3 * a.fragments[e].duration : c += 1e3 * a.fragments[e].duration; return { start: b, end: c } } } var d = Math.max(a.startSN, b.startSN) - b.startSN, e = Math.min(a.endSN, b.endSN) - b.startSN, f = b.startSN - a.startSN; if (e >= d) return { start: d, end: e, delta: f }; var g = c(a), h = c(b); if (g && h && g.start <= h.start && g.end >= h.start) { d = f = 0, e = Math.min(b.fragments.length, a.fragments.length) - 1; for (var i = g.start; h.start - i > 100;) i += 1e3 * a.fragments[f++].duration, e--; return { start: d, end: e, delta: f } } return { start: 1, end: 0, delta: 0 } } }, { key: "adjustSliding", value: function (a, b) { for (var c = 0; c < a.length; c++) a[c].start += b } }, { key: "mergeDetails", value: function (b, c) { var d, e = b.fragments, g = c.fragments, h = 0, i = a.probeDetails(b, c), j = i.start, k = i.end, l = i.delta; if (k < j) return void(c.PTSKnown = !1); for (var m = j; m <= k; m++) { var n = e[l + m], o = g[m]; h = n.cc - o.cc, isNaN(n.startPTS) || (o.start = o.startPTS = n.startPTS, o.endPTS = n.endPTS, o.duration = n.duration, o.lastGop = n.lastGop, d = o), n.firstGop && (o.firstGop = n.firstGop) } if (h) for (f.logger.log("discontinuity sliding from playlist, take drift into account"), m = 0; m < g.length; m++) g[m].cc += h; d ? a.updateFragPTS(c, d.sn, d.startPTS, d.endPTS, d.lastGop) : l >= 0 && l < e.length && this.adjustSliding(g, e[l].start), c.PTSKnown = b.PTSKnown } }, { key: "updateFragPTS", value: function (b, c, d, e, f) { var g, h, i, j; if (c < b.startSN || c > b.endSN) return 0; g = c - b.startSN, h = b.fragments, i = h[g], isNaN(i.startPTS) || (d = Math.min(d, i.startPTS), e = Math.max(e, i.endPTS)); var k = d - i.start; for (i.start = i.startPTS = d, i.endPTS = e, i.duration = e - d, f && (i.lastGop = f), j = g; j > 0; j--) a.updatePTS(h, j, j - 1); for (j = g; j < h.length - 1; j++) a.updatePTS(h, j, j + 1); return b.PTSKnown = !0, k } }, { key: "updatePTS", value: function (a, b, c) { var d = a[b], e = a[c], g = e.startPTS; isNaN(g) ? e.start = c > b ? d.start + d.duration : d.start - e.duration : c > b ? (d.duration = g - d.start, d.duration < 0 && f.logger.warn("negative duration computed for frag " + d.sn + ",level " + d.level + ", there should be some duration drift between playlist and fragment!")) : (e.duration = d.start - g, e.duration < 0 && f.logger.warn("negative duration computed for frag " + e.sn + ",level " + e.level + ", there should be some duration drift between playlist and fragment!")), c > b && d.lastGop && (e.firstGop = d.lastGop) } }]), a }(); c.default = g }, { "../utils/logger": 41 }], 29: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("./events"), h = d(g), i = a("./errors"), j = a("./loader/playlist-loader"), k = d(j), l = a("./loader/fragment-loader"), m = d(l), n = a("./controller/abr-controller"), o = d(n), p = a("./controller/buffer-controller"), q = d(p), r = a("./controller/cap-level-controller"), s = d(r), t = a("./controller/stream-controller"), u = d(t), v = a("./controller/level-controller"), w = d(v), x = a("./controller/timeline-controller"), y = d(x), z = a("./controller/fps-controller"), A = d(z), B = a("./utils/logger"), C = a("./utils/xhr-loader"), D = d(C), E = a("events"), F = d(E), G = a("./loader/key-loader"), H = d(G), I = a("./utils/cues"), J = d(I), K = a("./utils/browser"), L = d(K), M = function () { function a() { var b = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}; e(this, a); var c = a.DefaultConfig; if ((b.liveSyncDurationCount || b.liveMaxLatencyDurationCount) && (b.liveSyncDuration || b.liveMaxLatencyDuration)) throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration"); for (var d in c) d in b || (b[d] = c[d]); if (void 0 !== b.liveMaxLatencyDurationCount && b.liveMaxLatencyDurationCount <= b.liveSyncDurationCount) throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"'); if (void 0 !== b.liveMaxLatencyDuration && (b.liveMaxLatencyDuration <= b.liveSyncDuration || void 0 === b.liveSyncDuration)) throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"'); (0, B.enableLogs)(b.debug, this), this.config = b; var f = this.observer = new F.default; f.trigger = function (a) { for (var b = arguments.length, c = Array(b > 1 ? b - 1 : 0), d = 1; d < b; d++) c[d - 1] = arguments[d]; f.emit.apply(f, [a, a].concat(c)) }, f.off = function (a) { for (var b = arguments.length, c = Array(b > 1 ? b - 1 : 0), d = 1; d < b; d++) c[d - 1] = arguments[d]; f.removeListener.apply(f, [a].concat(c)) }, this.on = f.on.bind(f), this.off = f.off.bind(f), this.trigger = f.trigger.bind(f), this.playlistLoader = new k.default(this), this.fragmentLoader = new m.default(this), this.levelController = new w.default(this), this.abrController = new b.abrController(this), this.bufferController = new b.bufferController(this), this.capLevelController = new b.capLevelController(this), this.fpsController = new b.fpsController(this), this.streamController = new b.streamController(this), this.timelineController = new b.timelineController(this), this.keyLoader = new H.default(this), a.api.players.push(this), a.api.emit(h.default.PLAYER_CREATED, this) } return f(a, null, [{ key: "isSupported", value: function () { return ! function () { var a, b = /\bOPR\b\/(\d+)/i, c = / Chrome\/(\d+)(\.\d+)+.* Safari\/\d+(\.\d+)+/, d = window.navigator && window.navigator.userAgent; return !!c.exec(d) && (a = b.exec(d), d.match(/Android/) && (a ? a[1] : void 0) < 25) }() && (window.MediaSource && window.MediaSource.isTypeSupported('video/mp4; codecs="avc1.42E01E,mp4a.40.2"')) } }, { key: "isIe", value: function () { return L.default.init().isIe } }, { key: "version", get: function () { return "0.6.1-221" } }, { key: "Events", get: function () { return h.default } }, { key: "ErrorTypes", get: function () { return i.ErrorTypes } }, { key: "ErrorDetails", get: function () { return i.ErrorDetails } }, { key: "DefaultConfig", get: function () { return a.defaultConfig || (a.defaultConfig = { autoStartLoad: !0, debug: !1, capLevelOnFPSDrop: !1, capLevelToPlayerSize: !1, maxBufferLength: 40, maxStartBufferLength: 6, maxBufferSize: 6e7, maxBufferHole: .5, maxSeekHole: 2, lowBufferWatchdogPeriod: 0, highBufferWatchdogPeriod: 3, nudgeOffset: .1, nudgeMaxRetry: 5, maxFragLookUpTolerance: .2, liveSyncDurationCount: 3, liveMaxLatencyDurationCount: 1 / 0, liveSyncDuration: void 0, liveMaxLatencyDuration: void 0, maxMaxBufferLength: 40, enableWorker: !a.isIe(), enableSoftwareAES: !0, enableSmoothStreaming: !0, enableDropContiguous: !0, manifestLoadingTimeOut: 2e4, manifestLoadingMaxRetry: 4, manifestLoadingRetryDelay: 1e3, levelLoadingTimeOut: 2e4, levelLoadingMaxRetry: 4, levelLoadingRetryDelay: 1e3, levelLoadingMaxRetryTimeout: 64e3, fragLoadingTimeOut: 2e4, fragLoadingMaxRetry: 6, fragLoadingRetryDelay: 1e3, fragLoadingLoopThreshold: 1e3, clearLevelDetailsOnSwitching: !1, startFragPrefetch: !1, fpsDroppedMonitoringPeriod: 5e3, fpsDroppedMonitoringThreshold: .2, appendErrorMaxRetry: 3, loader: D.default, fLoader: void 0, pLoader: void 0, abrController: o.default, bufferController: q.default, capLevelController: s.default, fpsController: A.default, streamController: u.default, timelineController: y.default, cueHandler: J.default, enableCEA708Captions: !0, enableMP2TPassThrough: !1, stretchShortVideoTrack: !1, browser: L.default.init() }), a.defaultConfig }, set: function (b) { a.defaultConfig = b } }]), f(a, [{ key: "destroy", value: function () { B.logger.log("destroy"), this.trigger(h.default.DESTROYING), this.detachMedia(), this.playlistLoader.destroy(), this.fragmentLoader.destroy(), this.levelController.destroy(), this.abrController.destroy(), this.bufferController.destroy(), this.capLevelController.destroy(), this.fpsController.destroy(), this.streamController.destroy(), this.timelineController.destroy(), this.keyLoader.destroy(), this.url = null, this.observer.removeAllListeners(); var b = a.api.players.indexOf(this); b < 0 || (a.api.players.splice(b, 1), a.api.emit(h.default.PLAYER_DESTROYED, this)) } }, { key: "attachMedia", value: function (a) { B.logger.log("attachMedia"), this.media = a, this.trigger(h.default.MEDIA_ATTACHING, { media: a }) } }, { key: "detachMedia", value: function () { B.logger.log("detachMedia"), this.trigger(h.default.MEDIA_DETACHING), this.media = null } }, { key: "loadSource", value: function (a) { B.logger.log("loadSource:" + a), this.url = a, this.trigger(h.default.MANIFEST_LOADING, { url: a }) } }, { key: "startLoad", value: function () { var a = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0; B.logger.log("startLoad(" + a + ")"), this.levelController.startLoad(), this.streamController.startLoad(a) } }, { key: "stopLoad", value: function (a) { B.logger.log("stopLoad"), this.levelController.stopLoad(), this.streamController.stopLoad(a) } }, { key: "clearLevelDetails", value: function () { B.logger.log("clearing level details"), this.levelController.clearLevelDetails() } }, { key: "swapAudioCodec", value: function () { B.logger.log("swapAudioCodec"), this.streamController.swapAudioCodec() } }, { key: "recoverMediaError", value: function () { B.logger.log("recoverMediaError"); var a = this.media; this.detachMedia(), this.attachMedia(a) } }, { key: "setLogs", value: function (a) { (0, B.enableLogs)(a, this) } }, { key: "isSmoothStreaming", value: function () { return this.config.enableSmoothStreaming } }, { key: "levels", get: function () { return this.levelController.levels } }, { key: "currentLevel", get: function () { return this.streamController.currentLevel }, set: function (a) { B.logger.log("set currentLevel:" + a), this.loadLevel = a, this.streamController.immediateLevelSwitch() } }, { key: "nextLevel", get: function () { return this.streamController.nextLevel }, set: function (a) { B.logger.log("set nextLevel:" + a), this.levelController.manualLevel = a, this.streamController.nextLevelSwitch() } }, { key: "loadLevel", get: function () { return this.levelController.level }, set: function (a) { B.logger.log("set loadLevel:" + a), this.levelController.manualLevel = a } }, { key: "nextLoadLevel", get: function () { return this.levelController.nextLoadLevel }, set: function (a) { this.levelController.nextLoadLevel = a } }, { key: "firstLevel", get: function () { return this.levelController.firstLevel }, set: function (a) { B.logger.log("set firstLevel:" + a), this.levelController.firstLevel = a } }, { key: "startLevel", get: function () { return this.levelController.startLevel }, set: function (a) { B.logger.log("set startLevel:" + a), this.levelController.startLevel = a } }, { key: "autoLevelCapping", get: function () { return this.abrController.autoLevelCapping }, set: function (a) { B.logger.log("set autoLevelCapping:" + a), this.abrController.autoLevelCapping = a } }, { key: "autoLevelEnabled", get: function () { return -1 === this.levelController.manualLevel } }, { key: "manualLevel", get: function () { return this.levelController.manualLevel } }, { key: "maxLevelBitrate", set: function (a) { this.abrController.maxLevelBitrate = a }, get: function () { return this.abrController.maxLevelBitrate } }]), a }(); M.api = new F.default, M.api.players = [], c.default = M }, { "./controller/abr-controller": 5, "./controller/buffer-controller": 6, "./controller/cap-level-controller": 7, "./controller/fps-controller": 8, "./controller/level-controller": 9, "./controller/stream-controller": 10, "./controller/timeline-controller": 11, "./errors": 23, "./events": 25, "./loader/fragment-loader": 30, "./loader/key-loader": 31, "./loader/playlist-loader": 32, "./utils/browser": 38, "./utils/cues": 40, "./utils/logger": 41, "./utils/xhr-loader": 44, events: 46 }], 30: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../errors"), n = function (a) { function b(a) { return e(this, b), f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.FRAG_LOADING)) } return g(b, a), h(b, [{ key: "destroy", value: function () { this.loader && (this.loader.destroy(), this.loader = null), this.firstChunk = !0, l.default.prototype.destroy.call(this) } }, { key: "onFragLoading", value: function (a) { var b = a.frag; this.frag = b, this.frag.loaded = 0, this.firstChunk = !0; var c = this.hls.config; b.loader = this.loader = void 0 !== c.fLoader ? new c.fLoader(c) : new c.loader(c), this.loader.load(b.url, "arraybuffer", this.loadsuccess.bind(this), this.loaderror.bind(this), this.loadtimeout.bind(this), c.fragLoadingTimeOut, 1, 0, this.loadprogress.bind(this), b, this.loadchunk.bind(this)) } }, { key: "loadchunk", value: function (a, b) { var c = a.currentTarget.response; c.first = this.firstChunk, this.firstChunk = !1, this.hls.trigger(j.default.FRAG_CHUNK_LOADED, { payload: c, frag: this.frag, stats: b }) } }, { key: "loadsuccess", value: function (a, b) { var c = a.currentTarget.response; c.final = !0, b.length = c.byteLength, this.hls.trigger(j.default.FRAG_LOADED, { frag: this.frag, stats: b }), this.loadchunk({ currentTarget: { response: c } }, b), this.firstChunk = !0, this.frag.loader = void 0 } }, { key: "loaderror", value: function (a) { this.loader && this.loader.abort(), this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.FRAG_LOAD_ERROR, fatal: !1, frag: this.frag, response: a }) } }, { key: "loadtimeout", value: function () { this.loader && this.loader.abort(), this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.FRAG_LOAD_TIMEOUT, fatal: !1, frag: this.frag }) } }, { key: "loadprogress", value: function (a) { this.frag.loaded = a.loaded, this.hls.trigger(j.default.FRAG_LOAD_PROGRESS, { frag: this.frag, stats: a }) } }]), b }(l.default); c.default = n }, { "../errors": 23, "../event-handler": 24, "../events": 25 }], 31: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../errors"), n = function (a) { function b(a) { e(this, b); var c = f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.KEY_LOADING)); return c.decryptkey = null, c.decrypturl = null, c } return g(b, a), h(b, [{ key: "destroy", value: function () { this.loader && (this.loader.destroy(), this.loader = null), l.default.prototype.destroy.call(this) } }, { key: "onKeyLoading", value: function (a) { var b = this.frag = a.frag, c = b.decryptdata, d = c.uri; if (d !== this.decrypturl || null === this.decryptkey) { var e = this.hls.config; b.loader = this.loader = new e.loader(e), this.decrypturl = d, this.decryptkey = null, b.loader.load(d, "arraybuffer", this.loadsuccess.bind(this), this.loaderror.bind(this), this.loadtimeout.bind(this), e.fragLoadingTimeOut, e.fragLoadingMaxRetry, e.fragLoadingRetryDelay, this.loadprogress.bind(this), b) } else this.decryptkey && (c.key = this.decryptkey, this.hls.trigger(j.default.KEY_LOADED, { frag: b })) } }, { key: "loadsuccess", value: function (a) { var b = this.frag; this.decryptkey = b.decryptdata.key = new Uint8Array(a.currentTarget.response), b.loader = void 0, this.hls.trigger(j.default.KEY_LOADED, { frag: b }) } }, { key: "loaderror", value: function (a) { this.loader && this.loader.abort(), this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.KEY_LOAD_ERROR, fatal: !1, frag: this.frag, response: a.currentTarget }) } }, { key: "loadtimeout", value: function () { this.loader && this.loader.abort(), this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.KEY_LOAD_TIMEOUT, fatal: !1, frag: this.frag }) } }, { key: "loadprogress", value: function () {} }]), b }(l.default); c.default = n }, { "../errors": 23, "../event-handler": 24, "../events": 25 }], 32: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } function f(a, b) { if (!a) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return !b || "object" != typeof b && "function" != typeof b ? a : b } function g(a, b) { if ("function" != typeof b && null !== b) throw new TypeError("Super expression must either be null or a function, not " + typeof b); a.prototype = Object.create(b && b.prototype, { constructor: { value: a, enumerable: !1, writable: !0, configurable: !0 } }), b && (Object.setPrototypeOf ? Object.setPrototypeOf(a, b) : a.__proto__ = b) } Object.defineProperty(c, "__esModule", { value: !0 }); var h = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), i = a("../events"), j = d(i), k = a("../event-handler"), l = d(k), m = a("../errors"), n = a("../utils/url"), o = d(n), p = a("../utils/attr-list"), q = d(p), r = function (a) { function b(a) { return e(this, b), f(this, (b.__proto__ || Object.getPrototypeOf(b)).call(this, a, j.default.MANIFEST_LOADING, j.default.LEVEL_LOADING)) } return g(b, a), h(b, [{ key: "destroy", value: function () { this.loader && (this.loader.destroy(), this.loader = null), this.url = this.id = null, l.default.prototype.destroy.call(this) } }, { key: "onManifestLoading", value: function (a) { this.load(a.url, null) } }, { key: "onLevelLoading", value: function (a) { this.load(a.url, a.level, a.id, a.preload) } }, { key: "reloadCurrentRequests", value: function () { this.loading && this.loader && null === this.id && (this.loader.abort(), this.loading = !1, this.load(this.url, this.id, this.id2)) } }, { key: "replaceManifest", value: function (a, b) { var c = this.parseMasterPlaylist(a, b); this.hls.trigger(j.default.MANIFEST_REPLACE, { levels: c, url: b }) } }, { key: "replaceLevelPlaylist", value: function (a, b, c) { var d = this.parseLevelPlaylist(b, c, a); this.hls.trigger(j.default.LEVEL_REPLACE, { details: d, level: a }) } }, { key: "load", value: function (a, b, c, d) { var e, f, g, h = this.hls.config; if (this.loading && this.loader) { if (this.url === a && this.id === b && this.id2 === c) return void(this.preload = d); this.loader.abort() } this.url = a, this.id = b, this.id2 = c, this.preload = d, null === this.id ? (e = h.manifestLoadingMaxRetry, f = h.manifestLoadingTimeOut, g = h.manifestLoadingRetryDelay) : (e = h.levelLoadingMaxRetry, f = h.levelLoadingTimeOut, g = h.levelLoadingRetryDelay), this.loader = void 0 !== h.pLoader ? new h.pLoader(h) : new h.loader(h), this.loading = !0, this.loader.load(a, "", this.loadsuccess.bind(this), this.loaderror.bind(this), this.loadtimeout.bind(this), f, e, g) } }, { key: "resolve", value: function (a, b) { return o.default.buildAbsoluteURL(b, a) } }, { key: "parseMasterPlaylist", value: function (a, b) { for (var c = [], d = void 0, e = /#EXT-X-STREAM-INF:([^\n\r]*)[\r\n]+([^\r\n]+)/g; null != (d = e.exec(a));) { var f = {}, g = f.attrs = new q.default(d[1]); f.url = this.resolve(d[2], b); var h = g.decimalResolution("RESOLUTION"); h && (f.width = h.width, f.height = h.height), f.bitrate = g.decimalInteger("AVERAGE-BANDWIDTH") || g.decimalInteger("BANDWIDTH"), f.name = g.NAME; var i = g.enumeratedString("CLOSED-CAPTIONS"); i && (f.closedCaptions = i); var j = g.CODECS; if (j) { j = j.split(","); for (var k = 0; k < j.length; k++) { var l = j[k]; - 1 !== l.indexOf("avc1") ? f.videoCodec = this.avc1toavcoti(l) : f.audioCodec = l } } c.push(f) } return c } }, { key: "createInitializationVector", value: function (a) { for (var b = new Uint8Array(16), c = 12; c < 16; c++) b[c] = a >> 8 * (15 - c) & 255; return b } }, { key: "fragmentDecryptdataFromLevelkey", value: function (a, b) { var c = a; return a && a.method && a.uri && !a.iv && (c = this.cloneObj(a), c.iv = this.createInitializationVector(b)), c } }, { key: "avc1toavcoti", value: function (a) { var b, c = a.split("."); return c.length > 2 ? (b = c.shift() + ".", b += parseInt(c.shift()).toString(16), b += ("000" + parseInt(c.shift()).toString(16)).substr(-4)) : b = a, b } }, { key: "cloneObj", value: function (a) { return JSON.parse(JSON.stringify(a)) } }, { key: "parseLevelPlaylist", value: function (a, b, c) { this.hls.config = this.hls.config || {}; var d, e, f, g, h, i = 0, j = 0, k = { url: b, fragments: [], live: !0, startSN: 0 }, l = { method: null, key: null, iv: null, uri: null }, m = 0, n = null, o = null, p = (this.hls.config.maxFragLookUpTolerance || .2) + .001, r = []; for (f = /(?:#EXT-X-(MEDIA-SEQUENCE):(\d+))|(?:#EXT-X-(TARGETDURATION):(\d+))|(?:#EXT-X-(KEY):(.*)[\r\n]+([^#|\r\n]+)?)|(?:#EXT(INF):([\d\.]+)[^\r\n]*([\r\n]+[^#|\r\n]+)?)|(?:#EXT-X-(BYTERANGE):([\d]+[@[\d]*)]*[\r\n]+([^#|\r\n]+)?|(?:#EXT-X-(ENDLIST))|(?:#EXT-X-(DIS)CONTINUITY))|(?:#EXT-X-(PROGRAM-DATE-TIME):(.*)[\r\n]+([^#|\r\n]+)?)|(?:#EXT-X-(VERSION):(.*))|(?:#(.*):(.*))|(?:#(.*))/g; null !== (e = f.exec(a));) switch (e.shift(), e = e.filter(function (a) { return void 0 !== a }), e[0]) { case "MEDIA-SEQUENCE": i = k.startSN = parseInt(e[1]); break; case "TARGETDURATION": k.targetduration = parseFloat(e[1]); break; case "VERSION": case "EXTM3U": break; case "ENDLIST": k.live = !1; break; case "DIS": m++, r.push(e.map(function (a) { return (" " + a).slice(1) })); break; case "BYTERANGE": var s = e[1].split("@"); h = 1 === s.length ? g : parseInt(s[1]), g = parseInt(s[0]) + h, o && !o.url && (o.byteRangeStartOffset = h, o.byteRangeEndOffset = g, o.url = this.resolve(e[2], b), r.push(e.map(function (a) { return (" " + a).slice(1) }))); break; case "INF": var t = parseFloat(e[1]); if (!isNaN(t)) { p = Math.min(t, p); var u = i++; d = this.fragmentDecryptdataFromLevelkey(l, u); var v = e[2] ? this.resolve(e[2], b) : null; r.push(e.map(function (a) { return (" " + a).slice(1) })), o = { url: v, duration: t, start: j, sn: u, level: c, cc: m, byteRangeStartOffset: h, byteRangeEndOffset: g, decryptdata: d, programDateTime: n, tagList: r }, k.fragments.push(o), j += t, h = null, n = null, r = [] } break; case "KEY": var w = e[1], x = new q.default(w), y = x.enumeratedString("METHOD"), z = x.URI, A = x.hexadecimalInteger("IV"); y && (l = { method: null, key: null, iv: null, uri: null }, z && "AES-128" === y && (l.method = y, l.uri = this.resolve(z, b), l.key = null, l.iv = A)), o && !o.url && e.length >= 3 && (o.url = this.resolve(e[2], b), d = this.fragmentDecryptdataFromLevelkey(l, i - 1), o.decryptdata = d, r.push(e.map(function (a) { return (" " + a).slice(1) }))); break; case "PROGRAM-DATE-TIME": n = new Date(Date.parse(e[1])), r.push(e.map(function (a) { return (" " + a).slice(1) })), o && !o.url && e.length >= 3 && (o.url = this.resolve(e[2], b), o.programDateTime = n); break; default: r.push(e.map(function (a) { return (" " + a).slice(1) })) } return o && !o.url && (k.fragments.pop(), j -= o.duration), k.totalduration = j = Math.round(1e6 * j) / 1e6, k.averagetargetduration = j / k.fragments.length, k.endSN = i - 1, this.hls.config.maxFragLookUpTolerance = Math.max(p - .001, 0), k } }, { key: "loadsuccess", value: function (a, b) { var c, d = a.currentTarget, e = d.responseText, f = d.responseURL, g = this.id, h = this.id2, i = this.preload, k = this.hls; if (this.loading = !1, void 0 !== f && 0 !== f.indexOf("data:") || (f = this.url), b.tload = performance.now(), b.mtime = new Date(d.getResponseHeader("Last-Modified")), 0 === e.indexOf("#EXTM3U")) if (e.indexOf("#EXTINF:") > 0) if (null === this.id) k.trigger(j.default.MANIFEST_LOADED, { levels: [{ url: f }], url: f, stats: b }); else { var l = this.parseLevelPlaylist(e, f, g); b.tparsed = performance.now(), k.trigger(j.default.LEVEL_LOADED, { details: l, level: g, id: h, preload: i, stats: b }) } else c = this.parseMasterPlaylist(e, f), c.length ? k.trigger(j.default.MANIFEST_LOADED, { levels: c, url: f, stats: b }) : k.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.MANIFEST_PARSING_ERROR, fatal: !0, url: f, reason: "no level found in manifest" }); else k.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: m.ErrorDetails.MANIFEST_PARSING_ERROR, fatal: !0, url: f, reason: "no EXTM3U delimiter" }) } }, { key: "loaderror", value: function (a) { var b, c; null === this.id ? (b = m.ErrorDetails.MANIFEST_LOAD_ERROR, c = !0) : (b = m.ErrorDetails.LEVEL_LOAD_ERROR, c = !1), this.loader && this.loader.abort(), this.loading = !1, this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: b, fatal: c, url: this.url, loader: this.loader, response: a.currentTarget, level: this.id, id: this.id2 }) } }, { key: "loadtimeout", value: function () { var a, b; null === this.id ? (a = m.ErrorDetails.MANIFEST_LOAD_TIMEOUT, b = !0) : (a = m.ErrorDetails.LEVEL_LOAD_TIMEOUT, b = !1), this.loader && this.loader.abort(), this.loading = !1, this.hls.trigger(j.default.ERROR, { type: m.ErrorTypes.NETWORK_ERROR, details: a, fatal: b, url: this.url, loader: this.loader, level: this.id, id: this.id2 }) } }]), b }(l.default); c.default = r }, { "../errors": 23, "../event-handler": 24, "../events": 25, "../utils/attr-list": 36, "../utils/url": 43 }], 33: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = Math.pow(2, 32) - 1, g = function () { function a() { d(this, a) } return e(a, null, [{ key: "init", value: function () { a.types = { avc1: [], avcC: [], btrt: [], dinf: [], dref: [], esds: [], ftyp: [], hdlr: [], mdat: [], mdhd: [], mdia: [], mfhd: [], minf: [], moof: [], moov: [], mp4a: [], ".mp3": [], mvex: [], mvhd: [], pasp: [], sdtp: [], stbl: [], stco: [], stsc: [], stsd: [], stsz: [], stts: [], tfdt: [], tfhd: [], traf: [], trak: [], trun: [], trex: [], tkhd: [], vmhd: [], smhd: [] }; var b; for (b in a.types) a.types.hasOwnProperty(b) && (a.types[b] = [b.charCodeAt(0), b.charCodeAt(1), b.charCodeAt(2), b.charCodeAt(3)]); var c = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 118, 105, 100, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 105, 100, 101, 111, 72, 97, 110, 100, 108, 101, 114, 0]), d = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 115, 111, 117, 110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83, 111, 117, 110, 100, 72, 97, 110, 100, 108, 101, 114, 0]); a.HDLR_TYPES = { video: c, audio: d }; var e = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 12, 117, 114, 108, 32, 0, 0, 0, 1]), f = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]); a.STTS = a.STSC = a.STCO = f, a.STSZ = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]), a.VMHD = new Uint8Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]), a.SMHD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0]), a.STSD = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1]); var g = new Uint8Array([105, 115, 111, 109]), h = new Uint8Array([97, 118, 99, 49]), i = new Uint8Array([0, 0, 0, 1]); a.FTYP = a.box(a.types.ftyp, g, i, g, h), a.DINF = a.box(a.types.dinf, a.box(a.types.dref, e)) } }, { key: "box", value: function (a) { for (var b, c = Array.prototype.slice.call(arguments, 1), d = 8, e = c.length, f = e; e--;) d += c[e].byteLength; for (b = new Uint8Array(d), b[0] = d >> 24 & 255, b[1] = d >> 16 & 255, b[2] = d >> 8 & 255, b[3] = 255 & d, b.set(a, 4), e = 0, d = 8; e < f; e++) b.set(c[e], d), d += c[e].byteLength; return b } }, { key: "hdlr", value: function (b) { return a.box(a.types.hdlr, a.HDLR_TYPES[b]) } }, { key: "mdat", value: function (b) { return a.box(a.types.mdat, b) } }, { key: "mdhd", value: function (b, c) { return c *= b, a.box(a.types.mdhd, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 3, b >> 24 & 255, b >> 16 & 255, b >> 8 & 255, 255 & b, c >> 24, c >> 16 & 255, c >> 8 & 255, 255 & c, 85, 196, 0, 0])) } }, { key: "mdia", value: function (b) { return a.box(a.types.mdia, a.mdhd(b.timescale, b.duration), a.hdlr(b.type), a.minf(b)) } }, { key: "mfhd", value: function (b) { return a.box(a.types.mfhd, new Uint8Array([0, 0, 0, 0, b >> 24, b >> 16 & 255, b >> 8 & 255, 255 & b])) } }, { key: "minf", value: function (b) { return "audio" === b.type ? a.box(a.types.minf, a.box(a.types.smhd, a.SMHD), a.DINF, a.stbl(b)) : a.box(a.types.minf, a.box(a.types.vmhd, a.VMHD), a.DINF, a.stbl(b)) } }, { key: "moof", value: function (b, c, d) { return a.box(a.types.moof, a.mfhd(b), a.traf(d, c)) } }, { key: "moov", value: function (b) { for (var c = b.length, d = []; c--;) d[c] = a.trak(b[c]); return a.box.apply(null, [a.types.moov, a.mvhd(b[0].timescale, b[0].duration)].concat(d).concat(a.mvex(b))) } }, { key: "mvex", value: function (b) { for (var c = b.length, d = []; c--;) d[c] = a.trex(b[c]); return a.box.apply(null, [a.types.mvex].concat(d)) } }, { key: "mvhd", value: function (b, c) { c *= b; var d = new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, b >> 24 & 255, b >> 16 & 255, b >> 8 & 255, 255 & b, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 255, 255, 255]); return a.box(a.types.mvhd, d) } }, { key: "sdtp", value: function (b) { var c, d, e = b.samples || [], f = new Uint8Array(4 + e.length); for (d = 0; d < e.length; d++) c = e[d].flags, f[d + 4] = c.dependsOn << 4 | c.isDependedOn << 2 | c.hasRedundancy; return a.box(a.types.sdtp, f) } }, { key: "stbl", value: function (b) { return a.box(a.types.stbl, a.stsd(b), a.box(a.types.stts, a.STTS), a.box(a.types.stsc, a.STSC), a.box(a.types.stsz, a.STSZ), a.box(a.types.stco, a.STCO)) } }, { key: "avc1", value: function (b) { var c, d, e, f = [], g = []; for (c = 0; c < b.sps.length; c++) d = b.sps[c], e = d.byteLength, f.push(e >>> 8 & 255), f.push(255 & e), f = f.concat(Array.prototype.slice.call(d)); for (c = 0; c < b.pps.length; c++) d = b.pps[c], e = d.byteLength, g.push(e >>> 8 & 255), g.push(255 & e), g = g.concat(Array.prototype.slice.call(d)); var h = a.box(a.types.avcC, new Uint8Array([1, f[3], f[4], f[5], 255, 224 | b.sps.length].concat(f).concat([b.pps.length]).concat(g))), i = b.width, j = b.height, k = b.pixelRatio[0], l = b.pixelRatio[1]; return a.box(a.types.avc1, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, i >> 8 & 255, 255 & i, j >> 8 & 255, 255 & j, 0, 72, 0, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, 18, 100, 97, 105, 108, 121, 109, 111, 116, 105, 111, 110, 47, 104, 108, 115, 46, 106, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 17, 17]), h, a.box(a.types.btrt, new Uint8Array([0, 28, 156, 128, 0, 45, 198, 192, 0, 45, 198, 192])), a.box(a.types.pasp, new Uint8Array([k >> 24, k >> 16 & 255, k >> 8 & 255, 255 & k, l >> 24, l >> 16 & 255, l >> 8 & 255, 255 & l]))) } }, { key: "esds", value: function (a) { var b = a.config.length; return new Uint8Array([0, 0, 0, 0, 3, 23 + b, 0, 1, 0, 4, 15 + b, 64, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5].concat([b]).concat(a.config).concat([6, 1, 2])) } }, { key: "mp4a", value: function (b) { var c = b.audiosamplerate; return a.box(a.types.mp4a, new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, b.channelCount, 0, 16, 0, 0, 0, 0, c >> 8 & 255, 255 & c, 0, 0]), a.box(a.types.esds, a.esds(b))) } }, { key: "mp3", value: function (b) { var c = b.audiosamplerate; return a.box(a.types[".mp3"], new Uint8Array([0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, b.channelCount, 0, 16, 0, 0, 0, 0, c >> 8 & 255, 255 & c, 0, 0])) } }, { key: "stsd", value: function (b) { return "audio" === b.type ? b.isAAC || "mp3" !== b.codec ? a.box(a.types.stsd, a.STSD, a.mp4a(b)) : a.box(a.types.stsd, a.STSD, a.mp3(b)) : a.box(a.types.stsd, a.STSD, a.avc1(b)) } }, { key: "tkhd", value: function (b) { var c = b.id, d = b.duration * b.timescale, e = b.width, f = b.height; return a.box(a.types.tkhd, new Uint8Array([0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, c >> 24 & 255, c >> 16 & 255, c >> 8 & 255, 255 & c, 0, 0, 0, 0, d >> 24, d >> 16 & 255, d >> 8 & 255, 255 & d, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, e >> 8 & 255, 255 & e, 0, 0, f >> 8 & 255, 255 & f, 0, 0])) } }, { key: "traf", value: function (b, c) { var d = a.sdtp(b), e = b.id, g = Math.floor(c / (f + 1)), h = Math.floor(c % (f + 1)); return a.box(a.types.traf, a.box(a.types.tfhd, new Uint8Array([0, 0, 0, 0, e >> 24, e >> 16 & 255, e >> 8 & 255, 255 & e])), a.box(a.types.tfdt, new Uint8Array([1, 0, 0, 0, g >>> 24 & 255, g >>> 16 & 255, g >>> 8 & 255, 255 & g, h >>> 24 & 255, h >>> 16 & 255, h >>> 8 & 255, 255 & h])), a.trun(b, d.length + 16 + 20 + 8 + 16 + 8 + 8), d) } }, { key: "trak", value: function (b) { return b.duration = b.duration || 4294967295, a.box(a.types.trak, a.tkhd(b), a.mdia(b)) } }, { key: "trex", value: function (b) { var c = b.id; return a.box(a.types.trex, new Uint8Array([0, 0, 0, 0, c >> 24, c >> 16 & 255, c >> 8 & 255, 255 & c, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1])) } }, { key: "trun", value: function (b, c) { var d, e, f, g, h, i, j = b.samples || [], k = j.length, l = 12 + 16 * k, m = new Uint8Array(l); for (c += 8 + l, m.set([0, 0, 15, 1, k >>> 24 & 255, k >>> 16 & 255, k >>> 8 & 255, 255 & k, c >>> 24 & 255, c >>> 16 & 255, c >>> 8 & 255, 255 & c], 0), d = 0; d < k; d++) e = j[d], f = e.duration, g = e.size, h = e.flags, i = e.cts, m.set([f >>> 24 & 255, f >>> 16 & 255, f >>> 8 & 255, 255 & f, g >>> 24 & 255, g >>> 16 & 255, g >>> 8 & 255, 255 & g, h.isLeading << 2 | h.dependsOn, h.isDependedOn << 6 | h.hasRedundancy << 4 | h.paddingValue << 1 | h.isNonSync, 61440 & h.degradPrio, 15 & h.degradPrio, i >>> 24 & 255, i >>> 16 & 255, i >>> 8 & 255, 255 & i], 12 + 16 * d); return a.box(a.types.trun, m) } }, { key: "initSegment", value: function (b) { a.types || a.init(); var c, d = a.moov(b); return c = new Uint8Array(a.FTYP.byteLength + d.byteLength), c.set(a.FTYP), c.set(d, a.FTYP.byteLength), c } }]), a }(); c.default = g }, {}], 34: [function (a, b, c) { "use strict"; function d(a) { return a && a.__esModule ? a : { default: a } } function e(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var f = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), g = a("../helper/aac"), h = d(g), i = a("../events"), j = d(i), k = a("../utils/logger"), l = a("../remux/mp4-generator"), m = d(l), n = a("../errors"); a("../utils/polyfill"); var o = function () { function a(b, c, d) { e(this, a), this.observer = b, this.config = c, this.typeSupported = d, this.ISGenerated = !1, this.PES2MP4SCALEFACTOR = 4, this.PES_TIMESCALE = 9e4, this.MP4_TIMESCALE = this.PES_TIMESCALE / this.PES2MP4SCALEFACTOR } return f(a, [{ key: "destroy", value: function () {} }, { key: "insertDiscontinuity", value: function () { this._initPTS = this._initDTS = void 0 } }, { key: "switchLevel", value: function () { this.ISGenerated = !1 } }, { key: "remux", value: function (a, b, c, d, e, f, g, h, i, j, k, l) { if (null, this.ISGenerated || this.generateIS(a, b, e), this.ISGenerated) if (a.samples.length && (l || void 0 === l)) { var m = this.remuxAudio(a, e, f, g, j, k); if (b.samples.length) { var n = void 0, o = void 0; m && (o = m.startPTS, n = m.endPTS - o), this.remuxVideo(b, e, f, g, n, o, i, j, k) } else f || (this.nextAvcDts = void 0) } else { var p = void 0; b.samples.length && (p = this.remuxVideo(b, e, f, g, void 0, void 0, i, j, k)), p && a.codec && this.remuxEmptyAudio(a, e, f, p, j, k) } c.samples.length && this.remuxID3(c, e), d.samples.length && this.remuxText(d, e) } }, { key: "generateIS", value: function (a, b, c) { var d, e, f = this.observer, g = a.samples, h = b.samples, i = this.PES_TIMESCALE, l = {}, o = { tracks: l, unique: !1 }, p = void 0 === this._initPTS; if (p && (d = e = 1 / 0), a.config && g.length) { if (a.timescale = a.audiosamplerate, a.timescale * a.duration > Math.pow(2, 32)) { a.timescale = a.audiosamplerate / function a(b, c) { return c ? a(c, b % c) : b }(a.audiosamplerate, a.isAAC ? 1024 : 1152) } k.logger.log("audio mp4 timescale :" + a.timescale); var q = "audio/mp4"; a.isAAC || (this.typeSupported.mpeg ? (q = "audio/mpeg", a.codec = "") : !0 === this.typeSupported.mp3 && (a.codec = "mp3")), l.audio = { container: q, codec: a.codec, initSegment: !a.isAAC && this.typeSupported.mpeg ? new Uint8Array : m.default.initSegment([a]), metadata: { channelCount: a.channelCount } }, p && (d = e = g[0].pts - i * c) } b.sps && b.pps && h.length && (b.timescale = this.MP4_TIMESCALE, l.video = { container: "video/mp4", codec: b.codec, initSegment: m.default.initSegment([b]), metadata: { width: b.width, height: b.height } }, p && (d = Math.min(d, h[0].pts - i * c), e = Math.min(e, h[0].dts - i * c))), Object.keys(l).length ? (f.trigger(j.default.FRAG_PARSING_INIT_SEGMENT, o), this.ISGenerated = !0, p && (this._initPTS = d, this._initDTS = e)) : f.trigger(j.default.ERROR, { type: n.ErrorTypes.MEDIA_ERROR, details: n.ErrorDetails.FRAG_PARSING_ERROR, fatal: !1, reason: "no audio/video samples found" }) } }, { key: "contiguousTest", value: function (a, b, c, d) { return a.length && this.nextAvcDts && d && (!b || this.config.enableDropContiguous) && (Math.abs(c - this.nextAvcDts / this.PES_TIMESCALE) < .1 || Math.abs(a[0].dts - this.nextAvcDts - this._initDTS) < this.PES_TIMESCALE / 5) } }, { key: "remuxVideo", value: function (a, b, c, d, e, f, g, h, i) { var l, n, o, p, q, r, s, t = 8, u = this.PES2MP4SCALEFACTOR, v = a.samples, w = [], x = this._PTSNormalize, y = this._initDTS, z = this.PES_TIMESCALE, A = this.nextAvcDts, B = this.config, C = B.browser.isSafari; c |= this.contiguousTest(v, h.dropped, b, d), c || (A = b * z), v.forEach(function (a) { a.pts = x(a.pts - y, A), a.dts = x(a.dts - y, A) }), v.sort(function (a, b) { var c = a.dts - b.dts, d = a.pts - b.pts; return c || (d || a.id - b.id) }); var D = v.reduce(function (a, b) { return Math.max(Math.min(a, b.pts - b.dts), -18e3) }, 0); if (D < 0) { k.logger.warn("PTS < DTS detected in video samples, shifting DTS by " + Math.round(D / 90) + " ms to overcome this issue"); for (var E = 0; E < v.length; E++) v[E].dts += D } var F = v[0]; q = Math.max(F.dts, 0), p = Math.max(F.pts, 0); var G = Math.round(1e3 * (q - A) / z); if (c && G) k.logger.log("AVC:" + Math.abs(G) + " ms " + (G > 0 ? "hole" : "overlapping") + " between fragments detected"), q = A, v[0].dts = q, p = Math.max(p - G * z / 1e3, A), v[0].pts = p, k.logger.log("Video/PTS/DTS adjusted: " + p + "/" + q + ",delta:" + G), h.videoGap = h.videoGap || [], h.videoGap.push(G); else if (!c && this.lastSamples && this.lastSamples[0].dts === q) { var H = this.lastSamples[1].dts - q; k.logger.log("detected DTS overlap, add delta:" + H + " to overcome on Safari"), this._initPTS -= H, this._initDTS -= H, q = Math.max(this._PTSNormalize(F.dts - this._initDTS, A), 0), p = Math.max(this._PTSNormalize(F.pts - this._initDTS, A), 0) } F = v[v.length - 1], s = Math.max(F.dts, 0), r = Math.max(F.pts, 0, s), C && (l = v.length > 1 ? Math.round((s - q) / (u * (v.length - 1))) : 0); for (var I = 0; I < v.length; I++) { var J = v[I]; J.dts = C ? q + I * u * l : 4294967292 & Math.max(J.dts, q), J.pts = 4294967292 & Math.max(J.pts, J.dts) } this.lastSamples = C && g && v.length > 1 ? v.slice(-2) : void 0, n = new Uint8Array(a.len + 4 * a.nbNalu + 8); var K = new DataView(n.buffer); K.setUint32(0, n.byteLength), n.set(m.default.types.mdat, 4), h.videoDurAvg = h.videoDurStd = 0, h.cttsError = 0; for (var L = 0; L < v.length; L++) { for (var M = v[L], N = 0, O = void 0; M.units.units.length;) { var P = M.units.units.shift(); K.setUint32(t, P.data.byteLength), t += 4, n.set(P.data, t), t += P.data.byteLength, N += 4 + P.data.byteLength } if (C) O = Math.max(0, l * Math.round((M.pts - M.dts) / (u * l))); else { if (L < v.length - 1) l = v[L + 1].dts - M.dts; else { var Q = M.dts - v[L > 0 ? L - 1 : L].dts; if (B.stretchShortVideoTrack) { var R = B.maxBufferHole, S = B.maxSeekHole, T = Math.floor(Math.min(R, S) * z), U = (e ? p + e * z : this.nextAacPts) - M.pts; U > T ? (l = U - Q, l < 0 && (l = Q), k.logger.log("It is approximately " + U / 90 + " ms to the next segment; using duration " + l / 90 + " ms for the last video frame.")) : l = Q } else l = Q } l /= u, O = Math.round((M.pts - M.dts) / u) } w.push({ size: N, duration: l, cts: O, flags: { isLeading: 0, isDependedOn: 0, hasRedundancy: 0, degradPrio: 0, dependsOn: M.key ? 2 : 1, isNonSync: M.key ? 0 : 1 } }), h.videoDurAvg += l / v.length, h.videoDurStd += l * l / v.length, h.cttsError += O - Math.floor(O / l) * l } if (h.videoDurStd = Math.sqrt(h.videoDurStd - h.videoDurAvg * h.videoDurAvg), this.nextAvcDts = s + l * u, a.len = 0, a.nbNalu = 0, w.length && B.browser.isChrome) { var V = w[0].flags; V.dependsOn = 2, V.isNonSync = 0 } a.samples = w, o = m.default.moof(a.sequenceNumber++, q / u, a), a.samples = []; var W = { data1: o, data2: n, startPTS: p / z, endPTS: (r + u * l) / z, startDTS: q / z, endDTS: this.nextAvcDts / z, type: "video", flush: g, nb: w.length, dropped: h.dropped, isPartial: i }; return W.deltaPTS = Math.abs(W.startPTS - f), this.observer.trigger(j.default.FRAG_PARSING_DATA, W), W } }, { key: "remuxAudio", value: function (a, b, c, d, e, f) { var g, i, l, n, o, p, q, r, s, t, u, v, w, x, y, z = this.PES_TIMESCALE, A = a.timescale ? a.timescale : a.audiosamplerate, B = z / A, C = a.isAAC ? 1024 : 1152, D = A * C / a.audiosamplerate, E = !a.isAAC && this.typeSupported.mpeg, F = E ? 0 : 8, G = [], H = a.samples; c |= H.length && this.nextAacPts && d && Math.abs(b - this.nextAacPts / z) < .1; for (var I = c && void 0 !== this.nextAacPts ? this.nextAacPts : b * z, J = D * B, K = I, L = 0; L < H.length; L++) H[L].ptsNorm = this._PTSNormalize(H[L].pts - this._initDTS, I); if (H.sort(function (a, b) { return a.ptsNorm - b.ptsNorm }), d && a.isAAC) for (var M = 0; M < H.length;) { var N = H[M], O = N.ptsNorm, P = O - K; if (Math.abs(P) > J / 2 && (e.audioGap = e.audioGap || [], e.audioGap.push(P / 90)), P < -J) k.logger.log("Dropping frame due to " + Math.abs(P / 90) + " ms overlap."), H.splice(M, 1), a.len -= N.unit.length; else if (P > J) { var Q = Math.round(P / J); k.logger.log("Injecting " + Q + " frame" + (Q > 1 ? "s" : "") + " of missing audio due to " + Math.round(P / 90) + " ms gap."); for (var R = 0; R < Q; R++) y = K + this._initDTS, y = Math.max(y, this._initDTS), x = h.default.getSilentFrame(a.channelCount), x || (k.logger.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), x = N.unit.slice(0)), H.splice(M, 0, { unit: x, pts: y, dts: y }), a.len += x.length, K += J, M += 1; N.pts = N.dts = K + this._initDTS, K += J, M += 1 } else K += J, N.pts = N.dts = 0 === M ? this._initDTS + I : H[M - 1].pts + J, M += 1 } for (; H.length;) { if (i = H.shift(), n = i.unit, t = i.pts - this._initDTS, u = i.dts - this._initDTS, void 0 !== s) v = this._PTSNormalize(t, s), w = this._PTSNormalize(u, s), l.duration = Math.round((w - s) / B); else { v = this._PTSNormalize(t, I), w = this._PTSNormalize(u, I); var S = Math.round(1e3 * (v - I) / z), T = 0; if (c && S && a.isAAC) { if (S > 0) T = Math.round((v - I) / J), k.logger.log(S + " ms hole between AAC samples detected,filling it"), T > 0 && (x = h.default.getSilentFrame(a.channelCount), x || (x = n.slice(0)), a.len += T * x.length); else if (S < -12) { k.logger.log(-S + " ms overlapping between AAC samples detected, drop frame"), a.len -= n.byteLength; continue } v = w = I } if (q = Math.max(0, v), r = Math.max(0, w), a.len <= 0) return; E ? o = new Uint8Array(a.len) : (o = new Uint8Array(a.len + 8), g = new DataView(o.buffer), g.setUint32(0, o.byteLength), o.set(m.default.types.mdat, 4)); for (var U = 0; U < T; U++) y = v - (T - U) * J, x = h.default.getSilentFrame(a.channelCount), x || (k.logger.log("Unable to get silent frame for given audio codec; duplicating this frame instead."), x = n.slice(0)), o.set(x, F), F += x.byteLength, l = { size: x.byteLength, cts: 0, duration: C, flags: { isLeading: 0, isDependedOn: 0, hasRedundancy: 0, degradPrio: 0, dependsOn: 1 } }, G.push(l) } o.set(n, F), F += n.byteLength, l = { size: n.byteLength, cts: 0, duration: 0, flags: { isLeading: 0, isDependedOn: 0, hasRedundancy: 0, degradPrio: 0, dependsOn: 1 } }, G.push(l), s = w } var V = 0, W = G.length; if (W >= 2 && (V = G[W - 2].duration, l.duration = V), W) { e.audioDurAvg = e.audioDurStd = 0; for (var X = 0; X < W; X++) e.audioDurAvg += G[X].duration, e.audioDurStd += G[X].duration * G[X].duration; e.audioDurStd = Math.sqrt(Math.abs(e.audioDurStd - e.audioDurAvg * e.audioDurAvg / W) / W), e.audioDurAvg /= W, this.nextAacPts = v + B * V, a.len = 0, a.samples = G, p = E ? new Uint8Array : m.default.moof(a.sequenceNumber++, r / B, a), a.samples = []; var Y = { data1: p, data2: o, startPTS: q / z, endPTS: this.nextAacPts / z, startDTS: r / z, endDTS: (w + B * V) / z, type: "audio", nb: W, isPartial: f }; return this.observer.trigger(j.default.FRAG_PARSING_DATA, Y), Y } return null } }, { key: "remuxEmptyAudio", value: function (a, b, c, d, e, f) { var g = this.PES_TIMESCALE, i = a.timescale ? a.timescale : a.audiosamplerate, j = g / i, l = 1024 * j, m = h.default.getSilentFrame(a.channelCount); if (!m) return e.noSilentFrame = 1 + (0 | e.noSilentFrame), void k.logger.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!"); for (var n = a.samples, o = d.endDTS * g + this._initDTS, p = n.length ? n[n.length - 1].dts + l : (c ? this.nextAacPts : d.startDTS * g) + this._initDTS, q = Math.ceil((o - p) / l), r = 0; r < q; r++) { var s = p + r * l; n.push({ unit: m.slice(0), pts: s, dts: s }), a.len += m.length } this.remuxAudio(a, b, c, void 0, e, f) } }, { key: "remuxID3", value: function (a, b) { var c, d = a.samples.length; if (d) { for (var e = 0; e < d; e++) c = a.samples[e], c.pts = (c.pts - this._initPTS) / this.PES_TIMESCALE, c.dts = (c.dts - this._initDTS) / this.PES_TIMESCALE; this.observer.trigger(j.default.FRAG_PARSING_METADATA, { samples: a.samples }) } a.samples = [], b = b } }, { key: "remuxText", value: function (a, b) { a.samples.sort(function (a, b) { return a.pts - b.pts }); var c, d = a.samples.length; if (d) { for (var e = 0; e < d; e++) c = a.samples[e], c.pts = (c.pts - this._initPTS) / this.PES_TIMESCALE; this.observer.trigger(j.default.FRAG_PARSING_USERDATA, { samples: a.samples }) } a.samples = [], b = b } }, { key: "_PTSNormalize", value: function (a, b) { var c; if (void 0 === b) return a; for (c = b < a ? -8589934592 : 8589934592; Math.abs(a - b) > 4294967296;) a += c; return a } }, { key: "passthrough", get: function () { return !1 } }]), a }(); c.default = o }, { "../errors": 23, "../events": 25, "../helper/aac": 26, "../remux/mp4-generator": 33, "../utils/logger": 41, "../utils/polyfill": 42 }], 35: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../events"), g = function (a) { return a && a.__esModule ? a : { default: a } }(f), h = function () { function a(b) { d(this, a), this.observer = b, this.ISGenerated = !1 } return e(a, [{ key: "destroy", value: function () {} }, { key: "insertDiscontinuity", value: function () {} }, { key: "switchLevel", value: function () { this.ISGenerated = !1 } }, { key: "remux", value: function (a, b, c, d, e, f, h) { var i = this.observer; if (!this.ISGenerated) { var j = {}, k = { tracks: j, unique: !0 }, l = b, m = l.codec; m && (k.tracks.video = { container: l.container, codec: m, metadata: { width: l.width, height: l.height } }), l = a, m = l.codec, m && (k.tracks.audio = { container: l.container, codec: m, metadata: { channelCount: l.channelCount } }), this.ISGenerated = !0, i.trigger(g.default.FRAG_PARSING_INIT_SEGMENT, k) } i.trigger(g.default.FRAG_PARSING_DATA, { data1: h, startPTS: e, startDTS: e, type: "audiovideo", nb: 1, dropped: 0, deltaPTS: 0 }) } }, { key: "passthrough", get: function () { return !0 } }]), a }(); c.default = h }, { "../events": 25 }], 36: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = function () { function a(b) { d(this, a), "string" == typeof b && (b = a.parseAttrList(b)); for (var c in b) b.hasOwnProperty(c) && (this[c] = b[c]) } return e(a, [{ key: "decimalInteger", value: function (a) { var b = parseInt(this[a], 10); return b > Number.MAX_SAFE_INTEGER ? 1 / 0 : b } }, { key: "hexadecimalInteger", value: function (a) { if (this[a]) { var b = (this[a] || "0x").slice(2); b = (1 & b.length ? "0" : "") + b; for (var c = new Uint8Array(b.length / 2), d = 0; d < b.length / 2; d++) c[d] = parseInt(b.slice(2 * d, 2 * d + 2), 16); return c } return null } }, { key: "hexadecimalIntegerAsNumber", value: function (a) { var b = parseInt(this[a], 16); return b > Number.MAX_SAFE_INTEGER ? 1 / 0 : b } }, { key: "decimalFloatingPoint", value: function (a) { return parseFloat(this[a]) } }, { key: "enumeratedString", value: function (a) { return this[a] } }, { key: "decimalResolution", value: function (a) { var b = /^(\d+)x(\d+)$/.exec(this[a]); if (null !== b) return { width: parseInt(b[1], 10), height: parseInt(b[2], 10) } } }], [{ key: "parseAttrList", value: function (a) { for (var b, c = /\s*(.+?)\s*=((?:\".*?\")|.*?)(?:,|$)/g, d = {}; null !== (b = c.exec(a));) { var e = b[2]; 0 === e.indexOf('"') && e.lastIndexOf('"') === e.length - 1 && (e = e.slice(1, -1)), d[b[1]] = e } return d } }]), a }(); c.default = f }, {}], 37: [function (a, b, c) { "use strict"; var d = { search: function (a, b) { for (var c = 0, d = a.length - 1, e = null, f = null; c <= d;) { e = (c + d) / 2 | 0, f = a[e]; var g = b(f); if (g > 0) c = e + 1; else { if (!(g < 0)) return f; d = e - 1 } } return null } }; b.exports = d }, {}], 38: [function (a, b, c) { "use strict"; Object.defineProperty(c, "__esModule", { value: !0 }); var d = { init: function () { var a = void 0, b = void 0, c = void 0; if (!(b = "undefined" != typeof window && window.navigator && navigator.userAgent.toLowerCase())) return {}; (a = /[( ]msie ([6789]|10).\d[);]/.exec(b)) && (c = { browser: "ie", version: a[1] }), (a = /[( ]trident\/\d+(\.\d)+.*rv:(\d\d)(\.\d)+[);]/.exec(b)) && (c = { browser: "ie", version: a[2] }), b.indexOf("firefox") > -1 && (c = { browser: "firefox" }), b.indexOf("chrome") > -1 && (c = { browser: "chrome" }), b.indexOf("android") > -1 && (c = { browser: "android" }); var d = navigator.vendor; return d && d.indexOf("Apple") > -1 && !b.match("CriOS") && (c = { browser: "safari" }), c = c || {}, { isIe: "ie" === c.browser, isFirefox: "firefox" === c.browser, isChrome: "chrome" === c.browser, isSafari: "safari" === c.browser, isAndroid: "android" === c.browser, browser: c, ua: b } } }; c.default = d }, {}], 39: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = { 42: 225, 92: 233, 94: 237, 95: 243, 96: 250, 123: 231, 124: 247, 125: 209, 126: 241, 127: 9608, 128: 174, 129: 176, 130: 189, 131: 191, 132: 8482, 133: 162, 134: 163, 135: 9834, 136: 224, 137: 32, 138: 232, 139: 226, 140: 234, 141: 238, 142: 244, 143: 251, 144: 193, 145: 201, 146: 211, 147: 218, 148: 220, 149: 252, 150: 8216, 151: 161, 152: 42, 153: 8217, 154: 9473, 155: 169, 156: 8480, 157: 8226, 158: 8220, 159: 8221, 160: 192, 161: 194, 162: 199, 163: 200, 164: 202, 165: 203, 166: 235, 167: 206, 168: 207, 169: 239, 170: 212, 171: 217, 172: 249, 173: 219, 174: 171, 175: 187, 176: 195, 177: 227, 178: 205, 179: 204, 180: 236, 181: 210, 182: 242, 183: 213, 184: 245, 185: 123, 186: 125, 187: 92, 188: 94, 189: 95, 190: 124, 191: 8764, 192: 196, 193: 228, 194: 214, 195: 246, 196: 223, 197: 165, 198: 164, 199: 9475, 200: 197, 201: 229, 202: 216, 203: 248, 204: 9487, 205: 9491, 206: 9495, 207: 9499 }, g = function (a) { var b = a; return f.hasOwnProperty(a) && (b = f[a]), String.fromCharCode(b) }, h = 15, i = 32, j = { 17: 1, 18: 3, 21: 5, 22: 7, 23: 9, 16: 11, 19: 12, 20: 14 }, k = { 17: 2, 18: 4, 21: 6, 22: 8, 23: 10, 19: 13, 20: 15 }, l = { 25: 1, 26: 3, 29: 5, 30: 7, 31: 9, 24: 11, 27: 12, 28: 14 }, m = { 25: 2, 26: 4, 29: 6, 30: 8, 31: 10, 27: 13, 28: 15 }, n = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "black", "transparent"], o = { verboseFilter: { DATA: 3, DEBUG: 3, INFO: 2, WARNING: 2, TEXT: 1, ERROR: 0 }, time: null, verboseLevel: 0, setTime: function (a) { this.time = a }, log: function (a, b) { var c = this.verboseFilter[a]; this.verboseLevel >= c && console.log(this.time + " [" + a + "] " + b) } }, p = function (a) { for (var b = [], c = 0; c < a.length; c++) b.push(a[c].toString(16)); return b }, q = function () { function a(b, c, e, f, g) { d(this, a), this.foreground = b || "white", this.underline = c || !1, this.italics = e || !1, this.background = f || "black", this.flash = g || !1 } return e(a, [{ key: "reset", value: function () { this.foreground = "white", this.underline = !1, this.italics = !1, this.background = "black", this.flash = !1 } }, { key: "setStyles", value: function (a) { for (var b = ["foreground", "underline", "italics", "background", "flash"], c = 0; c < b.length; c++) { var d = b[c]; a.hasOwnProperty(d) && (this[d] = a[d]) } } }, { key: "isDefault", value: function () { return "white" === this.foreground && !this.underline && !this.italics && "black" === this.background && !this.flash } }, { key: "equals", value: function (a) { return this.foreground === a.foreground && this.underline === a.underline && this.italics === a.italics && this.background === a.background && this.flash === a.flash } }, { key: "copy", value: function (a) { this.foreground = a.foreground, this.underline = a.underline, this.italics = a.italics, this.background = a.background, this.flash = a.flash } }, { key: "toString", value: function () { return "color=" + this.foreground + ", underline=" + this.underline + ", italics=" + this.italics + ", background=" + this.background + ", flash=" + this.flash } }]), a }(), r = function () { function a(b, c, e, f, g, h) { d(this, a), this.uchar = b || " ", this.penState = new q(c, e, f, g, h) } return e(a, [{ key: "reset", value: function () { this.uchar = " ", this.penState.reset() } }, { key: "setChar", value: function (a, b) { this.uchar = a, this.penState.copy(b) } }, { key: "setPenState", value: function (a) { this.penState.copy(a) } }, { key: "equals", value: function (a) { return this.uchar === a.uchar && this.penState.equals(a.penState) } }, { key: "copy", value: function (a) { this.uchar = a.uchar, this.penState.copy(a.penState) } }, { key: "isEmpty", value: function () { return " " === this.uchar && this.penState.isDefault() } }]), a }(), s = function () { function a() { d(this, a), this.chars = []; for (var b = 0; b < i; b++) this.chars.push(new r); this.pos = 0, this.currPenState = new q } return e(a, [{ key: "equals", value: function (a) { for (var b = !0, c = 0; c < i; c++) if (!this.chars[c].equals(a.chars[c])) { b = !1; break } return b } }, { key: "copy", value: function (a) { for (var b = 0; b < i; b++) this.chars[b].copy(a.chars[b]) } }, { key: "isEmpty", value: function () { for (var a = !0, b = 0; b < i; b++) if (!this.chars[b].isEmpty()) { a = !1; break } return a } }, { key: "setCursor", value: function (a) { this.pos !== a && (this.pos = a), this.pos < 0 ? (o.log("ERROR", "Negative cursor position " + this.pos), this.pos = 0) : this.pos > i && (o.log("ERROR", "Too large cursor position " + this.pos), this.pos = i) } }, { key: "moveCursor", value: function (a) { var b = this.pos + a; if (a > 1) for (var c = this.pos + 1; c < b + 1; c++) this.chars[c].setPenState(this.currPenState); this.setCursor(b) } }, { key: "backSpace", value: function () { this.moveCursor(-1), this.chars[this.pos].setChar(" ", this.currPenState) } }, { key: "insertChar", value: function (a) { a >= 144 && this.backSpace(); var b = g(a); if (this.pos >= i) return void o.log("ERROR", "Cannot insert " + a.toString(16) + " (" + b + ") at position " + this.pos + ". Skipping it!"); this.chars[this.pos].setChar(b, this.currPenState), this.moveCursor(1) } }, { key: "clearFromPos", value: function (a) { var b; for (b = a; b < i; b++) this.chars[b].reset() } }, { key: "clear", value: function () { this.clearFromPos(0), this.pos = 0, this.currPenState.reset() } }, { key: "clearToEndOfRow", value: function () { this.clearFromPos(this.pos) } }, { key: "getTextString", value: function () { for (var a = [], b = !0, c = 0; c < i; c++) { var d = this.chars[c].uchar; " " !== d && (b = !1), a.push(d) } return b ? "" : a.join("") } }, { key: "setPenStyles", value: function (a) { this.currPenState.setStyles(a), this.chars[this.pos].setPenState(this.currPenState) } }]), a }(), t = function () { function a() { d(this, a), this.rows = []; for (var b = 0; b < h; b++) this.rows.push(new s); this.currRow = h - 1, this.nrRollUpRows = null, this.reset() } return e(a, [{ key: "reset", value: function () { for (var a = 0; a < h; a++) this.rows[a].clear(); this.currRow = h - 1 } }, { key: "equals", value: function (a) { for (var b = !0, c = 0; c < h; c++) if (!this.rows[c].equals(a.rows[c])) { b = !1; break } return b } }, { key: "copy", value: function (a) { for (var b = 0; b < h; b++) this.rows[b].copy(a.rows[b]) } }, { key: "isEmpty", value: function () { for (var a = !0, b = 0; b < h; b++) if (!this.rows[b].isEmpty()) { a = !1; break } return a } }, { key: "backSpace", value: function () { this.rows[this.currRow].backSpace() } }, { key: "clearToEndOfRow", value: function () { this.rows[this.currRow].clearToEndOfRow() } }, { key: "insertChar", value: function (a) { this.rows[this.currRow].insertChar(a) } }, { key: "setPen", value: function (a) { this.rows[this.currRow].setPenStyles(a) } }, { key: "moveCursor", value: function (a) { this.rows[this.currRow].moveCursor(a) } }, { key: "setCursor", value: function (a) { o.log("INFO", "setCursor: " + a), this.rows[this.currRow].setCursor(a) } }, { key: "setPAC", value: function (a) { o.log("INFO", "pacData = " + JSON.stringify(a)); var b = a.row - 1; this.nrRollUpRows && b < this.nrRollUpRows - 1 && (b = this.nrRollUpRows - 1), this.currRow = b; var c = this.rows[this.currRow]; if (null !== a.indent) { var d = a.indent, e = Math.max(d - 1, 0); c.setCursor(a.indent), a.color = c.chars[e].penState.foreground } var f = { foreground: a.color, underline: a.underline, italics: a.italics, background: "black", flash: !1 }; this.setPen(f) } }, { key: "setBkgData", value: function (a) { o.log("INFO", "bkgData = " + JSON.stringify(a)), this.backSpace(), this.setPen(a), this.insertChar(32) } }, { key: "setRollUpRows", value: function (a) { this.nrRollUpRows = a } }, { key: "rollUp", value: function () { if (null === this.nrRollUpRows) return void o.log("DEBUG", "roll_up but nrRollUpRows not set yet"); o.log("TEXT", this.getDisplayText()); var a = this.currRow + 1 - this.nrRollUpRows, b = this.rows.splice(a, 1)[0]; b.clear(), this.rows.splice(this.currRow, 0, b), o.log("INFO", "Rolling up") } }, { key: "getDisplayText", value: function (a) { a = a || !1; for (var b = [], c = "", d = -1, e = 0; e < h; e++) { var f = this.rows[e].getTextString(); f && (d = e + 1, a ? b.push("Row " + d + ": '" + f + "'") : b.push(f.trim())) } return b.length > 0 && (c = a ? "[" + b.join(" | ") + "]" : b.join("\n")), c } }, { key: "getTextAndFormat", value: function () { return this.rows } }]), a }(), u = function () { function a(b, c) { d(this, a), this.chNr = b, this.outputFilter = c, this.mode = null, this.verbose = 0, this.displayedMemory = new t, this.nonDisplayedMemory = new t, this.lastOutputScreen = new t, this.currRollUpRow = this.displayedMemory.rows[h - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null } return e(a, [{ key: "reset", value: function () { this.mode = null, this.displayedMemory.reset(), this.nonDisplayedMemory.reset(), this.lastOutputScreen.reset(), this.currRollUpRow = this.displayedMemory.rows[h - 1], this.writeScreen = this.displayedMemory, this.mode = null, this.cueStartTime = null, this.lastCueEndTime = null } }, { key: "getHandler", value: function () { return this.outputFilter } }, { key: "setHandler", value: function (a) { this.outputFilter = a } }, { key: "setPAC", value: function (a) { this.writeScreen.setPAC(a) } }, { key: "setBkgData", value: function (a) { this.writeScreen.setBkgData(a) } }, { key: "setMode", value: function (a) { a !== this.mode && (this.mode = a, o.log("INFO", "MODE=" + a), "MODE_POP-ON" === this.mode ? this.writeScreen = this.nonDisplayedMemory : (this.writeScreen = this.displayedMemory, this.writeScreen.reset()), "MODE_ROLL-UP" !== this.mode && (this.displayedMemory.nrRollUpRows = null, this.nonDisplayedMemory.nrRollUpRows = null), this.mode = a) } }, { key: "insertChars", value: function (a) { for (var b = 0; b < a.length; b++) this.writeScreen.insertChar(a[b]); var c = this.writeScreen === this.displayedMemory ? "DISP" : "NON_DISP"; o.log("INFO", c + ": " + this.writeScreen.getDisplayText(!0)), "MODE_PAINT-ON" !== this.mode && "MODE_ROLL-UP" !== this.mode || (o.log("TEXT", "DISPLAYED: " + this.displayedMemory.getDisplayText(!0)), this.outputDataUpdate()) } }, { key: "ccRCL", value: function () { o.log("INFO", "RCL - Resume Caption Loading"), this.setMode("MODE_POP-ON") } }, { key: "ccBS", value: function () { o.log("INFO", "BS - BackSpace"), "MODE_TEXT" !== this.mode && (this.writeScreen.backSpace(), this.writeScreen === this.displayedMemory && this.outputDataUpdate()) } }, { key: "ccAOF", value: function () {} }, { key: "ccAON", value: function () {} }, { key: "ccDER", value: function () { o.log("INFO", "DER- Delete to End of Row"), this.writeScreen.clearToEndOfRow(), this.outputDataUpdate() } }, { key: "ccRU", value: function (a) { o.log("INFO", "RU(" + a + ") - Roll Up"), this.writeScreen = this.displayedMemory, this.setMode("MODE_ROLL-UP"), this.writeScreen.setRollUpRows(a) } }, { key: "ccFON", value: function () { o.log("INFO", "FON - Flash On"), this.writeScreen.setPen({ flash: !0 }) } }, { key: "ccRDC", value: function () { o.log("INFO", "RDC - Resume Direct Captioning"), this.setMode("MODE_PAINT-ON") } }, { key: "ccTR", value: function () { o.log("INFO", "TR"), this.setMode("MODE_TEXT") } }, { key: "ccRTD", value: function () { o.log("INFO", "RTD"), this.setMode("MODE_TEXT") } }, { key: "ccEDM", value: function () { o.log("INFO", "EDM - Erase Displayed Memory"), this.displayedMemory.reset(), this.outputDataUpdate() } }, { key: "ccCR", value: function () { o.log("CR - Carriage Return"), this.writeScreen.rollUp(), this.outputDataUpdate() } }, { key: "ccENM", value: function () { o.log("INFO", "ENM - Erase Non-displayed Memory"), this.nonDisplayedMemory.reset() } }, { key: "ccEOC", value: function () { if (o.log("INFO", "EOC - End Of Caption"), "MODE_POP-ON" === this.mode) { var a = this.displayedMemory; this.displayedMemory = this.nonDisplayedMemory, this.nonDisplayedMemory = a, this.writeScreen = this.nonDisplayedMemory, o.log("TEXT", "DISP: " + this.displayedMemory.getDisplayText()) } this.outputDataUpdate() } }, { key: "ccTO", value: function (a) { o.log("INFO", "TO(" + a + ") - Tab Offset"), this.writeScreen.moveCursor(a) } }, { key: "ccMIDROW", value: function (a) { var b = { flash: !1 }; if (b.underline = a % 2 == 1, b.italics = a >= 46, b.italics) b.foreground = "white"; else { var c = Math.floor(a / 2) - 16, d = ["white", "green", "blue", "cyan", "red", "yellow", "magenta"]; b.foreground = d[c] } o.log("INFO", "MIDROW: " + JSON.stringify(b)), this.writeScreen.setPen(b) } }, { key: "outputDataUpdate", value: function () { var a = o.time; null !== a && this.outputFilter && (this.outputFilter.updateData && this.outputFilter.updateData(a, this.displayedMemory), null !== this.cueStartTime || this.displayedMemory.isEmpty() ? this.displayedMemory.equals(this.lastOutputScreen) || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, a, this.lastOutputScreen), this.cueStartTime = this.displayedMemory.isEmpty() ? null : a) : this.cueStartTime = a, this.lastOutputScreen.copy(this.displayedMemory)) } }, { key: "cueSplitAtTime", value: function (a) { this.outputFilter && (this.displayedMemory.isEmpty() || (this.outputFilter.newCue && this.outputFilter.newCue(this.cueStartTime, a, this.displayedMemory), this.cueStartTime = a)) } }]), a }(), v = function () { function a(b, c, e) { d(this, a), this.field = b || 1, this.outputs = [c, e], this.channels = [new u(1, c), new u(2, e)], this.currChNr = -1, this.lastCmdA = null, this.lastCmdB = null, this.bufferedData = [], this.startTime = null, this.lastTime = null, this.dataCounters = { padding: 0, char: 0, cmd: 0, other: 0 } } return e(a, [{ key: "getHandler", value: function (a) { return this.channels[a].getHandler() } }, { key: "setHandler", value: function (a, b) { this.channels[a].setHandler(b) } }, { key: "addData", value: function (a, b) { var c, d, e, f = !1; this.lastTime = a, o.setTime(a); for (var g = 0; g < b.length; g += 2) if (d = 127 & b[g], e = 127 & b[g + 1], 0 !== d || 0 !== e) { if (o.log("DATA", "[" + p([b[g], b[g + 1]]) + "] -> (" + p([d, e]) + ")"), c = this.parseCmd(d, e), c || (c = this.parseMidrow(d, e)), c || (c = this.parsePAC(d, e)), c || (c = this.parseBackgroundAttributes(d, e)), !c && (f = this.parseChars(d, e))) if (this.currChNr && this.currChNr >= 0) { var h = this.channels[this.currChNr - 1]; h.insertChars(f) } else o.log("WARNING", "No channel found yet. TEXT-MODE?"); c ? this.dataCounters.cmd += 2 : f ? this.dataCounters.char += 2 : (this.dataCounters.other += 2, o.log("WARNING", "Couldn't parse cleaned data " + p([d, e]) + " orig: " + p([b[g], b[g + 1]]))) } else this.dataCounters.padding += 2 } }, { key: "parseCmd", value: function (a, b) { var c = null, d = (20 === a || 28 === a) && 32 <= b && b <= 47, e = (23 === a || 31 === a) && 33 <= b && b <= 35; if (!d && !e) return !1; if (a === this.lastCmdA && b === this.lastCmdB) return this.lastCmdA = null, this.lastCmdB = null, o.log("DEBUG", "Repeated command (" + p([a, b]) + ") is dropped"), !0; c = 20 === a || 23 === a ? 1 : 2; var f = this.channels[c - 1]; return 20 === a || 28 === a ? 32 === b ? f.ccRCL() : 33 === b ? f.ccBS() : 34 === b ? f.ccAOF() : 35 === b ? f.ccAON() : 36 === b ? f.ccDER() : 37 === b ? f.ccRU(2) : 38 === b ? f.ccRU(3) : 39 === b ? f.ccRU(4) : 40 === b ? f.ccFON() : 41 === b ? f.ccRDC() : 42 === b ? f.ccTR() : 43 === b ? f.ccRTD() : 44 === b ? f.ccEDM() : 45 === b ? f.ccCR() : 46 === b ? f.ccENM() : 47 === b && f.ccEOC() : f.ccTO(b - 32), this.lastCmdA = a, this.lastCmdB = b, this.currChNr = c, !0 } }, { key: "parseMidrow", value: function (a, b) { var c = null; if ((17 === a || 25 === a) && 32 <= b && b <= 47) { if ((c = 17 === a ? 1 : 2) !== this.currChNr) return o.log("ERROR", "Mismatch channel in midrow parsing"), !1; return this.channels[c - 1].ccMIDROW(b), o.log("DEBUG", "MIDROW (" + p([a, b]) + ")"), !0 } return !1 } }, { key: "parsePAC", value: function (a, b) { var c = null, d = null, e = (17 <= a && a <= 23 || 25 <= a && a <= 31) && 64 <= b && b <= 127, f = (16 === a || 24 === a) && 64 <= b && b <= 95; if (!e && !f) return !1; if (a === this.lastCmdA && b === this.lastCmdB) return this.lastCmdA = null, this.lastCmdB = null, !0; c = a <= 23 ? 1 : 2, d = 64 <= b && b <= 95 ? 1 === c ? j[a] : l[a] : 1 === c ? k[a] : m[a]; var g = this.interpretPAC(d, b); return this.channels[c - 1].setPAC(g), this.lastCmdA = a, this.lastCmdB = b, this.currChNr = c, !0 } }, { key: "interpretPAC", value: function (a, b) { var c = b, d = { color: null, italics: !1, indent: null, underline: !1, row: a }; return c = b > 95 ? b - 96 : b - 64, d.underline = 1 == (1 & c), c <= 13 ? d.color = ["white", "green", "blue", "cyan", "red", "yellow", "magenta", "white"][Math.floor(c / 2)] : c <= 15 ? (d.italics = !0, d.color = "white") : d.indent = 4 * Math.floor((c - 16) / 2), d } }, { key: "parseChars", value: function (a, b) { var c = null, d = null, e = null; if (a >= 25 ? (c = 2, e = a - 8) : (c = 1, e = a), 17 <= e && e <= 19) { var f = b; f = 17 === e ? b + 80 : 18 === e ? b + 112 : b + 144, o.log("INFO", "Special char '" + g(f) + "' in channel " + c), d = [f] } else 32 <= a && a <= 127 && (d = 0 === b ? [a] : [a, b]); if (d) { var h = p(d); o.log("DEBUG", "Char codes = " + h.join(",")), this.lastCmdA = null, this.lastCmdB = null } return d } }, { key: "parseBackgroundAttributes", value: function (a, b) { var c, d, e, f, g = (16 === a || 24 === a) && 32 <= b && b <= 47, h = (23 === a || 31 === a) && 45 <= b && b <= 47; return !(!g && !h) && (c = {}, 16 === a || 24 === a ? (d = Math.floor((b - 32) / 2), c.background = n[d], b % 2 == 1 && (c.background = c.background + "_semi")) : 45 === b ? c.background = "transparent" : (c.foreground = "black", 47 === b && (c.underline = !0)), e = a < 24 ? 1 : 2, f = this.channels[e - 1], f.setBkgData(c), this.lastCmdA = null, this.lastCmdB = null, !0) } }, { key: "reset", value: function () { for (var a = 0; a < this.channels.length; a++) this.channels[a] && this.channels[a].reset(); this.lastCmdA = null, this.lastCmdB = null } }, { key: "cueSplitAtTime", value: function (a) { for (var b = 0; b < this.channels.length; b++) this.channels[b] && this.channels[b].cueSplitAtTime(a) } }]), a }(); c.default = v }, {}], 40: [function (a, b, c) { "use strict"; var d = { newCue: function (a, b, c, d) { for (var e, f, g, h, i, j = window.VTTCue || window.TextTrackCue, k = 0; k < d.rows.length; k++) if (e = d.rows[k], g = !0, h = 0, i = "", !e.isEmpty()) { for (var l = 0; l < e.chars.length; l++) e.chars[l].uchar.match(/\s/) && g ? h++ : (i += e.chars[l].uchar, g = !1); f = new j(b, c, i.trim()), h >= 16 ? h-- : h++, navigator.userAgent.match(/Firefox\//) ? f.line = k + 1 : f.line = k > 7 ? k - 2 : k + 1, f.align = "left", f.position = Math.max(0, Math.min(100, h / 32 * 100 + (navigator.userAgent.match(/Firefox\//) ? 50 : 0))), a.addCue(f) } } }; b.exports = d }, {}], 41: [function (a, b, c) { "use strict"; function d() {} function e(a, b) { return b = "[" + a + "] > " + b } function f(a) { var b = window.console[a]; return b ? function () { for (var c = arguments.length, d = Array(c), f = 0; f < c; f++) d[f] = arguments[f]; d[0] && (d[0] = e(a, d[0])), b.apply(window.console, d) } : d } function g(a) { var b; return function () { for (var c = arguments.length, d = Array(c), e = 0; e < c; e++) d[e] = arguments[e]; d.join(" ") !== b && (b = d.join(" "), a.apply(null, d)) } } function h(a) { for (var b = arguments.length, c = Array(b > 1 ? b - 1 : 0), d = 1; d < b; d++) c[d - 1] = arguments[d]; c.forEach(function (b) { j[b] = g(function () { (k && k.holaLog && k.holaLog[b] || a[b] || f(b)).apply(null, arguments) }) }) } Object.defineProperty(c, "__esModule", { value: !0 }); var i = { trace: d, debug: d, log: d, warn: d, info: d, error: d }, j = i, k = void 0; c.enableLogs = function (a, b) { k = b, h(a || i, "debug", "log", "info", "warn", "error"); try { j.log() } catch (a) { j = i } }, c.logger = j }, {}], 42: [function (a, b, c) { "use strict"; ArrayBuffer.prototype.slice || (ArrayBuffer.prototype.slice = function (a, b) { var c = new Uint8Array(this); void 0 === b && (b = c.length); for (var d = new ArrayBuffer(b - a), e = new Uint8Array(d), f = 0; f < e.length; f++) e[f] = c[f + a]; return d }), Object.assign || (Object.assign = function (a) { for (var b = 1; b < arguments.length; b++) { var c = arguments[b]; if (c) for (var d in c) c.hasOwnProperty(d) && (a[d] = c[d]) } return a }) }, {}], 43: [function (a, b, c) { "use strict"; var d = { buildAbsoluteURL: function (a, b) { if (b = b.trim(), /^[a-z]+:/i.test(b)) return (" " + b).slice(1); var c = null, e = null, f = /^([^#]*)(.*)$/.exec(b); f && (e = f[2], b = f[1]); var g = /^([^\?]*)(.*)$/.exec(b); g && (c = g[2], b = g[1]); var h = /^([^#]*)(.*)$/.exec(a); h && (a = h[1]); var i = /^([^\?]*)(.*)$/.exec(a); i && (a = i[1]); var j = /^(([a-z]+:)?\/\/[a-z0-9\.\-_~]+(:[0-9]+)?)?(\/.*)$/i.exec(a); if (!j) throw new Error("Error trying to parse base URL."); var k = j[2] || "", l = j[1] || "", m = j[4], n = null; return n = /^\/\//.test(b) ? k + "//" + d.buildAbsolutePath("", b.substring(2)) : /^\//.test(b) ? l + "/" + d.buildAbsolutePath("", b.substring(1)) : d.buildAbsolutePath(l + m, b), c && (n += c), e && (n += e), n }, buildAbsolutePath: function (a, b) { for (var c, d, e = b, f = "", g = a.replace(/[^\/]*$/, e.replace(/(\/|^)(?:\.?\/+)+/g, "$1")), h = 0; (d = g.indexOf("/../", h)) > -1; h = d + c) c = /^\/(?:\.\.\/)*/.exec(g.slice(d))[0].length, f = (f + g.substring(h, d)).replace(new RegExp("(?:\\/+[^\\/]*){0," + (c - 1) / 3 + "}$"), "/"); return f + g.substr(h) } }; b.exports = d }, {}], 44: [function (a, b, c) { "use strict"; function d(a, b) { if (!(a instanceof b)) throw new TypeError("Cannot call a class as a function") } Object.defineProperty(c, "__esModule", { value: !0 }); var e = function () { function a(a, b) { for (var c = 0; c < b.length; c++) { var d = b[c]; d.enumerable = d.enumerable || !1, d.configurable = !0, "value" in d && (d.writable = !0), Object.defineProperty(a, d.key, d) } } return function (b, c, d) { return c && a(b.prototype, c), d && a(b, d), b } }(), f = a("../utils/logger"), g = function () { function a(b) { d(this, a), b && b.xhrSetup && (this.xhrSetup = b.xhrSetup) } return e(a, [{ key: "destroy", value: function () { this.abort(), this.loader = null } }, { key: "abort", value: function () { var a = this.loader, b = this.timeoutHandle, c = this.retryHandle; a && 4 !== a.readyState && (this.stats.aborted = !0, a.abort()), b && window.clearTimeout(b), c && window.clearTimeout(c) } }, { key: "load", value: function (a, b, c, d, e, f, g, h) { var i = arguments.length > 8 && void 0 !== arguments[8] ? arguments[8] : null, j = arguments.length > 9 && void 0 !== arguments[9] ? arguments[9] : null; this.url = a, !j || isNaN(j.byteRangeStartOffset) || isNaN(j.byteRangeEndOffset) || (this.byteRange = j.byteRangeStartOffset + "-" + (j.byteRangeEndOffset - 1)), this.responseType = b, this.onSuccess = c, this.onProgress = i, this.onTimeout = e, this.onError = d, this.stats = { trequest: performance.now(), retry: 0 }, this.timeout = f, this.maxRetry = g, this.retryDelay = h, this.loadInternal() } }, { key: "loadInternal", value: function () { var a; a = "undefined" != typeof XDomainRequest ? this.loader = new XDomainRequest : this.loader = new XMLHttpRequest, a.onloadend = this.loadend.bind(this), a.onprogress = this.loadprogress.bind(this); var b = this.url; "https:" === location.protocol && /^http:\/\//.test(b) && (b = b.replace(/^http:\/\//, "https://")), a.open("GET", b, !0), this.byteRange && a.setRequestHeader("Range", "bytes=" + this.byteRange), a.responseType = this.responseType, this.stats.tfirst = null, this.stats.loaded = 0, this.xhrSetup && this.xhrSetup(a, b), this.timeoutHandle = window.setTimeout(this.loadtimeout.bind(this), this.timeout), a.send() } }, { key: "loadend", value: function (a) { var b = a.currentTarget, c = b.status, d = this.stats; d.aborted || (c >= 200 && c < 300 ? (window.clearTimeout(this.timeoutHandle), d.tload = performance.now(), this.onSuccess(a, d)) : d.retry < this.maxRetry ? (f.logger.warn(c + " while loading " + this.url + ", retrying in " + this.retryDelay + "..."), this.destroy(), this.retryHandle = window.setTimeout(this.loadInternal.bind(this), this.retryDelay), this.retryDelay = Math.min(2 * this.retryDelay, 64e3), d.retry++) : (window.clearTimeout(this.timeoutHandle), f.logger.error(c + " while loading " + this.url), this.onError(a))) } }, { key: "loadtimeout", value: function (a) { f.logger.warn("timeout while loading " + this.url), this.onTimeout(a, this.stats) } }, { key: "loadprogress", value: function (a) { var b = this.stats; null === b.tfirst && (b.tfirst = performance.now()), b.loaded = a.loaded, a.lengthComputable && (b.total = a.total), this.onProgress && this.onProgress(b) } }]), a }(); c.default = g }, { "../utils/logger": 41 }], 45: [function (a, b, c) { "use strict"; function d(a, b) { function c(a, b) { p && p.holaLog && p.holaLog[a] && p.holaLog[a].call(p.holaLog, b) } function d(a) { p.loadSource(a.src) } function g(a) { p.manual_level = a, p.hola_adaptive ? v.trigger("mediachange") : p.loadLevel = a, n() } function h(a) { 1 === r[f.Hls.ErrorTypes.MEDIA_ERROR] ? (console.info("trying to recover media error"), p.recoverMediaError()) : 2 === r[f.Hls.ErrorTypes.MEDIA_ERROR] ? (console.info("2nd try to recover media error (by swapping audio codec"), p.swapAudioCodec(), p.recoverMediaError()) : r[f.Hls.ErrorTypes.MEDIA_ERROR] > 2 && (console.info("bubbling media error up to VIDEOJS"), a.code = 3, b.error = function () { return a }, b.trigger("error")) } function i(a, c) { var d = "error", e = { message: "HLS.js error: " + c.type + " - fatal: " + c.fatal + " - " + c.details }; if (c.fatal || c.details !== f.Hls.ErrorDetails.BUFFER_STALLED_ERROR || (d = "warn"), console[d](e.message), r[c.type] ? r[c.type] += 1 : r[c.type] = 1, c.fatal) switch (c.type) { case f.Hls.ErrorTypes.NETWORK_ERROR: console.info("bubbling network error up to VIDEOJS"), e.code = 2, b.error = function () { return e }, b.trigger("error"); break; case f.Hls.ErrorTypes.MEDIA_ERROR: h(e); break; default: p.destroy(), console.info("bubbling error up to VIDEOJS"), b.error = function () { return e }, b.trigger("error") } } function j(a) { if (void 0 === a) return ""; if (!a) return "0"; var b = 1024, c = ["", "K", "M", "G", "T", "P"], d = Math.floor(Math.log(a) / Math.log(b)); return (a /= Math.pow(b, d)) < .001 ? "0" : (a >= b - 1 && (a = Math.trunc(a)), a.toFixed(a < 1 ? 3 : a < 10 ? 2 : a < 100 ? 1 : 0).replace(/\.0*$/, "") + c[d]) } function k(a) { var b = a.height || Math.round(9 * a.width / 16); return b ? b + "p" : "" } function l(a) { return a.bitrate ? j(a.bitrate) + "bps" : "" } function m(a, b) { var c = k(a); return c ? b.some(function (b) { return b != a && k(b) == c }) ? c + " " + l(a) : c : l(a) } function n() { var a = [], c = p.levels; c.length > 1 && a.push({ id: -1, label: "Auto" }), c.forEach(function (b, d) { a.push({ id: d, label: m(b, c), bitrate: b.bitrate }) }); var d = b.quality_data = { quality: { list: a, selected: p.manual_level, current: p.loadLevel }, callback: g }; b.trigger("loadedqualitydata", d) } function o() { x || d(a), q.removeEventListener("waiting", o) } console.log("init hola/hls provider v" + f.VERSION + " hls v" + f.Hls.version + (f.version ? " hap v" + f.version : "")), b.name_ = "holaHLS"; var p, q = b.el(), r = {}, s = null, t = 0, u = 0, v = q.player || q.parentNode.player || f.videojs.getPlayers()[q.playerId], w = v.options(), x = "none" != w.preload || w.autoplay; q.addEventListener("error", function (a) { var b, c = a.currentTarget.error; switch (c.code) { case c.MEDIA_ERR_ABORTED: b = "You aborted the video playback"; break; case c.MEDIA_ERR_DECODE: b = "The video playback was aborted due to a corruption problem or because the video used features your browser did not support", h(c); break; case c.MEDIA_ERR_NETWORK: b = "A network error caused the video download to fail part-way"; break; case c.MEDIA_ERR_SRC_NOT_SUPPORTED: b = "The video could not be loaded, either because the server or network failed or because the format is not supported" } console.error("MEDIA_ERROR: ", b) }), this.duration = function () { return s || q.duration || 0 }, this.seekable = function () { return f.videojs.createTimeRanges([ [t, u] ]) }, this.dispose = function () { q.removeEventListener("waiting", o), p.destroy() }, function () { "Hlsjs" == v.techName_ && b.hls_ && (b.hls_.destroy(), b.hls_ = null), b.hlsHandler && b.hlsHandler.dispose(), b.hlsHandler = { dispose: function () {}, isLive: function () { return s == 1 / 0 } } }(), function () { var a, d = {}; Object.assign(d, e), Object.assign(d, f.hls_params || {}), void 0 !== d.debug && (a = d.debug), d.debug = {}, ["debug", "info", "log", "warn", "error"].forEach(function (a) { d.debug[a] = c.bind(null, a) }), b.hls_obj = p = new f.Hls(f.videojs.mergeOptions(b.options_.hlsjsConfig, d)), p.holaLog = a, p.manual_level = -1, p.on(f.Hls.Events.ERROR, function (a, b) { i(a, b) }), p.on(f.Hls.Events.LEVEL_SWITCH, n), p.on(f.Hls.Events.LEVEL_LOADED, function (a, b) { s = b.details.live ? 1 / 0 : b.details.totalduration }), p.on(f.Hls.Events.LEVEL_UPDATED, function (a, b) { t = b.details.live ? b.details.fragments[0].start : 0, u = b.details.live ? p.streamController.computeLivePosition(t, b.details) : b.details.totalduration }), p.on(f.Hls.Events.FRAG_PARSING_METADATA, function (a, c) { b.trigger("parsedmetadata", c) }), p.attachMedia(q), q.addEventListener("waiting", o) }(), x && d(a) } var e, f = b.exports, g = !1, h = !1; f.VERSION = "0.0.8-53", f.name = "HolaProviderHLS", f.attach = function (a, b, c, i) { if (f.videojs = b || f.videojs || window.videojs, !f.videojs) return Object.defineProperty(window, "videojs", { configurable: !0, get: function () {}, set: function (b) { Object.defineProperty(window, "videojs", { configurable: !0, value: b }), f.attach(a, b, c, i) } }); if (f.Hls = c || f.Hls || window.Hls, i && (e = i), g) h = !1; else if (f.Hls.isSupported()) { g = !0; var j = ["Hlsjs", "Html5"].filter(function (a) { if (a = f.videojs.getTech(a)) { a.sourceHandlers instanceof Array ? a.sourceHandlers.splice(0, 0, f) : a.registerSourceHandler(f, 0); var b = a.registerSourceHandler; return a.registerSourceHandler = function (c, d) { return b.call(a, c, 0 === d ? 1 : d) }, !0 } }); f.videojs.HolaProviderHLS = d, j.length ? console.log(f.name + " registered as %s SourceHandler", j.join("/")) : console.log(f.name + " not registered: no suitable tech found") } else console.error("Hls.js is not supported in this browser!") }, f.detach = function () { h = !0 }, f.canPlayType = function (a) { return h ? "" : /^application\/x-mpegURL$/i.test(a) ? "probably" : "" }, f.canHandleSource = function (a) { var b; return h ? "" : (b = f.canPlayType(a.type)) ? b : /\.m3u8/i.test(a.src) ? "maybe" : "" }, f.handleSource = function (a, b) { return b.hlsProvider && b.hlsProvider.dispose(), b.hlsProvider = new d(a, b) } }, {}], 46: [function (a, b, c) { function d() { this._events && Object.prototype.hasOwnProperty.call(this, "_events") || (this._events = v(null), this._eventsCount = 0), this._maxListeners = this._maxListeners || void 0 } function e(a) { return void 0 === a._maxListeners ? d.defaultMaxListeners : a._maxListeners } function f(a, b, c) { if (b) a.call(c); else for (var d = a.length, e = q(a, d), f = 0; f < d; ++f) e[f].call(c) } function g(a, b, c, d) { if (b) a.call(c, d); else for (var e = a.length, f = q(a, e), g = 0; g < e; ++g) f[g].call(c, d) } function h(a, b, c, d, e) { if (b) a.call(c, d, e); else for (var f = a.length, g = q(a, f), h = 0; h < f; ++h) g[h].call(c, d, e) } function i(a, b, c, d, e, f) { if (b) a.call(c, d, e, f); else for (var g = a.length, h = q(a, g), i = 0; i < g; ++i) h[i].call(c, d, e, f) } function j(a, b, c, d) { if (b) a.apply(c, d); else for (var e = a.length, f = q(a, e), g = 0; g < e; ++g) f[g].apply(c, d) } function k(a, b, c, d) { var f, g, h; if ("function" != typeof c) throw new TypeError('"listener" argument must be a function'); if (g = a._events, g ? (g.newListener && (a.emit("newListener", b, c.listener ? c.listener : c), g = a._events), h = g[b]) : (g = a._events = v(null), a._eventsCount = 0), h) { if ("function" == typeof h ? h = g[b] = d ? [c, h] : [h, c] : d ? h.unshift(c) : h.push(c), !h.warned && (f = e(a)) && f > 0 && h.length > f) { h.warned = !0; var i = new Error("Possible EventEmitter memory leak detected. " + h.length + ' "' + String(b) + '" listeners added. Use emitter.setMaxListeners() to increase limit.'); i.name = "MaxListenersExceededWarning", i.emitter = a, i.type = b, i.count = h.length, "object" == typeof console && console.warn && console.warn("%s: %s", i.name, i.message) } } else h = g[b] = c, ++a._eventsCount; return a } function l() { if (!this.fired) switch (this.target.removeListener(this.type, this.wrapFn), this.fired = !0, arguments.length) { case 0: return this.listener.call(this.target); case 1: return this.listener.call(this.target, arguments[0]); case 2: return this.listener.call(this.target, arguments[0], arguments[1]); case 3: return this.listener.call(this.target, arguments[0], arguments[1], arguments[2]); default: for (var a = new Array(arguments.length), b = 0; b < a.length; ++b) a[b] = arguments[b]; this.listener.apply(this.target, a) } } function m(a, b, c) { var d = { fired: !1, wrapFn: void 0, target: a, type: b, listener: c }, e = x.call(l, d); return e.listener = c, d.wrapFn = e, e } function n(a, b, c) { var d = a._events; if (!d) return []; var e = d[b]; return e ? "function" == typeof e ? c ? [e.listener || e] : [e] : c ? r(e) : q(e, e.length) : [] } function o(a) { var b = this._events; if (b) { var c = b[a]; if ("function" == typeof c) return 1; if (c) return c.length } return 0 } function p(a, b) { for (var c = b, d = c + 1, e = a.length; d < e; c += 1, d += 1) a[c] = a[d]; a.pop() } function q(a, b) { for (var c = new Array(b), d = 0; d < b; ++d) c[d] = a[d]; return c } function r(a) { for (var b = new Array(a.length), c = 0; c < b.length; ++c) b[c] = a[c].listener || a[c]; return b } function s(a) { var b = function () {}; return b.prototype = a, new b } function t(a) { var b = []; for (var c in a) Object.prototype.hasOwnProperty.call(a, c) && b.push(c); return c } function u(a) { var b = this; return function () { return b.apply(a, arguments) } } var v = Object.create || s, w = Object.keys || t, x = Function.prototype.bind || u; b.exports = d, d.EventEmitter = d, d.prototype._events = void 0, d.prototype._maxListeners = void 0; var y, z = 10; try { var A = {}; Object.defineProperty && Object.defineProperty(A, "x", { value: 0 }), y = 0 === A.x } catch (a) { y = !1 } y ? Object.defineProperty(d, "defaultMaxListeners", { enumerable: !0, get: function () { return z }, set: function (a) { if ("number" != typeof a || a < 0 || a !== a) throw new TypeError('"defaultMaxListeners" must be a positive number'); z = a } }) : d.defaultMaxListeners = z, d.prototype.setMaxListeners = function (a) { if ("number" != typeof a || a < 0 || isNaN(a)) throw new TypeError('"n" argument must be a positive number'); return this._maxListeners = a, this }, d.prototype.getMaxListeners = function () { return e(this) }, d.prototype.emit = function (a) { var b, c, d, e, k, l, m = "error" === a; if (l = this._events) m = m && null == l.error; else if (!m) return !1; if (m) { if (arguments.length > 1 && (b = arguments[1]), b instanceof Error) throw b; var n = new Error('Unhandled "error" event. (' + b + ")"); throw n.context = b, n } if (!(c = l[a])) return !1; var o = "function" == typeof c; switch (d = arguments.length) { case 1: f(c, o, this); break; case 2: g(c, o, this, arguments[1]); break; case 3: h(c, o, this, arguments[1], arguments[2]); break; case 4: i(c, o, this, arguments[1], arguments[2], arguments[3]); break; default: for (e = new Array(d - 1), k = 1; k < d; k++) e[k - 1] = arguments[k]; j(c, o, this, e) } return !0 }, d.prototype.addListener = function (a, b) { return k(this, a, b, !1) }, d.prototype.on = d.prototype.addListener, d.prototype.prependListener = function (a, b) { return k(this, a, b, !0) }, d.prototype.once = function (a, b) { if ("function" != typeof b) throw new TypeError('"listener" argument must be a function'); return this.on(a, m(this, a, b)), this }, d.prototype.prependOnceListener = function (a, b) { if ("function" != typeof b) throw new TypeError('"listener" argument must be a function'); return this.prependListener(a, m(this, a, b)), this }, d.prototype.removeListener = function (a, b) { var c, d, e, f, g; if ("function" != typeof b) throw new TypeError('"listener" argument must be a function'); if (!(d = this._events)) return this; if (!(c = d[a])) return this; if (c === b || c.listener === b) 0 == --this._eventsCount ? this._events = v(null) : (delete d[a], d.removeListener && this.emit("removeListener", a, c.listener || b)); else if ("function" != typeof c) { for (e = -1, f = c.length - 1; f >= 0; f--) if (c[f] === b || c[f].listener === b) { g = c[f].listener, e = f; break } if (e < 0) return this; 0 === e ? c.shift() : p(c, e), 1 === c.length && (d[a] = c[0]), d.removeListener && this.emit("removeListener", a, g || b) } return this }, d.prototype.removeAllListeners = function (a) { var b, c, d; if (!(c = this._events)) return this; if (!c.removeListener) return 0 === arguments.length ? (this._events = v(null), this._eventsCount = 0) : c[a] && (0 == --this._eventsCount ? this._events = v(null) : delete c[a]), this; if (0 === arguments.length) { var e, f = w(c); for (d = 0; d < f.length; ++d) "removeListener" !== (e = f[d]) && this.removeAllListeners(e); return this.removeAllListeners("removeListener"), this._events = v(null), this._eventsCount = 0, this } if ("function" == typeof (b = c[a])) this.removeListener(a, b); else if (b) for (d = b.length - 1; d >= 0; d--) this.removeListener(a, b[d]); return this }, d.prototype.listeners = function (a) { return n(this, a, !0) }, d.prototype.rawListeners = function (a) { return n(this, a, !1) }, d.listenerCount = function (a, b) { return "function" == typeof a.listenerCount ? a.listenerCount(b) : o.call(a, b) }, d.prototype.listenerCount = o, d.prototype.eventNames = function () { return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : [] } }, {}], 47: [function (a, b, c) { var d = arguments[3], e = arguments[4], f = arguments[5], g = JSON.stringify; b.exports = function (a, b) { function c(a) { q[a] = !0; for (var b in e[a][1]) { var d = e[a][1][b]; q[d] || c(d) } } for (var h, i = Object.keys(f), j = 0, k = i.length; j < k; j++) { var l = i[j], m = f[l].exports; if (m === a || m && m.default === a) { h = l; break } } if (!h) { h = Math.floor(Math.pow(16, 8) * Math.random()).toString(16); for (var n = {}, j = 0, k = i.length; j < k; j++) { var l = i[j]; n[l] = l } e[h] = ["function(require,module,exports){" + a + "(self); }", n] } var o = Math.floor(Math.pow(16, 8) * Math.random()).toString(16), p = {}; p[h] = h, e[o] = ["function(require,module,exports){var f = require(" + g(h) + ");(f.default ? f.default : f)(self);}", p]; var q = {}; c(o); var r = "(" + d + ")({" + Object.keys(q).map(function (a) { return g(a) + ":[" + e[a][0] + "," + g(e[a][1]) + "]" }).join(",") + "},{},[" + g(o) + "])", s = window.URL || window.webkitURL || window.mozURL || window.msURL, t = new Blob([r], { type: "text/javascript" }); if (b && b.bare) return t; var u = s.createObjectURL(t), v = new Worker(u); return v.objectURL = u, v } }, {}] }, {}, [3])(3) }); return res; }; hola_player_init(); })(); //# sourceMappingURL=/hola_player.js.map?customer=network18&hap_ver=1.0.148&percent=50&version=1.0.157