diff --git a/ennstatus/static/js/d3/.bower.json b/ennstatus/static/js/d3/.bower.json --- a/ennstatus/static/js/d3/.bower.json +++ b/ennstatus/static/js/d3/.bower.json @@ -1,37 +1,18 @@ { "name": "d3", + "description": "A JavaScript visualization library for HTML and SVG.", "main": "d3.js", - "scripts": [ - "d3.js" - ], - "ignore": [ - ".DS_Store", - ".git", - ".gitignore", - ".npmignore", - ".spmignore", - ".travis.yml", - "Makefile", - "bin", - "component.json", - "composer.json", - "index.js", - "lib", - "node_modules", - "package.json", - "src", - "test" - ], - "homepage": "https://github.com/mbostock/d3", - "version": "3.5.6", - "_release": "3.5.6", + "license": "BSD-3-Clause", + "ignore": [], + "homepage": "https://github.com/mbostock-bower/d3-bower", + "version": "3.5.17", + "_release": "3.5.17", "_resolution": { "type": "version", - "tag": "v3.5.6", - "commit": "0e88ef5aacbc565b7282790c829ea51dd86c978d" + "tag": "v3.5.17", + "commit": "abe0262a205c9f3755c3a757de4dfd1d49f34b24" }, - "_source": "git://github.com/mbostock/d3.git", + "_source": "https://github.com/mbostock-bower/d3-bower.git", "_target": "~3.5.6", - "_originalSource": "d3", - "_direct": true + "_originalSource": "d3" } \ No newline at end of file diff --git a/ennstatus/static/js/d3/.gitattributes b/ennstatus/static/js/d3/.gitattributes deleted file mode 100644 --- a/ennstatus/static/js/d3/.gitattributes +++ /dev/null @@ -1,5 +0,0 @@ -bower.json -diff merge=ours -component.json -diff merge=ours -d3.js -diff merge=ours -d3.min.js -diff merge=ours -package.js -diff merge=ours diff --git a/ennstatus/static/js/d3/CONTRIBUTING.md b/ennstatus/static/js/d3/CONTRIBUTING.md deleted file mode 100644 --- a/ennstatus/static/js/d3/CONTRIBUTING.md +++ /dev/null @@ -1,27 +0,0 @@ -# Contributing - -**Important:** these GitHub issues are for *bug reports and feature requests only*. Please use [StackOverflow](http://stackoverflow.com/questions/tagged/d3.js) or the [d3-js Google group](https://groups.google.com/d/forum/d3-js) for general help. - -If you’re looking for ways to contribute, please [peruse open issues](https://github.com/mbostock/d3/issues?milestone=&page=1&state=open). The icebox is a good place to find ideas that are not currently in development. If you already have an idea, please check past issues to see whether your idea or a similar one was previously discussed. - -Before submitting a pull request, consider implementing a live example first, say using [bl.ocks.org](http://bl.ocks.org). Real-world use cases go a long way to demonstrating the usefulness of a proposed feature. The more complex a feature’s implementation, the more usefulness it should provide. Share your demo using the #d3js tag on Twitter or by sending it to the [d3-js Google group](https://groups.google.com/d/forum/d3-js). - -If your proposed feature does not involve changing core functionality, consider submitting it instead as a [D3 plugin](https://github.com/d3/d3-plugins). New core features should be for general use, whereas plugins are suitable for more specialized use cases. When in doubt, it’s easier to start with a plugin before “graduating” to core. - -To contribute new documentation or add examples to the gallery, just [edit the Wiki](https://github.com/mbostock/d3/wiki)! - -## How to Submit a Pull Request - -1. Click the “Fork” button to create your personal fork of the D3 repository. - -2. After cloning your fork of the D3 repository in the terminal, run `npm install` to install D3’s dependencies. - -3. Create a new branch for your new feature. For example: `git checkout -b my-awesome-feature`. A dedicated branch for your pull request means you can develop multiple features at the same time, and ensures that your pull request is stable even if you later decide to develop an unrelated feature. - -4. The `d3.js` and `d3.min.js` files are built from source files in the `src` directory. _Do not edit `d3.js` directly._ Instead, edit the source files, and then run `make` to build the generated files. - -5. Use `make test` to run tests and verify your changes. If you are adding a new feature, you should add new tests! If you are changing existing functionality, make sure the existing tests run, or update them as appropriate. - -6. Sign D3’s [Individual Contributor License Agreement](https://docs.google.com/forms/d/1CzjdBKtDuA8WeuFJinadx956xLQ4Xriv7-oDvXnZMaI/viewform). Unless you are submitting a trivial patch (such as fixing a typo), this form is needed to verify that you are able to contribute. - -7. Submit your pull request, and good luck! diff --git a/ennstatus/static/js/d3/LICENSE b/ennstatus/static/js/d3/LICENSE --- a/ennstatus/static/js/d3/LICENSE +++ b/ennstatus/static/js/d3/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2010-2015, Michael Bostock +Copyright (c) 2010-2016, Michael Bostock All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/ennstatus/static/js/d3/README.md b/ennstatus/static/js/d3/README.md --- a/ennstatus/static/js/d3/README.md +++ b/ennstatus/static/js/d3/README.md @@ -1,9 +1,13 @@ # Data-Driven Documents - + **D3.js** is a JavaScript library for manipulating documents based on data. **D3** helps you bring data to life using HTML, SVG, and CSS. **D3** emphasizes web standards and combines powerful visualization components with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers without tying yourself to a proprietary framework. Want to learn more? [See the wiki.](https://github.com/mbostock/d3/wiki) For examples, [see the gallery](https://github.com/mbostock/d3/wiki/Gallery) and [mbostock’s bl.ocks](http://bl.ocks.org/mbostock). + +## Good News, Everyone! + +The next major release of D3, 4.0, is coming! See the [4.0 development branch](https://github.com/mbostock/d3/tree/4) and read the [new API reference](https://github.com/mbostock/d3/blob/4/README.md) to get ready. diff --git a/ennstatus/static/js/d3/bower.json b/ennstatus/static/js/d3/bower.json --- a/ennstatus/static/js/d3/bower.json +++ b/ennstatus/static/js/d3/bower.json @@ -1,25 +1,7 @@ { "name": "d3", + "description": "A JavaScript visualization library for HTML and SVG.", "main": "d3.js", - "scripts": [ - "d3.js" - ], - "ignore": [ - ".DS_Store", - ".git", - ".gitignore", - ".npmignore", - ".spmignore", - ".travis.yml", - "Makefile", - "bin", - "component.json", - "composer.json", - "index.js", - "lib", - "node_modules", - "package.json", - "src", - "test" - ] + "license": "BSD-3-Clause", + "ignore": [] } diff --git a/ennstatus/static/js/d3/d3.js b/ennstatus/static/js/d3/d3.js --- a/ennstatus/static/js/d3/d3.js +++ b/ennstatus/static/js/d3/d3.js @@ -1,6 +1,6 @@ !function() { var d3 = { - version: "3.5.6" + version: "3.5.17" }; var d3_arraySlice = [].slice, d3_array = function(list) { return d3_arraySlice.call(list); @@ -220,20 +220,20 @@ while (i < n) pairs[i] = [ p0 = p1, p1 = array[++i] ]; return pairs; }; + d3.transpose = function(matrix) { + if (!(n = matrix.length)) return []; + for (var i = -1, m = d3.min(matrix, d3_transposeLength), transpose = new Array(m); ++i < m; ) { + for (var j = -1, n, row = transpose[i] = new Array(n); ++j < n; ) { + row[j] = matrix[j][i]; + } + } + return transpose; + }; + function d3_transposeLength(d) { + return d.length; + } d3.zip = function() { - if (!(n = arguments.length)) return []; - for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) { - for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) { - zip[j] = arguments[j][i]; - } - } - return zips; - }; - function d3_zipLength(d) { - return d.length; - } - d3.transpose = function(matrix) { - return d3.zip.apply(d3, matrix); + return d3.transpose(arguments); }; d3.keys = function(map) { var keys = []; @@ -620,9 +620,10 @@ return d3_selectAll(selector, this); }; } + var d3_nsXhtml = "http://www.w3.org/1999/xhtml"; var d3_nsPrefix = { svg: "http://www.w3.org/2000/svg", - xhtml: "http://www.w3.org/1999/xhtml", + xhtml: d3_nsXhtml, xlink: "http://www.w3.org/1999/xlink", xml: "http://www.w3.org/XML/1998/namespace", xmlns: "http://www.w3.org/2000/xmlns/" @@ -631,10 +632,7 @@ prefix: d3_nsPrefix, qualify: function(name) { var i = name.indexOf(":"), prefix = name; - if (i >= 0) { - prefix = name.slice(0, i); - name = name.slice(i + 1); - } + if (i >= 0 && (prefix = name.slice(0, i)) !== "xmlns") name = name.slice(i + 1); return d3_nsPrefix.hasOwnProperty(prefix) ? { space: d3_nsPrefix[prefix], local: name @@ -808,7 +806,7 @@ function d3_selection_creator(name) { function create() { var document = this.ownerDocument, namespace = this.namespaceURI; - return namespace ? document.createElementNS(namespace, name) : document.createElement(name); + return namespace === d3_nsXhtml && document.documentElement.namespaceURI === d3_nsXhtml ? document.createElement(name) : document.createElementNS(namespace, name); } function createNS() { return this.ownerDocument.createElementNS(name.space, name.local); @@ -845,12 +843,14 @@ if (key) { var nodeByKeyValue = new d3_Map(), keyValues = new Array(n), keyValue; for (i = -1; ++i < n; ) { - if (nodeByKeyValue.has(keyValue = key.call(node = group[i], node.__data__, i))) { - exitNodes[i] = node; - } else { - nodeByKeyValue.set(keyValue, node); + if (node = group[i]) { + if (nodeByKeyValue.has(keyValue = key.call(node, node.__data__, i))) { + exitNodes[i] = node; + } else { + nodeByKeyValue.set(keyValue, node); + } + keyValues[i] = keyValue; } - keyValues[i] = keyValue; } for (i = -1; ++i < m; ) { if (!(node = nodeByKeyValue.get(keyValue = key.call(groupData, nodeData = groupData[i], i)))) { @@ -862,7 +862,7 @@ nodeByKeyValue.set(keyValue, true); } for (i = -1; ++i < n; ) { - if (nodeByKeyValue.get(keyValues[i]) !== true) { + if (i in keyValues && nodeByKeyValue.get(keyValues[i]) !== true) { exitNodes[i] = group[i]; } } @@ -1054,7 +1054,7 @@ group = d3_array(d3_selectAll(nodes, d3_document)); group.parentNode = d3_document.documentElement; } else { - group = nodes; + group = d3_array(nodes); group.parentNode = null; } return d3_selection([ group ]); @@ -1205,7 +1205,7 @@ } function dragstart(id, position, subject, move, end) { return function() { - var that = this, target = d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); + var that = this, target = d3.event.target.correspondingElement || d3.event.target, parent = that.parentNode, dispatch = event.of(that, arguments), dragged = 0, dragId = id(), dragName = ".drag" + (dragId == null ? "" : "-" + dragId), dragOffset, dragSubject = d3.select(subject(target)).on(move + dragName, moved).on(end + dragName, ended), dragRestore = d3_event_dragSuppress(target), position0 = position(parent, dragId); if (origin) { dragOffset = origin.apply(that, arguments); dragOffset = [ dragOffset.x - position0[0], dragOffset.y - position0[1] ]; @@ -1233,7 +1233,7 @@ function ended() { if (!position(parent, dragId)) return; dragSubject.on(move + dragName, null).on(end + dragName, null); - dragRestore(dragged && d3.event.target === target); + dragRestore(dragged); dispatch({ type: "dragend" }); @@ -1285,18 +1285,22 @@ } var ρ = Math.SQRT2, ρ2 = 2, ρ4 = 4; d3.interpolateZoom = function(p0, p1) { - var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2]; - var dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1), dr = r1 - r0, S = (dr || Math.log(w1 / w0)) / ρ; - function interpolate(t) { - var s = t * S; - if (dr) { - var coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); + var ux0 = p0[0], uy0 = p0[1], w0 = p0[2], ux1 = p1[0], uy1 = p1[1], w1 = p1[2], dx = ux1 - ux0, dy = uy1 - uy0, d2 = dx * dx + dy * dy, i, S; + if (d2 < ε2) { + S = Math.log(w1 / w0) / ρ; + i = function(t) { + return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * t * S) ]; + }; + } else { + var d1 = Math.sqrt(d2), b0 = (w1 * w1 - w0 * w0 + ρ4 * d2) / (2 * w0 * ρ2 * d1), b1 = (w1 * w1 - w0 * w0 - ρ4 * d2) / (2 * w1 * ρ2 * d1), r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0), r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1); + S = (r1 - r0) / ρ; + i = function(t) { + var s = t * S, coshr0 = d3_cosh(r0), u = w0 / (ρ2 * d1) * (coshr0 * d3_tanh(ρ * s + r0) - d3_sinh(r0)); return [ ux0 + u * dx, uy0 + u * dy, w0 * coshr0 / d3_cosh(ρ * s + r0) ]; - } - return [ ux0 + t * dx, uy0 + t * dy, w0 * Math.exp(ρ * s) ]; - } - interpolate.duration = S * 1e3; - return interpolate; + }; + } + i.duration = S * 1e3; + return i; }; d3.behavior.zoom = function() { var view = { @@ -1366,8 +1370,9 @@ view = { x: view.x, y: view.y, - k: +_ + k: null }; + scaleTo(+_); rescale(); return zoom; }; @@ -1466,7 +1471,7 @@ }), center0 = null; } function mousedowned() { - var that = this, target = d3.event.target, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); + var that = this, dispatch = event.of(that, arguments), dragged = 0, subject = d3.select(d3_window(that)).on(mousemove, moved).on(mouseup, ended), location0 = location(d3.mouse(that)), dragRestore = d3_event_dragSuppress(that); d3_selection_interrupt.call(that); zoomstarted(dispatch); function moved() { @@ -1476,7 +1481,7 @@ } function ended() { subject.on(mousemove, null).on(mouseup, null); - dragRestore(dragged && d3.event.target === target); + dragRestore(dragged); zoomended(dispatch); } } @@ -1698,9 +1703,8 @@ return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16); } function d3_rgb_parse(format, rgb, hsl) { - format = format.toLowerCase(); var r = 0, g = 0, b = 0, m1, m2, color; - m1 = /([a-z]+)\((.*)\)/.exec(format); + m1 = /([a-z]+)\((.*)\)/.exec(format = format.toLowerCase()); if (m1) { m2 = m1[2].split(","); switch (m1[1]) { @@ -2115,17 +2119,19 @@ }; d3.csv = d3.dsv(",", "text/csv"); d3.tsv = d3.dsv(" ", "text/tab-separated-values"); - var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_active, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { + var d3_timer_queueHead, d3_timer_queueTail, d3_timer_interval, d3_timer_timeout, d3_timer_frame = this[d3_vendorSymbol(this, "requestAnimationFrame")] || function(callback) { setTimeout(callback, 17); }; - d3.timer = function(callback, delay, then) { + d3.timer = function() { + d3_timer.apply(this, arguments); + }; + function d3_timer(callback, delay, then) { var n = arguments.length; if (n < 2) delay = 0; if (n < 3) then = Date.now(); var time = then + delay, timer = { c: callback, t: time, - f: false, n: null }; if (d3_timer_queueTail) d3_timer_queueTail.n = timer; else d3_timer_queueHead = timer; @@ -2135,7 +2141,8 @@ d3_timer_interval = 1; d3_timer_frame(d3_timer_step); } - }; + return timer; + } function d3_timer_step() { var now = d3_timer_mark(), delay = d3_timer_sweep() - now; if (delay > 24) { @@ -2154,22 +2161,21 @@ d3_timer_sweep(); }; function d3_timer_mark() { - var now = Date.now(); - d3_timer_active = d3_timer_queueHead; - while (d3_timer_active) { - if (now >= d3_timer_active.t) d3_timer_active.f = d3_timer_active.c(now - d3_timer_active.t); - d3_timer_active = d3_timer_active.n; + var now = Date.now(), timer = d3_timer_queueHead; + while (timer) { + if (now >= timer.t && timer.c(now - timer.t)) timer.c = null; + timer = timer.n; } return now; } function d3_timer_sweep() { var t0, t1 = d3_timer_queueHead, time = Infinity; while (t1) { - if (t1.f) { - t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; - } else { + if (t1.c) { if (t1.t < time) time = t1.t; t1 = (t0 = t1).n; + } else { + t1 = t0 ? t0.n = t1.n : d3_timer_queueHead = t1.n; } } d3_timer_queueTail = t0; @@ -2184,7 +2190,7 @@ var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix); d3.formatPrefix = function(value, precision) { var i = 0; - if (value) { + if (value = +value) { if (value < 0) value *= -1; if (precision) value = d3.round(value, d3_format_precision(value, precision)); i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10); @@ -2534,7 +2540,8 @@ if (i != string.length) return null; if ("p" in d) d.H = d.H % 12 + d.p * 12; var localZ = d.Z != null && d3_date !== d3_date_utc, date = new (localZ ? d3_date_utc : d3_date)(); - if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("w" in d && ("W" in d || "U" in d)) { + if ("j" in d) date.setFullYear(d.y, 0, d.j); else if ("W" in d || "U" in d) { + if (!("w" in d)) d.w = "W" in d ? 1 : 0; date.setFullYear(d.y, 0, 1); date.setFullYear(d.y, 0, "W" in d ? (d.w + 6) % 7 + d.W * 7 - (date.getDay() + 5) % 7 : d.w + d.U * 7 - (date.getDay() + 6) % 7); } else date.setFullYear(d.y, d.m, d.d); @@ -3518,7 +3525,7 @@ λ0 = λ, sinφ0 = sinφ, cosφ0 = cosφ, point0 = point; } } - return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < 0) ^ winding & 1; + return (polarAngle < -ε || polarAngle < ε && d3_geo_areaRingSum < -ε) ^ winding & 1; } function d3_geo_clipCircle(radius) { var cr = Math.cos(radius), smallRadius = cr > 0, notHemisphere = abs(cr) > ε, interpolate = d3_geo_circleInterpolate(radius, 6 * d3_radians); @@ -5986,54 +5993,68 @@ f: 0 }; d3.interpolateTransform = d3_interpolateTransform; - function d3_interpolateTransform(a, b) { - var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale; - if (ta[0] != tb[0] || ta[1] != tb[1]) { - s.push("translate(", null, ",", null, ")"); + function d3_interpolateTransformPop(s) { + return s.length ? s.pop() + "," : ""; + } + function d3_interpolateTranslate(ta, tb, s, q) { + if (ta[0] !== tb[0] || ta[1] !== tb[1]) { + var i = s.push("translate(", null, ",", null, ")"); q.push({ - i: 1, + i: i - 4, x: d3_interpolateNumber(ta[0], tb[0]) }, { - i: 3, + i: i - 2, x: d3_interpolateNumber(ta[1], tb[1]) }); } else if (tb[0] || tb[1]) { s.push("translate(" + tb + ")"); - } else { - s.push(""); - } - if (ra != rb) { + } + } + function d3_interpolateRotate(ra, rb, s, q) { + if (ra !== rb) { if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360; q.push({ - i: s.push(s.pop() + "rotate(", null, ")") - 2, + i: s.push(d3_interpolateTransformPop(s) + "rotate(", null, ")") - 2, x: d3_interpolateNumber(ra, rb) }); } else if (rb) { - s.push(s.pop() + "rotate(" + rb + ")"); - } - if (wa != wb) { + s.push(d3_interpolateTransformPop(s) + "rotate(" + rb + ")"); + } + } + function d3_interpolateSkew(wa, wb, s, q) { + if (wa !== wb) { q.push({ - i: s.push(s.pop() + "skewX(", null, ")") - 2, + i: s.push(d3_interpolateTransformPop(s) + "skewX(", null, ")") - 2, x: d3_interpolateNumber(wa, wb) }); } else if (wb) { - s.push(s.pop() + "skewX(" + wb + ")"); - } - if (ka[0] != kb[0] || ka[1] != kb[1]) { - n = s.push(s.pop() + "scale(", null, ",", null, ")"); + s.push(d3_interpolateTransformPop(s) + "skewX(" + wb + ")"); + } + } + function d3_interpolateScale(ka, kb, s, q) { + if (ka[0] !== kb[0] || ka[1] !== kb[1]) { + var i = s.push(d3_interpolateTransformPop(s) + "scale(", null, ",", null, ")"); q.push({ - i: n - 4, + i: i - 4, x: d3_interpolateNumber(ka[0], kb[0]) }, { - i: n - 2, + i: i - 2, x: d3_interpolateNumber(ka[1], kb[1]) }); - } else if (kb[0] != 1 || kb[1] != 1) { - s.push(s.pop() + "scale(" + kb + ")"); - } - n = q.length; + } else if (kb[0] !== 1 || kb[1] !== 1) { + s.push(d3_interpolateTransformPop(s) + "scale(" + kb + ")"); + } + } + function d3_interpolateTransform(a, b) { + var s = [], q = []; + a = d3.transform(a), b = d3.transform(b); + d3_interpolateTranslate(a.translate, b.translate, s, q); + d3_interpolateRotate(a.rotate, b.rotate, s, q); + d3_interpolateSkew(a.skew, b.skew, s, q); + d3_interpolateScale(a.scale, b.scale, s, q); + a = b = null; return function(t) { - var i = -1, o; + var i = -1, n = q.length, o; while (++i < n) s[(o = q[i]).i] = o.x(t); return s.join(""); }; @@ -6137,7 +6158,7 @@ index: di, startAngle: x0, endAngle: x, - value: (x - x0) / k + value: groupSums[di] }; x += padding; } @@ -6205,7 +6226,7 @@ return chord; }; d3.layout.force = function() { - var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; + var force = {}, event = d3.dispatch("start", "tick", "end"), timer, size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, chargeDistance2 = d3_layout_forceChargeDistance2, gravity = .1, theta2 = .64, nodes = [], links = [], distances, strengths, charges; function repulse(node) { return function(quad, x1, _, x2) { if (quad.point !== node) { @@ -6229,6 +6250,7 @@ } force.tick = function() { if ((alpha *= .99) < .005) { + timer = null; event.end({ type: "end", alpha: alpha = 0 @@ -6246,7 +6268,7 @@ l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l; x *= l; y *= l; - t.x -= x * (k = s.weight / (t.weight + s.weight)); + t.x -= x * (k = s.weight + t.weight ? s.weight / (s.weight + t.weight) : .5); t.y -= y * k; s.x += x * (k = 1 - k); s.y += y * k; @@ -6342,13 +6364,21 @@ if (!arguments.length) return alpha; x = +x; if (alpha) { - if (x > 0) alpha = x; else alpha = 0; + if (x > 0) { + alpha = x; + } else { + timer.c = null, timer.t = NaN, timer = null; + event.end({ + type: "end", + alpha: alpha = 0 + }); + } } else if (x > 0) { event.start({ type: "start", alpha: alpha = x }); - d3.timer(force.tick); + timer = d3_timer(force.tick); } return force; }; @@ -6602,7 +6632,7 @@ function pie(data) { var n = data.length, values = data.map(function(d, i) { return +value.call(pie, d, i); - }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), k = (da - n * pa) / d3.sum(values), index = d3.range(n), arcs = [], v; + }), a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle), da = (typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - a, p = Math.min(Math.abs(da) / n, +(typeof padAngle === "function" ? padAngle.apply(this, arguments) : padAngle)), pa = p * (da < 0 ? -1 : 1), sum = d3.sum(values), k = sum ? (da - n * pa) / sum : 0, index = d3.range(n), arcs = [], v; if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) { return values[j] - values[i]; } : function(i, j) { @@ -7315,10 +7345,8 @@ } function treemap(d) { var nodes = stickies || hierarchy(d), root = nodes[0]; - root.x = 0; - root.y = 0; - root.dx = size[0]; - root.dy = size[1]; + root.x = root.y = 0; + if (root.value) root.dx = size[0], root.dy = size[1]; else root.dx = root.dy = 0; if (stickies) hierarchy.revalue(root); scale([ root ], root.dx * root.dy / root.value); (stickies ? stickify : squarify)(root); @@ -7538,7 +7566,9 @@ return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp"); } function d3_scale_linearNice(domain, m) { - return d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + d3_scale_nice(domain, d3_scale_niceStep(d3_scale_linearTickRange(domain, m)[2])); + return domain; } function d3_scale_linearTickRange(domain, m) { if (m == null) m = 10; @@ -7640,10 +7670,11 @@ scale.tickFormat = function(n, format) { if (!arguments.length) return d3_scale_logFormat; if (arguments.length < 2) format = d3_scale_logFormat; else if (typeof format !== "function") format = d3.format(format); - var k = Math.max(.1, n / scale.ticks().length), f = positive ? (e = 1e-12, Math.ceil) : (e = -1e-12, - Math.floor), e; + var k = Math.max(1, base * n / scale.ticks().length); return function(d) { - return d / pow(f(log(d) + e)) <= k ? format(d) : ""; + var i = d / pow(Math.round(log(d))); + if (i * base < base - .5) i *= base; + return i <= k ? format(d) : ""; }; }; scale.copy = function() { @@ -7982,11 +8013,16 @@ } else { x2 = y2 = 0; } - if ((rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { + if (da > ε && (rc = Math.min(Math.abs(r1 - r0) / 2, +cornerRadius.apply(this, arguments))) > .001) { cr = r0 < r1 ^ cw ? 0 : 1; - var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + var rc1 = rc, rc0 = rc; + if (da < π) { + var oc = x3 == null ? [ x2, y2 ] : x1 == null ? [ x0, y0 ] : d3_geom_polygonIntersect([ x0, y0 ], [ x3, y3 ], [ x1, y1 ], [ x2, y2 ]), ax = x0 - oc[0], ay = y0 - oc[1], bx = x1 - oc[0], by = y1 - oc[1], kc = 1 / Math.sin(Math.acos((ax * bx + ay * by) / (Math.sqrt(ax * ax + ay * ay) * Math.sqrt(bx * bx + by * by))) / 2), lc = Math.sqrt(oc[0] * oc[0] + oc[1] * oc[1]); + rc0 = Math.min(rc, (r0 - lc) / (kc - 1)); + rc1 = Math.min(rc, (r1 - lc) / (kc + 1)); + } if (x1 != null) { - var rc1 = Math.min(rc, (r1 - lc) / (kc + 1)), t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); + var t30 = d3_svg_arcCornerTangents(x3 == null ? [ x2, y2 ] : [ x3, y3 ], [ x0, y0 ], r1, rc1, cw), t12 = d3_svg_arcCornerTangents([ x1, y1 ], [ x2, y2 ], r1, rc1, cw); if (rc === rc1) { path.push("M", t30[0], "A", rc1, ",", rc1, " 0 0,", cr, " ", t30[1], "A", r1, ",", r1, " 0 ", 1 - cw ^ d3_svg_arcSweep(t30[1][0], t30[1][1], t12[1][0], t12[1][1]), ",", cw, " ", t12[1], "A", rc1, ",", rc1, " 0 0,", cr, " ", t12[0]); } else { @@ -7996,7 +8032,7 @@ path.push("M", x0, ",", y0); } if (x3 != null) { - var rc0 = Math.min(rc, (r0 - lc) / (kc - 1)), t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); + var t03 = d3_svg_arcCornerTangents([ x0, y0 ], [ x3, y3 ], r0, -rc0, cw), t21 = d3_svg_arcCornerTangents([ x2, y2 ], x1 == null ? [ x0, y0 ] : [ x1, y1 ], r0, -rc0, cw); if (rc === rc0) { path.push("L", t21[0], "A", rc0, ",", rc0, " 0 0,", cr, " ", t21[1], "A", r0, ",", r0, " 0 ", cw ^ d3_svg_arcSweep(t21[1][0], t21[1][1], t03[1][0], t03[1][1]), ",", 1 - cw, " ", t03[1], "A", rc0, ",", rc0, " 0 0,", cr, " ", t03[0]); } else { @@ -8078,7 +8114,7 @@ return (x0 - x1) * y0 - (y0 - y1) * x0 > 0 ? 0 : 1; } function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) { - var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(r * r * d2 - D * D), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; + var x01 = p0[0] - p1[0], y01 = p0[1] - p1[1], lo = (cw ? rc : -rc) / Math.sqrt(x01 * x01 + y01 * y01), ox = lo * y01, oy = -lo * x01, x1 = p0[0] + ox, y1 = p0[1] + oy, x2 = p1[0] + ox, y2 = p1[1] + oy, x3 = (x1 + x2) / 2, y3 = (y1 + y2) / 2, dx = x2 - x1, dy = y2 - y1, d2 = dx * dx + dy * dy, r = r1 - rc, D = x1 * y2 - x2 * y1, d = (dy < 0 ? -1 : 1) * Math.sqrt(Math.max(0, r * r * d2 - D * D)), cx0 = (D * dy - dx * d) / d2, cy0 = (-D * dx - dy * d) / d2, cx1 = (D * dy + dx * d) / d2, cy1 = (-D * dx + dy * d) / d2, dx0 = cx0 - x3, dy0 = cy0 - y3, dx1 = cx1 - x3, dy1 = cy1 - y3; if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) cx0 = cx1, cy0 = cy1; return [ [ cx0 - ox, cy0 - oy ], [ cx0 * r1 / r, cy0 * r1 / r ] ]; } @@ -8150,10 +8186,10 @@ value.closed = /-closed$/.test(key); }); function d3_svg_lineLinear(points) { - return points.join("L"); + return points.length > 1 ? points.join("L") : points + "Z"; } function d3_svg_lineLinearClosed(points) { - return d3_svg_lineLinear(points) + "Z"; + return points.join("L") + "Z"; } function d3_svg_lineStep(points) { var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ]; @@ -8175,7 +8211,7 @@ return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, -1), d3_svg_lineCardinalTangents(points, tension)); } function d3_svg_lineCardinalClosed(points, tension) { - return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), + return points.length < 3 ? d3_svg_lineLinearClosed(points) : points[0] + d3_svg_lineHermite((points.push(points[0]), points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension)); } function d3_svg_lineCardinal(points, tension) { @@ -8611,9 +8647,11 @@ var d3_selection_interrupt = d3_selection_interruptNS(d3_transitionNamespace()); function d3_selection_interruptNS(ns) { return function() { - var lock, active; - if ((lock = this[ns]) && (active = lock[lock.active])) { - if (--lock.count) delete lock[lock.active]; else delete this[ns]; + var lock, activeId, active; + if ((lock = this[ns]) && (active = lock[activeId = lock.active])) { + active.timer.c = null; + active.timer.t = NaN; + if (--lock.count) delete lock[activeId]; else delete this[ns]; lock.active += .5; active.event && active.event.interrupt.call(this, this.__data__, active.index); } @@ -8868,12 +8906,68 @@ var lock = node[ns] || (node[ns] = { active: 0, count: 0 - }), transition = lock[id]; + }), transition = lock[id], time, timer, duration, ease, tweens; + function schedule(elapsed) { + var delay = transition.delay; + timer.t = delay + time; + if (delay <= elapsed) return start(elapsed - delay); + timer.c = start; + } + function start(elapsed) { + var activeId = lock.active, active = lock[activeId]; + if (active) { + active.timer.c = null; + active.timer.t = NaN; + --lock.count; + delete lock[activeId]; + active.event && active.event.interrupt.call(node, node.__data__, active.index); + } + for (var cancelId in lock) { + if (+cancelId < id) { + var cancel = lock[cancelId]; + cancel.timer.c = null; + cancel.timer.t = NaN; + --lock.count; + delete lock[cancelId]; + } + } + timer.c = tick; + d3_timer(function() { + if (timer.c && tick(elapsed || 1)) { + timer.c = null; + timer.t = NaN; + } + return 1; + }, 0, time); + lock.active = id; + transition.event && transition.event.start.call(node, node.__data__, i); + tweens = []; + transition.tween.forEach(function(key, value) { + if (value = value.call(node, node.__data__, i)) { + tweens.push(value); + } + }); + ease = transition.ease; + duration = transition.duration; + } + function tick(elapsed) { + var t = elapsed / duration, e = ease(t), n = tweens.length; + while (n > 0) { + tweens[--n].call(node, e); + } + if (t >= 1) { + transition.event && transition.event.end.call(node, node.__data__, i); + if (--lock.count) delete lock[id]; else delete node[ns]; + return 1; + } + } if (!transition) { - var time = inherit.time; + time = inherit.time; + timer = d3_timer(schedule, 0, time); transition = lock[id] = { tween: new d3_Map(), time: time, + timer: timer, delay: inherit.delay, duration: inherit.duration, ease: inherit.ease, @@ -8881,49 +8975,6 @@ }; inherit = null; ++lock.count; - d3.timer(function(elapsed) { - var delay = transition.delay, duration, ease, timer = d3_timer_active, tweened = []; - timer.t = delay + time; - if (delay <= elapsed) return start(elapsed - delay); - timer.c = start; - function start(elapsed) { - if (lock.active > id) return stop(); - var active = lock[lock.active]; - if (active) { - --lock.count; - delete lock[lock.active]; - active.event && active.event.interrupt.call(node, node.__data__, active.index); - } - lock.active = id; - transition.event && transition.event.start.call(node, node.__data__, i); - transition.tween.forEach(function(key, value) { - if (value = value.call(node, node.__data__, i)) { - tweened.push(value); - } - }); - ease = transition.ease; - duration = transition.duration; - d3.timer(function() { - timer.c = tick(elapsed || 1) ? d3_true : tick; - return 1; - }, 0, time); - } - function tick(elapsed) { - if (lock.active !== id) return 1; - var t = elapsed / duration, e = ease(t), n = tweened.length; - while (n > 0) { - tweened[--n].call(node, e); - } - if (t >= 1) { - transition.event && transition.event.end.call(node, node.__data__, i); - return stop(); - } - } - function stop() { - if (--lock.count) delete lock[id]; else delete node[ns]; - return 1; - } - }, 0, time); } } d3.svg.axis = function() { @@ -8977,7 +9028,7 @@ }; axis.ticks = function() { if (!arguments.length) return tickArguments_; - tickArguments_ = arguments; + tickArguments_ = d3_array(arguments); return axis; }; axis.tickValues = function(x) { @@ -9499,6 +9550,5 @@ d3.xml = d3_xhrType(function(request) { return request.responseXML; }); - if (typeof define === "function" && define.amd) define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; - this.d3 = d3; + if (typeof define === "function" && define.amd) this.d3 = d3, define(d3); else if (typeof module === "object" && module.exports) module.exports = d3; else this.d3 = d3; }(); \ No newline at end of file diff --git a/ennstatus/static/js/d3/d3.min.js b/ennstatus/static/js/d3/d3.min.js --- a/ennstatus/static/js/d3/d3.min.js +++ b/ennstatus/static/js/d3/d3.min.js @@ -1,5 +1,5 @@ -!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:0/0}function r(n){return null===n?0/0:+n}function u(n){return!isNaN(n)}function i(n){return{left:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)<0?r=i+1:u=i}return r},right:function(t,e,r,u){for(arguments.length<3&&(r=0),arguments.length<4&&(u=t.length);u>r;){var i=r+u>>>1;n(t[i],e)>0?u=i:r=i+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function c(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function l(){this._=Object.create(null)}function s(n){return(n+="")===pa||n[0]===va?va+n:n}function f(n){return(n+="")[0]===va?n.slice(1):n}function h(n){return s(n)in this._}function g(n){return(n=s(n))in this._&&delete this._[n]}function p(){var n=[];for(var t in this._)n.push(f(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function m(){this._=Object.create(null)}function y(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=da.length;r>e;++e){var u=da[e]+t;if(u in n)return u}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,u=-1,i=r.length;++ue;e++)for(var u,i=n[e],o=0,a=i.length;a>o;o++)(u=i[o])&&t(u,o,e);return n}function Z(n){return ya(n,Sa),n}function V(n){var t,e;return function(r,u,i){var o,a=n[i].update,c=a.length;for(i!=e&&(e=i,t=0),u>=t&&(t=u+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var l=ka.get(n);return l&&(n=l,c=B),a?t?u:r:t?b:i}function $(n,t){return function(e){var r=ta.event;ta.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ta.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Aa,u="click"+r,i=ta.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ea&&(Ea="onselectstart"in e?!1:x(e.style,"userSelect")),Ea){var o=n(e).style,a=o[Ea];o[Ea]="none"}return function(n){if(i.on(r,null),Ea&&(o[Ea]=a),n){var t=function(){i.on(u,null)};i.on(u,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var u=r.createSVGPoint();if(0>Na){var i=t(n);if(i.scrollX||i.scrollY){r=ta.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Na=!(o.f||o.e),r.remove()}}return Na?(u.x=e.pageX,u.y=e.pageY):(u.x=e.clientX,u.y=e.clientY),u=u.matrixTransform(n.getScreenCTM().inverse()),[u.x,u.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ta.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nt(n){return n>1?0:-1>n?qa:Math.acos(n)}function tt(n){return n>1?Ra:-1>n?-Ra:Math.asin(n)}function et(n){return((n=Math.exp(n))-1/n)/2}function rt(n){return((n=Math.exp(n))+1/n)/2}function ut(n){return((n=Math.exp(2*n))-1)/(n+1)}function it(n){return(n=Math.sin(n/2))*n}function ot(){}function at(n,t,e){return this instanceof at?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof at?new at(n.h,n.s,n.l):bt(""+n,_t,at):new at(n,t,e)}function ct(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?i+(o-i)*n/60:180>n?o:240>n?i+(o-i)*(240-n)/60:i}function u(n){return Math.round(255*r(n))}var i,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,i=2*e-o,new mt(u(n+120),u(n),u(n-120))}function lt(n,t,e){return this instanceof lt?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof lt?new lt(n.h,n.c,n.l):n instanceof ft?gt(n.l,n.a,n.b):gt((n=wt((n=ta.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new lt(n,t,e)}function st(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new ft(e,Math.cos(n*=Da)*t,Math.sin(n)*t)}function ft(n,t,e){return this instanceof ft?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof ft?new ft(n.l,n.a,n.b):n instanceof lt?st(n.h,n.c,n.l):wt((n=mt(n)).r,n.g,n.b):new ft(n,t,e)}function ht(n,t,e){var r=(n+16)/116,u=r+t/500,i=r-e/200;return u=pt(u)*Xa,r=pt(r)*$a,i=pt(i)*Ba,new mt(dt(3.2404542*u-1.5371385*r-.4985314*i),dt(-.969266*u+1.8760108*r+.041556*i),dt(.0556434*u-.2040259*r+1.0572252*i))}function gt(n,t,e){return n>0?new lt(Math.atan2(e,t)*Pa,Math.sqrt(t*t+e*e),n):new lt(0/0,0/0,n)}function pt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function vt(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function dt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mt(n,t,e){return this instanceof mt?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mt?new mt(n.r,n.g,n.b):bt(""+n,mt,ct):new mt(n,t,e)}function yt(n){return new mt(n>>16,n>>8&255,255&n)}function Mt(n){return yt(n)+""}function xt(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function bt(n,t,e){n=n.toLowerCase();var r,u,i,o=0,a=0,c=0;if(r=/([a-z]+)\((.*)\)/.exec(n))switch(u=r[2].split(","),r[1]){case"hsl":return e(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);case"rgb":return t(kt(u[0]),kt(u[1]),kt(u[2]))}return(i=Ga.get(n))?t(i.r,i.g,i.b):(null==n||"#"!==n.charAt(0)||isNaN(i=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&i)>>4,o=o>>4|o,a=240&i,a=a>>4|a,c=15&i,c=c<<4|c):7===n.length&&(o=(16711680&i)>>16,a=(65280&i)>>8,c=255&i)),t(o,a,c))}function _t(n,t,e){var r,u,i=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-i,c=(o+i)/2;return a?(u=.5>c?a/(o+i):a/(2-o-i),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=0/0,u=c>0&&1>c?0:r),new at(r,u,c)}function wt(n,t,e){n=St(n),t=St(t),e=St(e);var r=vt((.4124564*n+.3575761*t+.1804375*e)/Xa),u=vt((.2126729*n+.7151522*t+.072175*e)/$a),i=vt((.0193339*n+.119192*t+.9503041*e)/Ba);return ft(116*u-16,500*(r-u),200*(u-i))}function St(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function kt(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function Et(n){return"function"==typeof n?n:function(){return n}}function At(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Nt(t,e,n,r)}}function Nt(n,t,e,r){function u(){var n,t=c.status;if(!t&&zt(c)||t>=200&&300>t||304===t){try{n=e.call(i,c)}catch(r){return void o.error.call(i,r)}o.load.call(i,n)}else o.error.call(i,c)}var i={},o=ta.dispatch("beforesend","progress","load","error"),a={},c=new XMLHttpRequest,l=null;return!this.XDomainRequest||"withCredentials"in c||!/^(http(s)?:)?\/\//.test(n)||(c=new XDomainRequest),"onload"in c?c.onload=c.onerror=u:c.onreadystatechange=function(){c.readyState>3&&u()},c.onprogress=function(n){var t=ta.event;ta.event=n;try{o.progress.call(i,c)}finally{ta.event=t}},i.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",i)},i.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",i):t},i.responseType=function(n){return arguments.length?(l=n,i):l},i.response=function(n){return e=n,i},["get","post"].forEach(function(n){i[n]=function(){return i.send.apply(i,[n].concat(ra(arguments)))}}),i.send=function(e,r,u){if(2===arguments.length&&"function"==typeof r&&(u=r,r=null),c.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),c.setRequestHeader)for(var s in a)c.setRequestHeader(s,a[s]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=u&&i.on("error",u).on("load",function(n){u(null,n)}),o.beforesend.call(i,c),c.send(null==r?null:r),i},i.abort=function(){return c.abort(),i},ta.rebind(i,o,"on"),null==r?i:i.get(Ct(r))}function Ct(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function zt(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qt(){var n=Lt(),t=Tt()-n;t>24?(isFinite(t)&&(clearTimeout(tc),tc=setTimeout(qt,t)),nc=0):(nc=1,rc(qt))}function Lt(){var n=Date.now();for(ec=Ka;ec;)n>=ec.t&&(ec.f=ec.c(n-ec.t)),ec=ec.n;return n}function Tt(){for(var n,t=Ka,e=1/0;t;)t.f?t=n?n.n=t.n:Ka=t.n:(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function Pt(n){var t=n.decimal,e=n.thousands,r=n.grouping,u=n.currency,i=r&&e?function(n,t){for(var u=n.length,i=[],o=0,a=r[0],c=0;u>0&&a>0&&(c+a+1>t&&(a=Math.max(1,t-c)),i.push(n.substring(u-=a,u+a)),!((c+=a+1)>t));)a=r[o=(o+1)%r.length];return i.reverse().join(e)}:y;return function(n){var e=ic.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",c=e[4]||"",l=e[5],s=+e[6],f=e[7],h=e[8],g=e[9],p=1,v="",d="",m=!1,y=!0;switch(h&&(h=+h.substring(1)),(l||"0"===r&&"="===o)&&(l=r="0",o="="),g){case"n":f=!0,g="g";break;case"%":p=100,d="%",g="f";break;case"p":p=100,d="%",g="r";break;case"b":case"o":case"x":case"X":"#"===c&&(v="0"+g.toLowerCase());case"c":y=!1;case"d":m=!0,h=0;break;case"s":p=-1,g="r"}"$"===c&&(v=u[0],d=u[1]),"r"!=g||h||(g="g"),null!=h&&("g"==g?h=Math.max(1,Math.min(21,h)):("e"==g||"f"==g)&&(h=Math.max(0,Math.min(20,h)))),g=oc.get(g)||Ut;var M=l&&f;return function(n){var e=d;if(m&&n%1)return"";var u=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>p){var c=ta.formatPrefix(n,h);n=c.scale(n),e=c.symbol+d}else n*=p;n=g(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=y?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!l&&f&&(x=i(x,1/0));var S=v.length+x.length+b.length+(M?0:u.length),k=s>S?new Array(S=s-S+1).join(r):"";return M&&(x=i(k+x,k.length?s-b.length:1/0)),u+=v,n=x+b,("<"===o?u+n+k:">"===o?k+u+n:"^"===o?k.substring(0,S>>=1)+u+n+k.substring(S):u+(M?n:k+n))+e}}}function Ut(n){return n+""}function jt(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Ft(n,t,e){function r(t){var e=n(t),r=i(e,1);return r-t>t-e?e:r}function u(e){return t(e=n(new cc(e-1)),1),e}function i(n,e){return t(n=new cc(+n),e),n}function o(n,r,i){var o=u(n),a=[];if(i>1)for(;r>o;)e(o)%i||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{cc=jt;var r=new jt;return r._=n,o(r,t,e)}finally{cc=Date}}n.floor=n,n.round=r,n.ceil=u,n.offset=i,n.range=o;var c=n.utc=Ht(n);return c.floor=c,c.round=Ht(r),c.ceil=Ht(u),c.offset=Ht(i),c.range=a,n}function Ht(n){return function(t,e){try{cc=jt;var r=new jt;return r._=t,n(r,e)._}finally{cc=Date}}}function Ot(n){function t(n){function t(t){for(var e,u,i,o=[],a=-1,c=0;++aa;){if(r>=l)return-1;if(u=t.charCodeAt(a++),37===u){if(o=t.charAt(a++),i=C[o in sc?t.charAt(a++):o],!i||(r=i(n,e,r))<0)return-1}else if(u!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){E.lastIndex=0;var r=E.exec(t.slice(e));return r?(n.m=A.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,N.c.toString(),t,r)}function c(n,t,r){return e(n,N.x.toString(),t,r)}function l(n,t,r){return e(n,N.X.toString(),t,r)}function s(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var f=n.dateTime,h=n.date,g=n.time,p=n.periods,v=n.days,d=n.shortDays,m=n.months,y=n.shortMonths;t.utc=function(n){function e(n){try{cc=jt;var t=new cc;return t._=n,r(t)}finally{cc=Date}}var r=t(n);return e.parse=function(n){try{cc=jt;var t=r.parse(n);return t&&t._}finally{cc=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ae;var M=ta.map(),x=Yt(v),b=Zt(v),_=Yt(d),w=Zt(d),S=Yt(m),k=Zt(m),E=Yt(y),A=Zt(y);p.forEach(function(n,t){M.set(n.toLowerCase(),t)});var N={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return y[n.getMonth()]},B:function(n){return m[n.getMonth()]},c:t(f),d:function(n,t){return It(n.getDate(),t,2)},e:function(n,t){return It(n.getDate(),t,2)},H:function(n,t){return It(n.getHours(),t,2)},I:function(n,t){return It(n.getHours()%12||12,t,2)},j:function(n,t){return It(1+ac.dayOfYear(n),t,3)},L:function(n,t){return It(n.getMilliseconds(),t,3)},m:function(n,t){return It(n.getMonth()+1,t,2)},M:function(n,t){return It(n.getMinutes(),t,2)},p:function(n){return p[+(n.getHours()>=12)]},S:function(n,t){return It(n.getSeconds(),t,2)},U:function(n,t){return It(ac.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return It(ac.mondayOfYear(n),t,2)},x:t(h),X:t(g),y:function(n,t){return It(n.getFullYear()%100,t,2)},Y:function(n,t){return It(n.getFullYear()%1e4,t,4)},Z:ie,"%":function(){return"%"}},C={a:r,A:u,b:i,B:o,c:a,d:Qt,e:Qt,H:te,I:te,j:ne,L:ue,m:Kt,M:ee,p:s,S:re,U:Xt,w:Vt,W:$t,x:c,X:l,y:Wt,Y:Bt,Z:Jt,"%":oe};return t}function It(n,t,e){var r=0>n?"-":"",u=(r?-n:n)+"",i=u.length;return r+(e>i?new Array(e-i+1).join(t)+u:u)}function Yt(n){return new RegExp("^(?:"+n.map(ta.requote).join("|")+")","i")}function Zt(n){for(var t=new l,e=-1,r=n.length;++e68?1900:2e3)}function Kt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Qt(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function ne(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function te(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function ee(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function re(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ue(n,t,e){fc.lastIndex=0;var r=fc.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ie(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=ga(t)/60|0,u=ga(t)%60;return e+It(r,"0",2)+It(u,"0",2)}function oe(n,t,e){hc.lastIndex=0;var r=hc.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ae(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,c=Math.cos(t),l=Math.sin(t),s=i*l,f=u*c+s*Math.cos(a),h=s*o*Math.sin(a);yc.add(Math.atan2(h,f)),r=n,u=c,i=l}var t,e,r,u,i;Mc.point=function(o,a){Mc.point=n,r=(t=o)*Da,u=Math.cos(a=(e=a)*Da/2+qa/4),i=Math.sin(a)},Mc.lineEnd=function(){n(t,e)}}function pe(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function ve(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function de(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function me(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function ye(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function Me(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function xe(n){return[Math.atan2(n[1],n[0]),tt(n[2])]}function be(n,t){return ga(n[0]-t[0])a;++a)u.point((e=n[a])[0],e[1]);return void u.lineEnd()}var c=new qe(e,n,null,!0),l=new qe(e,null,c,!1);c.o=l,i.push(c),o.push(l),c=new qe(r,n,null,!1),l=new qe(r,null,c,!0),c.o=l,i.push(c),o.push(l)}}),o.sort(t),ze(i),ze(o),i.length){for(var a=0,c=e,l=o.length;l>a;++a)o[a].e=c=!c;for(var s,f,h=i[0];;){for(var g=h,p=!0;g.v;)if((g=g.n)===h)return;s=g.z,u.lineStart();do{if(g.v=g.o.v=!0,g.e){if(p)for(var a=0,l=s.length;l>a;++a)u.point((f=s[a])[0],f[1]);else r(g.x,g.n.x,1,u);g=g.n}else{if(p){s=g.p.z;for(var a=s.length-1;a>=0;--a)u.point((f=s[a])[0],f[1])}else r(g.x,g.p.x,-1,u);g=g.p}g=g.o,s=g.z,p=!p}while(!g.v);u.lineEnd()}}}function ze(n){if(t=n.length){for(var t,e,r=0,u=n[0];++r0){for(b||(i.polygonStart(),b=!0),i.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),g.push(e.filter(Te))}var g,p,v,d=t(i),m=u.invert(r[0],r[1]),y={point:o,lineStart:c,lineEnd:l,polygonStart:function(){y.point=s,y.lineStart=f,y.lineEnd=h,g=[],p=[]},polygonEnd:function(){y.point=o,y.lineStart=c,y.lineEnd=l,g=ta.merge(g);var n=Fe(m,p);g.length?(b||(i.polygonStart(),b=!0),Ce(g,De,n,e,i)):n&&(b||(i.polygonStart(),b=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),b&&(i.polygonEnd(),b=!1),g=p=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},M=Re(),x=t(M),b=!1;return y}}function Te(n){return n.length>1}function Re(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function De(n,t){return((n=n.x)[0]<0?n[1]-Ra-Ca:Ra-n[1])-((t=t.x)[0]<0?t[1]-Ra-Ca:Ra-t[1])}function Pe(n){var t,e=0/0,r=0/0,u=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(i,o){var a=i>0?qa:-qa,c=ga(i-e);ga(c-qa)0?Ra:-Ra),n.point(u,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(i,r),t=0):u!==a&&c>=qa&&(ga(e-u)Ca?Math.atan((Math.sin(t)*(i=Math.cos(r))*Math.sin(e)-Math.sin(r)*(u=Math.cos(t))*Math.sin(n))/(u*i*o)):(t+r)/2}function je(n,t,e,r){var u;if(null==n)u=e*Ra,r.point(-qa,u),r.point(0,u),r.point(qa,u),r.point(qa,0),r.point(qa,-u),r.point(0,-u),r.point(-qa,-u),r.point(-qa,0),r.point(-qa,u);else if(ga(n[0]-t[0])>Ca){var i=n[0]a;++a){var l=t[a],s=l.length;if(s)for(var f=l[0],h=f[0],g=f[1]/2+qa/4,p=Math.sin(g),v=Math.cos(g),d=1;;){d===s&&(d=0),n=l[d];var m=n[0],y=n[1]/2+qa/4,M=Math.sin(y),x=Math.cos(y),b=m-h,_=b>=0?1:-1,w=_*b,S=w>qa,k=p*M;if(yc.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),i+=S?b+_*La:b,S^h>=e^m>=e){var E=de(pe(f),pe(n));Me(E);var A=de(u,E);Me(A);var N=(S^b>=0?-1:1)*tt(A[2]);(r>N||r===N&&(E[0]||E[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=m,p=M,v=x,f=n}}return(-Ca>i||Ca>i&&0>yc)^1&o}function He(n){function t(n,t){return Math.cos(n)*Math.cos(t)>i}function e(n){var e,i,c,l,s;return{lineStart:function(){l=c=!1,s=1},point:function(f,h){var g,p=[f,h],v=t(f,h),d=o?v?0:u(f,h):v?u(f+(0>f?qa:-qa),h):0;if(!e&&(l=c=v)&&n.lineStart(),v!==c&&(g=r(e,p),(be(e,g)||be(p,g))&&(p[0]+=Ca,p[1]+=Ca,v=t(p[0],p[1]))),v!==c)s=0,v?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(a&&e&&o^v){var m;d&i||!(m=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(m[0][0],m[0][1]),n.point(m[1][0],m[1][1]),n.lineEnd()):(n.point(m[1][0],m[1][1]),n.lineEnd(),n.lineStart(),n.point(m[0][0],m[0][1])))}!v||e&&be(e,p)||n.point(p[0],p[1]),e=p,c=v,i=d},lineEnd:function(){c&&n.lineEnd(),e=null},clean:function(){return s|(l&&c)<<1}}}function r(n,t,e){var r=pe(n),u=pe(t),o=[1,0,0],a=de(r,u),c=ve(a,a),l=a[0],s=c-l*l;if(!s)return!e&&n;var f=i*c/s,h=-i*l/s,g=de(o,a),p=ye(o,f),v=ye(a,h);me(p,v);var d=g,m=ve(p,d),y=ve(d,d),M=m*m-y*(ve(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=ye(d,(-m-x)/y);if(me(b,p),b=xe(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],E=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=ga(A-qa)A;if(!N&&k>E&&(_=k,k=E,E=_),C?N?k+E>0^b[1]<(ga(b[0]-w)qa^(w<=b[0]&&b[0]<=S)){var z=ye(d,(-m+x)/y);return me(z,p),[b,xe(z)]}}}function u(t,e){var r=o?n:qa-n,u=0;return-r>t?u|=1:t>r&&(u|=2),-r>e?u|=4:e>r&&(u|=8),u}var i=Math.cos(n),o=i>0,a=ga(i)>Ca,c=gr(n,6*Da);return Le(t,e,c,o?[0,-n]:[-qa,n-qa])}function Oe(n,t,e,r){return function(u){var i,o=u.a,a=u.b,c=o.x,l=o.y,s=a.x,f=a.y,h=0,g=1,p=s-c,v=f-l;if(i=n-c,p||!(i>0)){if(i/=p,0>p){if(h>i)return;g>i&&(g=i)}else if(p>0){if(i>g)return;i>h&&(h=i)}if(i=e-c,p||!(0>i)){if(i/=p,0>p){if(i>g)return;i>h&&(h=i)}else if(p>0){if(h>i)return;g>i&&(g=i)}if(i=t-l,v||!(i>0)){if(i/=v,0>v){if(h>i)return;g>i&&(g=i)}else if(v>0){if(i>g)return;i>h&&(h=i)}if(i=r-l,v||!(0>i)){if(i/=v,0>v){if(i>g)return;i>h&&(h=i)}else if(v>0){if(h>i)return;g>i&&(g=i)}return h>0&&(u.a={x:c+h*p,y:l+h*v}),1>g&&(u.b={x:c+g*p,y:l+g*v}),u}}}}}}function Ie(n,t,e,r){function u(r,u){return ga(r[0]-n)0?0:3:ga(r[0]-e)0?2:1:ga(r[1]-t)0?1:0:u>0?3:2}function i(n,t){return o(n.x,t.x)}function o(n,t){var e=u(n,1),r=u(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function c(n){for(var t=0,e=d.length,r=n[1],u=0;e>u;++u)for(var i,o=1,a=d[u],c=a.length,l=a[0];c>o;++o)i=a[o],l[1]<=r?i[1]>r&&Q(l,i,n)>0&&++t:i[1]<=r&&Q(l,i,n)<0&&--t,l=i;return 0!==t}function l(i,a,c,l){var s=0,f=0;if(null==i||(s=u(i,c))!==(f=u(a,c))||o(i,a)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(a[0],a[1])}function s(u,i){return u>=n&&e>=u&&i>=t&&r>=i}function f(n,t){s(n,t)&&a.point(n,t)}function h(){C.point=p,d&&d.push(m=[]),S=!0,w=!1,b=_=0/0}function g(){v&&(p(y,M),x&&w&&A.rejoin(),v.push(A.buffer())),C.point=f,w&&a.lineEnd()}function p(n,t){n=Math.max(-Tc,Math.min(Tc,n)),t=Math.max(-Tc,Math.min(Tc,t));var e=s(n,t);if(d&&m.push([n,t]),S)y=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};N(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,m,y,M,x,b,_,w,S,k,E=a,A=Re(),N=Oe(n,t,e,r),C={point:f,lineStart:h,lineEnd:g,polygonStart:function(){a=A,v=[],d=[],k=!0},polygonEnd:function(){a=E,v=ta.merge(v);var t=c([n,r]),e=k&&t,u=v.length;(e||u)&&(a.polygonStart(),e&&(a.lineStart(),l(null,null,1,a),a.lineEnd()),u&&Ce(v,i,t,l,a),a.polygonEnd()),v=d=m=null}};return C}}function Ye(n){var t=0,e=qa/3,r=ir(n),u=r(t,e);return u.parallels=function(n){return arguments.length?r(t=n[0]*qa/180,e=n[1]*qa/180):[t/qa*180,e/qa*180]},u}function Ze(n,t){function e(n,t){var e=Math.sqrt(i-2*u*Math.sin(t))/u;return[e*Math.sin(n*=u),o-e*Math.cos(n)]}var r=Math.sin(n),u=(r+Math.sin(t))/2,i=1+r*(2*u-r),o=Math.sqrt(i)/u;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/u,tt((i-(n*n+e*e)*u*u)/(2*u))]},e}function Ve(){function n(n,t){Dc+=u*n-r*t,r=n,u=t}var t,e,r,u;Hc.point=function(i,o){Hc.point=n,t=r=i,e=u=o},Hc.lineEnd=function(){n(t,e)}}function Xe(n,t){Pc>n&&(Pc=n),n>jc&&(jc=n),Uc>t&&(Uc=t),t>Fc&&(Fc=t)}function $e(){function n(n,t){o.push("M",n,",",t,i)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function u(){o.push("Z")}var i=Be(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return i=Be(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Be(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function We(n,t){_c+=n,wc+=t,++Sc}function Je(){function n(n,r){var u=n-t,i=r-e,o=Math.sqrt(u*u+i*i);kc+=o*(t+n)/2,Ec+=o*(e+r)/2,Ac+=o,We(t=n,e=r)}var t,e;Ic.point=function(r,u){Ic.point=n,We(t=r,e=u)}}function Ge(){Ic.point=We}function Ke(){function n(n,t){var e=n-r,i=t-u,o=Math.sqrt(e*e+i*i);kc+=o*(r+n)/2,Ec+=o*(u+t)/2,Ac+=o,o=u*n-r*t,Nc+=o*(r+n),Cc+=o*(u+t),zc+=3*o,We(r=n,u=t)}var t,e,r,u;Ic.point=function(i,o){Ic.point=n,We(t=r=i,e=u=o)},Ic.lineEnd=function(){n(t,e)}}function Qe(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,La)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function u(){a.point=t}function i(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:u,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=u,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function nr(n){function t(n){return(a?r:e)(n)}function e(t){return rr(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=0/0,S.point=i,t.lineStart()}function i(e,r){var i=pe([e,r]),o=n(e,r);u(M,x,y,b,_,w,M=o[0],x=o[1],y=e,b=i[0],_=i[1],w=i[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function c(){r(),S.point=l,S.lineEnd=s}function l(n,t){i(f=n,h=t),g=M,p=x,v=b,d=_,m=w,S.point=i}function s(){u(M,x,y,b,_,w,g,p,f,v,d,m,a,t),S.lineEnd=o,o()}var f,h,g,p,v,d,m,y,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c -},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function u(t,e,r,a,c,l,s,f,h,g,p,v,d,m){var y=s-t,M=f-e,x=y*y+M*M;if(x>4*i&&d--){var b=a+g,_=c+p,w=l+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),E=ga(ga(w)-1)i||ga((y*z+M*q)/x-.5)>.3||o>a*g+c*p+l*v)&&(u(t,e,r,a,c,l,N,C,E,b/=S,_/=S,w,d,m),m.point(N,C),u(N,C,E,b,_,w,s,f,h,g,p,v,d,m))}}var i=.5,o=Math.cos(30*Da),a=16;return t.precision=function(n){return arguments.length?(a=(i=n*n)>0&&16,t):Math.sqrt(i)},t}function tr(n){var t=nr(function(t,e){return n([t*Pa,e*Pa])});return function(n){return or(t(n))}}function er(n){this.stream=n}function rr(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function ur(n){return ir(function(){return n})()}function ir(n){function t(n){return n=a(n[0]*Da,n[1]*Da),[n[0]*h+c,l-n[1]*h]}function e(n){return n=a.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Pa,n[1]*Pa]}function r(){a=Ae(o=lr(m,M,x),i);var n=i(v,d);return c=g-n[0]*h,l=p+n[1]*h,u()}function u(){return s&&(s.valid=!1,s=null),t}var i,o,a,c,l,s,f=nr(function(n,t){return n=i(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,v=0,d=0,m=0,M=0,x=0,b=Lc,_=y,w=null,S=null;return t.stream=function(n){return s&&(s.valid=!1),s=or(b(o,f(_(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Lc):He((w=+n)*Da),u()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Ie(n[0][0],n[0][1],n[1][0],n[1][1]):y,u()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(v=n[0]%360*Da,d=n[1]%360*Da,r()):[v*Pa,d*Pa]},t.rotate=function(n){return arguments.length?(m=n[0]%360*Da,M=n[1]%360*Da,x=n.length>2?n[2]%360*Da:0,r()):[m*Pa,M*Pa,x*Pa]},ta.rebind(t,f,"precision"),function(){return i=n.apply(this,arguments),t.invert=i.invert&&e,r()}}function or(n){return rr(n,function(t,e){n.point(t*Da,e*Da)})}function ar(n,t){return[n,t]}function cr(n,t){return[n>qa?n-La:-qa>n?n+La:n,t]}function lr(n,t,e){return n?t||e?Ae(fr(n),hr(t,e)):fr(n):t||e?hr(t,e):cr}function sr(n){return function(t,e){return t+=n,[t>qa?t-La:-qa>t?t+La:t,e]}}function fr(n){var t=sr(n);return t.invert=sr(-n),t}function hr(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+a*u;return[Math.atan2(c*i-s*o,a*r-l*u),tt(s*i+c*o)]}var r=Math.cos(n),u=Math.sin(n),i=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*i-c*o;return[Math.atan2(c*i+l*o,a*r+s*u),tt(s*r-a*u)]},e}function gr(n,t){var e=Math.cos(n),r=Math.sin(n);return function(u,i,o,a){var c=o*t;null!=u?(u=pr(e,u),i=pr(e,i),(o>0?i>u:u>i)&&(u+=o*La)):(u=n+o*La,i=n-.5*c);for(var l,s=u;o>0?s>i:i>s;s-=c)a.point((l=xe([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],l[1])}}function pr(n,t){var e=pe(t);e[0]-=n,Me(e);var r=nt(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ca)%(2*Math.PI)}function vr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function dr(n,t,e){var r=ta.range(n,t-Ca,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function mr(n){return n.source}function yr(n){return n.target}function Mr(n,t,e,r){var u=Math.cos(t),i=Math.sin(t),o=Math.cos(r),a=Math.sin(r),c=u*Math.cos(n),l=u*Math.sin(n),s=o*Math.cos(e),f=o*Math.sin(e),h=2*Math.asin(Math.sqrt(it(r-t)+u*o*it(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,u=e*l+t*f,o=e*i+t*a;return[Math.atan2(u,r)*Pa,Math.atan2(o,Math.sqrt(r*r+u*u))*Pa]}:function(){return[n*Pa,t*Pa]};return p.distance=h,p}function xr(){function n(n,u){var i=Math.sin(u*=Da),o=Math.cos(u),a=ga((n*=Da)-t),c=Math.cos(a);Yc+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*i-e*o*c)*a),e*i+r*o*c),t=n,e=i,r=o}var t,e,r;Zc.point=function(u,i){t=u*Da,e=Math.sin(i*=Da),r=Math.cos(i),Zc.point=n},Zc.lineEnd=function(){Zc.point=Zc.lineEnd=b}}function br(n,t){function e(t,e){var r=Math.cos(t),u=Math.cos(e),i=n(r*u);return[i*u*Math.sin(t),i*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),u=t(r),i=Math.sin(u),o=Math.cos(u);return[Math.atan2(n*i,r*o),Math.asin(r&&e*i/r)]},e}function _r(n,t){function e(n,t){o>0?-Ra+Ca>t&&(t=-Ra+Ca):t>Ra-Ca&&(t=Ra-Ca);var e=o/Math.pow(u(t),i);return[e*Math.sin(i*n),o-e*Math.cos(i*n)]}var r=Math.cos(n),u=function(n){return Math.tan(qa/4+n/2)},i=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(u(t)/u(n)),o=r*Math.pow(u(n),i)/i;return i?(e.invert=function(n,t){var e=o-t,r=K(i)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/i,2*Math.atan(Math.pow(o/r,1/i))-Ra]},e):Sr}function wr(n,t){function e(n,t){var e=i-t;return[e*Math.sin(u*n),i-e*Math.cos(u*n)]}var r=Math.cos(n),u=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),i=r/u+n;return ga(u)u;u++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[u])<=0;)--r;e[r++]=u}return e.slice(0,r)}function zr(n,t){return n[0]-t[0]||n[1]-t[1]}function qr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Lr(n,t,e,r){var u=n[0],i=e[0],o=t[0]-u,a=r[0]-i,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(a*(c-l)-f*(u-i))/(f*o-a*s);return[u+h*o,c+h*s]}function Tr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Rr(){tu(this),this.edge=this.site=this.circle=null}function Dr(n){var t=el.pop()||new Rr;return t.site=n,t}function Pr(n){Xr(n),Qc.remove(n),el.push(n),tu(n)}function Ur(n){var t=n.circle,e=t.x,r=t.cy,u={x:e,y:r},i=n.P,o=n.N,a=[n];Pr(n);for(var c=i;c.circle&&ga(e-c.circle.x)s;++s)l=a[s],c=a[s-1],Kr(l.edge,c.site,l.site,u);c=a[0],l=a[f-1],l.edge=Jr(c.site,l.site,null,u),Vr(c),Vr(l)}function jr(n){for(var t,e,r,u,i=n.x,o=n.y,a=Qc._;a;)if(r=Fr(a,o)-i,r>Ca)a=a.L;else{if(u=i-Hr(a,o),!(u>Ca)){r>-Ca?(t=a.P,e=a):u>-Ca?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var c=Dr(n);if(Qc.insert(t,c),t||e){if(t===e)return Xr(t),e=Dr(t.site),Qc.insert(c,e),c.edge=e.edge=Jr(t.site,c.site),Vr(t),void Vr(e);if(!e)return void(c.edge=Jr(t.site,c.site));Xr(t),Xr(e);var l=t.site,s=l.x,f=l.y,h=n.x-s,g=n.y-f,p=e.site,v=p.x-s,d=p.y-f,m=2*(h*d-g*v),y=h*h+g*g,M=v*v+d*d,x={x:(d*y-g*M)/m+s,y:(h*M-v*y)/m+f};Kr(e.edge,l,p,x),c.edge=Jr(l,n,null,x),e.edge=Jr(n,p,null,x),Vr(t),Vr(e)}}function Fr(n,t){var e=n.site,r=e.x,u=e.y,i=u-t;if(!i)return r;var o=n.P;if(!o)return-1/0;e=o.site;var a=e.x,c=e.y,l=c-t;if(!l)return a;var s=a-r,f=1/i-1/l,h=s/l;return f?(-h+Math.sqrt(h*h-2*f*(s*s/(-2*l)-c+l/2+u-i/2)))/f+r:(r+a)/2}function Hr(n,t){var e=n.N;if(e)return Fr(e,t);var r=n.site;return r.y===t?r.x:1/0}function Or(n){this.site=n,this.edges=[]}function Ir(n){for(var t,e,r,u,i,o,a,c,l,s,f=n[0][0],h=n[1][0],g=n[0][1],p=n[1][1],v=Kc,d=v.length;d--;)if(i=v[d],i&&i.prepare())for(a=i.edges,c=a.length,o=0;c>o;)s=a[o].end(),r=s.x,u=s.y,l=a[++o%c].start(),t=l.x,e=l.y,(ga(r-t)>Ca||ga(u-e)>Ca)&&(a.splice(o,0,new Qr(Gr(i.site,s,ga(r-f)Ca?{x:f,y:ga(t-f)Ca?{x:ga(e-p)Ca?{x:h,y:ga(t-h)Ca?{x:ga(e-g)=-za)){var g=c*c+l*l,p=s*s+f*f,v=(f*g-l*p)/h,d=(c*p-s*g)/h,f=d+a,m=rl.pop()||new Zr;m.arc=n,m.site=u,m.x=v+o,m.y=f+Math.sqrt(v*v+d*d),m.cy=f,n.circle=m;for(var y=null,M=tl._;M;)if(m.yd||d>=a)return;if(h>p){if(i){if(i.y>=l)return}else i={x:d,y:c};e={x:d,y:l}}else{if(i){if(i.yr||r>1)if(h>p){if(i){if(i.y>=l)return}else i={x:(c-u)/r,y:c};e={x:(l-u)/r,y:l}}else{if(i){if(i.yg){if(i){if(i.x>=a)return}else i={x:o,y:r*o+u};e={x:a,y:r*a+u}}else{if(i){if(i.xi||f>o||r>h||u>g)){if(p=n.point){var p,v=t-n.x,d=e-n.y,m=v*v+d*d;if(c>m){var y=Math.sqrt(c=m);r=t-y,u=e-y,i=t+y,o=e+y,a=p}}for(var M=n.nodes,x=.5*(s+h),b=.5*(f+g),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:l(n,s,f,x,b);break;case 1:l(n,x,f,h,b);break;case 2:l(n,s,b,x,g);break;case 3:l(n,x,b,h,g)}}}(n,r,u,i,o),a}function gu(n,t){n=ta.rgb(n),t=ta.rgb(t);var e=n.r,r=n.g,u=n.b,i=t.r-e,o=t.g-r,a=t.b-u;return function(n){return"#"+xt(Math.round(e+i*n))+xt(Math.round(r+o*n))+xt(Math.round(u+a*n))}}function pu(n,t){var e,r={},u={};for(e in n)e in t?r[e]=mu(n[e],t[e]):u[e]=n[e];for(e in t)e in n||(u[e]=t[e]);return function(n){for(e in r)u[e]=r[e](n);return u}}function vu(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function du(n,t){var e,r,u,i=il.lastIndex=ol.lastIndex=0,o=-1,a=[],c=[];for(n+="",t+="";(e=il.exec(n))&&(r=ol.exec(t));)(u=r.index)>i&&(u=t.slice(i,u),a[o]?a[o]+=u:a[++o]=u),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,c.push({i:o,x:vu(e,r)})),i=ol.lastIndex;return ir;++r)a[(e=c[r]).i]=e.x(n);return a.join("")})}function mu(n,t){for(var e,r=ta.interpolators.length;--r>=0&&!(e=ta.interpolators[r](n,t)););return e}function yu(n,t){var e,r=[],u=[],i=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(mu(n[e],t[e]));for(;i>e;++e)u[e]=n[e];for(;o>e;++e)u[e]=t[e];return function(n){for(e=0;a>e;++e)u[e]=r[e](n);return u}}function Mu(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function xu(n){return function(t){return 1-n(1-t)}}function bu(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function _u(n){return n*n}function wu(n){return n*n*n}function Su(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function ku(n){return function(t){return Math.pow(t,n)}}function Eu(n){return 1-Math.cos(n*Ra)}function Au(n){return Math.pow(2,10*(n-1))}function Nu(n){return 1-Math.sqrt(1-n*n)}function Cu(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/La*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*La/t)}}function zu(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function qu(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Lu(n,t){n=ta.hcl(n),t=ta.hcl(t);var e=n.h,r=n.c,u=n.l,i=t.h-e,o=t.c-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return st(e+i*n,r+o*n,u+a*n)+""}}function Tu(n,t){n=ta.hsl(n),t=ta.hsl(t);var e=n.h,r=n.s,u=n.l,i=t.h-e,o=t.s-r,a=t.l-u;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(i)?(i=0,e=isNaN(e)?t.h:e):i>180?i-=360:-180>i&&(i+=360),function(n){return ct(e+i*n,r+o*n,u+a*n)+""}}function Ru(n,t){n=ta.lab(n),t=ta.lab(t);var e=n.l,r=n.a,u=n.b,i=t.l-e,o=t.a-r,a=t.b-u;return function(n){return ht(e+i*n,r+o*n,u+a*n)+""}}function Du(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Pu(n){var t=[n.a,n.b],e=[n.c,n.d],r=ju(t),u=Uu(t,e),i=ju(Fu(e,t,-u))||0;t[0]*e[1]180?s+=360:s-l>180&&(l+=360),u.push({i:r.push(r.pop()+"rotate(",null,")")-2,x:vu(l,s)})):s&&r.push(r.pop()+"rotate("+s+")"),f!=h?u.push({i:r.push(r.pop()+"skewX(",null,")")-2,x:vu(f,h)}):h&&r.push(r.pop()+"skewX("+h+")"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+"scale(",null,",",null,")"),u.push({i:e-4,x:vu(g[0],p[0])},{i:e-2,x:vu(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+"scale("+p+")"),e=u.length,function(n){for(var t,i=-1;++i=0;)e.push(u[r])}function Qu(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(i=n.children)&&(u=i.length))for(var u,i,o=-1;++oe;++e)(t=n[e][1])>u&&(r=e,u=t);return r}function si(n){return n.reduce(fi,0)}function fi(n,t){return n+t[1]}function hi(n,t){return gi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function gi(n,t){for(var e=-1,r=+n[0],u=(n[1]-r)/t,i=[];++e<=t;)i[e]=u*e+r;return i}function pi(n){return[ta.min(n),ta.max(n)]}function vi(n,t){return n.value-t.value}function di(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function mi(n,t){n._pack_next=t,t._pack_prev=n}function yi(n,t){var e=t.x-n.x,r=t.y-n.y,u=n.r+t.r;return.999*u*u>e*e+r*r}function Mi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,u,i,o,a,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(xi),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(u=e[1],u.x=u.r,u.y=0,t(u),l>2))for(i=e[2],wi(r,u,i),t(i),di(r,i),r._pack_prev=i,di(i,u),u=r._pack_next,o=3;l>o;o++){wi(r,u,i=e[o]);var p=0,v=1,d=1;for(a=u._pack_next;a!==u;a=a._pack_next,v++)if(yi(a,i)){p=1;break}if(1==p)for(c=r._pack_prev;c!==a._pack_prev&&!yi(c,i);c=c._pack_prev,d++);p?(d>v||v==d&&u.ro;o++)i=e[o],i.x-=m,i.y-=y,M=Math.max(M,i.r+Math.sqrt(i.x*i.x+i.y*i.y));n.r=M,e.forEach(bi)}}function xi(n){n._pack_next=n._pack_prev=n}function bi(n){delete n._pack_next,delete n._pack_prev}function _i(n,t,e,r){var u=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,u)for(var i=-1,o=u.length;++i=0;)t=u[i],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Ci(n,t,e){return n.a.parent===t.parent?n.a:e}function zi(n){return 1+ta.max(n,function(n){return n.y})}function qi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Li(n){var t=n.children;return t&&t.length?Li(t[0]):n}function Ti(n){var t,e=n.children;return e&&(t=e.length)?Ti(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Di(n,t){var e=n.x+t[3],r=n.y+t[0],u=n.dx-t[1]-t[3],i=n.dy-t[0]-t[2];return 0>u&&(e+=u/2,u=0),0>i&&(r+=i/2,i=0),{x:e,y:r,dx:u,dy:i}}function Pi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Ui(n){return n.rangeExtent?n.rangeExtent():Pi(n.range())}function ji(n,t,e,r){var u=e(n[0],n[1]),i=r(t[0],t[1]);return function(n){return i(u(n))}}function Fi(n,t){var e,r=0,u=n.length-1,i=n[r],o=n[u];return i>o&&(e=r,r=u,u=e,e=i,i=o,o=e),n[r]=t.floor(i),n[u]=t.ceil(o),n}function Hi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:ml}function Oi(n,t,e,r){var u=[],i=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Oi:ji,c=r?Iu:Ou;return o=u(n,t,c,e),a=u(t,n,c,mu),i}function i(n){return o(n)}var o,a;return i.invert=function(n){return a(n)},i.domain=function(t){return arguments.length?(n=t.map(Number),u()):n},i.range=function(n){return arguments.length?(t=n,u()):t},i.rangeRound=function(n){return i.range(n).interpolate(Du)},i.clamp=function(n){return arguments.length?(r=n,u()):r},i.interpolate=function(n){return arguments.length?(e=n,u()):e},i.ticks=function(t){return Xi(n,t)},i.tickFormat=function(t,e){return $i(n,t,e)},i.nice=function(t){return Zi(n,t),u()},i.copy=function(){return Ii(n,t,e,r)},u()}function Yi(n,t){return ta.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Zi(n,t){return Fi(n,Hi(Vi(n,t)[2]))}function Vi(n,t){null==t&&(t=10);var e=Pi(n),r=e[1]-e[0],u=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),i=t/r*u;return.15>=i?u*=10:.35>=i?u*=5:.75>=i&&(u*=2),e[0]=Math.ceil(e[0]/u)*u,e[1]=Math.floor(e[1]/u)*u+.5*u,e[2]=u,e}function Xi(n,t){return ta.range.apply(ta,Vi(n,t))}function $i(n,t,e){var r=Vi(n,t);if(e){var u=ic.exec(e);if(u.shift(),"s"===u[8]){var i=ta.formatPrefix(Math.max(ga(r[0]),ga(r[1])));return u[7]||(u[7]="."+Bi(i.scale(r[2]))),u[8]="f",e=ta.format(u.join("")),function(n){return e(i.scale(n))+i.symbol}}u[7]||(u[7]="."+Wi(u[8],r)),e=u.join("")}else e=",."+Bi(r[2])+"f";return ta.format(e)}function Bi(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function Wi(n,t){var e=Bi(t[2]);return n in yl?Math.abs(e-Bi(Math.max(ga(t[0]),ga(t[1]))))+ +("e"!==n):e-2*("%"===n)}function Ji(n,t,e,r){function u(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function i(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(u(t))}return o.invert=function(t){return i(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(u)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(u)),o):t},o.nice=function(){var t=Fi(r.map(u),e?Math:xl);return n.domain(t),r=t.map(i),o},o.ticks=function(){var n=Pi(r),o=[],a=n[0],c=n[1],l=Math.floor(u(a)),s=Math.ceil(u(c)),f=t%1?2:t;if(isFinite(s-l)){if(e){for(;s>l;l++)for(var h=1;f>h;h++)o.push(i(l)*h);o.push(i(l))}else for(o.push(i(l));l++0;h--)o.push(i(l)*h);for(l=0;o[l]c;s--);o=o.slice(l,s)}return o},o.tickFormat=function(n,t){if(!arguments.length)return Ml;arguments.length<2?t=Ml:"function"!=typeof t&&(t=ta.format(t));var r,a=Math.max(.1,n/o.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/i(c(u(n)+r))<=a?t(n):""}},o.copy=function(){return Ji(n.copy(),t,e,r)},Yi(o,n)}function Gi(n,t,e){function r(t){return n(u(t))}var u=Ki(t),i=Ki(1/t);return r.invert=function(t){return i(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(u)),r):e},r.ticks=function(n){return Xi(e,n)},r.tickFormat=function(n,t){return $i(e,n,t)},r.nice=function(n){return r.domain(Zi(e,n))},r.exponent=function(o){return arguments.length?(u=Ki(t=o),i=Ki(1/t),n.domain(e.map(u)),r):t},r.copy=function(){return Gi(n.copy(),t,e)},Yi(r,n)}function Ki(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function Qi(n,t){function e(e){return i[((u.get(e)||("range"===t.t?u.set(e,n.push(e)):0/0))-1)%i.length]}function r(t,e){return ta.range(n.length).map(function(n){return t+e*n})}var u,i,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new l;for(var i,o=-1,a=r.length;++oe?[0/0,0/0]:[e>0?a[e-1]:n[0],et?0/0:t/i+n,[t,t+1/i]},r.copy=function(){return to(n,t,e)},u()}function eo(n,t){function e(e){return e>=e?t[ta.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return eo(n,t)},e}function ro(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Xi(n,t)},t.tickFormat=function(t,e){return $i(n,t,e)},t.copy=function(){return ro(n)},t}function uo(){return 0}function io(n){return n.innerRadius}function oo(n){return n.outerRadius}function ao(n){return n.startAngle}function co(n){return n.endAngle}function lo(n){return n&&n.padAngle}function so(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function fo(n,t,e,r,u){var i=n[0]-t[0],o=n[1]-t[1],a=(u?r:-r)/Math.sqrt(i*i+o*o),c=a*o,l=-a*i,s=n[0]+c,f=n[1]+l,h=t[0]+c,g=t[1]+l,p=(s+h)/2,v=(f+g)/2,d=h-s,m=g-f,y=d*d+m*m,M=e-r,x=s*g-h*f,b=(0>m?-1:1)*Math.sqrt(M*M*y-x*x),_=(x*m-d*b)/y,w=(-x*d-m*b)/y,S=(x*m+d*b)/y,k=(-x*d+m*b)/y,E=_-p,A=w-v,N=S-p,C=k-v;return E*E+A*A>N*N+C*C&&(_=S,w=k),[[_-c,w-l],[_*e/M,w*e/M]]}function ho(n){function t(t){function o(){l.push("M",i(n(s),a))}for(var c,l=[],s=[],f=-1,h=t.length,g=Et(e),p=Et(r);++f1&&u.push("H",r[0]),u.join("")}function mo(n){for(var t=0,e=n.length,r=n[0],u=[r[0],",",r[1]];++t1){a=t[1],i=n[c],c++,r+="C"+(u[0]+o[0])+","+(u[1]+o[1])+","+(i[0]-a[0])+","+(i[1]-a[1])+","+i[0]+","+i[1];for(var l=2;l9&&(u=3*t/Math.sqrt(u),o[a]=u*e,o[a+1]=u*r));for(a=-1;++a<=c;)u=(n[Math.min(c,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),i.push([u||0,o[a]*u||0]);return i}function To(n){return n.length<3?go(n):n[0]+_o(n,Lo(n))}function Ro(n){for(var t,e,r,u=-1,i=n.length;++ur)return s();var u=i[i.active];u&&(--i.count,delete i[i.active],u.event&&u.event.interrupt.call(n,n.__data__,u.index)),i.active=r,o.event&&o.event.start.call(n,n.__data__,t),o.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&v.push(r)}),h=o.ease,f=o.duration,ta.timer(function(){return p.c=l(e||1)?Ne:l,1},0,a)}function l(e){if(i.active!==r)return 1;for(var u=e/f,a=h(u),c=v.length;c>0;)v[--c].call(n,a);return u>=1?(o.event&&o.event.end.call(n,n.__data__,t),s()):void 0}function s(){return--i.count?delete i[r]:delete n[e],1}var f,h,g=o.delay,p=ec,v=[];return p.t=g+a,u>=g?c(u-g):void(p.c=c)},0,a)}}function Bo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function Wo(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function Jo(n){return n.toISOString()}function Go(n,t,e){function r(t){return n(t)}function u(n,e){var r=n[1]-n[0],u=r/e,i=ta.bisect(Vl,u);return i==Vl.length?[t.year,Vi(n.map(function(n){return n/31536e6}),e)[2]]:i?t[u/Vl[i-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=Ko(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=Ko(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Pi(r.domain()),i=null==n?u(e,10):"number"==typeof n?u(e,n):!n.range&&[{range:n},t];return i&&(n=i[0],t=i[1]),n.range(e[0],Ko(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return Go(n.copy(),t,e)},Yi(r,n)}function Ko(n){return new Date(n)}function Qo(n){return JSON.parse(n.responseText)}function na(n){var t=ua.createRange();return t.selectNode(ua.body),t.createContextualFragment(n.responseText)}var ta={version:"3.5.6"},ea=[].slice,ra=function(n){return ea.call(n)},ua=this.document;if(ua)try{ra(ua.documentElement.childNodes)[0].nodeType}catch(ia){ra=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),ua)try{ua.createElement("DIV").style.setProperty("opacity",0,"")}catch(oa){var aa=this.Element.prototype,ca=aa.setAttribute,la=aa.setAttributeNS,sa=this.CSSStyleDeclaration.prototype,fa=sa.setProperty;aa.setAttribute=function(n,t){ca.call(this,n,t+"")},aa.setAttributeNS=function(n,t,e){la.call(this,n,t,e+"")},sa.setProperty=function(n,t,e){fa.call(this,n,t+"",e)}}ta.ascending=e,ta.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},ta.min=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ur&&(e=r)}else{for(;++u=r){e=r;break}for(;++ur&&(e=r)}return e},ta.max=function(n,t){var e,r,u=-1,i=n.length;if(1===arguments.length){for(;++u=r){e=r;break}for(;++ue&&(e=r)}else{for(;++u=r){e=r;break}for(;++ue&&(e=r)}return e},ta.extent=function(n,t){var e,r,u,i=-1,o=n.length;if(1===arguments.length){for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}else{for(;++i=r){e=u=r;break}for(;++ir&&(e=r),r>u&&(u=r))}return[e,u]},ta.sum=function(n,t){var e,r=0,i=n.length,o=-1;if(1===arguments.length)for(;++o1?c/(s-1):void 0},ta.deviation=function(){var n=ta.variance.apply(this,arguments);return n?Math.sqrt(n):n};var ha=i(e);ta.bisectLeft=ha.left,ta.bisect=ta.bisectRight=ha.right,ta.bisector=function(n){return i(1===n.length?function(t,r){return e(n(t),r)}:n)},ta.shuffle=function(n,t,e){(i=arguments.length)<3&&(e=n.length,2>i&&(t=0));for(var r,u,i=e-t;i;)u=Math.random()*i--|0,r=n[i+t],n[i+t]=n[u+t],n[u+t]=r;return n},ta.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ta.pairs=function(n){for(var t,e=0,r=n.length-1,u=n[0],i=new Array(0>r?0:r);r>e;)i[e]=[t=u,u=n[++e]];return i},ta.zip=function(){if(!(r=arguments.length))return[];for(var n=-1,t=ta.min(arguments,o),e=new Array(t);++n=0;)for(r=n[u],t=r.length;--t>=0;)e[--o]=r[t];return e};var ga=Math.abs;ta.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,u=[],i=a(ga(e)),o=-1;if(n*=i,t*=i,e*=i,0>e)for(;(r=n+e*++o)>t;)u.push(r/i);else for(;(r=n+e*++o)=i.length)return r?r.call(u,o):e?o.sort(e):o;for(var c,s,f,h,g=-1,p=o.length,v=i[a++],d=new l;++g=i.length)return n;var r=[],u=o[e++];return n.forEach(function(n,u){r.push({key:n,values:t(u,e)})}),u?r.sort(function(n,t){return u(n.key,t.key)}):r}var e,r,u={},i=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(ta.map,e,0),0)},u.key=function(n){return i.push(n),u},u.sortKeys=function(n){return o[i.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},ta.set=function(n){var t=new m;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},c(m,{has:h,add:function(n){return this._[s(n+="")]=!0,n},remove:g,values:p,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,f(t))}}),ta.behavior={},ta.rebind=function(n,t){for(var e,r=1,u=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ta.event=null,ta.requote=function(n){return n.replace(ma,"\\$&")};var ma=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ya={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Ma=function(n,t){return t.querySelector(n)},xa=function(n,t){return t.querySelectorAll(n)},ba=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(ba=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(Ma=function(n,t){return Sizzle(n,t)[0]||null},xa=Sizzle,ba=Sizzle.matchesSelector),ta.selection=function(){return ta.select(ua.documentElement)};var _a=ta.selection.prototype=[];_a.select=function(n){var t,e,r,u,i=[];n=N(n);for(var o=-1,a=this.length;++o=0&&(e=n.slice(0,t),n=n.slice(t+1)),wa.hasOwnProperty(e)?{space:wa[e],local:n}:n}},_a.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ta.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},_a.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,u=-1;if(t=e.classList){for(;++uu){if("string"!=typeof n){2>u&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>u){var i=this.node();return t(i).getComputedStyle(i,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},_a.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},_a.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},_a.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},_a.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},_a.insert=function(n,t){return n=j(n),t=N(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},_a.remove=function(){return this.each(F)},_a.data=function(n,t){function e(n,e){var r,u,i,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),v=new Array(o);if(t){var d,m=new l,y=new Array(o);for(r=-1;++rr;++r)p[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}p.update=g,p.parentNode=g.parentNode=v.parentNode=n.parentNode,a.push(p),c.push(g),s.push(v)}var r,u,i=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++ii;i++){u.push(t=[]),t.parentNode=(e=this[i]).parentNode;for(var a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return A(u)},_a.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[u])&&(i&&i!==e.nextSibling&&i.parentNode.insertBefore(e,i),i=e);return this},_a.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,u=e.length;u>r;r++){var i=e[r];if(i)return i}return null},_a.size=function(){var n=0;return Y(this,function(){++n}),n};var Sa=[];ta.selection.enter=Z,ta.selection.enter.prototype=Sa,Sa.append=_a.append,Sa.empty=_a.empty,Sa.node=_a.node,Sa.call=_a.call,Sa.size=_a.size,Sa.select=function(n){for(var t,e,r,u,i,o=[],a=-1,c=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var ka=ta.map({mouseenter:"mouseover",mouseleave:"mouseout"});ua&&ka.forEach(function(n){"on"+n in ua&&ka.remove(n)});var Ea,Aa=0;ta.mouse=function(n){return J(n,k())};var Na=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ta.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,u=0,i=t.length;i>u;++u)if((r=t[u]).identifier===e)return J(n,r)},ta.behavior.drag=function(){function n(){this.on("mousedown.drag",i).on("touchstart.drag",o)}function e(n,t,e,i,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],p|=n|e,M=r,g({type:"drag",x:r[0]+l[0],y:r[1]+l[1],dx:n,dy:e}))}function c(){t(h,v)&&(m.on(i+d,null).on(o+d,null),y(p&&ta.event.target===f),g({type:"dragend"}))}var l,s=this,f=ta.event.target,h=s.parentNode,g=r.of(s,arguments),p=0,v=n(),d=".drag"+(null==v?"":"-"+v),m=ta.select(e(f)).on(i+d,a).on(o+d,c),y=W(f),M=t(h,v);u?(l=u.apply(s,arguments),l=[l.x-M[0],l.y-M[1]]):l=[0,0],g({type:"dragstart"})}}var r=E(n,"drag","dragstart","dragend"),u=null,i=e(b,ta.mouse,t,"mousemove","mouseup"),o=e(G,ta.touch,y,"touchmove","touchend");return n.origin=function(t){return arguments.length?(u=t,n):u},ta.rebind(n,r,"on")},ta.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?ra(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Ca=1e-6,za=Ca*Ca,qa=Math.PI,La=2*qa,Ta=La-Ca,Ra=qa/2,Da=qa/180,Pa=180/qa,Ua=Math.SQRT2,ja=2,Fa=4;ta.interpolateZoom=function(n,t){function e(n){var t=n*y;if(m){var e=rt(v),o=i/(ja*h)*(e*ut(Ua*t+v)-et(v));return[r+o*l,u+o*s,i*e/rt(Ua*t+v)]}return[r+n*l,u+n*s,i*Math.exp(Ua*t)]}var r=n[0],u=n[1],i=n[2],o=t[0],a=t[1],c=t[2],l=o-r,s=a-u,f=l*l+s*s,h=Math.sqrt(f),g=(c*c-i*i+Fa*f)/(2*i*ja*h),p=(c*c-i*i-Fa*f)/(2*c*ja*h),v=Math.log(Math.sqrt(g*g+1)-g),d=Math.log(Math.sqrt(p*p+1)-p),m=d-v,y=(m||Math.log(c/i))/Ua;return e.duration=1e3*y,e},ta.behavior.zoom=function(){function n(n){n.on(q,f).on(Oa+".zoom",g).on("dblclick.zoom",p).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function u(n){k.k=Math.max(N[0],Math.min(N[1],n))}function i(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},u(Math.pow(2,o)),i(d=e,r),t=ta.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function c(n){z++||n({type:"zoomstart"})}function l(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function s(n){--z||(n({type:"zoomend"}),d=null)}function f(){function n(){f=1,i(ta.mouse(u),g),l(a)}function r(){h.on(L,null).on(T,null),p(f&&ta.event.target===o),s(a)}var u=this,o=ta.event.target,a=D.of(u,arguments),f=0,h=ta.select(t(u)).on(L,n).on(T,r),g=e(ta.mouse(u)),p=W(u);Dl.call(u),c(a)}function h(){function n(){var n=ta.touches(p);return g=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ta.event.target;ta.select(t).on(x,r).on(b,a),_.push(t);for(var e=ta.event.changedTouches,u=0,i=e.length;i>u;++u)d[e[u].identifier]=null;var c=n(),l=Date.now();if(1===c.length){if(500>l-M){var s=c[0];o(p,s,d[s.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=l}else if(c.length>1){var s=c[0],f=c[1],h=s[0]-f[0],g=s[1]-f[1];m=h*h+g*g}}function r(){var n,t,e,r,o=ta.touches(p);Dl.call(p);for(var a=0,c=o.length;c>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var s=(s=e[0]-n[0])*s+(s=e[1]-n[1])*s,f=m&&Math.sqrt(s/m);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],u(f*g)}M=null,i(n,t),l(v)}function a(){if(ta.event.touches.length){for(var t=ta.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var u in d)return void n()}ta.selectAll(_).on(y,null),w.on(q,f).on(R,h),E(),s(v)}var g,p=this,v=D.of(p,arguments),d={},m=0,y=".zoom-"+ta.event.changedTouches[0].identifier,x="touchmove"+y,b="touchend"+y,_=[],w=ta.select(p),E=W(p);t(),c(v),w.on(q,null).on(R,t)}function g(){var n=D.of(this,arguments);y?clearTimeout(y):(Dl.call(this),v=e(d=m||ta.mouse(this)),c(n)),y=setTimeout(function(){y=null,s(n)},50),S(),u(Math.pow(2,.002*Ha())*k.k),i(d,v),l(n)}function p(){var n=ta.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ta.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,m,y,M,x,b,_,w,k={x:0,y:0,k:1},A=[960,500],N=Ia,C=250,z=0,q="mousedown.zoom",L="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=E(n,"zoomstart","zoom","zoomend");return Oa||(Oa="onwheel"in ua?(Ha=function(){return-ta.event.deltaY*(ta.event.deltaMode?120:1)},"wheel"):"onmousewheel"in ua?(Ha=function(){return ta.event.wheelDelta},"mousewheel"):(Ha=function(){return-ta.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Tl?ta.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},c(n)}).tween("zoom:zoom",function(){var e=A[0],r=A[1],u=d?d[0]:e/2,i=d?d[1]:r/2,o=ta.interpolateZoom([(u-k.x)/k.k,(i-k.y)/k.k,e/k.k],[(u-t.x)/t.k,(i-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:u-r[0]*a,y:i-r[1]*a,k:a},l(n)}}).each("interrupt.zoom",function(){s(n)}).each("end.zoom",function(){s(n)}):(this.__chart__=k,c(n),l(n),s(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:+t},a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(N=null==t?Ia:[+t[0],+t[1]],n):N},n.center=function(t){return arguments.length?(m=t&&[+t[0],+t[1]],n):m},n.size=function(t){return arguments.length?(A=t&&[+t[0],+t[1]],n):A},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ta.rebind(n,D,"on")};var Ha,Oa,Ia=[0,1/0];ta.color=ot,ot.prototype.toString=function(){return this.rgb()+""},ta.hsl=at;var Ya=at.prototype=new ot;Ya.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,this.l/n)},Ya.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new at(this.h,this.s,n*this.l)},Ya.rgb=function(){return ct(this.h,this.s,this.l)},ta.hcl=lt;var Za=lt.prototype=new ot;Za.brighter=function(n){return new lt(this.h,this.c,Math.min(100,this.l+Va*(arguments.length?n:1)))},Za.darker=function(n){return new lt(this.h,this.c,Math.max(0,this.l-Va*(arguments.length?n:1)))},Za.rgb=function(){return st(this.h,this.c,this.l).rgb()},ta.lab=ft;var Va=18,Xa=.95047,$a=1,Ba=1.08883,Wa=ft.prototype=new ot;Wa.brighter=function(n){return new ft(Math.min(100,this.l+Va*(arguments.length?n:1)),this.a,this.b)},Wa.darker=function(n){return new ft(Math.max(0,this.l-Va*(arguments.length?n:1)),this.a,this.b)},Wa.rgb=function(){return ht(this.l,this.a,this.b)},ta.rgb=mt;var Ja=mt.prototype=new ot;Ja.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,u=30;return t||e||r?(t&&u>t&&(t=u),e&&u>e&&(e=u),r&&u>r&&(r=u),new mt(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mt(u,u,u)},Ja.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mt(n*this.r,n*this.g,n*this.b)},Ja.hsl=function(){return _t(this.r,this.g,this.b)},Ja.toString=function(){return"#"+xt(this.r)+xt(this.g)+xt(this.b)};var Ga=ta.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Ga.forEach(function(n,t){Ga.set(n,yt(t))}),ta.functor=Et,ta.xhr=At(y),ta.dsv=function(n,t){function e(n,e,i){arguments.length<3&&(i=e,e=null);var o=Nt(n,t,null==e?r:u(e),i);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:u(n)):e},o}function r(n){return e.parse(n.responseText)}function u(n){return function(t){return e.parse(t.responseText,n)}}function i(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),c=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var u=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(u(n),e)}:u})},e.parseRows=function(n,t){function e(){if(s>=l)return o;if(u)return u=!1,i;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++s;){var r=n.charCodeAt(s++),a=1;if(10===r)u=!0;else if(13===r)u=!0,10===n.charCodeAt(s)&&(++s,++a);else if(r!==c)continue;return n.slice(t,s-a)}return n.slice(t)}for(var r,u,i={},o={},a=[],l=n.length,s=0,f=0;(r=e())!==o;){for(var h=[];r!==i&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,f++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new m,u=[];return t.forEach(function(n){for(var t in n)r.has(t)||u.push(r.add(t))}),[u.map(o).join(n)].concat(t.map(function(t){return u.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(i).join("\n")},e},ta.csv=ta.dsv(",","text/csv"),ta.tsv=ta.dsv(" ","text/tab-separated-values");var Ka,Qa,nc,tc,ec,rc=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ta.timer=function(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var u=e+t,i={c:n,t:u,f:!1,n:null};Qa?Qa.n=i:Ka=i,Qa=i,nc||(tc=clearTimeout(tc),nc=1,rc(qt))},ta.timer.flush=function(){Lt(),Tt()},ta.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var uc=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Dt);ta.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=ta.round(n,Rt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),uc[8+e/3]};var ic=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,oc=ta.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ta.round(n,Rt(n,t))).toFixed(Math.max(0,Math.min(20,Rt(n*(1+1e-15),t))))}}),ac=ta.time={},cc=Date;jt.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){lc.setUTCDate.apply(this._,arguments)},setDay:function(){lc.setUTCDay.apply(this._,arguments)},setFullYear:function(){lc.setUTCFullYear.apply(this._,arguments)},setHours:function(){lc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){lc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){lc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){lc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){lc.setUTCSeconds.apply(this._,arguments)},setTime:function(){lc.setTime.apply(this._,arguments)}};var lc=Date.prototype;ac.year=Ft(function(n){return n=ac.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ac.years=ac.year.range,ac.years.utc=ac.year.utc.range,ac.day=Ft(function(n){var t=new cc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ac.days=ac.day.range,ac.days.utc=ac.day.utc.range,ac.dayOfYear=function(n){var t=ac.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ac[n]=Ft(function(n){return(n=ac.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ac[n+"s"]=e.range,ac[n+"s"].utc=e.utc.range,ac[n+"OfYear"]=function(n){var e=ac.year(n).getDay();return Math.floor((ac.dayOfYear(n)+(e+t)%7)/7)}}),ac.week=ac.sunday,ac.weeks=ac.sunday.range,ac.weeks.utc=ac.sunday.utc.range,ac.weekOfYear=ac.sundayOfYear;var sc={"-":"",_:" ",0:"0"},fc=/^\s*\d+/,hc=/^%/;ta.locale=function(n){return{numberFormat:Pt(n),timeFormat:Ot(n)}};var gc=ta.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ta.format=gc.numberFormat,ta.geo={},ce.prototype={s:0,t:0,add:function(n){le(n,this.t,pc),le(pc.s,this.s,this),this.s?this.t+=pc.t:this.s=pc.t -},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var pc=new ce;ta.geo.stream=function(n,t){n&&vc.hasOwnProperty(n.type)?vc[n.type](n,t):se(n,t)};var vc={Feature:function(n,t){se(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,u=e.length;++rn?4*qa+n:n,Mc.lineStart=Mc.lineEnd=Mc.point=b}};ta.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=pe([t*Da,e*Da]);if(m){var u=de(m,r),i=[u[1],-u[0],0],o=de(i,u);Me(o),o=xe(o);var c=t-p,l=c>0?1:-1,v=o[0]*Pa*l,d=ga(c)>180;if(d^(v>l*p&&l*t>v)){var y=o[1]*Pa;y>g&&(g=y)}else if(v=(v+360)%360-180,d^(v>l*p&&l*t>v)){var y=-o[1]*Pa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);d?p>t?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?a(s,t)>a(s,h)&&(h=t):a(t,h)>a(s,h)&&(s=t)}else n(t,e);m=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,m=null}function u(n,e){if(m){var r=n-p;y+=ga(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Mc.point(n,e),t(n,e)}function i(){Mc.lineStart()}function o(){u(v,d),Mc.lineEnd(),ga(y)>Ca&&(s=-(h=180)),x[0]=s,x[1]=h,m=null}function a(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nyc?(s=-(h=180),f=-(g=90)):y>Ca?g=90:-Ca>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],ta.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,u=M[0],i=[u];t>r;++r)e=M[r],l(e[0],u)||l(e[1],u)?(a(u[0],e[1])>a(u[0],u[1])&&(u[1]=e[1]),a(e[0],u[1])>a(u[0],u[1])&&(u[0]=e[0])):i.push(u=e);for(var o,e,p=-1/0,t=i.length-1,r=0,u=i[t];t>=r;u=e,++r)e=i[r],(o=a(u[1],e[0]))>p&&(p=o,s=e[0],h=u[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),ta.geo.centroid=function(n){xc=bc=_c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,qc);var t=Nc,e=Cc,r=zc,u=t*t+e*e+r*r;return za>u&&(t=kc,e=Ec,r=Ac,Ca>bc&&(t=_c,e=wc,r=Sc),u=t*t+e*e+r*r,za>u)?[0/0,0/0]:[Math.atan2(e,t)*Pa,tt(r/Math.sqrt(u))*Pa]};var xc,bc,_c,wc,Sc,kc,Ec,Ac,Nc,Cc,zc,qc={sphere:b,point:_e,lineStart:Se,lineEnd:ke,polygonStart:function(){qc.lineStart=Ee},polygonEnd:function(){qc.lineStart=Se}},Lc=Le(Ne,Pe,je,[-qa,-qa/2]),Tc=1e9;ta.geo.clipExtent=function(){var n,t,e,r,u,i,o={stream:function(n){return u&&(u.valid=!1),u=i(n),u.valid=!0,u},extent:function(a){return arguments.length?(i=Ie(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),u&&(u.valid=!1,u=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ta.geo.conicEqualArea=function(){return Ye(Ze)}).raw=Ze,ta.geo.albers=function(){return ta.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ta.geo.albersUsa=function(){function n(n){var i=n[0],o=n[1];return t=null,e(i,o),t||(r(i,o),t)||u(i,o),t}var t,e,r,u,i=ta.geo.albers(),o=ta.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ta.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=i.scale(),e=i.translate(),r=(n[0]-e[0])/t,u=(n[1]-e[1])/t;return(u>=.12&&.234>u&&r>=-.425&&-.214>r?o:u>=.166&&.234>u&&r>=-.214&&-.115>r?a:i).invert(n)},n.stream=function(n){var t=i.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,u){t.point(n,u),e.point(n,u),r.point(n,u)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(i.precision(t),o.precision(t),a.precision(t),n):i.precision()},n.scale=function(t){return arguments.length?(i.scale(t),o.scale(.35*t),a.scale(t),n.translate(i.translate())):i.scale()},n.translate=function(t){if(!arguments.length)return i.translate();var l=i.scale(),s=+t[0],f=+t[1];return e=i.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=o.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ca,f+.12*l+Ca],[s-.214*l-Ca,f+.234*l-Ca]]).stream(c).point,u=a.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ca,f+.166*l+Ca],[s-.115*l-Ca,f+.234*l-Ca]]).stream(c).point,n},n.scale(1070)};var Rc,Dc,Pc,Uc,jc,Fc,Hc={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Dc=0,Hc.lineStart=Ve},polygonEnd:function(){Hc.lineStart=Hc.lineEnd=Hc.point=b,Rc+=ga(Dc/2)}},Oc={point:Xe,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Ic={point:We,lineStart:Je,lineEnd:Ge,polygonStart:function(){Ic.lineStart=Ke},polygonEnd:function(){Ic.point=We,Ic.lineStart=Je,Ic.lineEnd=Ge}};ta.geo.path=function(){function n(n){return n&&("function"==typeof a&&i.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=u(i)),ta.geo.stream(n,o)),i.result()}function t(){return o=null,n}var e,r,u,i,o,a=4.5;return n.area=function(n){return Rc=0,ta.geo.stream(n,u(Hc)),Rc},n.centroid=function(n){return _c=wc=Sc=kc=Ec=Ac=Nc=Cc=zc=0,ta.geo.stream(n,u(Ic)),zc?[Nc/zc,Cc/zc]:Ac?[kc/Ac,Ec/Ac]:Sc?[_c/Sc,wc/Sc]:[0/0,0/0]},n.bounds=function(n){return jc=Fc=-(Pc=Uc=1/0),ta.geo.stream(n,u(Oc)),[[Pc,Uc],[jc,Fc]]},n.projection=function(n){return arguments.length?(u=(e=n)?n.stream||tr(n):y,t()):e},n.context=function(n){return arguments.length?(i=null==(r=n)?new $e:new Qe(n),"function"!=typeof a&&i.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(i.pointRadius(+t),+t),n):a},n.projection(ta.geo.albersUsa()).context(null)},ta.geo.transform=function(n){return{stream:function(t){var e=new er(t);for(var r in n)e[r]=n[r];return e}}},er.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ta.geo.projection=ur,ta.geo.projectionMutator=ir,(ta.geo.equirectangular=function(){return ur(ar)}).raw=ar.invert=ar,ta.geo.rotation=function(n){function t(t){return t=n(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t}return n=lr(n[0]%360*Da,n[1]*Da,n.length>2?n[2]*Da:0),t.invert=function(t){return t=n.invert(t[0]*Da,t[1]*Da),t[0]*=Pa,t[1]*=Pa,t},t},cr.invert=ar,ta.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=lr(-n[0]*Da,-n[1]*Da,0).invert,u=[];return e(null,null,1,{point:function(n,e){u.push(n=t(n,e)),n[0]*=Pa,n[1]*=Pa}}),{type:"Polygon",coordinates:[u]}}var t,e,r=[0,0],u=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=gr((t=+r)*Da,u*Da),n):t},n.precision=function(r){return arguments.length?(e=gr(t*Da,(u=+r)*Da),n):u},n.angle(90)},ta.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Da,u=n[1]*Da,i=t[1]*Da,o=Math.sin(r),a=Math.cos(r),c=Math.sin(u),l=Math.cos(u),s=Math.sin(i),f=Math.cos(i);return Math.atan2(Math.sqrt((e=f*o)*e+(e=l*s-c*f*a)*e),c*s+l*f*a)},ta.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ta.range(Math.ceil(i/d)*d,u,d).map(h).concat(ta.range(Math.ceil(l/m)*m,c,m).map(g)).concat(ta.range(Math.ceil(r/p)*p,e,p).filter(function(n){return ga(n%d)>Ca}).map(s)).concat(ta.range(Math.ceil(a/v)*v,o,v).filter(function(n){return ga(n%m)>Ca}).map(f))}var e,r,u,i,o,a,c,l,s,f,h,g,p=10,v=p,d=90,m=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(i).concat(g(c).slice(1),h(u).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(i=+t[0][0],u=+t[1][0],l=+t[0][1],c=+t[1][1],i>u&&(t=i,i=u,u=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[i,l],[u,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(y)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],m=+t[1],n):[d,m]},n.minorStep=function(t){return arguments.length?(p=+t[0],v=+t[1],n):[p,v]},n.precision=function(t){return arguments.length?(y=+t,s=vr(a,o,90),f=dr(r,e,y),h=vr(l,c,90),g=dr(i,u,y),n):y},n.majorExtent([[-180,-90+Ca],[180,90-Ca]]).minorExtent([[-180,-80-Ca],[180,80+Ca]])},ta.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||u.apply(this,arguments)]}}var t,e,r=mr,u=yr;return n.distance=function(){return ta.geo.distance(t||r.apply(this,arguments),e||u.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(u=t,e="function"==typeof t?null:t,n):u},n.precision=function(){return arguments.length?n:0},n},ta.geo.interpolate=function(n,t){return Mr(n[0]*Da,n[1]*Da,t[0]*Da,t[1]*Da)},ta.geo.length=function(n){return Yc=0,ta.geo.stream(n,Zc),Yc};var Yc,Zc={sphere:b,point:b,lineStart:xr,lineEnd:b,polygonStart:b,polygonEnd:b},Vc=br(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ta.geo.azimuthalEqualArea=function(){return ur(Vc)}).raw=Vc;var Xc=br(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},y);(ta.geo.azimuthalEquidistant=function(){return ur(Xc)}).raw=Xc,(ta.geo.conicConformal=function(){return Ye(_r)}).raw=_r,(ta.geo.conicEquidistant=function(){return Ye(wr)}).raw=wr;var $c=br(function(n){return 1/n},Math.atan);(ta.geo.gnomonic=function(){return ur($c)}).raw=$c,Sr.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Ra]},(ta.geo.mercator=function(){return kr(Sr)}).raw=Sr;var Bc=br(function(){return 1},Math.asin);(ta.geo.orthographic=function(){return ur(Bc)}).raw=Bc;var Wc=br(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ta.geo.stereographic=function(){return ur(Wc)}).raw=Wc,Er.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Ra]},(ta.geo.transverseMercator=function(){var n=kr(Er),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Er,ta.geom={},ta.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,u=Et(e),i=Et(r),o=n.length,a=[],c=[];for(t=0;o>t;t++)a.push([+u.call(this,n[t],t),+i.call(this,n[t],t),t]);for(a.sort(zr),t=0;o>t;t++)c.push([a[t][0],-a[t][1]]);var l=Cr(a),s=Cr(c),f=s[0]===l[0],h=s[s.length-1]===l[l.length-1],g=[];for(t=l.length-1;t>=0;--t)g.push(n[a[l[t]][2]]);for(t=+f;t=r&&l.x<=i&&l.y>=u&&l.y<=o?[[r,o],[i,o],[i,u],[r,u]]:[];s.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(i(n,t)/Ca)*Ca,y:Math.round(o(n,t)/Ca)*Ca,i:t}})}var r=Ar,u=Nr,i=r,o=u,a=ul;return n?t(n):(t.links=function(n){return iu(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return iu(e(n)).cells.forEach(function(e,r){for(var u,i,o=e.site,a=e.edges.sort(Yr),c=-1,l=a.length,s=a[l-1].edge,f=s.l===o?s.r:s.l;++c=l,h=r>=s,g=h<<1|f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=su()),f?u=l:a=l,h?o=s:c=s,i(n,t,e,r,u,o,a,c)}var s,f,h,g,p,v,d,m,y,M=Et(a),x=Et(c);if(null!=t)v=t,d=e,m=r,y=u;else if(m=y=-(v=d=1/0),f=[],h=[],p=n.length,o)for(g=0;p>g;++g)s=n[g],s.xm&&(m=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);v>b&&(v=b),d>_&&(d=_),b>m&&(m=b),_>y&&(y=_),f.push(b),h.push(_)}var w=m-v,S=y-d;w>S?y=d+w:m=v+S;var k=su();if(k.add=function(n){i(k,n,+M(n,++g),+x(n,g),v,d,m,y)},k.visit=function(n){fu(n,k,v,d,m,y)},k.find=function(n){return hu(k,n[0],n[1],v,d,m,y)},g=-1,null==t){for(;++g=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=cl.get(e)||al,r=ll.get(r)||y,Mu(r(e.apply(null,ea.call(arguments,1))))},ta.interpolateHcl=Lu,ta.interpolateHsl=Tu,ta.interpolateLab=Ru,ta.interpolateRound=Du,ta.transform=function(n){var t=ua.createElementNS(ta.ns.prefix.svg,"g");return(ta.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new Pu(e?e.matrix:sl)})(n)},Pu.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var sl={a:1,b:0,c:0,d:1,e:0,f:0};ta.interpolateTransform=Hu,ta.layout={},ta.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/d){if(p>c){var l=t.charge/c;n.px-=i*l,n.py-=o*l}return!0}if(t.point&&c&&p>c){var l=t.pointCharge/c;n.px-=i*l,n.py-=o*l}}return!t.charge}}function t(n){n.px=ta.event.x,n.py=ta.event.y,a.resume()}var e,r,u,i,o,a={},c=ta.dispatch("start","tick","end"),l=[1,1],s=.9,f=fl,h=hl,g=-30,p=gl,v=.1,d=.64,m=[],M=[];return a.tick=function(){if((r*=.99)<.005)return c.end({type:"end",alpha:r=0}),!0;var t,e,a,f,h,p,d,y,x,b=m.length,_=M.length;for(e=0;_>e;++e)a=M[e],f=a.source,h=a.target,y=h.x-f.x,x=h.y-f.y,(p=y*y+x*x)&&(p=r*i[e]*((p=Math.sqrt(p))-u[e])/p,y*=p,x*=p,h.x-=y*(d=f.weight/(h.weight+f.weight)),h.y-=x*d,f.x+=y*(d=1-d),f.y+=x*d);if((d=r*v)&&(y=l[0]/2,x=l[1]/2,e=-1,d))for(;++e0?n:0:n>0&&(c.start({type:"start",alpha:r=n}),ta.timer(a.tick)),a):r},a.start=function(){function n(n,r){if(!e){for(e=new Array(c),a=0;c>a;++a)e[a]=[];for(a=0;s>a;++a){var u=M[a];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var i,o=e[t],a=-1,l=o.length;++at;++t)(r=m[t]).index=t,r.weight=0;for(t=0;s>t;++t)r=M[t],"number"==typeof r.source&&(r.source=m[r.source]),"number"==typeof r.target&&(r.target=m[r.target]),++r.source.weight,++r.target.weight;for(t=0;c>t;++t)r=m[t],isNaN(r.x)&&(r.x=n("x",p)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof f)for(t=0;s>t;++t)u[t]=+f.call(this,M[t],t);else for(t=0;s>t;++t)u[t]=f;if(i=[],"function"==typeof h)for(t=0;s>t;++t)i[t]=+h.call(this,M[t],t);else for(t=0;s>t;++t)i[t]=h;if(o=[],"function"==typeof g)for(t=0;c>t;++t)o[t]=+g.call(this,m[t],t);else for(t=0;c>t;++t)o[t]=g;return a.resume()},a.resume=function(){return a.alpha(.1)},a.stop=function(){return a.alpha(0)},a.drag=function(){return e||(e=ta.behavior.drag().origin(y).on("dragstart.force",Xu).on("drag.force",t).on("dragend.force",$u)),arguments.length?void this.on("mouseover.force",Bu).on("mouseout.force",Wu).call(e):e},ta.rebind(a,c,"on")};var fl=20,hl=1,gl=1/0;ta.layout.hierarchy=function(){function n(u){var i,o=[u],a=[];for(u.depth=0;null!=(i=o.pop());)if(a.push(i),(l=e.call(n,i,i.depth))&&(c=l.length)){for(var c,l,s;--c>=0;)o.push(s=l[c]),s.parent=i,s.depth=i.depth+1;r&&(i.value=0),i.children=l}else r&&(i.value=+r.call(n,i,i.depth)||0),delete i.children;return Qu(u,function(n){var e,u;t&&(e=n.children)&&e.sort(t),r&&(u=n.parent)&&(u.value+=n.value)}),a}var t=ei,e=ni,r=ti;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(Ku(t,function(n){n.children&&(n.value=0)}),Qu(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ta.layout.partition=function(){function n(t,e,r,u){var i=t.children;if(t.x=e,t.y=t.depth*u,t.dx=r,t.dy=u,i&&(o=i.length)){var o,a,c,l=-1;for(r=t.value?r/t.value:0;++lf?-1:1),p=(f-c*g)/ta.sum(l),v=ta.range(c),d=[];return null!=e&&v.sort(e===pl?function(n,t){return l[t]-l[n]}:function(n,t){return e(o[n],o[t])}),v.forEach(function(n){d[n]={data:o[n],value:a=l[n],startAngle:s,endAngle:s+=a*p+g,padAngle:h}}),d}var t=Number,e=pl,r=0,u=La,i=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(u=t,n):u},n.padAngle=function(t){return arguments.length?(i=t,n):i},n};var pl={};ta.layout.stack=function(){function n(a,c){if(!(h=a.length))return a;var l=a.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[i.call(n,t,e),o.call(n,t,e)]})}),f=e.call(n,s,c);l=ta.permute(l,f),s=ta.permute(s,f);var h,g,p,v,d=r.call(n,s,c),m=l[0].length;for(p=0;m>p;++p)for(u.call(n,l[0][p],v=d[p],s[0][p][1]),g=1;h>g;++g)u.call(n,l[g][p],v+=s[g-1][p][1],s[g][p][1]);return a}var t=y,e=ai,r=ci,u=oi,i=ui,o=ii;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:vl.get(t)||ai,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:dl.get(t)||ci,n):r},n.x=function(t){return arguments.length?(i=t,n):i},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(u=t,n):u},n};var vl=ta.map({"inside-out":function(n){var t,e,r=n.length,u=n.map(li),i=n.map(si),o=ta.range(r).sort(function(n,t){return u[n]-u[t]}),a=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=o[t],c>a?(a+=i[e],l.push(e)):(c+=i[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return ta.range(n.length).reverse()},"default":ai}),dl=ta.map({silhouette:function(n){var t,e,r,u=n.length,i=n[0].length,o=[],a=0,c=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;i>e;++e)c[e]=(a-o[e])/2;return c},wiggle:function(n){var t,e,r,u,i,o,a,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,u=0;s>t;++t)u+=n[t][e][1];for(t=0,i=0,a=f[e][0]-f[e-1][0];s>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;i+=o*n[t][e][1]}g[e]=c-=u?i/u*a:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,u=n.length,i=n[0].length,o=1/u,a=[];for(e=0;i>e;++e){for(t=0,r=0;u>t;t++)r+=n[t][e][1];if(r)for(t=0;u>t;t++)n[t][e][1]/=r;else for(t=0;u>t;t++)n[t][e][1]=o}for(e=0;i>e;++e)a[e]=0;return a},zero:ci});ta.layout.histogram=function(){function n(n,i){for(var o,a,c=[],l=n.map(e,this),s=r.call(this,l,i),f=u.call(this,s,l,i),i=-1,h=l.length,g=f.length-1,p=t?1:1/h;++i0)for(i=-1;++i=s[0]&&a<=s[1]&&(o=c[ta.bisect(f,a,1,g)-1],o.y+=p,o.push(n[i]));return c}var t=!0,e=Number,r=pi,u=hi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=Et(t),n):r},n.bins=function(t){return arguments.length?(u="number"==typeof t?function(n){return gi(n,t)}:Et(t),n):u},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ta.layout.pack=function(){function n(n,i){var o=e.call(this,n,i),a=o[0],c=u[0],l=u[1],s=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,Qu(a,function(n){n.r=+s(n.value)}),Qu(a,Mi),r){var f=r*(t?1:Math.max(2*a.r/c,2*a.r/l))/2;Qu(a,function(n){n.r+=f}),Qu(a,Mi),Qu(a,function(n){n.r-=f})}return _i(a,c/2,l/2,t?1:1/Math.max(2*a.r/c,2*a.r/l)),o}var t,e=ta.layout.hierarchy().sort(vi),r=0,u=[1,1];return n.size=function(t){return arguments.length?(u=t,n):u},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},Gu(n,e)},ta.layout.tree=function(){function n(n,u){var s=o.call(this,n,u),f=s[0],h=t(f);if(Qu(h,e),h.parent.m=-h.z,Ku(h,r),l)Ku(f,i);else{var g=f,p=f,v=f;Ku(f,function(n){n.xp.x&&(p=n),n.depth>v.depth&&(v=n)});var d=a(g,p)/2-g.x,m=c[0]/(p.x+a(p,g)/2+d),y=c[1]/(v.depth||1);Ku(f,function(n){n.x=(n.x+d)*m,n.y=n.depth*y})}return s}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var u,i=t.children,o=0,a=i.length;a>o;++o)r.push((i[o]=u={_:i[o],parent:t,children:(u=i[o].children)&&u.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=u);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Ni(n);var i=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-i):n.z=i}else r&&(n.z=r.z+a(n._,r._));n.parent.A=u(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function u(n,t,e){if(t){for(var r,u=n,i=n,o=t,c=u.parent.children[0],l=u.m,s=i.m,f=o.m,h=c.m;o=Ei(o),u=ki(u),o&&u;)c=ki(c),i=Ei(i),i.a=n,r=o.z+f-u.z-l+a(o._,u._),r>0&&(Ai(Ci(o,n,e),n,r),l+=r,s+=r),f+=o.m,l+=u.m,h+=c.m,s+=i.m;o&&!Ei(i)&&(i.t=o,i.m+=f-s),u&&!ki(c)&&(c.t=u,c.m+=l-h,e=n)}return e}function i(n){n.x*=c[0],n.y=n.depth*c[1]}var o=ta.layout.hierarchy().sort(null).value(null),a=Si,c=[1,1],l=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(l=null==(c=t)?i:null,n):l?null:c},n.nodeSize=function(t){return arguments.length?(l=null==(c=t)?null:i,n):l?c:null},Gu(n,o)},ta.layout.cluster=function(){function n(n,i){var o,a=t.call(this,n,i),c=a[0],l=0;Qu(c,function(n){var t=n.children;t&&t.length?(n.x=qi(t),n.y=zi(t)):(n.x=o?l+=e(n,o):0,n.y=0,o=n)});var s=Li(c),f=Ti(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Qu(c,u?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),a}var t=ta.layout.hierarchy().sort(null).value(null),e=Si,r=[1,1],u=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(u=null==(r=t),n):u?null:r},n.nodeSize=function(t){return arguments.length?(u=null!=(r=t),n):u?r:null},Gu(n,t)},ta.layout.treemap=function(){function n(n,t){for(var e,r,u=-1,i=n.length;++ut?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var i=e.children;if(i&&i.length){var o,a,c,l=f(e),s=[],h=i.slice(),p=1/0,v="slice"===g?l.dx:"dice"===g?l.dy:"slice-dice"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(o=h[c-1]),s.area+=o.area,"squarify"!==g||(a=r(s,v))<=p?(h.pop(),p=a):(s.area-=s.pop().area,u(s,v,l,!1),v=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(u(s,v,l,!0),s.length=s.area=0),i.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var i,o=f(t),a=r.slice(),c=[];for(n(a,o.dx*o.dy/t.value),c.area=0;i=a.pop();)c.push(i),c.area+=i.area,null!=i.z&&(u(c,i.z?o.dx:o.dy,o,!a.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,u=0,i=1/0,o=-1,a=n.length;++oe&&(i=e),e>u&&(u=e));return r*=r,t*=t,r?Math.max(t*u*p/r,r/(t*i*p)):1/0}function u(n,t,e,r){var u,i=-1,o=n.length,a=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++ie.dx)&&(s=e.dx);++ie&&(t=1),1>e&&(n=0),function(){var e,r,u;do e=2*Math.random()-1,r=2*Math.random()-1,u=e*e+r*r;while(!u||u>1);return n+t*e*Math.sqrt(-2*Math.log(u)/u)}},logNormal:function(){var n=ta.random.normal.apply(ta,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ta.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ta.scale={};var ml={floor:y,ceil:y};ta.scale.linear=function(){return Ii([0,1],[0,1],mu,!1)};var yl={s:1,g:1,p:1,r:1,e:1};ta.scale.log=function(){return Ji(ta.scale.linear().domain([0,1]),10,!0,[1,10])};var Ml=ta.format(".0e"),xl={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ta.scale.pow=function(){return Gi(ta.scale.linear(),1,[0,1])},ta.scale.sqrt=function(){return ta.scale.pow().exponent(.5)},ta.scale.ordinal=function(){return Qi([],{t:"range",a:[[]]})},ta.scale.category10=function(){return ta.scale.ordinal().range(bl)},ta.scale.category20=function(){return ta.scale.ordinal().range(_l)},ta.scale.category20b=function(){return ta.scale.ordinal().range(wl)},ta.scale.category20c=function(){return ta.scale.ordinal().range(Sl)};var bl=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(Mt),_l=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(Mt),wl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(Mt),Sl=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(Mt);ta.scale.quantile=function(){return no([],[])},ta.scale.quantize=function(){return to(0,1,[0,1])},ta.scale.threshold=function(){return eo([.5],[0,1])},ta.scale.identity=function(){return ro([0,1])},ta.svg={},ta.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),l=Math.max(0,+r.apply(this,arguments)),s=o.apply(this,arguments)-Ra,f=a.apply(this,arguments)-Ra,h=Math.abs(f-s),g=s>f?0:1;if(n>l&&(p=l,l=n,n=p),h>=Ta)return t(l,g)+(n?t(n,1-g):"")+"Z";var p,v,d,m,y,M,x,b,_,w,S,k,E=0,A=0,N=[];if((m=(+c.apply(this,arguments)||0)/2)&&(d=i===kl?Math.sqrt(n*n+l*l):+i.apply(this,arguments),g||(A*=-1),l&&(A=tt(d/l*Math.sin(m))),n&&(E=tt(d/n*Math.sin(m)))),l){y=l*Math.cos(s+A),M=l*Math.sin(s+A),x=l*Math.cos(f-A),b=l*Math.sin(f-A);var C=Math.abs(f-s-2*A)<=qa?0:1;if(A&&so(y,M,x,b)===g^C){var z=(s+f)/2;y=l*Math.cos(z),M=l*Math.sin(z),x=b=null}}else y=M=0;if(n){_=n*Math.cos(f-E),w=n*Math.sin(f-E),S=n*Math.cos(s+E),k=n*Math.sin(s+E);var q=Math.abs(s-f+2*E)<=qa?0:1;if(E&&so(_,w,S,k)===1-g^q){var L=(s+f)/2;_=n*Math.cos(L),w=n*Math.sin(L),S=k=null}}else _=w=0;if((p=Math.min(Math.abs(l-n)/2,+u.apply(this,arguments)))>.001){v=l>n^g?0:1;var T=null==S?[_,w]:null==x?[y,M]:Lr([y,M],[S,k],[x,b],[_,w]),R=y-T[0],D=M-T[1],P=x-T[0],U=b-T[1],j=1/Math.sin(Math.acos((R*P+D*U)/(Math.sqrt(R*R+D*D)*Math.sqrt(P*P+U*U)))/2),F=Math.sqrt(T[0]*T[0]+T[1]*T[1]);if(null!=x){var H=Math.min(p,(l-F)/(j+1)),O=fo(null==S?[_,w]:[S,k],[y,M],l,H,g),I=fo([x,b],[_,w],l,H,g);p===H?N.push("M",O[0],"A",H,",",H," 0 0,",v," ",O[1],"A",l,",",l," 0 ",1-g^so(O[1][0],O[1][1],I[1][0],I[1][1]),",",g," ",I[1],"A",H,",",H," 0 0,",v," ",I[0]):N.push("M",O[0],"A",H,",",H," 0 1,",v," ",I[0])}else N.push("M",y,",",M);if(null!=S){var Y=Math.min(p,(n-F)/(j-1)),Z=fo([y,M],[S,k],n,-Y,g),V=fo([_,w],null==x?[y,M]:[x,b],n,-Y,g);p===Y?N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",V[1],"A",n,",",n," 0 ",g^so(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-g," ",Z[1],"A",Y,",",Y," 0 0,",v," ",Z[0]):N.push("L",V[0],"A",Y,",",Y," 0 0,",v," ",Z[0])}else N.push("L",_,",",w)}else N.push("M",y,",",M),null!=x&&N.push("A",l,",",l," 0 ",C,",",g," ",x,",",b),N.push("L",_,",",w),null!=S&&N.push("A",n,",",n," 0 ",q,",",1-g," ",S,",",k);return N.push("Z"),N.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=io,r=oo,u=uo,i=kl,o=ao,a=co,c=lo;return n.innerRadius=function(t){return arguments.length?(e=Et(t),n):e},n.outerRadius=function(t){return arguments.length?(r=Et(t),n):r},n.cornerRadius=function(t){return arguments.length?(u=Et(t),n):u},n.padRadius=function(t){return arguments.length?(i=t==kl?kl:Et(t),n):i},n.startAngle=function(t){return arguments.length?(o=Et(t),n):o},n.endAngle=function(t){return arguments.length?(a=Et(t),n):a},n.padAngle=function(t){return arguments.length?(c=Et(t),n):c},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Ra;return[Math.cos(t)*n,Math.sin(t)*n]},n};var kl="auto";ta.svg.line=function(){return ho(y)};var El=ta.map({linear:go,"linear-closed":po,step:vo,"step-before":mo,"step-after":yo,basis:So,"basis-open":ko,"basis-closed":Eo,bundle:Ao,cardinal:bo,"cardinal-open":Mo,"cardinal-closed":xo,monotone:To});El.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Al=[0,2/3,1/3,0],Nl=[0,1/3,2/3,0],Cl=[0,1/6,2/3,1/6];ta.svg.line.radial=function(){var n=ho(Ro);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},mo.reverse=yo,yo.reverse=mo,ta.svg.area=function(){return Do(y)},ta.svg.area.radial=function(){var n=Do(Ro);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ta.svg.chord=function(){function n(n,a){var c=t(this,i,n,a),l=t(this,o,n,a);return"M"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?u(c.r,c.p1,c.r,c.p0):u(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+u(l.r,l.p1,c.r,c.p0))+"Z"}function t(n,t,e,r){var u=t.call(n,e,r),i=a.call(n,u,r),o=c.call(n,u,r)-Ra,s=l.call(n,u,r)-Ra;return{r:i,a0:o,a1:s,p0:[i*Math.cos(o),i*Math.sin(o)],p1:[i*Math.cos(s),i*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>qa)+",1 "+t}function u(n,t,e,r){return"Q 0,0 "+r}var i=mr,o=yr,a=Po,c=ao,l=co;return n.radius=function(t){return arguments.length?(a=Et(t),n):a},n.source=function(t){return arguments.length?(i=Et(t),n):i},n.target=function(t){return arguments.length?(o=Et(t),n):o},n.startAngle=function(t){return arguments.length?(c=Et(t),n):c},n.endAngle=function(t){return arguments.length?(l=Et(t),n):l},n},ta.svg.diagonal=function(){function n(n,u){var i=t.call(this,n,u),o=e.call(this,n,u),a=(i.y+o.y)/2,c=[i,{x:i.x,y:a},{x:o.x,y:a},o];return c=c.map(r),"M"+c[0]+"C"+c[1]+" "+c[2]+" "+c[3]}var t=mr,e=yr,r=Uo;return n.source=function(e){return arguments.length?(t=Et(e),n):t},n.target=function(t){return arguments.length?(e=Et(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ta.svg.diagonal.radial=function(){var n=ta.svg.diagonal(),t=Uo,e=n.projection;return n.projection=function(n){return arguments.length?e(jo(t=n)):t},n},ta.svg.symbol=function(){function n(n,r){return(zl.get(t.call(this,n,r))||Oo)(e.call(this,n,r))}var t=Ho,e=Fo;return n.type=function(e){return arguments.length?(t=Et(e),n):t},n.size=function(t){return arguments.length?(e=Et(t),n):e},n};var zl=ta.map({circle:Oo,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Ll)),e=t*Ll;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/ql),e=t*ql/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ta.svg.symbolTypes=zl.keys();var ql=Math.sqrt(3),Ll=Math.tan(30*Da);_a.transition=function(n){for(var t,e,r=Tl||++Ul,u=Xo(n),i=[],o=Rl||{time:Date.now(),ease:Su,delay:0,duration:250},a=-1,c=this.length;++ai;i++){u.push(t=[]);for(var e=this[i],a=0,c=e.length;c>a;a++)(r=e[a])&&n.call(r,r.__data__,a,i)&&t.push(r)}return Yo(u,this.namespace,this.id)},Pl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(u){u[r][e].tween.set(n,t)})},Pl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function u(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function i(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?Hu:mu,a=ta.ns.qualify(n);return Zo(this,"attr."+n,t,a.local?i:u)},Pl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(u));return r&&function(n){this.setAttribute(u,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(u.space,u.local));return r&&function(n){this.setAttributeNS(u.space,u.local,r(n))}}var u=ta.ns.qualify(n);return this.tween("attr."+n,u.local?r:e)},Pl.style=function(n,e,r){function u(){this.style.removeProperty(n)}function i(e){return null==e?u:(e+="",function(){var u,i=t(this).getComputedStyle(this,null).getPropertyValue(n);return i!==e&&(u=mu(i,e),function(t){this.style.setProperty(n,u(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Zo(this,"style."+n,e,i)},Pl.styleTween=function(n,e,r){function u(u,i){var o=e.call(this,u,i,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,u)},Pl.text=function(n){return Zo(this,"text",n,Vo)},Pl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Pl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ta.ease.apply(ta,arguments)),Y(this,function(r){r[e][t].ease=n}))},Pl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,u,i){r[e][t].delay=+n.call(r,r.__data__,u,i)}:(n=+n,function(r){r[e][t].delay=n}))},Pl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,u,i){r[e][t].duration=Math.max(1,n.call(r,r.__data__,u,i))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Pl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var u=Rl,i=Tl;try{Tl=e,Y(this,function(t,u,i){Rl=t[r][e],n.call(t,t.__data__,u,i)})}finally{Rl=u,Tl=i}}else Y(this,function(u){var i=u[r][e];(i.event||(i.event=ta.dispatch("start","end","interrupt"))).on(n,t)});return this},Pl.transition=function(){for(var n,t,e,r,u=this.id,i=++Ul,o=this.namespace,a=[],c=0,l=this.length;l>c;c++){a.push(n=[]);for(var t=this[c],s=0,f=t.length;f>s;s++)(e=t[s])&&(r=e[o][u],$o(e,s,o,i,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Yo(a,o,i)},ta.svg.axis=function(){function n(n){n.each(function(){var n,l=ta.select(this),s=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):y:t,p=l.selectAll(".tick").data(h,f),v=p.enter().insert("g",".domain").attr("class","tick").style("opacity",Ca),d=ta.transition(p.exit()).style("opacity",Ca).remove(),m=ta.transition(p.order()).style("opacity",1),M=Math.max(u,0)+o,x=Ui(f),b=l.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ta.transition(b));v.append("line"),v.append("text");var w,S,k,E,A=v.select("line"),N=m.select("line"),C=p.select("text").text(g),z=v.select("text"),q=m.select("text"),L="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=Bo,w="x",k="y",S="x2",E="y2",C.attr("dy",0>L?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+L*i+"V0H"+x[1]+"V"+L*i)):(n=Wo,w="y",k="x",S="y2",E="x2",C.attr("dy",".32em").style("text-anchor",0>L?"end":"start"),_.attr("d","M"+L*i+","+x[0]+"H0V"+x[1]+"H"+L*i)),A.attr(E,L*u),z.attr(k,L*M),N.attr(S,0).attr(E,L*u),q.attr(w,0).attr(k,L*M),f.rangeBand){var T=f,R=T.rangeBand()/2;s=f=function(n){return T(n)+R}}else s.rangeBand?s=f:d.call(n,f,s);v.call(n,s,f),m.call(n,f,f)})}var t,e=ta.scale.linear(),r=jl,u=6,i=6,o=3,a=[10],c=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Fl?t+"":jl,n):r},n.ticks=function(){return arguments.length?(a=arguments,n):a},n.tickValues=function(t){return arguments.length?(c=t,n):c},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(u=+t,i=+arguments[e-1],n):u},n.innerTickSize=function(t){return arguments.length?(u=+t,n):u},n.outerTickSize=function(t){return arguments.length?(i=+t,n):i},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var jl="bottom",Fl={top:1,right:1,bottom:1,left:1};ta.svg.brush=function(){function n(t){t.each(function(){var t=ta.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",i).on("touchstart.brush",i),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,y);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return Hl[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var c,f=ta.transition(t),h=ta.transition(o);l&&(c=Ui(l),h.attr("x",c[0]).attr("width",c[1]-c[0]),r(f)),s&&(c=Ui(s),h.attr("y",c[0]).attr("height",c[1]-c[0]),u(f)),e(f)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+f[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",f[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",f[1]-f[0])}function u(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function i(){function i(){32==ta.event.keyCode&&(C||(M=null,q[0]-=f[1],q[1]-=h[1],C=2),S())}function v(){32==ta.event.keyCode&&2==C&&(q[0]+=f[1],q[1]+=h[1],C=0,S())}function d(){var n=ta.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ta.event.altKey?(M||(M=[(f[0]+f[1])/2,(h[0]+h[1])/2]),q[0]=f[+(n[0]s?(u=r,r=s):u=s),v[0]!=r||v[1]!=u?(e?a=null:o=null,v[0]=r,v[1]=u,!0):void 0}function y(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ta.select("body").style("cursor",null),L.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ta.select(ta.event.target),w=c.of(b,arguments),k=ta.select(b),E=_.datum(),A=!/^(n|s)$/.test(E)&&l,N=!/^(e|w)$/.test(E)&&s,C=_.classed("extent"),z=W(b),q=ta.mouse(b),L=ta.select(t(b)).on("keydown.brush",i).on("keyup.brush",v);if(ta.event.changedTouches?L.on("touchmove.brush",d).on("touchend.brush",y):L.on("mousemove.brush",d).on("mouseup.brush",y),k.interrupt().selectAll("*").interrupt(),C)q[0]=f[0]-q[0],q[1]=h[0]-q[1];else if(E){var T=+/w$/.test(E),R=+/^n/.test(E);x=[f[1-T]-q[0],h[1-R]-q[1]],q[0]=f[T],q[1]=h[R]}else ta.event.altKey&&(M=q.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ta.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,c=E(n,"brushstart","brush","brushend"),l=null,s=null,f=[0,0],h=[0,0],g=!0,p=!0,v=Ol[0];return n.event=function(n){n.each(function(){var n=c.of(this,arguments),t={x:f,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Tl?ta.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,f=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=yu(f,t.x),r=yu(h,t.y);return o=a=null,function(u){f=t.x=e(u),h=t.y=r(u),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(l=t,v=Ol[!l<<1|!s],n):l},n.y=function(t){return arguments.length?(s=t,v=Ol[!l<<1|!s],n):s},n.clamp=function(t){return arguments.length?(l&&s?(g=!!t[0],p=!!t[1]):l?g=!!t:s&&(p=!!t),n):l&&s?[g,p]:l?g:s?p:null},n.extent=function(t){var e,r,u,i,c;return arguments.length?(l&&(e=t[0],r=t[1],s&&(e=e[0],r=r[0]),o=[e,r],l.invert&&(e=l(e),r=l(r)),e>r&&(c=e,e=r,r=c),(e!=f[0]||r!=f[1])&&(f=[e,r])),s&&(u=t[0],i=t[1],l&&(u=u[1],i=i[1]),a=[u,i],s.invert&&(u=s(u),i=s(i)),u>i&&(c=u,u=i,i=c),(u!=h[0]||i!=h[1])&&(h=[u,i])),n):(l&&(o?(e=o[0],r=o[1]):(e=f[0],r=f[1],l.invert&&(e=l.invert(e),r=l.invert(r)),e>r&&(c=e,e=r,r=c))),s&&(a?(u=a[0],i=a[1]):(u=h[0],i=h[1],s.invert&&(u=s.invert(u),i=s.invert(i)),u>i&&(c=u,u=i,i=c))),l&&s?[[e,u],[r,i]]:l?[e,r]:s&&[u,i])},n.clear=function(){return n.empty()||(f=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!l&&f[0]==f[1]||!!s&&h[0]==h[1]},ta.rebind(n,c,"on")};var Hl={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Ol=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Il=ac.format=gc.timeFormat,Yl=Il.utc,Zl=Yl("%Y-%m-%dT%H:%M:%S.%LZ");Il.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?Jo:Zl,Jo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},Jo.toString=Zl.toString,ac.second=Ft(function(n){return new cc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ac.seconds=ac.second.range,ac.seconds.utc=ac.second.utc.range,ac.minute=Ft(function(n){return new cc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ac.minutes=ac.minute.range,ac.minutes.utc=ac.minute.utc.range,ac.hour=Ft(function(n){var t=n.getTimezoneOffset()/60;return new cc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ac.hours=ac.hour.range,ac.hours.utc=ac.hour.utc.range,ac.month=Ft(function(n){return n=ac.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ac.months=ac.month.range,ac.months.utc=ac.month.utc.range;var Vl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Xl=[[ac.second,1],[ac.second,5],[ac.second,15],[ac.second,30],[ac.minute,1],[ac.minute,5],[ac.minute,15],[ac.minute,30],[ac.hour,1],[ac.hour,3],[ac.hour,6],[ac.hour,12],[ac.day,1],[ac.day,2],[ac.week,1],[ac.month,1],[ac.month,3],[ac.year,1]],$l=Il.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",Ne]]),Bl={range:function(n,t,e){return ta.range(Math.ceil(n/e)*e,+t,e).map(Ko)},floor:y,ceil:y};Xl.year=ac.year,ac.scale=function(){return Go(ta.scale.linear(),Xl,$l)};var Wl=Xl.map(function(n){return[n[0].utc,n[1]]}),Jl=Yl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",Ne]]);Wl.year=ac.year.utc,ac.scale.utc=function(){return Go(ta.scale.linear(),Wl,Jl)},ta.text=At(function(n){return n.responseText}),ta.json=function(n,t){return Nt(n,"application/json",Qo,t)},ta.html=function(n,t){return Nt(n,"text/html",na,t)},ta.xml=At(function(n){return n.responseXML}),"function"==typeof define&&define.amd?define(ta):"object"==typeof module&&module.exports&&(module.exports=ta),this.d3=ta}(); \ No newline at end of file +!function(){function n(n){return n&&(n.ownerDocument||n.document||n).documentElement}function t(n){return n&&(n.ownerDocument&&n.ownerDocument.defaultView||n.document&&n||n.defaultView)}function e(n,t){return t>n?-1:n>t?1:n>=t?0:NaN}function r(n){return null===n?NaN:+n}function i(n){return!isNaN(n)}function u(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)<0?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n(t[u],e)>0?i=u:r=u+1}return r}}}function o(n){return n.length}function a(n){for(var t=1;n*t%1;)t*=10;return t}function l(n,t){for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}function c(){this._=Object.create(null)}function f(n){return(n+="")===bo||n[0]===_o?_o+n:n}function s(n){return(n+="")[0]===_o?n.slice(1):n}function h(n){return f(n)in this._}function p(n){return(n=f(n))in this._&&delete this._[n]}function g(){var n=[];for(var t in this._)n.push(s(t));return n}function v(){var n=0;for(var t in this._)++n;return n}function d(){for(var n in this._)return!1;return!0}function y(){this._=Object.create(null)}function m(n){return n}function M(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function x(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.slice(1);for(var e=0,r=wo.length;r>e;++e){var i=wo[e]+t;if(i in n)return i}}function b(){}function _(){}function w(n){function t(){for(var t,r=e,i=-1,u=r.length;++ie;e++)for(var i,u=n[e],o=0,a=u.length;a>o;o++)(i=u[o])&&t(i,o,e);return n}function Z(n){return ko(n,qo),n}function V(n){var t,e;return function(r,i,u){var o,a=n[u].update,l=a.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(o=a[t])&&++t0&&(n=n.slice(0,a));var c=To.get(n);return c&&(n=c,l=B),a?t?i:r:t?b:u}function $(n,t){return function(e){var r=ao.event;ao.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{ao.event=r}}}function B(n,t){var e=$(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function W(e){var r=".dragsuppress-"+ ++Do,i="click"+r,u=ao.select(t(e)).on("touchmove"+r,S).on("dragstart"+r,S).on("selectstart"+r,S);if(null==Ro&&(Ro="onselectstart"in e?!1:x(e.style,"userSelect")),Ro){var o=n(e).style,a=o[Ro];o[Ro]="none"}return function(n){if(u.on(r,null),Ro&&(o[Ro]=a),n){var t=function(){u.on(i,null)};u.on(i,function(){S(),t()},!0),setTimeout(t,0)}}}function J(n,e){e.changedTouches&&(e=e.changedTouches[0]);var r=n.ownerSVGElement||n;if(r.createSVGPoint){var i=r.createSVGPoint();if(0>Po){var u=t(n);if(u.scrollX||u.scrollY){r=ao.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var o=r[0][0].getScreenCTM();Po=!(o.f||o.e),r.remove()}}return Po?(i.x=e.pageX,i.y=e.pageY):(i.x=e.clientX,i.y=e.clientY),i=i.matrixTransform(n.getScreenCTM().inverse()),[i.x,i.y]}var a=n.getBoundingClientRect();return[e.clientX-a.left-n.clientLeft,e.clientY-a.top-n.clientTop]}function G(){return ao.event.changedTouches[0].identifier}function K(n){return n>0?1:0>n?-1:0}function Q(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(t[1]-n[1])*(e[0]-n[0])}function nn(n){return n>1?0:-1>n?Fo:Math.acos(n)}function tn(n){return n>1?Io:-1>n?-Io:Math.asin(n)}function en(n){return((n=Math.exp(n))-1/n)/2}function rn(n){return((n=Math.exp(n))+1/n)/2}function un(n){return((n=Math.exp(2*n))-1)/(n+1)}function on(n){return(n=Math.sin(n/2))*n}function an(){}function ln(n,t,e){return this instanceof ln?(this.h=+n,this.s=+t,void(this.l=+e)):arguments.length<2?n instanceof ln?new ln(n.h,n.s,n.l):_n(""+n,wn,ln):new ln(n,t,e)}function cn(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(o-u)*n/60:180>n?o:240>n?u+(o-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,o;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,o=.5>=e?e*(1+t):e+t-e*t,u=2*e-o,new mn(i(n+120),i(n),i(n-120))}function fn(n,t,e){return this instanceof fn?(this.h=+n,this.c=+t,void(this.l=+e)):arguments.length<2?n instanceof fn?new fn(n.h,n.c,n.l):n instanceof hn?gn(n.l,n.a,n.b):gn((n=Sn((n=ao.rgb(n)).r,n.g,n.b)).l,n.a,n.b):new fn(n,t,e)}function sn(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),new hn(e,Math.cos(n*=Yo)*t,Math.sin(n)*t)}function hn(n,t,e){return this instanceof hn?(this.l=+n,this.a=+t,void(this.b=+e)):arguments.length<2?n instanceof hn?new hn(n.l,n.a,n.b):n instanceof fn?sn(n.h,n.c,n.l):Sn((n=mn(n)).r,n.g,n.b):new hn(n,t,e)}function pn(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=vn(i)*na,r=vn(r)*ta,u=vn(u)*ea,new mn(yn(3.2404542*i-1.5371385*r-.4985314*u),yn(-.969266*i+1.8760108*r+.041556*u),yn(.0556434*i-.2040259*r+1.0572252*u))}function gn(n,t,e){return n>0?new fn(Math.atan2(e,t)*Zo,Math.sqrt(t*t+e*e),n):new fn(NaN,NaN,n)}function vn(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function dn(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function yn(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function mn(n,t,e){return this instanceof mn?(this.r=~~n,this.g=~~t,void(this.b=~~e)):arguments.length<2?n instanceof mn?new mn(n.r,n.g,n.b):_n(""+n,mn,cn):new mn(n,t,e)}function Mn(n){return new mn(n>>16,n>>8&255,255&n)}function xn(n){return Mn(n)+""}function bn(n){return 16>n?"0"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function _n(n,t,e){var r,i,u,o=0,a=0,l=0;if(r=/([a-z]+)\((.*)\)/.exec(n=n.toLowerCase()))switch(i=r[2].split(","),r[1]){case"hsl":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case"rgb":return t(Nn(i[0]),Nn(i[1]),Nn(i[2]))}return(u=ua.get(n))?t(u.r,u.g,u.b):(null==n||"#"!==n.charAt(0)||isNaN(u=parseInt(n.slice(1),16))||(4===n.length?(o=(3840&u)>>4,o=o>>4|o,a=240&u,a=a>>4|a,l=15&u,l=l<<4|l):7===n.length&&(o=(16711680&u)>>16,a=(65280&u)>>8,l=255&u)),t(o,a,l))}function wn(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),o=Math.max(n,t,e),a=o-u,l=(o+u)/2;return a?(i=.5>l?a/(o+u):a/(2-o-u),r=n==o?(t-e)/a+(e>t?6:0):t==o?(e-n)/a+2:(n-t)/a+4,r*=60):(r=NaN,i=l>0&&1>l?0:r),new ln(r,i,l)}function Sn(n,t,e){n=kn(n),t=kn(t),e=kn(e);var r=dn((.4124564*n+.3575761*t+.1804375*e)/na),i=dn((.2126729*n+.7151522*t+.072175*e)/ta),u=dn((.0193339*n+.119192*t+.9503041*e)/ea);return hn(116*i-16,500*(r-i),200*(i-u))}function kn(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function Nn(n){var t=parseFloat(n);return"%"===n.charAt(n.length-1)?Math.round(2.55*t):t}function En(n){return"function"==typeof n?n:function(){return n}}function An(n){return function(t,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=null),Cn(t,e,n,r)}}function Cn(n,t,e,r){function i(){var n,t=l.status;if(!t&&Ln(l)||t>=200&&300>t||304===t){try{n=e.call(u,l)}catch(r){return void o.error.call(u,r)}o.load.call(u,n)}else o.error.call(u,l)}var u={},o=ao.dispatch("beforesend","progress","load","error"),a={},l=new XMLHttpRequest,c=null;return!this.XDomainRequest||"withCredentials"in l||!/^(http(s)?:)?\/\//.test(n)||(l=new XDomainRequest),"onload"in l?l.onload=l.onerror=i:l.onreadystatechange=function(){l.readyState>3&&i()},l.onprogress=function(n){var t=ao.event;ao.event=n;try{o.progress.call(u,l)}finally{ao.event=t}},u.header=function(n,t){return n=(n+"").toLowerCase(),arguments.length<2?a[n]:(null==t?delete a[n]:a[n]=t+"",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+"",u):t},u.responseType=function(n){return arguments.length?(c=n,u):c},u.response=function(n){return e=n,u},["get","post"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(co(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&"function"==typeof r&&(i=r,r=null),l.open(e,n,!0),null==t||"accept"in a||(a.accept=t+",*/*"),l.setRequestHeader)for(var f in a)l.setRequestHeader(f,a[f]);return null!=t&&l.overrideMimeType&&l.overrideMimeType(t),null!=c&&(l.responseType=c),null!=i&&u.on("error",i).on("load",function(n){i(null,n)}),o.beforesend.call(u,l),l.send(null==r?null:r),u},u.abort=function(){return l.abort(),u},ao.rebind(u,o,"on"),null==r?u:u.get(zn(r))}function zn(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function Ln(n){var t=n.responseType;return t&&"text"!==t?n.response:n.responseText}function qn(n,t,e){var r=arguments.length;2>r&&(t=0),3>r&&(e=Date.now());var i=e+t,u={c:n,t:i,n:null};return aa?aa.n=u:oa=u,aa=u,la||(ca=clearTimeout(ca),la=1,fa(Tn)),u}function Tn(){var n=Rn(),t=Dn()-n;t>24?(isFinite(t)&&(clearTimeout(ca),ca=setTimeout(Tn,t)),la=0):(la=1,fa(Tn))}function Rn(){for(var n=Date.now(),t=oa;t;)n>=t.t&&t.c(n-t.t)&&(t.c=null),t=t.n;return n}function Dn(){for(var n,t=oa,e=1/0;t;)t.c?(t.t8?function(n){return n/e}:function(n){return n*e},symbol:n}}function jn(n){var t=n.decimal,e=n.thousands,r=n.grouping,i=n.currency,u=r&&e?function(n,t){for(var i=n.length,u=[],o=0,a=r[0],l=0;i>0&&a>0&&(l+a+1>t&&(a=Math.max(1,t-l)),u.push(n.substring(i-=a,i+a)),!((l+=a+1)>t));)a=r[o=(o+1)%r.length];return u.reverse().join(e)}:m;return function(n){var e=ha.exec(n),r=e[1]||" ",o=e[2]||">",a=e[3]||"-",l=e[4]||"",c=e[5],f=+e[6],s=e[7],h=e[8],p=e[9],g=1,v="",d="",y=!1,m=!0;switch(h&&(h=+h.substring(1)),(c||"0"===r&&"="===o)&&(c=r="0",o="="),p){case"n":s=!0,p="g";break;case"%":g=100,d="%",p="f";break;case"p":g=100,d="%",p="r";break;case"b":case"o":case"x":case"X":"#"===l&&(v="0"+p.toLowerCase());case"c":m=!1;case"d":y=!0,h=0;break;case"s":g=-1,p="r"}"$"===l&&(v=i[0],d=i[1]),"r"!=p||h||(p="g"),null!=h&&("g"==p?h=Math.max(1,Math.min(21,h)):"e"!=p&&"f"!=p||(h=Math.max(0,Math.min(20,h)))),p=pa.get(p)||Fn;var M=c&&s;return function(n){var e=d;if(y&&n%1)return"";var i=0>n||0===n&&0>1/n?(n=-n,"-"):"-"===a?"":a;if(0>g){var l=ao.formatPrefix(n,h);n=l.scale(n),e=l.symbol+d}else n*=g;n=p(n,h);var x,b,_=n.lastIndexOf(".");if(0>_){var w=m?n.lastIndexOf("e"):-1;0>w?(x=n,b=""):(x=n.substring(0,w),b=n.substring(w))}else x=n.substring(0,_),b=t+n.substring(_+1);!c&&s&&(x=u(x,1/0));var S=v.length+x.length+b.length+(M?0:i.length),k=f>S?new Array(S=f-S+1).join(r):"";return M&&(x=u(k+x,k.length?f-b.length:1/0)),i+=v,n=x+b,("<"===o?i+n+k:">"===o?k+i+n:"^"===o?k.substring(0,S>>=1)+i+n+k.substring(S):i+(M?n:k+n))+e}}}function Fn(n){return n+""}function Hn(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function On(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new va(e-1)),1),e}function u(n,e){return t(n=new va(+n),e),n}function o(n,r,u){var o=i(n),a=[];if(u>1)for(;r>o;)e(o)%u||a.push(new Date(+o)),t(o,1);else for(;r>o;)a.push(new Date(+o)),t(o,1);return a}function a(n,t,e){try{va=Hn;var r=new Hn;return r._=n,o(r,t,e)}finally{va=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=o;var l=n.utc=In(n);return l.floor=l,l.round=In(r),l.ceil=In(i),l.offset=In(u),l.range=a,n}function In(n){return function(t,e){try{va=Hn;var r=new Hn;return r._=t,n(r,e)._}finally{va=Date}}}function Yn(n){function t(n){function t(t){for(var e,i,u,o=[],a=-1,l=0;++aa;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(o=t.charAt(a++),u=C[o in ya?t.charAt(a++):o],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function r(n,t,e){_.lastIndex=0;var r=_.exec(t.slice(e));return r?(n.w=w.get(r[0].toLowerCase()),e+r[0].length):-1}function i(n,t,e){x.lastIndex=0;var r=x.exec(t.slice(e));return r?(n.w=b.get(r[0].toLowerCase()),e+r[0].length):-1}function u(n,t,e){N.lastIndex=0;var r=N.exec(t.slice(e));return r?(n.m=E.get(r[0].toLowerCase()),e+r[0].length):-1}function o(n,t,e){S.lastIndex=0;var r=S.exec(t.slice(e));return r?(n.m=k.get(r[0].toLowerCase()),e+r[0].length):-1}function a(n,t,r){return e(n,A.c.toString(),t,r)}function l(n,t,r){return e(n,A.x.toString(),t,r)}function c(n,t,r){return e(n,A.X.toString(),t,r)}function f(n,t,e){var r=M.get(t.slice(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}var s=n.dateTime,h=n.date,p=n.time,g=n.periods,v=n.days,d=n.shortDays,y=n.months,m=n.shortMonths;t.utc=function(n){function e(n){try{va=Hn;var t=new va;return t._=n,r(t)}finally{va=Date}}var r=t(n);return e.parse=function(n){try{va=Hn;var t=r.parse(n);return t&&t._}finally{va=Date}},e.toString=r.toString,e},t.multi=t.utc.multi=ct;var M=ao.map(),x=Vn(v),b=Xn(v),_=Vn(d),w=Xn(d),S=Vn(y),k=Xn(y),N=Vn(m),E=Xn(m);g.forEach(function(n,t){M.set(n.toLowerCase(),t)});var A={a:function(n){return d[n.getDay()]},A:function(n){return v[n.getDay()]},b:function(n){return m[n.getMonth()]},B:function(n){return y[n.getMonth()]},c:t(s),d:function(n,t){return Zn(n.getDate(),t,2)},e:function(n,t){return Zn(n.getDate(),t,2)},H:function(n,t){return Zn(n.getHours(),t,2)},I:function(n,t){return Zn(n.getHours()%12||12,t,2)},j:function(n,t){return Zn(1+ga.dayOfYear(n),t,3)},L:function(n,t){return Zn(n.getMilliseconds(),t,3)},m:function(n,t){return Zn(n.getMonth()+1,t,2)},M:function(n,t){return Zn(n.getMinutes(),t,2)},p:function(n){return g[+(n.getHours()>=12)]},S:function(n,t){return Zn(n.getSeconds(),t,2)},U:function(n,t){return Zn(ga.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Zn(ga.mondayOfYear(n),t,2)},x:t(h),X:t(p),y:function(n,t){return Zn(n.getFullYear()%100,t,2)},Y:function(n,t){return Zn(n.getFullYear()%1e4,t,4)},Z:at,"%":function(){return"%"}},C={a:r,A:i,b:u,B:o,c:a,d:tt,e:tt,H:rt,I:rt,j:et,L:ot,m:nt,M:it,p:f,S:ut,U:Bn,w:$n,W:Wn,x:l,X:c,y:Gn,Y:Jn,Z:Kn,"%":lt};return t}function Zn(n,t,e){var r=0>n?"-":"",i=(r?-n:n)+"",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Vn(n){return new RegExp("^(?:"+n.map(ao.requote).join("|")+")","i")}function Xn(n){for(var t=new c,e=-1,r=n.length;++e68?1900:2e3)}function nt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function tt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function et(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function rt(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function it(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function ut(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ot(n,t,e){ma.lastIndex=0;var r=ma.exec(t.slice(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function at(n){var t=n.getTimezoneOffset(),e=t>0?"-":"+",r=xo(t)/60|0,i=xo(t)%60;return e+Zn(r,"0",2)+Zn(i,"0",2)}function lt(n,t,e){Ma.lastIndex=0;var r=Ma.exec(t.slice(e,e+1));return r?e+r[0].length:-1}function ct(n){for(var t=n.length,e=-1;++e=0?1:-1,a=o*e,l=Math.cos(t),c=Math.sin(t),f=u*c,s=i*l+f*Math.cos(a),h=f*o*Math.sin(a);ka.add(Math.atan2(h,s)),r=n,i=l,u=c}var t,e,r,i,u;Na.point=function(o,a){Na.point=n,r=(t=o)*Yo,i=Math.cos(a=(e=a)*Yo/2+Fo/4),u=Math.sin(a)},Na.lineEnd=function(){n(t,e)}}function dt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function yt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function mt(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function Mt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function xt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function bt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function _t(n){return[Math.atan2(n[1],n[0]),tn(n[2])]}function wt(n,t){return xo(n[0]-t[0])a;++a)i.point((e=n[a])[0],e[1]);return void i.lineEnd()}var l=new Tt(e,n,null,!0),c=new Tt(e,null,l,!1);l.o=c,u.push(l),o.push(c),l=new Tt(r,n,null,!1),c=new Tt(r,null,l,!0),l.o=c,u.push(l),o.push(c)}}),o.sort(t),qt(u),qt(o),u.length){for(var a=0,l=e,c=o.length;c>a;++a)o[a].e=l=!l;for(var f,s,h=u[0];;){for(var p=h,g=!0;p.v;)if((p=p.n)===h)return;f=p.z,i.lineStart();do{if(p.v=p.o.v=!0,p.e){if(g)for(var a=0,c=f.length;c>a;++a)i.point((s=f[a])[0],s[1]);else r(p.x,p.n.x,1,i);p=p.n}else{if(g){f=p.p.z;for(var a=f.length-1;a>=0;--a)i.point((s=f[a])[0],s[1])}else r(p.x,p.p.x,-1,i);p=p.p}p=p.o,f=p.z,g=!g}while(!p.v);i.lineEnd()}}}function qt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r0){for(b||(u.polygonStart(),b=!0),u.lineStart();++o1&&2&t&&e.push(e.pop().concat(e.shift())),p.push(e.filter(Dt))}var p,g,v,d=t(u),y=i.invert(r[0],r[1]),m={point:o,lineStart:l,lineEnd:c,polygonStart:function(){m.point=f,m.lineStart=s,m.lineEnd=h,p=[],g=[]},polygonEnd:function(){m.point=o,m.lineStart=l,m.lineEnd=c,p=ao.merge(p);var n=Ot(y,g);p.length?(b||(u.polygonStart(),b=!0),Lt(p,Ut,n,e,u)):n&&(b||(u.polygonStart(),b=!0),u.lineStart(),e(null,null,1,u),u.lineEnd()),b&&(u.polygonEnd(),b=!1),p=g=null},sphere:function(){u.polygonStart(),u.lineStart(),e(null,null,1,u),u.lineEnd(),u.polygonEnd()}},M=Pt(),x=t(M),b=!1;return m}}function Dt(n){return n.length>1}function Pt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:b,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function Ut(n,t){return((n=n.x)[0]<0?n[1]-Io-Uo:Io-n[1])-((t=t.x)[0]<0?t[1]-Io-Uo:Io-t[1])}function jt(n){var t,e=NaN,r=NaN,i=NaN;return{lineStart:function(){n.lineStart(),t=1},point:function(u,o){var a=u>0?Fo:-Fo,l=xo(u-e);xo(l-Fo)0?Io:-Io),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(a,r),n.point(u,r),t=0):i!==a&&l>=Fo&&(xo(e-i)Uo?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*o)):(t+r)/2}function Ht(n,t,e,r){var i;if(null==n)i=e*Io,r.point(-Fo,i),r.point(0,i),r.point(Fo,i),r.point(Fo,0),r.point(Fo,-i),r.point(0,-i),r.point(-Fo,-i),r.point(-Fo,0),r.point(-Fo,i);else if(xo(n[0]-t[0])>Uo){var u=n[0]a;++a){var c=t[a],f=c.length;if(f)for(var s=c[0],h=s[0],p=s[1]/2+Fo/4,g=Math.sin(p),v=Math.cos(p),d=1;;){d===f&&(d=0),n=c[d];var y=n[0],m=n[1]/2+Fo/4,M=Math.sin(m),x=Math.cos(m),b=y-h,_=b>=0?1:-1,w=_*b,S=w>Fo,k=g*M;if(ka.add(Math.atan2(k*_*Math.sin(w),v*x+k*Math.cos(w))),u+=S?b+_*Ho:b,S^h>=e^y>=e){var N=mt(dt(s),dt(n));bt(N);var E=mt(i,N);bt(E);var A=(S^b>=0?-1:1)*tn(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(o+=S^b>=0?1:-1)}if(!d++)break;h=y,g=M,v=x,s=n}}return(-Uo>u||Uo>u&&-Uo>ka)^1&o}function It(n){function t(n,t){return Math.cos(n)*Math.cos(t)>u}function e(n){var e,u,l,c,f;return{lineStart:function(){c=l=!1,f=1},point:function(s,h){var p,g=[s,h],v=t(s,h),d=o?v?0:i(s,h):v?i(s+(0>s?Fo:-Fo),h):0;if(!e&&(c=l=v)&&n.lineStart(),v!==l&&(p=r(e,g),(wt(e,p)||wt(g,p))&&(g[0]+=Uo,g[1]+=Uo,v=t(g[0],g[1]))),v!==l)f=0,v?(n.lineStart(),p=r(g,e),n.point(p[0],p[1])):(p=r(e,g),n.point(p[0],p[1]),n.lineEnd()),e=p;else if(a&&e&&o^v){var y;d&u||!(y=r(g,e,!0))||(f=0,o?(n.lineStart(),n.point(y[0][0],y[0][1]),n.point(y[1][0],y[1][1]),n.lineEnd()):(n.point(y[1][0],y[1][1]),n.lineEnd(),n.lineStart(),n.point(y[0][0],y[0][1])))}!v||e&&wt(e,g)||n.point(g[0],g[1]),e=g,l=v,u=d},lineEnd:function(){l&&n.lineEnd(),e=null},clean:function(){return f|(c&&l)<<1}}}function r(n,t,e){var r=dt(n),i=dt(t),o=[1,0,0],a=mt(r,i),l=yt(a,a),c=a[0],f=l-c*c;if(!f)return!e&&n;var s=u*l/f,h=-u*c/f,p=mt(o,a),g=xt(o,s),v=xt(a,h);Mt(g,v);var d=p,y=yt(g,d),m=yt(d,d),M=y*y-m*(yt(g,g)-1);if(!(0>M)){var x=Math.sqrt(M),b=xt(d,(-y-x)/m);if(Mt(b,g),b=_t(b),!e)return b;var _,w=n[0],S=t[0],k=n[1],N=t[1];w>S&&(_=w,w=S,S=_);var E=S-w,A=xo(E-Fo)E;if(!A&&k>N&&(_=k,k=N,N=_),C?A?k+N>0^b[1]<(xo(b[0]-w)Fo^(w<=b[0]&&b[0]<=S)){var z=xt(d,(-y+x)/m);return Mt(z,g),[b,_t(z)]}}}function i(t,e){var r=o?n:Fo-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}var u=Math.cos(n),o=u>0,a=xo(u)>Uo,l=ve(n,6*Yo);return Rt(t,e,l,o?[0,-n]:[-Fo,n-Fo])}function Yt(n,t,e,r){return function(i){var u,o=i.a,a=i.b,l=o.x,c=o.y,f=a.x,s=a.y,h=0,p=1,g=f-l,v=s-c;if(u=n-l,g||!(u>0)){if(u/=g,0>g){if(h>u)return;p>u&&(p=u)}else if(g>0){if(u>p)return;u>h&&(h=u)}if(u=e-l,g||!(0>u)){if(u/=g,0>g){if(u>p)return;u>h&&(h=u)}else if(g>0){if(h>u)return;p>u&&(p=u)}if(u=t-c,v||!(u>0)){if(u/=v,0>v){if(h>u)return;p>u&&(p=u)}else if(v>0){if(u>p)return;u>h&&(h=u)}if(u=r-c,v||!(0>u)){if(u/=v,0>v){if(u>p)return;u>h&&(h=u)}else if(v>0){if(h>u)return;p>u&&(p=u)}return h>0&&(i.a={x:l+h*g,y:c+h*v}),1>p&&(i.b={x:l+p*g,y:c+p*v}),i}}}}}}function Zt(n,t,e,r){function i(r,i){return xo(r[0]-n)0?0:3:xo(r[0]-e)0?2:1:xo(r[1]-t)0?1:0:i>0?3:2}function u(n,t){return o(n.x,t.x)}function o(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}return function(a){function l(n){for(var t=0,e=d.length,r=n[1],i=0;e>i;++i)for(var u,o=1,a=d[i],l=a.length,c=a[0];l>o;++o)u=a[o],c[1]<=r?u[1]>r&&Q(c,u,n)>0&&++t:u[1]<=r&&Q(c,u,n)<0&&--t,c=u;return 0!==t}function c(u,a,l,c){var f=0,s=0;if(null==u||(f=i(u,l))!==(s=i(a,l))||o(u,a)<0^l>0){do c.point(0===f||3===f?n:e,f>1?r:t);while((f=(f+l+4)%4)!==s)}else c.point(a[0],a[1])}function f(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function s(n,t){f(n,t)&&a.point(n,t)}function h(){C.point=g,d&&d.push(y=[]),S=!0,w=!1,b=_=NaN}function p(){v&&(g(m,M),x&&w&&E.rejoin(),v.push(E.buffer())),C.point=s,w&&a.lineEnd()}function g(n,t){n=Math.max(-Ha,Math.min(Ha,n)),t=Math.max(-Ha,Math.min(Ha,t));var e=f(n,t);if(d&&y.push([n,t]),S)m=n,M=t,x=e,S=!1,e&&(a.lineStart(),a.point(n,t));else if(e&&w)a.point(n,t);else{var r={a:{x:b,y:_},b:{x:n,y:t}};A(r)?(w||(a.lineStart(),a.point(r.a.x,r.a.y)),a.point(r.b.x,r.b.y),e||a.lineEnd(),k=!1):e&&(a.lineStart(),a.point(n,t),k=!1)}b=n,_=t,w=e}var v,d,y,m,M,x,b,_,w,S,k,N=a,E=Pt(),A=Yt(n,t,e,r),C={point:s,lineStart:h,lineEnd:p,polygonStart:function(){a=E,v=[],d=[],k=!0},polygonEnd:function(){a=N,v=ao.merge(v);var t=l([n,r]),e=k&&t,i=v.length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),c(null,null,1,a),a.lineEnd()),i&&Lt(v,u,t,c,a),a.polygonEnd()),v=d=y=null}};return C}}function Vt(n){var t=0,e=Fo/3,r=ae(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Fo/180,e=n[1]*Fo/180):[t/Fo*180,e/Fo*180]},i}function Xt(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),o-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),o=Math.sqrt(u)/i;return e.invert=function(n,t){var e=o-t;return[Math.atan2(n,e)/i,tn((u-(n*n+e*e)*i*i)/(2*i))]},e}function $t(){function n(n,t){Ia+=i*n-r*t,r=n,i=t}var t,e,r,i;$a.point=function(u,o){$a.point=n,t=r=u,e=i=o},$a.lineEnd=function(){n(t,e)}}function Bt(n,t){Ya>n&&(Ya=n),n>Va&&(Va=n),Za>t&&(Za=t),t>Xa&&(Xa=t)}function Wt(){function n(n,t){o.push("M",n,",",t,u)}function t(n,t){o.push("M",n,",",t),a.point=e}function e(n,t){o.push("L",n,",",t)}function r(){a.point=n}function i(){o.push("Z")}var u=Jt(4.5),o=[],a={point:n,lineStart:function(){a.point=t},lineEnd:r,polygonStart:function(){a.lineEnd=i},polygonEnd:function(){a.lineEnd=r,a.point=n},pointRadius:function(n){return u=Jt(n),a},result:function(){if(o.length){var n=o.join("");return o=[],n}}};return a}function Jt(n){return"m0,"+n+"a"+n+","+n+" 0 1,1 0,"+-2*n+"a"+n+","+n+" 0 1,1 0,"+2*n+"z"}function Gt(n,t){Ca+=n,za+=t,++La}function Kt(){function n(n,r){var i=n-t,u=r-e,o=Math.sqrt(i*i+u*u);qa+=o*(t+n)/2,Ta+=o*(e+r)/2,Ra+=o,Gt(t=n,e=r)}var t,e;Wa.point=function(r,i){Wa.point=n,Gt(t=r,e=i)}}function Qt(){Wa.point=Gt}function ne(){function n(n,t){var e=n-r,u=t-i,o=Math.sqrt(e*e+u*u);qa+=o*(r+n)/2,Ta+=o*(i+t)/2,Ra+=o,o=i*n-r*t,Da+=o*(r+n),Pa+=o*(i+t),Ua+=3*o,Gt(r=n,i=t)}var t,e,r,i;Wa.point=function(u,o){Wa.point=n,Gt(t=r=u,e=i=o)},Wa.lineEnd=function(){n(t,e)}}function te(n){function t(t,e){n.moveTo(t+o,e),n.arc(t,e,o,0,Ho)}function e(t,e){n.moveTo(t,e),a.point=r}function r(t,e){n.lineTo(t,e)}function i(){a.point=t}function u(){n.closePath()}var o=4.5,a={point:t,lineStart:function(){a.point=e},lineEnd:i,polygonStart:function(){a.lineEnd=u},polygonEnd:function(){a.lineEnd=i,a.point=t},pointRadius:function(n){return o=n,a},result:b};return a}function ee(n){function t(n){return(a?r:e)(n)}function e(t){return ue(t,function(e,r){e=n(e,r),t.point(e[0],e[1])})}function r(t){function e(e,r){e=n(e,r),t.point(e[0],e[1])}function r(){M=NaN,S.point=u,t.lineStart()}function u(e,r){var u=dt([e,r]),o=n(e,r);i(M,x,m,b,_,w,M=o[0],x=o[1],m=e,b=u[0],_=u[1],w=u[2],a,t),t.point(M,x)}function o(){S.point=e,t.lineEnd()}function l(){ +r(),S.point=c,S.lineEnd=f}function c(n,t){u(s=n,h=t),p=M,g=x,v=b,d=_,y=w,S.point=u}function f(){i(M,x,m,b,_,w,p,g,s,v,d,y,a,t),S.lineEnd=o,o()}var s,h,p,g,v,d,y,m,M,x,b,_,w,S={point:e,lineStart:r,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=l},polygonEnd:function(){t.polygonEnd(),S.lineStart=r}};return S}function i(t,e,r,a,l,c,f,s,h,p,g,v,d,y){var m=f-t,M=s-e,x=m*m+M*M;if(x>4*u&&d--){var b=a+p,_=l+g,w=c+v,S=Math.sqrt(b*b+_*_+w*w),k=Math.asin(w/=S),N=xo(xo(w)-1)u||xo((m*z+M*L)/x-.5)>.3||o>a*p+l*g+c*v)&&(i(t,e,r,a,l,c,A,C,N,b/=S,_/=S,w,d,y),y.point(A,C),i(A,C,N,b,_,w,f,s,h,p,g,v,d,y))}}var u=.5,o=Math.cos(30*Yo),a=16;return t.precision=function(n){return arguments.length?(a=(u=n*n)>0&&16,t):Math.sqrt(u)},t}function re(n){var t=ee(function(t,e){return n([t*Zo,e*Zo])});return function(n){return le(t(n))}}function ie(n){this.stream=n}function ue(n,t){return{point:t,sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}function oe(n){return ae(function(){return n})()}function ae(n){function t(n){return n=a(n[0]*Yo,n[1]*Yo),[n[0]*h+l,c-n[1]*h]}function e(n){return n=a.invert((n[0]-l)/h,(c-n[1])/h),n&&[n[0]*Zo,n[1]*Zo]}function r(){a=Ct(o=se(y,M,x),u);var n=u(v,d);return l=p-n[0]*h,c=g+n[1]*h,i()}function i(){return f&&(f.valid=!1,f=null),t}var u,o,a,l,c,f,s=ee(function(n,t){return n=u(n,t),[n[0]*h+l,c-n[1]*h]}),h=150,p=480,g=250,v=0,d=0,y=0,M=0,x=0,b=Fa,_=m,w=null,S=null;return t.stream=function(n){return f&&(f.valid=!1),f=le(b(o,s(_(n)))),f.valid=!0,f},t.clipAngle=function(n){return arguments.length?(b=null==n?(w=n,Fa):It((w=+n)*Yo),i()):w},t.clipExtent=function(n){return arguments.length?(S=n,_=n?Zt(n[0][0],n[0][1],n[1][0],n[1][1]):m,i()):S},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(p=+n[0],g=+n[1],r()):[p,g]},t.center=function(n){return arguments.length?(v=n[0]%360*Yo,d=n[1]%360*Yo,r()):[v*Zo,d*Zo]},t.rotate=function(n){return arguments.length?(y=n[0]%360*Yo,M=n[1]%360*Yo,x=n.length>2?n[2]%360*Yo:0,r()):[y*Zo,M*Zo,x*Zo]},ao.rebind(t,s,"precision"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function le(n){return ue(n,function(t,e){n.point(t*Yo,e*Yo)})}function ce(n,t){return[n,t]}function fe(n,t){return[n>Fo?n-Ho:-Fo>n?n+Ho:n,t]}function se(n,t,e){return n?t||e?Ct(pe(n),ge(t,e)):pe(n):t||e?ge(t,e):fe}function he(n){return function(t,e){return t+=n,[t>Fo?t-Ho:-Fo>t?t+Ho:t,e]}}function pe(n){var t=he(n);return t.invert=he(-n),t}function ge(n,t){function e(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*r+a*i;return[Math.atan2(l*u-f*o,a*r-c*i),tn(f*u+l*o)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),o=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),a=Math.cos(n)*e,l=Math.sin(n)*e,c=Math.sin(t),f=c*u-l*o;return[Math.atan2(l*u+c*o,a*r+f*i),tn(f*r-a*i)]},e}function ve(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,o,a){var l=o*t;null!=i?(i=de(e,i),u=de(e,u),(o>0?u>i:i>u)&&(i+=o*Ho)):(i=n+o*Ho,u=n-.5*l);for(var c,f=i;o>0?f>u:u>f;f-=l)a.point((c=_t([e,-r*Math.cos(f),-r*Math.sin(f)]))[0],c[1])}}function de(n,t){var e=dt(t);e[0]-=n,bt(e);var r=nn(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Uo)%(2*Math.PI)}function ye(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function me(n,t,e){var r=ao.range(n,t-Uo,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function Me(n){return n.source}function xe(n){return n.target}function be(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),o=Math.cos(r),a=Math.sin(r),l=i*Math.cos(n),c=i*Math.sin(n),f=o*Math.cos(e),s=o*Math.sin(e),h=2*Math.asin(Math.sqrt(on(r-t)+i*o*on(e-n))),p=1/Math.sin(h),g=h?function(n){var t=Math.sin(n*=h)*p,e=Math.sin(h-n)*p,r=e*l+t*f,i=e*c+t*s,o=e*u+t*a;return[Math.atan2(i,r)*Zo,Math.atan2(o,Math.sqrt(r*r+i*i))*Zo]}:function(){return[n*Zo,t*Zo]};return g.distance=h,g}function _e(){function n(n,i){var u=Math.sin(i*=Yo),o=Math.cos(i),a=xo((n*=Yo)-t),l=Math.cos(a);Ja+=Math.atan2(Math.sqrt((a=o*Math.sin(a))*a+(a=r*u-e*o*l)*a),e*u+r*o*l),t=n,e=u,r=o}var t,e,r;Ga.point=function(i,u){t=i*Yo,e=Math.sin(u*=Yo),r=Math.cos(u),Ga.point=n},Ga.lineEnd=function(){Ga.point=Ga.lineEnd=b}}function we(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),o=Math.cos(i);return[Math.atan2(n*u,r*o),Math.asin(r&&e*u/r)]},e}function Se(n,t){function e(n,t){o>0?-Io+Uo>t&&(t=-Io+Uo):t>Io-Uo&&(t=Io-Uo);var e=o/Math.pow(i(t),u);return[e*Math.sin(u*n),o-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Fo/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),o=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=o-t,r=K(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(o/r,1/u))-Io]},e):Ne}function ke(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return xo(i)i;i++){for(;r>1&&Q(n[e[r-2]],n[e[r-1]],n[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function qe(n,t){return n[0]-t[0]||n[1]-t[1]}function Te(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function Re(n,t,e,r){var i=n[0],u=e[0],o=t[0]-i,a=r[0]-u,l=n[1],c=e[1],f=t[1]-l,s=r[1]-c,h=(a*(l-c)-s*(i-u))/(s*o-a*f);return[i+h*o,l+h*f]}function De(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function Pe(){rr(this),this.edge=this.site=this.circle=null}function Ue(n){var t=cl.pop()||new Pe;return t.site=n,t}function je(n){Be(n),ol.remove(n),cl.push(n),rr(n)}function Fe(n){var t=n.circle,e=t.x,r=t.cy,i={x:e,y:r},u=n.P,o=n.N,a=[n];je(n);for(var l=u;l.circle&&xo(e-l.circle.x)f;++f)c=a[f],l=a[f-1],nr(c.edge,l.site,c.site,i);l=a[0],c=a[s-1],c.edge=Ke(l.site,c.site,null,i),$e(l),$e(c)}function He(n){for(var t,e,r,i,u=n.x,o=n.y,a=ol._;a;)if(r=Oe(a,o)-u,r>Uo)a=a.L;else{if(i=u-Ie(a,o),!(i>Uo)){r>-Uo?(t=a.P,e=a):i>-Uo?(t=a,e=a.N):t=e=a;break}if(!a.R){t=a;break}a=a.R}var l=Ue(n);if(ol.insert(t,l),t||e){if(t===e)return Be(t),e=Ue(t.site),ol.insert(l,e),l.edge=e.edge=Ke(t.site,l.site),$e(t),void $e(e);if(!e)return void(l.edge=Ke(t.site,l.site));Be(t),Be(e);var c=t.site,f=c.x,s=c.y,h=n.x-f,p=n.y-s,g=e.site,v=g.x-f,d=g.y-s,y=2*(h*d-p*v),m=h*h+p*p,M=v*v+d*d,x={x:(d*m-p*M)/y+f,y:(h*M-v*m)/y+s};nr(e.edge,c,g,x),l.edge=Ke(c,n,null,x),e.edge=Ke(n,g,null,x),$e(t),$e(e)}}function Oe(n,t){var e=n.site,r=e.x,i=e.y,u=i-t;if(!u)return r;var o=n.P;if(!o)return-(1/0);e=o.site;var a=e.x,l=e.y,c=l-t;if(!c)return a;var f=a-r,s=1/u-1/c,h=f/c;return s?(-h+Math.sqrt(h*h-2*s*(f*f/(-2*c)-l+c/2+i-u/2)))/s+r:(r+a)/2}function Ie(n,t){var e=n.N;if(e)return Oe(e,t);var r=n.site;return r.y===t?r.x:1/0}function Ye(n){this.site=n,this.edges=[]}function Ze(n){for(var t,e,r,i,u,o,a,l,c,f,s=n[0][0],h=n[1][0],p=n[0][1],g=n[1][1],v=ul,d=v.length;d--;)if(u=v[d],u&&u.prepare())for(a=u.edges,l=a.length,o=0;l>o;)f=a[o].end(),r=f.x,i=f.y,c=a[++o%l].start(),t=c.x,e=c.y,(xo(r-t)>Uo||xo(i-e)>Uo)&&(a.splice(o,0,new tr(Qe(u.site,f,xo(r-s)Uo?{x:s,y:xo(t-s)Uo?{x:xo(e-g)Uo?{x:h,y:xo(t-h)Uo?{x:xo(e-p)=-jo)){var p=l*l+c*c,g=f*f+s*s,v=(s*p-c*g)/h,d=(l*g-f*p)/h,s=d+a,y=fl.pop()||new Xe;y.arc=n,y.site=i,y.x=v+o,y.y=s+Math.sqrt(v*v+d*d),y.cy=s,n.circle=y;for(var m=null,M=ll._;M;)if(y.yd||d>=a)return;if(h>g){if(u){if(u.y>=c)return}else u={x:d,y:l};e={x:d,y:c}}else{if(u){if(u.yr||r>1)if(h>g){if(u){if(u.y>=c)return}else u={x:(l-i)/r,y:l};e={x:(c-i)/r,y:c}}else{if(u){if(u.yp){if(u){if(u.x>=a)return}else u={x:o,y:r*o+i};e={x:a,y:r*a+i}}else{if(u){if(u.xu||s>o||r>h||i>p)){if(g=n.point){var g,v=t-n.x,d=e-n.y,y=v*v+d*d;if(l>y){var m=Math.sqrt(l=y);r=t-m,i=e-m,u=t+m,o=e+m,a=g}}for(var M=n.nodes,x=.5*(f+h),b=.5*(s+p),_=t>=x,w=e>=b,S=w<<1|_,k=S+4;k>S;++S)if(n=M[3&S])switch(3&S){case 0:c(n,f,s,x,b);break;case 1:c(n,x,s,h,b);break;case 2:c(n,f,b,x,p);break;case 3:c(n,x,b,h,p)}}}(n,r,i,u,o),a}function vr(n,t){n=ao.rgb(n),t=ao.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,o=t.g-r,a=t.b-i;return function(n){return"#"+bn(Math.round(e+u*n))+bn(Math.round(r+o*n))+bn(Math.round(i+a*n))}}function dr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=Mr(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function yr(n,t){return n=+n,t=+t,function(e){return n*(1-e)+t*e}}function mr(n,t){var e,r,i,u=hl.lastIndex=pl.lastIndex=0,o=-1,a=[],l=[];for(n+="",t+="";(e=hl.exec(n))&&(r=pl.exec(t));)(i=r.index)>u&&(i=t.slice(u,i),a[o]?a[o]+=i:a[++o]=i),(e=e[0])===(r=r[0])?a[o]?a[o]+=r:a[++o]=r:(a[++o]=null,l.push({i:o,x:yr(e,r)})),u=pl.lastIndex;return ur;++r)a[(e=l[r]).i]=e.x(n);return a.join("")})}function Mr(n,t){for(var e,r=ao.interpolators.length;--r>=0&&!(e=ao.interpolators[r](n,t)););return e}function xr(n,t){var e,r=[],i=[],u=n.length,o=t.length,a=Math.min(n.length,t.length);for(e=0;a>e;++e)r.push(Mr(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;o>e;++e)i[e]=t[e];return function(n){for(e=0;a>e;++e)i[e]=r[e](n);return i}}function br(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function _r(n){return function(t){return 1-n(1-t)}}function wr(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function Sr(n){return n*n}function kr(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function Er(n){return function(t){return Math.pow(t,n)}}function Ar(n){return 1-Math.cos(n*Io)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Lr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/Ho*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,-10*r)*Math.sin((r-e)*Ho/t)}}function qr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Tr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Rr(n,t){n=ao.hcl(n),t=ao.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,o=t.c-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return sn(e+u*n,r+o*n,i+a*n)+""}}function Dr(n,t){n=ao.hsl(n),t=ao.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,o=t.s-r,a=t.l-i;return isNaN(o)&&(o=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(n){return cn(e+u*n,r+o*n,i+a*n)+""}}function Pr(n,t){n=ao.lab(n),t=ao.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,o=t.a-r,a=t.b-i;return function(n){return pn(e+u*n,r+o*n,i+a*n)+""}}function Ur(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function jr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Hr(t),i=Fr(t,e),u=Hr(Or(e,t,-i))||0;t[0]*e[1]180?t+=360:t-n>180&&(n+=360),r.push({i:e.push(Ir(e)+"rotate(",null,")")-2,x:yr(n,t)})):t&&e.push(Ir(e)+"rotate("+t+")")}function Vr(n,t,e,r){n!==t?r.push({i:e.push(Ir(e)+"skewX(",null,")")-2,x:yr(n,t)}):t&&e.push(Ir(e)+"skewX("+t+")")}function Xr(n,t,e,r){if(n[0]!==t[0]||n[1]!==t[1]){var i=e.push(Ir(e)+"scale(",null,",",null,")");r.push({i:i-4,x:yr(n[0],t[0])},{i:i-2,x:yr(n[1],t[1])})}else 1===t[0]&&1===t[1]||e.push(Ir(e)+"scale("+t+")")}function $r(n,t){var e=[],r=[];return n=ao.transform(n),t=ao.transform(t),Yr(n.translate,t.translate,e,r),Zr(n.rotate,t.rotate,e,r),Vr(n.skew,t.skew,e,r),Xr(n.scale,t.scale,e,r),n=t=null,function(n){for(var t,i=-1,u=r.length;++i=0;)e.push(i[r])}function oi(n,t){for(var e=[n],r=[];null!=(n=e.pop());)if(r.push(n),(u=n.children)&&(i=u.length))for(var i,u,o=-1;++oe;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function yi(n){return n.reduce(mi,0)}function mi(n,t){return n+t[1]}function Mi(n,t){return xi(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function xi(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function bi(n){return[ao.min(n),ao.max(n)]}function _i(n,t){return n.value-t.value}function wi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Si(n,t){n._pack_next=t,t._pack_prev=n}function ki(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function Ni(n){function t(n){f=Math.min(n.x-n.r,f),s=Math.max(n.x+n.r,s),h=Math.min(n.y-n.r,h),p=Math.max(n.y+n.r,p)}if((e=n.children)&&(c=e.length)){var e,r,i,u,o,a,l,c,f=1/0,s=-(1/0),h=1/0,p=-(1/0);if(e.forEach(Ei),r=e[0],r.x=-r.r,r.y=0,t(r),c>1&&(i=e[1],i.x=i.r,i.y=0,t(i),c>2))for(u=e[2],zi(r,i,u),t(u),wi(r,u),r._pack_prev=u,wi(u,i),i=r._pack_next,o=3;c>o;o++){zi(r,i,u=e[o]);var g=0,v=1,d=1;for(a=i._pack_next;a!==i;a=a._pack_next,v++)if(ki(a,u)){g=1;break}if(1==g)for(l=r._pack_prev;l!==a._pack_prev&&!ki(l,u);l=l._pack_prev,d++);g?(d>v||v==d&&i.ro;o++)u=e[o],u.x-=y,u.y-=m,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(Ai)}}function Ei(n){n._pack_next=n._pack_prev=n}function Ai(n){delete n._pack_next,delete n._pack_prev}function Ci(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,o=i.length;++u=0;)t=i[u],t.z+=e,t.m+=e,e+=t.s+(r+=t.c)}function Pi(n,t,e){return n.a.parent===t.parent?n.a:e}function Ui(n){return 1+ao.max(n,function(n){return n.y})}function ji(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Fi(n){var t=n.children;return t&&t.length?Fi(t[0]):n}function Hi(n){var t,e=n.children;return e&&(t=e.length)?Hi(e[t-1]):n}function Oi(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ii(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Yi(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Zi(n){return n.rangeExtent?n.rangeExtent():Yi(n.range())}function Vi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Xi(n,t){var e,r=0,i=n.length-1,u=n[r],o=n[i];return u>o&&(e=r,r=i,i=e,e=u,u=o,o=e),n[r]=t.floor(u),n[i]=t.ceil(o),n}function $i(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:Sl}function Bi(n,t,e,r){var i=[],u=[],o=0,a=Math.min(n.length,t.length)-1;for(n[a]2?Bi:Vi,l=r?Wr:Br;return o=i(n,t,l,e),a=i(t,n,l,Mr),u}function u(n){return o(n)}var o,a;return u.invert=function(n){return a(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Ur)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return Qi(n,t)},u.tickFormat=function(t,e){return nu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return ao.rebind(n,t,"range","rangeRound","interpolate","clamp")}function Gi(n,t){return Xi(n,$i(Ki(n,t)[2])),Xi(n,$i(Ki(n,t)[2])),n}function Ki(n,t){null==t&&(t=10);var e=Yi(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function Qi(n,t){return ao.range.apply(ao,Ki(n,t))}function nu(n,t,e){var r=Ki(n,t);if(e){var i=ha.exec(e);if(i.shift(),"s"===i[8]){var u=ao.formatPrefix(Math.max(xo(r[0]),xo(r[1])));return i[7]||(i[7]="."+tu(u.scale(r[2]))),i[8]="f",e=ao.format(i.join("")),function(n){return e(u.scale(n))+u.symbol}}i[7]||(i[7]="."+eu(i[8],r)),e=i.join("")}else e=",."+tu(r[2])+"f";return ao.format(e)}function tu(n){return-Math.floor(Math.log(n)/Math.LN10+.01)}function eu(n,t){var e=tu(t[2]);return n in kl?Math.abs(e-tu(Math.max(xo(t[0]),xo(t[1]))))+ +("e"!==n):e-2*("%"===n)}function ru(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function o(t){return n(i(t))}return o.invert=function(t){return u(n.invert(t))},o.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),o):r},o.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),o):t},o.nice=function(){var t=Xi(r.map(i),e?Math:El);return n.domain(t),r=t.map(u),o},o.ticks=function(){var n=Yi(r),o=[],a=n[0],l=n[1],c=Math.floor(i(a)),f=Math.ceil(i(l)),s=t%1?2:t;if(isFinite(f-c)){if(e){for(;f>c;c++)for(var h=1;s>h;h++)o.push(u(c)*h);o.push(u(c))}else for(o.push(u(c));c++0;h--)o.push(u(c)*h);for(c=0;o[c]l;f--);o=o.slice(c,f)}return o},o.tickFormat=function(n,e){if(!arguments.length)return Nl;arguments.length<2?e=Nl:"function"!=typeof e&&(e=ao.format(e));var r=Math.max(1,t*n/o.ticks().length);return function(n){var o=n/u(Math.round(i(n)));return t-.5>o*t&&(o*=t),r>=o?e(n):""}},o.copy=function(){return ru(n.copy(),t,e,r)},Ji(o,n)}function iu(n,t,e){function r(t){return n(i(t))}var i=uu(t),u=uu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return Qi(e,n)},r.tickFormat=function(n,t){return nu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(o){return arguments.length?(i=uu(t=o),u=uu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return iu(n.copy(),t,e)},Ji(r,n)}function uu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function ou(n,t){function e(e){return u[((i.get(e)||("range"===t.t?i.set(e,n.push(e)):NaN))-1)%u.length]}function r(t,e){return ao.range(n.length).map(function(n){return t+e*n})}var i,u,o;return e.domain=function(r){if(!arguments.length)return n;n=[],i=new c;for(var u,o=-1,a=r.length;++oe?[NaN,NaN]:[e>0?a[e-1]:n[0],et?NaN:t/u+n,[t,t+1/u]},r.copy=function(){return lu(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[ao.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function fu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return Qi(n,t)},t.tickFormat=function(t,e){return nu(n,t,e)},t.copy=function(){return fu(n)},t}function su(){return 0}function hu(n){return n.innerRadius}function pu(n){return n.outerRadius}function gu(n){return n.startAngle}function vu(n){return n.endAngle}function du(n){return n&&n.padAngle}function yu(n,t,e,r){return(n-e)*t-(t-r)*n>0?0:1}function mu(n,t,e,r,i){var u=n[0]-t[0],o=n[1]-t[1],a=(i?r:-r)/Math.sqrt(u*u+o*o),l=a*o,c=-a*u,f=n[0]+l,s=n[1]+c,h=t[0]+l,p=t[1]+c,g=(f+h)/2,v=(s+p)/2,d=h-f,y=p-s,m=d*d+y*y,M=e-r,x=f*p-h*s,b=(0>y?-1:1)*Math.sqrt(Math.max(0,M*M*m-x*x)),_=(x*y-d*b)/m,w=(-x*d-y*b)/m,S=(x*y+d*b)/m,k=(-x*d+y*b)/m,N=_-g,E=w-v,A=S-g,C=k-v;return N*N+E*E>A*A+C*C&&(_=S,w=k),[[_-l,w-c],[_*e/M,w*e/M]]}function Mu(n){function t(t){function o(){c.push("M",u(n(f),a))}for(var l,c=[],f=[],s=-1,h=t.length,p=En(e),g=En(r);++s1?n.join("L"):n+"Z"}function bu(n){return n.join("L")+"Z"}function _u(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1&&i.push("H",r[0]),i.join("")}function wu(n){for(var t=0,e=n.length,r=n[0],i=[r[0],",",r[1]];++t1){a=t[1],u=n[l],l++,r+="C"+(i[0]+o[0])+","+(i[1]+o[1])+","+(u[0]-a[0])+","+(u[1]-a[1])+","+u[0]+","+u[1];for(var c=2;c9&&(i=3*t/Math.sqrt(i),o[a]=i*e,o[a+1]=i*r));for(a=-1;++a<=l;)i=(n[Math.min(l,a+1)][0]-n[Math.max(0,a-1)][0])/(6*(1+o[a]*o[a])),u.push([i||0,o[a]*i||0]);return u}function Fu(n){return n.length<3?xu(n):n[0]+Au(n,ju(n))}function Hu(n){for(var t,e,r,i=-1,u=n.length;++i=t?o(n-t):void(f.c=o)}function o(e){var i=g.active,u=g[i];u&&(u.timer.c=null,u.timer.t=NaN,--g.count,delete g[i],u.event&&u.event.interrupt.call(n,n.__data__,u.index));for(var o in g)if(r>+o){var c=g[o];c.timer.c=null,c.timer.t=NaN,--g.count,delete g[o]}f.c=a,qn(function(){return f.c&&a(e||1)&&(f.c=null,f.t=NaN),1},0,l),g.active=r,v.event&&v.event.start.call(n,n.__data__,t),p=[],v.tween.forEach(function(e,r){(r=r.call(n,n.__data__,t))&&p.push(r)}),h=v.ease,s=v.duration}function a(i){for(var u=i/s,o=h(u),a=p.length;a>0;)p[--a].call(n,o);return u>=1?(v.event&&v.event.end.call(n,n.__data__,t),--g.count?delete g[r]:delete n[e],1):void 0}var l,f,s,h,p,g=n[e]||(n[e]={active:0,count:0}),v=g[r];v||(l=i.time,f=qn(u,0,l),v=g[r]={tween:new c,time:l,timer:f,delay:i.delay,duration:i.duration,ease:i.ease,index:t},i=null,++g.count)}function no(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate("+(isFinite(r)?r:e(n))+",0)"})}function to(n,t,e){n.attr("transform",function(n){var r=t(n);return"translate(0,"+(isFinite(r)?r:e(n))+")"})}function eo(n){return n.toISOString()}function ro(n,t,e){function r(t){return n(t)}function i(n,e){var r=n[1]-n[0],i=r/e,u=ao.bisect(Kl,i);return u==Kl.length?[t.year,Ki(n.map(function(n){return n/31536e6}),e)[2]]:u?t[i/Kl[u-1]1?{floor:function(t){for(;e(t=n.floor(t));)t=io(t-1);return t},ceil:function(t){for(;e(t=n.ceil(t));)t=io(+t+1);return t}}:n))},r.ticks=function(n,t){var e=Yi(r.domain()),u=null==n?i(e,10):"number"==typeof n?i(e,n):!n.range&&[{range:n},t];return u&&(n=u[0],t=u[1]),n.range(e[0],io(+e[1]+1),1>t?1:t)},r.tickFormat=function(){return e},r.copy=function(){return ro(n.copy(),t,e)},Ji(r,n)}function io(n){return new Date(n)}function uo(n){return JSON.parse(n.responseText)}function oo(n){var t=fo.createRange();return t.selectNode(fo.body),t.createContextualFragment(n.responseText)}var ao={version:"3.5.17"},lo=[].slice,co=function(n){return lo.call(n)},fo=this.document;if(fo)try{co(fo.documentElement.childNodes)[0].nodeType}catch(so){co=function(n){for(var t=n.length,e=new Array(t);t--;)e[t]=n[t];return e}}if(Date.now||(Date.now=function(){return+new Date}),fo)try{fo.createElement("DIV").style.setProperty("opacity",0,"")}catch(ho){var po=this.Element.prototype,go=po.setAttribute,vo=po.setAttributeNS,yo=this.CSSStyleDeclaration.prototype,mo=yo.setProperty;po.setAttribute=function(n,t){go.call(this,n,t+"")},po.setAttributeNS=function(n,t,e){vo.call(this,n,t,e+"")},yo.setProperty=function(n,t,e){mo.call(this,n,t+"",e)}}ao.ascending=e,ao.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:NaN},ao.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},ao.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},ao.extent=function(n,t){var e,r,i,u=-1,o=n.length;if(1===arguments.length){for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}else{for(;++u=r){e=i=r;break}for(;++ur&&(e=r),r>i&&(i=r))}return[e,i]},ao.sum=function(n,t){var e,r=0,u=n.length,o=-1;if(1===arguments.length)for(;++o1?l/(f-1):void 0},ao.deviation=function(){var n=ao.variance.apply(this,arguments);return n?Math.sqrt(n):n};var Mo=u(e);ao.bisectLeft=Mo.left,ao.bisect=ao.bisectRight=Mo.right,ao.bisector=function(n){return u(1===n.length?function(t,r){return e(n(t),r)}:n)},ao.shuffle=function(n,t,e){(u=arguments.length)<3&&(e=n.length,2>u&&(t=0));for(var r,i,u=e-t;u;)i=Math.random()*u--|0,r=n[u+t],n[u+t]=n[i+t],n[i+t]=r;return n},ao.permute=function(n,t){for(var e=t.length,r=new Array(e);e--;)r[e]=n[t[e]];return r},ao.pairs=function(n){for(var t,e=0,r=n.length-1,i=n[0],u=new Array(0>r?0:r);r>e;)u[e]=[t=i,i=n[++e]];return u},ao.transpose=function(n){if(!(i=n.length))return[];for(var t=-1,e=ao.min(n,o),r=new Array(e);++t=0;)for(r=n[i],t=r.length;--t>=0;)e[--o]=r[t];return e};var xo=Math.abs;ao.range=function(n,t,e){if(arguments.length<3&&(e=1,arguments.length<2&&(t=n,n=0)),(t-n)/e===1/0)throw new Error("infinite range");var r,i=[],u=a(xo(e)),o=-1;if(n*=u,t*=u,e*=u,0>e)for(;(r=n+e*++o)>t;)i.push(r/u);else for(;(r=n+e*++o)=u.length)return r?r.call(i,o):e?o.sort(e):o;for(var l,f,s,h,p=-1,g=o.length,v=u[a++],d=new c;++p=u.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,i={},u=[],o=[];return i.map=function(t,e){return n(e,t,0)},i.entries=function(e){return t(n(ao.map,e,0),0)},i.key=function(n){return u.push(n),i},i.sortKeys=function(n){return o[u.length-1]=n,i},i.sortValues=function(n){return e=n,i},i.rollup=function(n){return r=n,i},i},ao.set=function(n){var t=new y;if(n)for(var e=0,r=n.length;r>e;++e)t.add(n[e]);return t},l(y,{has:h,add:function(n){return this._[f(n+="")]=!0,n},remove:p,values:g,size:v,empty:d,forEach:function(n){for(var t in this._)n.call(this,s(t))}}),ao.behavior={},ao.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r=0&&(r=n.slice(e+1),n=n.slice(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},ao.event=null,ao.requote=function(n){return n.replace(So,"\\$&")};var So=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,ko={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},No=function(n,t){return t.querySelector(n)},Eo=function(n,t){return t.querySelectorAll(n)},Ao=function(n,t){var e=n.matches||n[x(n,"matchesSelector")];return(Ao=function(n,t){return e.call(n,t)})(n,t)};"function"==typeof Sizzle&&(No=function(n,t){return Sizzle(n,t)[0]||null},Eo=Sizzle,Ao=Sizzle.matchesSelector),ao.selection=function(){return ao.select(fo.documentElement)};var Co=ao.selection.prototype=[];Co.select=function(n){var t,e,r,i,u=[];n=A(n);for(var o=-1,a=this.length;++o=0&&"xmlns"!==(e=n.slice(0,t))&&(n=n.slice(t+1)),Lo.hasOwnProperty(e)?{space:Lo[e],local:n}:n}},Co.attr=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node();return n=ao.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(z(t,n[t]));return this}return this.each(z(n,t))},Co.classed=function(n,t){if(arguments.length<2){if("string"==typeof n){var e=this.node(),r=(n=T(n)).length,i=-1;if(t=e.classList){for(;++ii){if("string"!=typeof n){2>i&&(e="");for(r in n)this.each(P(r,n[r],e));return this}if(2>i){var u=this.node();return t(u).getComputedStyle(u,null).getPropertyValue(n)}r=""}return this.each(P(n,e,r))},Co.property=function(n,t){if(arguments.length<2){if("string"==typeof n)return this.node()[n];for(t in n)this.each(U(t,n[t]));return this}return this.each(U(n,t))},Co.text=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?"":t}:null==n?function(){this.textContent=""}:function(){this.textContent=n}):this.node().textContent},Co.html=function(n){return arguments.length?this.each("function"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?"":t}:null==n?function(){this.innerHTML=""}:function(){this.innerHTML=n}):this.node().innerHTML},Co.append=function(n){return n=j(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Co.insert=function(n,t){return n=j(n),t=A(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments)||null)})},Co.remove=function(){return this.each(F)},Co.data=function(n,t){function e(n,e){var r,i,u,o=n.length,s=e.length,h=Math.min(o,s),p=new Array(s),g=new Array(s),v=new Array(o);if(t){var d,y=new c,m=new Array(o);for(r=-1;++rr;++r)g[r]=H(e[r]);for(;o>r;++r)v[r]=n[r]}g.update=p,g.parentNode=p.parentNode=v.parentNode=n.parentNode,a.push(g),l.push(p),f.push(v)}var r,i,u=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++uu;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return E(i)},Co.order=function(){for(var n=-1,t=this.length;++n=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Co.sort=function(n){n=I.apply(this,arguments);for(var t=-1,e=this.length;++tn;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Co.size=function(){var n=0;return Y(this,function(){++n}),n};var qo=[];ao.selection.enter=Z,ao.selection.enter.prototype=qo,qo.append=Co.append,qo.empty=Co.empty,qo.node=Co.node,qo.call=Co.call,qo.size=Co.size,qo.select=function(n){for(var t,e,r,i,u,o=[],a=-1,l=this.length;++ar){if("string"!=typeof n){2>r&&(t=!1);for(e in n)this.each(X(e,n[e],t));return this}if(2>r)return(r=this.node()["__on"+n])&&r._;e=!1}return this.each(X(n,t,e))};var To=ao.map({mouseenter:"mouseover",mouseleave:"mouseout"});fo&&To.forEach(function(n){"on"+n in fo&&To.remove(n)});var Ro,Do=0;ao.mouse=function(n){return J(n,k())};var Po=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;ao.touch=function(n,t,e){if(arguments.length<3&&(e=t,t=k().changedTouches),t)for(var r,i=0,u=t.length;u>i;++i)if((r=t[i]).identifier===e)return J(n,r)},ao.behavior.drag=function(){function n(){this.on("mousedown.drag",u).on("touchstart.drag",o)}function e(n,t,e,u,o){return function(){function a(){var n,e,r=t(h,v);r&&(n=r[0]-M[0],e=r[1]-M[1],g|=n|e,M=r,p({type:"drag",x:r[0]+c[0],y:r[1]+c[1],dx:n,dy:e}))}function l(){t(h,v)&&(y.on(u+d,null).on(o+d,null),m(g),p({type:"dragend"}))}var c,f=this,s=ao.event.target.correspondingElement||ao.event.target,h=f.parentNode,p=r.of(f,arguments),g=0,v=n(),d=".drag"+(null==v?"":"-"+v),y=ao.select(e(s)).on(u+d,a).on(o+d,l),m=W(s),M=t(h,v);i?(c=i.apply(f,arguments),c=[c.x-M[0],c.y-M[1]]):c=[0,0],p({type:"dragstart"})}}var r=N(n,"drag","dragstart","dragend"),i=null,u=e(b,ao.mouse,t,"mousemove","mouseup"),o=e(G,ao.touch,m,"touchmove","touchend");return n.origin=function(t){return arguments.length?(i=t,n):i},ao.rebind(n,r,"on")},ao.touches=function(n,t){return arguments.length<2&&(t=k().touches),t?co(t).map(function(t){var e=J(n,t);return e.identifier=t.identifier,e}):[]};var Uo=1e-6,jo=Uo*Uo,Fo=Math.PI,Ho=2*Fo,Oo=Ho-Uo,Io=Fo/2,Yo=Fo/180,Zo=180/Fo,Vo=Math.SQRT2,Xo=2,$o=4;ao.interpolateZoom=function(n,t){var e,r,i=n[0],u=n[1],o=n[2],a=t[0],l=t[1],c=t[2],f=a-i,s=l-u,h=f*f+s*s;if(jo>h)r=Math.log(c/o)/Vo,e=function(n){return[i+n*f,u+n*s,o*Math.exp(Vo*n*r)]};else{var p=Math.sqrt(h),g=(c*c-o*o+$o*h)/(2*o*Xo*p),v=(c*c-o*o-$o*h)/(2*c*Xo*p),d=Math.log(Math.sqrt(g*g+1)-g),y=Math.log(Math.sqrt(v*v+1)-v);r=(y-d)/Vo,e=function(n){var t=n*r,e=rn(d),a=o/(Xo*p)*(e*un(Vo*t+d)-en(d));return[i+a*f,u+a*s,o*e/rn(Vo*t+d)]}}return e.duration=1e3*r,e},ao.behavior.zoom=function(){function n(n){n.on(L,s).on(Wo+".zoom",p).on("dblclick.zoom",g).on(R,h)}function e(n){return[(n[0]-k.x)/k.k,(n[1]-k.y)/k.k]}function r(n){return[n[0]*k.k+k.x,n[1]*k.k+k.y]}function i(n){k.k=Math.max(A[0],Math.min(A[1],n))}function u(n,t){t=r(t),k.x+=n[0]-t[0],k.y+=n[1]-t[1]}function o(t,e,r,o){t.__chart__={x:k.x,y:k.y,k:k.k},i(Math.pow(2,o)),u(d=e,r),t=ao.select(t),C>0&&(t=t.transition().duration(C)),t.call(n.event)}function a(){b&&b.domain(x.range().map(function(n){return(n-k.x)/k.k}).map(x.invert)),w&&w.domain(_.range().map(function(n){return(n-k.y)/k.k}).map(_.invert))}function l(n){z++||n({type:"zoomstart"})}function c(n){a(),n({type:"zoom",scale:k.k,translate:[k.x,k.y]})}function f(n){--z||(n({type:"zoomend"}),d=null)}function s(){function n(){a=1,u(ao.mouse(i),h),c(o)}function r(){s.on(q,null).on(T,null),p(a),f(o)}var i=this,o=D.of(i,arguments),a=0,s=ao.select(t(i)).on(q,n).on(T,r),h=e(ao.mouse(i)),p=W(i);Il.call(i),l(o)}function h(){function n(){var n=ao.touches(g);return p=k.k,n.forEach(function(n){n.identifier in d&&(d[n.identifier]=e(n))}),n}function t(){var t=ao.event.target;ao.select(t).on(x,r).on(b,a),_.push(t);for(var e=ao.event.changedTouches,i=0,u=e.length;u>i;++i)d[e[i].identifier]=null;var l=n(),c=Date.now();if(1===l.length){if(500>c-M){var f=l[0];o(g,f,d[f.identifier],Math.floor(Math.log(k.k)/Math.LN2)+1),S()}M=c}else if(l.length>1){var f=l[0],s=l[1],h=f[0]-s[0],p=f[1]-s[1];y=h*h+p*p}}function r(){var n,t,e,r,o=ao.touches(g);Il.call(g);for(var a=0,l=o.length;l>a;++a,r=null)if(e=o[a],r=d[e.identifier]){if(t)break;n=e,t=r}if(r){var f=(f=e[0]-n[0])*f+(f=e[1]-n[1])*f,s=y&&Math.sqrt(f/y);n=[(n[0]+e[0])/2,(n[1]+e[1])/2],t=[(t[0]+r[0])/2,(t[1]+r[1])/2],i(s*p)}M=null,u(n,t),c(v)}function a(){if(ao.event.touches.length){for(var t=ao.event.changedTouches,e=0,r=t.length;r>e;++e)delete d[t[e].identifier];for(var i in d)return void n()}ao.selectAll(_).on(m,null),w.on(L,s).on(R,h),N(),f(v)}var p,g=this,v=D.of(g,arguments),d={},y=0,m=".zoom-"+ao.event.changedTouches[0].identifier,x="touchmove"+m,b="touchend"+m,_=[],w=ao.select(g),N=W(g);t(),l(v),w.on(L,null).on(R,t)}function p(){var n=D.of(this,arguments);m?clearTimeout(m):(Il.call(this),v=e(d=y||ao.mouse(this)),l(n)),m=setTimeout(function(){m=null,f(n)},50),S(),i(Math.pow(2,.002*Bo())*k.k),u(d,v),c(n)}function g(){var n=ao.mouse(this),t=Math.log(k.k)/Math.LN2;o(this,n,e(n),ao.event.shiftKey?Math.ceil(t)-1:Math.floor(t)+1)}var v,d,y,m,M,x,b,_,w,k={x:0,y:0,k:1},E=[960,500],A=Jo,C=250,z=0,L="mousedown.zoom",q="mousemove.zoom",T="mouseup.zoom",R="touchstart.zoom",D=N(n,"zoomstart","zoom","zoomend");return Wo||(Wo="onwheel"in fo?(Bo=function(){return-ao.event.deltaY*(ao.event.deltaMode?120:1)},"wheel"):"onmousewheel"in fo?(Bo=function(){return ao.event.wheelDelta},"mousewheel"):(Bo=function(){return-ao.event.detail},"MozMousePixelScroll")),n.event=function(n){n.each(function(){var n=D.of(this,arguments),t=k;Hl?ao.select(this).transition().each("start.zoom",function(){k=this.__chart__||{x:0,y:0,k:1},l(n)}).tween("zoom:zoom",function(){var e=E[0],r=E[1],i=d?d[0]:e/2,u=d?d[1]:r/2,o=ao.interpolateZoom([(i-k.x)/k.k,(u-k.y)/k.k,e/k.k],[(i-t.x)/t.k,(u-t.y)/t.k,e/t.k]);return function(t){var r=o(t),a=e/r[2];this.__chart__=k={x:i-r[0]*a,y:u-r[1]*a,k:a},c(n)}}).each("interrupt.zoom",function(){f(n)}).each("end.zoom",function(){f(n)}):(this.__chart__=k,l(n),c(n),f(n))})},n.translate=function(t){return arguments.length?(k={x:+t[0],y:+t[1],k:k.k},a(),n):[k.x,k.y]},n.scale=function(t){return arguments.length?(k={x:k.x,y:k.y,k:null},i(+t),a(),n):k.k},n.scaleExtent=function(t){return arguments.length?(A=null==t?Jo:[+t[0],+t[1]],n):A},n.center=function(t){return arguments.length?(y=t&&[+t[0],+t[1]],n):y},n.size=function(t){return arguments.length?(E=t&&[+t[0],+t[1]],n):E},n.duration=function(t){return arguments.length?(C=+t,n):C},n.x=function(t){return arguments.length?(b=t,x=t.copy(),k={x:0,y:0,k:1},n):b},n.y=function(t){return arguments.length?(w=t,_=t.copy(),k={x:0,y:0,k:1},n):w},ao.rebind(n,D,"on")};var Bo,Wo,Jo=[0,1/0];ao.color=an,an.prototype.toString=function(){return this.rgb()+""},ao.hsl=ln;var Go=ln.prototype=new an;Go.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,this.l/n)},Go.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new ln(this.h,this.s,n*this.l)},Go.rgb=function(){return cn(this.h,this.s,this.l)},ao.hcl=fn;var Ko=fn.prototype=new an;Ko.brighter=function(n){return new fn(this.h,this.c,Math.min(100,this.l+Qo*(arguments.length?n:1)))},Ko.darker=function(n){return new fn(this.h,this.c,Math.max(0,this.l-Qo*(arguments.length?n:1)))},Ko.rgb=function(){return sn(this.h,this.c,this.l).rgb()},ao.lab=hn;var Qo=18,na=.95047,ta=1,ea=1.08883,ra=hn.prototype=new an;ra.brighter=function(n){return new hn(Math.min(100,this.l+Qo*(arguments.length?n:1)),this.a,this.b)},ra.darker=function(n){return new hn(Math.max(0,this.l-Qo*(arguments.length?n:1)),this.a,this.b)},ra.rgb=function(){return pn(this.l,this.a,this.b)},ao.rgb=mn;var ia=mn.prototype=new an;ia.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),new mn(Math.min(255,t/n),Math.min(255,e/n),Math.min(255,r/n))):new mn(i,i,i)},ia.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),new mn(n*this.r,n*this.g,n*this.b)},ia.hsl=function(){return wn(this.r,this.g,this.b)},ia.toString=function(){return"#"+bn(this.r)+bn(this.g)+bn(this.b)};var ua=ao.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});ua.forEach(function(n,t){ua.set(n,Mn(t))}),ao.functor=En,ao.xhr=An(m),ao.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var o=Cn(n,t,null==e?r:i(e),u);return o.row=function(n){return arguments.length?o.response(null==(e=n)?r:i(n)):e},o}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function u(t){return t.map(o).join(n)}function o(n){return a.test(n)?'"'+n.replace(/\"/g,'""')+'"':n}var a=new RegExp('["'+n+"\n]"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function("d","return {"+n.map(function(n,t){return JSON.stringify(n)+": d["+t+"]"}).join(",")+"}");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(f>=c)return o;if(i)return i=!1,u;var t=f;if(34===n.charCodeAt(t)){for(var e=t;e++f;){var r=n.charCodeAt(f++),a=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(f)&&(++f,++a);else if(r!==l)continue;return n.slice(t,f-a)}return n.slice(t)}for(var r,i,u={},o={},a=[],c=n.length,f=0,s=0;(r=e())!==o;){for(var h=[];r!==u&&r!==o;)h.push(r),r=e();t&&null==(h=t(h,s++))||a.push(h)}return a},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new y,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join("\n")},e.formatRows=function(n){return n.map(u).join("\n")},e},ao.csv=ao.dsv(",","text/csv"),ao.tsv=ao.dsv(" ","text/tab-separated-values");var oa,aa,la,ca,fa=this[x(this,"requestAnimationFrame")]||function(n){setTimeout(n,17)};ao.timer=function(){qn.apply(this,arguments)},ao.timer.flush=function(){Rn(),Dn()},ao.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)};var sa=["y","z","a","f","p","n","\xb5","m","","k","M","G","T","P","E","Z","Y"].map(Un);ao.formatPrefix=function(n,t){var e=0;return(n=+n)&&(0>n&&(n*=-1),t&&(n=ao.round(n,Pn(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((e-1)/3)))),sa[8+e/3]};var ha=/(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,pa=ao.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=ao.round(n,Pn(n,t))).toFixed(Math.max(0,Math.min(20,Pn(n*(1+1e-15),t))))}}),ga=ao.time={},va=Date;Hn.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){da.setUTCDate.apply(this._,arguments)},setDay:function(){da.setUTCDay.apply(this._,arguments)},setFullYear:function(){da.setUTCFullYear.apply(this._,arguments)},setHours:function(){da.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){da.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){da.setUTCMinutes.apply(this._,arguments)},setMonth:function(){da.setUTCMonth.apply(this._,arguments)},setSeconds:function(){da.setUTCSeconds.apply(this._,arguments)},setTime:function(){da.setTime.apply(this._,arguments)}};var da=Date.prototype;ga.year=On(function(n){return n=ga.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),ga.years=ga.year.range,ga.years.utc=ga.year.utc.range,ga.day=On(function(n){var t=new va(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),ga.days=ga.day.range,ga.days.utc=ga.day.utc.range,ga.dayOfYear=function(n){var t=ga.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},["sunday","monday","tuesday","wednesday","thursday","friday","saturday"].forEach(function(n,t){t=7-t;var e=ga[n]=On(function(n){return(n=ga.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});ga[n+"s"]=e.range,ga[n+"s"].utc=e.utc.range,ga[n+"OfYear"]=function(n){var e=ga.year(n).getDay();return Math.floor((ga.dayOfYear(n)+(e+t)%7)/7)}}),ga.week=ga.sunday,ga.weeks=ga.sunday.range,ga.weeks.utc=ga.sunday.utc.range,ga.weekOfYear=ga.sundayOfYear;var ya={"-":"",_:" ",0:"0"},ma=/^\s*\d+/,Ma=/^%/;ao.locale=function(n){return{numberFormat:jn(n),timeFormat:Yn(n)}};var xa=ao.locale({decimal:".",thousands:",",grouping:[3],currency:["$",""],dateTime:"%a %b %e %X %Y",date:"%m/%d/%Y",time:"%H:%M:%S",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"], +shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});ao.format=xa.numberFormat,ao.geo={},ft.prototype={s:0,t:0,add:function(n){st(n,this.t,ba),st(ba.s,this.s,this),this.s?this.t+=ba.t:this.s=ba.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var ba=new ft;ao.geo.stream=function(n,t){n&&_a.hasOwnProperty(n.type)?_a[n.type](n,t):ht(n,t)};var _a={Feature:function(n,t){ht(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++rn?4*Fo+n:n,Na.lineStart=Na.lineEnd=Na.point=b}};ao.geo.bounds=function(){function n(n,t){M.push(x=[f=n,h=n]),s>t&&(s=t),t>p&&(p=t)}function t(t,e){var r=dt([t*Yo,e*Yo]);if(y){var i=mt(y,r),u=[i[1],-i[0],0],o=mt(u,i);bt(o),o=_t(o);var l=t-g,c=l>0?1:-1,v=o[0]*Zo*c,d=xo(l)>180;if(d^(v>c*g&&c*t>v)){var m=o[1]*Zo;m>p&&(p=m)}else if(v=(v+360)%360-180,d^(v>c*g&&c*t>v)){var m=-o[1]*Zo;s>m&&(s=m)}else s>e&&(s=e),e>p&&(p=e);d?g>t?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t):h>=f?(f>t&&(f=t),t>h&&(h=t)):t>g?a(f,t)>a(f,h)&&(h=t):a(t,h)>a(f,h)&&(f=t)}else n(t,e);y=r,g=t}function e(){b.point=t}function r(){x[0]=f,x[1]=h,b.point=n,y=null}function i(n,e){if(y){var r=n-g;m+=xo(r)>180?r+(r>0?360:-360):r}else v=n,d=e;Na.point(n,e),t(n,e)}function u(){Na.lineStart()}function o(){i(v,d),Na.lineEnd(),xo(m)>Uo&&(f=-(h=180)),x[0]=f,x[1]=h,y=null}function a(n,t){return(t-=n)<0?t+360:t}function l(n,t){return n[0]-t[0]}function c(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nka?(f=-(h=180),s=-(p=90)):m>Uo?p=90:-Uo>m&&(s=-90),x[0]=f,x[1]=h}};return function(n){p=h=-(f=s=1/0),M=[],ao.geo.stream(n,b);var t=M.length;if(t){M.sort(l);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],c(e[0],i)||c(e[1],i)?(a(i[0],e[1])>a(i[0],i[1])&&(i[1]=e[1]),a(e[0],i[1])>a(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var o,e,g=-(1/0),t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(o=a(i[1],e[0]))>g&&(g=o,f=e[0],h=i[1])}return M=x=null,f===1/0||s===1/0?[[NaN,NaN],[NaN,NaN]]:[[f,s],[h,p]]}}(),ao.geo.centroid=function(n){Ea=Aa=Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,ja);var t=Da,e=Pa,r=Ua,i=t*t+e*e+r*r;return jo>i&&(t=qa,e=Ta,r=Ra,Uo>Aa&&(t=Ca,e=za,r=La),i=t*t+e*e+r*r,jo>i)?[NaN,NaN]:[Math.atan2(e,t)*Zo,tn(r/Math.sqrt(i))*Zo]};var Ea,Aa,Ca,za,La,qa,Ta,Ra,Da,Pa,Ua,ja={sphere:b,point:St,lineStart:Nt,lineEnd:Et,polygonStart:function(){ja.lineStart=At},polygonEnd:function(){ja.lineStart=Nt}},Fa=Rt(zt,jt,Ht,[-Fo,-Fo/2]),Ha=1e9;ao.geo.clipExtent=function(){var n,t,e,r,i,u,o={stream:function(n){return i&&(i.valid=!1),i=u(n),i.valid=!0,i},extent:function(a){return arguments.length?(u=Zt(n=+a[0][0],t=+a[0][1],e=+a[1][0],r=+a[1][1]),i&&(i.valid=!1,i=null),o):[[n,t],[e,r]]}};return o.extent([[0,0],[960,500]])},(ao.geo.conicEqualArea=function(){return Vt(Xt)}).raw=Xt,ao.geo.albers=function(){return ao.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},ao.geo.albersUsa=function(){function n(n){var u=n[0],o=n[1];return t=null,e(u,o),t||(r(u,o),t)||i(u,o),t}var t,e,r,i,u=ao.geo.albers(),o=ao.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a=ao.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?o:i>=.166&&.234>i&&r>=-.214&&-.115>r?a:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=o.stream(n),r=a.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),o.precision(t),a.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),o.scale(.35*t),a.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var c=u.scale(),f=+t[0],s=+t[1];return e=u.translate(t).clipExtent([[f-.455*c,s-.238*c],[f+.455*c,s+.238*c]]).stream(l).point,r=o.translate([f-.307*c,s+.201*c]).clipExtent([[f-.425*c+Uo,s+.12*c+Uo],[f-.214*c-Uo,s+.234*c-Uo]]).stream(l).point,i=a.translate([f-.205*c,s+.212*c]).clipExtent([[f-.214*c+Uo,s+.166*c+Uo],[f-.115*c-Uo,s+.234*c-Uo]]).stream(l).point,n},n.scale(1070)};var Oa,Ia,Ya,Za,Va,Xa,$a={point:b,lineStart:b,lineEnd:b,polygonStart:function(){Ia=0,$a.lineStart=$t},polygonEnd:function(){$a.lineStart=$a.lineEnd=$a.point=b,Oa+=xo(Ia/2)}},Ba={point:Bt,lineStart:b,lineEnd:b,polygonStart:b,polygonEnd:b},Wa={point:Gt,lineStart:Kt,lineEnd:Qt,polygonStart:function(){Wa.lineStart=ne},polygonEnd:function(){Wa.point=Gt,Wa.lineStart=Kt,Wa.lineEnd=Qt}};ao.geo.path=function(){function n(n){return n&&("function"==typeof a&&u.pointRadius(+a.apply(this,arguments)),o&&o.valid||(o=i(u)),ao.geo.stream(n,o)),u.result()}function t(){return o=null,n}var e,r,i,u,o,a=4.5;return n.area=function(n){return Oa=0,ao.geo.stream(n,i($a)),Oa},n.centroid=function(n){return Ca=za=La=qa=Ta=Ra=Da=Pa=Ua=0,ao.geo.stream(n,i(Wa)),Ua?[Da/Ua,Pa/Ua]:Ra?[qa/Ra,Ta/Ra]:La?[Ca/La,za/La]:[NaN,NaN]},n.bounds=function(n){return Va=Xa=-(Ya=Za=1/0),ao.geo.stream(n,i(Ba)),[[Ya,Za],[Va,Xa]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||re(n):m,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new Wt:new te(n),"function"!=typeof a&&u.pointRadius(a),t()):r},n.pointRadius=function(t){return arguments.length?(a="function"==typeof t?t:(u.pointRadius(+t),+t),n):a},n.projection(ao.geo.albersUsa()).context(null)},ao.geo.transform=function(n){return{stream:function(t){var e=new ie(t);for(var r in n)e[r]=n[r];return e}}},ie.prototype={point:function(n,t){this.stream.point(n,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}},ao.geo.projection=oe,ao.geo.projectionMutator=ae,(ao.geo.equirectangular=function(){return oe(ce)}).raw=ce.invert=ce,ao.geo.rotation=function(n){function t(t){return t=n(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t}return n=se(n[0]%360*Yo,n[1]*Yo,n.length>2?n[2]*Yo:0),t.invert=function(t){return t=n.invert(t[0]*Yo,t[1]*Yo),t[0]*=Zo,t[1]*=Zo,t},t},fe.invert=ce,ao.geo.circle=function(){function n(){var n="function"==typeof r?r.apply(this,arguments):r,t=se(-n[0]*Yo,-n[1]*Yo,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Zo,n[1]*=Zo}}),{type:"Polygon",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=ve((t=+r)*Yo,i*Yo),n):t},n.precision=function(r){return arguments.length?(e=ve(t*Yo,(i=+r)*Yo),n):i},n.angle(90)},ao.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Yo,i=n[1]*Yo,u=t[1]*Yo,o=Math.sin(r),a=Math.cos(r),l=Math.sin(i),c=Math.cos(i),f=Math.sin(u),s=Math.cos(u);return Math.atan2(Math.sqrt((e=s*o)*e+(e=c*f-l*s*a)*e),l*f+c*s*a)},ao.geo.graticule=function(){function n(){return{type:"MultiLineString",coordinates:t()}}function t(){return ao.range(Math.ceil(u/d)*d,i,d).map(h).concat(ao.range(Math.ceil(c/y)*y,l,y).map(p)).concat(ao.range(Math.ceil(r/g)*g,e,g).filter(function(n){return xo(n%d)>Uo}).map(f)).concat(ao.range(Math.ceil(a/v)*v,o,v).filter(function(n){return xo(n%y)>Uo}).map(s))}var e,r,i,u,o,a,l,c,f,s,h,p,g=10,v=g,d=90,y=360,m=2.5;return n.lines=function(){return t().map(function(n){return{type:"LineString",coordinates:n}})},n.outline=function(){return{type:"Polygon",coordinates:[h(u).concat(p(l).slice(1),h(i).reverse().slice(1),p(c).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],c=+t[0][1],l=+t[1][1],u>i&&(t=u,u=i,i=t),c>l&&(t=c,c=l,l=t),n.precision(m)):[[u,c],[i,l]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],a=+t[0][1],o=+t[1][1],r>e&&(t=r,r=e,e=t),a>o&&(t=a,a=o,o=t),n.precision(m)):[[r,a],[e,o]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(d=+t[0],y=+t[1],n):[d,y]},n.minorStep=function(t){return arguments.length?(g=+t[0],v=+t[1],n):[g,v]},n.precision=function(t){return arguments.length?(m=+t,f=ye(a,o,90),s=me(r,e,m),h=ye(c,l,90),p=me(u,i,m),n):m},n.majorExtent([[-180,-90+Uo],[180,90-Uo]]).minorExtent([[-180,-80-Uo],[180,80+Uo]])},ao.geo.greatArc=function(){function n(){return{type:"LineString",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=Me,i=xe;return n.distance=function(){return ao.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t="function"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e="function"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},ao.geo.interpolate=function(n,t){return be(n[0]*Yo,n[1]*Yo,t[0]*Yo,t[1]*Yo)},ao.geo.length=function(n){return Ja=0,ao.geo.stream(n,Ga),Ja};var Ja,Ga={sphere:b,point:b,lineStart:_e,lineEnd:b,polygonStart:b,polygonEnd:b},Ka=we(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(ao.geo.azimuthalEqualArea=function(){return oe(Ka)}).raw=Ka;var Qa=we(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},m);(ao.geo.azimuthalEquidistant=function(){return oe(Qa)}).raw=Qa,(ao.geo.conicConformal=function(){return Vt(Se)}).raw=Se,(ao.geo.conicEquidistant=function(){return Vt(ke)}).raw=ke;var nl=we(function(n){return 1/n},Math.atan);(ao.geo.gnomonic=function(){return oe(nl)}).raw=nl,Ne.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Io]},(ao.geo.mercator=function(){return Ee(Ne)}).raw=Ne;var tl=we(function(){return 1},Math.asin);(ao.geo.orthographic=function(){return oe(tl)}).raw=tl;var el=we(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(ao.geo.stereographic=function(){return oe(el)}).raw=el,Ae.invert=function(n,t){return[-t,2*Math.atan(Math.exp(n))-Io]},(ao.geo.transverseMercator=function(){var n=Ee(Ae),t=n.center,e=n.rotate;return n.center=function(n){return n?t([-n[1],n[0]]):(n=t(),[n[1],-n[0]])},n.rotate=function(n){return n?e([n[0],n[1],n.length>2?n[2]+90:90]):(n=e(),[n[0],n[1],n[2]-90])},e([0,0,90])}).raw=Ae,ao.geom={},ao.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i=En(e),u=En(r),o=n.length,a=[],l=[];for(t=0;o>t;t++)a.push([+i.call(this,n[t],t),+u.call(this,n[t],t),t]);for(a.sort(qe),t=0;o>t;t++)l.push([a[t][0],-a[t][1]]);var c=Le(a),f=Le(l),s=f[0]===c[0],h=f[f.length-1]===c[c.length-1],p=[];for(t=c.length-1;t>=0;--t)p.push(n[a[c[t]][2]]);for(t=+s;t=r&&c.x<=u&&c.y>=i&&c.y<=o?[[r,o],[u,o],[u,i],[r,i]]:[];f.point=n[a]}),t}function e(n){return n.map(function(n,t){return{x:Math.round(u(n,t)/Uo)*Uo,y:Math.round(o(n,t)/Uo)*Uo,i:t}})}var r=Ce,i=ze,u=r,o=i,a=sl;return n?t(n):(t.links=function(n){return ar(e(n)).edges.filter(function(n){return n.l&&n.r}).map(function(t){return{source:n[t.l.i],target:n[t.r.i]}})},t.triangles=function(n){var t=[];return ar(e(n)).cells.forEach(function(e,r){for(var i,u,o=e.site,a=e.edges.sort(Ve),l=-1,c=a.length,f=a[c-1].edge,s=f.l===o?f.r:f.l;++l=c,h=r>=f,p=h<<1|s;n.leaf=!1,n=n.nodes[p]||(n.nodes[p]=hr()),s?i=c:a=c,h?o=f:l=f,u(n,t,e,r,i,o,a,l)}var f,s,h,p,g,v,d,y,m,M=En(a),x=En(l);if(null!=t)v=t,d=e,y=r,m=i;else if(y=m=-(v=d=1/0),s=[],h=[],g=n.length,o)for(p=0;g>p;++p)f=n[p],f.xy&&(y=f.x),f.y>m&&(m=f.y),s.push(f.x),h.push(f.y);else for(p=0;g>p;++p){var b=+M(f=n[p],p),_=+x(f,p);v>b&&(v=b),d>_&&(d=_),b>y&&(y=b),_>m&&(m=_),s.push(b),h.push(_)}var w=y-v,S=m-d;w>S?m=d+w:y=v+S;var k=hr();if(k.add=function(n){u(k,n,+M(n,++p),+x(n,p),v,d,y,m)},k.visit=function(n){pr(n,k,v,d,y,m)},k.find=function(n){return gr(k,n[0],n[1],v,d,y,m)},p=-1,null==t){for(;++p=0?n.slice(0,t):n,r=t>=0?n.slice(t+1):"in";return e=vl.get(e)||gl,r=dl.get(r)||m,br(r(e.apply(null,lo.call(arguments,1))))},ao.interpolateHcl=Rr,ao.interpolateHsl=Dr,ao.interpolateLab=Pr,ao.interpolateRound=Ur,ao.transform=function(n){var t=fo.createElementNS(ao.ns.prefix.svg,"g");return(ao.transform=function(n){if(null!=n){t.setAttribute("transform",n);var e=t.transform.baseVal.consolidate()}return new jr(e?e.matrix:yl)})(n)},jr.prototype.toString=function(){return"translate("+this.translate+")rotate("+this.rotate+")skewX("+this.skew+")scale("+this.scale+")"};var yl={a:1,b:0,c:0,d:1,e:0,f:0};ao.interpolateTransform=$r,ao.layout={},ao.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++ea*a/y){if(v>l){var c=t.charge/l;n.px-=u*c,n.py-=o*c}return!0}if(t.point&&l&&v>l){var c=t.pointCharge/l;n.px-=u*c,n.py-=o*c}}return!t.charge}}function t(n){n.px=ao.event.x,n.py=ao.event.y,l.resume()}var e,r,i,u,o,a,l={},c=ao.dispatch("start","tick","end"),f=[1,1],s=.9,h=ml,p=Ml,g=-30,v=xl,d=.1,y=.64,M=[],x=[];return l.tick=function(){if((i*=.99)<.005)return e=null,c.end({type:"end",alpha:i=0}),!0;var t,r,l,h,p,v,y,m,b,_=M.length,w=x.length;for(r=0;w>r;++r)l=x[r],h=l.source,p=l.target,m=p.x-h.x,b=p.y-h.y,(v=m*m+b*b)&&(v=i*o[r]*((v=Math.sqrt(v))-u[r])/v,m*=v,b*=v,p.x-=m*(y=h.weight+p.weight?h.weight/(h.weight+p.weight):.5),p.y-=b*y,h.x+=m*(y=1-y),h.y+=b*y);if((y=i*d)&&(m=f[0]/2,b=f[1]/2,r=-1,y))for(;++r<_;)l=M[r],l.x+=(m-l.x)*y,l.y+=(b-l.y)*y;if(g)for(ri(t=ao.geom.quadtree(M),i,a),r=-1;++r<_;)(l=M[r]).fixed||t.visit(n(l));for(r=-1;++r<_;)l=M[r],l.fixed?(l.x=l.px,l.y=l.py):(l.x-=(l.px-(l.px=l.x))*s,l.y-=(l.py-(l.py=l.y))*s);c.tick({type:"tick",alpha:i})},l.nodes=function(n){return arguments.length?(M=n,l):M},l.links=function(n){return arguments.length?(x=n,l):x},l.size=function(n){return arguments.length?(f=n,l):f},l.linkDistance=function(n){return arguments.length?(h="function"==typeof n?n:+n,l):h},l.distance=l.linkDistance,l.linkStrength=function(n){return arguments.length?(p="function"==typeof n?n:+n,l):p},l.friction=function(n){return arguments.length?(s=+n,l):s},l.charge=function(n){return arguments.length?(g="function"==typeof n?n:+n,l):g},l.chargeDistance=function(n){return arguments.length?(v=n*n,l):Math.sqrt(v)},l.gravity=function(n){return arguments.length?(d=+n,l):d},l.theta=function(n){return arguments.length?(y=n*n,l):Math.sqrt(y)},l.alpha=function(n){return arguments.length?(n=+n,i?n>0?i=n:(e.c=null,e.t=NaN,e=null,c.end({type:"end",alpha:i=0})):n>0&&(c.start({type:"start",alpha:i=n}),e=qn(l.tick)),l):i},l.start=function(){function n(n,r){if(!e){for(e=new Array(i),l=0;i>l;++l)e[l]=[];for(l=0;c>l;++l){var u=x[l];e[u.source.index].push(u.target),e[u.target.index].push(u.source)}}for(var o,a=e[t],l=-1,f=a.length;++lt;++t)(r=M[t]).index=t,r.weight=0;for(t=0;c>t;++t)r=x[t],"number"==typeof r.source&&(r.source=M[r.source]),"number"==typeof r.target&&(r.target=M[r.target]),++r.source.weight,++r.target.weight;for(t=0;i>t;++t)r=M[t],isNaN(r.x)&&(r.x=n("x",s)),isNaN(r.y)&&(r.y=n("y",v)),isNaN(r.px)&&(r.px=r.x),isNaN(r.py)&&(r.py=r.y);if(u=[],"function"==typeof h)for(t=0;c>t;++t)u[t]=+h.call(this,x[t],t);else for(t=0;c>t;++t)u[t]=h;if(o=[],"function"==typeof p)for(t=0;c>t;++t)o[t]=+p.call(this,x[t],t);else for(t=0;c>t;++t)o[t]=p;if(a=[],"function"==typeof g)for(t=0;i>t;++t)a[t]=+g.call(this,M[t],t);else for(t=0;i>t;++t)a[t]=g;return l.resume()},l.resume=function(){return l.alpha(.1)},l.stop=function(){return l.alpha(0)},l.drag=function(){return r||(r=ao.behavior.drag().origin(m).on("dragstart.force",Qr).on("drag.force",t).on("dragend.force",ni)),arguments.length?void this.on("mouseover.force",ti).on("mouseout.force",ei).call(r):r},ao.rebind(l,c,"on")};var ml=20,Ml=1,xl=1/0;ao.layout.hierarchy=function(){function n(i){var u,o=[i],a=[];for(i.depth=0;null!=(u=o.pop());)if(a.push(u),(c=e.call(n,u,u.depth))&&(l=c.length)){for(var l,c,f;--l>=0;)o.push(f=c[l]),f.parent=u,f.depth=u.depth+1;r&&(u.value=0),u.children=c}else r&&(u.value=+r.call(n,u,u.depth)||0),delete u.children;return oi(i,function(n){var e,i;t&&(e=n.children)&&e.sort(t),r&&(i=n.parent)&&(i.value+=n.value)}),a}var t=ci,e=ai,r=li;return n.sort=function(e){return arguments.length?(t=e,n):t},n.children=function(t){return arguments.length?(e=t,n):e},n.value=function(t){return arguments.length?(r=t,n):r},n.revalue=function(t){return r&&(ui(t,function(n){n.children&&(n.value=0)}),oi(t,function(t){var e;t.children||(t.value=+r.call(n,t,t.depth)||0),(e=t.parent)&&(e.value+=t.value)})),t},n},ao.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(o=u.length)){var o,a,l,c=-1;for(r=t.value?r/t.value:0;++cs?-1:1),g=ao.sum(c),v=g?(s-l*p)/g:0,d=ao.range(l),y=[];return null!=e&&d.sort(e===bl?function(n,t){return c[t]-c[n]}:function(n,t){return e(o[n],o[t])}),d.forEach(function(n){y[n]={data:o[n],value:a=c[n],startAngle:f,endAngle:f+=a*v+p,padAngle:h}}),y}var t=Number,e=bl,r=0,i=Ho,u=0;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n.padAngle=function(t){return arguments.length?(u=t,n):u},n};var bl={};ao.layout.stack=function(){function n(a,l){if(!(h=a.length))return a;var c=a.map(function(e,r){return t.call(n,e,r)}),f=c.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),o.call(n,t,e)]})}),s=e.call(n,f,l);c=ao.permute(c,s),f=ao.permute(f,s);var h,p,g,v,d=r.call(n,f,l),y=c[0].length;for(g=0;y>g;++g)for(i.call(n,c[0][g],v=d[g],f[0][g][1]),p=1;h>p;++p)i.call(n,c[p][g],v+=f[p-1][g][1],f[p][g][1]);return a}var t=m,e=gi,r=vi,i=pi,u=si,o=hi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e="function"==typeof t?t:_l.get(t)||gi,n):e},n.offset=function(t){return arguments.length?(r="function"==typeof t?t:wl.get(t)||vi,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(o=t,n):o},n.out=function(t){return arguments.length?(i=t,n):i},n};var _l=ao.map({"inside-out":function(n){var t,e,r=n.length,i=n.map(di),u=n.map(yi),o=ao.range(r).sort(function(n,t){return i[n]-i[t]}),a=0,l=0,c=[],f=[];for(t=0;r>t;++t)e=o[t],l>a?(a+=u[e],c.push(e)):(l+=u[e],f.push(e));return f.reverse().concat(c)},reverse:function(n){return ao.range(n.length).reverse()},"default":gi}),wl=ao.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,o=[],a=0,l=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>a&&(a=r),o.push(r)}for(e=0;u>e;++e)l[e]=(a-o[e])/2;return l},wiggle:function(n){var t,e,r,i,u,o,a,l,c,f=n.length,s=n[0],h=s.length,p=[];for(p[0]=l=c=0,e=1;h>e;++e){for(t=0,i=0;f>t;++t)i+=n[t][e][1];for(t=0,u=0,a=s[e][0]-s[e-1][0];f>t;++t){for(r=0,o=(n[t][e][1]-n[t][e-1][1])/(2*a);t>r;++r)o+=(n[r][e][1]-n[r][e-1][1])/a;u+=o*n[t][e][1]}p[e]=l-=i?u/i*a:0,c>l&&(c=l)}for(e=0;h>e;++e)p[e]-=c;return p},expand:function(n){var t,e,r,i=n.length,u=n[0].length,o=1/i,a=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=o}for(e=0;u>e;++e)a[e]=0;return a},zero:vi});ao.layout.histogram=function(){function n(n,u){for(var o,a,l=[],c=n.map(e,this),f=r.call(this,c,u),s=i.call(this,f,c,u),u=-1,h=c.length,p=s.length-1,g=t?1:1/h;++u0)for(u=-1;++u=f[0]&&a<=f[1]&&(o=l[ao.bisect(s,a,1,p)-1],o.y+=g,o.push(n[u]));return l}var t=!0,e=Number,r=bi,i=Mi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=En(t),n):r},n.bins=function(t){return arguments.length?(i="number"==typeof t?function(n){return xi(n,t)}:En(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},ao.layout.pack=function(){function n(n,u){var o=e.call(this,n,u),a=o[0],l=i[0],c=i[1],f=null==t?Math.sqrt:"function"==typeof t?t:function(){return t};if(a.x=a.y=0,oi(a,function(n){n.r=+f(n.value)}),oi(a,Ni),r){var s=r*(t?1:Math.max(2*a.r/l,2*a.r/c))/2;oi(a,function(n){n.r+=s}),oi(a,Ni),oi(a,function(n){n.r-=s})}return Ci(a,l/2,c/2,t?1:1/Math.max(2*a.r/l,2*a.r/c)),o}var t,e=ao.layout.hierarchy().sort(_i),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||"function"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ii(n,e)},ao.layout.tree=function(){function n(n,i){var f=o.call(this,n,i),s=f[0],h=t(s);if(oi(h,e),h.parent.m=-h.z,ui(h,r),c)ui(s,u);else{var p=s,g=s,v=s;ui(s,function(n){n.xg.x&&(g=n),n.depth>v.depth&&(v=n)});var d=a(p,g)/2-p.x,y=l[0]/(g.x+a(g,p)/2+d),m=l[1]/(v.depth||1);ui(s,function(n){n.x=(n.x+d)*y,n.y=n.depth*m})}return f}function t(n){for(var t,e={A:null,children:[n]},r=[e];null!=(t=r.pop());)for(var i,u=t.children,o=0,a=u.length;a>o;++o)r.push((u[o]=i={_:u[o],parent:t,children:(i=u[o].children)&&i.slice()||[],A:null,a:null,z:0,m:0,c:0,s:0,t:null,i:o}).a=i);return e.children[0]}function e(n){var t=n.children,e=n.parent.children,r=n.i?e[n.i-1]:null;if(t.length){Di(n);var u=(t[0].z+t[t.length-1].z)/2;r?(n.z=r.z+a(n._,r._),n.m=n.z-u):n.z=u}else r&&(n.z=r.z+a(n._,r._));n.parent.A=i(n,r,n.parent.A||e[0])}function r(n){n._.x=n.z+n.parent.m,n.m+=n.parent.m}function i(n,t,e){if(t){for(var r,i=n,u=n,o=t,l=i.parent.children[0],c=i.m,f=u.m,s=o.m,h=l.m;o=Ti(o),i=qi(i),o&&i;)l=qi(l),u=Ti(u),u.a=n,r=o.z+s-i.z-c+a(o._,i._),r>0&&(Ri(Pi(o,n,e),n,r),c+=r,f+=r),s+=o.m,c+=i.m,h+=l.m,f+=u.m;o&&!Ti(u)&&(u.t=o,u.m+=s-f),i&&!qi(l)&&(l.t=i,l.m+=c-h,e=n)}return e}function u(n){n.x*=l[0],n.y=n.depth*l[1]}var o=ao.layout.hierarchy().sort(null).value(null),a=Li,l=[1,1],c=null;return n.separation=function(t){return arguments.length?(a=t,n):a},n.size=function(t){return arguments.length?(c=null==(l=t)?u:null,n):c?null:l},n.nodeSize=function(t){return arguments.length?(c=null==(l=t)?null:u,n):c?l:null},ii(n,o)},ao.layout.cluster=function(){function n(n,u){var o,a=t.call(this,n,u),l=a[0],c=0;oi(l,function(n){var t=n.children;t&&t.length?(n.x=ji(t),n.y=Ui(t)):(n.x=o?c+=e(n,o):0,n.y=0,o=n)});var f=Fi(l),s=Hi(l),h=f.x-e(f,s)/2,p=s.x+e(s,f)/2;return oi(l,i?function(n){n.x=(n.x-l.x)*r[0],n.y=(l.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(p-h)*r[0],n.y=(1-(l.y?n.y/l.y:1))*r[1]}),a}var t=ao.layout.hierarchy().sort(null).value(null),e=Li,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ii(n,t)},ao.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++it?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var o,a,l,c=s(e),f=[],h=u.slice(),g=1/0,v="slice"===p?c.dx:"dice"===p?c.dy:"slice-dice"===p?1&e.depth?c.dy:c.dx:Math.min(c.dx,c.dy);for(n(h,c.dx*c.dy/e.value),f.area=0;(l=h.length)>0;)f.push(o=h[l-1]),f.area+=o.area,"squarify"!==p||(a=r(f,v))<=g?(h.pop(),g=a):(f.area-=f.pop().area,i(f,v,c,!1),v=Math.min(c.dx,c.dy),f.length=f.area=0,g=1/0);f.length&&(i(f,v,c,!0),f.length=f.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,o=s(t),a=r.slice(),l=[];for(n(a,o.dx*o.dy/t.value),l.area=0;u=a.pop();)l.push(u),l.area+=u.area,null!=u.z&&(i(l,u.z?o.dx:o.dy,o,!a.length),l.length=l.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,o=-1,a=n.length;++oe&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*g/r,r/(t*u*g)):1/0}function i(n,t,e,r){var i,u=-1,o=n.length,a=e.x,c=e.y,f=t?l(n.area/t):0; +if(t==e.dx){for((r||f>e.dy)&&(f=e.dy);++ue.dx)&&(f=e.dx);++ue&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=ao.random.normal.apply(ao,arguments);return function(){return Math.exp(n())}},bates:function(n){var t=ao.random.irwinHall(n);return function(){return t()/n}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t}}},ao.scale={};var Sl={floor:m,ceil:m};ao.scale.linear=function(){return Wi([0,1],[0,1],Mr,!1)};var kl={s:1,g:1,p:1,r:1,e:1};ao.scale.log=function(){return ru(ao.scale.linear().domain([0,1]),10,!0,[1,10])};var Nl=ao.format(".0e"),El={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};ao.scale.pow=function(){return iu(ao.scale.linear(),1,[0,1])},ao.scale.sqrt=function(){return ao.scale.pow().exponent(.5)},ao.scale.ordinal=function(){return ou([],{t:"range",a:[[]]})},ao.scale.category10=function(){return ao.scale.ordinal().range(Al)},ao.scale.category20=function(){return ao.scale.ordinal().range(Cl)},ao.scale.category20b=function(){return ao.scale.ordinal().range(zl)},ao.scale.category20c=function(){return ao.scale.ordinal().range(Ll)};var Al=[2062260,16744206,2924588,14034728,9725885,9197131,14907330,8355711,12369186,1556175].map(xn),Cl=[2062260,11454440,16744206,16759672,2924588,10018698,14034728,16750742,9725885,12955861,9197131,12885140,14907330,16234194,8355711,13092807,12369186,14408589,1556175,10410725].map(xn),zl=[3750777,5395619,7040719,10264286,6519097,9216594,11915115,13556636,9202993,12426809,15186514,15190932,8666169,11356490,14049643,15177372,8077683,10834324,13528509,14589654].map(xn),Ll=[3244733,7057110,10406625,13032431,15095053,16616764,16625259,16634018,3253076,7652470,10607003,13101504,7695281,10394312,12369372,14342891,6513507,9868950,12434877,14277081].map(xn);ao.scale.quantile=function(){return au([],[])},ao.scale.quantize=function(){return lu(0,1,[0,1])},ao.scale.threshold=function(){return cu([.5],[0,1])},ao.scale.identity=function(){return fu([0,1])},ao.svg={},ao.svg.arc=function(){function n(){var n=Math.max(0,+e.apply(this,arguments)),c=Math.max(0,+r.apply(this,arguments)),f=o.apply(this,arguments)-Io,s=a.apply(this,arguments)-Io,h=Math.abs(s-f),p=f>s?0:1;if(n>c&&(g=c,c=n,n=g),h>=Oo)return t(c,p)+(n?t(n,1-p):"")+"Z";var g,v,d,y,m,M,x,b,_,w,S,k,N=0,E=0,A=[];if((y=(+l.apply(this,arguments)||0)/2)&&(d=u===ql?Math.sqrt(n*n+c*c):+u.apply(this,arguments),p||(E*=-1),c&&(E=tn(d/c*Math.sin(y))),n&&(N=tn(d/n*Math.sin(y)))),c){m=c*Math.cos(f+E),M=c*Math.sin(f+E),x=c*Math.cos(s-E),b=c*Math.sin(s-E);var C=Math.abs(s-f-2*E)<=Fo?0:1;if(E&&yu(m,M,x,b)===p^C){var z=(f+s)/2;m=c*Math.cos(z),M=c*Math.sin(z),x=b=null}}else m=M=0;if(n){_=n*Math.cos(s-N),w=n*Math.sin(s-N),S=n*Math.cos(f+N),k=n*Math.sin(f+N);var L=Math.abs(f-s+2*N)<=Fo?0:1;if(N&&yu(_,w,S,k)===1-p^L){var q=(f+s)/2;_=n*Math.cos(q),w=n*Math.sin(q),S=k=null}}else _=w=0;if(h>Uo&&(g=Math.min(Math.abs(c-n)/2,+i.apply(this,arguments)))>.001){v=c>n^p?0:1;var T=g,R=g;if(Fo>h){var D=null==S?[_,w]:null==x?[m,M]:Re([m,M],[S,k],[x,b],[_,w]),P=m-D[0],U=M-D[1],j=x-D[0],F=b-D[1],H=1/Math.sin(Math.acos((P*j+U*F)/(Math.sqrt(P*P+U*U)*Math.sqrt(j*j+F*F)))/2),O=Math.sqrt(D[0]*D[0]+D[1]*D[1]);R=Math.min(g,(n-O)/(H-1)),T=Math.min(g,(c-O)/(H+1))}if(null!=x){var I=mu(null==S?[_,w]:[S,k],[m,M],c,T,p),Y=mu([x,b],[_,w],c,T,p);g===T?A.push("M",I[0],"A",T,",",T," 0 0,",v," ",I[1],"A",c,",",c," 0 ",1-p^yu(I[1][0],I[1][1],Y[1][0],Y[1][1]),",",p," ",Y[1],"A",T,",",T," 0 0,",v," ",Y[0]):A.push("M",I[0],"A",T,",",T," 0 1,",v," ",Y[0])}else A.push("M",m,",",M);if(null!=S){var Z=mu([m,M],[S,k],n,-R,p),V=mu([_,w],null==x?[m,M]:[x,b],n,-R,p);g===R?A.push("L",V[0],"A",R,",",R," 0 0,",v," ",V[1],"A",n,",",n," 0 ",p^yu(V[1][0],V[1][1],Z[1][0],Z[1][1]),",",1-p," ",Z[1],"A",R,",",R," 0 0,",v," ",Z[0]):A.push("L",V[0],"A",R,",",R," 0 0,",v," ",Z[0])}else A.push("L",_,",",w)}else A.push("M",m,",",M),null!=x&&A.push("A",c,",",c," 0 ",C,",",p," ",x,",",b),A.push("L",_,",",w),null!=S&&A.push("A",n,",",n," 0 ",L,",",1-p," ",S,",",k);return A.push("Z"),A.join("")}function t(n,t){return"M0,"+n+"A"+n+","+n+" 0 1,"+t+" 0,"+-n+"A"+n+","+n+" 0 1,"+t+" 0,"+n}var e=hu,r=pu,i=su,u=ql,o=gu,a=vu,l=du;return n.innerRadius=function(t){return arguments.length?(e=En(t),n):e},n.outerRadius=function(t){return arguments.length?(r=En(t),n):r},n.cornerRadius=function(t){return arguments.length?(i=En(t),n):i},n.padRadius=function(t){return arguments.length?(u=t==ql?ql:En(t),n):u},n.startAngle=function(t){return arguments.length?(o=En(t),n):o},n.endAngle=function(t){return arguments.length?(a=En(t),n):a},n.padAngle=function(t){return arguments.length?(l=En(t),n):l},n.centroid=function(){var n=(+e.apply(this,arguments)+ +r.apply(this,arguments))/2,t=(+o.apply(this,arguments)+ +a.apply(this,arguments))/2-Io;return[Math.cos(t)*n,Math.sin(t)*n]},n};var ql="auto";ao.svg.line=function(){return Mu(m)};var Tl=ao.map({linear:xu,"linear-closed":bu,step:_u,"step-before":wu,"step-after":Su,basis:zu,"basis-open":Lu,"basis-closed":qu,bundle:Tu,cardinal:Eu,"cardinal-open":ku,"cardinal-closed":Nu,monotone:Fu});Tl.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var Rl=[0,2/3,1/3,0],Dl=[0,1/3,2/3,0],Pl=[0,1/6,2/3,1/6];ao.svg.line.radial=function(){var n=Mu(Hu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},wu.reverse=Su,Su.reverse=wu,ao.svg.area=function(){return Ou(m)},ao.svg.area.radial=function(){var n=Ou(Hu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},ao.svg.chord=function(){function n(n,a){var l=t(this,u,n,a),c=t(this,o,n,a);return"M"+l.p0+r(l.r,l.p1,l.a1-l.a0)+(e(l,c)?i(l.r,l.p1,l.r,l.p0):i(l.r,l.p1,c.r,c.p0)+r(c.r,c.p1,c.a1-c.a0)+i(c.r,c.p1,l.r,l.p0))+"Z"}function t(n,t,e,r){var i=t.call(n,e,r),u=a.call(n,i,r),o=l.call(n,i,r)-Io,f=c.call(n,i,r)-Io;return{r:u,a0:o,a1:f,p0:[u*Math.cos(o),u*Math.sin(o)],p1:[u*Math.cos(f),u*Math.sin(f)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return"A"+n+","+n+" 0 "+ +(e>Fo)+",1 "+t}function i(n,t,e,r){return"Q 0,0 "+r}var u=Me,o=xe,a=Iu,l=gu,c=vu;return n.radius=function(t){return arguments.length?(a=En(t),n):a},n.source=function(t){return arguments.length?(u=En(t),n):u},n.target=function(t){return arguments.length?(o=En(t),n):o},n.startAngle=function(t){return arguments.length?(l=En(t),n):l},n.endAngle=function(t){return arguments.length?(c=En(t),n):c},n},ao.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),o=e.call(this,n,i),a=(u.y+o.y)/2,l=[u,{x:u.x,y:a},{x:o.x,y:a},o];return l=l.map(r),"M"+l[0]+"C"+l[1]+" "+l[2]+" "+l[3]}var t=Me,e=xe,r=Yu;return n.source=function(e){return arguments.length?(t=En(e),n):t},n.target=function(t){return arguments.length?(e=En(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},ao.svg.diagonal.radial=function(){var n=ao.svg.diagonal(),t=Yu,e=n.projection;return n.projection=function(n){return arguments.length?e(Zu(t=n)):t},n},ao.svg.symbol=function(){function n(n,r){return(Ul.get(t.call(this,n,r))||$u)(e.call(this,n,r))}var t=Xu,e=Vu;return n.type=function(e){return arguments.length?(t=En(e),n):t},n.size=function(t){return arguments.length?(e=En(t),n):e},n};var Ul=ao.map({circle:$u,cross:function(n){var t=Math.sqrt(n/5)/2;return"M"+-3*t+","+-t+"H"+-t+"V"+-3*t+"H"+t+"V"+-t+"H"+3*t+"V"+t+"H"+t+"V"+3*t+"H"+-t+"V"+t+"H"+-3*t+"Z"},diamond:function(n){var t=Math.sqrt(n/(2*Fl)),e=t*Fl;return"M0,"+-t+"L"+e+",0 0,"+t+" "+-e+",0Z"},square:function(n){var t=Math.sqrt(n)/2;return"M"+-t+","+-t+"L"+t+","+-t+" "+t+","+t+" "+-t+","+t+"Z"},"triangle-down":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+e+"L"+t+","+-e+" "+-t+","+-e+"Z"},"triangle-up":function(n){var t=Math.sqrt(n/jl),e=t*jl/2;return"M0,"+-e+"L"+t+","+e+" "+-t+","+e+"Z"}});ao.svg.symbolTypes=Ul.keys();var jl=Math.sqrt(3),Fl=Math.tan(30*Yo);Co.transition=function(n){for(var t,e,r=Hl||++Zl,i=Ku(n),u=[],o=Ol||{time:Date.now(),ease:Nr,delay:0,duration:250},a=-1,l=this.length;++au;u++){i.push(t=[]);for(var e=this[u],a=0,l=e.length;l>a;a++)(r=e[a])&&n.call(r,r.__data__,a,u)&&t.push(r)}return Wu(i,this.namespace,this.id)},Yl.tween=function(n,t){var e=this.id,r=this.namespace;return arguments.length<2?this.node()[r][e].tween.get(n):Y(this,null==t?function(t){t[r][e].tween.remove(n)}:function(i){i[r][e].tween.set(n,t)})},Yl.attr=function(n,t){function e(){this.removeAttribute(a)}function r(){this.removeAttributeNS(a.space,a.local)}function i(n){return null==n?e:(n+="",function(){var t,e=this.getAttribute(a);return e!==n&&(t=o(e,n),function(n){this.setAttribute(a,t(n))})})}function u(n){return null==n?r:(n+="",function(){var t,e=this.getAttributeNS(a.space,a.local);return e!==n&&(t=o(e,n),function(n){this.setAttributeNS(a.space,a.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var o="transform"==n?$r:Mr,a=ao.ns.qualify(n);return Ju(this,"attr."+n,t,a.local?u:i)},Yl.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=ao.ns.qualify(n);return this.tween("attr."+n,i.local?r:e)},Yl.style=function(n,e,r){function i(){this.style.removeProperty(n)}function u(e){return null==e?i:(e+="",function(){var i,u=t(this).getComputedStyle(this,null).getPropertyValue(n);return u!==e&&(i=Mr(u,e),function(t){this.style.setProperty(n,i(t),r)})})}var o=arguments.length;if(3>o){if("string"!=typeof n){2>o&&(e="");for(r in n)this.style(r,n[r],e);return this}r=""}return Ju(this,"style."+n,e,u)},Yl.styleTween=function(n,e,r){function i(i,u){var o=e.call(this,i,u,t(this).getComputedStyle(this,null).getPropertyValue(n));return o&&function(t){this.style.setProperty(n,o(t),r)}}return arguments.length<3&&(r=""),this.tween("style."+n,i)},Yl.text=function(n){return Ju(this,"text",n,Gu)},Yl.remove=function(){var n=this.namespace;return this.each("end.transition",function(){var t;this[n].count<2&&(t=this.parentNode)&&t.removeChild(this)})},Yl.ease=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].ease:("function"!=typeof n&&(n=ao.ease.apply(ao,arguments)),Y(this,function(r){r[e][t].ease=n}))},Yl.delay=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].delay:Y(this,"function"==typeof n?function(r,i,u){r[e][t].delay=+n.call(r,r.__data__,i,u)}:(n=+n,function(r){r[e][t].delay=n}))},Yl.duration=function(n){var t=this.id,e=this.namespace;return arguments.length<1?this.node()[e][t].duration:Y(this,"function"==typeof n?function(r,i,u){r[e][t].duration=Math.max(1,n.call(r,r.__data__,i,u))}:(n=Math.max(1,n),function(r){r[e][t].duration=n}))},Yl.each=function(n,t){var e=this.id,r=this.namespace;if(arguments.length<2){var i=Ol,u=Hl;try{Hl=e,Y(this,function(t,i,u){Ol=t[r][e],n.call(t,t.__data__,i,u)})}finally{Ol=i,Hl=u}}else Y(this,function(i){var u=i[r][e];(u.event||(u.event=ao.dispatch("start","end","interrupt"))).on(n,t)});return this},Yl.transition=function(){for(var n,t,e,r,i=this.id,u=++Zl,o=this.namespace,a=[],l=0,c=this.length;c>l;l++){a.push(n=[]);for(var t=this[l],f=0,s=t.length;s>f;f++)(e=t[f])&&(r=e[o][i],Qu(e,f,o,u,{time:r.time,ease:r.ease,delay:r.delay+r.duration,duration:r.duration})),n.push(e)}return Wu(a,o,u)},ao.svg.axis=function(){function n(n){n.each(function(){var n,c=ao.select(this),f=this.__chart__||e,s=this.__chart__=e.copy(),h=null==l?s.ticks?s.ticks.apply(s,a):s.domain():l,p=null==t?s.tickFormat?s.tickFormat.apply(s,a):m:t,g=c.selectAll(".tick").data(h,s),v=g.enter().insert("g",".domain").attr("class","tick").style("opacity",Uo),d=ao.transition(g.exit()).style("opacity",Uo).remove(),y=ao.transition(g.order()).style("opacity",1),M=Math.max(i,0)+o,x=Zi(s),b=c.selectAll(".domain").data([0]),_=(b.enter().append("path").attr("class","domain"),ao.transition(b));v.append("line"),v.append("text");var w,S,k,N,E=v.select("line"),A=y.select("line"),C=g.select("text").text(p),z=v.select("text"),L=y.select("text"),q="top"===r||"left"===r?-1:1;if("bottom"===r||"top"===r?(n=no,w="x",k="y",S="x2",N="y2",C.attr("dy",0>q?"0em":".71em").style("text-anchor","middle"),_.attr("d","M"+x[0]+","+q*u+"V0H"+x[1]+"V"+q*u)):(n=to,w="y",k="x",S="y2",N="x2",C.attr("dy",".32em").style("text-anchor",0>q?"end":"start"),_.attr("d","M"+q*u+","+x[0]+"H0V"+x[1]+"H"+q*u)),E.attr(N,q*i),z.attr(k,q*M),A.attr(S,0).attr(N,q*i),L.attr(w,0).attr(k,q*M),s.rangeBand){var T=s,R=T.rangeBand()/2;f=s=function(n){return T(n)+R}}else f.rangeBand?f=s:d.call(n,s,f);v.call(n,f,s),y.call(n,s,s)})}var t,e=ao.scale.linear(),r=Vl,i=6,u=6,o=3,a=[10],l=null;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Xl?t+"":Vl,n):r},n.ticks=function(){return arguments.length?(a=co(arguments),n):a},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t){var e=arguments.length;return e?(i=+t,u=+arguments[e-1],n):i},n.innerTickSize=function(t){return arguments.length?(i=+t,n):i},n.outerTickSize=function(t){return arguments.length?(u=+t,n):u},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(){return arguments.length&&n},n};var Vl="bottom",Xl={top:1,right:1,bottom:1,left:1};ao.svg.brush=function(){function n(t){t.each(function(){var t=ao.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",u).on("touchstart.brush",u),o=t.selectAll(".background").data([0]);o.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),t.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var a=t.selectAll(".resize").data(v,m);a.exit().remove(),a.enter().append("g").attr("class",function(n){return"resize "+n}).style("cursor",function(n){return $l[n]}).append("rect").attr("x",function(n){return/[ew]$/.test(n)?-3:null}).attr("y",function(n){return/^[ns]/.test(n)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),a.style("display",n.empty()?"none":null);var l,s=ao.transition(t),h=ao.transition(o);c&&(l=Zi(c),h.attr("x",l[0]).attr("width",l[1]-l[0]),r(s)),f&&(l=Zi(f),h.attr("y",l[0]).attr("height",l[1]-l[0]),i(s)),e(s)})}function e(n){n.selectAll(".resize").attr("transform",function(n){return"translate("+s[+/e$/.test(n)]+","+h[+/^s/.test(n)]+")"})}function r(n){n.select(".extent").attr("x",s[0]),n.selectAll(".extent,.n>rect,.s>rect").attr("width",s[1]-s[0])}function i(n){n.select(".extent").attr("y",h[0]),n.selectAll(".extent,.e>rect,.w>rect").attr("height",h[1]-h[0])}function u(){function u(){32==ao.event.keyCode&&(C||(M=null,L[0]-=s[1],L[1]-=h[1],C=2),S())}function v(){32==ao.event.keyCode&&2==C&&(L[0]+=s[1],L[1]+=h[1],C=0,S())}function d(){var n=ao.mouse(b),t=!1;x&&(n[0]+=x[0],n[1]+=x[1]),C||(ao.event.altKey?(M||(M=[(s[0]+s[1])/2,(h[0]+h[1])/2]),L[0]=s[+(n[0]f?(i=r,r=f):i=f),v[0]!=r||v[1]!=i?(e?a=null:o=null,v[0]=r,v[1]=i,!0):void 0}function m(){d(),k.style("pointer-events","all").selectAll(".resize").style("display",n.empty()?"none":null),ao.select("body").style("cursor",null),q.on("mousemove.brush",null).on("mouseup.brush",null).on("touchmove.brush",null).on("touchend.brush",null).on("keydown.brush",null).on("keyup.brush",null),z(),w({type:"brushend"})}var M,x,b=this,_=ao.select(ao.event.target),w=l.of(b,arguments),k=ao.select(b),N=_.datum(),E=!/^(n|s)$/.test(N)&&c,A=!/^(e|w)$/.test(N)&&f,C=_.classed("extent"),z=W(b),L=ao.mouse(b),q=ao.select(t(b)).on("keydown.brush",u).on("keyup.brush",v);if(ao.event.changedTouches?q.on("touchmove.brush",d).on("touchend.brush",m):q.on("mousemove.brush",d).on("mouseup.brush",m),k.interrupt().selectAll("*").interrupt(),C)L[0]=s[0]-L[0],L[1]=h[0]-L[1];else if(N){var T=+/w$/.test(N),R=+/^n/.test(N);x=[s[1-T]-L[0],h[1-R]-L[1]],L[0]=s[T],L[1]=h[R]}else ao.event.altKey&&(M=L.slice());k.style("pointer-events","none").selectAll(".resize").style("display",null),ao.select("body").style("cursor",_.style("cursor")),w({type:"brushstart"}),d()}var o,a,l=N(n,"brushstart","brush","brushend"),c=null,f=null,s=[0,0],h=[0,0],p=!0,g=!0,v=Bl[0];return n.event=function(n){n.each(function(){var n=l.of(this,arguments),t={x:s,y:h,i:o,j:a},e=this.__chart__||t;this.__chart__=t,Hl?ao.select(this).transition().each("start.brush",function(){o=e.i,a=e.j,s=e.x,h=e.y,n({type:"brushstart"})}).tween("brush:brush",function(){var e=xr(s,t.x),r=xr(h,t.y);return o=a=null,function(i){s=t.x=e(i),h=t.y=r(i),n({type:"brush",mode:"resize"})}}).each("end.brush",function(){o=t.i,a=t.j,n({type:"brush",mode:"resize"}),n({type:"brushend"})}):(n({type:"brushstart"}),n({type:"brush",mode:"resize"}),n({type:"brushend"}))})},n.x=function(t){return arguments.length?(c=t,v=Bl[!c<<1|!f],n):c},n.y=function(t){return arguments.length?(f=t,v=Bl[!c<<1|!f],n):f},n.clamp=function(t){return arguments.length?(c&&f?(p=!!t[0],g=!!t[1]):c?p=!!t:f&&(g=!!t),n):c&&f?[p,g]:c?p:f?g:null},n.extent=function(t){var e,r,i,u,l;return arguments.length?(c&&(e=t[0],r=t[1],f&&(e=e[0],r=r[0]),o=[e,r],c.invert&&(e=c(e),r=c(r)),e>r&&(l=e,e=r,r=l),e==s[0]&&r==s[1]||(s=[e,r])),f&&(i=t[0],u=t[1],c&&(i=i[1],u=u[1]),a=[i,u],f.invert&&(i=f(i),u=f(u)),i>u&&(l=i,i=u,u=l),i==h[0]&&u==h[1]||(h=[i,u])),n):(c&&(o?(e=o[0],r=o[1]):(e=s[0],r=s[1],c.invert&&(e=c.invert(e),r=c.invert(r)),e>r&&(l=e,e=r,r=l))),f&&(a?(i=a[0],u=a[1]):(i=h[0],u=h[1],f.invert&&(i=f.invert(i),u=f.invert(u)),i>u&&(l=i,i=u,u=l))),c&&f?[[e,i],[r,u]]:c?[e,r]:f&&[i,u])},n.clear=function(){return n.empty()||(s=[0,0],h=[0,0],o=a=null),n},n.empty=function(){return!!c&&s[0]==s[1]||!!f&&h[0]==h[1]},ao.rebind(n,l,"on")};var $l={n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},Bl=[["n","e","s","w","nw","ne","se","sw"],["e","w"],["n","s"],[]],Wl=ga.format=xa.timeFormat,Jl=Wl.utc,Gl=Jl("%Y-%m-%dT%H:%M:%S.%LZ");Wl.iso=Date.prototype.toISOString&&+new Date("2000-01-01T00:00:00.000Z")?eo:Gl,eo.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},eo.toString=Gl.toString,ga.second=On(function(n){return new va(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),ga.seconds=ga.second.range,ga.seconds.utc=ga.second.utc.range,ga.minute=On(function(n){return new va(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),ga.minutes=ga.minute.range,ga.minutes.utc=ga.minute.utc.range,ga.hour=On(function(n){var t=n.getTimezoneOffset()/60;return new va(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),ga.hours=ga.hour.range,ga.hours.utc=ga.hour.utc.range,ga.month=On(function(n){return n=ga.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),ga.months=ga.month.range,ga.months.utc=ga.month.utc.range;var Kl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],Ql=[[ga.second,1],[ga.second,5],[ga.second,15],[ga.second,30],[ga.minute,1],[ga.minute,5],[ga.minute,15],[ga.minute,30],[ga.hour,1],[ga.hour,3],[ga.hour,6],[ga.hour,12],[ga.day,1],[ga.day,2],[ga.week,1],[ga.month,1],[ga.month,3],[ga.year,1]],nc=Wl.multi([[".%L",function(n){return n.getMilliseconds()}],[":%S",function(n){return n.getSeconds()}],["%I:%M",function(n){return n.getMinutes()}],["%I %p",function(n){return n.getHours()}],["%a %d",function(n){return n.getDay()&&1!=n.getDate()}],["%b %d",function(n){return 1!=n.getDate()}],["%B",function(n){return n.getMonth()}],["%Y",zt]]),tc={range:function(n,t,e){return ao.range(Math.ceil(n/e)*e,+t,e).map(io)},floor:m,ceil:m};Ql.year=ga.year,ga.scale=function(){return ro(ao.scale.linear(),Ql,nc)};var ec=Ql.map(function(n){return[n[0].utc,n[1]]}),rc=Jl.multi([[".%L",function(n){return n.getUTCMilliseconds()}],[":%S",function(n){return n.getUTCSeconds()}],["%I:%M",function(n){return n.getUTCMinutes()}],["%I %p",function(n){return n.getUTCHours()}],["%a %d",function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],["%b %d",function(n){return 1!=n.getUTCDate()}],["%B",function(n){return n.getUTCMonth()}],["%Y",zt]]);ec.year=ga.year.utc,ga.scale.utc=function(){return ro(ao.scale.linear(),ec,rc)},ao.text=An(function(n){return n.responseText}),ao.json=function(n,t){return Cn(n,"application/json",uo,t)},ao.html=function(n,t){return Cn(n,"text/html",oo,t)},ao.xml=An(function(n){return n.responseXML}),"function"==typeof define&&define.amd?(this.d3=ao,define(ao)):"object"==typeof module&&module.exports?module.exports=ao:this.d3=ao}(); \ No newline at end of file diff --git a/ennstatus/static/js/d3/package.js b/ennstatus/static/js/d3/package.js deleted file mode 100644 --- a/ennstatus/static/js/d3/package.js +++ /dev/null @@ -1,13 +0,0 @@ -// Package metadata for Meteor.js. - -Package.describe({ - name: "d3js:d3", // http://atmospherejs.com/d3js/d3 - summary: "D3 (official): A JavaScript visualization library for HTML and SVG.", - version: "3.5.6", - git: "https://github.com/mbostock/d3.git" -}); - -Package.onUse(function(api) { - api.versionsFrom(["METEOR@1.0"]); - api.addFiles("d3.js", "client"); -}); diff --git a/ennstatus/static/js/topojson/.bower.json b/ennstatus/static/js/topojson/.bower.json --- a/ennstatus/static/js/topojson/.bower.json +++ b/ennstatus/static/js/topojson/.bower.json @@ -1,31 +1,18 @@ { "name": "topojson", - "version": "1.6.19", + "description": "An extension to GeoJSON that encodes topology.", "main": "topojson.js", - "scripts": [ - "topojson.js" - ], - "ignore": [ - ".DS_Store", - ".git", - "Makefile", - "bin", - "examples", - "index.js", - "lib", - "node_modules", - "package.json", - "test" - ], - "homepage": "https://github.com/mbostock/topojson", - "_release": "1.6.19", + "license": "BSD-3-Clause", + "ignore": [], + "homepage": "https://github.com/mbostock/topojson-bower", + "version": "1.6.27", + "_release": "1.6.27", "_resolution": { "type": "version", - "tag": "v1.6.19", - "commit": "7c29ad7652b2f00516b635313f8a54cfc8cd2625" + "tag": "v1.6.27", + "commit": "ad0ce034fa25393aaeeaffa94318a2c0c9eddb89" }, - "_source": "git://github.com/mbostock/topojson.git", + "_source": "https://github.com/mbostock/topojson-bower.git", "_target": "~1.6.19", - "_originalSource": "topojson", - "_direct": true + "_originalSource": "topojson" } \ No newline at end of file diff --git a/ennstatus/static/js/topojson/.gitignore b/ennstatus/static/js/topojson/.gitignore deleted file mode 100644 --- a/ennstatus/static/js/topojson/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -topojson.min.js -node_modules diff --git a/ennstatus/static/js/topojson/.npmignore b/ennstatus/static/js/topojson/.npmignore deleted file mode 100644 --- a/ennstatus/static/js/topojson/.npmignore +++ /dev/null @@ -1,2 +0,0 @@ -.DS_Store -node_modules diff --git a/ennstatus/static/js/topojson/LICENSE b/ennstatus/static/js/topojson/LICENSE --- a/ennstatus/static/js/topojson/LICENSE +++ b/ennstatus/static/js/topojson/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2012, Michael Bostock +Copyright (c) 2012-2016, Michael Bostock All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/ennstatus/static/js/topojson/bower.json b/ennstatus/static/js/topojson/bower.json --- a/ennstatus/static/js/topojson/bower.json +++ b/ennstatus/static/js/topojson/bower.json @@ -1,20 +1,7 @@ { "name": "topojson", - "version": "1.6.19", + "description": "An extension to GeoJSON that encodes topology.", "main": "topojson.js", - "scripts": [ - "topojson.js" - ], - "ignore": [ - ".DS_Store", - ".git", - "Makefile", - "bin", - "examples", - "index.js", - "lib", - "node_modules", - "package.json", - "test" - ] + "license": "BSD-3-Clause", + "ignore": [] } diff --git a/ennstatus/static/js/topojson/topojson.js b/ennstatus/static/js/topojson/topojson.js --- a/ennstatus/static/js/topojson/topojson.js +++ b/ennstatus/static/js/topojson/topojson.js @@ -1,534 +1,547 @@ -!function() { - var topojson = { - version: "1.6.19", - mesh: function(topology) { return object(topology, meshArcs.apply(this, arguments)); }, - meshArcs: meshArcs, - merge: function(topology) { return object(topology, mergeArcs.apply(this, arguments)); }, - mergeArcs: mergeArcs, - feature: featureOrCollection, - neighbors: neighbors, - presimplify: presimplify - }; +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.topojson = global.topojson || {}))); +}(this, (function (exports) { 'use strict'; + +function noop() {} - function stitchArcs(topology, arcs) { - var stitchedArcs = {}, - fragmentByStart = {}, - fragmentByEnd = {}, - fragments = [], - emptyIndex = -1; +function transformAbsolute(transform) { + if (!transform) return noop; + var x0, + y0, + kx = transform.scale[0], + ky = transform.scale[1], + dx = transform.translate[0], + dy = transform.translate[1]; + return function(point, i) { + if (!i) x0 = y0 = 0; + point[0] = (x0 += point[0]) * kx + dx; + point[1] = (y0 += point[1]) * ky + dy; + }; +} - // Stitch empty arcs first, since they may be subsumed by other arcs. - arcs.forEach(function(i, j) { - var arc = topology.arcs[i < 0 ? ~i : i], t; - if (arc.length < 3 && !arc[1][0] && !arc[1][1]) { - t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t; - } - }); - - arcs.forEach(function(i) { - var e = ends(i), - start = e[0], - end = e[1], - f, g; +function transformRelative(transform) { + if (!transform) return noop; + var x0, + y0, + kx = transform.scale[0], + ky = transform.scale[1], + dx = transform.translate[0], + dy = transform.translate[1]; + return function(point, i) { + if (!i) x0 = y0 = 0; + var x1 = Math.round((point[0] - dx) / kx), + y1 = Math.round((point[1] - dy) / ky); + point[0] = x1 - x0; + point[1] = y1 - y0; + x0 = x1; + y0 = y1; + }; +} - if (f = fragmentByEnd[start]) { - delete fragmentByEnd[f.end]; - f.push(i); - f.end = end; - if (g = fragmentByStart[end]) { - delete fragmentByStart[g.start]; - var fg = g === f ? f : f.concat(g); - fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg; - } else { - fragmentByStart[f.start] = fragmentByEnd[f.end] = f; - } - } else if (f = fragmentByStart[end]) { - delete fragmentByStart[f.start]; - f.unshift(i); - f.start = start; - if (g = fragmentByEnd[start]) { - delete fragmentByEnd[g.end]; - var gf = g === f ? f : g.concat(f); - fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf; - } else { - fragmentByStart[f.start] = fragmentByEnd[f.end] = f; - } - } else { - f = [i]; - fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f; - } - }); +function reverse(array, n) { + var t, j = array.length, i = j - n; + while (i < --j) t = array[i], array[i++] = array[j], array[j] = t; +} + +function bisect(a, x) { + var lo = 0, hi = a.length; + while (lo < hi) { + var mid = lo + hi >>> 1; + if (a[mid] < x) lo = mid + 1; + else hi = mid; + } + return lo; +} + +function feature(topology, o) { + return o.type === "GeometryCollection" ? { + type: "FeatureCollection", + features: o.geometries.map(function(o) { return feature$1(topology, o); }) + } : feature$1(topology, o); +} - function ends(i) { - var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1; - if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; }); - else p1 = arc[arc.length - 1]; - return i < 0 ? [p1, p0] : [p0, p1]; - } +function feature$1(topology, o) { + var f = { + type: "Feature", + id: o.id, + properties: o.properties || {}, + geometry: object(topology, o) + }; + if (o.id == null) delete f.id; + return f; +} - function flush(fragmentByEnd, fragmentByStart) { - for (var k in fragmentByEnd) { - var f = fragmentByEnd[k]; - delete fragmentByStart[f.start]; - delete f.start; - delete f.end; - f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; }); - fragments.push(f); - } +function object(topology, o) { + var absolute = transformAbsolute(topology.transform), + arcs = topology.arcs; + + function arc(i, points) { + if (points.length) points.pop(); + for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) { + points.push(p = a[k].slice()); + absolute(p, k); } - - flush(fragmentByEnd, fragmentByStart); - flush(fragmentByStart, fragmentByEnd); - arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); }); - - return fragments; + if (i < 0) reverse(points, n); } - function meshArcs(topology, o, filter) { - var arcs = []; - - if (arguments.length > 1) { - var geomsByArc = [], - geom; - - function arc(i) { - var j = i < 0 ? ~i : i; - (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom}); - } - - function line(arcs) { - arcs.forEach(arc); - } - - function polygon(arcs) { - arcs.forEach(line); - } + function point(p) { + p = p.slice(); + absolute(p, 0); + return p; + } - function geometry(o) { - if (o.type === "GeometryCollection") o.geometries.forEach(geometry); - else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs); - } + function line(arcs) { + var points = []; + for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points); + if (points.length < 2) points.push(points[0].slice()); + return points; + } - var geometryType = { - LineString: line, - MultiLineString: polygon, - Polygon: polygon, - MultiPolygon: function(arcs) { arcs.forEach(polygon); } - }; - - geometry(o); + function ring(arcs) { + var points = line(arcs); + while (points.length < 4) points.push(points[0].slice()); + return points; + } - geomsByArc.forEach(arguments.length < 3 - ? function(geoms) { arcs.push(geoms[0].i); } - : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); }); - } else { - for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i); - } - - return {type: "MultiLineString", arcs: stitchArcs(topology, arcs)}; + function polygon(arcs) { + return arcs.map(ring); } - function mergeArcs(topology, objects) { - var polygonsByArc = {}, - polygons = [], - components = []; - - objects.forEach(function(o) { - if (o.type === "Polygon") register(o.arcs); - else if (o.type === "MultiPolygon") o.arcs.forEach(register); - }); - - function register(polygon) { - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon); - }); - }); - polygons.push(polygon); - } - - function exterior(ring) { - return cartesianRingArea(object(topology, {type: "Polygon", arcs: [ring]}).coordinates[0]) > 0; // TODO allow spherical? - } - - polygons.forEach(function(polygon) { - if (!polygon._) { - var component = [], - neighbors = [polygon]; - polygon._ = 1; - components.push(component); - while (polygon = neighbors.pop()) { - component.push(polygon); - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) { - if (!polygon._) { - polygon._ = 1; - neighbors.push(polygon); - } - }); - }); - }); - } - } - }); - - polygons.forEach(function(polygon) { - delete polygon._; - }); - - return { - type: "MultiPolygon", - arcs: components.map(function(polygons) { - var arcs = []; - - // Extract the exterior (unique) arcs. - polygons.forEach(function(polygon) { - polygon.forEach(function(ring) { - ring.forEach(function(arc) { - if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) { - arcs.push(arc); - } - }); - }); - }); - - // Stitch the arcs into one or more rings. - arcs = stitchArcs(topology, arcs); - - // If more than one ring is returned, - // at most one of these rings can be the exterior; - // this exterior ring has the same winding order - // as any exterior ring in the original polygons. - if ((n = arcs.length) > 1) { - var sgn = exterior(polygons[0][0]); - for (var i = 0, t; i < n; ++i) { - if (sgn === exterior(arcs[i])) { - t = arcs[0], arcs[0] = arcs[i], arcs[i] = t; - break; - } - } - } - - return arcs; - }) - }; - } - - function featureOrCollection(topology, o) { - return o.type === "GeometryCollection" ? { - type: "FeatureCollection", - features: o.geometries.map(function(o) { return feature(topology, o); }) - } : feature(topology, o); + function geometry(o) { + var t = o.type; + return t === "GeometryCollection" ? {type: t, geometries: o.geometries.map(geometry)} + : t in geometryType ? {type: t, coordinates: geometryType[t](o)} + : null; } - function feature(topology, o) { - var f = { - type: "Feature", - id: o.id, - properties: o.properties || {}, - geometry: object(topology, o) - }; - if (o.id == null) delete f.id; - return f; + var geometryType = { + Point: function(o) { return point(o.coordinates); }, + MultiPoint: function(o) { return o.coordinates.map(point); }, + LineString: function(o) { return line(o.arcs); }, + MultiLineString: function(o) { return o.arcs.map(line); }, + Polygon: function(o) { return polygon(o.arcs); }, + MultiPolygon: function(o) { return o.arcs.map(polygon); } + }; + + return geometry(o); +} + +function stitchArcs(topology, arcs) { + var stitchedArcs = {}, + fragmentByStart = {}, + fragmentByEnd = {}, + fragments = [], + emptyIndex = -1; + + // Stitch empty arcs first, since they may be subsumed by other arcs. + arcs.forEach(function(i, j) { + var arc = topology.arcs[i < 0 ? ~i : i], t; + if (arc.length < 3 && !arc[1][0] && !arc[1][1]) { + t = arcs[++emptyIndex], arcs[emptyIndex] = i, arcs[j] = t; + } + }); + + arcs.forEach(function(i) { + var e = ends(i), + start = e[0], + end = e[1], + f, g; + + if (f = fragmentByEnd[start]) { + delete fragmentByEnd[f.end]; + f.push(i); + f.end = end; + if (g = fragmentByStart[end]) { + delete fragmentByStart[g.start]; + var fg = g === f ? f : f.concat(g); + fragmentByStart[fg.start = f.start] = fragmentByEnd[fg.end = g.end] = fg; + } else { + fragmentByStart[f.start] = fragmentByEnd[f.end] = f; + } + } else if (f = fragmentByStart[end]) { + delete fragmentByStart[f.start]; + f.unshift(i); + f.start = start; + if (g = fragmentByEnd[start]) { + delete fragmentByEnd[g.end]; + var gf = g === f ? f : g.concat(f); + fragmentByStart[gf.start = g.start] = fragmentByEnd[gf.end = f.end] = gf; + } else { + fragmentByStart[f.start] = fragmentByEnd[f.end] = f; + } + } else { + f = [i]; + fragmentByStart[f.start = start] = fragmentByEnd[f.end = end] = f; + } + }); + + function ends(i) { + var arc = topology.arcs[i < 0 ? ~i : i], p0 = arc[0], p1; + if (topology.transform) p1 = [0, 0], arc.forEach(function(dp) { p1[0] += dp[0], p1[1] += dp[1]; }); + else p1 = arc[arc.length - 1]; + return i < 0 ? [p1, p0] : [p0, p1]; } - function object(topology, o) { - var absolute = transformAbsolute(topology.transform), - arcs = topology.arcs; - - function arc(i, points) { - if (points.length) points.pop(); - for (var a = arcs[i < 0 ? ~i : i], k = 0, n = a.length, p; k < n; ++k) { - points.push(p = a[k].slice()); - absolute(p, k); - } - if (i < 0) reverse(points, n); - } - - function point(p) { - p = p.slice(); - absolute(p, 0); - return p; - } - - function line(arcs) { - var points = []; - for (var i = 0, n = arcs.length; i < n; ++i) arc(arcs[i], points); - if (points.length < 2) points.push(points[0].slice()); - return points; + function flush(fragmentByEnd, fragmentByStart) { + for (var k in fragmentByEnd) { + var f = fragmentByEnd[k]; + delete fragmentByStart[f.start]; + delete f.start; + delete f.end; + f.forEach(function(i) { stitchedArcs[i < 0 ? ~i : i] = 1; }); + fragments.push(f); } - - function ring(arcs) { - var points = line(arcs); - while (points.length < 4) points.push(points[0].slice()); - return points; - } - - function polygon(arcs) { - return arcs.map(ring); - } - - function geometry(o) { - var t = o.type; - return t === "GeometryCollection" ? {type: t, geometries: o.geometries.map(geometry)} - : t in geometryType ? {type: t, coordinates: geometryType[t](o)} - : null; - } - - var geometryType = { - Point: function(o) { return point(o.coordinates); }, - MultiPoint: function(o) { return o.coordinates.map(point); }, - LineString: function(o) { return line(o.arcs); }, - MultiLineString: function(o) { return o.arcs.map(line); }, - Polygon: function(o) { return polygon(o.arcs); }, - MultiPolygon: function(o) { return o.arcs.map(polygon); } - }; - - return geometry(o); } - function reverse(array, n) { - var t, j = array.length, i = j - n; while (i < --j) t = array[i], array[i++] = array[j], array[j] = t; - } + flush(fragmentByEnd, fragmentByStart); + flush(fragmentByStart, fragmentByEnd); + arcs.forEach(function(i) { if (!stitchedArcs[i < 0 ? ~i : i]) fragments.push([i]); }); + + return fragments; +} - function bisect(a, x) { - var lo = 0, hi = a.length; - while (lo < hi) { - var mid = lo + hi >>> 1; - if (a[mid] < x) lo = mid + 1; - else hi = mid; - } - return lo; +function mesh(topology) { + return object(topology, meshArcs.apply(this, arguments)); +} + +function meshArcs(topology, o, filter) { + var arcs = []; + + function arc(i) { + var j = i < 0 ? ~i : i; + (geomsByArc[j] || (geomsByArc[j] = [])).push({i: i, g: geom}); } - function neighbors(objects) { - var indexesByArc = {}, // arc index -> array of object indexes - neighbors = objects.map(function() { return []; }); + function line(arcs) { + arcs.forEach(arc); + } + + function polygon(arcs) { + arcs.forEach(line); + } - function line(arcs, i) { - arcs.forEach(function(a) { - if (a < 0) a = ~a; - var o = indexesByArc[a]; - if (o) o.push(i); - else indexesByArc[a] = [i]; - }); - } + function geometry(o) { + if (o.type === "GeometryCollection") o.geometries.forEach(geometry); + else if (o.type in geometryType) geom = o, geometryType[o.type](o.arcs); + } - function polygon(arcs, i) { - arcs.forEach(function(arc) { line(arc, i); }); - } - - function geometry(o, i) { - if (o.type === "GeometryCollection") o.geometries.forEach(function(o) { geometry(o, i); }); - else if (o.type in geometryType) geometryType[o.type](o.arcs, i); - } + if (arguments.length > 1) { + var geomsByArc = [], + geom; var geometryType = { LineString: line, MultiLineString: polygon, Polygon: polygon, - MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); } + MultiPolygon: function(arcs) { arcs.forEach(polygon); } }; - objects.forEach(geometry); + geometry(o); + + geomsByArc.forEach(arguments.length < 3 + ? function(geoms) { arcs.push(geoms[0].i); } + : function(geoms) { if (filter(geoms[0].g, geoms[geoms.length - 1].g)) arcs.push(geoms[0].i); }); + } else { + for (var i = 0, n = topology.arcs.length; i < n; ++i) arcs.push(i); + } + + return {type: "MultiLineString", arcs: stitchArcs(topology, arcs)}; +} - for (var i in indexesByArc) { - for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) { - for (var k = j + 1; k < m; ++k) { - var ij = indexes[j], ik = indexes[k], n; - if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik); - if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij); - } - } - } +function cartesianTriangleArea(triangle) { + var a = triangle[0], b = triangle[1], c = triangle[2]; + return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1])); +} - return neighbors; +function ring(ring) { + var i = -1, + n = ring.length, + a, + b = ring[n - 1], + area = 0; + + while (++i < n) { + a = b; + b = ring[i]; + area += a[0] * b[1] - a[1] * b[0]; } - function presimplify(topology, triangleArea) { - var absolute = transformAbsolute(topology.transform), - relative = transformRelative(topology.transform), - heap = minAreaHeap(); + return area / 2; +} - if (!triangleArea) triangleArea = cartesianTriangleArea; +function merge(topology) { + return object(topology, mergeArcs.apply(this, arguments)); +} - topology.arcs.forEach(function(arc) { - var triangles = [], - maxArea = 0, - triangle; +function mergeArcs(topology, objects) { + var polygonsByArc = {}, + polygons = [], + components = []; - // To store each point’s effective area, we create a new array rather than - // extending the passed-in point to workaround a Chrome/V8 bug (getting - // stuck in smi mode). For midpoints, the initial effective area of - // Infinity will be computed in the next step. - for (var i = 0, n = arc.length, p; i < n; ++i) { - p = arc[i]; - absolute(arc[i] = [p[0], p[1], Infinity], i); - } + objects.forEach(function(o) { + if (o.type === "Polygon") register(o.arcs); + else if (o.type === "MultiPolygon") o.arcs.forEach(register); + }); - for (var i = 1, n = arc.length - 1; i < n; ++i) { - triangle = arc.slice(i - 1, i + 2); - triangle[1][2] = triangleArea(triangle); - triangles.push(triangle); - heap.push(triangle); - } + function register(polygon) { + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + (polygonsByArc[arc = arc < 0 ? ~arc : arc] || (polygonsByArc[arc] = [])).push(polygon); + }); + }); + polygons.push(polygon); + } + + function area(ring$$) { + return Math.abs(ring(object(topology, {type: "Polygon", arcs: [ring$$]}).coordinates[0])); + } - for (var i = 0, n = triangles.length; i < n; ++i) { - triangle = triangles[i]; - triangle.previous = triangles[i - 1]; - triangle.next = triangles[i + 1]; + polygons.forEach(function(polygon) { + if (!polygon._) { + var component = [], + neighbors = [polygon]; + polygon._ = 1; + components.push(component); + while (polygon = neighbors.pop()) { + component.push(polygon); + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + polygonsByArc[arc < 0 ? ~arc : arc].forEach(function(polygon) { + if (!polygon._) { + polygon._ = 1; + neighbors.push(polygon); + } + }); + }); + }); } + } + }); - while (triangle = heap.pop()) { - var previous = triangle.previous, - next = triangle.next; + polygons.forEach(function(polygon) { + delete polygon._; + }); - // If the area of the current point is less than that of the previous point - // to be eliminated, use the latter's area instead. This ensures that the - // current point cannot be eliminated without eliminating previously- - // eliminated points. - if (triangle[1][2] < maxArea) triangle[1][2] = maxArea; - else maxArea = triangle[1][2]; + return { + type: "MultiPolygon", + arcs: components.map(function(polygons) { + var arcs = [], n; - if (previous) { - previous.next = next; - previous[2] = triangle[2]; - update(previous); - } + // Extract the exterior (unique) arcs. + polygons.forEach(function(polygon) { + polygon.forEach(function(ring$$) { + ring$$.forEach(function(arc) { + if (polygonsByArc[arc < 0 ? ~arc : arc].length < 2) { + arcs.push(arc); + } + }); + }); + }); - if (next) { - next.previous = previous; - next[0] = triangle[0]; - update(next); + // Stitch the arcs into one or more rings. + arcs = stitchArcs(topology, arcs); + + // If more than one ring is returned, + // at most one of these rings can be the exterior; + // choose the one with the greatest absolute area. + if ((n = arcs.length) > 1) { + for (var i = 1, k = area(arcs[0]), ki, t; i < n; ++i) { + if ((ki = area(arcs[i])) > k) { + t = arcs[0], arcs[0] = arcs[i], arcs[i] = t, k = ki; + } } } - arc.forEach(relative); + return arcs; + }) + }; +} + +function neighbors(objects) { + var indexesByArc = {}, // arc index -> array of object indexes + neighbors = objects.map(function() { return []; }); + + function line(arcs, i) { + arcs.forEach(function(a) { + if (a < 0) a = ~a; + var o = indexesByArc[a]; + if (o) o.push(i); + else indexesByArc[a] = [i]; }); + } + + function polygon(arcs, i) { + arcs.forEach(function(arc) { line(arc, i); }); + } + + function geometry(o, i) { + if (o.type === "GeometryCollection") o.geometries.forEach(function(o) { geometry(o, i); }); + else if (o.type in geometryType) geometryType[o.type](o.arcs, i); + } + + var geometryType = { + LineString: line, + MultiLineString: polygon, + Polygon: polygon, + MultiPolygon: function(arcs, i) { arcs.forEach(function(arc) { polygon(arc, i); }); } + }; + + objects.forEach(geometry); + + for (var i in indexesByArc) { + for (var indexes = indexesByArc[i], m = indexes.length, j = 0; j < m; ++j) { + for (var k = j + 1; k < m; ++k) { + var ij = indexes[j], ik = indexes[k], n; + if ((n = neighbors[ij])[i = bisect(n, ik)] !== ik) n.splice(i, 0, ik); + if ((n = neighbors[ik])[i = bisect(n, ij)] !== ij) n.splice(i, 0, ij); + } + } + } + + return neighbors; +} + +function compareArea(a, b) { + return a[1][2] - b[1][2]; +} + +function minAreaHeap() { + var heap = {}, + array = [], + size = 0; + + heap.push = function(object) { + up(array[object._ = size] = object, size++); + return size; + }; - function update(triangle) { - heap.remove(triangle); + heap.pop = function() { + if (size <= 0) return; + var removed = array[0], object; + if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0); + return removed; + }; + + heap.remove = function(removed) { + var i = removed._, object; + if (array[i] !== removed) return; // invalid request + if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i); + return i; + }; + + function up(object, i) { + while (i > 0) { + var j = ((i + 1) >> 1) - 1, + parent = array[j]; + if (compareArea(object, parent) >= 0) break; + array[parent._ = i] = parent; + array[object._ = i = j] = object; + } + } + + function down(object, i) { + while (true) { + var r = (i + 1) << 1, + l = r - 1, + j = i, + child = array[j]; + if (l < size && compareArea(array[l], child) < 0) child = array[j = l]; + if (r < size && compareArea(array[r], child) < 0) child = array[j = r]; + if (j === i) break; + array[child._ = i] = child; + array[object._ = i = j] = object; + } + } + + return heap; +} + +function presimplify(topology, triangleArea) { + var absolute = transformAbsolute(topology.transform), + relative = transformRelative(topology.transform), + heap = minAreaHeap(); + + if (!triangleArea) triangleArea = cartesianTriangleArea; + + topology.arcs.forEach(function(arc) { + var triangles = [], + maxArea = 0, + triangle, + i, + n, + p; + + // To store each point’s effective area, we create a new array rather than + // extending the passed-in point to workaround a Chrome/V8 bug (getting + // stuck in smi mode). For midpoints, the initial effective area of + // Infinity will be computed in the next step. + for (i = 0, n = arc.length; i < n; ++i) { + p = arc[i]; + absolute(arc[i] = [p[0], p[1], Infinity], i); + } + + for (i = 1, n = arc.length - 1; i < n; ++i) { + triangle = arc.slice(i - 1, i + 2); triangle[1][2] = triangleArea(triangle); + triangles.push(triangle); heap.push(triangle); } - return topology; - }; - - function cartesianRingArea(ring) { - var i = -1, - n = ring.length, - a, - b = ring[n - 1], - area = 0; - - while (++i < n) { - a = b; - b = ring[i]; - area += a[0] * b[1] - a[1] * b[0]; + for (i = 0, n = triangles.length; i < n; ++i) { + triangle = triangles[i]; + triangle.previous = triangles[i - 1]; + triangle.next = triangles[i + 1]; } - return area * .5; - } - - function cartesianTriangleArea(triangle) { - var a = triangle[0], b = triangle[1], c = triangle[2]; - return Math.abs((a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1])); - } + while (triangle = heap.pop()) { + var previous = triangle.previous, + next = triangle.next; - function compareArea(a, b) { - return a[1][2] - b[1][2]; - } - - function minAreaHeap() { - var heap = {}, - array = [], - size = 0; - - heap.push = function(object) { - up(array[object._ = size] = object, size++); - return size; - }; + // If the area of the current point is less than that of the previous point + // to be eliminated, use the latter's area instead. This ensures that the + // current point cannot be eliminated without eliminating previously- + // eliminated points. + if (triangle[1][2] < maxArea) triangle[1][2] = maxArea; + else maxArea = triangle[1][2]; - heap.pop = function() { - if (size <= 0) return; - var removed = array[0], object; - if (--size > 0) object = array[size], down(array[object._ = 0] = object, 0); - return removed; - }; + if (previous) { + previous.next = next; + previous[2] = triangle[2]; + update(previous); + } - heap.remove = function(removed) { - var i = removed._, object; - if (array[i] !== removed) return; // invalid request - if (i !== --size) object = array[size], (compareArea(object, removed) < 0 ? up : down)(array[object._ = i] = object, i); - return i; - }; - - function up(object, i) { - while (i > 0) { - var j = ((i + 1) >> 1) - 1, - parent = array[j]; - if (compareArea(object, parent) >= 0) break; - array[parent._ = i] = parent; - array[object._ = i = j] = object; + if (next) { + next.previous = previous; + next[0] = triangle[0]; + update(next); } } - function down(object, i) { - while (true) { - var r = (i + 1) << 1, - l = r - 1, - j = i, - child = array[j]; - if (l < size && compareArea(array[l], child) < 0) child = array[j = l]; - if (r < size && compareArea(array[r], child) < 0) child = array[j = r]; - if (j === i) break; - array[child._ = i] = child; - array[object._ = i = j] = object; - } - } + arc.forEach(relative); + }); - return heap; + function update(triangle) { + heap.remove(triangle); + triangle[1][2] = triangleArea(triangle); + heap.push(triangle); } - function transformAbsolute(transform) { - if (!transform) return noop; - var x0, - y0, - kx = transform.scale[0], - ky = transform.scale[1], - dx = transform.translate[0], - dy = transform.translate[1]; - return function(point, i) { - if (!i) x0 = y0 = 0; - point[0] = (x0 += point[0]) * kx + dx; - point[1] = (y0 += point[1]) * ky + dy; - }; - } + return topology; +} + +var version = "1.6.27"; - function transformRelative(transform) { - if (!transform) return noop; - var x0, - y0, - kx = transform.scale[0], - ky = transform.scale[1], - dx = transform.translate[0], - dy = transform.translate[1]; - return function(point, i) { - if (!i) x0 = y0 = 0; - var x1 = (point[0] - dx) / kx | 0, - y1 = (point[1] - dy) / ky | 0; - point[0] = x1 - x0; - point[1] = y1 - y0; - x0 = x1; - y0 = y1; - }; - } +exports.version = version; +exports.mesh = mesh; +exports.meshArcs = meshArcs; +exports.merge = merge; +exports.mergeArcs = mergeArcs; +exports.feature = feature; +exports.neighbors = neighbors; +exports.presimplify = presimplify; - function noop() {} +Object.defineProperty(exports, '__esModule', { value: true }); - if (typeof define === "function" && define.amd) define(topojson); - else if (typeof module === "object" && module.exports) module.exports = topojson; - else this.topojson = topojson; -}(); +}))); \ No newline at end of file diff --git a/ennstatus/static/js/topojson/topojson.min.js b/ennstatus/static/js/topojson/topojson.min.js new file mode 100644 --- /dev/null +++ b/ennstatus/static/js/topojson/topojson.min.js @@ -0,0 +1,1 @@ +!function(n,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(n.topojson=n.topojson||{})}(this,function(n){"use strict";function t(){}function r(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0),n[0]=(r+=n[0])*o+u,n[1]=(e+=n[1])*i+f}}function e(n){if(!n)return t;var r,e,o=n.scale[0],i=n.scale[1],u=n.translate[0],f=n.translate[1];return function(n,t){t||(r=e=0);var c=Math.round((n[0]-u)/o),a=Math.round((n[1]-f)/i);n[0]=c-r,n[1]=a-e,r=c,e=a}}function o(n,t){for(var r,e=n.length,o=e-t;o<--e;)r=n[o],n[o++]=n[e],n[e]=r}function i(n,t){for(var r=0,e=n.length;r>>1;n[o]1){var c,s=[],l={LineString:o,MultiLineString:i,Polygon:i,MultiPolygon:function(n){n.forEach(i)}};u(t),s.forEach(arguments.length<3?function(n){f.push(n[0].i)}:function(n){r(n[0].g,n[n.length-1].g)&&f.push(n[0].i)})}else for(var h=0,p=n.arcs.length;h1)for(var u,f,c=1,s=e(i[0]);cs&&(f=i[0],i[0]=i[c],i[c]=f,s=u);return i})}}function d(n){function t(n,t){n.forEach(function(n){n<0&&(n=~n);var r=o[n];r?r.push(t):o[n]=[t]})}function r(n,r){n.forEach(function(n){t(n,r)})}function e(n,t){"GeometryCollection"===n.type?n.geometries.forEach(function(n){e(n,t)}):n.type in f&&f[n.type](n.arcs,t)}var o={},u=n.map(function(){return[]}),f={LineString:t,MultiLineString:r,Polygon:r,MultiPolygon:function(n,t){n.forEach(function(n){r(n,t)})}};n.forEach(e);for(var c in o)for(var a=o[c],s=a.length,l=0;l0;){var r=(t+1>>1)-1,o=e[r];if(y(n,o)>=0)break;e[o._=t]=o,e[n._=t=r]=n}}function t(n,t){for(;;){var r=t+1<<1,i=r-1,u=t,f=e[u];if(i0&&(n=e[o],t(e[n._=0]=n,0)),r}},r.remove=function(r){var i,u=r._;if(e[u]===r)return u!==--o&&(i=e[o],(y(i,r)<0?n:t)(e[i._=u]=i,u)),u},r}function E(n,t){function o(n){f.remove(n),n[1][2]=t(n),f.push(n)}var i=r(n.transform),u=e(n.transform),f=m();return t||(t=h),n.arcs.forEach(function(n){var r,e,c,a,s=[],l=0;for(e=0,c=n.length;e + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -1773,18 +1773,51 @@ module.exports = identity; },{}],43:[function(_dereq_,module,exports){ 'use strict'; +var keys = _dereq_('object-keys'); + +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + if (typeof sym === 'string') { return false; } + if (sym instanceof Symbol) { return false; } + obj[sym] = 42; + for (sym in obj) { return false; } + if (keys(obj).length !== 0) { return false; } + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + +},{"object-keys":49}],44:[function(_dereq_,module,exports){ +'use strict'; + // modified from https://github.com/es-shims/es6-shim var keys = _dereq_('object-keys'); +var bind = _dereq_('function-bind'); var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; -var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; -var defineProperties = _dereq_('define-properties'); +var hasSymbols = _dereq_('./hasSymbols')(); var toObject = Object; -var push = Array.prototype.push; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -var assignShim = function assign(target, source1) { +var push = bind.call(Function.call, Array.prototype.push); +var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); + +module.exports = function assign(target, source1) { if (!canBeObject(target)) { throw new TypeError('target must be an object'); } var objTarget = toObject(target); var s, source, i, props, syms; @@ -1794,8 +1827,8 @@ var assignShim = function assign(target, if (hasSymbols && Object.getOwnPropertySymbols) { syms = Object.getOwnPropertySymbols(source); for (i = 0; i < syms.length; ++i) { - if (propIsEnumerable.call(source, syms[i])) { - push.call(props, syms[i]); + if (propIsEnumerable(source, syms[i])) { + push(props, syms[i]); } } } @@ -1806,33 +1839,24 @@ var assignShim = function assign(target, return objTarget; }; -defineProperties(assignShim, { - shim: function shimObjectAssign() { - var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - // Firefox 37 still has "pending exception" logic in its Object.assign implementation, - // which is 72% slower than our shim, and Firefox 40's native implementation. - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - }; - defineProperties( - Object, - { assign: assignShim }, - { assign: assignHasPendingExceptions } - ); - return Object.assign || assignShim; - } +},{"./hasSymbols":43,"function-bind":48,"object-keys":49}],45:[function(_dereq_,module,exports){ +'use strict'; + +var defineProperties = _dereq_('define-properties'); + +var implementation = _dereq_('./implementation'); +var getPolyfill = _dereq_('./polyfill'); +var shim = _dereq_('./shim'); + +defineProperties(implementation, { + implementation: implementation, + getPolyfill: getPolyfill, + shim: shim }); -module.exports = assignShim; - -},{"define-properties":44,"object-keys":46}],44:[function(_dereq_,module,exports){ +module.exports = implementation; + +},{"./implementation":44,"./polyfill":51,"./shim":52,"define-properties":46}],46:[function(_dereq_,module,exports){ 'use strict'; var keys = _dereq_('object-keys'); @@ -1848,10 +1872,10 @@ var isFunction = function (fn) { var arePropertyDescriptorsSupported = function () { var obj = {}; try { - Object.defineProperty(obj, 'x', { value: obj, enumerable: false }); - /* eslint-disable no-unused-vars */ + Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); + /* eslint-disable no-unused-vars, no-restricted-syntax */ for (var _ in obj) { return false; } - /* eslint-enable no-unused-vars */ + /* eslint-enable no-unused-vars, no-restricted-syntax */ return obj.x === obj; } catch (e) { /* this is IE 8. */ return false; @@ -1867,8 +1891,8 @@ var defineProperty = function (object, n Object.defineProperty(object, name, { configurable: true, enumerable: false, - writable: true, - value: value + value: value, + writable: true }); } else { object[name] = value; @@ -1890,7 +1914,7 @@ defineProperties.supportsDescriptors = ! module.exports = defineProperties; -},{"foreach":45,"object-keys":46}],45:[function(_dereq_,module,exports){ +},{"foreach":47,"object-keys":49}],47:[function(_dereq_,module,exports){ var hasOwn = Object.prototype.hasOwnProperty; var toString = Object.prototype.toString; @@ -1914,7 +1938,57 @@ module.exports = function forEach (obj, }; -},{}],46:[function(_dereq_,module,exports){ +},{}],48:[function(_dereq_,module,exports){ +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +},{}],49:[function(_dereq_,module,exports){ 'use strict'; // modified from https://github.com/es-shims/es5-shim @@ -1922,7 +1996,7 @@ var has = Object.prototype.hasOwnPropert var toStr = Object.prototype.toString; var slice = Array.prototype.slice; var isArgs = _dereq_('./isArguments'); -var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); +var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'); var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'); var dontEnums = [ 'toString', @@ -1938,31 +2012,37 @@ var equalsConstructorPrototype = functio return ctor && ctor.prototype === o; }; var blacklistedKeys = { - $window: true, $console: true, + $frame: true, + $frameElement: true, + $frames: true, $parent: true, $self: true, - $frames: true, $webkitIndexedDB: true, - $webkitStorageInfo: true + $webkitStorageInfo: true, + $window: true }; var hasAutomationEqualityBug = (function () { /* global window */ if (typeof window === 'undefined') { return false; } for (var k in window) { - if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; + try { + if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } } + } catch (e) { + return true; } } return false; }()); var equalsConstructorPrototypeIfNotBuggy = function (o) { /* global window */ - if (typeof window === 'undefined' && !hasAutomationEqualityBug) { + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(o); } try { @@ -2015,9 +2095,7 @@ var keysShim = function keys(object) { }; keysShim.shim = function shimObjectKeys() { - if (!Object.keys) { - Object.keys = keysShim; - } else { + if (Object.keys) { var keysWorksWithArguments = (function () { // Safari 5.0 bug return (Object.keys(arguments) || '').length === 2; @@ -2032,13 +2110,15 @@ keysShim.shim = function shimObjectKeys( } }; } + } else { + Object.keys = keysShim; } return Object.keys || keysShim; }; module.exports = keysShim; -},{"./isArguments":47}],47:[function(_dereq_,module,exports){ +},{"./isArguments":50}],50:[function(_dereq_,module,exports){ 'use strict'; var toStr = Object.prototype.toString; @@ -2057,7 +2137,44 @@ module.exports = function isArguments(va return isArgs; }; -},{}],48:[function(_dereq_,module,exports){ +},{}],51:[function(_dereq_,module,exports){ +'use strict'; + +var implementation = _dereq_('./implementation'); + +var assignHasPendingExceptions = function () { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + // Firefox 37 still has "pending exception" logic in its Object.assign implementation, + // which is 72% slower than our shim, and Firefox 40's native implementation. + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, 'xy'); + } catch (e) { + return thrower[1] === 'y'; + } +}; + +module.exports = function getPolyfill() { + return !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign; +}; + +},{"./implementation":44}],52:[function(_dereq_,module,exports){ +'use strict'; + +var define = _dereq_('define-properties'); +var getPolyfill = _dereq_('./polyfill'); + +module.exports = function shimAssign() { + var polyfill = getPolyfill(); + if (Object.assign !== polyfill) { + define(Object, { assign: polyfill }); + } + return polyfill; +}; + +},{"./polyfill":51,"define-properties":46}],53:[function(_dereq_,module,exports){ module.exports = SafeParseTuple function SafeParseTuple(obj, reviver) { @@ -2073,7 +2190,7 @@ function SafeParseTuple(obj, reviver) { return [error, json] } -},{}],49:[function(_dereq_,module,exports){ +},{}],54:[function(_dereq_,module,exports){ function clean (s) { return s.replace(/\n\r?\s*/g, '') } @@ -2088,7 +2205,7 @@ module.exports = function tsml (sa) { return s } -},{}],50:[function(_dereq_,module,exports){ +},{}],55:[function(_dereq_,module,exports){ "use strict"; var window = _dereq_("global/window") var once = _dereq_("once") @@ -2279,7 +2396,7 @@ function createXHR(options, callback) { function noop() {} -},{"global/window":2,"once":51,"parse-headers":55}],51:[function(_dereq_,module,exports){ +},{"global/window":2,"once":56,"parse-headers":60}],56:[function(_dereq_,module,exports){ module.exports = once once.proto = once(function () { @@ -2300,7 +2417,7 @@ function once (fn) { } } -},{}],52:[function(_dereq_,module,exports){ +},{}],57:[function(_dereq_,module,exports){ var isFunction = _dereq_('is-function') module.exports = forEach @@ -2348,7 +2465,7 @@ function forEachObject(object, iterator, } } -},{"is-function":53}],53:[function(_dereq_,module,exports){ +},{"is-function":58}],58:[function(_dereq_,module,exports){ module.exports = isFunction var toString = Object.prototype.toString @@ -2365,7 +2482,7 @@ function isFunction (fn) { fn === window.prompt)) }; -},{}],54:[function(_dereq_,module,exports){ +},{}],59:[function(_dereq_,module,exports){ exports = module.exports = trim; @@ -2381,7 +2498,7 @@ exports.right = function(str){ return str.replace(/\s*$/, ''); }; -},{}],55:[function(_dereq_,module,exports){ +},{}],60:[function(_dereq_,module,exports){ var trim = _dereq_('trim') , forEach = _dereq_('for-each') , isArray = function(arg) { @@ -2413,7 +2530,7 @@ module.exports = function (headers) { return result } -},{"for-each":52,"trim":54}],56:[function(_dereq_,module,exports){ +},{"for-each":57,"trim":59}],61:[function(_dereq_,module,exports){ /** * @file big-play-button.js */ @@ -2484,7 +2601,7 @@ BigPlayButton.prototype.controlText_ = ' exports['default'] = BigPlayButton; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58}],57:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63}],62:[function(_dereq_,module,exports){ /** * @file button.js */ @@ -2665,7 +2782,7 @@ var Button = (function (_Component) { exports['default'] = Button; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(_dereq_,module,exports){ /** * @file component.js * @@ -4074,7 +4191,7 @@ Component.registerComponent('Component', exports['default'] = Component; module.exports = exports['default']; -},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(_dereq_,module,exports){ +},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(_dereq_,module,exports){ /** * @file control-bar.js */ @@ -4199,7 +4316,7 @@ ControlBar.prototype.options_ = { exports['default'] = ControlBar; module.exports = exports['default']; -},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(_dereq_,module,exports){ +},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(_dereq_,module,exports){ /** * @file fullscreen-toggle.js */ @@ -4273,7 +4390,7 @@ FullscreenToggle.prototype.controlText_ exports['default'] = FullscreenToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],61:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],66:[function(_dereq_,module,exports){ /** * @file live-display.js */ @@ -4355,7 +4472,7 @@ var LiveDisplay = (function (_Component) exports['default'] = LiveDisplay; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118}],62:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123}],67:[function(_dereq_,module,exports){ /** * @file mute-toggle.js */ @@ -4482,7 +4599,7 @@ MuteToggle.prototype.controlText_ = 'Mut exports['default'] = MuteToggle; module.exports = exports['default']; -},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(_dereq_,module,exports){ +},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(_dereq_,module,exports){ /** * @file play-toggle.js */ @@ -4583,7 +4700,7 @@ PlayToggle.prototype.controlText_ = 'Pla exports['default'] = PlayToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],64:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],69:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-button.js */ @@ -4784,7 +4901,7 @@ PlaybackRateMenuButton.prototype.control exports['default'] = PlaybackRateMenuButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-item.js */ @@ -4865,7 +4982,7 @@ PlaybackRateMenuItem.prototype.contentEl exports['default'] = PlaybackRateMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(_dereq_,module,exports){ /** * @file load-progress-bar.js */ @@ -4971,7 +5088,7 @@ var LoadProgressBar = (function (_Compon exports['default'] = LoadProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(_dereq_,module,exports){ /** * @file mouse-time-display.js */ @@ -5073,7 +5190,7 @@ var MouseTimeDisplay = (function (_Compo exports['default'] = MouseTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(_dereq_,module,exports){ /** * @file play-progress-bar.js */ @@ -5148,7 +5265,7 @@ var PlayProgressBar = (function (_Compon exports['default'] = PlayProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(_dereq_,module,exports){ /** * @file progress-control.js */ @@ -5217,7 +5334,7 @@ ProgressControl.prototype.options_ = { exports['default'] = ProgressControl; module.exports = exports['default']; -},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(_dereq_,module,exports){ /** * @file seek-bar.js */ @@ -5403,7 +5520,7 @@ SeekBar.prototype.playerEvent = 'timeupd exports['default'] = SeekBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(_dereq_,module,exports){ /** * @file custom-control-spacer.js */ @@ -5477,7 +5594,7 @@ var CustomControlSpacer = (function (_Sp exports['default'] = CustomControlSpacer; module.exports = exports['default']; -},{"../../component.js":58,"./spacer.js":72}],72:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./spacer.js":77}],77:[function(_dereq_,module,exports){ /** * @file spacer.js */ @@ -5544,7 +5661,7 @@ var Spacer = (function (_Component) { exports['default'] = Spacer; module.exports = exports['default']; -},{"../../component.js":58}],73:[function(_dereq_,module,exports){ +},{"../../component.js":63}],78:[function(_dereq_,module,exports){ /** * @file caption-settings-menu-item.js */ @@ -5610,7 +5727,7 @@ var CaptionSettingsMenuItem = (function exports['default'] = CaptionSettingsMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(_dereq_,module,exports){ /** * @file captions-button.js */ @@ -5716,7 +5833,7 @@ CaptionsButton.prototype.controlText_ = exports['default'] = CaptionsButton; module.exports = exports['default']; -},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(_dereq_,module,exports){ /** * @file chapters-button.js */ @@ -5905,7 +6022,7 @@ ChaptersButton.prototype.controlText_ = exports['default'] = ChaptersButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(_dereq_,module,exports){ /** * @file chapters-track-menu-item.js */ @@ -5995,7 +6112,7 @@ var ChaptersTrackMenuItem = (function (_ exports['default'] = ChaptersTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120}],77:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125}],82:[function(_dereq_,module,exports){ /** * @file off-text-track-menu-item.js */ @@ -6075,7 +6192,7 @@ var OffTextTrackMenuItem = (function (_T exports['default'] = OffTextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(_dereq_,module,exports){ /** * @file subtitles-button.js */ @@ -6138,7 +6255,7 @@ SubtitlesButton.prototype.controlText_ = exports['default'] = SubtitlesButton; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-button.js":79}],79:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-button.js":84}],84:[function(_dereq_,module,exports){ /** * @file text-track-button.js */ @@ -6246,7 +6363,7 @@ var TextTrackButton = (function (_MenuBu exports['default'] = TextTrackButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../utils/fn.js":120,"./off-text-track-menu-item.js":77,"./text-track-menu-item.js":80}],80:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../utils/fn.js":125,"./off-text-track-menu-item.js":82,"./text-track-menu-item.js":85}],85:[function(_dereq_,module,exports){ /** * @file text-track-menu-item.js */ @@ -6395,7 +6512,7 @@ var TextTrackMenuItem = (function (_Menu exports['default'] = TextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120,"global/document":1,"global/window":2}],81:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125,"global/document":1,"global/window":2}],86:[function(_dereq_,module,exports){ /** * @file current-time-display.js */ @@ -6489,7 +6606,7 @@ var CurrentTimeDisplay = (function (_Com exports['default'] = CurrentTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(_dereq_,module,exports){ /** * @file duration-display.js */ @@ -6590,7 +6707,7 @@ var DurationDisplay = (function (_Compon exports['default'] = DurationDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(_dereq_,module,exports){ /** * @file remaining-time-display.js */ @@ -6688,7 +6805,7 @@ var RemainingTimeDisplay = (function (_C exports['default'] = RemainingTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(_dereq_,module,exports){ /** * @file time-divider.js */ @@ -6746,7 +6863,7 @@ var TimeDivider = (function (_Component) exports['default'] = TimeDivider; module.exports = exports['default']; -},{"../../component.js":58}],85:[function(_dereq_,module,exports){ +},{"../../component.js":63}],90:[function(_dereq_,module,exports){ /** * @file volume-bar.js */ @@ -6891,7 +7008,7 @@ VolumeBar.prototype.playerEvent = 'volum exports['default'] = VolumeBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(_dereq_,module,exports){ /** * @file volume-control.js */ @@ -6969,7 +7086,7 @@ VolumeControl.prototype.options_ = { exports['default'] = VolumeControl; module.exports = exports['default']; -},{"../../component.js":58,"./volume-bar.js":85}],87:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./volume-bar.js":90}],92:[function(_dereq_,module,exports){ /** * @file volume-level.js */ @@ -7026,7 +7143,7 @@ var VolumeLevel = (function (_Component) exports['default'] = VolumeLevel; module.exports = exports['default']; -},{"../../component.js":58}],88:[function(_dereq_,module,exports){ +},{"../../component.js":63}],93:[function(_dereq_,module,exports){ /** * @file volume-menu-button.js */ @@ -7188,7 +7305,7 @@ VolumeMenuButton.prototype.controlText_ exports['default'] = VolumeMenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(_dereq_,module,exports){ /** * @file error-display.js */ @@ -7270,7 +7387,7 @@ var ErrorDisplay = (function (_Component exports['default'] = ErrorDisplay; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118}],90:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123}],95:[function(_dereq_,module,exports){ /** * @file event-target.js */ @@ -7329,7 +7446,7 @@ EventTarget.prototype.dispatchEvent = Ev exports['default'] = EventTarget; module.exports = exports['default']; -},{"./utils/events.js":119}],91:[function(_dereq_,module,exports){ +},{"./utils/events.js":124}],96:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -7420,7 +7537,7 @@ var extendFn = function extendFn(superCl exports['default'] = extendFn; module.exports = exports['default']; -},{"./utils/log":123}],92:[function(_dereq_,module,exports){ +},{"./utils/log":128}],97:[function(_dereq_,module,exports){ /** * @file fullscreen-api.js */ @@ -7477,7 +7594,7 @@ if (browserApi) { exports['default'] = FullscreenApi; module.exports = exports['default']; -},{"global/document":1}],93:[function(_dereq_,module,exports){ +},{"global/document":1}],98:[function(_dereq_,module,exports){ /** * @file loading-spinner.js */ @@ -7532,7 +7649,7 @@ var LoadingSpinner = (function (_Compone exports['default'] = LoadingSpinner; module.exports = exports['default']; -},{"./component":58}],94:[function(_dereq_,module,exports){ +},{"./component":63}],99:[function(_dereq_,module,exports){ /** * @file media-error.js */ @@ -7623,7 +7740,7 @@ for (var errNum = 0; errNum < MediaError exports['default'] = MediaError; module.exports = exports['default']; -},{"object.assign":43}],95:[function(_dereq_,module,exports){ +},{"object.assign":45}],100:[function(_dereq_,module,exports){ /** * @file menu-button.js */ @@ -7897,7 +8014,7 @@ var MenuButton = (function (_Button) { exports['default'] = MenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(_dereq_,module,exports){ /** * @file menu-item.js */ @@ -7992,7 +8109,7 @@ var MenuItem = (function (_Button) { exports['default'] = MenuItem; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(_dereq_,module,exports){ /** * @file menu.js */ @@ -8090,7 +8207,7 @@ var Menu = (function (_Component) { exports['default'] = Menu; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(_dereq_,module,exports){ /** * @file player.js */ @@ -10943,7 +11060,7 @@ exports['default'] = Player; module.exports = exports['default']; // If empty string, make it a parsable json object. -},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(_dereq_,module,exports){ +},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(_dereq_,module,exports){ /** * @file plugins.js */ @@ -10971,7 +11088,7 @@ var plugin = function plugin(name, init) exports['default'] = plugin; module.exports = exports['default']; -},{"./player.js":98}],100:[function(_dereq_,module,exports){ +},{"./player.js":103}],105:[function(_dereq_,module,exports){ /** * @file poster-image.js */ @@ -11131,7 +11248,7 @@ var PosterImage = (function (_Button) { exports['default'] = PosterImage; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(_dereq_,module,exports){ /** * @file setup.js * @@ -11241,7 +11358,7 @@ exports.autoSetup = autoSetup; exports.autoSetupTimeout = autoSetupTimeout; exports.hasLoaded = hasLoaded; -},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(_dereq_,module,exports){ +},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(_dereq_,module,exports){ /** * @file slider.js */ @@ -11520,7 +11637,7 @@ var Slider = (function (_Component) { exports['default'] = Slider; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(_dereq_,module,exports){ /** * @file flash-rtmp.js */ @@ -11620,7 +11737,7 @@ function FlashRtmpDecorator(Flash) { exports['default'] = FlashRtmpDecorator; module.exports = exports['default']; -},{}],104:[function(_dereq_,module,exports){ +},{}],109:[function(_dereq_,module,exports){ /** * @file flash.js * VideoJS-SWF - Custom Flash Player with HTML5-ish API @@ -12225,7 +12342,7 @@ Flash.getEmbedCode = function (swf, flas exports['default'] = Flash; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(_dereq_,module,exports){ /** * @file html5.js * HTML5 Media Controller - Wrapper for HTML5 Media API @@ -13464,7 +13581,7 @@ Html5.disposeMediaElement = function (el exports['default'] = Html5; module.exports = exports['default']; -},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(_dereq_,module,exports){ /** * @file loader.js */ @@ -13539,7 +13656,7 @@ var MediaLoader = (function (_Component) exports['default'] = MediaLoader; module.exports = exports['default']; -},{"../component":58,"../utils/to-title-case.js":127,"global/window":2}],107:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/to-title-case.js":132,"global/window":2}],112:[function(_dereq_,module,exports){ /** * @file tech.js * Media Technology Controller - Base class for media playback @@ -13644,7 +13761,7 @@ var Tech = (function (_Component) { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners(); @@ -14218,7 +14335,7 @@ Tech.withSourceHandlers = function (_Tec exports['default'] = Tech; module.exports = exports['default']; -},{"../component":58,"../media-error.js":94,"../tracks/text-track":114,"../tracks/text-track-list":112,"../utils/buffer.js":116,"../utils/fn.js":120,"../utils/log.js":123,"../utils/time-ranges.js":126,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){ +},{"../component":63,"../media-error.js":99,"../tracks/text-track":119,"../tracks/text-track-list":117,"../utils/buffer.js":121,"../utils/fn.js":125,"../utils/log.js":128,"../utils/time-ranges.js":131,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){ /** * @file text-track-cue-list.js */ @@ -14315,7 +14432,7 @@ TextTrackCueList.prototype.getCueById = exports['default'] = TextTrackCueList; module.exports = exports['default']; -},{"../utils/browser.js":115,"global/document":1}],109:[function(_dereq_,module,exports){ +},{"../utils/browser.js":120,"global/document":1}],114:[function(_dereq_,module,exports){ /** * @file text-track-display.js */ @@ -14586,7 +14703,7 @@ function tryUpdateStyle(el, style, rule) exports['default'] = TextTrackDisplay; module.exports = exports['default']; -},{"../component":58,"../menu/menu-button.js":95,"../menu/menu-item.js":96,"../menu/menu.js":97,"../utils/fn.js":120,"global/document":1,"global/window":2}],110:[function(_dereq_,module,exports){ +},{"../component":63,"../menu/menu-button.js":100,"../menu/menu-item.js":101,"../menu/menu.js":102,"../utils/fn.js":125,"global/document":1,"global/window":2}],115:[function(_dereq_,module,exports){ /** * @file text-track-enums.js * @@ -14619,7 +14736,7 @@ var TextTrackKind = { exports.TextTrackMode = TextTrackMode; exports.TextTrackKind = TextTrackKind; -},{}],111:[function(_dereq_,module,exports){ +},{}],116:[function(_dereq_,module,exports){ /** * Utilities for capturing text track state and re-creating tracks * based on a capture. @@ -14706,7 +14823,7 @@ var jsonToTextTracks = function jsonToTe exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ }; module.exports = exports['default']; -},{}],112:[function(_dereq_,module,exports){ +},{}],117:[function(_dereq_,module,exports){ /** * @file text-track-list.js */ @@ -14851,7 +14968,7 @@ TextTrackList.prototype.getTrackById = f exports['default'] = TextTrackList; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(_dereq_,module,exports){ /** * @file text-track-settings.js */ @@ -15143,7 +15260,7 @@ function captionOptionsMenuTemplate() { exports['default'] = TextTrackSettings; module.exports = exports['default']; -},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(_dereq_,module,exports){ /** * @file text-track.js */ @@ -15496,7 +15613,7 @@ var indexOf = function indexOf(searchEle exports['default'] = TextTrack; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,"xhr":50}],115:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,"xhr":55}],120:[function(_dereq_,module,exports){ /** * @file browser.js */ @@ -15585,7 +15702,7 @@ exports.TOUCH_ENABLED = TOUCH_ENABLED; var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style); exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED; -},{"global/document":1,"global/window":2}],116:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],121:[function(_dereq_,module,exports){ /** * @file buffer.js */ @@ -15634,7 +15751,7 @@ function bufferedPercent(buffered, durat return bufferedDuration / duration; } -},{"./time-ranges.js":126}],117:[function(_dereq_,module,exports){ +},{"./time-ranges.js":131}],122:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -15705,7 +15822,7 @@ exports['default'] = function (target) { module.exports = exports['default']; -},{"./log.js":123}],118:[function(_dereq_,module,exports){ +},{"./log.js":128}],123:[function(_dereq_,module,exports){ /** * @file dom.js */ @@ -16138,7 +16255,7 @@ function getPointerPosition(el, event) { return position; } -},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,"tsml":49}],119:[function(_dereq_,module,exports){ +},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,"tsml":54}],124:[function(_dereq_,module,exports){ /** * @file events.js * @@ -16546,7 +16663,7 @@ function _handleMultipleEvents(fn, elem, }); } -},{"./dom.js":118,"./guid.js":122,"global/document":1,"global/window":2}],120:[function(_dereq_,module,exports){ +},{"./dom.js":123,"./guid.js":127,"global/document":1,"global/window":2}],125:[function(_dereq_,module,exports){ /** * @file fn.js */ @@ -16590,7 +16707,7 @@ var bind = function bind(context, fn, ui }; exports.bind = bind; -},{"./guid.js":122}],121:[function(_dereq_,module,exports){ +},{"./guid.js":127}],126:[function(_dereq_,module,exports){ /** * @file format-time.js * @@ -16640,7 +16757,7 @@ function formatTime(seconds) { exports['default'] = formatTime; module.exports = exports['default']; -},{}],122:[function(_dereq_,module,exports){ +},{}],127:[function(_dereq_,module,exports){ /** * @file guid.js * @@ -16665,7 +16782,7 @@ function newGUID() { return _guid++; } -},{}],123:[function(_dereq_,module,exports){ +},{}],128:[function(_dereq_,module,exports){ /** * @file log.js */ @@ -16755,7 +16872,7 @@ function _logType(type, args) { exports['default'] = log; module.exports = exports['default']; -},{"global/window":2}],124:[function(_dereq_,module,exports){ +},{"global/window":2}],129:[function(_dereq_,module,exports){ /** * @file merge-options.js */ @@ -16826,7 +16943,7 @@ function mergeOptions() { module.exports = exports['default']; -},{"lodash-compat/object/merge":40}],125:[function(_dereq_,module,exports){ +},{"lodash-compat/object/merge":40}],130:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16854,7 +16971,7 @@ var setTextContent = function setTextCon }; exports.setTextContent = setTextContent; -},{"global/document":1}],126:[function(_dereq_,module,exports){ +},{"global/document":1}],131:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16925,7 +17042,7 @@ function rangeCheck(fnName, index, maxIn } } -},{"./log.js":123}],127:[function(_dereq_,module,exports){ +},{"./log.js":128}],132:[function(_dereq_,module,exports){ /** * @file to-title-case.js * @@ -16946,7 +17063,7 @@ function toTitleCase(string) { exports["default"] = toTitleCase; module.exports = exports["default"]; -},{}],128:[function(_dereq_,module,exports){ +},{}],133:[function(_dereq_,module,exports){ /** * @file url.js */ @@ -17082,7 +17199,7 @@ var isCrossOrigin = function isCrossOrig }; exports.isCrossOrigin = isCrossOrigin; -},{"global/document":1,"global/window":2}],129:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],134:[function(_dereq_,module,exports){ /** * @file video.js */ @@ -17277,7 +17394,7 @@ setup.autoSetupTimeout(1, videojs); * * @type {String} */ -videojs.VERSION = '5.0.0'; +videojs.VERSION = '5.0.2'; /** * The global options object. These are the settings that take effect @@ -17693,7 +17810,7 @@ if (typeof define === 'function' && defi exports['default'] = videojs; module.exports = exports['default']; -},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,"xhr":50}]},{},[129])(129) +},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,"xhr":55}]},{},[134])(134) }); diff --git a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js --- a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js +++ b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js @@ -1,16 +1,16 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * */ -!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.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[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:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||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(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?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=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:45,"object-keys":46}],45:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],46:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],48:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],49:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:51,"parse-headers":55}],51:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],52:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":53}],53:[function(a,b){function c(a){var b=d.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=c;var d=Object.prototype.toString},{}],54:[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*$/,"")}},{}],55:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":52,trim:54}],56:[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}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":57,"./component.js":58}],57:[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("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),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]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[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("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["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:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&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_=x["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=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(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 f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},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 a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},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.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),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"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.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.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(){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}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[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/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),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"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[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(){e(this,b),a.apply(this,arguments)}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.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],61:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.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}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118}],62:[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("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(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()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[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":57,"../component.js":58}],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("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.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 k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["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;da){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}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],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("../../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":58,"../../menu/menu-item.js":96}],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")}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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(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;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118}],67:[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("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[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/format-time.js"),m=e(l),n=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(){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",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],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("./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":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,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){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},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}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[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":58,"./spacer.js":72}],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("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(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}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],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("./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","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],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("./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":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[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),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=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;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[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("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[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":58,"./text-track-button.js":79}],79:[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("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent 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=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(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_=k.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){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(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_=k.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=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],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("../../component.js"),h=d(g),i=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-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],85:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(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.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){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}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[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_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?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":58,"./volume-bar.js":85}],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("../../component.js"),h=d(g),i=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-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],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("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}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.vertical=f.inline?!1:!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")})}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.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118}],90:[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}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":119}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=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)},h=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&&(f["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),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":123}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[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("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}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)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[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("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.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_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[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), -a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["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=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),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.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);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return 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),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),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 x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(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(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,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=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["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.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),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.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),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(){this.addClass("vjs-waiting"),this.trigger("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.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},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.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["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 this.techGet_("paused")===!1?!1:!0},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,0>a&&(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 c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.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=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?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"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?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"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(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.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},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(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},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 N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;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"]));Z.players={};var $=m["default"].navigator;Z.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")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.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",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.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("./button.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"]},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[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}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[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("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(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 g(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=o["default"]({tabIndex:0},c),d=o["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){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"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||0>a||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=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"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(m["default"],"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.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[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.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(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.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],104:[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=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=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),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["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="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["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=o.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=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[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("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.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;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},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(b){s["default"](b,"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=y["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.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return 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=w["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.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.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(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[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("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=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;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":115,"global/document":1}],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)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],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)}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 select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".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=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},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(b){}}},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":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[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}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"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;d>c;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(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,xhr:50}],115:[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=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();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?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],116:[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;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":126}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={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){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":123}],118:[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){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){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=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); +!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.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[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:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||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(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?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=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:47,"object-keys":49}],47:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],48:[function(a,b){var c="Function.prototype.bind called on incompatible ",d=Array.prototype.slice,e=Object.prototype.toString,f="[object Function]";b.exports=function(a){var b=this;if("function"!=typeof b||e.call(b)!==f)throw new TypeError(c+b);for(var g=d.call(arguments,1),h=function(){if(this instanceof l){var c=b.apply(this,g.concat(d.call(arguments)));return Object(c)===c?c:this}return b.apply(a,g.concat(d.call(arguments)))},i=Math.max(0,b.length-g.length),j=[],k=0;i>k;k++)j.push("$"+k);var l=Function("binder","return function ("+j.join(",")+"){ return binder.apply(this,arguments); }")(h);if(b.prototype){var m=function(){};m.prototype=b.prototype,l.prototype=new m,m.prototype=null}return l}},{}],49:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$console:!0,$frame:!0,$frameElement:!0,$frames:!0,$parent:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window||!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],51:[function(a,b){"use strict";var c=a("./implementation"),d=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]}};b.exports=function(){return!Object.assign||d()?c:Object.assign}},{"./implementation":44}],52:[function(a,b){"use strict";var c=a("define-properties"),d=a("./polyfill");b.exports=function(){var a=d();return Object.assign!==a&&c(Object,{assign:a}),a}},{"./polyfill":51,"define-properties":46}],53:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],54:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:56,"parse-headers":60}],56:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],57:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":58}],58:[function(a,b){function c(a){var b=d.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=c;var d=Object.prototype.toString},{}],59:[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*$/,"")}},{}],60:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":57,trim:59}],61:[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}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":62,"./component.js":63}],62:[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("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),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]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],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")}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("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["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:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&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_=x["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=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(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 f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},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 a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions, +a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},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.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),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"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.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.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(){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}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[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/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),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"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],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.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-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],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")}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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.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}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123}],67:[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("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(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()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":62,"../component":63,"../utils/dom.js":123}],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("../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":62,"../component.js":63}],69:[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("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.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 k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["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;da){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}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],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("../../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":63,"../../menu/menu-item.js":101}],71:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(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;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123}],72:[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("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[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/format-time.js"),m=e(l),n=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(){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",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],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("../../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":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,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){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},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}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[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":63,"./spacer.js":77}],77:[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=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(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}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],78:[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","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],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("./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":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[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),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=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;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],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("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[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":63,"./text-track-button.js":84}],84:[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("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent 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=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(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_=k.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){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(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_=k.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=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],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("../../component.js"),h=d(g),i=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-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],90:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(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.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){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}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],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("../../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_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?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":63,"./volume-bar.js":90}],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("../../component.js"),h=d(g),i=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-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],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("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}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.vertical=f.inline?!1:!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")})}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.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123}],95:[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}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":124}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=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)},h=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&&(f["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),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":128}],97:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[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("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}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)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[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("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.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_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[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),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["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=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),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.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);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return 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),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),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 x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(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(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,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=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["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.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),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.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),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(){this.addClass("vjs-waiting"),this.trigger("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.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},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.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["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 this.techGet_("paused")===!1?!1:!0},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,0>a&&(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 c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.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=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?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"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?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"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(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.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},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(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},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 N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;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"]));Z.players={};var $=m["default"].navigator;Z.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")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.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",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":103}],105:[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("./button.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"]},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[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}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[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("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(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 g(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=o["default"]({tabIndex:0},c),d=o["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){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove), +this.off(m["default"],"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||0>a||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=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"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(m["default"],"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.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[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.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(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.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],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)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=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),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["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="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["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=o.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=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[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("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.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;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},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(b){s["default"](b,"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=y["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.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return 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=w["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.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.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(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[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("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=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;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":120,"global/document":1}],114:[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,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[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 select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".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=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},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(b){}}},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":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[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}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"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;d>c;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(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,xhr:55}],120:[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=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();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?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],121:[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;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":131}],122:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={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){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":128}],123:[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){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){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=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); -a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(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?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(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}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,tsml:49}],119:[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;h>g&&!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;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],122:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],123:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],125:[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=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],126:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(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:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||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=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":123}],127:[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"]},{}],128:[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;hx',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=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],129:[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/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.0",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,xhr:50}]},{},[129])(129)}); +a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(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?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(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}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,tsml:54}],124:[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;h>g&&!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;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],127:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],130:[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=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],131:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(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:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||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=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":128}],132:[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"]},{}],133:[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;hx',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=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],134:[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/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.2",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[134])(134)}); //# sourceMappingURL=video.novtt.min.js.map \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map --- a/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map +++ b/ennstatus/static/js/video.js/dist/alt/video.novtt.min.js.map @@ -1,1 +1,1 @@ -{"version":3,"file":"video.novtt.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"toObject","baseProperty","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",44,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",45,"hasOwn","ctx","k",46,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",47,"str","callee",48,"SafeParseTuple","reviver","json","error","err",49,"clean","sa",50,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","JSON","parse","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",51,"called",52,"forEach","list","iterator","context","forEachArray","forEachString","forEachObject","len","string","is-function",53,"alert","confirm","prompt",54,"trim","right",55,"arg","split","row","indexOf","toLowerCase","Constructor","instance","player_","play","__esModule","newObj","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_interopRequireDefault","_component","Dom","_interopRequireWildcard","_utilsDomJs","Button","_Component","player","_classCallCheck","createEl","attributes","_objectAssign2","className","buildCSSClass","tabIndex","role","el","controlTextEl_","handleClick","default","_globalWindow2","_globalWindow","Fn","_utilsFnJs","Component","ready","options_","_utilsMergeOptionsJs2","id_","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_utilsLogJs2","warn","tagName","properties","localize","languages","language","primaryCode","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","bind","third","nodeName","one","_this3","_arguments","newFunc","isReady_","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","disposeFn","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","aria-live","appendChild","updateShowing","_button2","_button","MuteToggle","_Button","update","tech_","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","removeClass","_playbackRateMenuItemJs2","_playbackRateMenuItemJs","PlaybackRateMenuButton","_MenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","label","rate","parseFloat","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","_componentJs2","_componentJs","MouseTimeDisplay","handleMouseMove","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs2","calculateDistance","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_loadProgressBarJs","SeekBar","_Slider","stepBack","CustomControlSpacer","_Spacer","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","CaptionsButton","_TextTrackButton","threshold","createItems","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","_menuMenuJs2","_menuMenuJs","ChaptersButton","items","tracks","textTracks","track","kind_","cues","chaptersTrack","menu","contentEl","cue","mi","_menuMenuItemJs2","_menuMenuItemJs","ChaptersTrackMenuItem","_MenuItem","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_menuMenuButtonJs2","_menuMenuButtonJs","TextTrackButton","hide","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","TextTrackMenuItem","onchange","Event","_globalDocument2","createEvent","CurrentTimeDisplay","innerHTML","updateContent","localizedText","DurationDisplay","formattedTime","RemainingTimeDisplay","_sliderSliderJs2","_sliderSliderJs","VolumeBar","toFixed","setAttribute","VolumeControl","VolumeMenuButton","updateVisibility","inline","vertical","volumeUpdate","orientationClass","contentElType","_muteToggleJs2","ErrorDisplay","message","_utilsEventsJs","EventTarget","allowedEvents_","ael","addEventListener","extendFn","subClassMethods","methods","init","_utilsLog2","FullscreenApi","apiMap","specApi","browserApi","_objectAssign","MediaError","errorTypes","_menuJs2","_menuJs","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","MenuItem","_selected","append","_globalDocument","_utilsLogJs","_utilsToTitleCaseJs2","_utilsToTitleCaseJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_errorDisplayJs","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","getOwnPropertyNames","isAudio","Player","players","styleEl_","removeChild","attrs","getElAttributes","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","privDimension","_dimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech_","techName","unloadTech_","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","startTime","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedData_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","usingNativeControls","techGet_","insertElFirst","addTechControlsListeners_","removeTechControlsListeners_","paused","hasStarted","_hasStarted","hasStarted_","handleTechClick_","button","techCall_","isScrubbing","seconds","percentAsDecimal","min","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_fullscreenApiJs2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","tech","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","tagOptions","dataSetup","_safeParseTuple","_safeJsonParseTuple2","hasChildNodes","childNodes","childName","baseOptions","notSupportedMessage","handleError_","flexNotSupported_","createElement","_buttonJs2","_buttonJs","PosterImage","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","vjs","Slider","bar","getChild","barName","handleMouseDown","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","vertical_","../component.js","../utils/dom.js","global/document","object.assign",103,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","srcParts","_createSetter","attrUpper","toUpperCase","_api","val","_createGetter","vjs_getProperty","_tech2","_tech","_utilsUrlJs","setSource","_Tech","swf","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","eventName","swfID","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","_techJs2","_techJs","Html5","currentSrc","nodes","node","nodesLength","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","setLoadstartFired","loadstartFired","triggerLoadstart","eventsToTrigger","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","playerOptions","_tracksTextTrack2","_tracksTextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","manualProgress","manualProgressOff","_mediaErrorJs2","textTrackListChanges","emulateTextTracks","script","updateDisplay","mode","setPoster","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","TextTrackCueList","IS_IE8","prop","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","_i","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_eventTarget2","_eventTarget","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_textTrackCueList2","_textTrackCueList","_utilsGuidJs","TextTrack","TextTrackEnum","TextTrackMode","cues_","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","searchElement","IS_IPHONE","IS_IPAD","USER_AGENT","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","IS_NATIVE_ANDROID","bufferedDuration","_timeRangesJs","createTimeRange","_logJs2","_logJs","defaultBehaviors","messages","Proxy","_ret","handler","propName","_tsml2","_templateObject","getElData","elIdAttr","hasElData","removeElData","elData","element","classToRemove","hasElClass","attrName","attrValue","attrVal","knownBooleans","box","getBoundingClientRect","docEl","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","getPointerPosition","boxW","offsetWidth","boxH","offsetHeight","boxY","pageY","changedTouches","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent",120,"uid","h","floor","gm","guide","argsArray","console","log","history","unshift","_logType","mergeOptions",126,"createTimeRangesObj","ranges","getRange","rangeIndex","fnName","rangeCheck","createTimeRanges","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","urlInfo","parseUrl","_pluginsJs2","_pluginsJs","_tracksTextTrackJs","_utilsFormatTimeJs","_utilsCreateDeprecationProxyJs","_xhr","_techFlashJs","_techHtml5Js","getPlayers","_player2","_lodashCompatObjectMerge2","_merge"],"mappings":"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,4KA0BE,IAAAjB,GAAO,QAAYA,GAAQ8C,EAAAV,EAAAic,GACzB,GAAA5N,EAIF,IAAY,gBAAR3N,GAAqB,CAQrB,GALW,IAAbA,EAAI+Y,QAAS,OACX/Y,EAAAA,EAAA4R,MAAA,IAIA1U,EAAQuyC,aAAazvC,GAW1B,MARGV,6FAIAic,GACDre,EAAAuyC,aAAAzvC,GAAAub,MAAAA,GAGIre,EAAAuyC,aAAAzvC,wBAYP,KAAA2N,IAAAA,EAAAuQ,kFAOA,OAAKvQ,GAAa,QAAK,GAAE+hC,GAAK,WAAY/hC,EAAArO,EAAAic,gEAe5CwD,EAAMgO,EAAAC,mBAA6B,slBA6FnC9vB,EAAQ+oC,kBAAkBpsB,EAAA,WAAAosB,qLAwK1B,+BAAQ0J,EAAG,WAAOzyC,EAAAoC,QAAAqd,WAAAizB,KAAAA,EAAA9xC,GAAAqY,EAAAy5B,IAAA9xC,4RAyJjB,kBAAAnB,IAAAA,EAAA;AhIvgBD;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
\n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton
\n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.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`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file +{"version":3,"file":"video.novtt.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/hasSymbols.js","node_modules/object.assign/implementation.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/function-bind/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/object.assign/polyfill.js","node_modules/object.assign/shim.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"toObject","baseProperty","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"Symbol","getOwnPropertySymbols","iterator","obj","sym","getOwnPropertyNames","syms","descriptor","getOwnPropertyDescriptor","enumerable","object-keys",44,"bind","canBeObject","hasSymbols","propIsEnumerable","target","objTarget","./hasSymbols","function-bind",45,"defineProperties","implementation","getPolyfill","shim","./implementation","./polyfill","./shim","define-properties",46,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",47,"hasOwn","ctx","k",48,"ERROR_MESSAGE","slice","funcType","that","binder","bound","boundLength","boundArgs","join","Empty",49,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$parent","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",50,"str","callee",51,"assignHasPendingExceptions","assign","preventExtensions","thrower",52,"polyfill",53,"SafeParseTuple","reviver","json","error","err",54,"clean","sa",55,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","JSON","parse","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",56,"called",57,"forEach","list","context","forEachArray","forEachString","forEachObject","len","string","is-function",58,"alert","confirm","prompt",59,"trim","right",60,"arg","split","row","indexOf","toLowerCase","Constructor","instance","player_","play","__esModule","newObj","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_interopRequireDefault","_component","Dom","_interopRequireWildcard","_utilsDomJs","Button","_Component","player","_classCallCheck","createEl","attributes","_objectAssign2","className","buildCSSClass","tabIndex","role","el","controlTextEl_","handleClick","default","_globalWindow2","_globalWindow","Fn","_utilsFnJs","Component","ready","options_","_utilsMergeOptionsJs2","id_","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_utilsLogJs2","warn","tagName","properties","localize","languages","language","primaryCode","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","third","nodeName","one","_this3","_arguments","newFunc","isReady_","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","disposeFn","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","aria-live","appendChild","updateShowing","_button2","_button","MuteToggle","_Button","update","tech_","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","removeClass","_playbackRateMenuItemJs2","_playbackRateMenuItemJs","PlaybackRateMenuButton","_MenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","label","rate","parseFloat","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","_componentJs2","_componentJs","MouseTimeDisplay","handleMouseMove","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs2","calculateDistance","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_loadProgressBarJs","SeekBar","_Slider","stepBack","CustomControlSpacer","_Spacer","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","CaptionsButton","_TextTrackButton","threshold","createItems","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","_menuMenuJs2","_menuMenuJs","ChaptersButton","items","tracks","textTracks","track","kind_","cues","chaptersTrack","menu","contentEl","cue","mi","_menuMenuItemJs2","_menuMenuItemJs","ChaptersTrackMenuItem","_MenuItem","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_menuMenuButtonJs2","_menuMenuButtonJs","TextTrackButton","hide","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","TextTrackMenuItem","onchange","Event","_globalDocument2","createEvent","CurrentTimeDisplay","innerHTML","updateContent","localizedText","DurationDisplay","formattedTime","RemainingTimeDisplay","_sliderSliderJs2","_sliderSliderJs","VolumeBar","toFixed","setAttribute","VolumeControl","VolumeMenuButton","updateVisibility","inline","vertical","volumeUpdate","orientationClass","contentElType","_muteToggleJs2","ErrorDisplay","message","_utilsEventsJs","EventTarget","allowedEvents_","ael","addEventListener","extendFn","subClassMethods","methods","init","_utilsLog2","FullscreenApi","apiMap","specApi","browserApi","_objectAssign","MediaError","errorTypes","_menuJs2","_menuJs","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","MenuItem","_selected","append","_globalDocument","_utilsLogJs","_utilsToTitleCaseJs2","_utilsToTitleCaseJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_errorDisplayJs","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","isAudio","Player","players","styleEl_","removeChild","attrs","getElAttributes","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","privDimension","_dimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech_","techName","unloadTech_","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","startTime","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedData_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","usingNativeControls","techGet_","insertElFirst","addTechControlsListeners_","removeTechControlsListeners_","paused","hasStarted","_hasStarted","hasStarted_","handleTechClick_","button","techCall_","isScrubbing","seconds","percentAsDecimal","min","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_fullscreenApiJs2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","tech","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","tagOptions","dataSetup","_safeParseTuple","_safeJsonParseTuple2","hasChildNodes","childNodes","childName","baseOptions","notSupportedMessage","handleError_","flexNotSupported_","createElement","_buttonJs2","_buttonJs","PosterImage","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","vjs","Slider","bar","getChild","barName","handleMouseDown","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","vertical_","../component.js","../utils/dom.js","global/document","object.assign",108,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","srcParts","_createSetter","attrUpper","toUpperCase","_api","val","_createGetter","vjs_getProperty","_tech2","_tech","_utilsUrlJs","setSource","_Tech","swf","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","eventName","swfID","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","_techJs2","_techJs","Html5","currentSrc","nodes","node","nodesLength","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","setLoadstartFired","loadstartFired","triggerLoadstart","eventsToTrigger","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","playerOptions","_tracksTextTrack2","_tracksTextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","manualProgress","manualProgressOff","_mediaErrorJs2","textTrackListChanges","emulateTextTracks","script","updateDisplay","mode","setPoster","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","TextTrackCueList","IS_IE8","prop","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","_i","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_eventTarget2","_eventTarget","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_textTrackCueList2","_textTrackCueList","_utilsGuidJs","TextTrack","TextTrackEnum","TextTrackMode","cues_","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","searchElement","IS_IPHONE","IS_IPAD","USER_AGENT","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","IS_NATIVE_ANDROID","bufferedDuration","_timeRangesJs","createTimeRange","_logJs2","_logJs","defaultBehaviors","messages","Proxy","_ret","handler","propName","_tsml2","_templateObject","getElData","elIdAttr","hasElData","removeElData","elData","element","classToRemove","hasElClass","attrName","attrValue","attrVal","knownBooleans","box","getBoundingClientRect","docEl","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","getPointerPosition","boxW","offsetWidth","boxH","offsetHeight","boxY","pageY","changedTouches","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent",125,"uid","h","floor","gm","guide","argsArray","console","log","history","unshift","_logType","mergeOptions",131,"createTimeRangesObj","ranges","getRange","rangeIndex","fnName","rangeCheck","createTimeRanges","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","urlInfo","parseUrl","_pluginsJs2","_pluginsJs","_tracksTextTrackJs","_utilsFormatTimeJs","_utilsCreateDeprecationProxyJs","_xhr","_techFlashJs","_techHtml5Js","getPlayers","_player2","_lodashCompatObjectMerge2","_merge"],"mappings":"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0C,aAAAnxC,wBAYP,KAAA2N,IAAAA,EAAAkS,kFAOA,OAAKlS,GAAa,QAAK,GAAEyjC,GAAK,WAAYzjC,EAAArO,EAAA6d,gEAe5CuD,EAAM+N,EAAAC,mBAA6B,slBA6FnCxxB,EAAQyqC,kBAAkBlsB,EAAA,WAAAksB,qLAwK1B,+BAAQ0J,EAAG,WAAOn0C,EAAAoC,QAAAif,WAAA+yB,KAAAA,EAAAxzC,GAAAka,EAAAs5B,IAAAxzC,4RAyJjB,kBAAAnB,IAAAA,EAAA;ArIvgBD;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wBC3BmB,aAAa;;;;2BACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;YAAb,aAAa;;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;GACxB;;;;;;;;;AAJG,eAAa,WAYjB,aAAa,GAAA,yBAAG;AACd,WAAO,qBAAqB,CAAC;GAC9B;;;;;;;;AAdG,eAAa,WAqBjB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACrB;;SAvBG,aAAa;;;AA2BnB,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEpD,yBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;;;yBC1CN,aAAa;;;;0BACd,gBAAgB;;IAAzB,GAAG;;6BACS,mBAAmB;;IAA/B,MAAM;;yBACE,eAAe;;IAAvB,EAAE;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.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`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/video-js-5.0.0.zip b/ennstatus/static/js/video.js/dist/video-js-5.0.0.zip deleted file mode 100644 index 858d647378e880b52caf3f93251b6b96910a68f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 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 z 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

    69xsXz!HQ3jW(Xv1iGjmS$5Xzspfc<{8X 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

    GEXZ9X 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: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%0A=iVl)yYu}zZ0Cf!+SscNG~k%*qk5q$y*1!#0898 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

    Gr^vjc(IkCSI8S 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±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%0D_wW4i;MT=;_-&1C)GbTE?VEMB+gb` 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

    0N(bxKrGnK|2rn_jcSuc2b#Y&CnKsn=*B%ksIE+ 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 Ry8!?D%m?5=n!E(R{x=zFb6)@e diff --git a/ennstatus/static/js/video.js/dist/video.js b/ennstatus/static/js/video.js/dist/video.js --- a/ennstatus/static/js/video.js/dist/video.js +++ b/ennstatus/static/js/video.js/dist/video.js @@ -1,6 +1,6 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -1777,18 +1777,51 @@ module.exports = identity; },{}],43:[function(_dereq_,module,exports){ 'use strict'; +var keys = _dereq_('object-keys'); + +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + if (typeof sym === 'string') { return false; } + if (sym instanceof Symbol) { return false; } + obj[sym] = 42; + for (sym in obj) { return false; } + if (keys(obj).length !== 0) { return false; } + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + +},{"object-keys":49}],44:[function(_dereq_,module,exports){ +'use strict'; + // modified from https://github.com/es-shims/es6-shim var keys = _dereq_('object-keys'); +var bind = _dereq_('function-bind'); var canBeObject = function (obj) { return typeof obj !== 'undefined' && obj !== null; }; -var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol'; -var defineProperties = _dereq_('define-properties'); +var hasSymbols = _dereq_('./hasSymbols')(); var toObject = Object; -var push = Array.prototype.push; -var propIsEnumerable = Object.prototype.propertyIsEnumerable; - -var assignShim = function assign(target, source1) { +var push = bind.call(Function.call, Array.prototype.push); +var propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable); + +module.exports = function assign(target, source1) { if (!canBeObject(target)) { throw new TypeError('target must be an object'); } var objTarget = toObject(target); var s, source, i, props, syms; @@ -1798,8 +1831,8 @@ var assignShim = function assign(target, if (hasSymbols && Object.getOwnPropertySymbols) { syms = Object.getOwnPropertySymbols(source); for (i = 0; i < syms.length; ++i) { - if (propIsEnumerable.call(source, syms[i])) { - push.call(props, syms[i]); + if (propIsEnumerable(source, syms[i])) { + push(props, syms[i]); } } } @@ -1810,33 +1843,24 @@ var assignShim = function assign(target, return objTarget; }; -defineProperties(assignShim, { - shim: function shimObjectAssign() { - var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - // Firefox 37 still has "pending exception" logic in its Object.assign implementation, - // which is 72% slower than our shim, and Firefox 40's native implementation. - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - }; - defineProperties( - Object, - { assign: assignShim }, - { assign: assignHasPendingExceptions } - ); - return Object.assign || assignShim; - } +},{"./hasSymbols":43,"function-bind":48,"object-keys":49}],45:[function(_dereq_,module,exports){ +'use strict'; + +var defineProperties = _dereq_('define-properties'); + +var implementation = _dereq_('./implementation'); +var getPolyfill = _dereq_('./polyfill'); +var shim = _dereq_('./shim'); + +defineProperties(implementation, { + implementation: implementation, + getPolyfill: getPolyfill, + shim: shim }); -module.exports = assignShim; - -},{"define-properties":44,"object-keys":46}],44:[function(_dereq_,module,exports){ +module.exports = implementation; + +},{"./implementation":44,"./polyfill":51,"./shim":52,"define-properties":46}],46:[function(_dereq_,module,exports){ 'use strict'; var keys = _dereq_('object-keys'); @@ -1852,10 +1876,10 @@ var isFunction = function (fn) { var arePropertyDescriptorsSupported = function () { var obj = {}; try { - Object.defineProperty(obj, 'x', { value: obj, enumerable: false }); - /* eslint-disable no-unused-vars */ + Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); + /* eslint-disable no-unused-vars, no-restricted-syntax */ for (var _ in obj) { return false; } - /* eslint-enable no-unused-vars */ + /* eslint-enable no-unused-vars, no-restricted-syntax */ return obj.x === obj; } catch (e) { /* this is IE 8. */ return false; @@ -1871,8 +1895,8 @@ var defineProperty = function (object, n Object.defineProperty(object, name, { configurable: true, enumerable: false, - writable: true, - value: value + value: value, + writable: true }); } else { object[name] = value; @@ -1894,7 +1918,7 @@ defineProperties.supportsDescriptors = ! module.exports = defineProperties; -},{"foreach":45,"object-keys":46}],45:[function(_dereq_,module,exports){ +},{"foreach":47,"object-keys":49}],47:[function(_dereq_,module,exports){ var hasOwn = Object.prototype.hasOwnProperty; var toString = Object.prototype.toString; @@ -1918,7 +1942,57 @@ module.exports = function forEach (obj, }; -},{}],46:[function(_dereq_,module,exports){ +},{}],48:[function(_dereq_,module,exports){ +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + + +},{}],49:[function(_dereq_,module,exports){ 'use strict'; // modified from https://github.com/es-shims/es5-shim @@ -1926,7 +2000,7 @@ var has = Object.prototype.hasOwnPropert var toStr = Object.prototype.toString; var slice = Array.prototype.slice; var isArgs = _dereq_('./isArguments'); -var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString'); +var hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'); var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype'); var dontEnums = [ 'toString', @@ -1942,31 +2016,37 @@ var equalsConstructorPrototype = functio return ctor && ctor.prototype === o; }; var blacklistedKeys = { - $window: true, $console: true, + $frame: true, + $frameElement: true, + $frames: true, $parent: true, $self: true, - $frames: true, $webkitIndexedDB: true, - $webkitStorageInfo: true + $webkitStorageInfo: true, + $window: true }; var hasAutomationEqualityBug = (function () { /* global window */ if (typeof window === 'undefined') { return false; } for (var k in window) { - if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; + try { + if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { + try { + equalsConstructorPrototype(window[k]); + } catch (e) { + return true; + } } + } catch (e) { + return true; } } return false; }()); var equalsConstructorPrototypeIfNotBuggy = function (o) { /* global window */ - if (typeof window === 'undefined' && !hasAutomationEqualityBug) { + if (typeof window === 'undefined' || !hasAutomationEqualityBug) { return equalsConstructorPrototype(o); } try { @@ -2019,9 +2099,7 @@ var keysShim = function keys(object) { }; keysShim.shim = function shimObjectKeys() { - if (!Object.keys) { - Object.keys = keysShim; - } else { + if (Object.keys) { var keysWorksWithArguments = (function () { // Safari 5.0 bug return (Object.keys(arguments) || '').length === 2; @@ -2036,13 +2114,15 @@ keysShim.shim = function shimObjectKeys( } }; } + } else { + Object.keys = keysShim; } return Object.keys || keysShim; }; module.exports = keysShim; -},{"./isArguments":47}],47:[function(_dereq_,module,exports){ +},{"./isArguments":50}],50:[function(_dereq_,module,exports){ 'use strict'; var toStr = Object.prototype.toString; @@ -2061,7 +2141,44 @@ module.exports = function isArguments(va return isArgs; }; -},{}],48:[function(_dereq_,module,exports){ +},{}],51:[function(_dereq_,module,exports){ +'use strict'; + +var implementation = _dereq_('./implementation'); + +var assignHasPendingExceptions = function () { + if (!Object.assign || !Object.preventExtensions) { + return false; + } + // Firefox 37 still has "pending exception" logic in its Object.assign implementation, + // which is 72% slower than our shim, and Firefox 40's native implementation. + var thrower = Object.preventExtensions({ 1: 2 }); + try { + Object.assign(thrower, 'xy'); + } catch (e) { + return thrower[1] === 'y'; + } +}; + +module.exports = function getPolyfill() { + return !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign; +}; + +},{"./implementation":44}],52:[function(_dereq_,module,exports){ +'use strict'; + +var define = _dereq_('define-properties'); +var getPolyfill = _dereq_('./polyfill'); + +module.exports = function shimAssign() { + var polyfill = getPolyfill(); + if (Object.assign !== polyfill) { + define(Object, { assign: polyfill }); + } + return polyfill; +}; + +},{"./polyfill":51,"define-properties":46}],53:[function(_dereq_,module,exports){ module.exports = SafeParseTuple function SafeParseTuple(obj, reviver) { @@ -2077,7 +2194,7 @@ function SafeParseTuple(obj, reviver) { return [error, json] } -},{}],49:[function(_dereq_,module,exports){ +},{}],54:[function(_dereq_,module,exports){ function clean (s) { return s.replace(/\n\r?\s*/g, '') } @@ -2092,7 +2209,7 @@ module.exports = function tsml (sa) { return s } -},{}],50:[function(_dereq_,module,exports){ +},{}],55:[function(_dereq_,module,exports){ "use strict"; var window = _dereq_("global/window") var once = _dereq_("once") @@ -2283,7 +2400,7 @@ function createXHR(options, callback) { function noop() {} -},{"global/window":2,"once":51,"parse-headers":55}],51:[function(_dereq_,module,exports){ +},{"global/window":2,"once":56,"parse-headers":60}],56:[function(_dereq_,module,exports){ module.exports = once once.proto = once(function () { @@ -2304,7 +2421,7 @@ function once (fn) { } } -},{}],52:[function(_dereq_,module,exports){ +},{}],57:[function(_dereq_,module,exports){ var isFunction = _dereq_('is-function') module.exports = forEach @@ -2352,7 +2469,7 @@ function forEachObject(object, iterator, } } -},{"is-function":53}],53:[function(_dereq_,module,exports){ +},{"is-function":58}],58:[function(_dereq_,module,exports){ module.exports = isFunction var toString = Object.prototype.toString @@ -2369,7 +2486,7 @@ function isFunction (fn) { fn === window.prompt)) }; -},{}],54:[function(_dereq_,module,exports){ +},{}],59:[function(_dereq_,module,exports){ exports = module.exports = trim; @@ -2385,7 +2502,7 @@ exports.right = function(str){ return str.replace(/\s*$/, ''); }; -},{}],55:[function(_dereq_,module,exports){ +},{}],60:[function(_dereq_,module,exports){ var trim = _dereq_('trim') , forEach = _dereq_('for-each') , isArray = function(arg) { @@ -2417,7 +2534,7 @@ module.exports = function (headers) { return result } -},{"for-each":52,"trim":54}],56:[function(_dereq_,module,exports){ +},{"for-each":57,"trim":59}],61:[function(_dereq_,module,exports){ /** * @file big-play-button.js */ @@ -2488,7 +2605,7 @@ BigPlayButton.prototype.controlText_ = ' exports['default'] = BigPlayButton; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58}],57:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63}],62:[function(_dereq_,module,exports){ /** * @file button.js */ @@ -2669,7 +2786,7 @@ var Button = (function (_Component) { exports['default'] = Button; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],63:[function(_dereq_,module,exports){ /** * @file component.js * @@ -4078,7 +4195,7 @@ Component.registerComponent('Component', exports['default'] = Component; module.exports = exports['default']; -},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[function(_dereq_,module,exports){ +},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[function(_dereq_,module,exports){ /** * @file control-bar.js */ @@ -4203,7 +4320,7 @@ ControlBar.prototype.options_ = { exports['default'] = ControlBar; module.exports = exports['default']; -},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[function(_dereq_,module,exports){ +},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],65:[function(_dereq_,module,exports){ /** * @file fullscreen-toggle.js */ @@ -4277,7 +4394,7 @@ FullscreenToggle.prototype.controlText_ exports['default'] = FullscreenToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],61:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],66:[function(_dereq_,module,exports){ /** * @file live-display.js */ @@ -4359,7 +4476,7 @@ var LiveDisplay = (function (_Component) exports['default'] = LiveDisplay; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118}],62:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123}],67:[function(_dereq_,module,exports){ /** * @file mute-toggle.js */ @@ -4486,7 +4603,7 @@ MuteToggle.prototype.controlText_ = 'Mut exports['default'] = MuteToggle; module.exports = exports['default']; -},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[function(_dereq_,module,exports){ +},{"../button":62,"../component":63,"../utils/dom.js":123}],68:[function(_dereq_,module,exports){ /** * @file play-toggle.js */ @@ -4587,7 +4704,7 @@ PlayToggle.prototype.controlText_ = 'Pla exports['default'] = PlayToggle; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58}],64:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63}],69:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-button.js */ @@ -4788,7 +4905,7 @@ PlaybackRateMenuButton.prototype.control exports['default'] = PlaybackRateMenuButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],65:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],70:[function(_dereq_,module,exports){ /** * @file playback-rate-menu-item.js */ @@ -4869,7 +4986,7 @@ PlaybackRateMenuItem.prototype.contentEl exports['default'] = PlaybackRateMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96}],66:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101}],71:[function(_dereq_,module,exports){ /** * @file load-progress-bar.js */ @@ -4975,7 +5092,7 @@ var LoadProgressBar = (function (_Compon exports['default'] = LoadProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118}],67:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123}],72:[function(_dereq_,module,exports){ /** * @file mouse-time-display.js */ @@ -5077,7 +5194,7 @@ var MouseTimeDisplay = (function (_Compo exports['default'] = MouseTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[function(_dereq_,module,exports){ /** * @file play-progress-bar.js */ @@ -5152,7 +5269,7 @@ var PlayProgressBar = (function (_Compon exports['default'] = PlayProgressBar; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],69:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],74:[function(_dereq_,module,exports){ /** * @file progress-control.js */ @@ -5221,7 +5338,7 @@ ProgressControl.prototype.options_ = { exports['default'] = ProgressControl; module.exports = exports['default']; -},{"../../component.js":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[function(_dereq_,module,exports){ /** * @file seek-bar.js */ @@ -5407,7 +5524,7 @@ SeekBar.prototype.playerEvent = 'timeupd exports['default'] = SeekBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[function(_dereq_,module,exports){ /** * @file custom-control-spacer.js */ @@ -5481,7 +5598,7 @@ var CustomControlSpacer = (function (_Sp exports['default'] = CustomControlSpacer; module.exports = exports['default']; -},{"../../component.js":58,"./spacer.js":72}],72:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./spacer.js":77}],77:[function(_dereq_,module,exports){ /** * @file spacer.js */ @@ -5548,7 +5665,7 @@ var Spacer = (function (_Component) { exports['default'] = Spacer; module.exports = exports['default']; -},{"../../component.js":58}],73:[function(_dereq_,module,exports){ +},{"../../component.js":63}],78:[function(_dereq_,module,exports){ /** * @file caption-settings-menu-item.js */ @@ -5614,7 +5731,7 @@ var CaptionSettingsMenuItem = (function exports['default'] = CaptionSettingsMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],74:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],79:[function(_dereq_,module,exports){ /** * @file captions-button.js */ @@ -5720,7 +5837,7 @@ CaptionsButton.prototype.controlText_ = exports['default'] = CaptionsButton; module.exports = exports['default']; -},{"../../component.js":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[function(_dereq_,module,exports){ /** * @file chapters-button.js */ @@ -5909,7 +6026,7 @@ ChaptersButton.prototype.controlText_ = exports['default'] = ChaptersButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],81:[function(_dereq_,module,exports){ /** * @file chapters-track-menu-item.js */ @@ -5999,7 +6116,7 @@ var ChaptersTrackMenuItem = (function (_ exports['default'] = ChaptersTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120}],77:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125}],82:[function(_dereq_,module,exports){ /** * @file off-text-track-menu-item.js */ @@ -6079,7 +6196,7 @@ var OffTextTrackMenuItem = (function (_T exports['default'] = OffTextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[function(_dereq_,module,exports){ /** * @file subtitles-button.js */ @@ -6142,7 +6259,7 @@ SubtitlesButton.prototype.controlText_ = exports['default'] = SubtitlesButton; module.exports = exports['default']; -},{"../../component.js":58,"./text-track-button.js":79}],79:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./text-track-button.js":84}],84:[function(_dereq_,module,exports){ /** * @file text-track-button.js */ @@ -6250,7 +6367,7 @@ var TextTrackButton = (function (_MenuBu exports['default'] = TextTrackButton; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-button.js":95,"../../utils/fn.js":120,"./off-text-track-menu-item.js":77,"./text-track-menu-item.js":80}],80:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-button.js":100,"../../utils/fn.js":125,"./off-text-track-menu-item.js":82,"./text-track-menu-item.js":85}],85:[function(_dereq_,module,exports){ /** * @file text-track-menu-item.js */ @@ -6399,7 +6516,7 @@ var TextTrackMenuItem = (function (_Menu exports['default'] = TextTrackMenuItem; module.exports = exports['default']; -},{"../../component.js":58,"../../menu/menu-item.js":96,"../../utils/fn.js":120,"global/document":1,"global/window":2}],81:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../menu/menu-item.js":101,"../../utils/fn.js":125,"global/document":1,"global/window":2}],86:[function(_dereq_,module,exports){ /** * @file current-time-display.js */ @@ -6493,7 +6610,7 @@ var CurrentTimeDisplay = (function (_Com exports['default'] = CurrentTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[function(_dereq_,module,exports){ /** * @file duration-display.js */ @@ -6594,7 +6711,7 @@ var DurationDisplay = (function (_Compon exports['default'] = DurationDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[function(_dereq_,module,exports){ /** * @file remaining-time-display.js */ @@ -6692,7 +6809,7 @@ var RemainingTimeDisplay = (function (_C exports['default'] = RemainingTimeDisplay; module.exports = exports['default']; -},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],84:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],89:[function(_dereq_,module,exports){ /** * @file time-divider.js */ @@ -6750,7 +6867,7 @@ var TimeDivider = (function (_Component) exports['default'] = TimeDivider; module.exports = exports['default']; -},{"../../component.js":58}],85:[function(_dereq_,module,exports){ +},{"../../component.js":63}],90:[function(_dereq_,module,exports){ /** * @file volume-bar.js */ @@ -6895,7 +7012,7 @@ VolumeBar.prototype.playerEvent = 'volum exports['default'] = VolumeBar; module.exports = exports['default']; -},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[function(_dereq_,module,exports){ +},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],91:[function(_dereq_,module,exports){ /** * @file volume-control.js */ @@ -6973,7 +7090,7 @@ VolumeControl.prototype.options_ = { exports['default'] = VolumeControl; module.exports = exports['default']; -},{"../../component.js":58,"./volume-bar.js":85}],87:[function(_dereq_,module,exports){ +},{"../../component.js":63,"./volume-bar.js":90}],92:[function(_dereq_,module,exports){ /** * @file volume-level.js */ @@ -7030,7 +7147,7 @@ var VolumeLevel = (function (_Component) exports['default'] = VolumeLevel; module.exports = exports['default']; -},{"../../component.js":58}],88:[function(_dereq_,module,exports){ +},{"../../component.js":63}],93:[function(_dereq_,module,exports){ /** * @file volume-menu-button.js */ @@ -7192,7 +7309,7 @@ VolumeMenuButton.prototype.controlText_ exports['default'] = VolumeMenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[function(_dereq_,module,exports){ /** * @file error-display.js */ @@ -7274,7 +7391,7 @@ var ErrorDisplay = (function (_Component exports['default'] = ErrorDisplay; module.exports = exports['default']; -},{"./component":58,"./utils/dom.js":118}],90:[function(_dereq_,module,exports){ +},{"./component":63,"./utils/dom.js":123}],95:[function(_dereq_,module,exports){ /** * @file event-target.js */ @@ -7333,7 +7450,7 @@ EventTarget.prototype.dispatchEvent = Ev exports['default'] = EventTarget; module.exports = exports['default']; -},{"./utils/events.js":119}],91:[function(_dereq_,module,exports){ +},{"./utils/events.js":124}],96:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -7424,7 +7541,7 @@ var extendFn = function extendFn(superCl exports['default'] = extendFn; module.exports = exports['default']; -},{"./utils/log":123}],92:[function(_dereq_,module,exports){ +},{"./utils/log":128}],97:[function(_dereq_,module,exports){ /** * @file fullscreen-api.js */ @@ -7481,7 +7598,7 @@ if (browserApi) { exports['default'] = FullscreenApi; module.exports = exports['default']; -},{"global/document":1}],93:[function(_dereq_,module,exports){ +},{"global/document":1}],98:[function(_dereq_,module,exports){ /** * @file loading-spinner.js */ @@ -7536,7 +7653,7 @@ var LoadingSpinner = (function (_Compone exports['default'] = LoadingSpinner; module.exports = exports['default']; -},{"./component":58}],94:[function(_dereq_,module,exports){ +},{"./component":63}],99:[function(_dereq_,module,exports){ /** * @file media-error.js */ @@ -7627,7 +7744,7 @@ for (var errNum = 0; errNum < MediaError exports['default'] = MediaError; module.exports = exports['default']; -},{"object.assign":43}],95:[function(_dereq_,module,exports){ +},{"object.assign":45}],100:[function(_dereq_,module,exports){ /** * @file menu-button.js */ @@ -7901,7 +8018,7 @@ var MenuButton = (function (_Button) { exports['default'] = MenuButton; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[function(_dereq_,module,exports){ /** * @file menu-item.js */ @@ -7996,7 +8113,7 @@ var MenuItem = (function (_Button) { exports['default'] = MenuItem; module.exports = exports['default']; -},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[function(_dereq_,module,exports){ +},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[function(_dereq_,module,exports){ /** * @file menu.js */ @@ -8094,7 +8211,7 @@ var Menu = (function (_Component) { exports['default'] = Menu; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[function(_dereq_,module,exports){ /** * @file player.js */ @@ -10947,7 +11064,7 @@ exports['default'] = Player; module.exports = exports['default']; // If empty string, make it a parsable json object. -},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(_dereq_,module,exports){ +},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(_dereq_,module,exports){ /** * @file plugins.js */ @@ -10975,7 +11092,7 @@ var plugin = function plugin(name, init) exports['default'] = plugin; module.exports = exports['default']; -},{"./player.js":98}],100:[function(_dereq_,module,exports){ +},{"./player.js":103}],105:[function(_dereq_,module,exports){ /** * @file poster-image.js */ @@ -11135,7 +11252,7 @@ var PosterImage = (function (_Button) { exports['default'] = PosterImage; module.exports = exports['default']; -},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[function(_dereq_,module,exports){ +},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[function(_dereq_,module,exports){ /** * @file setup.js * @@ -11245,7 +11362,7 @@ exports.autoSetup = autoSetup; exports.autoSetupTimeout = autoSetupTimeout; exports.hasLoaded = hasLoaded; -},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[function(_dereq_,module,exports){ +},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[function(_dereq_,module,exports){ /** * @file slider.js */ @@ -11524,7 +11641,7 @@ var Slider = (function (_Component) { exports['default'] = Slider; module.exports = exports['default']; -},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[function(_dereq_,module,exports){ +},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[function(_dereq_,module,exports){ /** * @file flash-rtmp.js */ @@ -11624,7 +11741,7 @@ function FlashRtmpDecorator(Flash) { exports['default'] = FlashRtmpDecorator; module.exports = exports['default']; -},{}],104:[function(_dereq_,module,exports){ +},{}],109:[function(_dereq_,module,exports){ /** * @file flash.js * VideoJS-SWF - Custom Flash Player with HTML5-ish API @@ -12229,7 +12346,7 @@ Flash.getEmbedCode = function (swf, flas exports['default'] = Flash; module.exports = exports['default']; -},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[function(_dereq_,module,exports){ /** * @file html5.js * HTML5 Media Controller - Wrapper for HTML5 Media API @@ -13468,7 +13585,7 @@ Html5.disposeMediaElement = function (el exports['default'] = Html5; module.exports = exports['default']; -},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[function(_dereq_,module,exports){ /** * @file loader.js */ @@ -13543,7 +13660,7 @@ var MediaLoader = (function (_Component) exports['default'] = MediaLoader; module.exports = exports['default']; -},{"../component":58,"../utils/to-title-case.js":127,"global/window":2}],107:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/to-title-case.js":132,"global/window":2}],112:[function(_dereq_,module,exports){ /** * @file tech.js * Media Technology Controller - Base class for media playback @@ -13648,7 +13765,7 @@ var Tech = (function (_Component) { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners(); @@ -14222,7 +14339,7 @@ Tech.withSourceHandlers = function (_Tec exports['default'] = Tech; module.exports = exports['default']; -},{"../component":58,"../media-error.js":94,"../tracks/text-track":114,"../tracks/text-track-list":112,"../utils/buffer.js":116,"../utils/fn.js":120,"../utils/log.js":123,"../utils/time-ranges.js":126,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){ +},{"../component":63,"../media-error.js":99,"../tracks/text-track":119,"../tracks/text-track-list":117,"../utils/buffer.js":121,"../utils/fn.js":125,"../utils/log.js":128,"../utils/time-ranges.js":131,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){ /** * @file text-track-cue-list.js */ @@ -14319,7 +14436,7 @@ TextTrackCueList.prototype.getCueById = exports['default'] = TextTrackCueList; module.exports = exports['default']; -},{"../utils/browser.js":115,"global/document":1}],109:[function(_dereq_,module,exports){ +},{"../utils/browser.js":120,"global/document":1}],114:[function(_dereq_,module,exports){ /** * @file text-track-display.js */ @@ -14590,7 +14707,7 @@ function tryUpdateStyle(el, style, rule) exports['default'] = TextTrackDisplay; module.exports = exports['default']; -},{"../component":58,"../menu/menu-button.js":95,"../menu/menu-item.js":96,"../menu/menu.js":97,"../utils/fn.js":120,"global/document":1,"global/window":2}],110:[function(_dereq_,module,exports){ +},{"../component":63,"../menu/menu-button.js":100,"../menu/menu-item.js":101,"../menu/menu.js":102,"../utils/fn.js":125,"global/document":1,"global/window":2}],115:[function(_dereq_,module,exports){ /** * @file text-track-enums.js * @@ -14623,7 +14740,7 @@ var TextTrackKind = { exports.TextTrackMode = TextTrackMode; exports.TextTrackKind = TextTrackKind; -},{}],111:[function(_dereq_,module,exports){ +},{}],116:[function(_dereq_,module,exports){ /** * Utilities for capturing text track state and re-creating tracks * based on a capture. @@ -14710,7 +14827,7 @@ var jsonToTextTracks = function jsonToTe exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ }; module.exports = exports['default']; -},{}],112:[function(_dereq_,module,exports){ +},{}],117:[function(_dereq_,module,exports){ /** * @file text-track-list.js */ @@ -14855,7 +14972,7 @@ TextTrackList.prototype.getTrackById = f exports['default'] = TextTrackList; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],113:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[function(_dereq_,module,exports){ /** * @file text-track-settings.js */ @@ -15147,7 +15264,7 @@ function captionOptionsMenuTemplate() { exports['default'] = TextTrackSettings; module.exports = exports['default']; -},{"../component":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[function(_dereq_,module,exports){ +},{"../component":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[function(_dereq_,module,exports){ /** * @file text-track.js */ @@ -15500,7 +15617,7 @@ var indexOf = function indexOf(searchEle exports['default'] = TextTrack; module.exports = exports['default']; -},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,"xhr":50}],115:[function(_dereq_,module,exports){ +},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,"xhr":55}],120:[function(_dereq_,module,exports){ /** * @file browser.js */ @@ -15589,7 +15706,7 @@ exports.TOUCH_ENABLED = TOUCH_ENABLED; var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style); exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED; -},{"global/document":1,"global/window":2}],116:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],121:[function(_dereq_,module,exports){ /** * @file buffer.js */ @@ -15638,7 +15755,7 @@ function bufferedPercent(buffered, durat return bufferedDuration / duration; } -},{"./time-ranges.js":126}],117:[function(_dereq_,module,exports){ +},{"./time-ranges.js":131}],122:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -15709,7 +15826,7 @@ exports['default'] = function (target) { module.exports = exports['default']; -},{"./log.js":123}],118:[function(_dereq_,module,exports){ +},{"./log.js":128}],123:[function(_dereq_,module,exports){ /** * @file dom.js */ @@ -16142,7 +16259,7 @@ function getPointerPosition(el, event) { return position; } -},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,"tsml":49}],119:[function(_dereq_,module,exports){ +},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,"tsml":54}],124:[function(_dereq_,module,exports){ /** * @file events.js * @@ -16550,7 +16667,7 @@ function _handleMultipleEvents(fn, elem, }); } -},{"./dom.js":118,"./guid.js":122,"global/document":1,"global/window":2}],120:[function(_dereq_,module,exports){ +},{"./dom.js":123,"./guid.js":127,"global/document":1,"global/window":2}],125:[function(_dereq_,module,exports){ /** * @file fn.js */ @@ -16594,7 +16711,7 @@ var bind = function bind(context, fn, ui }; exports.bind = bind; -},{"./guid.js":122}],121:[function(_dereq_,module,exports){ +},{"./guid.js":127}],126:[function(_dereq_,module,exports){ /** * @file format-time.js * @@ -16644,7 +16761,7 @@ function formatTime(seconds) { exports['default'] = formatTime; module.exports = exports['default']; -},{}],122:[function(_dereq_,module,exports){ +},{}],127:[function(_dereq_,module,exports){ /** * @file guid.js * @@ -16669,7 +16786,7 @@ function newGUID() { return _guid++; } -},{}],123:[function(_dereq_,module,exports){ +},{}],128:[function(_dereq_,module,exports){ /** * @file log.js */ @@ -16759,7 +16876,7 @@ function _logType(type, args) { exports['default'] = log; module.exports = exports['default']; -},{"global/window":2}],124:[function(_dereq_,module,exports){ +},{"global/window":2}],129:[function(_dereq_,module,exports){ /** * @file merge-options.js */ @@ -16830,7 +16947,7 @@ function mergeOptions() { module.exports = exports['default']; -},{"lodash-compat/object/merge":40}],125:[function(_dereq_,module,exports){ +},{"lodash-compat/object/merge":40}],130:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16858,7 +16975,7 @@ var setTextContent = function setTextCon }; exports.setTextContent = setTextContent; -},{"global/document":1}],126:[function(_dereq_,module,exports){ +},{"global/document":1}],131:[function(_dereq_,module,exports){ 'use strict'; exports.__esModule = true; @@ -16929,7 +17046,7 @@ function rangeCheck(fnName, index, maxIn } } -},{"./log.js":123}],127:[function(_dereq_,module,exports){ +},{"./log.js":128}],132:[function(_dereq_,module,exports){ /** * @file to-title-case.js * @@ -16950,7 +17067,7 @@ function toTitleCase(string) { exports["default"] = toTitleCase; module.exports = exports["default"]; -},{}],128:[function(_dereq_,module,exports){ +},{}],133:[function(_dereq_,module,exports){ /** * @file url.js */ @@ -17086,7 +17203,7 @@ var isCrossOrigin = function isCrossOrig }; exports.isCrossOrigin = isCrossOrigin; -},{"global/document":1,"global/window":2}],129:[function(_dereq_,module,exports){ +},{"global/document":1,"global/window":2}],134:[function(_dereq_,module,exports){ /** * @file video.js */ @@ -17281,7 +17398,7 @@ setup.autoSetupTimeout(1, videojs); * * @type {String} */ -videojs.VERSION = '5.0.0'; +videojs.VERSION = '5.0.2'; /** * The global options object. These are the settings that take effect @@ -17697,7 +17814,7 @@ if (typeof define === 'function' && defi exports['default'] = videojs; module.exports = exports['default']; -},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,"xhr":50}]},{},[129])(129) +},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,"xhr":55}]},{},[134])(134) }); diff --git a/ennstatus/static/js/video.js/dist/video.js.map b/ennstatus/static/js/video.js/dist/video.js.map --- a/ennstatus/static/js/video.js/dist/video.js.map +++ b/ennstatus/static/js/video.js/dist/video.js.map @@ -44,11 +44,16 @@ "node_modules/lodash-compat/object/merge.js", "node_modules/lodash-compat/support.js", "node_modules/lodash-compat/utility/identity.js", + "node_modules/object.assign/hasSymbols.js", + "node_modules/object.assign/implementation.js", "node_modules/object.assign/index.js", "node_modules/object.assign/node_modules/define-properties/index.js", "node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js", + "node_modules/object.assign/node_modules/function-bind/index.js", "node_modules/object.assign/node_modules/object-keys/index.js", "node_modules/object.assign/node_modules/object-keys/isArguments.js", + "node_modules/object.assign/polyfill.js", + "node_modules/object.assign/shim.js", "node_modules/safe-json-parse/tuple.js", "node_modules/tsml/tsml.js", "node_modules/xhr/index.js", @@ -133,7 +138,7 @@ "src/js/video.js" ], "names": [], - "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;wBC3BmB,aAAa;;;;2BACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;YAAb,aAAa;;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;GACxB;;;;;;;;;AAJG,eAAa,WAYjB,aAAa,GAAA,yBAAG;AACd,WAAO,qBAAqB,CAAC;GAC9B;;;;;;;;AAdG,eAAa,WAqBjB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACrB;;SAvBG,aAAa;;;AA2BnB,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEpD,yBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;;;yBC1CN,aAAa;;;;0BACd,gBAAgB;;IAAzB,GAAG;;6BACS,mBAAmB;;IAA/B,MAAM;;yBACE,eAAe;;IAAvB,EAAE;;8BACO,iBAAiB;;;;4BACnB,eAAe;;;;;;;;;;;;;IAU5B,MAAM;YAAN,MAAM;;AAEC,WAFP,MAAM,CAEE,MAAM,EAAE,OAAO,EAAE;0BAFzB,MAAM;;AAGR,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,QAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAClC;;;;;;;;;;;AAXG,QAAM,WAqBV,QAAQ,GAAA,oBAAwC;QAAvC,GAAG,yDAAC,QAAQ;QAAE,KAAK,yDAAC,EAAE;QAAE,UAAU,yDAAC,EAAE;;AAC5C,SAAK,GAAG,0BAAO;AACb,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;AAC/B,cAAQ,EAAE,CAAC;KACZ,EAAE,KAAK,CAAC,CAAC;;;AAGV,cAAU,GAAG,0BAAO;AAClB,UAAI,EAAE,QAAQ;AACd,UAAI,EAAE,QAAQ;AACd,iBAAW,EAAE,QAAQ;KACtB,EAAE,UAAU,CAAC,CAAC;;AAEf,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,GAAG,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;;AAEhD,QAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;AACzC,eAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;AAEpC,QAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEpC,WAAO,EAAE,CAAC;GACX;;;;;;;;;;AA7CG,QAAM,WAsDV,WAAW,GAAA,qBAAC,IAAI,EAAE;AAChB,QAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC;;AAEnD,QAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEjE,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA7DG,QAAM,WAqEV,aAAa,GAAA,yBAAG;AACd,uCAAiC,qBAAM,aAAa,KAAA,MAAE,CAAG;GAC1D;;;;;;;;AAvEG,QAAM,WA8EV,WAAW,GAAA,uBAAG,EAAE;;;;;;;;AA9EZ,QAAM,WAqFV,WAAW,GAAA,uBAAG;AACZ,UAAM,CAAC,EAAE,8BAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GACpE;;;;;;;;AAvFG,QAAM,WA8FV,cAAc,GAAA,wBAAC,KAAK,EAAE;;AAEpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5C,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACzB;GACF;;;;;;;;AApGG,QAAM,WA2GV,UAAU,GAAA,sBAAG;AACX,UAAM,CAAC,GAAG,8BAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GACrE;;SA7GG,MAAM;;;AAkHZ,uBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;;;;;;;;;;;4BC/HF,eAAe;;;;0BACb,gBAAgB;;IAAzB,GAAG;;yBACK,eAAe;;IAAvB,EAAE;;2BACQ,iBAAiB;;IAA3B,IAAI;;6BACQ,mBAAmB;;IAA/B,MAAM;;0BACF,gBAAgB;;;;kCACR,0BAA0B;;;;4BAC/B,eAAe;;;;mCACT,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+B7C,SAAS;AAEF,WAFP,SAAS,CAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;0BAFhC,SAAS;;;AAKX,QAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACxB,UAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;KAC9B,MAAM;AACL,YAAI,CAAC,OAAO,GAAG,MAAM,CAAC;OACvB;;;AAGD,QAAI,CAAC,QAAQ,GAAG,iCAAa,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAGhD,WAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,iCAAa,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;;;AAG/D,QAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,IAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,AAAC,CAAC;;;AAGvD,QAAI,CAAC,IAAI,CAAC,GAAG,EAAE;;AAEb,UAAI,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,WAAW,CAAC;;AAE3D,UAAI,CAAC,GAAG,GAAM,EAAE,mBAAc,IAAI,CAAC,OAAO,EAAE,AAAE,CAAC;KAChD;;AAED,QAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;;;AAGlC,QAAI,OAAO,CAAC,EAAE,EAAE;AACd,UAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;KACvB,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC5B;;AAED,QAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAI,CAAC,eAAe,GAAG,EAAE,CAAC;;;AAG1B,QAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;AAClC,UAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;AAED,QAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;;;AAIlB,QAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE;AACzC,UAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;GACF;;;;;;;;AArDG,WAAS,WA4Db,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;;;AAGlD,QAAI,IAAI,CAAC,SAAS,EAAE;AAClB,WAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC7B,cAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC7B;OACF;KACF;;;AAGD,QAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAI,CAAC,eAAe,GAAG,IAAI,CAAC;;;AAG5B,QAAI,CAAC,GAAG,EAAE,CAAC;;;AAGX,QAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;AACvB,UAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3C;;AAED,OAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC;GACjB;;;;;;;;;AAvFG,WAAS,WA+Fb,MAAM,GAAA,kBAAG;AACP,WAAO,IAAI,CAAC,OAAO,CAAC;GACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjGG,WAAS,WA0Ib,OAAO,GAAA,iBAAC,GAAG,EAAE;AACX,4BAAI,IAAI,CAAC,gFAAgF,CAAC,CAAC;;AAE3F,QAAI,CAAC,GAAG,EAAE;AACR,aAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;AAED,QAAI,CAAC,QAAQ,GAAG,iCAAa,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,WAAO,IAAI,CAAC,QAAQ,CAAC;GACtB;;;;;;;;;;;;AAnJG,WAAS,WA8Jb,EAAE,GAAA,cAAG;AACH,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;;;;;AAhKG,WAAS,WA2Kb,QAAQ,GAAA,kBAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE;AACxC,WAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;GACtD;;AA7KG,WAAS,WA+Kb,QAAQ,GAAA,kBAAC,MAAM,EAAE;AACf,QAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5D,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;;AAEnE,QAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AACvB,aAAO,MAAM,CAAC;KACf;;AAED,QAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;;AAE/B,QAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,aAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzB;;AAED,QAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAI,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;;AAEzC,QAAI,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AACtC,aAAO,WAAW,CAAC,MAAM,CAAC,CAAC;KAC5B;;AAED,WAAO,MAAM,CAAC;GACf;;;;;;;;;;AArMG,WAAS,WA8Mb,SAAS,GAAA,qBAAG;AACV,WAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC;GACpC;;;;;;;;;;;;AAhNG,WAAS,WA2Nb,EAAE,GAAA,cAAG;AACH,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;;;;;AA7NG,WAAS,WAwOb,IAAI,GAAA,gBAAG;AACL,WAAO,IAAI,CAAC,KAAK,CAAC;GACnB;;;;;;;;;;;;AA1OG,WAAS,WAqPb,QAAQ,GAAA,oBAAG;AACT,WAAO,IAAI,CAAC,SAAS,CAAC;GACvB;;;;;;;;;AAvPG,WAAS,WA+Pb,YAAY,GAAA,sBAAC,EAAE,EAAE;AACf,WAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;GAC7B;;;;;;;;;AAjQG,WAAS,WAyQb,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,WAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;GACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA3QG,WAAS,WAwSb,QAAQ,GAAA,kBAAC,KAAK,EAAc;QAAZ,OAAO,yDAAC,EAAE;;AACxB,QAAI,SAAS,YAAA,CAAC;AACd,QAAI,aAAa,YAAA,CAAC;;;AAGlB,QAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,mBAAa,GAAG,KAAK,CAAC;;;AAGtB,UAAI,CAAC,OAAO,EAAE;AACZ,eAAO,GAAG,EAAE,CAAC;OACd;;;AAGD,UAAI,OAAO,KAAK,IAAI,EAAE;AACpB,gCAAI,IAAI,CAAC,mKAAmK,CAAC,CAAC;AAC9K,eAAO,GAAG,EAAE,CAAC;OACd;;;;AAID,UAAI,kBAAkB,GAAG,OAAO,CAAC,cAAc,IAAI,gCAAY,aAAa,CAAC,CAAC;;;AAG9E,aAAO,CAAC,IAAI,GAAG,aAAa,CAAC;;;;AAI7B,UAAI,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;;AAEhE,eAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;;;KAG/D,MAAM;AACL,iBAAS,GAAG,KAAK,CAAC;OACnB;;AAED,QAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAE/B,QAAI,OAAO,SAAS,CAAC,EAAE,KAAK,UAAU,EAAE;AACtC,UAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;KAC9C;;;;AAID,iBAAa,GAAG,aAAa,IAAK,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,AAAC,CAAC;;AAEtE,QAAI,aAAa,EAAE;AACjB,UAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjD;;;;AAID,QAAI,OAAO,SAAS,CAAC,EAAE,KAAK,UAAU,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE;AACxD,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9C;;;AAGD,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;AAnWG,WAAS,WA4Wb,WAAW,GAAA,qBAAC,SAAS,EAAE;AACrB,QAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,eAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACtC;;AAED,QAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,aAAO;KACR;;AAED,QAAI,UAAU,GAAG,KAAK,CAAC;;AAEvB,SAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,UAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACnC,kBAAU,GAAG,IAAI,CAAC;AAClB,YAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,cAAM;OACP;KACF;;AAED,QAAI,CAAC,UAAU,EAAE;AACf,aAAO;KACR;;AAED,QAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACxC,QAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;;AAE9C,QAAI,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;;AAE5B,QAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE;AACpD,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9C;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA3YG,WAAS,WA2bb,YAAY,GAAA,wBAAG;;;AACb,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;;AAEtC,QAAI,QAAQ,EAAE;;;AAEZ,YAAI,aAAa,GAAG,MAAK,QAAQ,CAAC;;AAElC,YAAI,SAAS,GAAG,SAAZ,SAAS,CAAI,IAAI,EAAE,IAAI,EAAK;;;;AAI9B,cAAI,aAAa,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACrC,gBAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;WAC5B;;;;AAID,cAAI,IAAI,KAAK,KAAK,EAAE;AAClB,mBAAO;WACR;;;;AAID,cAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAI,GAAG,EAAE,CAAC;WACX;;;;AAID,cAAI,CAAC,aAAa,GAAG,MAAK,QAAQ,CAAC,aAAa,CAAC;;;;;;AAMjD,gBAAK,IAAI,CAAC,GAAG,MAAK,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxC,CAAC;;;AAGF,YAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,eAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAI,KAAI,YAAA,CAAC;AACT,gBAAI,IAAI,YAAA,CAAC;;AAET,gBAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,mBAAI,GAAG,KAAK,CAAC;AACb,kBAAI,GAAG,EAAE,CAAC;aACX,MAAM;;AAEL,mBAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAClB,kBAAI,GAAG,KAAK,CAAC;aACd;;AAED,qBAAS,CAAC,KAAI,EAAE,IAAI,CAAC,CAAC;WACvB;SACF,MAAM;AACL,gBAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;AACzD,qBAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;WACjC,CAAC,CAAC;SACJ;;KACF;GACF;;;;;;;;;AA1fG,WAAS,WAkgBb,aAAa,GAAA,yBAAG;;;AAGd,WAAO,EAAE,CAAC;GACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAtgBG,WAAS,WAuiBb,EAAE,GAAA,YAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;;;AACvB,QAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,YAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;;;KAGnD,MAAM;;AACL,cAAM,MAAM,GAAG,KAAK,CAAC;AACrB,cAAM,IAAI,GAAG,MAAM,CAAC;AACpB,cAAM,EAAE,GAAG,EAAE,CAAC,IAAI,SAAO,KAAK,CAAC,CAAC;;;AAGhC,cAAM,eAAe,GAAG,SAAlB,eAAe;mBAAS,OAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;WAAA,CAAC;;;;AAIzD,yBAAe,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;AAC/B,iBAAK,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;;;;AAKpC,cAAM,YAAY,GAAG,SAAf,YAAY;mBAAS,OAAK,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC;WAAA,CAAC;;;AAGhE,sBAAY,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;;AAG5B,cAAI,KAAK,CAAC,QAAQ,EAAE;;AAElB,kBAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,kBAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;;;;WAI5C,MAAM,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,UAAU,EAAE;;AAEzC,oBAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpB,oBAAM,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;aACpC;;OACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;;;;;;;;AAjlBG,WAAS,WAwmBb,GAAG,GAAA,aAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACxB,QAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/D,YAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KACrC,MAAM;AACL,UAAM,MAAM,GAAG,KAAK,CAAC;AACrB,UAAM,IAAI,GAAG,MAAM,CAAC;;AAEpB,UAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;;AAIhC,UAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;;AAExB,UAAI,KAAK,CAAC,QAAQ,EAAE;;AAElB,cAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;;AAE7B,cAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;OACnC,MAAM;AACL,cAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrB,cAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;OAC3B;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;;;;;AAjoBG,WAAS,WAqpBb,GAAG,GAAA,aAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;;;;AACxB,QAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,YAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACpD,MAAM;;AACL,YAAM,MAAM,GAAG,KAAK,CAAC;AACrB,YAAM,IAAI,GAAG,MAAM,CAAC;AACpB,YAAM,EAAE,GAAG,EAAE,CAAC,IAAI,SAAO,KAAK,CAAC,CAAC;;AAEhC,YAAM,OAAO,GAAG,SAAV,OAAO,GAAS;AACpB,iBAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,YAAE,CAAC,KAAK,CAAC,IAAI,aAAY,CAAC;SAC3B,CAAC;;;AAGF,eAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEvB,eAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;;KAChC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;AAzqBG,WAAS,WAyrBb,OAAO,GAAA,iBAAC,KAAK,EAAE,IAAI,EAAE;AACnB,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;AA5rBG,WAAS,WAwsBb,KAAK,GAAA,eAAC,EAAE,EAAc;QAAZ,IAAI,yDAAC,KAAK;;AAClB,QAAI,EAAE,EAAE;AACN,UAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAI,IAAI,EAAE;AACR,YAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACf,MAAM;;AAEL,cAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACxB;OACF,MAAM;AACL,YAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AAC1C,YAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;OAC3B;KACF;AACD,WAAO,IAAI,CAAC;GACb;;;;;;;;;AAvtBG,WAAS,WA+tBb,YAAY,GAAA,wBAAG;AACb,QAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;;AAGrB,QAAI,CAAC,UAAU,CAAC,YAAU;AACxB,UAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;;;AAGlC,UAAI,CAAC,WAAW,GAAG,EAAE,CAAC;;AAEtB,UAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,kBAAU,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC;AAC7B,YAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACf,EAAE,IAAI,CAAC,CAAC;OACV;;;AAGD,UAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,EAAE,CAAC,CAAC,CAAC;GACP;;;;;;;;;;AAlvBG,WAAS,WA2vBb,QAAQ,GAAA,kBAAC,YAAY,EAAE;AACrB,WAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;GAC/C;;;;;;;;;;AA7vBG,WAAS,WAswBb,QAAQ,GAAA,kBAAC,UAAU,EAAE;AACnB,OAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACrC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AAzwBG,WAAS,WAkxBb,WAAW,GAAA,qBAAC,aAAa,EAAE;AACzB,OAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC3C,WAAO,IAAI,CAAC;GACb;;;;;;;;;AArxBG,WAAS,WA6xBb,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,WAAO,IAAI,CAAC;GACb;;;;;;;;;AAhyBG,WAAS,WAwyBb,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AA3yBG,WAAS,WAqzBb,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAClC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAxzBG,WAAS,WAk0Bb,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACrC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;AAr0BG,WAAS,WAo1Bb,KAAK,GAAA,eAAC,GAAG,EAAE,aAAa,EAAE;AACxB,WAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;GACpD;;;;;;;;;;;;;;;;AAt1BG,WAAS,WAq2Bb,MAAM,GAAA,gBAAC,GAAG,EAAE,aAAa,EAAE;AACzB,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;GACrD;;;;;;;;;;;AAv2BG,WAAS,WAi3Bb,UAAU,GAAA,oBAAC,KAAK,EAAE,MAAM,EAAE;;AAExB,WAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;GAC/C;;;;;;;;;;;;;;;;;;;;AAp3BG,WAAS,WAu4Bb,SAAS,GAAA,mBAAC,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE;AAC3C,QAAI,GAAG,KAAK,SAAS,EAAE;;AAErB,UAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE;AAC/B,WAAG,GAAG,CAAC,CAAC;OACT;;;AAGD,UAAI,CAAC,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACrE,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;OACrC,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;AACzB,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;OACpC,MAAM;AACL,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;OAC5C;;;AAGD,UAAI,CAAC,aAAa,EAAE;AAClB,YAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;OACxB;;;AAGD,aAAO,IAAI,CAAC;KACb;;;;AAID,QAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,aAAO,CAAC,CAAC;KACV;;;AAGD,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACxC,QAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAEhC,QAAI,OAAO,KAAK,CAAC,CAAC,EAAE;;AAElB,aAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;KAC5C;;;;;AAKD,WAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,gCAAY,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;GACtE;;;;;;;;;;;;;AAn7BG,WAAS,WA+7Bb,aAAa,GAAA,yBAAG;;AAEd,QAAI,UAAU,GAAG,CAAC,CAAC;AACnB,QAAI,UAAU,GAAG,IAAI,CAAC;;;;AAItB,QAAM,oBAAoB,GAAG,EAAE,CAAC;;;AAGhC,QAAM,kBAAkB,GAAG,GAAG,CAAC;;AAE/B,QAAI,UAAU,YAAA,CAAC;;AAEf,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAS,KAAK,EAAE;;AAEpC,UAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE9B,kBAAU,GAAG,0BAAO,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE1C,kBAAU,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;;AAElC,kBAAU,GAAG,IAAI,CAAC;OACnB;KACF,CAAC,CAAC;;AAEH,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,UAAS,KAAK,EAAE;;AAEnC,UAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,kBAAU,GAAG,KAAK,CAAC;OACpB,MAAM,IAAI,UAAU,EAAE;;;AAGrB,YAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AACxD,YAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AACxD,YAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAI,KAAK,GAAG,KAAK,GAAI,KAAK,CAAC,CAAC;;AAEjE,YAAI,aAAa,GAAG,oBAAoB,EAAE;AACxC,oBAAU,GAAG,KAAK,CAAC;SACpB;OACF;KACF,CAAC,CAAC;;AAEH,QAAM,KAAK,GAAG,SAAR,KAAK,GAAc;AACvB,gBAAU,GAAG,KAAK,CAAC;KACpB,CAAC;;;AAGF,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC7B,QAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;;;;AAI9B,QAAI,CAAC,EAAE,CAAC,UAAU,EAAE,UAAS,KAAK,EAAE;AAClC,gBAAU,GAAG,IAAI,CAAC;;AAElB,UAAI,UAAU,KAAK,IAAI,EAAE;;AAEvB,YAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC;;;AAGpD,YAAI,SAAS,GAAG,kBAAkB,EAAE;;AAElC,eAAK,CAAC,cAAc,EAAE,CAAC;AACvB,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;;;SAIrB;OACF;KACF,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;;;;;;;;;;AAtgCG,WAAS,WA6hCb,mBAAmB,GAAA,+BAAG;;AAEpB,QAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE;AACvD,aAAO;KACR;;;AAGD,QAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,CAAC;;AAExE,QAAI,YAAY,YAAA,CAAC;;AAEjB,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,YAAW;AAC/B,YAAM,EAAE,CAAC;;;;AAIT,UAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;;AAEjC,kBAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9C,CAAC,CAAC;;AAEH,QAAM,QAAQ,GAAG,SAAX,QAAQ,CAAY,KAAK,EAAE;AAC/B,YAAM,EAAE,CAAC;;AAET,UAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;KAClC,CAAC;;AAEF,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7B,QAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9B,QAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;GAClC;;;;;;;;;;;AA3jCG,WAAS,WAqkCb,UAAU,GAAA,oBAAC,EAAE,EAAE,OAAO,EAAE;AACtB,MAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;;AAGvB,QAAI,SAAS,GAAG,0BAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;;AAE/C,QAAM,SAAS,GAAG,SAAZ,SAAS,GAAc;AAC3B,UAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;;AAEF,aAAS,CAAC,IAAI,oBAAkB,SAAS,AAAE,CAAC;;AAE5C,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE9B,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;AAplCG,WAAS,WA6lCb,YAAY,GAAA,sBAAC,SAAS,EAAE;AACtB,8BAAO,YAAY,CAAC,SAAS,CAAC,CAAC;;AAE/B,QAAM,SAAS,GAAG,SAAZ,SAAS,GAAc,EAAE,CAAC;;AAEhC,aAAS,CAAC,IAAI,oBAAkB,SAAS,AAAE,CAAC;;AAE5C,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE/B,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;;AAvmCG,WAAS,WAinCb,WAAW,GAAA,qBAAC,EAAE,EAAE,QAAQ,EAAE;AACxB,MAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;AAEvB,QAAI,UAAU,GAAG,0BAAO,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;;AAElD,QAAM,SAAS,GAAG,SAAZ,SAAS,GAAc;AAC3B,UAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;;AAEF,aAAS,CAAC,IAAI,qBAAmB,UAAU,AAAE,CAAC;;AAE9C,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE9B,WAAO,UAAU,CAAC;GACnB;;;;;;;;;;AA/nCG,WAAS,WAwoCb,aAAa,GAAA,uBAAC,UAAU,EAAE;AACxB,8BAAO,aAAa,CAAC,UAAU,CAAC,CAAC;;AAEjC,QAAM,SAAS,GAAG,SAAZ,SAAS,GAAc,EAAE,CAAC;;AAEhC,aAAS,CAAC,IAAI,qBAAmB,UAAU,AAAE,CAAC;;AAE9C,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE/B,WAAO,UAAU,CAAC;GACnB;;;;;;;;;;;AAlpCG,WAAS,CA4pCN,iBAAiB,GAAA,2BAAC,IAAI,EAAE,IAAI,EAAE;AACnC,QAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1B,eAAS,CAAC,WAAW,GAAG,EAAE,CAAC;KAC5B;;AAED,aAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACnC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAnqCG,WAAS,CA6qCN,YAAY,GAAA,sBAAC,IAAI,EAAE;AACxB,QAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACxD,aAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACpC;;AAED,QAAI,6BAAU,0BAAO,OAAO,IAAI,0BAAO,OAAO,CAAC,IAAI,CAAC,EAAE;AACpD,8BAAI,IAAI,UAAQ,IAAI,8HAA2H,CAAC;AAChJ,aAAO,0BAAO,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7B;GACF;;;;;;;;;;;;AAtrCG,WAAS,CAisCN,MAAM,GAAA,gBAAC,KAAK,EAAE;AACnB,SAAK,GAAG,KAAK,IAAI,EAAE,CAAC;;AAEpB,4BAAI,IAAI,CAAC,qFAAqF,CAAC,CAAC;;;;;AAKhG,QAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,YAAW,EAAE,CAAC;;;;;;;;;;AAUnG,QAAI,MAAM,GAAG,SAAT,MAAM,GAAc;AACtB,UAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7B,CAAC;;;AAGF,UAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;AAGjD,UAAM,CAAC,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;;;AAGtC,UAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;;;AAGjC,SAAK,IAAI,MAAI,IAAI,KAAK,EAAE;AACtB,UAAI,KAAK,CAAC,cAAc,CAAC,MAAI,CAAC,EAAE;AAC9B,cAAM,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,KAAK,CAAC,MAAI,CAAC,CAAC;OACtC;KACF;;AAED,WAAO,MAAM,CAAC;GACf;;SAxuCG,SAAS;;;AA2uCf,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBACrC,SAAS;;;;;;;;;;;;;;;;;2BCtxCF,iBAAiB;;;;;;4BAGhB,kBAAkB;;;;gDACV,yCAAyC;;;;6CAC5C,qCAAqC;;;;yCACzC,iCAAiC;;;;kDACxB,2CAA2C;;;;6BACpD,mBAAmB;;;;gDACf,wCAAwC;;;;kCACvC,wBAAwB;;;;4CAC3B,oCAAoC;;;;kCACjC,yBAAyB;;;;4BAC/B,kBAAkB;;;;iDACd,0CAA0C;;;;kDACzC,2CAA2C;;;;iDAC5C,0CAA0C;;;;wDAClC,mDAAmD;;;;mDACtD,4CAA4C;;;;;;;;;;;IAQtE,UAAU;YAAV,UAAU;;WAAV,UAAU;0BAAV,UAAU;;;;;;;;;;;;AAAV,YAAU,WAQd,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;GACJ;;SAZG,UAAU;;;AAehB,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC9B,WAAS,EAAE,MAAM;AACjB,UAAQ,EAAE,CACR,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,CACnB;CACF,CAAC;;AAEF,yBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;wBC9DN,cAAc;;;;2BACX,iBAAiB;;;;;;;;;;;IAQjC,gBAAgB;YAAhB,gBAAgB;;WAAhB,gBAAgB;0BAAhB,gBAAgB;;;;;;;;;;;;AAAhB,kBAAgB,WAQpB,aAAa,GAAA,yBAAG;AACd,uCAAiC,kBAAM,aAAa,KAAA,MAAE,CAAG;GAC1D;;;;;;;;AAVG,kBAAgB,WAiBpB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AAChC,UAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACjC,UAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KACpC,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC9B,UAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAChC;GACF;;SAzBG,gBAAgB;;;AA6BtB,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEvD,yBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;;;;;;yBCzCT,cAAc;;;;0BACf,iBAAiB;;IAA1B,GAAG;;;;;;;;;;IAST,WAAW;YAAX,WAAW;;AAEJ,WAFP,WAAW,CAEH,MAAM,EAAE,OAAO,EAAE;0BAFzB,WAAW;;AAGb,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GAC9D;;;;;;;;;AAPG,aAAW,WAef,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,8BAA8B;KAC1C,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,kBAAkB;AAC7B,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,AAAE;KAC3G,EAAE;AACD,iBAAW,EAAE,KAAK;KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;AA7BG,aAAW,WA+Bf,aAAa,GAAA,yBAAG;AACd,QAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,EAAE;AACzC,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;SArCG,WAAW;;;AAyCjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;;;sBCpDP,WAAW;;;;yBACR,cAAc;;;;0BACf,iBAAiB;;IAA1B,GAAG;;;;;;;;;;;IAUT,UAAU;YAAV,UAAU;;AAEH,WAFP,UAAU,CAEF,MAAM,EAAE,OAAO,EAAE;0BAFzB,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;;AAG7C,QAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;AACnE,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;;AAED,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAW;AACtC,UAAI,CAAC,MAAM,EAAE,CAAC;;AAEd,UAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;AACnD,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF,CAAC,CAAC;GACJ;;;;;;;;;AArBG,YAAU,WA6Bd,aAAa,GAAA,yBAAG;AACd,iCAA2B,kBAAM,aAAa,KAAA,MAAE,CAAG;GACpD;;;;;;;;AA/BG,YAAU,WAsCd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAAE,CAAC;GAC3D;;;;;;;;AAxCG,YAAU,WA+Cd,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3B,KAAK,GAAG,CAAC,CAAC;;AAEd,QAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACrC,WAAK,GAAG,CAAC,CAAC;KACX,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;AACrB,WAAK,GAAG,CAAC,CAAC;KACX,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;AACrB,WAAK,GAAG,CAAC,CAAC;KACX;;;;;AAKD,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC;AACtD,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAI,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,EAAE;AACxC,UAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KACjC;;;AAGD,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,SAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,eAAa,CAAC,CAAG,CAAC;KAC7C;AACD,OAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAa,KAAK,CAAG,CAAC;GAC9C;;SAzEG,UAAU;;;AA6EhB,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAE3C,uBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;wBC5FN,cAAc;;;;2BACX,iBAAiB;;;;;;;;;;;;;IAUjC,UAAU;YAAV,UAAU;;AAEH,WAFP,UAAU,CAEF,MAAM,EAAE,OAAO,EAAC;0BAFxB,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GAC5C;;;;;;;;;AAPG,YAAU,WAed,aAAa,GAAA,yBAAG;AACd,iCAA2B,kBAAM,aAAa,KAAA,MAAE,CAAG;GACpD;;;;;;;;AAjBG,YAAU,WAwBd,WAAW,GAAA,uBAAG;AACZ,QAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;;;;;;;;AA9BG,YAAU,WAqCd,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;GAC3B;;;;;;;;AAzCG,YAAU,WAgDd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,QAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;GAC1B;;SApDG,UAAU;;;AAwDhB,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAE3C,yBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;;;gCCtEF,2BAA2B;;;;0BACjC,oBAAoB;;;;sCACJ,8BAA8B;;;;2BACzC,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;;;;;;;;;;IAUT,sBAAsB;YAAtB,sBAAsB;;AAEf,WAFP,sBAAsB,CAEd,MAAM,EAAE,OAAO,EAAC;0BAFxB,sBAAsB;;AAGxB,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAI,CAAC,WAAW,EAAE,CAAC;;AAEnB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GACjD;;;;;;;;;AAVG,wBAAsB,WAkB1B,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,sBAAM,QAAQ,KAAA,MAAE,CAAC;;AAE1B,QAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AAClC,eAAS,EAAE,yBAAyB;AACpC,eAAS,EAAE,GAAG;KACf,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAE9B,WAAO,EAAE,CAAC;GACX;;;;;;;;;AA7BG,wBAAsB,WAqC1B,aAAa,GAAA,yBAAG;AACd,kCAA4B,sBAAM,aAAa,KAAA,MAAE,CAAG;GACrD;;;;;;;;;AAvCG,wBAAsB,WA+C1B,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,4BAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAI,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;;AAEjC,QAAI,KAAK,EAAE;AACT,WAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAI,CAAC,QAAQ,CACX,wCAAyB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAC,CAAC,CACnE,CAAC;OACH;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AA5DG,wBAAsB,WAmE1B,oBAAoB,GAAA,gCAAG;;AAErB,QAAI,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;GACvE;;;;;;;;AAtEG,wBAAsB,WA6E1B,WAAW,GAAA,uBAAG;;AAEZ,QAAI,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;AAC/C,QAAI,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;;;AAGjC,QAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAG,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE;AAC1B,eAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,cAAM;OACP;KACF;AACD,QAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;GACrC;;;;;;;;;AA3FG,wBAAsB,WAmG1B,aAAa,GAAA,yBAAG;AACd,WAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAC,AAAC,CAAC;GACxH;;;;;;;;;AArGG,wBAAsB,WA6G1B,qBAAqB,GAAA,iCAAG;AACtB,WAAO,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IACrB,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,sBAAsB,CAAC,IAC3C,IAAI,CAAC,aAAa,EAAE,IACpB,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CACnC;GACF;;;;;;;;AAnHG,wBAAsB,WA0H1B,gBAAgB,GAAA,4BAAG;AACjB,QAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAChC,UAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAChC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;GACF;;;;;;;;AAhIG,wBAAsB,WAuI1B,WAAW,GAAA,uBAAG;AACZ,QAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAChC,UAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC;KAC9D;GACF;;SA3IG,sBAAsB;;;AA+I5B,sBAAsB,CAAC,SAAS,CAAC,YAAY,GAAG,eAAe,CAAC;;AAEhE,yBAAU,iBAAiB,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;qBAC/D,sBAAsB;;;;;;;;;;;;;;;;;8BChKhB,yBAAyB;;;;2BACxB,oBAAoB;;;;;;;;;;;;;IAUpC,oBAAoB;YAApB,oBAAoB;;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;AAGtB,QAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;AAC5B,QAAI,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;;AAGjC,WAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;AACzB,WAAO,CAAC,UAAU,CAAC,GAAG,IAAI,KAAK,CAAC,CAAC;AACjC,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEjB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAC5C;;;;;;;;AAfG,sBAAoB,WAsBxB,WAAW,GAAA,uBAAG;AACZ,wBAAM,WAAW,KAAA,MAAE,CAAC;AACpB,QAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACvC;;;;;;;;AAzBG,sBAAoB,WAgCxB,MAAM,GAAA,kBAAG;AACP,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;GAC3D;;SAlCG,oBAAoB;;;AAsC1B,oBAAoB,CAAC,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC;;AAExD,yBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;;;2BCpDb,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;;;;;;;;;;IAUT,eAAe;YAAf,eAAe;;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAC1C;;;;;;;;;AALG,iBAAe,WAanB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mBAAmB;AAC9B,eAAS,4CAA0C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAoB;KAC/F,CAAC,CAAC;GACJ;;;;;;;;AAlBG,iBAAe,WAyBnB,MAAM,GAAA,kBAAG;AACP,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC7C,QAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;;;AAGjC,QAAI,UAAU,GAAG,SAAb,UAAU,CAAa,IAAI,EAAE,GAAG,EAAC;AACnC,UAAI,OAAO,GAAG,AAAC,IAAI,GAAG,GAAG,IAAK,CAAC,CAAC;AAChC,aAAO,AAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA,GAAI,GAAG,GAAI,GAAG,CAAC;KACnD,CAAC;;;AAGF,QAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;;;AAGzD,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,UAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAEvB,UAAI,CAAC,IAAI,EAAE;AACT,YAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;OAC7C;;;AAGD,UAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACjD,UAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;KACzD;;;AAGD,SAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,UAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;KACrC;GACF;;SA3DG,eAAe;;;AA+DrB,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;;;2BC3ER,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;yBACK,mBAAmB;;IAA3B,EAAE;;iCACS,4BAA4B;;;;4CAC9B,iCAAiC;;;;;;;;;;;;;;IAWhD,gBAAgB;YAAhB,gBAAgB;;AAET,WAFP,gBAAgB,CAER,MAAM,EAAE,OAAO,EAAE;;;0BAFzB,gBAAgB;;AAGlB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAElB,UAAM,CAAC,EAAE,CAAC,OAAO,EAAE,YAAM;AACvB,YAAK,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,0CAAS,EAAE,CAAC,IAAI,QAAO,MAAK,eAAe,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;KACjH,CAAC,CAAC;GACJ;;;;;;;;;AAVG,kBAAgB,WAkBpB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;GACJ;;AAtBG,kBAAgB,WAwBpB,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;AACvD,QAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;;AAE3E,QAAI,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;GAChC;;AA9BG,kBAAgB,WAgCpB,MAAM,GAAA,gBAAC,OAAO,EAAE,QAAQ,EAAE;AACxB,QAAI,IAAI,GAAG,+BAAW,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;;AAExD,QAAI,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;AACvC,QAAI,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC;GACnD;;AArCG,kBAAgB,WAuCpB,iBAAiB,GAAA,2BAAC,KAAK,EAAE;AACvB,WAAO,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;GAC9D;;SAzCG,gBAAgB;;;AA4CtB,yBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;;;;;;2BC5DT,oBAAoB;;;;yBACtB,mBAAmB;;IAA3B,EAAE;;iCACS,4BAA4B;;;;;;;;;;;;;IAU7C,eAAe;YAAf,eAAe;;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACnD,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GAClD;;;;;;;;;AAPG,iBAAe,WAenB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,kCAAkC;AAC7C,eAAS,4CAA0C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAoB;KACjG,CAAC,CAAC;GACJ;;AApBG,iBAAe,WAsBnB,cAAc,GAAA,0BAAG;AACf,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,+BAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;GACvF;;SAzBG,eAAe;;;AA6BrB,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;2BC1CR,oBAAoB;;;;yBACtB,eAAe;;;;kCACN,yBAAyB;;;;;;;;;;;;;;IAWhD,eAAe;YAAf,eAAe;;WAAf,eAAe;0BAAf,eAAe;;;;;;;;;;;;AAAf,iBAAe,WAQnB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,kCAAkC;KAC9C,CAAC,CAAC;GACJ;;SAZG,eAAe;;;AAerB,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG;AACnC,UAAQ,EAAE,CACR,SAAS,CACV;CACF,CAAC;;AAEF,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;;;8BCnCX,wBAAwB;;;;2BACrB,oBAAoB;;;;iCACd,wBAAwB;;;;iCACxB,wBAAwB;;;;yBAChC,mBAAmB;;IAA3B,EAAE;;iCACS,4BAA4B;;;;4BAChC,eAAe;;;;;;;;;;;;;IAU5B,OAAO;YAAP,OAAO;;AAEA,WAFP,OAAO,CAEC,MAAM,EAAE,OAAO,EAAC;0BAFxB,OAAO;;AAGT,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACzD,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;GACxD;;;;;;;;;AANG,SAAO,WAcX,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,qBAAqB;KACjC,EAAE;AACD,kBAAY,EAAE,oBAAoB;KACnC,CAAC,CAAC;GACJ;;;;;;;;AApBG,SAAO,WA2BX,oBAAoB,GAAA,gCAAG;;AAEnB,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,+BAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;GACtF;;;;;;;;;AAhCG,SAAO,WAwCX,UAAU,GAAA,sBAAG;AACX,QAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACnE,WAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;GACnC;;;;;;;;AA3CG,SAAO,WAkDX,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,sBAAM,eAAe,KAAA,OAAC,KAAK,CAAC,CAAC;;AAE7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAE7B,QAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAC9C,QAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;GACtB;;;;;;;;AAzDG,SAAO,WAgEX,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,QAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;;;AAGtE,QAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AAAE,aAAO,GAAG,OAAO,GAAG,GAAG,CAAC;KAAE;;;AAGrE,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;GACnC;;;;;;;;AAxEG,SAAO,WA+EX,aAAa,GAAA,uBAAC,KAAK,EAAE;AACnB,sBAAM,aAAa,KAAA,OAAC,KAAK,CAAC,CAAC;;AAE3B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAI,IAAI,CAAC,eAAe,EAAE;AACxB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;GACF;;;;;;;;AAtFG,SAAO,WA6FX,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;GAC1D;;;;;;;;AA/FG,SAAO,WAsGX,QAAQ,GAAA,oBAAG;AACT,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;GAC1D;;SAxGG,OAAO;;;AA4Gb,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC3B,UAAQ,EAAE,CACR,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,CAClB;AACD,WAAS,EAAE,iBAAiB;CAC7B,CAAC;;AAEF,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;;AAE7C,yBAAU,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;qBACjC,OAAO;;;;;;;;;;;;;;;;;wBCxIH,aAAa;;;;2BACV,oBAAoB;;;;;;;;;;;IAQpC,mBAAmB;YAAnB,mBAAmB;;WAAnB,mBAAmB;0BAAnB,mBAAmB;;;;;;;;;;;;AAAnB,qBAAmB,WAQvB,aAAa,GAAA,yBAAG;AACd,0CAAoC,kBAAM,aAAa,KAAA,MAAE,CAAG;GAC7D;;;;;;;;;AAVG,qBAAmB,WAkBvB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,kBAAM,QAAQ,KAAA,OAAC;AACtB,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;;;;AAIH,MAAE,CAAC,SAAS,GAAG,QAAQ,CAAC;AACxB,WAAO,EAAE,CAAC;GACX;;SA3BG,mBAAmB;;;AA8BzB,yBAAU,iBAAiB,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;qBACzD,mBAAmB;;;;;;;;;;;;;;;;;2BCxCZ,oBAAoB;;;;;;;;;;;;IASpC,MAAM;YAAN,MAAM;;WAAN,MAAM;0BAAN,MAAM;;;;;;;;;;;;AAAN,QAAM,WAQV,aAAa,GAAA,yBAAG;AACd,2BAAqB,qBAAM,aAAa,KAAA,MAAE,CAAG;GAC9C;;;;;;;;;AAVG,QAAM,WAkBV,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;GACJ;;SAtBG,MAAM;;;AAyBZ,yBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;qBAE/B,MAAM;;;;;;;;;;;;;;;;;mCCpCS,2BAA2B;;;;2BACnC,oBAAoB;;;;;;;;;;;;;IAUnC,uBAAuB;YAAvB,uBAAuB;;AAEjB,WAFN,uBAAuB,CAEhB,MAAM,EAAE,OAAO,EAAE;0BAFxB,uBAAuB;;AAG1B,WAAO,CAAC,OAAO,CAAC,GAAG;AACjB,YAAM,EAAE,OAAO,CAAC,MAAM,CAAC;AACvB,cAAQ,EAAE,MAAM;AAChB,aAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,WAAW;AACtC,eAAS,EAAE,KAAK;AAChB,UAAI,EAAE,UAAU;KACjB,CAAC;;AAEF,kCAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;GACzC;;;;;;;;AAbI,yBAAuB,WAoB5B,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;GACpD;;SAtBI,uBAAuB;;;AA0B9B,yBAAU,iBAAiB,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;qBACjE,uBAAuB;;;;;;;;;;;;;;;;;iCCtCV,wBAAwB;;;;2BAC9B,oBAAoB;;;;yCACN,iCAAiC;;;;;;;;;;;;;;IAW/D,cAAc;YAAd,cAAc;;AAEP,WAFP,cAAc,CAEN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,cAAc;;AAGhB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,eAAe,CAAC,CAAC;GACrD;;;;;;;;;AALG,gBAAc,WAalB,aAAa,GAAA,yBAAG;AACd,oCAA8B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACvD;;;;;;;;AAfG,gBAAc,WAsBlB,MAAM,GAAA,kBAAG;AACP,QAAI,SAAS,GAAG,CAAC,CAAC;AAClB,+BAAM,MAAM,KAAA,MAAE,CAAC;;;AAGf,QAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE;AAC1E,eAAS,GAAG,CAAC,CAAC;KACf;;AAED,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;AAC/C,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AApCG,gBAAc,WA4ClB,WAAW,GAAA,uBAAG;AACZ,QAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,QAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA,AAAC,EAAE;AAC7E,WAAK,CAAC,IAAI,CAAC,2CAA4B,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC/E;;AAED,WAAO,2BAAM,WAAW,KAAA,OAAC,KAAK,CAAC,CAAC;GACjC;;SApDG,cAAc;;;AAwDpB,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC;;AAEnD,yBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;;;;;;;iCCzED,wBAAwB;;;;2BAC9B,oBAAoB;;;;mCACZ,2BAA2B;;;;uCACvB,+BAA+B;;;;0BAChD,oBAAoB;;;;0BAChB,oBAAoB;;IAA7B,GAAG;;yBACK,mBAAmB;;IAA3B,EAAE;;kCACU,8BAA8B;;;;4BACnC,eAAe;;;;;;;;;;;;;;;;IAa5B,cAAc;YAAd,cAAc;;AAEP,WAFP,cAAc,CAEN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,cAAc;;AAGhB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,eAAe,CAAC,CAAC;GACrD;;;;;;;;;AALG,gBAAc,WAalB,aAAa,GAAA,yBAAG;AACd,oCAA8B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACvD;;;;;;;;;AAfG,gBAAc,WAuBlB,WAAW,GAAA,uBAAG;AACZ,QAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,MAAM,EAAE;AACX,aAAO,KAAK,CAAC;KACd;;AAED,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,aAAK,CAAC,IAAI,CAAC,qCAAsB,IAAI,CAAC,OAAO,EAAE;AAC7C,iBAAO,EAAE,KAAK;SACf,CAAC,CAAC,CAAC;OACL;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;;;;;;;;AA1CG,gBAAc,WAkDlB,UAAU,GAAA,sBAAG;AACX,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;AAC7C,QAAI,aAAa,YAAA,CAAC;AAClB,QAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;AAE5B,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,YAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,eAAK,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;;;AAGzB,oCAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACzC,gBAAI,CAAC,UAAU,EAAE,CAAC;WACnB,CAAC,EAAE,GAAG,CAAC,CAAC;;SAEV,MAAM;AACL,yBAAa,GAAG,KAAK,CAAC;AACtB,kBAAM;WACP;OACF;KACF;;AAED,QAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,4BAAS,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9C,iBAAS,EAAE,gBAAgB;AAC3B,iBAAS,EAAE,gCAAY,IAAI,CAAC,KAAK,CAAC;AAClC,gBAAQ,EAAE,CAAC,CAAC;OACb,CAAC,CAAC,CAAC;KACL;;AAED,QAAI,aAAa,EAAE;AACjB,UAAI,IAAI,GAAG,aAAa,CAAC,MAAM,CAAC;UAAE,GAAG,YAAA,CAAC;;AAEtC,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,WAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;;AAEd,YAAI,EAAE,GAAG,yCAA0B,IAAI,CAAC,OAAO,EAAE;AAC/C,iBAAO,EAAE,aAAa;AACtB,eAAK,EAAE,GAAG;SACX,CAAC,CAAC;;AAEH,aAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AAEf,YAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;OACnB;AACD,UAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACrB;;AAED,QAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;;AAED,WAAO,IAAI,CAAC;GACb;;SA1GG,cAAc;;;AA8GpB,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC;;AAEnD,yBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;;;;;;;8BCvIR,yBAAyB;;;;2BACxB,oBAAoB;;;;yBACtB,mBAAmB;;IAA3B,EAAE;;;;;;;;;;;IAUR,qBAAqB;YAArB,qBAAqB;;AAEd,WAFP,qBAAqB,CAEb,MAAM,EAAE,OAAO,EAAC;0BAFxB,qBAAqB;;AAGvB,QAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,QAAI,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;AACzB,QAAI,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;;;AAGvC,WAAO,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5B,WAAO,CAAC,UAAU,CAAC,GAAI,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,AAAC,CAAC;AACxF,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,SAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACjE;;;;;;;;AAfG,uBAAqB,WAsBzB,WAAW,GAAA,uBAAG;AACZ,wBAAM,WAAW,KAAA,MAAE,CAAC;AACpB,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;GACjC;;;;;;;;AA1BG,uBAAqB,WAiCzB,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,QAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;;;AAG7C,QAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,WAAW,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;GAChF;;SAvCG,qBAAqB;;;AA2C3B,yBAAU,iBAAiB,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;qBAC7D,qBAAqB;;;;;;;;;;;;;;;;;mCCxDN,2BAA2B;;;;2BACnC,oBAAoB;;;;;;;;;;;;;IAUpC,oBAAoB;YAApB,oBAAoB;;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;;;AAKtB,WAAO,CAAC,OAAO,CAAC,GAAG;AACjB,YAAM,EAAE,OAAO,CAAC,MAAM,CAAC;AACvB,cAAQ,EAAE,MAAM;AAChB,aAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM;AACjC,eAAS,EAAE,KAAK;AAChB,YAAM,EAAE,UAAU;KACnB,CAAC;;AAEF,kCAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;GACrB;;;;;;;;;AAfG,sBAAoB,WAuBxB,kBAAkB,GAAA,4BAAC,KAAK,EAAC;AACvB,QAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;AACxC,QAAI,QAAQ,GAAG,IAAI,CAAC;;AAEpB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACvE,gBAAQ,GAAG,KAAK,CAAC;AACjB,cAAM;OACP;KACF;;AAED,QAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;GACzB;;SApCG,oBAAoB;;;AAwC1B,yBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;iCCpDP,wBAAwB;;;;2BAC9B,oBAAoB;;;;;;;;;;;;;;IAWpC,eAAe;YAAf,eAAe;;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,eAAe;;AAGjB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,gBAAgB,CAAC,CAAC;GACtD;;;;;;;;;AALG,iBAAe,WAanB,aAAa,GAAA,yBAAG;AACd,qCAA+B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACxD;;SAfG,eAAe;;;AAmBrB,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC;AAC9C,eAAe,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC;;AAErD,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;;;gCCnCP,2BAA2B;;;;2BAC5B,oBAAoB;;;;yBACtB,mBAAmB;;IAA3B,EAAE;;mCACgB,2BAA2B;;;;sCACxB,+BAA+B;;;;;;;;;;;;;IAU1D,eAAe;YAAf,eAAe;;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;;AAED,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,QAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,UAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACtD,UAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;;AAEnD,QAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AACpC,YAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACzD,YAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACvD,CAAC,CAAC;GACJ;;;;AAvBG,iBAAe,WA0BnB,WAAW,GAAA,uBAAW;QAAV,KAAK,yDAAC,EAAE;;;AAElB,SAAK,CAAC,IAAI,CAAC,wCAAyB,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3E,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,MAAM,EAAE;AACX,aAAO,KAAK,CAAC;KACd;;AAED,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;AAGtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,aAAK,CAAC,IAAI,CAAC,qCAAsB,IAAI,CAAC,OAAO,EAAE;AAC7C,iBAAO,EAAE,KAAK;SACf,CAAC,CAAC,CAAC;OACL;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;SAhDG,eAAe;;;AAoDrB,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;;;8BCnET,yBAAyB;;;;2BACxB,oBAAoB;;;;yBACtB,mBAAmB;;IAA3B,EAAE;;4BACK,eAAe;;;;8BACb,iBAAiB;;;;;;;;;;;;;IAUhC,iBAAiB;YAAjB,iBAAiB;;AAEV,WAFP,iBAAiB,CAET,MAAM,EAAE,OAAO,EAAC;;;0BAFxB,iBAAiB;;AAGnB,QAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAC7B,QAAI,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;;;AAGjC,WAAO,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;AACpE,WAAO,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;AACtE,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;AAEnB,QAAI,MAAM,EAAE;;AACV,YAAI,aAAa,GAAG,EAAE,CAAC,IAAI,QAAO,MAAK,kBAAkB,CAAC,CAAC;;AAE3D,cAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACjD,cAAK,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,gBAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;SACrD,CAAC,CAAC;;KACJ;;;;;;;;AAQD,QAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;;AAC3C,YAAI,KAAK,YAAA,CAAC;;AAEV,cAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,YAAW;AACnC,cAAI,OAAO,0BAAO,KAAK,KAAK,QAAQ,EAAE;;AAEpC,gBAAI;AACF,mBAAK,GAAG,IAAI,0BAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;aACpC,CAAC,OAAM,GAAG,EAAC,EAAE;WACf;;AAED,cAAI,CAAC,KAAK,EAAE;AACV,iBAAK,GAAG,4BAAS,WAAW,CAAC,OAAO,CAAC,CAAC;AACtC,iBAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;WACvC;;AAED,gBAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAC,CAAC;;KACJ;GACF;;;;;;;;AA/CG,mBAAiB,WAsDrB,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,QAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC9B,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,wBAAM,WAAW,KAAA,OAAC,KAAK,CAAC,CAAC;;AAEzB,QAAI,CAAC,MAAM,EAAE,OAAO;;AAEpB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;AAEtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;AAC1B,iBAAS;OACV;;AAED,UAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACxB,aAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;OAC3B,MAAM;AACL,aAAK,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;OAC5B;KACF;GACF;;;;;;;;AA3EG,mBAAiB,WAkFrB,kBAAkB,GAAA,4BAAC,KAAK,EAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC;GACjD;;SApFG,iBAAiB;;;AAwFvB,yBAAU,iBAAiB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;qBACrD,iBAAiB;;;;;;;;;;;;;;;;;;;2BCvGV,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;iCACQ,4BAA4B;;;;;;;;;;;;;IAU7C,kBAAkB;YAAlB,kBAAkB;;AAEX,WAFP,kBAAkB,CAEV,MAAM,EAAE,OAAO,EAAC;0BAFxB,kBAAkB;;AAGpB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACnD;;;;;;;;;AANG,oBAAkB,WActB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,+CAA+C;KAC3D,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,0BAA0B;;AAErC,eAAS,EAAE,qDAAqD,GAAG,MAAM;KAC1E,EAAE;;AAED,iBAAW,EAAE,KAAK;KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AA9BG,oBAAkB,WAqCtB,aAAa,GAAA,yBAAG;;AAEd,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAClD,QAAI,aAAa,GAAG,+BAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,QAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,gBAAW,aAAa,AAAE,CAAC;GACvG;;SA3CG,kBAAkB;;;AA+CxB,yBAAU,iBAAiB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;qBACvD,kBAAkB;;;;;;;;;;;;;;;;;;;2BC5DX,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;iCACQ,4BAA4B;;;;;;;;;;;;;IAU7C,eAAe;YAAf,eAAe;;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;AAOvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACvD;;;;;;;;;AAZG,iBAAe,WAoBnB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,2CAA2C;KACvD,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,sBAAsB;;AAEjC,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAc;KAC1F,EAAE;;AAED,iBAAW,EAAE,KAAK;KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AApCG,iBAAe,WA2CnB,aAAa,GAAA,yBAAG;AACd,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,QAAQ,EAAE;AACZ,UAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACnD,UAAI,aAAa,GAAG,+BAAW,QAAQ,CAAC,CAAC;AACzC,UAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,gBAAW,aAAa,AAAE,CAAC;KACvG;GACF;;SAlDG,eAAe;;;AAsDrB,yBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;;;2BCnER,oBAAoB;;;;0BACrB,oBAAoB;;IAA7B,GAAG;;iCACQ,4BAA4B;;;;;;;;;;;;;IAU7C,oBAAoB;YAApB,oBAAoB;;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;AAGtB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACnD;;;;;;;;;AANG,sBAAoB,WAcxB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,iDAAiD;KAC7D,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,4BAA4B;;AAEvC,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAe;KAC5F,EAAE;;AAED,iBAAW,EAAE,KAAK;KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AA9BG,sBAAoB,WAqCxB,aAAa,GAAA,yBAAG;AACd,QAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AAC3B,UAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACtD,UAAM,aAAa,GAAG,+BAAW,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/D,UAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,iBAAY,aAAa,AAAE,CAAC;KACxG;;;;;GAKF;;SA/CG,oBAAoB;;;AAmD1B,yBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;2BChEb,oBAAoB;;;;;;;;;;;;;;IAWpC,WAAW;YAAX,WAAW;;WAAX,WAAW;0BAAX,WAAW;;;;;;;;;;;;AAAX,aAAW,WAQf,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mCAAmC;AAC9C,eAAS,EAAE,2BAA2B;KACvC,CAAC,CAAC;GACJ;;SAbG,WAAW;;;AAiBjB,yBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;;;8BC7BP,wBAAwB;;;;2BACrB,oBAAoB;;;;yBACtB,mBAAmB;;IAA3B,EAAE;;;;6BAGU,mBAAmB;;;;;;;;;;;;;IAUrC,SAAS;YAAT,SAAS;;AAEF,WAFP,SAAS,CAED,MAAM,EAAE,OAAO,EAAC;0BAFxB,SAAS;;AAGX,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC3D,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;GACxD;;;;;;;;;AANG,WAAS,WAcb,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,+BAA+B;KAC3C,EAAE;AACD,kBAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;GACJ;;;;;;;;AApBG,WAAS,WA2Bb,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACxB,UAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3B;;AAED,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;GACpD;;;;;;;;;AAjCG,WAAS,WAyCb,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACxB,aAAO,CAAC,CAAC;KACV,MAAM;AACL,aAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KAC9B;GACF;;;;;;;;AA/CG,WAAS,WAsDb,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;GAClD;;;;;;;;AAxDG,WAAS,WA+Db,QAAQ,GAAA,oBAAG;AACT,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;GAClD;;;;;;;;AAjEG,WAAS,WAwEb,oBAAoB,GAAA,gCAAG;;AAErB,QAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC/C,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;GACvD;;SA7EG,SAAS;;;AAiFf,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC7B,UAAQ,EAAE,CACR,aAAa,CACd;AACD,WAAS,EAAE,aAAa;CACzB,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;;AAEjD,yBAAU,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBACrC,SAAS;;;;;;;;;;;;;;;;;2BC1GF,oBAAoB;;;;;;2BAGpB,iBAAiB;;;;;;;;;;;;;IAUjC,aAAa;YAAb,aAAa;;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAC;0BAFxB,aAAa;;AAGf,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;AACnE,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;AACD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAU;AACrC,UAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;AACnD,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF,CAAC,CAAC;GACJ;;;;;;;;;AAhBG,eAAa,WAwBjB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,gCAAgC;KAC5C,CAAC,CAAC;GACJ;;SA5BG,aAAa;;;AAgCnB,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG;AACjC,UAAQ,EAAE,CACR,WAAW,CACZ;CACF,CAAC;;AAEF,yBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;2BCpDN,oBAAoB;;;;;;;;;;;;;IAUpC,WAAW;YAAX,WAAW;;WAAX,WAAW;0BAAX,WAAW;;;;;;;;;;;;AAAX,aAAW,WAQf,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,kBAAkB;AAC7B,eAAS,EAAE,wCAAwC;KACpD,CAAC,CAAC;GACJ;;SAbG,WAAW;;;AAiBjB,yBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;wBC5BP,cAAc;;;;2BACX,iBAAiB;;;;0BACtB,iBAAiB;;;;gCACX,wBAAwB;;;;4BACxB,kBAAkB;;;;wCACnB,gCAAgC;;;;;;;;;;;;;IAUhD,gBAAgB;YAAhB,gBAAgB;;AAET,WAFP,gBAAgB,CAER,MAAM,EAAa;QAAX,OAAO,yDAAC,EAAE;;0BAF1B,gBAAgB;;;AAIlB,QAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE;AAChC,aAAO,CAAC,MAAM,GAAG,IAAI,CAAC;KACvB;;;AAGD,QAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;;;AAGlC,UAAI,OAAO,CAAC,MAAM,EAAE;AAClB,eAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;OAC1B,MAAM;AACL,eAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;OACzB;KACF;;;;AAID,WAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;AAC5C,WAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;;AAEhD,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACnD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;;;AAGhD,aAAS,gBAAgB,GAAG;AAC1B,UAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAK,KAAK,EAAE;AACnE,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF;;AAED,oBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5B,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,gBAAgB,CAAC,CAAC;;AAE/C,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,cAAc,EAAE,OAAO,CAAC,EAAE,YAAU;AAC3D,UAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;KACpC,CAAC,CAAC;;AAEH,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,YAAU;AAC5D,UAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;KACvC,CAAC,CAAC;GACJ;;;;;;;;;AAjDG,kBAAgB,WAyDpB,aAAa,GAAA,yBAAG;AACd,QAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,QAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5B,sBAAgB,GAAG,iCAAiC,CAAC;KACtD,MAAM;AACL,sBAAgB,GAAG,mCAAmC,CAAC;KACxD;;AAED,uCAAiC,sBAAM,aAAa,KAAA,MAAE,SAAI,gBAAgB,CAAG;GAC9E;;;;;;;;;AAlEG,kBAAgB,WA0EpB,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,4BAAS,IAAI,CAAC,OAAO,EAAE;AAChC,mBAAa,EAAE,KAAK;KACrB,CAAC,CAAC;;AAEH,QAAI,EAAE,GAAG,0CAAc,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;AAE9D,QAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;;AAElB,QAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,WAAO,IAAI,CAAC;GACb;;;;;;;;AArFG,kBAAgB,WA4FpB,WAAW,GAAA,uBAAG;AACZ,8BAAW,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,0BAAM,WAAW,KAAA,MAAE,CAAC;GACrB;;SA/FG,gBAAgB;;;AAmGtB,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,0BAAW,SAAS,CAAC,MAAM,CAAC;AACtE,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAEjD,yBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;;;;;;yBCtHT,aAAa;;;;0BACb,gBAAgB;;IAAzB,GAAG;;;;;;;;;;;IAUV,YAAY;YAAZ,YAAY;;AAEL,WAFP,YAAY,CAEJ,MAAM,EAAE,OAAO,EAAE;0BAFzB,YAAY;;AAGd,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GACvC;;;;;;;;;AAPG,cAAY,WAehB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAEhC,WAAO,EAAE,CAAC;GACX;;;;;;;;AAxBG,cAAY,WA+BhB,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;AACzB,UAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;KAC1E;GACF;;SAnCG,YAAY;;;AAsClB,uBAAU,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;qBAC3C,YAAY;;;;;;;;;;;;;6BClDH,mBAAmB;;IAA/B,MAAM;;AAElB,IAAI,WAAW,GAAG,SAAd,WAAW,GAAc,EAAE,CAAC;;AAEhC,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC;;AAE1C,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;;;AAG5C,MAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAChC,MAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3C,QAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1B,MAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;CAC7B,CAAC;AACF,WAAW,CAAC,SAAS,CAAC,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;;AAElE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;AAC7C,QAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;CAC5B,CAAC;AACF,WAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;;AAEtE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;AAC7C,QAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;CAC5B,CAAC;;AAEF,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE;AAC9C,MAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;;AAE/B,MAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,SAAK,GAAG;AACN,UAAI,EAAE,IAAI;KACX,CAAC;GACH;AACD,OAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAE/B,MAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AAClD,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;GAC1B;;AAED,QAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAC7B,CAAC;;AAEF,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;;qBAErD,WAAW;;;;;;;;;;wBC/CV,aAAa;;;;;;;;;;;AAS7B,IAAM,SAAS,GAAG,SAAZ,SAAS,CAAa,QAAQ,EAAE,UAAU,EAAE;AAChD,MAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;AAC3D,UAAM,IAAI,SAAS,CAAC,0DAA0D,GAAG,OAAO,UAAU,CAAC,CAAC;GACrG;;AAED,UAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;AACrE,eAAW,EAAE;AACX,WAAK,EAAE,QAAQ;AACf,gBAAU,EAAE,KAAK;AACjB,cAAQ,EAAE,IAAI;AACd,kBAAY,EAAE,IAAI;KACnB;GACF,CAAC,CAAC;;AAEH,MAAI,UAAU,EAAE;;AAEd,YAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;GAC9B;CACF,CAAC;;;;;;;;;;;;;;;;;;;AAmBF,IAAM,QAAQ,GAAG,SAAX,QAAQ,CAAY,UAAU,EAAsB;MAApB,eAAe,yDAAC,EAAE;;AACtD,MAAI,QAAQ,GAAG,oBAAW;AACxB,cAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;GACnC,CAAC;AACF,MAAI,OAAO,GAAG,EAAE,CAAC;;AAEjB,MAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACvC,QAAI,OAAO,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9C,4BAAI,IAAI,CAAC,+EAA+E,CAAC,CAAC;AAC1F,qBAAe,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;KACpD;AACD,QAAI,eAAe,CAAC,WAAW,KAAK,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;AAChE,cAAQ,GAAG,eAAe,CAAC,WAAW,CAAC;KACxC;AACD,WAAO,GAAG,eAAe,CAAC;GAC3B,MAAM,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;AAChD,YAAQ,GAAG,eAAe,CAAC;GAC5B;;AAED,WAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;;;AAGhC,OAAK,IAAI,IAAI,IAAI,OAAO,EAAE;AACxB,QAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAChC,cAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1C;GACF;;AAED,SAAO,QAAQ,CAAC;CACjB,CAAC;;qBAEa,QAAQ;;;;;;;;;;;;;8BC1EF,iBAAiB;;;;;;;;;AAOtC,IAAI,aAAa,GAAG,EAAE,CAAC;;;;AAIvB,IAAM,MAAM,GAAG;;AAEb,CACE,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,CAClB;;AAED,CACE,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,CACxB;;AAED,CACE,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,CACxB;;AAED,CACE,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,CACrB;;AAED,CACE,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,CACpB,CACF,CAAC;;AAEF,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,UAAU,YAAA,CAAC;;;AAGf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;AAEtC,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,+BAAY,EAAE;AAC5B,cAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,UAAM;GACP;CACF;;;AAGD,IAAI,UAAU,EAAE;AACd,OAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,iBAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;GAC3C;CACF;;qBAEc,aAAa;;;;;;;;;;;;;;;;;yBC9EN,aAAa;;;;;;;;;;;;;IAU7B,cAAc;YAAd,cAAc;;WAAd,cAAc;0BAAd,cAAc;;;;;;;;;;;AAAd,gBAAc,WAOlB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;GACJ;;SAXG,cAAc;;;AAcpB,uBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;4BCzBV,eAAe;;;;;;;;;AAOlC,IAAI,UAAU,GAAG,SAAb,UAAU,CAAY,IAAI,EAAC;AAC7B,MAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;GAClB,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;AAEnC,QAAI,CAAC,OAAO,GAAG,IAAI,CAAC;GACrB,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;AACnC,8BAAO,IAAI,EAAE,IAAI,CAAC,CAAC;GACpB;;AAED,MAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,QAAI,CAAC,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;GAC5D;CACF,CAAC;;;;;;;;AAQF,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;;;;;;;;;AAS9B,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;;;;;;;;AAYlC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;;AAEnC,UAAU,CAAC,UAAU,GAAG,CACtB,kBAAkB;AAClB,mBAAmB;AACnB,mBAAmB;AACnB,kBAAkB;AAClB,6BAA6B;AAC7B,qBAAqB;CACtB,CAAC;;AAEF,UAAU,CAAC,eAAe,GAAG;AAC3B,GAAC,EAAE,gCAAgC;AACnC,GAAC,EAAE,6DAA6D;AAChE,GAAC,EAAE,6HAA6H;AAChI,GAAC,EAAE,oHAAoH;AACvH,GAAC,EAAE,mEAAmE;CACvE,CAAC;;;;AAIF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACpE,YAAU,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;;AAEnD,YAAU,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;CAC9D;;qBAEc,UAAU;;;;;;;;;;;;;;;;;;;wBC5EN,cAAc;;;;2BACX,iBAAiB;;;;sBACtB,WAAW;;;;0BACP,iBAAiB;;IAA1B,GAAG;;yBACK,gBAAgB;;IAAxB,EAAE;;kCACU,2BAA2B;;;;;;;;;;;;;IAU7C,UAAU;YAAV,UAAU;;AAEH,WAFP,UAAU,CAEF,MAAM,EAAa;QAAX,OAAO,yDAAC,EAAE;;0BAF1B,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;;AAEd,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxC,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;GACzC;;;;;;;;AAVG,YAAU,WAiBd,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE7B,QAAI,IAAI,CAAC,IAAI,EAAE;AACb,UAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;;AAED,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;;;;AAQpB,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;AAE5B,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAxCG,YAAU,WAgDd,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,wBAAS,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAGlC,QAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9C,iBAAS,EAAE,gBAAgB;AAC3B,iBAAS,EAAE,gCAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3C,gBAAQ,EAAE,CAAC,CAAC;OACb,CAAC,CAAC,CAAC;KACL;;AAED,QAAI,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;;AAEnC,QAAI,IAAI,CAAC,KAAK,EAAE;;AAEd,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;OAC7B;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AAtEG,YAAU,WA6Ed,WAAW,GAAA,uBAAE,EAAE;;;;;;;;;AA7EX,YAAU,WAqFd,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;GACJ;;;;;;;;;AAzFG,YAAU,WAiGd,aAAa,GAAA,yBAAG;AACd,QAAI,eAAe,GAAG,iBAAiB,CAAC;;;AAGxC,QAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AACjC,qBAAe,IAAI,SAAS,CAAC;KAC9B,MAAM;AACL,qBAAe,IAAI,QAAQ,CAAC;KAC7B;;AAED,gCAA0B,eAAe,SAAI,kBAAM,aAAa,KAAA,MAAE,CAAG;GACtE;;;;;;;;;;;;;;AA5GG,YAAU,WAyHd,WAAW,GAAA,uBAAG,EAAE;;;;;;;;;AAzHZ,YAAU,WAiId,UAAU,GAAA,sBAAG,EAAE;;;;;;;;;;;;AAjIX,YAAU,WA4Id,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;AAC3C,UAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1B,UAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACJ,QAAI,IAAI,CAAC,cAAc,EAAC;AACtB,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,MAAM;AACL,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;;;;;;;;;AAtJG,YAAU,WA8Jd,cAAc,GAAA,wBAAC,KAAK,EAAE;;;AAGpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5C,UAAI,IAAI,CAAC,cAAc,EAAC;AACtB,YAAI,CAAC,aAAa,EAAE,CAAC;OACtB,MAAM;AACL,YAAI,CAAC,WAAW,EAAE,CAAC;OACpB;AACD,WAAK,CAAC,cAAc,EAAE,CAAC;;KAExB,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAC;AAC5B,YAAI,IAAI,CAAC,cAAc,EAAC;AACtB,cAAI,CAAC,aAAa,EAAE,CAAC;SACtB;AACD,aAAK,CAAC,cAAc,EAAE,CAAC;OACxB;GACF;;;;;;;;AA/KG,YAAU,WAsLd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC5C,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,UAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;KAC5B;GACF;;;;;;;;AA7LG,YAAU,WAoMd,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;GAC9C;;SAxMG,UAAU;;;AA2MhB,yBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;wBC3NN,cAAc;;;;2BACX,iBAAiB;;;;4BACpB,eAAe;;;;;;;;;;;;;IAU5B,QAAQ;YAAR,QAAQ;;AAED,WAFP,QAAQ,CAEA,MAAM,EAAE,OAAO,EAAE;0BAFzB,QAAQ;;AAGV,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;GACpC;;;;;;;;;;;AALG,UAAQ,WAeZ,QAAQ,GAAA,kBAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;AAC3B,WAAO,kBAAM,QAAQ,KAAA,OAAC,IAAI,EAAE,0BAAO;AACjC,eAAS,EAAE,eAAe;AAC1B,eAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;KACjD,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC;GACnB;;;;;;;;AApBG,UAAQ,WA2BZ,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;GACrB;;;;;;;;;AA7BG,UAAQ,WAqCZ,QAAQ,GAAA,kBAAC,SAAQ,EAAE;AACjB,QAAI,SAAQ,EAAE;AACZ,UAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC9B,UAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;KAC7C,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjC,UAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAC,KAAK,CAAC,CAAC;KAC9C;GACF;;SA7CG,QAAQ;;;AAiDd,yBAAU,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;qBACnC,QAAQ;;;;;;;;;;;;;;;;;;;2BC9DD,iBAAiB;;;;0BAClB,iBAAiB;;IAA1B,GAAG;;yBACK,gBAAgB;;IAAxB,EAAE;;6BACU,oBAAoB;;IAAhC,MAAM;;;;;;;;;;IASZ,IAAI;YAAJ,IAAI;;WAAJ,IAAI;0BAAJ,IAAI;;;;;;;;;;;;AAAJ,MAAI,WAQR,OAAO,GAAA,iBAAC,SAAS,EAAE;AACjB,QAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzB,aAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;AAC5C,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,CAAC,CAAC,CAAC;GACL;;;;;;;;;AAbG,MAAI,WAqBR,QAAQ,GAAA,oBAAG;AACT,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;AACxD,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC5C,eAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;AACH,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,YAAM,EAAE,IAAI,CAAC,UAAU;AACvB,eAAS,EAAE,UAAU;KACtB,CAAC,CAAC;AACH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;;AAIhC,UAAM,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,UAAS,KAAK,EAAC;AACpC,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,WAAK,CAAC,wBAAwB,EAAE,CAAC;KAClC,CAAC,CAAC;;AAEH,WAAO,EAAE,CAAC;GACX;;SAxCG,IAAI;;;AA2CV,yBAAU,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBAC3B,IAAI;;;;;;;;;;;;;;;;;;;;2BCvDG,gBAAgB;;;;8BAEjB,iBAAiB;;;;4BACnB,eAAe;;;;6BACV,mBAAmB;;IAA/B,MAAM;;0BACG,gBAAgB;;IAAzB,GAAG;;yBACK,eAAe;;IAAvB,EAAE;;2BACQ,iBAAiB;;IAA3B,IAAI;;8BACS,oBAAoB;;IAAjC,OAAO;;0BACH,gBAAgB;;;;kCACR,0BAA0B;;;;iCAClB,wBAAwB;;6BACxB,mBAAmB;;iCACvB,uBAAuB;;IAAvC,UAAU;;+BACI,qBAAqB;;;;4BACxB,kBAAkB;;;;kCACd,uBAAuB;;;;4BAC/B,eAAe;;;;mCACT,0BAA0B;;;;8CACpB,uCAAuC;;;;;;4BAG9C,kBAAkB;;;;6BAClB,mBAAmB;;;;wCACd,gCAAgC;;;;gCAClC,sBAAsB;;;;+BACvB,sBAAsB;;;;sCACzB,8BAA8B;;;;8BAC5B,oBAAoB;;;;yCACf,iCAAiC;;;;;;2BAG7C,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;IAqB7B,MAAM;YAAN,MAAM;;;;;;;;;;;;AAWC,WAXP,MAAM,CAWE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAC;;;0BAX5B,MAAM;;;AAaR,OAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,mBAAiB,IAAI,CAAC,OAAO,EAAE,AAAE,CAAC;;;;;;;AAOjD,WAAO,GAAG,0BAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;;;;AAItD,WAAO,CAAC,YAAY,GAAG,KAAK,CAAC;;;AAG7B,WAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;;;;AAIzB,WAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;;;AAGpC,0BAAM,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;AAI5B,QAAI,CAAC,IAAI,CAAC,QAAQ,IACd,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IACxB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;AACnC,YAAM,IAAI,KAAK,CAAC,4CAA4C,GAC5C,+CAA+C,GAC/C,kCAAkC,CAAC,CAAC;KACrD;;AAED,QAAI,CAAC,GAAG,GAAG,GAAG,CAAC;;;AAGf,QAAI,CAAC,aAAa,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;;;AAGrD,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;;AAGtC,QAAI,OAAO,CAAC,SAAS,EAAE;;;AAErB,YAAI,gBAAgB,GAAG,EAAE,CAAC;;AAE1B,cAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAE;AACnE,0BAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAChE,CAAC,CAAC;AACH,cAAK,UAAU,GAAG,gBAAgB,CAAC;;KACpC,MAAM;AACL,UAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;KACvD;;;AAGD,QAAI,CAAC,MAAM,GAAG,EAAE,CAAC;;;AAGjB,QAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;;;AAGpC,QAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;;;;;AAKpC,OAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;;;;;;;;AAQrB,QAAI,CAAC,UAAU,GAAG,KAAK,CAAC;;AAExB,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;;;;;AAM3B,QAAI,iBAAiB,GAAG,iCAAa,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAGpD,QAAI,OAAO,CAAC,OAAO,EAAE;;AACnB,YAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;AAE9B,cAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;AACxD,cAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;AACpC,gBAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;WAC3B,MAAM;AACL,oCAAI,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;WAC3C;SACF,QAAO,CAAC;;KACV;;AAED,QAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,CAAC;;AAEhD,QAAI,CAAC,YAAY,EAAE,CAAC;;;AAGpB,QAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;;;;AAIrD,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;KACvC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;KACxC;;AAED,QAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,UAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC5B;;AAED,QAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC5B,UAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC9B;;;;;;;;;AASD,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;;;;AAIhC,QAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACtB,QAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAI,CAAC,sBAAsB,EAAE,CAAC;;AAE9B,QAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAC1D,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;GAC/C;;;;;;;;;;;;;;;;;;;AAtJG,QAAM,WAkKV,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;AAExB,QAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;AAEpB,QAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,UAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrD;;;AAGD,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAChC,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAAE,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;KAAE;AAC5D,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAAE,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;KAAE;;AAE5D,QAAI,IAAI,CAAC,KAAK,EAAE;AAAE,UAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;KAAE;;AAEzC,yBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AAnLG,QAAM,WA2LV,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,CAAC,CAAC;AAC1C,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;;;AAGnB,OAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7B,OAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;;;;AAI9B,QAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;;AAEvC,UAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;;;AAGtD,UAAI,IAAI,KAAK,OAAO,EAAE;AACpB,UAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;OAC5B,MAAM;AACL,UAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;OACpC;KACF,CAAC,CAAC;;;;;AAKH,OAAG,CAAC,EAAE,IAAI,YAAY,CAAC;AACvB,OAAG,CAAC,SAAS,GAAG,UAAU,CAAC;;;AAG3B,OAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;;AAE9B,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;;;;AAK5B,QAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AACvE,QAAI,eAAe,GAAG,4BAAS,aAAa,CAAC,sBAAsB,CAAC,CAAC;AACrE,QAAI,IAAI,GAAG,4BAAS,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;;AAGlG,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClC,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,QAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;;;AAI5C,OAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC;;;AAGzC,QAAI,GAAG,CAAC,UAAU,EAAE;AAClB,SAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;KACtC;AACD,OAAG,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;;AAE3B,QAAI,CAAC,GAAG,GAAG,EAAE,CAAC;;AAEd,WAAO,EAAE,CAAC;GACX;;;;;;;;;;AAvPG,QAAM,WAgQV,KAAK,GAAA,eAAC,KAAK,EAAE;AACX,WAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACvC;;;;;;;;;;AAlQG,QAAM,WA2QV,MAAM,GAAA,gBAAC,KAAK,EAAE;AACZ,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;GACxC;;;;;;;;;;;AA7QG,QAAM,WAuRV,SAAS,GAAA,mBAAC,UAAS,EAAE,KAAK,EAAE;AAC1B,QAAI,aAAa,GAAG,UAAS,GAAG,GAAG,CAAC;;AAEpC,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,aAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,KAAK,EAAE,EAAE;;AAEhB,UAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjC,MAAM;AACL,UAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;;AAElC,UAAI,KAAK,CAAC,SAAS,CAAC,EAAE;AACpB,gCAAI,KAAK,sBAAoB,KAAK,2BAAsB,UAAS,CAAG,CAAC;AACrE,eAAO,IAAI,CAAC;OACb;;AAED,UAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjC;;AAED,QAAI,CAAC,cAAc,EAAE,CAAC;AACtB,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA9SG,QAAM,WAsTV,KAAK,GAAA,eAAC,IAAI,EAAE;AACV,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KACtB;;AAED,QAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;;AAErB,QAAI,IAAI,EAAE;AACR,UAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC5B,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KAC/B;GACF;;;;;;;;;;AAlUG,QAAM,WA2UV,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,aAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;;;AAGD,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC7B,YAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;KACnH;AACD,QAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;;;AAI1B,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;AAEjB,QAAI,CAAC,cAAc,EAAE,CAAC;GACvB;;;;;;;;AA3VG,QAAM,WAkWV,cAAc,GAAA,0BAAG;AACf,QAAI,KAAK,YAAA,CAAC;AACV,QAAI,MAAM,YAAA,CAAC;AACX,QAAI,WAAW,YAAA,CAAC;;;AAGhB,QAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;;AAEnE,iBAAW,GAAG,IAAI,CAAC,YAAY,CAAC;KACjC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;;AAE5B,iBAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KAC5D,MAAM;;AAEL,iBAAW,GAAG,MAAM,CAAC;KACtB;;;AAGD,QAAI,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,QAAI,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;;AAEpD,QAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7B,WAAK,GAAG,IAAI,CAAC,MAAM,CAAC;KACrB,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;;AAErC,WAAK,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;KACxC,MAAM;;AAEL,WAAK,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC;KAClC;;AAED,QAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;;AAE9B,YAAM,GAAG,IAAI,CAAC,OAAO,CAAC;KACvB,MAAM;;AAEL,YAAM,GAAG,KAAK,GAAI,eAAe,CAAC;KACnC;;AAED,QAAI,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,GAAC,aAAa,CAAC;;;AAGtC,QAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;AAEvB,cAAU,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,gBAClC,OAAO,2BACC,KAAK,6BACJ,MAAM,+BAGf,OAAO,2CACO,eAAe,GAAG,GAAG,uBAEtC,CAAC;GACJ;;;;;;;;;;;;;AAzZG,QAAM,WAqaV,SAAS,GAAA,mBAAC,QAAQ,EAAE,MAAM,EAAE;;;AAG1B,QAAI,IAAI,CAAC,KAAK,EAAE;AACd,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;;;AAGD,QAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE;AACpC,+BAAU,YAAY,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACjB;;AAED,QAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;;;AAG1B,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;;AAGtB,QAAI,WAAW,GAAG,0BAAO;AACvB,8BAAwB,EAAE,IAAI,CAAC,QAAQ,CAAC,sBAAsB;AAC9D,cAAQ,EAAE,MAAM;AAChB,gBAAU,EAAE,IAAI,CAAC,EAAE,EAAE;AACrB,cAAQ,EAAK,IAAI,CAAC,EAAE,EAAE,SAAI,QAAQ,SAAM;AACxC,kBAAY,EAAE,IAAI,CAAC,WAAW;AAC9B,gBAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAClC,eAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO;AAChC,YAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;AAC1B,aAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC5B,cAAQ,EAAE,IAAI,CAAC,MAAM,EAAE;AACvB,gBAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC3B,cAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAClC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;;AAE1C,QAAI,IAAI,CAAC,GAAG,EAAE;AACZ,iBAAW,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAC5B;;AAED,QAAI,MAAM,EAAE;AACV,UAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,UAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE;AACjE,mBAAW,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;OACjD;;AAED,UAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;KAC9B;;;AAGD,QAAI,aAAa,GAAG,yBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAI,CAAC,KAAK,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;;;AAG5C,QAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,CAAC,CAAC;;AAE7D,gDAAmB,gBAAgB,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;;;AAG5E,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACtE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACtE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;AAC1E,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACtE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;AAClE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACxE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;;AAElE,QAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;;AAEpD,QAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAClD,UAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;;;;AAID,QAAI,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,AAAC,EAAE;AACnF,SAAG,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KAC/C;;;AAGD,QAAI,IAAI,CAAC,GAAG,EAAE;AACZ,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACjB;GACF;;;;;;;;;AA5gBG,QAAM,WAohBV,WAAW,GAAA,uBAAG;;AAEZ,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACrC,QAAI,CAAC,eAAe,GAAG,4CAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAEjE,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAEtB,QAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;;AAErB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;GACpB;;;;;;;;;;;;;;;;;;;;;;;;AA9hBG,QAAM,WAqjBV,yBAAyB,GAAA,qCAAG;;AAE1B,QAAI,CAAC,4BAA4B,EAAE,CAAC;;;;;;AAMpC,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;;;;;AAKxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC9D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;;;;AAI1D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;GACjD;;;;;;;;;;AAzkBG,QAAM,WAklBV,4BAA4B,GAAA,wCAAG;;;AAG7B,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/D,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC7D,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC3D,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;GAC1D;;;;;;;;;AA1lBG,QAAM,WAkmBV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,YAAY,EAAE,CAAC;;;AAGpB,QAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,UAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACjD;;;AAGD,QAAI,CAAC,uBAAuB,EAAE,CAAC;;;AAG/B,QAAI,CAAC,yBAAyB,EAAE,CAAC;;;;;;AAMjC,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACvD,aAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACvB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAxnBG,QAAM,WAgoBV,oBAAoB,GAAA,gCAAG;;;AAGrB,QAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;;AAG9B,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;;AAKjB,QAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1B,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC3B,MAAM;;AAEL,UAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC3B;GACF;;;;;;;;;;;AAnpBG,QAAM,WA6pBV,UAAU,GAAA,oBAAC,WAAU,EAAE;AACrB,QAAI,WAAU,KAAK,SAAS,EAAE;;AAE5B,UAAI,IAAI,CAAC,WAAW,KAAK,WAAU,EAAE;AACnC,YAAI,CAAC,WAAW,GAAG,WAAU,CAAC;AAC9B,YAAI,WAAU,EAAE;AACd,cAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;;AAEjC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC3B,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACrC;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;GAC3B;;;;;;;;;AA7qBG,QAAM,WAqrBV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;;;AAI7B,QAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;AAEtB,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;GACtB;;;;;;;;;AA/rBG,QAAM,WAusBV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;;AA1sBG,QAAM,WAmtBV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;;AAttBG,QAAM,WA+tBV,yBAAyB,GAAA,qCAAG;AAC1B,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;;AAluBG,QAAM,WA2uBV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AA9uBG,QAAM,WAsvBV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AAzvBG,QAAM,WAiwBV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;GACxB;;;;;;;;;;;;AApwBG,QAAM,WA+wBV,oBAAoB,GAAA,gCAAG;;;AAGrB,QAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC;AACzB,UAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC3C;;AAED,QAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACjC,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;GAC3B;;;;;;;;;AAxxBG,QAAM,WAgyBV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;;AApyBG,QAAM,WA4yBV,mBAAmB,GAAA,+BAAG;AACpB,QAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;GAC1B;;;;;;;;;AA9yBG,QAAM,WAszBV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3B,QAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACtB,UAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACpB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,KAAK,EAAE,CAAC;KACd;;AAED,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;;AAh0BG,QAAM,WAw0BV,yBAAyB,GAAA,qCAAG;AAC1B,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;GAC1C;;;;;;;;;;AA10BG,QAAM,WAm1BV,gBAAgB,GAAA,0BAAC,KAAK,EAAE;;;AAGtB,QAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO;;;;AAI/B,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACjB,YAAI,CAAC,IAAI,EAAE,CAAC;OACb,MAAM;AACL,YAAI,CAAC,KAAK,EAAE,CAAC;OACd;KACF;GACF;;;;;;;;;;AAj2BG,QAAM,WA02BV,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;GACrC;;;;;;;;;AA52BG,QAAM,WAo3BV,qBAAqB,GAAA,iCAAG;AACtB,QAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;GACxC;;;;;;;;;AAt3BG,QAAM,WA83BV,oBAAoB,GAAA,gCAAG;AACrB,QAAI,IAAI,CAAC,aAAa,EAAC;AACrB,UAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;GACF;;;;;;;;;AAl4BG,QAAM,WA04BV,mBAAmB,GAAA,6BAAC,KAAK,EAAE;;AAEzB,SAAK,CAAC,cAAc,EAAE,CAAC;GACxB;;;;;;;;;AA74BG,QAAM,WAq5BV,uBAAuB,GAAA,mCAAG;AACxB,QAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KACjC,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KACpC;GACF;;;;;;;;;;AA35BG,QAAM,WAo6BV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;;;;;;;;;AAt6BG,QAAM,WA86BV,2BAA2B,GAAA,qCAAC,KAAK,EAAE,IAAI,EAAE;AACvC,QAAI,IAAI,EAAE;AACR,UAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;AACD,QAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;GAClC;;;;;;;;;AAn7BG,QAAM,WA27BV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AAC/B,QAAI,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;GACjC;;;;;;;;;AA97BG,QAAM,WAs8BV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AAx8BG,QAAM,WAg9BV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;;AAl9BG,QAAM,WA09BV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AA59BG,QAAM,WAo+BV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AAt+BG,QAAM,WA8+BV,yBAAyB,GAAA,qCAAG;AAC1B,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;AAh/BG,QAAM,WAw/BV,qBAAqB,GAAA,iCAAG;AACtB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;;AA1/BG,QAAM,WAkgCV,qBAAqB,GAAA,iCAAG;AACtB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;;AApgCG,QAAM,WA4gCV,qBAAqB,GAAA,iCAAG;AACtB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;;AA9gCG,QAAM,WAshCV,uBAAuB,GAAA,mCAAG;AACxB,QAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;GAC9B;;;;;;;;;AAxhCG,QAAM,WAgiCV,0BAA0B,GAAA,sCAAG;AAC3B,QAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;GACjC;;;;;;;;;AAliCG,QAAM,WA0iCV,QAAQ,GAAA,oBAAG;AACT,WAAO,IAAI,CAAC,MAAM,CAAC;GACpB;;;;;;;;;;;AA5iCG,QAAM,WAsjCV,SAAS,GAAA,mBAAC,MAAM,EAAE,GAAG,EAAE;;AAErB,QAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AACtC,UAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAU;AACzB,YAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;OACnB,EAAE,IAAI,CAAC,CAAC;;;KAGV,MAAM;AACL,YAAI;AACF,cAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;SACzB,CAAC,OAAM,CAAC,EAAE;AACT,kCAAI,CAAC,CAAC,CAAC;AACP,gBAAM,CAAC,CAAC;SACT;OACF;GACF;;;;;;;;;;;AAtkCG,QAAM,WAglCV,QAAQ,GAAA,kBAAC,MAAM,EAAE;AACf,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;;;;;AAKrC,UAAI;AACF,eAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;OAC7B,CAAC,OAAM,CAAC,EAAE;;AAET,YAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACpC,iDAAiB,MAAM,gCAA2B,IAAI,CAAC,SAAS,4BAAyB,CAAC,CAAC,CAAC;SAC7F,MAAM;;AAEL,cAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1B,mDAAiB,MAAM,wBAAmB,IAAI,CAAC,SAAS,oCAAiC,CAAC,CAAC,CAAC;AAC5F,gBAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;WAC7B,MAAM;AACL,oCAAI,CAAC,CAAC,CAAC;WACR;SACF;AACD,cAAM,CAAC,CAAC;OACT;KACF;;AAED,WAAO;GACR;;;;;;;;;;;;AA1mCG,QAAM,WAqnCV,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;AAxnCG,QAAM,WAmoCV,KAAK,GAAA,iBAAG;AACN,QAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;AAtoCG,QAAM,WAkpCV,MAAM,GAAA,kBAAG;;AAEP,WAAO,AAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAI,KAAK,GAAG,IAAI,CAAC;GAC3D;;;;;;;;;;;;AArpCG,QAAM,WAgqCV,SAAS,GAAA,mBAAC,WAAW,EAAE;AACrB,QAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,UAAI,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;;AAEhC,UAAI,WAAW,EAAE;AACf,YAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;OAChC,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;OACnC;;AAED,aAAO,IAAI,CAAC;KACb;;AAED,WAAO,IAAI,CAAC,UAAU,CAAC;GACxB;;;;;;;;;;;;;;;;;AA9qCG,QAAM,WA8rCV,WAAW,GAAA,qBAAC,OAAO,EAAE;AACnB,QAAI,OAAO,KAAK,SAAS,EAAE;;AAEzB,UAAI,CAAC,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;;AAE1C,aAAO,IAAI,CAAC;KACb;;;;;;;;AAQD,WAAO,IAAI,CAAC,MAAM,CAAC,WAAW,GAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,AAAC,CAAC;GACtE;;;;;;;;;;;;;;;;AA7sCG,QAAM,WA4tCV,QAAQ,GAAA,kBAAC,OAAO,EAAE;AAChB,QAAI,OAAO,KAAK,SAAS,EAAE;AACzB,aAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;KAClC;;AAED,WAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;;AAGnC,QAAI,OAAO,GAAG,CAAC,EAAE;AACf,aAAO,GAAG,QAAQ,CAAC;KACpB;;AAED,QAAI,OAAO,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;;AAEpC,UAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC;;AAE/B,UAAI,OAAO,KAAK,QAAQ,EAAE;AACxB,YAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;OAC3B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;OAC9B;;AAED,UAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;KAChC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;AAtvCG,QAAM,WAkwCV,aAAa,GAAA,yBAAG;AACd,WAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7C;;;;;;;;;;;;;;;;;;;;;;;;;AApwCG,QAAM,WA4xCV,QAAQ,GAAA,oBAAG;AACT,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;;AAEzC,QAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,cAAQ,GAAG,mCAAgB,CAAC,EAAC,CAAC,CAAC,CAAC;KACjC;;AAED,WAAO,QAAQ,CAAC;GACjB;;;;;;;;;;;;;;AApyCG,QAAM,WAizCV,eAAe,GAAA,2BAAG;AAChB,WAAO,+BAAgB,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;GAC1D;;;;;;;;;;AAnzCG,QAAM,WA4zCV,WAAW,GAAA,uBAAG;AACZ,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;;AAE1C,QAAI,GAAG,GAAG,QAAQ,EAAE;AAClB,SAAG,GAAG,QAAQ,CAAC;KAChB;;AAED,WAAO,GAAG,CAAC;GACZ;;;;;;;;;;;;;;;;;;AAt0CG,QAAM,WAu1CV,MAAM,GAAA,gBAAC,gBAAgB,EAAE;AACvB,QAAI,GAAG,YAAA,CAAC;;AAER,QAAI,gBAAgB,KAAK,SAAS,EAAE;AAClC,SAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7D,UAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;AACzB,UAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;;AAEjC,aAAO,IAAI,CAAC;KACb;;;AAGD,OAAG,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC1C,WAAO,AAAC,KAAK,CAAC,GAAG,CAAC,GAAI,CAAC,GAAG,GAAG,CAAC;GAC/B;;;;;;;;;;;;;;;;;AAr2CG,QAAM,WAs3CV,KAAK,GAAA,eAAC,MAAK,EAAE;AACX,QAAI,MAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,SAAS,CAAC,UAAU,EAAE,MAAK,CAAC,CAAC;AAClC,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;GACxC;;;;;;;;;;;AA53CG,QAAM,WAs4CV,kBAAkB,GAAA,8BAAG;AACnB,WAAO,IAAI,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;GACrD;;;;;;;;;;;;;;;;;;;;AAx4CG,QAAM,WA25CV,YAAY,GAAA,sBAAC,IAAI,EAAE;AACjB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;AAC5B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;GAC7B;;;;;;;;;;;;;;;;;;AAj6CG,QAAM,WAk7CV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,KAAK,+BAAgB,CAAC;;AAE1B,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;;AAExB,QAAI,KAAK,CAAC,iBAAiB,EAAE;;;;;;;;;AAS3B,YAAM,CAAC,EAAE,8BAAW,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,wBAAwB,CAAC,CAAC,EAAC;AAC5F,YAAI,CAAC,YAAY,CAAC,4BAAS,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;;;AAGrD,YAAI,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;AACjC,gBAAM,CAAC,GAAG,8BAAW,KAAK,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxE;;AAED,YAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;OAClC,CAAC,CAAC,CAAC;;AAEJ,UAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;KAErC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE;;;AAG1C,UAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;KACnC,MAAM;;;AAGL,UAAI,CAAC,eAAe,EAAE,CAAC;AACvB,UAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KAClC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;AAz9CG,QAAM,WAo+CV,cAAc,GAAA,0BAAG;AACf,QAAI,KAAK,+BAAgB,CAAC;AAC1B,QAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;;AAGzB,QAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,kCAAS,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;KAClC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE;AAC3C,UAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;KACjC,MAAM;AACN,UAAI,CAAC,cAAc,EAAE,CAAC;AACtB,UAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACjC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AAn/CG,QAAM,WA0/CV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;;AAGzB,QAAI,CAAC,eAAe,GAAG,4BAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;;;AAG/D,UAAM,CAAC,EAAE,8BAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;AAGvE,gCAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;AAGnD,OAAG,CAAC,UAAU,CAAC,4BAAS,IAAI,EAAE,iBAAiB,CAAC,CAAC;;AAEjD,QAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;GACjC;;;;;;;;;AA1gDG,QAAM,WAkhDV,kBAAkB,GAAA,4BAAC,KAAK,EAAE;AACxB,QAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;AACxB,UAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;AAChC,YAAI,CAAC,cAAc,EAAE,CAAC;OACvB,MAAM;AACL,YAAI,CAAC,cAAc,EAAE,CAAC;OACvB;KACF;GACF;;;;;;;;AA1hDG,QAAM,WAiiDV,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,UAAM,CAAC,GAAG,8BAAW,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;;;AAGzD,gCAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;;;AAG/D,OAAG,CAAC,aAAa,CAAC,4BAAS,IAAI,EAAE,iBAAiB,CAAC,CAAC;;;;AAIpD,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;;AA9iDG,QAAM,WAujDV,YAAY,GAAA,sBAAC,OAAO,EAAE;;AAEpB,SAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACrD,UAAI,QAAQ,GAAG,gCAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,UAAI,IAAI,GAAG,yBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAG5C,UAAI,CAAC,IAAI,EAAE;AACT,gCAAI,KAAK,WAAS,QAAQ,uEAAoE,CAAC;AAC/F,iBAAS;OACV;;;AAGD,UAAI,IAAI,CAAC,WAAW,EAAE,EAAE;;AAEtB,aAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,OAAO,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACrC,cAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;;AAGlB,cAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AAC9B,mBAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;WAC3C;SACF;OACF;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAllDG,QAAM,WAonDV,GAAG,GAAA,aAAC,MAAM,EAAE;AACV,QAAI,MAAM,KAAK,SAAS,EAAE;AACxB,aAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;KAC7B;;AAED,QAAI,WAAW,GAAG,yBAAU,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;AAGzD,QAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,UAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;;KAG1B,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;;AAErC,YAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;OAG3B,MAAM,IAAI,MAAM,YAAY,MAAM,EAAE;;;AAGnC,cAAI,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;;;AAGrD,gBAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;WAC5B,MAAM;AACL,gBAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,gBAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;;;AAGtC,gBAAI,CAAC,KAAK,CAAC,YAAU;;;;;;AAMnB,kBAAI,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AACrD,oBAAI,CAAC,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;eACrC,MAAM;AACL,oBAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;eACnC;;AAED,kBAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE;AACpC,oBAAI,CAAC,IAAI,EAAE,CAAC;eACb;;AAED,kBAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC1B,oBAAI,CAAC,IAAI,EAAE,CAAC;eACb;;;aAGF,EAAE,IAAI,CAAC,CAAC;WACV;SACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AA3qDG,QAAM,WAorDV,WAAW,GAAA,qBAAC,OAAO,EAAE;AACnB,QAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;;AAE5C,QAAI,UAAU,EAAE;AACd,UAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;;AAEtC,YAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;OAC7B,MAAM;;AAEL,YAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;OACpD;KACF,MAAM;;AAEL,UAAI,CAAC,UAAU,CAAE,YAAW;AAC1B,YAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;OACpF,EAAE,CAAC,CAAC,CAAC;;;;AAIN,UAAI,CAAC,YAAY,EAAE,CAAC;KACrB;GACF;;;;;;;;;AAzsDG,QAAM,WAitDV,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACvB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AAptDG,QAAM,WA6tDV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;GAC7D;;;;;;;;;;;AA/tDG,QAAM,WAyuDV,WAAW,GAAA,uBAAG;AACZ,WAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;GAChC;;;;;;;;;;;AA3uDG,QAAM,WAqvDV,OAAO,GAAA,iBAAC,KAAK,EAAE;AACb,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,SAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACpC,UAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;GACjC;;;;;;;;;;;AA5vDG,QAAM,WAswDV,QAAQ,GAAA,kBAAC,KAAK,EAAE;AACd,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACrC,UAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC/B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;GACzC;;;;;;;;;;;AA7wDG,QAAM,WAuxDV,IAAI,GAAA,cAAC,KAAK,EAAE;AACV,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACjC,UAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;GAC9B;;;;;;;;;;;;;;;;;;;AA9xDG,QAAM,WAgzDV,MAAM,GAAA,gBAAC,GAAG,EAAE;AACV,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,OAAO,CAAC;KACrB;;;;AAID,QAAI,CAAC,GAAG,EAAE;AACR,SAAG,GAAG,EAAE,CAAC;KACV;;;AAGD,QAAI,CAAC,OAAO,GAAG,GAAG,CAAC;;;AAGnB,QAAI,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;;;AAGjC,QAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;AAE7B,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;AAr0DG,QAAM,WAk1DV,uBAAuB,GAAA,mCAAG;AACxB,QAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACpD,UAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;;;AAGzC,UAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KAC9B;GACF;;;;;;;;;;AAz1DG,QAAM,WAk2DV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;;AAEd,UAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;AAEtB,YAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC9B,cAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SACrC;;AAED,YAAI,IAAI,EAAE;AACR,cAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAC1C,cAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACtC,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;;AAEhC,cAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,gBAAI,CAAC,yBAAyB,EAAE,CAAC;WAClC;SACF,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACzC,cAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACvC,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;;AAEjC,cAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,gBAAI,CAAC,4BAA4B,EAAE,CAAC;WACrC;SACF;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;GACzB;;;;;;;;;;;;;;;AAl4DG,QAAM,WAg5DV,mBAAmB,GAAA,6BAAC,IAAI,EAAE;AACxB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;;AAEd,UAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AACtC,YAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,YAAI,IAAI,EAAE;AACR,cAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;;;;;;;;;;AAU3C,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACrC,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;;;;;;;;;;AAU9C,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACrC;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;GACpC;;;;;;;;;;;AAn7DG,QAAM,WA67DV,KAAK,GAAA,eAAC,GAAG,EAAE;AACT,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;KAC5B;;;AAGD,QAAI,GAAG,KAAK,IAAI,EAAE;AAChB,UAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,UAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;;;AAGD,QAAI,GAAG,qCAAsB,EAAE;AAC7B,UAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB,MAAM;AACL,UAAI,CAAC,MAAM,GAAG,8BAAe,GAAG,CAAC,CAAC;KACnC;;;AAGD,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;;AAGtB,QAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;;;AAI3B,4BAAI,KAAK,YAAU,IAAI,CAAC,MAAM,CAAC,IAAI,SAAI,0BAAW,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;AAErH,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA39DG,QAAM,WAm+DV,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;GAAE;;;;;;;;;AAn+DtC,QAAM,WA2+DV,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;GAAE;;;;;;;;;;AA3+D1C,QAAM,WAo/DV,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;GAAE;;;;;;;;;AAp/D5C,QAAM,WA4/DV,kBAAkB,GAAA,4BAAC,KAAK,EAAE;AACxB,QAAI,CAAC,aAAa,GAAG,IAAI,CAAC;GAC3B;;;;;;;;;;AA9/DG,QAAM,WAugEV,UAAU,GAAA,oBAAC,IAAI,EAAE;AACf,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACd,UAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC7B,YAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAI,IAAI,EAAE;;;AAGR,cAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,cAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACtC,cAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACjC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAC5B,MAAM;;;AAGL,cAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;;;;;;;;AAU3B,cAAG,IAAI,CAAC,KAAK,EAAE;AACb,gBAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,UAAS,CAAC,EAAC;AACrC,eAAC,CAAC,eAAe,EAAE,CAAC;AACpB,eAAC,CAAC,cAAc,EAAE,CAAC;aACpB,CAAC,CAAC;WACJ;;AAED,cAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACpC,cAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACnC,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC9B;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,WAAW,CAAC;GACzB;;;;;;;;;AA/iEG,QAAM,WAujEV,sBAAsB,GAAA,kCAAG;AACvB,QAAI,eAAe,YAAA;QAAE,SAAS,YAAA;QAAE,SAAS,YAAA,CAAC;;AAE1C,QAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;;AAE5D,QAAI,eAAe,GAAG,SAAlB,eAAe,CAAY,CAAC,EAAE;;;AAGhC,UAAG,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE;AACrD,iBAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AACtB,iBAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AACtB,sBAAc,EAAE,CAAC;OAClB;KACF,CAAC;;AAEF,QAAI,eAAe,GAAG,SAAlB,eAAe,GAAc;AAC/B,oBAAc,EAAE,CAAC;;;;AAIjB,UAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;;;;AAIpC,qBAAe,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;KACzD,CAAC;;AAEF,QAAI,aAAa,GAAG,SAAhB,aAAa,CAAY,KAAK,EAAE;AAClC,oBAAc,EAAE,CAAC;;AAEjB,UAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;KACrC,CAAC;;;AAGF,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACtC,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACtC,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;;;;AAIlC,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;;;;;;;AAOjC,QAAI,iBAAiB,YAAA,CAAC;AACtB,QAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,YAAW;;AAE9C,UAAI,IAAI,CAAC,aAAa,EAAE;;AAEtB,YAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;AAG3B,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;;AAGtB,YAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;;AAErC,YAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACjD,YAAI,OAAO,GAAG,CAAC,EAAE;;;AAGf,2BAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;;;AAI9C,gBAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,kBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAC1B;WACF,EAAE,OAAO,CAAC,CAAC;SACb;OACF;KACF,EAAE,GAAG,CAAC,CAAC;GACT;;;;;;;;;;;;;;AAnoEG,QAAM,WAgpEV,YAAY,GAAA,sBAAC,IAAI,EAAE;AACjB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACxC,aAAO,IAAI,CAAC;KACb;;AAED,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,EAAE;AACpD,aAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;KACtC,MAAM;AACL,aAAO,GAAG,CAAC;KACZ;GACF;;;;;;;;;;;;AA3pEG,QAAM,WAsqEV,OAAO,GAAA,iBAAC,IAAI,EAAE;AACZ,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,aAAO,IAAI,CAAC;KACb;;AAED,WAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;GACxB;;;;;;;;;;;;;;;;;;;;;;;AA7qEG,QAAM,WAmsEV,YAAY,GAAA,wBAAG;AACb,WAAO,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;GACtC;;;;;;;;;;;;;;;;;;;;;;;;;;AArsEG,QAAM,WA8tEV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;GACpC;;;;;;;;;;;;;;;;;;AAhuEG,QAAM,WAivEV,UAAU,GAAA,sBAAG;;;AAGX,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;GACjD;;;;;;;;;AArvEG,QAAM,WA6vEV,gBAAgB,GAAA,4BAAG;AACjB,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC;GACvD;;;;;;;;;;;;;AA/vEG,QAAM,WA2wEV,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACxE;;;;;;;;;AA7wEG,QAAM,WAqxEV,kBAAkB,GAAA,4BAAC,OAAO,EAAE;AAC1B,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;GAChE;;;;;;;;;AAvxEG,QAAM,WA+xEV,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC;GAC1D;;;;;;;;;AAjyEG,QAAM,WAyyEV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;GAC5E;;;;;;;;;AA3yEG,QAAM,WAmzEV,WAAW,GAAA,uBAAG;AACZ,WAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;GAC9E;;;;;;;;;;;;;;;;;;;;;;;AArzEG,QAAM,WA20EV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,IAAI,CAAC,SAAS,CAAC;KACvB;;AAED,QAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAC,IAAI,CAAA,CAAE,WAAW,EAAE,CAAC;AACzC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAl1EG,QAAM,WA41EV,SAAS,GAAA,qBAAG;AACV,WAAQ,iCAAa,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC5E;;;;;;;;;AA91EG,QAAM,WAs2EV,MAAM,GAAA,kBAAG;AACP,QAAI,OAAO,GAAG,iCAAa,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;AAE5B,WAAO,CAAC,MAAM,GAAG,EAAE,CAAC;;AAEpB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;AAGtB,WAAK,GAAG,iCAAa,KAAK,CAAC,CAAC;AAC5B,WAAK,CAAC,MAAM,GAAG,SAAS,CAAC;AACzB,aAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KAC3B;;AAED,WAAO,OAAO,CAAC;GAChB;;;;;;;;;;;AAt3EG,QAAM,CAg4EH,cAAc,GAAA,wBAAC,GAAG,EAAE;AACzB,QAAI,WAAW,GAAG;AAChB,eAAS,EAAE,EAAE;AACb,cAAQ,EAAE,EAAE;KACb,CAAC;;AAEF,QAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;;;AAG3C,QAAI,SAAS,KAAK,IAAI,EAAC;;;4BAGD,gCAAe,SAAS,IAAI,IAAI,CAAC;;UAA9C,GAAG;UAAE,IAAI;;AAChB,UAAI,GAAG,EAAE;AACP,gCAAI,KAAK,CAAC,GAAG,CAAC,CAAC;OAChB;AACD,gCAAO,UAAU,EAAE,IAAI,CAAC,CAAC;KAC1B;;AAED,8BAAO,WAAW,EAAE,UAAU,CAAC,CAAC;;;AAGhC,QAAI,GAAG,CAAC,aAAa,EAAE,EAAE;AACvB,UAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEhC,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,YAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAE1B,YAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC/C,YAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE;AAChC,qBAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;SACrD;OACF;KACF;;AAED,WAAO,WAAW,CAAC;GACpB;;SAv6EG,MAAM;;;AAg7EZ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;;AAEpB,IAAI,SAAS,GAAG,0BAAO,SAAS,CAAC;;;;;;;;;AASjC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG;;AAE1B,WAAS,EAAE,CAAC,OAAO,EAAC,OAAO,CAAC;;;AAG5B,OAAK,EAAE,EAAE;AACT,OAAK,EAAE,EAAE;;;AAGT,eAAa,EAAE,IAAI;;;AAGnB,mBAAiB,EAAE,IAAI;;;AAGvB,eAAa,EAAE,EAAE;;;;;AAKjB,UAAQ,EAAE,CACR,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,mBAAmB,CACpB;;AAED,UAAQ,EAAE,4BAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI;;;AAGhL,WAAS,EAAE,EAAE;;;AAGb,qBAAmB,EAAE,gDAAgD;CACtE,CAAC;;;;;;;AAOF,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC;;;;;;;AAOvC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;AAOnC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;AAOnC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;;;;;;;;;AASrC,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAC;;;;;;;AAOnC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;;;;;;;AAOrC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;;AAE9B,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAW;AAC9C,MAAI,IAAI,GAAG,4BAAS,aAAa,CAAC,GAAG,CAAC,CAAC;;;;AAIvC,SAAO,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK,IAC1B,iBAAiB,IAAI,IAAI,CAAC,KAAK,IAC/B,cAAc,IAAI,IAAI,CAAC,KAAK,IAC5B,aAAa,IAAI,IAAI,CAAC,KAAK,IAC3B,aAAa,IAAI,IAAI,CAAC,KAAK,CAAA,sCAAuC,CAAC;CAC5E,CAAC;;AAEF,yBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;;;;;wBCzlFF,aAAa;;;;;;;;;;;AAShC,IAAI,MAAM,GAAG,SAAT,MAAM,CAAY,IAAI,EAAE,IAAI,EAAC;AAC/B,wBAAO,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/B,CAAC;;qBAEa,MAAM;;;;;;;;;;;;;;;;;;;wBCbF,aAAa;;;;2BACV,gBAAgB;;;;yBAClB,eAAe;;IAAvB,EAAE;;0BACO,gBAAgB;;IAAzB,GAAG;;8BACU,oBAAoB;;IAAjC,OAAO;;;;;;;;;;;IAUb,WAAW;YAAX,WAAW;;AAEJ,WAFP,WAAW,CAEH,MAAM,EAAE,OAAO,EAAC;0BAFxB,WAAW;;AAGb,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;AACd,UAAM,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACvD;;;;;;;;AAPG,aAAW,WAcf,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,sBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AAjBG,aAAW,WAyBf,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,YAAY;;;AAGvB,cAAQ,EAAE,CAAC,CAAC;KACb,CAAC,CAAC;;;;;;AAMH,QAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;AACtC,UAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;;AAED,WAAO,EAAE,CAAC;GACX;;;;;;;;AA3CG,aAAW,WAkDf,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;;AAEjC,QAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;;;AAIjB,QAAI,GAAG,EAAE;AACP,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AA9DG,aAAW,WAsEf,MAAM,GAAA,gBAAC,GAAG,EAAE;AACV,QAAI,IAAI,CAAC,YAAY,EAAE;AACrB,UAAI,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;KAC7B,MAAM;AACL,UAAI,eAAe,GAAG,EAAE,CAAC;;;AAGzB,UAAI,GAAG,EAAE;AACP,uBAAe,aAAW,GAAG,OAAI,CAAC;OACnC;;AAED,UAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;KAClD;GACF;;;;;;;;AAnFG,aAAW,WA0Ff,WAAW,GAAA,uBAAG;;;AAGZ,QAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;;SAlGG,WAAW;;;AAsGjB,yBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;;6BClHF,mBAAmB;;IAA/B,MAAM;;8BACG,iBAAiB;;;;4BACnB,eAAe;;;;AAElC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,OAAO,YAAA,CAAC;;;AAIZ,IAAI,SAAS,GAAG,SAAZ,SAAS,GAAa;;;;;;;;AAQxB,MAAI,IAAI,GAAG,4BAAS,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAClD,MAAI,MAAM,GAAG,4BAAS,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpD,MAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,MAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,cAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACxB;GACF;AACD,MAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACtC,cAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;GACF;;;AAGD,MAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEnC,SAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,UAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;;;AAI1B,UAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE;;;AAGnC,YAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE;AACnC,cAAI,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;;;AAIjD,cAAI,OAAO,KAAK,IAAI,EAAE;;AAEpB,gBAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;WAC/B;SACF;;;OAGF,MAAM;AACL,0BAAgB,CAAC,CAAC,CAAC,CAAC;AACpB,gBAAM;SACP;KACF;;;GAGF,MAAM,IAAI,CAAC,aAAa,EAAE;AACzB,sBAAgB,CAAC,CAAC,CAAC,CAAC;KACrB;CACF,CAAC;;;AAGF,IAAI,gBAAgB,GAAG,SAAnB,gBAAgB,CAAY,IAAI,EAAE,GAAG,EAAC;AACxC,SAAO,GAAG,GAAG,CAAC;AACd,YAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CAC7B,CAAC;;AAEF,IAAI,4BAAS,UAAU,KAAK,UAAU,EAAE;AACtC,eAAa,GAAG,IAAI,CAAC;CACtB,MAAM;AACL,QAAM,CAAC,GAAG,4BAAS,MAAM,EAAE,YAAU;AACnC,iBAAa,GAAG,IAAI,CAAC;GACtB,CAAC,CAAC;CACJ;;AAED,IAAI,SAAS,GAAG,SAAZ,SAAS,GAAc;AACzB,SAAO,aAAa,CAAC;CACtB,CAAC;;QAEO,SAAS,GAAT,SAAS;QAAE,gBAAgB,GAAhB,gBAAgB;QAAE,SAAS,GAAT,SAAS;;;;;;;;;;;;;;;;;;2BCvFzB,iBAAiB;;;;0BAClB,iBAAiB;;IAA1B,GAAG;;8BACM,iBAAiB;;;;4BACnB,eAAe;;;;;;;;;;;;;IAU5B,MAAM;YAAN,MAAM;;AAEC,WAFP,MAAM,CAEE,MAAM,EAAE,OAAO,EAAE;0BAFzB,MAAM;;AAGR,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;;AAGhD,QAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;AAExC,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAChD;;;;;;;;;;;AAnBG,QAAM,WA6BV,QAAQ,GAAA,kBAAC,IAAI,EAA2B;QAAzB,KAAK,yDAAC,EAAE;QAAE,UAAU,yDAAC,EAAE;;;AAEpC,SAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;AAClD,SAAK,GAAG,0BAAO;AACb,cAAQ,EAAE,CAAC;KACZ,EAAE,KAAK,CAAC,CAAC;;AAEV,cAAU,GAAG,0BAAO;AAClB,YAAM,EAAE,QAAQ;AAChB,qBAAe,EAAE,CAAC;AAClB,qBAAe,EAAE,CAAC;AAClB,qBAAe,EAAE,GAAG;AACpB,cAAQ,EAAE,CAAC;KACZ,EAAE,UAAU,CAAC,CAAC;;AAEf,WAAO,qBAAM,QAAQ,KAAA,OAAC,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;GAChD;;;;;;;;;AA7CG,QAAM,WAqDV,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,SAAK,CAAC,cAAc,EAAE,CAAC;AACvB,OAAG,CAAC,kBAAkB,EAAE,CAAC;;AAEzB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;AAE7B,QAAI,CAAC,EAAE,8BAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrD,QAAI,CAAC,EAAE,8BAAW,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,QAAI,CAAC,EAAE,8BAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrD,QAAI,CAAC,EAAE,8BAAW,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;AAElD,QAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;GAC7B;;;;;;;;AAlEG,QAAM,WAyEV,eAAe,GAAA,2BAAG,EAAE;;;;;;;;AAzEhB,QAAM,WAgFV,aAAa,GAAA,yBAAG;AACd,OAAG,CAAC,oBAAoB,EAAE,CAAC;;AAE3B,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;;AAE/B,QAAI,CAAC,GAAG,8BAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,8BAAW,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,QAAI,CAAC,GAAG,8BAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,8BAAW,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;AAEnD,QAAI,CAAC,MAAM,EAAE,CAAC;GACf;;;;;;;;AA5FG,QAAM,WAmGV,MAAM,GAAA,kBAAG;;;AAGP,QAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO;;;;;AAKtB,QAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACjC,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;;;AAGnB,QAAI,CAAC,GAAG,EAAE,OAAO;;;AAGjB,QAAI,OAAO,QAAQ,KAAK,QAAQ,IAC5B,QAAQ,KAAK,QAAQ,IACrB,QAAQ,GAAG,CAAC,IACZ,QAAQ,KAAK,QAAQ,EAAE;AACrB,cAAQ,GAAG,CAAC,CAAC;KAClB;;;AAGD,QAAI,UAAU,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;;;AAGnD,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,SAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;KACpC,MAAM;AACL,SAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;KACnC;GACF;;;;;;;;;AAlIG,QAAM,WA0IV,iBAAiB,GAAA,2BAAC,KAAK,EAAC;AACtB,QAAI,QAAQ,GAAG,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACvD,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,aAAO,QAAQ,CAAC,CAAC,CAAC;KACnB;AACD,WAAO,QAAQ,CAAC,CAAC,CAAC;GACnB;;;;;;;;AAhJG,QAAM,WAuJV,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,EAAE,8BAAW,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;GACnD;;;;;;;;;AAzJG,QAAM,WAiKV,cAAc,GAAA,wBAAC,KAAK,EAAE;AACpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;;AAC5C,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,QAAQ,EAAE,CAAC;KACjB,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;;AACnD,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;;;;;;;;AAzKG,QAAM,WAgLV,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,GAAG,8BAAW,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;GACpD;;;;;;;;;;AAlLG,QAAM,WA2LV,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,SAAK,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAK,CAAC,cAAc,EAAE,CAAC;GACxB;;;;;;;;;;AA9LG,QAAM,WAuMV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KAChC;;AAED,QAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;;AAExB,QAAI,IAAI,CAAC,SAAS,EAAE;AAClB,UAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;KACtC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;KACxC;;AAED,WAAO,IAAI,CAAC;GACb;;SArNG,MAAM;;;AAyNZ,yBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;ACvOrB,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACjC,OAAK,CAAC,gBAAgB,GAAG;AACvB,cAAU,EAAE,KAAK;AACjB,cAAU,EAAE,KAAK;GAClB,CAAC;;AAEF,OAAK,CAAC,eAAe,GAAG,UAAS,UAAU,EAAE,MAAM,EAAE;AACnD,WAAO,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC;GAClC,CAAC;;AAEF,OAAK,CAAC,aAAa,GAAG,UAAS,GAAG,EAAE;AAClC,QAAI,KAAK,GAAG;AACV,gBAAU,EAAE,EAAE;AACd,YAAM,EAAE,EAAE;KACX,CAAC;;AAEF,QAAI,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC;;;;;AAKvB,QAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAI,WAAW,YAAA,CAAC;AAChB,QAAI,OAAO,KAAK,CAAC,CAAC,EAAE;AAClB,iBAAW,GAAG,OAAO,GAAG,CAAC,CAAC;KAC3B,MACI;;AAEH,aAAO,GAAG,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,UAAI,OAAO,KAAK,CAAC,EAAE;;AAEjB,eAAO,GAAG,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;OACpC;KACF;AACD,SAAK,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAK,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;;AAEtD,WAAO,KAAK,CAAC;GACd,CAAC;;AAEF,OAAK,CAAC,eAAe,GAAG,UAAS,OAAO,EAAE;AACxC,WAAO,OAAO,IAAI,KAAK,CAAC,gBAAgB,CAAC;GAC1C,CAAC;;;;AAIF,OAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC;;AAEpC,OAAK,CAAC,cAAc,GAAG,UAAS,GAAG,EAAE;AACnC,WAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GAChC,CAAC;;;;;;AAMF,OAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;;;;;;;AAO7B,OAAK,CAAC,iBAAiB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AACxD,QAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC1E,aAAO,OAAO,CAAC;KAChB;;AAED,WAAO,EAAE,CAAC;GACX,CAAC;;;;;;;;;AASF,OAAK,CAAC,iBAAiB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC3D,QAAI,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAE/C,QAAI,CAAC,mBAAmB,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/C,QAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;GACxC,CAAC;;;AAGF,OAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;AAErD,SAAO,KAAK,CAAC;CACd;;qBAEc,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;oBCvFhB,QAAQ;;;;0BACJ,iBAAiB;;IAA1B,GAAG;;0BACM,iBAAiB;;IAA1B,GAAG;;iCACiB,yBAAyB;;yBAC1B,cAAc;;;;yBACvB,cAAc;;;;4BACjB,eAAe;;;;4BACf,eAAe;;;;AAElC,IAAI,SAAS,GAAG,0BAAO,SAAS,CAAC;;;;;;;;;;IAS3B,KAAK;YAAL,KAAK;;AAEE,WAFP,KAAK,CAEG,OAAO,EAAE,KAAK,EAAC;0BAFvB,KAAK;;AAGP,qBAAM,OAAO,EAAE,KAAK,CAAC,CAAC;;;AAGtB,QAAI,OAAO,CAAC,MAAM,EAAE;AAClB,UAAI,CAAC,KAAK,CAAC,YAAU;AACnB,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;OAChC,EAAE,IAAI,CAAC,CAAC;KACV;;;;AAID,QAAI,OAAO,CAAC,SAAS,EAAE;AACrB,UAAI,CAAC,KAAK,CAAC,YAAU;AACnB,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,YAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;OACrC,EAAE,IAAI,CAAC,CAAC;KACV;;;;;;AAMD,8BAAO,OAAO,GAAG,0BAAO,OAAO,IAAI,EAAE,CAAC;AACtC,8BAAO,OAAO,CAAC,KAAK,GAAG,0BAAO,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAClD,8BAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,8BAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,8BAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;;AAE7C,QAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAW;AAC3B,UAAI,CAAC,eAAe,GAAG,SAAS,CAAC;KAClC,CAAC,CAAC;GACJ;;;;;;;;;;;AAnCG,OAAK,WA2CT,QAAQ,GAAA,oBAAG;AACT,QAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;;;;;;AAM5B,QAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAChB,aAAO,CAAC,GAAG,GAAG,mDAAmD,CAAC;KACnE;;;AAGD,QAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;;;AAG3B,QAAI,SAAS,GAAG,0BAAO;;;AAGrB,qBAAe,EAAE,uBAAuB;AACxC,0BAAoB,EAAE,uBAAuB;AAC7C,+BAAyB,EAAE,uBAAuB;;;AAGlD,gBAAU,EAAE,OAAO,CAAC,QAAQ;AAC5B,eAAS,EAAE,OAAO,CAAC,OAAO;AAC1B,YAAM,EAAE,OAAO,CAAC,IAAI;AACpB,aAAO,EAAE,OAAO,CAAC,KAAK;;KAEvB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;;AAGtB,QAAI,MAAM,GAAG,0BAAO;AAClB,aAAO,EAAE,QAAQ;AACjB,eAAS,EAAE,SAAS;KACrB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;;;AAGnB,QAAI,UAAU,GAAG,0BAAO;AACtB,UAAI,EAAE,KAAK;AACX,YAAM,EAAE,KAAK;AACb,aAAO,EAAE,UAAU;KACpB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAEvB,QAAI,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnE,QAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;;AAErB,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;AA1FG,OAAK,WAiGT,IAAI,GAAA,gBAAG;AACL,QAAI,IAAI,CAAC,KAAK,EAAE,EAAE;AAChB,UAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;KACxB;AACD,QAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;GACrB;;;;;;;;AAtGG,OAAK,WA6GT,KAAK,GAAA,iBAAG;AACN,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;GACtB;;;;;;;;;;AA/GG,OAAK,WAwHT,GAAG,GAAA,aAAC,IAAG,EAAE;AACP,QAAI,IAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC1B;;;AAGD,WAAO,IAAI,CAAC,MAAM,CAAC,IAAG,CAAC,CAAC;GACzB;;;;;;;;;;AA/HG,OAAK,WAwIT,MAAM,GAAA,gBAAC,GAAG,EAAE;;AAEV,OAAG,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;;;AAItB,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,IAAI,GAAG,IAAI,CAAC;AAChB,UAAI,CAAC,UAAU,CAAC,YAAU;AAAE,YAAI,CAAC,IAAI,EAAE,CAAC;OAAE,EAAE,CAAC,CAAC,CAAC;KAChD;GACF;;;;;;;AAnJG,OAAK,WAyJT,OAAO,GAAA,mBAAG;AACR,WAAO,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;GAC3C;;;;;;;;;AA3JG,OAAK,WAmKT,cAAc,GAAA,wBAAC,IAAI,EAAE;AACnB,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/B,QAAI,QAAQ,CAAC,MAAM,EAAE;;AAEnB,UAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,UAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;AAE3F,UAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,UAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxB,UAAI,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC9C,sBAAM,cAAc,KAAA,MAAE,CAAC;KACxB;GACF;;;;;;;;;;AA/KG,OAAK,WAwLT,WAAW,GAAA,qBAAC,IAAI,EAAE;;;AAGhB,QAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,aAAO,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;KAClC;AACD,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;GAChD;;;;;;;;AA/LG,OAAK,WAsMT,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,CAAC,cAAc,EAAE;AACvB,aAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;KAChC,MAAM;AACL,aAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KAC/C;GACF;;;;;;;;AA5MG,OAAK,WAmNT,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;GACrB;;;;;;;;AArNG,OAAK,WA4NT,MAAM,GAAA,kBAAG;AACP,QAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;GACpC;;;;;;;;AA9NG,OAAK,WAqOT,SAAS,GAAA,qBAAG,EAAE;;;;;;;;;AArOV,OAAK,WA6OT,QAAQ,GAAA,oBAAG;AACT,QAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjC,QAAI,QAAQ,KAAK,CAAC,EAAE;AAClB,aAAO,oCAAiB,CAAC;KAC1B;AACD,WAAO,mCAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC;GACrC;;;;;;;;;AAnPG,OAAK,WA2PT,QAAQ,GAAA,oBAAG;AACT,QAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;AAClD,QAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACvB,aAAO,oCAAiB,CAAC;KAC1B;AACD,WAAO,mCAAgB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;GACpD;;;;;;;;;;;AAjQG,OAAK,WA2QT,kBAAkB,GAAA,8BAAG;AACnB,WAAO,KAAK,CAAC;GACd;;;;;;;;;;;AA7QG,OAAK,WAuRT,eAAe,GAAA,2BAAG;AAChB,WAAO,KAAK,CAAC;GACd;;SAzRG,KAAK;;;AA+RX,IAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;AAC7B,IAAM,UAAU,GAAG,2IAA2I,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1K,IAAM,SAAS,GAAG,0HAA0H,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAExJ,SAAS,aAAa,CAAC,IAAI,EAAC;AAC1B,MAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAI,CAAC,KAAK,GAAC,SAAS,CAAC,GAAG,UAAS,GAAG,EAAC;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;GAAE,CAAC;CACtF;AACD,SAAS,aAAa,CAAC,IAAI,EAAE;AAC3B,MAAI,CAAC,IAAI,CAAC,GAAG,YAAU;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;GAAE,CAAC;CACnE;;;AAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,eAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,eAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B;;;AAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,eAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B;;;;AAID,KAAK,CAAC,WAAW,GAAG,YAAU;AAC5B,SAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;;CAEjC,CAAC;;;AAGF,kBAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC;;;;;;;;;AAS/B,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;;;;;;;;AAQ/B,KAAK,CAAC,mBAAmB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AAC1D,MAAI,IAAI,CAAC;;AAET,WAAS,aAAa,CAAC,GAAG,EAAE;AAC1B,QAAI,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpC,QAAI,GAAG,EAAE;AACP,wBAAgB,GAAG,CAAG;KACvB;AACD,WAAO,EAAE,CAAC;GACX;;AAED,MAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAChB,QAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GAClC,MAAM;;AAEL,QAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;GACrD;;AAED,MAAI,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,WAAO,OAAO,CAAC;GAChB;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;;;;;;;;;;AAUF,KAAK,CAAC,mBAAmB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC7D,MAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC;;;;;;AAMF,KAAK,CAAC,mBAAmB,CAAC,OAAO,GAAG,YAAU,EAAE,CAAC;;;AAGjD,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;AAEvD,KAAK,CAAC,OAAO,GAAG;AACd,aAAW,EAAE,KAAK;AAClB,eAAa,EAAE,KAAK;AACpB,aAAW,EAAE,KAAK;AAClB,aAAW,EAAE,KAAK;CACnB,CAAC;;AAEF,KAAK,CAAC,OAAO,GAAG,UAAS,OAAO,EAAC;AAC/B,MAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,MAAI,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC;;;;AAIzB,MAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE;;AAErB,SAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;GACxB;CACF,CAAC;;;;AAIF,KAAK,CAAC,UAAU,GAAG,UAAS,IAAI,EAAC;;AAE/B,MAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE;AACd,WAAO;GACR;;;AAGD,MAAI,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE;;AAE7B,QAAI,CAAC,YAAY,EAAE,CAAC;GACrB,MAAM;;AAEL,QAAI,CAAC,UAAU,CAAC,YAAU;AACxB,WAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC;KAC3B,EAAE,EAAE,CAAC,CAAC;GACR;CACF,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE,SAAS,EAAC;AACxC,MAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACjC,MAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CACzB,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE,GAAG,EAAC;AAClC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;;;AAGnC,MAAI,GAAG,KAAK,aAAa,EAAE;AACzB,WAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;GACtB;;;AAGD,MAAI,CAAC,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC;CAC7B,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,YAAU;AACxB,MAAI,OAAO,GAAG,OAAO,CAAC;;;AAGtB,MAAI;AACF,WAAO,GAAG,IAAI,0BAAO,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;;;GAGzI,CAAC,OAAM,CAAC,EAAE;AACT,QAAI;AACF,UAAI,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,aAAa,EAAC;AACrE,eAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA,CAAE,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;OACtJ;KACF,CAAC,OAAM,GAAG,EAAE,EAAE;GAChB;AACD,SAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC3B,CAAC;;;AAGF,KAAK,CAAC,KAAK,GAAG,UAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC;AACxD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;;;AAGpE,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;;AAEnE,SAAO,GAAG,CAAC;CACZ,CAAC;;AAEF,KAAK,CAAC,YAAY,GAAG,UAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC;AAC/D,MAAM,MAAM,GAAG,+CAA+C,CAAC;AAC/D,MAAI,eAAe,GAAG,EAAE,CAAC;AACzB,MAAI,YAAY,GAAG,EAAE,CAAC;AACtB,MAAI,WAAW,GAAG,EAAE,CAAC;;;AAGrB,MAAI,SAAS,EAAE;AACb,UAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AACzD,qBAAe,IAAO,GAAG,SAAI,SAAS,CAAC,GAAG,CAAC,UAAO,CAAC;KACpD,CAAC,CAAC;GACJ;;;AAGD,QAAM,GAAG,0BAAO;AACd,WAAO,EAAE,GAAG;AACZ,eAAW,EAAE,eAAe;AAC5B,uBAAmB,EAAE,QAAQ;AAC7B,qBAAiB,EAAE,KAAK;GACzB,EAAE,MAAM,CAAC,CAAC;;;AAGX,QAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AACtD,gBAAY,sBAAoB,GAAG,iBAAY,MAAM,CAAC,GAAG,CAAC,SAAM,CAAC;GAClE,CAAC,CAAC;;AAEH,YAAU,GAAG,0BAAO;;AAElB,UAAM,EAAE,GAAG;;;AAGX,WAAO,EAAE,MAAM;AACf,YAAQ,EAAE,MAAM;;GAEjB,EAAE,UAAU,CAAC,CAAC;;;AAGf,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AAC1D,eAAW,IAAO,GAAG,UAAK,UAAU,CAAC,GAAG,CAAC,OAAI,CAAC;GAC/C,CAAC,CAAC;;AAEH,cAAU,MAAM,GAAG,WAAW,SAAI,YAAY,eAAY;CAC3D,CAAC;;;AAGF,uBAAmB,KAAK,CAAC,CAAC;;AAE1B,uBAAU,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;qBAC7B,KAAK;;;;;;;;;;;;;;;;;;;;;sBCxhBH,WAAW;;;;yBACN,cAAc;;;;0BACf,iBAAiB;;IAA1B,GAAG;;0BACM,iBAAiB;;IAA1B,GAAG;;yBACK,gBAAgB;;IAAxB,EAAE;;0BACE,iBAAiB;;;;8BACR,qBAAqB;;IAAlC,OAAO;;8BACE,iBAAiB;;;;4BACnB,eAAe;;;;4BACf,eAAe;;;;mCACT,2BAA2B;;;;;;;;;;;;;IAU9C,KAAK;YAAL,KAAK;;AAEE,WAFP,KAAK,CAEG,OAAO,EAAE,KAAK,EAAC;0BAFvB,KAAK;;AAGP,qBAAM,OAAO,EAAE,KAAK,CAAC,CAAC;;AAEtB,QAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;AAM9B,QAAI,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,GAAG,IAAK,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,CAAC,AAAC,EAAE;AAC1G,UAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB,MAAM;AACL,UAAI,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChC;;AAED,QAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE;;AAE5B,UAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAChC,UAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/B,UAAI,WAAW,GAAG,EAAE,CAAC;;AAErB,aAAO,WAAW,EAAE,EAAE;AACpB,YAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B,YAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAI,QAAQ,KAAK,OAAO,EAAE;AACxB,cAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;;;;;AAKlC,uBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;WACxB,MAAM;AACL,gBAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;WAC/C;SACF;OACF;;AAED,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;OACtC;KACF;;AAED,QAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,UAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxE,UAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClE,UAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxE,UAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;;;;;AAMD,QAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,sBAAsB,KAAK,IAAI,IAChE,OAAO,CAAC,SAAS,IACjB,OAAO,CAAC,iBAAiB,EAAE;AAC7B,UAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxB;;AAED,QAAI,CAAC,YAAY,EAAE,CAAC;GACrB;;;;;;;;;;;;;;;;;;AA9DG,OAAK,WAqET,OAAO,GAAA,mBAAG;AACR,QAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;AAC9B,QAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;;AAGnC,QAAI,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE;AAChC,QAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC9D,QAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC7D,QAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACpE;;;AAGD,QAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;;AAE1B,WAAO,CAAC,EAAE,EAAE;AACV,gBAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;;AAGD,SAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,oBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AA1FG,OAAK,WAkGT,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;;;;;AAK3B,QAAI,CAAC,EAAE,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,KAAK,EAAE;;;AAGpD,UAAI,EAAE,EAAE;AACN,YAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjC,UAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtC,aAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAC9B,UAAE,GAAG,KAAK,CAAC;OACZ,MAAM;AACL,UAAE,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;;AAGrC,YAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChF,YAAI,UAAU,GAAG,iCAAa,EAAE,EAAE,aAAa,CAAC,CAAC;AACjD,YAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,KAAK,IAAI,EAAE;AAC3E,iBAAO,UAAU,CAAC,QAAQ,CAAC;SAC5B;;AAED,WAAG,CAAC,eAAe,CAAC,EAAE,EACpB,0BAAO,UAAU,EAAE;AACjB,YAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;AACxB,mBAAO,UAAU;SAClB,CAAC,CACH,CAAC;OACH;KACF;;;AAGD,QAAI,aAAa,GAAG,CAAC,UAAU,EAAC,SAAS,EAAC,MAAM,EAAC,OAAO,CAAC,CAAC;AAC1D,SAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,UAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAI,cAAc,GAAG,EAAE,CAAC;AACxB,UAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;AAC9C,sBAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;OAC5C;AACD,SAAG,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;KACzC;;AAED,WAAO,EAAE,CAAC;;GAEX;;;;;;;AAhJG,OAAK,WAsJT,eAAe,GAAA,yBAAC,EAAE,EAAE;;;AAClB,QAAI,EAAE,CAAC,YAAY,KAAK,CAAC,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC,EAAE;;;AAGlD,aAAO;KACR;;AAED,QAAI,EAAE,CAAC,UAAU,KAAK,CAAC,EAAE;;;;;;;;;;;;AAWvB,YAAI,cAAc,GAAG,KAAK,CAAC;AAC3B,YAAI,iBAAiB,GAAG,SAApB,iBAAiB,GAAc;AACjC,wBAAc,GAAG,IAAI,CAAC;SACvB,CAAC;AACF,cAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;;AAExC,YAAI,gBAAgB,GAAG,SAAnB,gBAAgB,GAAc;;;AAGhC,cAAI,CAAC,cAAc,EAAE;AACnB,gBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;WAC3B;SACF,CAAC;AACF,cAAK,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;;AAE5C,cAAK,KAAK,CAAC,YAAU;AACnB,cAAI,CAAC,GAAG,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC;AACzC,cAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;;AAE7C,cAAI,CAAC,cAAc,EAAE;;AAEnB,gBAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;WAC3B;SACF,CAAC,CAAC;;AAEH;;UAAO;;;;KACR;;;;;;AAMD,QAAI,eAAe,GAAG,CAAC,WAAW,CAAC,CAAC;;;AAGpC,mBAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;;AAGvC,QAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE;AACtB,qBAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACpC;;;AAGD,QAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE;AACtB,qBAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACjC;;;AAGD,QAAI,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE;AACtB,qBAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;KACxC;;;AAGD,QAAI,CAAC,KAAK,CAAC,YAAU;AACnB,qBAAe,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;AACpC,YAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;OACpB,EAAE,IAAI,CAAC,CAAC;KACV,CAAC,CAAC;GACJ;;AAlOG,OAAK,WAoOT,sBAAsB,GAAA,kCAAG;AACvB,QAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;;AAE9B,QAAI,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE;AAC7B,QAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC3D,QAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACjE;GACF;;AA5OG,OAAK,WA8OT,qBAAqB,GAAA,+BAAC,CAAC,EAAE;AACvB,QAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;AACxB,UAAI,EAAE,QAAQ;AACd,YAAM,EAAE,EAAE;AACV,mBAAa,EAAE,EAAE;AACjB,gBAAU,EAAE,EAAE;KACf,CAAC,CAAC;GACJ;;AAtPG,OAAK,WAwPT,kBAAkB,GAAA,4BAAC,CAAC,EAAE;AACpB,QAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GACtC;;AA1PG,OAAK,WA4PT,qBAAqB,GAAA,+BAAC,CAAC,EAAE;AACvB,QAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GACzC;;;;;;;;AA9PG,OAAK,WAqQT,IAAI,GAAA,gBAAG;AAAE,QAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;GAAE;;;;;;;;AArQvB,OAAK,WA4QT,KAAK,GAAA,iBAAG;AAAE,QAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;GAAE;;;;;;;;;AA5QzB,OAAK,WAoRT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AApRhC,OAAK,WA4RT,WAAW,GAAA,uBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AA5R1C,OAAK,WAoST,cAAc,GAAA,wBAAC,OAAO,EAAE;AACtB,QAAI;AACF,UAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;KAChC,CAAC,OAAM,CAAC,EAAE;AACT,8BAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;;KAE1C;GACF;;;;;;;;;AA3SG,OAAK,WAmTT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;GAAE;;;;;;;;;;;AAnTzC,OAAK,WA6TT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AA7TpC,OAAK,WAqUT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AArUhC,OAAK,WA6UT,SAAS,GAAA,mBAAC,gBAAgB,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;GAAE;;;;;;;;;AA7U/D,OAAK,WAqVT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;AArV9B,OAAK,WA6VT,QAAQ,GAAA,kBAAC,KAAK,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;GAAE;;;;;;;;;AA7VvC,OAAK,WAqWT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AArWpC,OAAK,WA6WT,MAAM,GAAA,kBAAG;AAAG,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;AA7WvC,OAAK,WAqXT,kBAAkB,GAAA,8BAAG;AACnB,QAAI,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU,EAAE;AACxD,UAAI,SAAS,GAAG,0BAAO,SAAS,CAAC,SAAS,CAAC;;AAE3C,UAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACxE,eAAO,IAAI,CAAC;OACb;KACF;AACD,WAAO,KAAK,CAAC;GACd;;;;;;;;AA9XG,OAAK,WAqYT,eAAe,GAAA,2BAAG;AAChB,QAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;;AAErB,QAAI,4BAA4B,IAAI,KAAK,EAAE;AACzC,UAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAW;AAC3C,YAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAW;AACzC,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;SAC3D,CAAC,CAAC;;AAEH,YAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;OAC1D,CAAC,CAAC;KACJ;;AAED,QAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE;;;AAG7D,UAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;;AAIhB,UAAI,CAAC,UAAU,CAAC,YAAU;AACxB,aAAK,CAAC,KAAK,EAAE,CAAC;AACd,aAAK,CAAC,qBAAqB,EAAE,CAAC;OAC/B,EAAE,CAAC,CAAC,CAAC;KACP,MAAM;AACL,WAAK,CAAC,qBAAqB,EAAE,CAAC;KAC/B;GACF;;;;;;;;AAhaG,OAAK,WAuaT,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;GACjC;;;;;;;;;;AAzaG,OAAK,WAkbT,GAAG,GAAA,aAAC,IAAG,EAAE;AACP,QAAI,IAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACrB,MAAM;;AAEL,UAAI,CAAC,MAAM,CAAC,IAAG,CAAC,CAAC;KAClB;GACF;;;;;;;;;;AAzbG,OAAK,WAkcT,MAAM,GAAA,gBAAC,GAAG,EAAE;AACV,QAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;GACpB;;;;;;;;AApcG,OAAK,WA2cT,IAAI,GAAA,gBAAE;AACJ,QAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;GACjB;;;;;;;;;AA7cG,OAAK,WAqdT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AArdxC,OAAK,WA6dT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AA7dhC,OAAK,WAqeT,SAAS,GAAA,mBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AArerC,OAAK,WA6eT,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;GAAE;;;;;;;;;AA7elC,OAAK,WAqfT,UAAU,GAAA,oBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AArfvC,OAAK,WA6fT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AA7fpC,OAAK,WAqgBT,WAAW,GAAA,qBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AArgBzC,OAAK,WA6gBT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AA7gBpC,OAAK,WAqhBT,WAAW,GAAA,qBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;GAAE;;;;;;;;;AArhB3C,OAAK,WA6hBT,IAAI,GAAA,gBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;GAAE;;;;;;;;;AA7hB5B,OAAK,WAqiBT,OAAO,GAAA,iBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AAriBjC,OAAK,WA6iBT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;AA7iB9B,OAAK,WAqjBT,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;GAAE;;;;;;;;;;;AArjBlC,OAAK,WA+jBT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AA/jBpC,OAAK,WAukBT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;;;AAvkB9B,OAAK,WAilBT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;AAjlB5C,OAAK,WAylBT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;;AAzlB5C,OAAK,WAkmBT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AAlmBhC,OAAK,WA0mBT,eAAe,GAAA,yBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;GAAE;;;;;;;;;;;;;;AA1mBjD,OAAK,WAunBT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;;;;;;;;AAvnB5C,OAAK,WAsoBT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AAtoBxC,OAAK,WA8oBT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AA9oBxC,OAAK,WAspBT,WAAW,GAAA,uBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AAtpB1C,OAAK,WA8pBT,UAAU,GAAA,sBAAG;AACX,WAAO,gBAAM,UAAU,KAAA,MAAE,CAAC;GAC3B;;;;;;;;;;;;;AAhqBG,OAAK,WA4qBT,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,QAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE;AACrC,aAAO,gBAAM,YAAY,KAAA,OAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KAClD;;AAED,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACrD;;;;;;;;;;;AAlrBG,OAAK,WA4rBT,kBAAkB,GAAA,8BAAa;QAAZ,OAAO,yDAAC,EAAE;;AAC3B,QAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE;AACrC,aAAO,gBAAM,kBAAkB,KAAA,OAAC,OAAO,CAAC,CAAC;KAC1C;;AAED,QAAI,KAAK,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;AAE5C,QAAI,OAAO,CAAC,MAAM,CAAC,EAAE;AACnB,WAAK,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;KACjC;AACD,QAAI,OAAO,CAAC,OAAO,CAAC,EAAE;AACpB,WAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACnC;AACD,QAAI,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AAC7C,WAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,CAAC;KAC9D;AACD,QAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACtB,WAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC;AACD,QAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACjB,WAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7B;AACD,QAAI,OAAO,CAAC,KAAK,CAAC,EAAE;AAClB,WAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;KAC/B;;AAED,QAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;AAE7B,QAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;AAE/C,WAAO,KAAK,CAAC;GACd;;;;;;;;;AA3tBG,OAAK,WAmuBT,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,EAAE;AACrC,aAAO,gBAAM,qBAAqB,KAAA,OAAC,KAAK,CAAC,CAAC;KAC3C;;AAED,QAAI,MAAM,EAAE,CAAC,CAAC;;AAEd,QAAI,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;AAE5C,UAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;AAE7C,KAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAClB,WAAO,CAAC,EAAE,EAAE;AACV,UAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpD,YAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;OAClC;KACF;GACF;;SApvBG,KAAK;;;AAkwBX,KAAK,CAAC,QAAQ,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,IAAI,KAAK,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AACxB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;AACxB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;;;;;;AAOlC,KAAK,CAAC,WAAW,GAAG,YAAU;;AAE5B,MAAI;AACF,SAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;GAChC,CAAC,OAAO,CAAC,EAAE;AACV,WAAO,KAAK,CAAC;GACd;;AAED,SAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;CACrC,CAAC;;;AAGF,oBAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC;;;;;;;;;AAS/B,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;;;;;;;;AAQ/B,KAAK,CAAC,mBAAmB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AAC1D,MAAI,KAAK,EAAE,GAAG,CAAC;;AAEf,WAAS,WAAW,CAAC,IAAI,EAAC;;;AAGxB,QAAI;AACF,aAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC,OAAM,CAAC,EAAE;AACT,aAAO,EAAE,CAAC;KACX;GACF;;;AAGD,MAAI,MAAM,CAAC,IAAI,EAAE;AACf,WAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;GACjC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE;;AAErB,OAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAEvC,WAAO,WAAW,YAAU,GAAG,CAAG,CAAC;GACpC;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;;;;;;;;;;AAUF,KAAK,CAAC,mBAAmB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC7D,MAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC;;;;;;AAMF,KAAK,CAAC,mBAAmB,CAAC,OAAO,GAAG,YAAU,EAAE,CAAC;;;AAGjD,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;;;;;;;;AASvD,KAAK,CAAC,gBAAgB,GAAG,YAAU;AACjC,MAAI,MAAM,GAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpC,OAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,AAAC,MAAM,GAAG,CAAC,GAAI,GAAG,CAAC;AAC3C,SAAO,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;CACzC,CAAC;;;;;;;AAOF,KAAK,CAAC,sBAAsB,GAAG,YAAU;AACvC,MAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC/C,OAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,AAAC,YAAY,GAAG,CAAC,GAAI,GAAG,CAAC;AACvD,SAAO,YAAY,KAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;CACrD,CAAC;;;;;;;AAOF,KAAK,CAAC,wBAAwB,GAAG,YAAW;AAC1C,MAAI,kBAAkB,CAAC;;;;;;;AAOvB,oBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjD,MAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D,sBAAkB,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;GAC/E;AACD,MAAI,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5C,sBAAkB,GAAG,KAAK,CAAC;GAC5B;AACD,MAAI,kBAAkB,IAAI,EAAE,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAA,AAAC,EAAE;AACzE,sBAAkB,GAAG,KAAK,CAAC;GAC5B;;AAED,SAAO,kBAAkB,CAAC;CAC3B,CAAC;;;;;;;;AAQF,KAAK,CAAC,MAAM,GAAG,CACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,CACf,CAAC;;;;;;;AAOF,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;;;;;;;AAOpE,KAAK,CAAC,SAAS,CAAC,sBAAsB,CAAC,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;;;;;;;;AAQzE,KAAK,CAAC,SAAS,CAAC,yBAAyB,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;;;;;;;AAO7D,KAAK,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC;;;;;;AAMnD,KAAK,CAAC,SAAS,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;;;;;;;AAOjD,KAAK,CAAC,SAAS,CAAC,0BAA0B,CAAC,GAAG,KAAK,CAAC,wBAAwB,EAAE,CAAC;;;AAG/E,IAAI,WAAW,YAAA,CAAC;AAChB,IAAM,SAAS,GAAG,2CAA2C,CAAC;AAC9D,IAAM,KAAK,GAAG,cAAc,CAAC;;AAE7B,KAAK,CAAC,gBAAgB,GAAG,YAAW;;AAElC,MAAI,OAAO,CAAC,eAAe,IAAI,GAAG,EAAE;AAClC,QAAI,CAAC,WAAW,EAAE;AAChB,iBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;KAChE;;AAED,SAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,IAAI,EAAE;AAChE,UAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,eAAO,OAAO,CAAC;OAChB;AACD,aAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC,CAAC;GACH;;;AAGD,MAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAI,CAAC,WAAW,EAAE;AAChB,iBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;KAChE;;AAED,SAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,IAAI,EAAC;AAC/D,UAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,eAAO,OAAO,CAAC;OAChB;AACD,aAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC,CAAC;GACH;CACF,CAAC;;AAEF,KAAK,CAAC,kBAAkB,GAAG,YAAW;AACpC,MAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;AACzD,OAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/D,aAAW,GAAG,IAAI,CAAC;AACnB,SAAO,CAAC,CAAC;CACV,CAAC;;;AAGF,KAAK,CAAC,gBAAgB,EAAE,CAAC;;AAEzB,KAAK,CAAC,mBAAmB,GAAG,UAAS,EAAE,EAAC;AACtC,MAAI,CAAC,EAAE,EAAE;AAAE,WAAO;GAAE;;AAEpB,MAAI,EAAE,CAAC,UAAU,EAAE;AACjB,MAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;GAC/B;;;AAGD,SAAM,EAAE,CAAC,aAAa,EAAE,EAAE;AACxB,MAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;GAC/B;;;;AAID,IAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;;;;AAI1B,MAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE;;AAEjC,KAAC,YAAW;AACV,UAAI;AACF,UAAE,CAAC,IAAI,EAAE,CAAC;OACX,CAAC,OAAO,CAAC,EAAE;;OAEX;KACF,CAAA,EAAG,CAAC;GACN;CACF,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;qBAC7B,KAAK;;;;;;;;;;;;;;;;;yBCxjCE,cAAc;;;;4BACjB,eAAe;;;;kCACV,2BAA2B;;;;;;;;;;;;;;;IAY7C,WAAW;YAAX,WAAW;;AAEJ,WAFP,WAAW,CAEH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,WAAW;;AAGb,0BAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;;AAK9B,QAAI,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACtF,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnE,YAAI,QAAQ,GAAG,gCAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,YAAI,IAAI,GAAG,uBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAG5C,YAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAC9B,gBAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;AAC3B,gBAAM;SACP;OACF;KACF,MAAM;;;;;AAKL,YAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC;KAC9C;GACF;;SA1BG,WAAW;;;AA6BjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;;;;;;yBCzCJ,cAAc;;;;+BACd,sBAAsB;;;;mCAClB,2BAA2B;;;;yBACjC,gBAAgB;;IAAxB,EAAE;;0BACE,iBAAiB;;;;iCACD,yBAAyB;;6BACzB,oBAAoB;;4BAC7B,mBAAmB;;;;4BACvB,eAAe;;;;8BACb,iBAAiB;;;;;;;;;;;;;IAUhC,IAAI;YAAJ,IAAI;;AAEG,WAFP,IAAI,GAEmC;QAA/B,OAAO,yDAAC,EAAE;QAAE,KAAK,yDAAC,YAAU,EAAE;;0BAFtC,IAAI;;;;AAKN,WAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACpC,0BAAM,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;AAI5B,QAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,UAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB,CAAC,CAAC;AACH,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,YAAW;AAC9B,UAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B,CAAC,CAAC;;AAEH,QAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;;;AAGtC,QAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChC,UAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;;AAGD,QAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,UAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;AAED,QAAI,OAAO,CAAC,cAAc,KAAK,KAAK,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE;AAC1E,UAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACvC;;AAED,QAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,UAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;;AAED,QAAI,CAAC,sBAAsB,EAAE,CAAC;;;AAG9B,QAAI,CAAC,aAAa,EAAE,CAAC;GACtB;;;;;;;;;;;;;;;;;;;AA1CG,MAAI,WAqDR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;;AAEjD,QAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;;AAG3B,QAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACvC;;;;;;;;AA5DG,MAAI,WAmER,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAI,CAAC,oBAAoB,EAAE,CAAC;;AAE5B,QAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;GACnD;;;;;;;;AAxEG,MAAI,WA+ER,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;;;AAG/D,UAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;AAEhD,UAAI,IAAI,CAAC,gBAAgB,KAAK,kBAAkB,EAAE;AAChD,YAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;OAC1B;;AAED,UAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;;AAE3C,UAAI,kBAAkB,KAAK,CAAC,EAAE;AAC5B,YAAI,CAAC,oBAAoB,EAAE,CAAC;OAC7B;KACF,CAAC,EAAE,GAAG,CAAC,CAAC;GACV;;;;;;;;AAhGG,MAAI,WAuGR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;GAClC;;;;;;;;;AAzGG,MAAI,WAiHR,QAAQ,GAAA,oBAAG;AACT,WAAO,mCAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;GAC9B;;;;;;;;;AAnHG,MAAI,WA2HR,eAAe,GAAA,2BAAG;AAChB,WAAO,+BAAgB,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;GACzD;;;;;;;;AA7HG,MAAI,WAoIR,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;GAC3C;;;;;;;;;AAtIG,MAAI,WA8IR,mBAAmB,GAAA,+BAAG;AACpB,QAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;;AAE9B,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;GAChD;;;;;;;;AAnJG,MAAI,WA0JR,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxC,QAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;GACjD;;;;;;;;AA/JG,MAAI,WAsKR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,IAAI,CAAC,mBAAmB,EAAE;AAAE,UAAI,CAAC,uBAAuB,EAAE,CAAC;KAAE;AACjE,QAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAU;AACpD,UAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7E,EAAE,GAAG,CAAC,CAAC;GACT;;;;;;;;AA3KG,MAAI,WAkLR,uBAAuB,GAAA,mCAAG;AACxB,QAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;;;;AAI7C,QAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;GAC7E;;;;;;;;AAxLG,MAAI,WA+LR,OAAO,GAAA,mBAAG;;AAER,QAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAEnC,QAAI,UAAU,EAAE;AACd,UAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;AAC1B,aAAM,CAAC,EAAE,EAAE;AACT,YAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;OAC3C;KACF;;;AAGD,QAAI,IAAI,CAAC,cAAc,EAAE;AAAE,UAAI,CAAC,iBAAiB,EAAE,CAAC;KAAE;;AAEtD,QAAI,IAAI,CAAC,iBAAiB,EAAE;AAAE,UAAI,CAAC,oBAAoB,EAAE,CAAC;KAAE;;AAE5D,yBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;;;;AAhNG,MAAI,WA2NR,KAAK,GAAA,eAAC,GAAG,EAAE;AACT,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,UAAI,GAAG,qCAAsB,EAAE;AAC7B,YAAI,CAAC,MAAM,GAAG,GAAG,CAAC;OACnB,MAAM;AACL,YAAI,CAAC,MAAM,GAAG,8BAAe,GAAG,CAAC,CAAC;OACnC;AACD,UAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB;AACD,WAAO,IAAI,CAAC,MAAM,CAAC;GACpB;;;;;;;;;;;;AArOG,MAAI,WAgPR,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,CAAC,WAAW,EAAE;AACpB,aAAO,mCAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;AACD,WAAO,oCAAiB,CAAC;GAC1B;;;;;;;;AArPG,MAAI,WA4PR,cAAc,GAAA,0BAAG;;AAEf,QAAI,IAAI,CAAC,iBAAiB,EAAE;AAAE,UAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;KAAE;GAC7G;;;;;;;;AA/PG,MAAI,WAsQR,sBAAsB,GAAA,kCAAG;AACvB,QAAI,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAClD,UAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;KACjC,CAAC,CAAC;;AAEH,QAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE/B,QAAI,CAAC,MAAM,EAAE,OAAO;;AAEpB,UAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAC7D,UAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;;AAE1D,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC1C,YAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAChE,YAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;KAC9D,CAAC,CAAC,CAAC;GACL;;;;;;;;AAtRG,MAAI,WA6RR,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,0BAAO,QAAQ,CAAC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,EAAE;AACrD,UAAI,MAAM,GAAG,4BAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9C,YAAM,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,oCAAoC,CAAC;AAC7E,UAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzC,gCAAO,QAAQ,CAAC,GAAG,IAAI,CAAC;KACzB;;AAED,QAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/B,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,QAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;;;AAC/C,UAAI,aAAa,GAAG,SAAhB,aAAa;eAAS,MAAK,OAAO,CAAC,iBAAiB,CAAC;OAAA,CAAC;;AAE1D,mBAAa,EAAE,CAAC;;AAEhB,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,aAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACtD,YAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5B,eAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACpD;OACF;KACF,CAAC,CAAC;;AAEH,UAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;;AAErD,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,YAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;KACzD,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;AA7TG,MAAI,WA2UR,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,sCAAmB,CAAC;AAC3D,WAAO,IAAI,CAAC,WAAW,CAAC;GACzB;;;;;;;;;AA9UG,MAAI,WAsVR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,sCAAmB,CAAC;AACvE,WAAO,IAAI,CAAC,iBAAiB,CAAC;GAC/B;;;;;;;;;;;;;AAzVG,MAAI,WAqWR,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,QAAI,CAAC,IAAI,EAAE;AACT,YAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;;AAED,WAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACvD;;;;;;;;;;;AA3WG,MAAI,WAqXR,kBAAkB,GAAA,4BAAC,OAAO,EAAE;AAC1B,QAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5F,QAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,WAAO;AACL,WAAK,EAAE,KAAK;KACb,CAAC;GACH;;;;;;;;;AA3XG,MAAI,WAmYR,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,QAAI,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;GAC7C;;;;;;;;;;AAtYG,MAAI,WA+YR,SAAS,GAAA,qBAAG,EAAE;;SA/YV,IAAI;;;AAyZV,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;AAE3B,IAAI,iBAAiB,GAAG,SAApB,iBAAiB,CAAY,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAc;MAAZ,OAAO,yDAAC,EAAE;;AACtE,MAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE/B,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEpB,MAAI,KAAK,EAAE;AACT,WAAO,CAAC,KAAK,GAAG,KAAK,CAAC;GACvB;AACD,MAAI,QAAQ,EAAE;AACZ,WAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;GAC7B;AACD,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEpB,MAAI,KAAK,GAAG,iCAAc,OAAO,CAAC,CAAC;AACnC,QAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;AAExB,SAAO,KAAK,CAAC;CACd,CAAC;;AAEF,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC;;;AAG5C,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;AAChD,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,KAAK,CAAC;;;;AAI5C,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC9C,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;;AAEhD,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;;;;;;;;;;AAUhD,IAAI,CAAC,kBAAkB,GAAG,UAAS,KAAK,EAAC;;;;;;;;;AAStC,OAAK,CAAC,qBAAqB,GAAG,UAAS,OAAO,EAAE,KAAK,EAAC;AACrD,QAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;;AAEpC,QAAI,CAAC,QAAQ,EAAE;AACb,cAAQ,GAAG,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;KACtC;;AAED,QAAI,KAAK,KAAK,SAAS,EAAE;;AAEvB,WAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;KACzB;;AAED,YAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;GACpC,CAAC;;;;;;;;;AASD,OAAK,CAAC,mBAAmB,GAAG,UAAS,MAAM,EAAC;AAC3C,QAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;AAC1C,QAAI,GAAG,YAAA,CAAC;;AAER,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,SAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;;AAE1C,UAAI,GAAG,EAAE;AACP,eAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;OACpB;KACF;;AAED,WAAO,IAAI,CAAC;GACb,CAAC;;;;;;;AAOF,OAAK,CAAC,aAAa,GAAG,UAAS,MAAM,EAAC;AACpC,QAAI,EAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;;AAE3C,QAAI,EAAE,EAAE;AACN,aAAO,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KACnC;;AAED,WAAO,EAAE,CAAC;GACX,CAAC;;AAEF,MAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;AAIhD,OAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAW;AACpC,QAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AACvD,aAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACvC;AACD,WAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACpC,CAAC;;;;;;;;;AASD,OAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,EAAC;AAC3C,QAAI,EAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;;AAE3C,QAAI,CAAC,EAAE,EAAE;;;AAGP,UAAI,KAAK,CAAC,mBAAmB,EAAE;AAC7B,UAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC;OAChC,MAAM;AACL,gCAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;OAC7D;KACF;;;AAGD,QAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;;AAE/C,QAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,QAAI,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;;AAE9C,WAAO,IAAI,CAAC;GACb,CAAC;;;;;AAKD,OAAK,CAAC,SAAS,CAAC,oBAAoB,GAAG,YAAU;AAChD,QAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACtD,UAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;KAC/B;GACF,CAAC;CAEH,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;AAE1C,uBAAU,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;qBAC1C,IAAI;;;;;;;;;;;;;;;8BC9kBM,qBAAqB;;IAAlC,OAAO;;8BACE,iBAAiB;;;;;;;;;;;;;;AAYtC,IAAI,gBAAgB,GAAG,SAAnB,gBAAgB,CAAY,IAAI,EAAE;AACpC,MAAI,IAAI,GAAG,IAAI,CAAC;;AAEhB,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAI,GAAG,4BAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAExC,SAAK,IAAI,IAAI,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAC3C,UAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC/C;GACF;;AAED,kBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;AAErD,QAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC,OAAO,CAAC;KACrB;GACF,CAAC,CAAC;;AAEH,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,IAAI,CAAC;GACb;CACF,CAAC;;AAEF,gBAAgB,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE;AACnD,MAAI,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACjC,MAAI,CAAC,GAAG,CAAC,CAAC;AACV,MAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;;AAEpB,MAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,MAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;;AAE3B,MAAI,UAAU,GAAG,SAAb,UAAU,CAAY,CAAC,EAAE;AAC3B,QAAI,EAAE,EAAE,GAAC,CAAC,IAAI,IAAI,CAAA,AAAC,EAAE;AACnB,YAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;AAClC,WAAG,EAAE,eAAW;AACd,iBAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtB;OACF,CAAC,CAAC;KACJ;GACF,CAAC;;AAEF,MAAI,SAAS,GAAG,CAAC,EAAE;AACjB,KAAC,GAAG,SAAS,CAAC;;AAEd,WAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChB,gBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1B;GACF;CACF,CAAC;;AAEF,gBAAgB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,EAAE,EAAE;AACnD,MAAI,MAAM,GAAG,IAAI,CAAC;AAClB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;AACjB,YAAM,GAAG,GAAG,CAAC;AACb,YAAM;KACP;GACF;;AAED,SAAO,MAAM,CAAC;CACf,CAAC;;qBAEa,gBAAgB;;;;;;;;;;;;;;;;;;;yBC7ET,cAAc;;;;0BACnB,iBAAiB;;;;8BACb,sBAAsB;;;;gCACpB,wBAAwB;;;;yBAC3B,gBAAgB;;IAAxB,EAAE;;8BACO,iBAAiB;;;;4BACnB,eAAe;;;;AAElC,IAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,IAAM,SAAS,GAAG,MAAM,CAAC;AACzB,IAAM,OAAO,GAAG;AACd,WAAS,EAAc,WAAW;AAClC,WAAS,EAAc,YAAY;AACnC,OAAK,EAAkB,OAAO;AAC9B,oBAAkB,EAAK,4CAA4C;AACnE,gBAAc,EAAS,0BAA0B;AACjD,uBAAqB,EAAE,YAAY;AACnC,mBAAiB,EAAM,OAAO;AAC9B,QAAM,EAAiB,kCAAkC;AACzD,QAAM,EAAiB,6BAA6B;AACpD,WAAS,EAAc,wDAAwD;CAChF,CAAC;;;;;;;;;;;;IAWI,gBAAgB;YAAhB,gBAAgB;;AAET,WAFP,gBAAgB,CAER,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,gBAAgB;;AAGlB,0BAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;AAE9B,UAAM,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1D,UAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;;;;;AAMhE,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACpC,UAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE;AAC5D,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,eAAO;OACR;;AAED,YAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;AAEjE,UAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzD,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,YAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;OACxC;KACF,CAAC,CAAC,CAAC;GACL;;;;;;;;;;;;;;;;;AA1BG,kBAAgB,WAiCpB,aAAa,GAAA,yBAAG;AACd,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,EAAE;AACxE,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAvCG,kBAAgB,WA+CpB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,wBAAwB;KACpC,CAAC,CAAC;GACJ;;;;;;;;AAnDG,kBAAgB,WA0DpB,YAAY,GAAA,wBAAG;AACb,QAAI,OAAO,0BAAO,QAAQ,CAAC,KAAK,UAAU,EAAE;AAC1C,gCAAO,QAAQ,CAAC,CAAC,aAAa,CAAC,4BAAS,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACvD;GACF;;;;;;;;AA9DG,kBAAgB,WAqEpB,aAAa,GAAA,yBAAG;AACd,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,YAAY,EAAE,CAAC;;AAEpB,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,SAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AAC/B,YAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;OAC5B;KACF;GACF;;;;;;;;;AApFG,kBAAgB,WA4FpB,cAAc,GAAA,wBAAC,KAAK,EAAE;AACpB,QAAI,OAAO,0BAAO,QAAQ,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;AAClE,aAAO;KACR;;AAED,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC;;AAE9D,QAAI,IAAI,GAAG,EAAE,CAAC;AACd,SAAK,IAAI,EAAC,GAAG,CAAC,EAAE,EAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,EAAE,EAAC,EAAE,EAAE;AACnD,UAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;KACnC;;AAED,8BAAO,QAAQ,CAAC,CAAC,aAAa,CAAC,4BAAS,KAAK,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;;AAEvE,QAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACpB,WAAO,CAAC,EAAE,EAAE;AACV,UAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAClC,UAAI,SAAS,CAAC,KAAK,EAAE;AACnB,cAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;OACjD;AACD,UAAI,SAAS,CAAC,WAAW,EAAE;AACzB,sBAAc,CAAC,MAAM,CAAC,UAAU,EACjB,OAAO,EACP,cAAc,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,EACzB,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;OACvD;AACD,UAAI,SAAS,CAAC,eAAe,EAAE;AAC7B,cAAM,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;OACrE;AACD,UAAI,SAAS,CAAC,iBAAiB,EAAE;AAC/B,sBAAc,CAAC,MAAM,CAAC,UAAU,EACjB,iBAAiB,EACjB,cAAc,CAAC,SAAS,CAAC,eAAe,IAAI,MAAM,EACnC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;OAC7D;AACD,UAAI,SAAS,CAAC,WAAW,EAAE;AACzB,YAAI,SAAS,CAAC,aAAa,EAAE;AAC3B,wBAAc,CAAC,MAAM,EACN,iBAAiB,EACjB,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;SAChF,MAAM;AACL,gBAAM,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC;SACtD;OACF;AACD,UAAI,SAAS,CAAC,SAAS,EAAE;AACvB,YAAI,SAAS,CAAC,SAAS,KAAK,YAAY,EAAE;AACxC,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,oBAAkB,QAAQ,sBAAiB,QAAQ,sBAAiB,QAAQ,AAAE,CAAC;SAClH,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC3C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,AAAE,CAAC;SACtG,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;AAC9C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,SAAS,gBAAW,SAAS,oBAAe,QAAQ,iBAAY,QAAQ,AAAE,CAAC;SAC5H,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;AAC5C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,AAAE,CAAC;SAC3H;OACF;AACD,UAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,CAAC,EAAE;AACxD,YAAM,QAAQ,GAAG,0BAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC1D,cAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,AAAC,QAAQ,GAAG,SAAS,CAAC,WAAW,GAAI,IAAI,CAAC;AAClE,cAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,cAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;AAC1B,cAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;OAC7B;AACD,UAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE;AAC9D,YAAI,SAAS,CAAC,UAAU,KAAK,YAAY,EAAE;AACzC,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC;SACpD,MAAM;AACL,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SACpE;OACF;KACF;GACF;;SAlKG,gBAAgB;;;AA8KtB,SAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;AACtC,SAAO,OAAO;;AAEZ,UAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,OAAO,GAAG,GAAG,CAAC;CACjB;;;;;;;;;;;AAWD,SAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;;AAEvC,MAAI;AACF,MAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;GACxB,CAAC,OAAO,CAAC,EAAE,EAAE;CACf;;AAED,uBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;ACpO/B,IAAI,aAAa,GAAG;AAClB,YAAU,EAAE,UAAU;AACtB,UAAQ,EAAE,QAAQ;AAClB,WAAS,EAAE,SAAS;CACrB,CAAC;;;;;;;AAOF,IAAI,aAAa,GAAG;AAClB,aAAW,EAAE,WAAW;AACxB,YAAU,EAAE,UAAU;AACtB,gBAAc,EAAE,cAAc;AAC9B,YAAU,EAAE,UAAU;AACtB,YAAU,EAAE,UAAU;CACvB,CAAC;;QAEO,aAAa,GAAb,aAAa;QAAE,aAAa,GAAb,aAAa;;;;;;;;;;;;;;;;;;;;ACZrC,IAAI,YAAY,GAAG,SAAf,YAAY,CAAY,KAAK,EAAE;AACjC,SAAO;AACL,QAAI,EAAE,KAAK,CAAC,IAAI;AAChB,SAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAQ,EAAE,KAAK,CAAC,QAAQ;AACxB,MAAE,EAAE,KAAK,CAAC,EAAE;AACZ,mCAA+B,EAAE,KAAK,CAAC,+BAA+B;AACtE,QAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAS,GAAG,EAAE;AACrE,aAAO;AACL,iBAAS,EAAE,GAAG,CAAC,SAAS;AACxB,eAAO,EAAE,GAAG,CAAC,OAAO;AACpB,YAAI,EAAE,GAAG,CAAC,IAAI;AACd,UAAE,EAAE,GAAG,CAAC,EAAE;OACX,CAAC;KACH,CAAC;AACF,OAAG,EAAE,KAAK,CAAC,GAAG;GACf,CAAC;CACH,CAAC;;;;;;;;;;AAUF,IAAI,gBAAgB,GAAG,SAAnB,gBAAgB,CAAY,IAAI,EAAE;AACpC,MAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;AAEnD,MAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;WAAK,CAAC,CAAC,KAAK;GAAA,CAAC,CAAC;AACnE,MAAI,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAS,OAAO,EAAE;AAChE,QAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvC,QAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACvB,WAAO,IAAI,CAAC;GACb,CAAC,CAAC;;AAEH,SAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAS,KAAK,EAAE;AAClF,WAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;GACxC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;CACvB,CAAC;;;;;;;;;;AAUF,IAAI,gBAAgB,GAAG,SAAnB,gBAAgB,CAAY,IAAI,EAAE,IAAI,EAAE;AAC1C,MAAI,CAAC,OAAO,CAAC,UAAS,KAAK,EAAE;AAC3B,QAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACtD,QAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAC5B,WAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;eAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;OAAA,CAAC,CAAC;KACrD;GACF,CAAC,CAAC;;AAEH,SAAO,IAAI,CAAC,UAAU,EAAE,CAAC;CAC1B,CAAC;;qBAEa,EAAC,gBAAgB,EAAhB,gBAAgB,EAAE,gBAAgB,EAAhB,gBAAgB,EAAE,YAAY,EAAZ,YAAY,EAAC;;;;;;;;;;;;;;;2BCzEzC,iBAAiB;;;;yBACrB,gBAAgB;;IAAxB,EAAE;;8BACW,qBAAqB;;IAAlC,OAAO;;8BACE,iBAAiB;;;;;;;;;;;;;;;;;AAetC,IAAI,aAAa,GAAG,SAAhB,aAAa,CAAY,MAAM,EAAE;AACnC,MAAI,IAAI,GAAG,IAAI,CAAC;;AAEhB,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAI,GAAG,4BAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAExC,SAAK,IAAI,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE;AACxC,UAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC5C;GACF;;AAED,QAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AACtB,MAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;AAElB,QAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;GACF,CAAC,CAAC;;AAEH,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,QAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;GAC3B;;AAED,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,IAAI,CAAC;GACb;CACF,CAAC;;AAEF,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAY,SAAS,CAAC,CAAC;AAC/D,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC;;;;;;;AAOpD,aAAa,CAAC,SAAS,CAAC,cAAc,GAAG;AACvC,UAAQ,EAAE,QAAQ;AAClB,YAAU,EAAE,UAAU;AACtB,eAAa,EAAE,aAAa;CAC7B,CAAC;;;AAGF,KAAK,IAAI,MAAK,IAAI,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE;AACxD,eAAa,CAAC,SAAS,CAAC,IAAI,GAAG,MAAK,CAAC,GAAG,IAAI,CAAC;CAC9C;;AAED,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,KAAK,EAAE;AAClD,MAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAChC,MAAI,EAAE,EAAE,GAAC,KAAK,IAAI,IAAI,CAAA,AAAC,EAAE;AACvB,UAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,SAAG,EAAE,eAAW;AACd,eAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;OAC5B;KACF,CAAC,CAAC;GACJ;;AAED,OAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC5D,QAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;GACxB,CAAC,CAAC,CAAC;AACJ,MAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAEzB,MAAI,CAAC,OAAO,CAAC;AACX,QAAI,EAAE,UAAU;AAChB,SAAK,EAAE,KAAK;GACb,CAAC,CAAC;CACJ,CAAC;;AAEF,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE;AACtD,MAAI,MAAM,GAAG,IAAI,CAAC;AAClB,MAAI,KAAK,YAAA,CAAC;;AAEV,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,SAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,QAAI,KAAK,KAAK,MAAM,EAAE;AACpB,UAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,YAAM;KACP;GACF;;AAED,MAAI,CAAC,OAAO,CAAC;AACX,QAAI,EAAE,aAAa;AACnB,SAAK,EAAE,KAAK;GACb,CAAC,CAAC;CACJ,CAAC;;AAEF,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,EAAE,EAAE;AAClD,MAAI,MAAM,GAAG,IAAI,CAAC;;AAElB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,QAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,YAAM,GAAG,KAAK,CAAC;AACf,YAAM;KACP;GACF;;AAED,SAAO,MAAM,CAAC;CACf,CAAC;;qBAEa,aAAa;;;;;;;;;;;;;;;;;;;yBCvHN,cAAc;;;;6BACZ,oBAAoB;;IAAhC,MAAM;;yBACE,gBAAgB;;IAAxB,EAAE;;0BACE,iBAAiB;;;;kCACN,uBAAuB;;;;4BAC/B,eAAe;;;;;;;;;;;;;IAU5B,iBAAiB;YAAjB,iBAAiB;;AAEV,WAFP,iBAAiB,CAET,MAAM,EAAE,OAAO,EAAE;0BAFzB,iBAAiB;;AAGnB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,IAAI,EAAE,CAAC;;;AAGZ,QAAI,OAAO,CAAC,wBAAwB,KAAK,SAAS,EAAE;AAClD,UAAI,CAAC,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC;KAC/F;;AAED,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACvF,UAAI,CAAC,YAAY,EAAE,CAAC;AACpB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC,CAAC,CAAC;;AAEJ,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC1F,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACxE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACtE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC1E,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACrE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACtE,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,CAAC,CAAC,CAAC;;AAEJ,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAChH,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;AAE3G,QAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;AAC1C,UAAI,CAAC,eAAe,EAAE,CAAC;KACxB;GACF;;;;;;;;;AA1CG,mBAAiB,WAkDrB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,wCAAwC;AACnD,eAAS,EAAE,0BAA0B,EAAE;KACxC,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;;;;AAvDG,mBAAiB,WAwErB,SAAS,GAAA,qBAAG;AACV,QAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;;AAErB,QAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACpF,QAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACvF,QAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACnF,QAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3F,QAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACnF,QAAM,SAAS,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACvF,QAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACvF,QAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC/F,QAAM,WAAW,GAAG,0BAAO,YAAY,CAAC,CAAC,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;;AAEjH,QAAI,MAAM,GAAG;AACX,yBAAmB,EAAE,SAAS;AAC9B,mBAAa,EAAE,WAAW;AAC1B,qBAAe,EAAE,aAAa;AAC9B,iBAAW,EAAE,QAAQ;AACrB,kBAAY,EAAE,UAAU;AACxB,aAAO,EAAE,OAAO;AAChB,uBAAiB,EAAE,OAAO;AAC1B,mBAAa,EAAE,WAAW;AAC1B,mBAAa,EAAE,WAAW;KAC3B,CAAC;AACF,SAAK,IAAI,KAAI,IAAI,MAAM,EAAE;AACvB,UAAI,MAAM,CAAC,KAAI,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAI,CAAC,KAAK,MAAM,IAAK,KAAI,KAAK,aAAa,IAAI,MAAM,CAAC,KAAI,CAAC,KAAK,IAAI,AAAC,EAAE;AACvG,eAAO,MAAM,CAAC,KAAI,CAAC,CAAC;OACrB;KACF;AACD,WAAO,MAAM,CAAC;GACf;;;;;;;;;;;;;;;;;;AAtGG,mBAAiB,WAuHrB,SAAS,GAAA,mBAAC,MAAM,EAAE;AAChB,QAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;;AAErB,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAChF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAClF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AACtF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACtF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1F,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;;AAE1F,QAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;AAErC,QAAI,WAAW,EAAE;AACf,iBAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACtC;;AAED,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC,CAAC;GAChF;;;;;;;;AA1IG,mBAAiB,WAiJrB,eAAe,GAAA,2BAAG;0BACI,gCAAe,0BAAO,YAAY,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;;QAArF,GAAG;QAAE,MAAM;;AAEhB,QAAI,GAAG,EAAE;AACP,8BAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KAChB;;AAED,QAAI,MAAM,EAAE;AACV,UAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;GACF;;;;;;;;AA3JG,mBAAiB,WAkKrB,YAAY,GAAA,wBAAG;AACb,QAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;AAC3C,aAAO;KACR;;AAED,QAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9B,QAAI;AACF,UAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,kCAAO,YAAY,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;OAChF,MAAM;AACL,kCAAO,YAAY,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;OAC3D;KACF,CAAC,OAAO,CAAC,EAAE,EAAE;GACf;;;;;;;;AA/KG,mBAAiB,WAsLrB,aAAa,GAAA,yBAAG;AACd,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC1D,QAAI,SAAS,EAAE;AACb,eAAS,CAAC,aAAa,EAAE,CAAC;KAC3B;GACF;;SA3LG,iBAAiB;;;AA+LvB,uBAAU,iBAAiB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;;AAEpE,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACtC,MAAI,cAAc,YAAA,CAAC;;AAEnB,MAAI,MAAM,CAAC,eAAe,EAAE;AAC1B,kBAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;GAC5C,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AACzB,kBAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;GAC/D;;AAED,SAAO,cAAc,CAAC,KAAK,CAAC;CAC7B;;AAED,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;AACxC,MAAI,CAAC,KAAK,EAAE;AACV,WAAO;GACR;;AAED,MAAI,CAAC,YAAA,CAAC;AACN,OAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,QAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,YAAM;KACP;GACF;;AAED,QAAM,CAAC,aAAa,GAAG,CAAC,CAAC;CAC1B;;AAED,SAAS,0BAA0B,GAAG;AACpC,MAAI,QAAQ,k/JA+GH,CAAC;;AAER,SAAO,QAAQ,CAAC;CACnB;;qBAEc,iBAAiB;;;;;;;;;;;;;;;gCCjWH,uBAAuB;;;;yBAChC,gBAAgB;;IAAxB,EAAE;;2BACQ,kBAAkB;;IAA5B,IAAI;;8BACS,qBAAqB;;IAAlC,OAAO;;8BACY,oBAAoB;;IAAvC,aAAa;;0BACT,iBAAiB;;;;2BACT,iBAAiB;;;;8BACpB,iBAAiB;;;;4BACnB,eAAe;;;;0BACJ,iBAAiB;;mBAC/B,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBrB,IAAI,SAAS,GAAG,SAAZ,SAAS,GAAwB;MAAZ,OAAO,yDAAC,EAAE;;AACjC,MAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACjB,UAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;GAC7C;;AAED,MAAI,EAAE,GAAG,IAAI,CAAC;AACd,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,MAAE,GAAG,4BAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAEtC,SAAK,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;AACpC,QAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACtC;GACF;;AAED,IAAE,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;;AAExB,MAAI,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,UAAU,CAAC;AACtE,MAAI,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,WAAW,CAAC;AACvE,MAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AACnC,MAAI,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;AAC/D,MAAI,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;AAE7D,MAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;AAC9C,QAAI,GAAG,QAAQ,CAAC;GACjB;;AAED,IAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AACd,IAAE,CAAC,WAAW,GAAG,EAAE,CAAC;;AAEpB,MAAI,IAAI,GAAG,kCAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAI,UAAU,GAAG,kCAAqB,EAAE,CAAC,WAAW,CAAC,CAAC;;AAEtD,MAAI,OAAO,GAAG,KAAK,CAAC;AACpB,MAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,YAAW;AAC7C,QAAI,CAAC,YAAY,CAAC,CAAC;AACnB,QAAI,OAAO,EAAE;AACX,UAAI,CAAC,SAAS,CAAC,CAAC,WAAW,CAAC,CAAC;AAC7B,aAAO,GAAG,KAAK,CAAC;KACjB;GACF,CAAC,CAAC;AACH,MAAI,IAAI,KAAK,UAAU,EAAE;AACvB,MAAE,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;GAC9C;;AAED,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE;AACjC,OAAG,EAAE,eAAW;AACd,aAAO,KAAK,CAAC;KACd;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,QAAQ,CAAC;KACjB;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE;AAC9B,OAAG,EAAE,eAAW;AACd,aAAO,EAAE,CAAC;KACX;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,aAAS,OAAO,EAAE;AACrB,UAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AACzC,eAAO;OACR;AACD,UAAI,GAAG,OAAO,CAAC;AACf,UAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;OAChD;AACD,UAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5B;GACF,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,UAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,eAAO,IAAI,CAAC;OACb;;AAED,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE;AACtC,OAAG,EAAE,eAAW;AACd,UAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,eAAO,IAAI,CAAC;OACb;;AAED,UAAI,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,eAAO,UAAU,CAAC;OACnB;;AAED,UAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAClC,UAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE;AAClD,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB,MAAM,IAAI,GAAG,CAAC,WAAW,CAAC,KAAK,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,GAAG,IAAI,EAAE,EAAE;AACxG,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;OACF;;AAED,aAAO,GAAG,KAAK,CAAC;;AAEhB,UAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7C,eAAO,GAAG,IAAI,CAAC;OAChB,MAAM;AACL,aAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,cAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACpD,mBAAO,GAAG,IAAI,CAAC;WAChB;SACF;OACF;;AAED,UAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,gBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEtC,aAAO,UAAU,CAAC;KACnB;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,MAAI,OAAO,CAAC,GAAG,EAAE;AACf,MAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACrB,aAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;GAC5B,MAAM;AACL,MAAE,CAAC,OAAO,GAAG,IAAI,CAAC;GACnB;;AAED,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,EAAE,CAAC;GACX;CACF,CAAC;;AAEF,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAY,SAAS,CAAC,CAAC;AAC3D,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC;;;;;AAK5C,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG;AACnC,aAAW,EAAE,WAAW;CACzB,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG,EAAE;AACzC,MAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;;AAErC,MAAI,MAAM,EAAE;AACV,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACtB,cAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;OAC1B;KACF;GACF;;AAED,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,MAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACnC,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,SAAS,EAAE;AAClD,MAAI,OAAO,GAAG,KAAK,CAAC;;AAEpB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,QAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,aAAO,GAAG,IAAI,CAAC;KAChB;GACF;;AAED,MAAI,OAAO,EAAE;AACX,QAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GAChC;CACF,CAAC;;;;;AAKF,IAAI,SAAS,GAAG,SAAZ,SAAS,CAAY,UAAU,EAAE,KAAK,EAAE;AAC1C,MAAI,OAAO,0BAAO,QAAQ,CAAC,KAAK,UAAU,EAAE;;AAE1C,WAAO,0BAAO,UAAU,CAAC,YAAW;AAClC,eAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KAC9B,EAAE,EAAE,CAAC,CAAC;GACR;;AAED,MAAI,MAAM,GAAG,IAAI,0BAAO,QAAQ,CAAC,CAAC,QAAQ,CAAC,4BAAS,0BAAO,OAAO,CAAC,EAAE,0BAAO,QAAQ,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;;AAE1G,QAAM,CAAC,OAAO,CAAC,GAAG,UAAS,GAAG,EAAE;AAC9B,SAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GACnB,CAAC;AACF,QAAM,CAAC,gBAAgB,CAAC,GAAG,UAAS,KAAK,EAAE;AACzC,4BAAI,KAAK,CAAC,KAAK,CAAC,CAAC;GAClB,CAAC;;AAEF,QAAM,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,CAAC;AAC5B,QAAM,CAAC,OAAO,CAAC,EAAE,CAAC;CACnB,CAAC;;AAEF,IAAI,SAAS,GAAG,SAAZ,SAAS,CAAY,GAAG,EAAE,KAAK,EAAE;AACnC,MAAI,IAAI,GAAG;AACT,OAAG,EAAE,GAAG;GACT,CAAC;;AAEF,MAAI,WAAW,GAAG,0BAAc,GAAG,CAAC,CAAC;AACrC,MAAI,WAAW,EAAE;AACf,QAAI,CAAC,IAAI,GAAG,WAAW,CAAC;GACzB;;AAED,mBAAI,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAS,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAC;AAC3D,QAAI,GAAG,EAAE;AACP,aAAO,wBAAI,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;KACjC;;AAED,SAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,aAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;GAChC,CAAC,CAAC,CAAC;CACL,CAAC;;AAEF,IAAI,OAAO,GAAG,SAAV,OAAO,CAAY,aAAa,EAAE,SAAS,EAAE;AAC/C,MAAI,IAAI,IAAI,IAAI,EAAE;AAChB,UAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;GACtD;;AAED,MAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;;AAErB,MAAI,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;;AAEzB,MAAI,GAAG,KAAK,CAAC,EAAE;AACb,WAAO,CAAC,CAAC,CAAC;GACX;;AAED,MAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;;AAExB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC5B,KAAC,GAAG,CAAC,CAAC;GACP;;AAED,MAAI,CAAC,IAAI,GAAG,EAAE;AACZ,WAAO,CAAC,CAAC,CAAC;GACX;;AAED,MAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEpD,SAAO,CAAC,GAAG,GAAG,EAAE;AACd,QAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AACpC,aAAO,CAAC,CAAC;KACV;AACD,KAAC,EAAE,CAAC;GACL;AACD,SAAO,CAAC,CAAC,CAAC;CACX,CAAC;;qBAEa,SAAS;;;;;;;;;;;;;8BClTH,iBAAiB;;;;4BACnB,eAAe;;;;AAElC,IAAM,UAAU,GAAG,0BAAO,SAAS,CAAC,SAAS,CAAC;AAC9C,IAAM,gBAAgB,GAAG,AAAC,wBAAwB,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACrE,IAAM,kBAAkB,GAAG,gBAAgB,GAAG,UAAU,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;;;;;;;;;AASjF,IAAM,SAAS,GAAG,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AAC/C,IAAM,OAAO,GAAG,AAAC,OAAO,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AAC3C,IAAM,OAAO,GAAG,AAAC,OAAO,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AAC3C,IAAM,MAAM,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC;;;AAE/C,IAAM,WAAW,GAAG,CAAC,YAAU;AACpC,MAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3C,MAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAAE,WAAO,KAAK,CAAC,CAAC,CAAC,CAAC;GAAE;CAC5C,CAAA,EAAG,CAAC;;;AAEE,IAAM,UAAU,GAAG,AAAC,UAAU,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AACjD,IAAM,eAAe,GAAG,CAAC,YAAW;;;AAGzC,MAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,wCAAwC,CAAC;MACpE,KAAK;MACL,KAAK,CAAC;;AAER,MAAI,CAAC,KAAK,EAAE;AACV,WAAO,IAAI,CAAC;GACb;;AAED,OAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,OAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEzC,MAAI,KAAK,IAAI,KAAK,EAAE;AAClB,WAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GAC9C,MAAM,IAAI,KAAK,EAAE;AAChB,WAAO,KAAK,CAAC;GACd,MAAM;AACL,WAAO,IAAI,CAAC;GACb;CACF,CAAA,EAAG,CAAC;;;AAEE,IAAM,cAAc,GAAG,UAAU,IAAI,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,GAAG,GAAG,CAAC;;AAC3F,IAAM,iBAAiB,GAAG,UAAU,IAAI,eAAe,GAAG,CAAC,IAAI,kBAAkB,GAAG,GAAG,CAAC;;;AAExF,IAAM,UAAU,GAAG,AAAC,UAAU,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AACjD,IAAM,SAAS,GAAG,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;AAC/C,IAAM,MAAM,GAAG,AAAC,YAAY,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;;AAE/C,IAAM,aAAa,GAAG,CAAC,EAAE,AAAC,cAAc,6BAAU,IAAK,0BAAO,aAAa,IAAI,uCAAoB,0BAAO,aAAa,CAAA,AAAC,CAAC;;AACzH,IAAM,yBAAyB,IAAG,gBAAgB,IAAI,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAA,CAAC;;;;;;;;;;;;4BCxDnE,kBAAkB;;;;;;;;;;;;AAW3C,SAAS,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAClD,MAAI,gBAAgB,GAAG,CAAC;MACpB,KAAK;MAAE,GAAG,CAAC;;AAEf,MAAI,CAAC,QAAQ,EAAE;AACb,WAAO,CAAC,CAAC;GACV;;AAED,MAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,YAAQ,GAAG,8BAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;GAClC;;AAED,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACvC,SAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAG,GAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;;AAGxB,QAAI,GAAG,GAAG,QAAQ,EAAE;AAClB,SAAG,GAAG,QAAQ,CAAC;KAChB;;AAED,oBAAgB,IAAI,GAAG,GAAG,KAAK,CAAC;GACjC;;AAED,SAAO,gBAAgB,GAAG,QAAQ,CAAC;CACpC;;;;;;;;;qBCvCe,UAAU;;;;;;;;;;AAQ1B,IAAM,gBAAgB,GAAG;AACvB,KAAG,EAAA,aAAC,GAAG,EAAE,GAAG,EAAE;AACZ,WAAO,GAAG,CAAC,GAAG,CAAC,CAAC;GACjB;AACD,KAAG,EAAA,aAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACnB,OAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACjB,WAAO,IAAI,CAAC;GACb;CACF,CAAC;;;;;;;;;;;;;;;;qBAea,UAAC,MAAM,EAAkB;MAAhB,QAAQ,yDAAC,EAAE;;AACjC,MAAI,OAAO,KAAK,KAAK,UAAU,EAAE;;AAC/B,UAAI,OAAO,GAAG,EAAE,CAAC;;;;AAIjB,YAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,EAAI;AACnC,YAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACxC,iBAAO,CAAC,GAAG,CAAC,GAAG,YAAW;AACxB,+BAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,mBAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;WACrD,CAAC;SACH;OACF,CAAC,CAAC;;AAEH;WAAO,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QAAC;;;;GACnC;AACD,SAAO,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8BC9CoB,iBAAiB;;;;4BACnB,eAAe;;;;sBACX,WAAW;;IAArB,IAAI;;qBACD,UAAU;;;;oBACT,MAAM;;;;;;;;;;;;;AAUhB,SAAS,KAAK,CAAC,EAAE,EAAC;AACvB,MAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzB,MAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;GAClB;;AAED,SAAO,4BAAS,cAAc,CAAC,EAAE,CAAC,CAAC;CACpC;;;;;;;;;;;AAUM,SAAS,QAAQ,GAA6C;MAA5C,OAAO,yDAAC,KAAK;MAAE,UAAU,yDAAC,EAAE;MAAE,UAAU,yDAAC,EAAE;;AAClE,MAAI,EAAE,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;AAEzC,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ,EAAC;AAC/D,QAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;;;;;AAK/B,QAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AAClF,yBAAI,IAAI,oCAE8D,QAAQ,EAAO,GAAG,EAAI,CAAC;AAC7F,QAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAChC,MAAM;AACL,QAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;KACpB;GACF,CAAC,CAAC;;AAEH,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ,EAAC;AAC/D,QAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC/B,MAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;GACjD,CAAC,CAAC;;AAEH,SAAO,EAAE,CAAC;CACX;;;;;;;;;;;AAUM,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAC;AAC1C,MAAI,MAAM,CAAC,UAAU,EAAE;AACrB,UAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;GAC/C,MAAM;AACL,UAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;GAC3B;CACF;;;;;;;;;;AAUD,IAAM,MAAM,GAAG,EAAE,CAAC;;;;;;;;;AASlB,IAAM,QAAQ,GAAG,OAAO,GAAG,AAAC,IAAI,IAAI,EAAE,CAAE,OAAO,EAAE,CAAC;;;;;;;;;;AAS3C,SAAS,SAAS,CAAC,EAAE,EAAE;AAC5B,MAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAEtB,MAAI,CAAC,EAAE,EAAE;AACP,MAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;GACpC;;AAED,MAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AACf,UAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;GACjB;;AAED,SAAO,MAAM,CAAC,EAAE,CAAC,CAAC;CACnB;;;;;;;;;;;AAUM,SAAS,SAAS,CAAC,EAAE,EAAE;AAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAExB,MAAI,CAAC,EAAE,EAAE;AACP,WAAO,KAAK,CAAC;GACd;;AAED,SAAO,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;CACxD;;;;;;;;;;AASM,SAAS,YAAY,CAAC,EAAE,EAAE;AAC/B,MAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAEtB,MAAI,CAAC,EAAE,EAAE;AACP,WAAO;GACR;;;AAGD,SAAO,MAAM,CAAC,EAAE,CAAC,CAAC;;;AAGlB,MAAI;AACF,WAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;GACrB,CAAC,OAAM,CAAC,EAAE;AACT,QAAI,EAAE,CAAC,eAAe,EAAE;AACtB,QAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC9B,MAAM;;AAEL,QAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;KACrB;GACF;CACF;;;;;;;;;;AASM,SAAS,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE;AAChD,SAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE;CACnF;;;;;;;;;;AASM,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;AAC9C,MAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;AACpC,WAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;GAClG;CACF;;;;;;;;;;AASM,SAAS,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;AACpD,MAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;AAAC,WAAO;GAAC;;AAElD,MAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;AAG9C,OAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAI,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AACnC,gBAAU,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;KACxB;GACF;;AAED,SAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC1C;;;;;;;;;;;AAUM,SAAS,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;AAC9C,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ,EAAC;AAC/D,QAAI,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;;AAErC,QAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,KAAK,EAAE;AACjF,QAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC9B,MAAM;AACL,QAAE,CAAC,YAAY,CAAC,QAAQ,EAAG,SAAS,KAAK,IAAI,GAAG,EAAE,GAAG,SAAS,CAAE,CAAC;KAClE;GACF,CAAC,CAAC;CACJ;;;;;;;;;;;;;;AAaM,SAAS,eAAe,CAAC,GAAG,EAAE;AACnC,MAAI,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAEjD,KAAG,GAAG,EAAE,CAAC;;;;;AAKT,eAAa,GAAG,GAAG,GAAC,sCAAsC,GAAC,GAAG,CAAC;;AAE/D,MAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,SAAK,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEvB,SAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,cAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,aAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;;;AAIzB,UAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,GAAC,QAAQ,GAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;;;;AAIxF,eAAO,GAAG,AAAC,OAAO,KAAK,IAAI,GAAI,IAAI,GAAG,KAAK,CAAC;OAC7C;;AAED,SAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;KACzB;GACF;;AAED,SAAO,GAAG,CAAC;CACZ;;;;;;;;;AAQM,SAAS,kBAAkB,GAAG;AACnC,8BAAS,IAAI,CAAC,KAAK,EAAE,CAAC;AACtB,8BAAS,aAAa,GAAG,YAAW;AAClC,WAAO,KAAK,CAAC;GACd,CAAC;CACH;;;;;;;;;AAQM,SAAS,oBAAoB,GAAG;AACrC,8BAAS,aAAa,GAAG,YAAW;AAClC,WAAO,IAAI,CAAC;GACb,CAAC;CACH;;;;;;;;;;;;AAWM,SAAS,cAAc,CAAC,EAAE,EAAE;AACjC,MAAI,GAAG,YAAA,CAAC;;AAER,MAAI,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC,UAAU,EAAE;AAC7C,OAAG,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;GAClC;;AAED,MAAI,CAAC,GAAG,EAAE;AACR,WAAO;AACL,UAAI,EAAE,CAAC;AACP,SAAG,EAAE,CAAC;KACP,CAAC;GACH;;AAED,MAAM,KAAK,GAAG,4BAAS,eAAe,CAAC;AACvC,MAAM,IAAI,GAAG,4BAAS,IAAI,CAAC;;AAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AAC5D,MAAM,UAAU,GAAG,0BAAO,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;AACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC;;AAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,0BAAO,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;AACvD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC;;;AAG5C,SAAO;AACL,QAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACtB,OAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;GACrB,CAAC;CACH;;;;;;;;;;;;;AAYM,SAAS,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE;AAC5C,MAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,MAAI,GAAG,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;AAC7B,MAAI,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC;AAC1B,MAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC;;AAE3B,MAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;AACnB,MAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACpB,MAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;AACxB,MAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;;AAExB,MAAI,KAAK,CAAC,cAAc,EAAE;AACxB,SAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AACtC,SAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;GACvC;;AAED,UAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,AAAC,IAAI,GAAG,KAAK,GAAI,IAAI,CAAA,GAAI,IAAI,CAAC,CAAC,CAAC;AACtE,UAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAA,GAAI,IAAI,CAAC,CAAC,CAAC;;AAE7D,SAAO,QAAQ,CAAC;CACjB;;;;;;;;;;;;;;;;;;;;;;;;;qBCzWqB,UAAU;;IAAnB,GAAG;;sBACO,WAAW;;IAArB,IAAI;;4BACE,eAAe;;;;8BACb,iBAAiB;;;;;;;;;;;;;;;;AAa/B,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAC;AAChC,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GAClD;;AAED,MAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;;AAEvC,MAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;;AAEnD,MAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;AAEvC,MAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AAE7B,MAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAEtB,QAAI,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,IAAI,EAAC;;AAEtC,UAAI,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC1B,WAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAExB,UAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;AAEzC,UAAI,QAAQ,EAAE;;AAEZ,YAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAErC,aAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,cAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE;AACzC,kBAAM;WACP,MAAM;AACL,wBAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;WACzC;SACF;OACF;KACF,CAAC;GACH;;AAED,MAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,UAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACrD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,UAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;GACF;CACF;;;;;;;;;;;AAUM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;;AAElC,MAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,OAAO;;AAEjC,MAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,WAAO;GAAE;;AAE/B,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GACnD;;;AAGD,MAAI,UAAU,GAAG,SAAb,UAAU,CAAY,CAAC,EAAC;AACzB,QAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,kBAAc,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;GACzB,CAAC;;;AAGF,MAAI,CAAC,IAAI,EAAE;AACT,SAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;AAAE,gBAAU,CAAC,CAAC,CAAC,CAAC;KAAA,AAC3C,OAAO;GACR;;AAED,MAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;AAGnC,MAAI,CAAC,QAAQ,EAAE,OAAO;;;AAGtB,MAAI,CAAC,EAAE,EAAE;AACP,cAAU,CAAC,IAAI,CAAC,CAAC;AACjB,WAAO;GACR;;;AAGD,MAAI,EAAE,CAAC,IAAI,EAAE;AACX,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE;AAChC,gBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;OACzB;KACF;GACF;;AAED,gBAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC5B;;;;;;;;;;;;AAWM,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;;;;AAIzC,MAAI,QAAQ,GAAG,AAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAChE,MAAI,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC;;;;;AAKnD,MAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,SAAK,GAAG,EAAE,IAAI,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,EAAE,CAAC;GACrC;;AAED,OAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;;AAGxB,MAAI,QAAQ,CAAC,UAAU,EAAE;AACvB,YAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;GAC7C;;;;AAIC,MAAI,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;AACrE,WAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;;;GAG3C,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAC7C,UAAI,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;AAG7C,UAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;;AAE5B,kBAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAE3B,YAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;AAClD,eAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;SAC5B;;AAED,kBAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;OAC7B;KACF;;;AAGD,SAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAChC;;;;;;;;;;;AAUM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GACnD;AACD,MAAI,IAAI,GAAG,SAAP,IAAI,GAAa;AACnB,OAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,MAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;GAC3B,CAAC;;AAEF,MAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AAChD,IAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACtB;;;;;;;;;;;AAUM,SAAS,QAAQ,CAAC,KAAK,EAAE;;AAE9B,WAAS,UAAU,GAAG;AAAE,WAAO,IAAI,CAAC;GAAE;AACtC,WAAS,WAAW,GAAG;AAAE,WAAO,KAAK,CAAC;GAAE;;;;;;;AAOxC,MAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;AACzC,QAAI,GAAG,GAAG,KAAK,IAAI,0BAAO,KAAK,CAAC;;AAEhC,SAAK,GAAG,EAAE,CAAC;;;;;;AAMX,SAAK,IAAI,GAAG,IAAI,GAAG,EAAE;;;;AAInB,UAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,aAAa,IAC7D,GAAG,KAAK,iBAAiB,IAAI,GAAG,KAAK,iBAAiB,EAAE;;;AAG1D,YAAI,EAAE,GAAG,KAAK,aAAa,IAAI,GAAG,CAAC,cAAc,CAAA,AAAC,EAAE;AAClD,eAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACvB;OACF;KACF;;;AAGD,QAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,WAAK,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,+BAAY,CAAC;KAC7C;;;AAGD,QAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACxB,WAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,GACtD,KAAK,CAAC,SAAS,GACf,KAAK,CAAC,WAAW,CAAC;KACrB;;;AAGD,SAAK,CAAC,cAAc,GAAG,YAAY;AACjC,UAAI,GAAG,CAAC,cAAc,EAAE;AACtB,WAAG,CAAC,cAAc,EAAE,CAAC;OACtB;AACD,WAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,SAAG,CAAC,WAAW,GAAG,KAAK,CAAC;AACxB,WAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC/B,CAAC;;AAEF,SAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;;;AAG/B,SAAK,CAAC,eAAe,GAAG,YAAY;AAClC,UAAI,GAAG,CAAC,eAAe,EAAE;AACvB,WAAG,CAAC,eAAe,EAAE,CAAC;OACvB;AACD,WAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,SAAG,CAAC,YAAY,GAAG,IAAI,CAAC;AACxB,WAAK,CAAC,oBAAoB,GAAG,UAAU,CAAC;KACzC,CAAC;;AAEF,SAAK,CAAC,oBAAoB,GAAG,WAAW,CAAC;;;AAGzC,SAAK,CAAC,wBAAwB,GAAG,YAAY;AAC3C,UAAI,GAAG,CAAC,wBAAwB,EAAE;AAChC,WAAG,CAAC,wBAAwB,EAAE,CAAC;OAChC;AACD,WAAK,CAAC,6BAA6B,GAAG,UAAU,CAAC;AACjD,WAAK,CAAC,eAAe,EAAE,CAAC;KACzB,CAAC;;AAEF,SAAK,CAAC,6BAA6B,GAAG,WAAW,CAAC;;;AAGlD,QAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;AACzB,UAAI,GAAG,GAAG,4BAAS,eAAe;UAAE,IAAI,GAAG,4BAAS,IAAI,CAAC;;AAEzD,WAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IACxB,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA,AAAC,IACtD,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA,AAAC,CAAC;AAC1D,WAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IACxB,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA,AAAC,IACpD,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA,AAAC,CAAC;KACzD;;;AAGD,SAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC;;;;AAI9C,QAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACxB,WAAK,CAAC,MAAM,GAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GACjC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAClB,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,AAAC,AAAC,AAAC,CAAC;KAClC;GACF;;;AAGD,SAAO,KAAK,CAAC;CACd;;;;;;;;;;AAUD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;AAClC,MAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,WAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;AAK3B,QAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,UAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACxD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,UAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;GACF;;;AAGD,MAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACzD,WAAO,IAAI,CAAC,QAAQ,CAAC;AACrB,WAAO,IAAI,CAAC,UAAU,CAAC;AACvB,WAAO,IAAI,CAAC,QAAQ,CAAC;GACtB;;;AAGD,MAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,OAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;GACxB;CACF;;;;;;;;;;;;AAYD,SAAS,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AACxD,OAAK,CAAC,OAAO,CAAC,UAAS,IAAI,EAAE;;AAE3B,MAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;GAC1B,CAAC,CAAC;CACJ;;;;;;;;;;sBCtXuB,WAAW;;;;;;;;;;;;;AAa5B,IAAM,IAAI,GAAG,SAAP,IAAI,CAAY,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE;;AAE7C,MAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AAAE,MAAE,CAAC,IAAI,GAAG,iBAAS,CAAC;GAAE;;;AAGtC,MAAI,GAAG,GAAG,SAAN,GAAG,GAAc;AACnB,WAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;GACrC,CAAC;;;;;;;;AAQF,KAAG,CAAC,IAAI,GAAG,AAAC,GAAG,GAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEjD,SAAO,GAAG,CAAC;CACZ,CAAC;;;;;;;;;;;;;;;;;;;;ACrBF,SAAS,UAAU,CAAC,OAAO;MAAE,KAAK,yDAAC,OAAO;sBAAE;AAC1C,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AACjC,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtC,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACnC,QAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACvC,QAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;;;AAGpC,QAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,QAAQ,EAAE;;;AAG1C,OAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACjB;;;AAGD,KAAC,GAAG,AAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;;;;AAIrC,KAAC,GAAG,CAAC,AAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA,IAAK,CAAC,GAAG,EAAE,GAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA,GAAI,GAAG,CAAC;;;AAGtD,KAAC,GAAG,AAAC,CAAC,GAAG,EAAE,GAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;;AAE3B,WAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GAClB;CAAA;;qBAEc,UAAU;;;;;;;;;;;;;;;ACjCzB,IAAI,KAAK,GAAG,CAAC,CAAC;;;;;;;;;AAQP,SAAS,OAAO,GAAG;AACxB,SAAO,KAAK,EAAE,CAAC;CAChB;;;;;;;;;;;;4BCdkB,eAAe;;;;;;;AAKlC,IAAM,GAAG,GAAG,SAAN,GAAG,GAAa;AACpB,UAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CAC3B,CAAC;;;;;;AAMF,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;AAKjB,GAAG,CAAC,KAAK,GAAG,YAAU;AACpB,UAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CAC9B,CAAC;;;;;AAKF,GAAG,CAAC,IAAI,GAAG,YAAU;AACnB,UAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC7B,CAAC;;;;;;;;;;AAUF,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAC;;AAE3B,MAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;AAKjD,MAAI,IAAI,GAAG,SAAP,IAAI,GAAa,EAAE,CAAC;;AAExB,MAAI,OAAO,GAAG,0BAAO,SAAS,CAAC,IAAI;AACjC,SAAK,EAAE,IAAI;AACX,UAAM,EAAE,IAAI;AACZ,WAAO,EAAE,IAAI;GACd,CAAC;;AAEF,MAAI,IAAI,EAAE;;AAER,aAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAC,GAAG,CAAC,CAAC;GAC3C,MAAM;;AAEL,QAAI,GAAG,KAAK,CAAC;GACd;;;AAGD,KAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;AAG5B,WAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;AAG9B,MAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACvB,WAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;GACzC,MAAM;;AAEL,WAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;GACpC;CACF;;qBAEc,GAAG;;;;;;;;;;qBCnCM,YAAY;;;;uCAxClB,4BAA4B;;;;AAE9C,SAAS,OAAO,CAAC,GAAG,EAAE;AACpB,SAAO,CAAC,CAAC,GAAG,IACP,OAAO,GAAG,KAAK,QAAQ,IACvB,GAAG,CAAC,QAAQ,EAAE,KAAK,iBAAiB,IACpC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;CACjC;;;;;;;AAOD,IAAM,UAAU,GAAG,SAAb,UAAU,CAAY,WAAW,EAAE,MAAM,EAAE;;;AAG/C,MAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACpB,WAAO,MAAM,CAAC;GACf;;;;;;;AAOD,MAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACzB,WAAO,YAAY,CAAC,MAAM,CAAC,CAAC;GAC7B;CACF,CAAC;;;;;;;;;;;;AAWa,SAAS,YAAY,GAAG;;;AAGrC,MAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;;AAIjD,MAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;;AAGjB,MAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAEtB,uCAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;;AAGxB,SAAO,IAAI,CAAC,CAAC,CAAC,CAAC;CAChB;;;;;;;;;;;8BC3DoB,iBAAiB;;;;AAE/B,IAAI,kBAAkB,GAAG,SAArB,kBAAkB,CAAY,SAAS,EAAE;AAClD,MAAI,KAAK,GAAG,4BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,OAAK,CAAC,SAAS,GAAG,SAAS,CAAC;;AAE5B,SAAO,KAAK,CAAC;CACd,CAAC;;;AAEK,IAAI,cAAc,GAAG,SAAjB,cAAc,CAAY,EAAE,EAAE,OAAO,EAAE;AAChD,MAAI,EAAE,CAAC,UAAU,EAAE;AACjB,MAAE,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;GACjC,MAAM;AACL,MAAE,CAAC,WAAW,GAAG,OAAO,CAAC;GAC1B;CACF,CAAC;;;;;;;;;;;qBCfc,UAAU;;;;;;;;;;;;;;;;;;AAenB,SAAS,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAC;AAC1C,MAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,WAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;GACnC,MAAM,IAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;AACnD,WAAO,mBAAmB,EAAE,CAAC;GAC9B;AACD,SAAO,mBAAmB,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5C;;QAE4B,eAAe,GAAnC,gBAAgB;;AAEzB,SAAS,mBAAmB,CAAC,MAAM,EAAC;AAClC,MAAI,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AAC/C,WAAO;AACL,YAAM,EAAE,CAAC;AACT,WAAK,EAAE,iBAAW;AAChB,cAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;OACpD;AACD,SAAG,EAAE,eAAW;AACd,cAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;OACpD;KACF,CAAC;GACH;AACD,SAAO;AACL,UAAM,EAAE,MAAM,CAAC,MAAM;AACrB,SAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC;AAC9C,OAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC;GAC3C,CAAC;CACH;;AAED,SAAS,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAC;AACvD,MAAI,UAAU,KAAK,SAAS,EAAE;AAC5B,uBAAI,IAAI,6BAA0B,MAAM,4DAAsD,CAAC;AAC/F,cAAU,GAAG,CAAC,CAAC;GAChB;AACD,YAAU,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAClD,SAAO,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,CAAC;CACvC;;AAED,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAC;AAC1C,MAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,QAAQ,EAAE;AACjC,UAAM,IAAI,KAAK,0BAAuB,MAAM,kDAA0C,KAAK,yDAAoD,QAAQ,QAAK,CAAC;GAC9J;CACF;;;;;;;;;;;;;;;;AChDD,SAAS,WAAW,CAAC,MAAM,EAAC;AAC1B,SAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACzD;;qBAEc,WAAW;;;;;;;;;;;;;8BCXL,iBAAiB;;;;4BACnB,eAAe;;;;;;;;;;;AAS3B,IAAM,QAAQ,GAAG,SAAX,QAAQ,CAAY,GAAG,EAAE;AACpC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;;AAGrF,MAAI,CAAC,GAAG,4BAAS,aAAa,CAAC,GAAG,CAAC,CAAC;AACpC,GAAC,CAAC,IAAI,GAAG,GAAG,CAAC;;;;;AAKb,MAAI,SAAS,GAAI,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,AAAC,CAAC;AAC1D,MAAI,GAAG,YAAA,CAAC;AACR,MAAI,SAAS,EAAE;AACb,OAAG,GAAG,4BAAS,aAAa,CAAC,KAAK,CAAC,CAAC;AACpC,OAAG,CAAC,SAAS,iBAAe,GAAG,WAAQ,CAAC;AACxC,KAAC,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEnB,OAAG,CAAC,YAAY,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AAC9D,gCAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;GAChC;;;;;AAKD,MAAI,OAAO,GAAG,EAAE,CAAC;AACjB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,WAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GACjC;;;;AAID,MAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AAChC,WAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;GACjD;AACD,MAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACjC,WAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;GAClD;;AAED,MAAI,SAAS,EAAE;AACb,gCAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;GAChC;;AAED,SAAO,OAAO,CAAC;CAChB,CAAC;;;;;;;;;;;;AAWK,IAAM,cAAc,GAAG,SAAjB,cAAc,CAAY,GAAG,EAAC;;AAEzC,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;;AAE9B,QAAI,GAAG,GAAG,4BAAS,aAAa,CAAC,KAAK,CAAC,CAAC;AACxC,OAAG,CAAC,SAAS,iBAAe,GAAG,YAAS,CAAC;AACzC,OAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;GAC3B;;AAED,SAAO,GAAG,CAAC;CACZ,CAAC;;;;;;;;;;AASK,IAAM,gBAAgB,GAAG,SAAnB,gBAAgB,CAAY,IAAI,EAAE;AAC7C,MAAG,OAAO,IAAI,KAAK,QAAQ,EAAC;AAC1B,QAAI,WAAW,GAAG,yEAAyE,CAAC;AAC5F,QAAI,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEvC,QAAI,SAAS,EAAE;AACb,aAAO,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;KACtC;GACF;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;;;;;;;;;;AASK,IAAM,aAAa,GAAG,SAAhB,aAAa,CAAY,GAAG,EAAE;AACzC,MAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC5B,MAAI,MAAM,GAAG,0BAAO,QAAQ,CAAC;;;AAG7B,MAAI,WAAW,GAAG,OAAO,CAAC,QAAQ,KAAK,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;;;;AAIhF,MAAI,WAAW,GAAG,AAAC,WAAW,GAAG,OAAO,CAAC,IAAI,KAAO,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,AAAC,CAAC;;AAEnF,SAAO,WAAW,CAAC;CACpB,CAAC;;;;;;;;;;;;;;;8BCnHmB,iBAAiB;;;;qBACf,SAAS;;IAApB,KAAK;;iCACW,uBAAuB;;IAAvC,UAAU;;yBACA,aAAa;;;;2BACX,gBAAgB;;;;6BAChB,mBAAmB;;IAA/B,MAAM;;sBACC,UAAU;;;;yBACV,cAAc;;;;wCACR,qCAAqC;;;;yBAC1C,eAAe;;IAAvB,EAAE;;iCACQ,wBAAwB;;;;4BAE3B,eAAe;;;;iCACD,wBAAwB;;iCAClC,wBAAwB;;;;0BAC/B,gBAAgB;;;;0BACX,gBAAgB;;IAAzB,GAAG;;8BACU,oBAAoB;;IAAjC,OAAO;;0BACE,gBAAgB;;IAAzB,GAAG;;wBACM,aAAa;;;;uCAChB,4BAA4B;;;;6CACX,qCAAqC;;;;mBACxD,KAAK;;;;;;2BAGH,iBAAiB;;;;2BACjB,iBAAiB;;;;;AAGnC,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;AAC3C,8BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,8BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,8BAAS,aAAa,CAAC,OAAO,CAAC,CAAC;CACjC;;;;;;;;;;;;;;;;;AAiBD,IAAI,OAAO,GAAG,SAAV,OAAO,CAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAC;AACxC,MAAI,GAAG,CAAC;;;;AAIR,MAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;;;AAG1B,QAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzB,QAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;;;AAGD,QAAI,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;;;AAG5B,UAAI,OAAO,EAAE;AACX,gCAAI,IAAI,cAAY,EAAE,4DAAyD,CAAC;OACjF;;AAED,UAAI,KAAK,EAAE;AACT,eAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;OACvC;;AAED,aAAO,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;;;KAGjC,MAAM;AACL,WAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;OACrB;;;GAGF,MAAM;AACL,SAAG,GAAG,EAAE,CAAC;KACV;;;AAGD,MAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;AACzB,UAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;GAC3E;;;;AAID,SAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,wBAAW,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;CACzD,CAAC;;;AAGF,IAAI,KAAK,GAAG,4BAAS,aAAa,CAAC,sBAAsB,CAAC,CAAC;AAC3D,IAAI,CAAC,KAAK,EAAE;AACV,OAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AAC7D,MAAI,IAAI,GAAG,4BAAS,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,YAAU,CAAC,cAAc,CAAC,KAAK,kIAS7B,CAAC;CACJ;;;;AAID,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;;;;;;;AAOnC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;;;;;;;;;;;;;AAahC,OAAO,CAAC,OAAO,GAAG,oBAAO,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;AAS5C,OAAO,CAAC,UAAU,GAAG,YAAW;AAC9B,SAAO,oBAAO,OAAO,CAAC;CACvB,CAAC;;;;;;;;;AASF,OAAO,CAAC,OAAO,GAAG,2CAAuB,oBAAO,OAAO,EAAE;AACvD,KAAG,EAAE,yEAAyE;AAC9E,KAAG,EAAE,+CAA+C;CACrD,CAAC,CAAC;;;;;;;;;;;;;;AAcH,OAAO,CAAC,YAAY,GAAG,uBAAU,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4B9C,OAAO,CAAC,iBAAiB,GAAG,uBAAU,iBAAiB,CAAC;;;;;;;;AAQxD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;;;;;;;;;;AAU1B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC9C,OAAO,CAAC,MAAM,wBAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC1B,OAAO,CAAC,YAAY,wCAAe,CAAC;;;;;;;;;;;;;;;;;AAiBpC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CvB,OAAO,CAAC,MAAM,yBAAS,CAAC;;;;;;;;;;;;;;AAcxB,OAAO,CAAC,WAAW,GAAG,UAAS,IAAI,EAAE,IAAI,EAAC;;;AACxC,MAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAA,CAAE,WAAW,EAAE,CAAC;AACjC,SAAO,qCAAM,OAAO,CAAC,OAAO,CAAC,SAAS,uBAAK,IAAI,IAAG,IAAI,UAAG,CAAC,IAAI,CAAC,CAAC;CACjE,CAAC;;;;;;;AAOF,OAAO,CAAC,GAAG,0BAAM,CAAC;;;;;;;;;;AAUlB,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,gBAAgB,sCAAmB,CAAC;;;;;;;;;;;;AAYtE,OAAO,CAAC,UAAU,iCAAa,CAAC;;;;;;;;;AAShC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;;;;;;;;;AAShC,OAAO,CAAC,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC;;;;;;;AAO1C,OAAO,CAAC,WAAW,2BAAc,CAAC;;;;;;;;;;;;;AAalC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;;;;;;;;;;AAUvB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;AAUzB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;AAWzB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;AAuBjC,OAAO,CAAC,GAAG,mBAAM,CAAC;;;;;;;AAOlB,OAAO,CAAC,SAAS,iCAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AA0B9B,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,EAAE;AACjD,QAAM,CAAC,SAAS,EAAE,EAAE,EAAE,YAAU;AAAE,WAAO,OAAO,CAAC;GAAE,CAAC,CAAC;;;CAGtD,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpE,UAAM,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC;GAC7B;;qBAEc,OAAO", + "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AA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", "file": "generated.js", "sourceRoot": "", "sourcesContent": [ @@ -180,11 +185,16 @@ "var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n", "/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n", "/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n", - "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n", - "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", + "'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n", + "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n", + "'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n", + "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n", - "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", + "var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n", + "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", + "'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n", + "'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n", "module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n", "function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}", "\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n", @@ -244,7 +254,7 @@ "/**\n * @file flash.js\n * VideoJS-SWF - Custom Flash Player with HTML5-ish API\n * https://github.com/zencoder/video-js-swf\n * Not using setupTriggers. Using global onEvent func to distribute events\n */\n\nimport Tech from './tech';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport FlashRtmpDecorator from './flash-rtmp';\nimport Component from '../component';\nimport window from 'global/window';\nimport assign from 'object.assign';\n\nlet navigator = window.navigator;\n/**\n * Flash Media Controller - Wrapper for fallback SWF API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Flash\n */\nclass Flash extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n // Set the source when ready\n if (options.source) {\n this.ready(function(){\n this.setSource(options.source);\n }, true);\n }\n\n // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers\n // This allows resetting the playhead when we catch the reload\n if (options.startTime) {\n this.ready(function(){\n this.load();\n this.play();\n this.currentTime(options.startTime);\n }, true);\n }\n\n // Add global window functions that the swf expects\n // A 4.x workflow we weren't able to solve for in 5.0\n // because of the need to hard code these functions\n // into the swf for security reasons\n window.videojs = window.videojs || {};\n window.videojs.Flash = window.videojs.Flash || {};\n window.videojs.Flash.onReady = Flash.onReady;\n window.videojs.Flash.onEvent = Flash.onEvent;\n window.videojs.Flash.onError = Flash.onError;\n\n this.on('seeked', function() {\n this.lastSeekTarget_ = undefined;\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let options = this.options_;\n\n // If video.js is hosted locally you should also set the location\n // for the hosted swf, which should be relative to the page (not video.js)\n // Otherwise this adds a CDN url.\n // The CDN also auto-adds a swf URL for that specific version.\n if (!options.swf) {\n options.swf = '//vjs.zencdn.net/swf/__SWF_VERSION__/video-js.swf';\n }\n\n // Generate ID for swf object\n let objId = options.techId;\n\n // Merge default flashvars with ones passed in to init\n let flashVars = assign({\n\n // SWF Callback Functions\n 'readyFunction': 'videojs.Flash.onReady',\n 'eventProxyFunction': 'videojs.Flash.onEvent',\n 'errorEventProxyFunction': 'videojs.Flash.onError',\n\n // Player Settings\n 'autoplay': options.autoplay,\n 'preload': options.preload,\n 'loop': options.loop,\n 'muted': options.muted\n\n }, options.flashVars);\n\n // Merge default parames with ones passed in\n let params = assign({\n 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance\n 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading\n }, options.params);\n\n // Merge default attributes with ones passed in\n let attributes = assign({\n 'id': objId,\n 'name': objId, // Both ID and Name needed or swf to identify itself\n 'class': 'vjs-tech'\n }, options.attributes);\n\n this.el_ = Flash.embed(options.swf, flashVars, params, attributes);\n this.el_.tech = this;\n\n return this.el_;\n }\n\n /**\n * Play for flash tech\n *\n * @method play\n */\n play() {\n if (this.ended()) {\n this.setCurrentTime(0);\n }\n this.el_.vjs_play();\n }\n\n /**\n * Pause for flash tech\n *\n * @method pause\n */\n pause() {\n this.el_.vjs_pause();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.currentSrc();\n }\n\n // Setting src through `src` not `setSrc` will be deprecated\n return this.setSrc(src);\n }\n\n /**\n * Set video\n *\n * @param {Object=} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n // Make sure source URL is absolute.\n src = Url.getAbsoluteURL(src);\n this.el_.vjs_src(src);\n\n // Currently the SWF doesn't autoplay if you load a source later.\n // e.g. Load player w/ no source, wait 2s, set src.\n if (this.autoplay()) {\n var tech = this;\n this.setTimeout(function(){ tech.play(); }, 0);\n }\n }\n\n /**\n * Returns true if the tech is currently seeking.\n * @return {boolean} true if seeking\n */\n seeking() {\n return this.lastSeekTarget_ !== undefined;\n }\n\n /**\n * Set current time\n *\n * @param {Number} time Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(time) {\n let seekable = this.seekable();\n if (seekable.length) {\n // clamp to the current seekable range\n time = time > seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n", "/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n", "/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n", + "/**\n * @file tech.js\n * Media Technology Controller - Base class for media playback\n * technology controllers like Flash and HTML5\n */\n\nimport Component from '../component';\nimport TextTrack from '../tracks/text-track';\nimport TextTrackList from '../tracks/text-track-list';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport { bufferedPercent } from '../utils/buffer.js';\nimport MediaError from '../media-error.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Base class for media (HTML5 Video, Flash) controllers\n *\n * @param {Object=} options Options object\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Tech\n */\nclass Tech extends Component {\n\n constructor(options={}, ready=function(){}){\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function() {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function() {\n this.hasStarted_ = false;\n });\n\n this.textTracks_ = options.textTracks;\n\n // Manually track progress in cases where the browser/flash player doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/flash player doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n }\n\n if (!this.featuresNativeTextTracks) {\n this.on('ready', this.emulateTextTracks);\n }\n\n this.initTextTrackListeners();\n\n // Turn on component tap events\n this.emitTapEvents();\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let textTracks = this.textTracks();\n\n if (textTracks) {\n let i = textTracks.length;\n while(i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n error(err) {\n if (err !== undefined) {\n if (err instanceof MediaError) {\n this.error_ = err;\n } else {\n this.error_ = new MediaError(err);\n }\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n", "/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n", "/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n", "/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n", diff --git a/ennstatus/static/js/video.js/dist/video.min.js b/ennstatus/static/js/video.js/dist/video.min.js --- a/ennstatus/static/js/video.js/dist/video.min.js +++ b/ennstatus/static/js/video.js/dist/video.min.js @@ -1,6 +1,6 @@ /** * @license - * Video.js 5.0.0 + * Video.js 5.0.2 * Copyright Brightcove, Inc. * Available under Apache License Version 2.0 * @@ -9,14 +9,14 @@ * Available under Apache License Version 2.0 * */ -!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.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[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:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||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(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?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=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:45,"object-keys":46}],45:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],46:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],48:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],49:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:51,"parse-headers":55}],51:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],52:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":53}],53:[function(a,b){function c(a){var b=d.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=c;var d=Object.prototype.toString},{}],54:[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*$/,"")}},{}],55:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":52,trim:54}],56:[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}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":57,"./component.js":58}],57:[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("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),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]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"global/document":1,"object.assign":43}],58:[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("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["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:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&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_=x["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=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(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 f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},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 a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},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.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),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"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.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.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(){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}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/to-title-case.js":127,"global/window":2,"object.assign":43}],59:[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/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),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"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":58,"./fullscreen-toggle.js":60,"./live-display.js":61,"./mute-toggle.js":62,"./play-toggle.js":63,"./playback-rate-menu/playback-rate-menu-button.js":64,"./progress-control/progress-control.js":69,"./spacer-controls/custom-control-spacer.js":71,"./text-track-controls/captions-button.js":74,"./text-track-controls/chapters-button.js":75,"./text-track-controls/subtitles-button.js":78,"./time-controls/current-time-display.js":81,"./time-controls/duration-display.js":82,"./time-controls/remaining-time-display.js":83,"./time-controls/time-divider.js":84,"./volume-control/volume-control.js":86,"./volume-menu-button.js":88}],60:[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(){e(this,b),a.apply(this,arguments)}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.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":57,"../component.js":58}],61:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.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}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118}],62:[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("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(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()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":57,"../component":58,"../utils/dom.js":118}],63:[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":57,"../component.js":58}],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("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.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 k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["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;da){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}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu-button.js":95,"../../menu/menu.js":97,"../../utils/dom.js":118,"./playback-rate-menu-item.js":65}],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("../../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":58,"../../menu/menu-item.js":96}],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")}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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(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;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118}],67:[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("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/format-time.js":121,"lodash-compat/function/throttle":7}],68:[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/format-time.js"),m=e(l),n=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(){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",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/fn.js":120,"../../utils/format-time.js":121}],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("./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":58,"./mouse-time-display.js":67,"./seek-bar.js":70}],70:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,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){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},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}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"../../utils/format-time.js":121,"./load-progress-bar.js":66,"./play-progress-bar.js":68,"object.assign":43}],71:[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":58,"./spacer.js":72}],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("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(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}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],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("./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","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],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("./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":58,"./caption-settings-menu-item.js":73,"./text-track-button.js":79}],75:[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),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=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;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":58,"../../menu/menu.js":97,"../../utils/dom.js":118,"../../utils/fn.js":120,"../../utils/to-title-case.js":127,"./chapters-track-menu-item.js":76,"./text-track-button.js":79,"./text-track-menu-item.js":80,"global/window":2}],76:[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("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":58,"./text-track-menu-item.js":80}],78:[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":58,"./text-track-button.js":79}],79:[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("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent 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=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],82:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(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_=k.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){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],83:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(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_=k.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=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":58,"../../utils/dom.js":118,"../../utils/format-time.js":121}],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("../../component.js"),h=d(g),i=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-time-control vjs-time-divider",innerHTML:"

    "})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],85:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(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.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){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}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":58,"../../slider/slider.js":102,"../../utils/fn.js":120,"./volume-level.js":87}],86:[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_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?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":58,"./volume-bar.js":85}],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("../../component.js"),h=d(g),i=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-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":58}],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("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}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.vertical=f.inline?!1:!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")})}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.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../menu/menu-button.js":95,"../menu/menu.js":97,"./mute-toggle.js":62,"./volume-control/volume-bar.js":85}],89:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":58,"./utils/dom.js":118}],90:[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}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":119}],91:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=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)},h=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&&(f["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),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":123}],92:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/to-title-case.js":127,"./menu.js":97}],96:[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("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}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)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":57,"../component.js":58,"object.assign":43}],97:[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("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.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_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"../utils/events.js":119,"../utils/fn.js":120}],98:[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), -a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["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=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),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.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);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return 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),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),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 x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(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(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,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=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["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.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),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.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),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(){this.addClass("vjs-waiting"),this.trigger("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.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},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.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["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 this.techGet_("paused")===!1?!1:!0},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,0>a&&(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 c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.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=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?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"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?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"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(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.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},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(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},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 N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;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"]));Z.players={};var $=m["default"].navigator;Z.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")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.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",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":56,"./component.js":58,"./control-bar/control-bar.js":59,"./error-display.js":89,"./fullscreen-api.js":92,"./loading-spinner.js":93,"./media-error.js":94,"./poster-image.js":100,"./tech/html5.js":105,"./tech/loader.js":106,"./tracks/text-track-display.js":109,"./tracks/text-track-list-converter.js":111,"./tracks/text-track-settings.js":113,"./utils/browser.js":115,"./utils/buffer.js":116,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/guid.js":122,"./utils/log.js":123,"./utils/merge-options.js":124,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/to-title-case.js":127,"global/document":1,"global/window":2,"object.assign":43,"safe-json-parse/tuple":48}],99:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.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("./button.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"]},{"./button.js":57,"./component.js":58,"./utils/browser.js":115,"./utils/dom.js":118,"./utils/fn.js":120}],101:[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}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":119,"global/document":1,"global/window":2}],102:[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("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(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 g(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=o["default"]({tabIndex:0},c),d=o["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){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"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||0>a||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=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"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(m["default"],"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.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":58,"../utils/dom.js":118,"global/document":1,"object.assign":43}],103:[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.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(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.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],104:[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=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=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),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["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="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["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=o.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=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":58,"../utils/dom.js":118,"../utils/time-ranges.js":126,"../utils/url.js":128,"./flash-rtmp":103,"./tech":107,"global/window":2,"object.assign":43}],105:[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("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.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;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},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(b){s["default"](b,"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=y["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.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return 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=w["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.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.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(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":58,"../utils/browser.js":115,"../utils/dom.js":118,"../utils/fn.js":120,"../utils/log.js":123,"../utils/merge-options.js":124,"../utils/url.js":128,"./tech.js":107,"global/document":1,"global/window":2,"object.assign":43}],106:[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("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=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;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":115,"global/document":1}],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)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"global/document":1}],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)}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 select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".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=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},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(b){}}},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":58,"../utils/events.js":119,"../utils/fn.js":120,"../utils/log.js":123,"global/window":2,"safe-json-parse/tuple":48}],114:[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}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"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;d>c;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(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":90,"../utils/browser.js":115,"../utils/fn.js":120,"../utils/guid.js":122,"../utils/log.js":123,"../utils/url.js":128,"./text-track-cue-list":108,"./text-track-enums":110,"global/document":1,"global/window":2,xhr:50}],115:[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=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();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?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],116:[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;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":126}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={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){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":123}],118:[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){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){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=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); +!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.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[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:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=a||a>b?i(s,n):r=setTimeout(j,a)}function k(){i(v,r)}function l(){if(m=arguments,p=e(),q=this,s=v&&(r||!w),u===!1)var c=w&&!r;else{n||w||(t=p);var d=u-(p-t),f=0>=d||d>u;f?(n&&(n=clearTimeout(n)),t=p,o=a.apply(q,m)):n||(n=setTimeout(k,d))}return f&&r?r=clearTimeout(r):r||b===u||(r=setTimeout(j,b)),c&&(f=!0,o=a.apply(q,m)),!f||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(f);if(b=0>b?0:+b||0,c===!0){var w=!0;v=!1}else d(c)&&(w=!!c.leading,u="maxWait"in c&&g(+c.maxWait||0,b),v="trailing"in c?!!c.trailing:v);return l.cancel=h,l}var d=a("../lang/isObject"),e=a("../date/now"),f="Expected a function",g=Math.max;b.exports=c},{"../date/now":4,"../lang/isObject":33}],6:[function(a,b){function c(a,b){if("function"!=typeof a)throw new TypeError(d);return b=e(void 0===b?a.length-1:+b||0,0),function(){for(var c=arguments,d=-1,f=e(c.length-b,0),g=Array(f);++d2?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=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],24:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":21,"./isIndex":23}],25:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],26:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:47,"object-keys":49}],47:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],48:[function(a,b){var c="Function.prototype.bind called on incompatible ",d=Array.prototype.slice,e=Object.prototype.toString,f="[object Function]";b.exports=function(a){var b=this;if("function"!=typeof b||e.call(b)!==f)throw new TypeError(c+b);for(var g=d.call(arguments,1),h=function(){if(this instanceof l){var c=b.apply(this,g.concat(d.call(arguments)));return Object(c)===c?c:this}return b.apply(a,g.concat(d.call(arguments)))},i=Math.max(0,b.length-g.length),j=[],k=0;i>k;k++)j.push("$"+k);var l=Function("binder","return function ("+j.join(",")+"){ return binder.apply(this,arguments); }")(h);if(b.prototype){var m=function(){};m.prototype=b.prototype,l.prototype=new m,m.prototype=null}return l}},{}],49:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$console:!0,$frame:!0,$frameElement:!0,$frames:!0,$parent:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)try{if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window||!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],51:[function(a,b){"use strict";var c=a("./implementation"),d=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]}};b.exports=function(){return!Object.assign||d()?c:Object.assign}},{"./implementation":44}],52:[function(a,b){"use strict";var c=a("define-properties"),d=a("./polyfill");b.exports=function(){var a=d();return Object.assign!==a&&c(Object,{assign:a}),a}},{"./polyfill":51,"define-properties":46}],53:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],54:[function(a,b){function c(a){return a.replace(/\n\r?\s*/g,"")}b.exports=function(a){for(var b="",d=0;d0&&(o=setTimeout(function(){n=!0,l.abort("timeout");var a=new Error("XMLHttpRequest timeout");a.code="ETIMEDOUT",i(a)},a.timeout)),l.setRequestHeader)for(m in s)s.hasOwnProperty(m)&&l.setRequestHeader(m,s[m]);else if(a.headers&&!c(a.headers))throw new Error("Headers cannot be set on an XDomainRequest object");return"responseType"in a&&(l.responseType=a.responseType),"beforeSend"in a&&"function"==typeof a.beforeSend&&a.beforeSend(l),l.send(r),l}function e(){}var f=a("global/window"),g=a("once"),h=a("parse-headers");b.exports=d,d.XMLHttpRequest=f.XMLHttpRequest||e,d.XDomainRequest="withCredentials"in new d.XMLHttpRequest?d.XMLHttpRequest:f.XDomainRequest},{"global/window":2,once:56,"parse-headers":60}],56:[function(a,b){function c(a){var b=!1;return function(){return b?void 0:(b=!0,a.apply(this,arguments))}}b.exports=c,c.proto=c(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return c(this)},configurable:!0})})},{}],57:[function(a,b){function c(a,b,c){if(!g(b))throw new TypeError("iterator must be a function");arguments.length<3&&(c=this),"[object Array]"===h.call(a)?d(a,b,c):"string"==typeof a?e(a,b,c):f(a,b,c)}function d(a,b,c){for(var d=0,e=a.length;e>d;d++)i.call(a,d)&&b.call(c,a[d],d,a)}function e(a,b,c){for(var d=0,e=a.length;e>d;d++)b.call(c,a.charAt(d),d,a)}function f(a,b,c){for(var d in a)i.call(a,d)&&b.call(c,a[d],d,a)}var g=a("is-function");b.exports=c;var h=Object.prototype.toString,i=Object.prototype.hasOwnProperty},{"is-function":58}],58:[function(a,b){function c(a){var b=d.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=c;var d=Object.prototype.toString},{}],59:[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*$/,"")}},{}],60:[function(a,b){var c=a("trim"),d=a("for-each"),e=function(a){return"[object Array]"===Object.prototype.toString.call(a)};b.exports=function(a){if(!a)return{};var b={};return d(c(a).split("\n"),function(a){var d=a.indexOf(":"),f=c(a.slice(0,d)).toLowerCase(),g=c(a.slice(d+1));"undefined"==typeof b[f]?b[f]=g:e(b[f])?b[f].push(g):b[f]=[b[f],g]}),b}},{"for-each":57,trim:59}],61:[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}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":62,"./component.js":63}],62:[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("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),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]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];c=s["default"]({className:this.buildCSSClass(),tabIndex:0},c),d=s["default"]({role:"button",type:"button","aria-live":"polite"},d);var e=a.prototype.createEl.call(this,b,c,d);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),e.appendChild(this.controlTextEl_),this.controlText(this.controlText_),e},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick(a))},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"global/document":1,"object.assign":45}],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")}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("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["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:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&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_=x["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=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(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 f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},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 a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions, +a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&a.forEach(function(a){a.call(this)},this),this.trigger("ready")},1)},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.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),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"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.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.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(){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}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/to-title-case.js":132,"global/window":2,"object.assign":45}],64:[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/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),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"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":63,"./fullscreen-toggle.js":65,"./live-display.js":66,"./mute-toggle.js":67,"./play-toggle.js":68,"./playback-rate-menu/playback-rate-menu-button.js":69,"./progress-control/progress-control.js":74,"./spacer-controls/custom-control-spacer.js":76,"./text-track-controls/captions-button.js":79,"./text-track-controls/chapters-button.js":80,"./text-track-controls/subtitles-button.js":83,"./time-controls/current-time-display.js":86,"./time-controls/duration-display.js":87,"./time-controls/remaining-time-display.js":88,"./time-controls/time-divider.js":89,"./volume-control/volume-control.js":91,"./volume-menu-button.js":93}],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.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-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":62,"../component.js":63}],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")}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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateShowing(),this.on(this.player(),"durationchange",this.updateShowing)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.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}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123}],67:[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("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(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()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":62,"../component":63,"../utils/dom.js":123}],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("../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":62,"../component.js":63}],69:[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("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.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 k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["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;da){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}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu-button.js":100,"../../menu/menu.js":102,"../../utils/dom.js":123,"./playback-rate-menu-item.js":70}],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("../../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":63,"../../menu/menu-item.js":101}],71:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(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;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123}],72:[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("../../utils/format-time.js"),o=e(n),p=a("lodash-compat/function/throttle"),q=e(p),r=function(a){function b(c,d){var e=this;f(this,b),a.call(this,c,d),this.update(0,0),c.on("ready",function(){e.on(c.controlBar.progressControl.el(),"mousemove",q["default"](m.bind(e,e.handleMouseMove),25))})}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-mouse-display"})},b.prototype.handleMouseMove=function(a){var b=this.player_.duration(),c=this.calculateDistance(a)*b,d=a.pageX-k.findElPosition(this.el().parentNode).left;this.update(c,d)},b.prototype.update=function(a,b){var c=o["default"](a,this.player_.duration());this.el().style.left=b+"px",this.el().setAttribute("data-current-time",c)},b.prototype.calculateDistance=function(a){return k.getPointerPosition(this.el().parentNode,a).x},b}(i["default"]);i["default"].registerComponent("MouseTimeDisplay",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/format-time.js":126,"lodash-compat/function/throttle":7}],73:[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/format-time.js"),m=e(l),n=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(){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",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/fn.js":125,"../../utils/format-time.js":126}],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("../../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":63,"./mouse-time-display.js":72,"./seek-bar.js":75}],75:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=a("object.assign"),s=(e(r),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder"},{"aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,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){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},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}(i["default"]));s.prototype.options_={children:["loadProgressBar","mouseTimeDisplay","playProgressBar"],barName:"playProgressBar"},s.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",s),c["default"]=s,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"../../utils/format-time.js":126,"./load-progress-bar.js":71,"./play-progress-bar.js":73,"object.assign":45}],76:[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":63,"./spacer.js":77}],77:[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=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(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}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],78:[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","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],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("./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":63,"./caption-settings-menu-item.js":78,"./text-track-button.js":84}],80:[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),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=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;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":63,"../../menu/menu.js":102,"../../utils/dom.js":123,"../../utils/fn.js":125,"../../utils/to-title-case.js":132,"./chapters-track-menu-item.js":81,"./text-track-button.js":84,"./text-track-menu-item.js":85,"global/window":2}],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("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":63,"./text-track-menu-item.js":85}],83:[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":63,"./text-track-button.js":84}],84:[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("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent 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=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],87:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(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_=k.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){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],88:[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/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(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_=k.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=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":63,"../../utils/dom.js":123,"../../utils/format-time.js":126}],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("../../component.js"),h=d(g),i=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-time-control vjs-time-divider",innerHTML:"
    /
    "})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],90:[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("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(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.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){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}(i["default"]));o.prototype.options_={children:["volumeLevel"],barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":63,"../../slider/slider.js":107,"../../utils/fn.js":125,"./volume-level.js":92}],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("../../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_&&c.tech_.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech_.featuresVolumeControl===!1?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":63,"./volume-bar.js":90}],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("../../component.js"),h=d(g),i=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-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":63}],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("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){function d(){c.tech_&&c.tech_.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}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.vertical=f.inline?!1:!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")})}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.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return a.addChild(b),this.volumeBar=b,a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../menu/menu-button.js":100,"../menu/menu.js":102,"./mute-toggle.js":67,"./volume-control/volume-bar.js":90}],94:[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=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":63,"./utils/dom.js":123}],95:[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}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":124}],96:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=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)},h=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&&(f["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),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":128}],97:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["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"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/to-title-case.js":132,"./menu.js":102}],101:[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("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}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)},c),d)},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":62,"../component.js":63,"object.assign":45}],102:[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("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.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_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"../utils/events.js":124,"../utils/fn.js":125}],103:[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),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["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=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),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.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);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return 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),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),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 x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(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(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech_=function(a,b){this.tech_&&this.unloadTech_(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName_=a,this.isReady_=!1;var c=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,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=i["default"].getComponent(a);this.tech_=new d(c),this.tech_.ready(s.bind(this,this.handleTechReady_),!0),P["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.usingNativeControls(this.techGet_("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners_(),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.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech_.dispose(),this.tech_=!1},b.prototype.addTechControlsListeners_=function(){this.removeTechControlsListeners_(),this.on(this.tech_,"mousedown",this.handleTechClick_),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_)},b.prototype.handleTechReady_=function(){this.triggerReady(),this.cache_.volume&&this.techCall_("setVolume",this.cache_.volume),this.handleTechPosterChange_(),this.handleTechDurationChange_(),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart_=function(){this.removeClass("vjs-ended"),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(){this.addClass("vjs-waiting"),this.trigger("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.handleTechClick_=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap_=function(){this.userActive(!this.userActive())},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.tech_&&!this.tech_.isReady_)this.tech_.ready(function(){this[a](b)},!0);else try{this.tech_[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet_=function(a){if(this.tech_&&this.tech_.isReady_)try{return this.tech_[a]()}catch(b){throw void 0===this.tech_[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName_+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName_+" playback technology element.",b),this.tech_.isReady_=!1):x["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 this.techGet_("paused")===!1?!1:!0},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,0>a&&(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 c(){var c=this.techGet_("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.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=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech_.supportsFullScreen()?this.techCall_("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech_.supportsFullScreen()?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"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?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"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(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.textTracks=function(){return this.tech_&&this.tech_.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech_&&this.tech_.remoteTextTracks()},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(a){this.tech_&&this.tech_.removeRemoteTextTrack(a)},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 N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;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"]));Z.players={};var $=m["default"].navigator;Z.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")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData_,Z.prototype.handleLoadedData_,Z.prototype.handleUserActive_,Z.prototype.handleUserInactive_,Z.prototype.handleTimeUpdate_,Z.prototype.handleVolumeChange_,Z.prototype.handleError_,Z.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",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":61,"./component.js":63,"./control-bar/control-bar.js":64,"./error-display.js":94,"./fullscreen-api.js":97,"./loading-spinner.js":98,"./media-error.js":99,"./poster-image.js":105,"./tech/html5.js":110,"./tech/loader.js":111,"./tracks/text-track-display.js":114,"./tracks/text-track-list-converter.js":116,"./tracks/text-track-settings.js":118,"./utils/browser.js":120,"./utils/buffer.js":121,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/guid.js":127,"./utils/log.js":128,"./utils/merge-options.js":129,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/to-title-case.js":132,"global/document":1,"global/window":2,"object.assign":45,"safe-json-parse/tuple":53}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":103}],105:[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("./button.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"]},{"./button.js":62,"./component.js":63,"./utils/browser.js":120,"./utils/dom.js":123,"./utils/fn.js":125}],106:[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}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":124,"global/document":1,"global/window":2}],107:[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("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(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 g(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=o["default"]({tabIndex:0},c),d=o["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){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.trigger("slideractive"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.trigger("sliderinactive"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove), +this.off(m["default"],"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||0>a||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=k.getPointerPosition(this.el_,a);return this.vertical()?b.y:b.x},b.prototype.handleFocus=function(){this.on(m["default"],"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(m["default"],"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.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":63,"../utils/dom.js":123,"global/document":1,"object.assign":45}],108:[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.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(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.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],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)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=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),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["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="//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf");var c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["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=o.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=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":63,"../utils/dom.js":123,"../utils/time-ranges.js":131,"../utils/url.js":133,"./flash-rtmp":108,"./tech":112,"global/window":2,"object.assign":45}],110:[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("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)?this.setSource(e):this.handleLateInit_(this.el_),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.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;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},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(b){s["default"](b,"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=y["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.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return 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=w["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.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.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(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":63,"../utils/browser.js":120,"../utils/dom.js":123,"../utils/fn.js":125,"../utils/log.js":128,"../utils/merge-options.js":129,"../utils/url.js":133,"./tech.js":112,"global/document":1,"global/window":2,"object.assign":45}],111:[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("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=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;gb)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":120,"global/document":1}],114:[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,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={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'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech_&&c.tech_.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"global/document":1}],118:[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 select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".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=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},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(b){}}},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":63,"../utils/events.js":124,"../utils/fn.js":125,"../utils/log.js":128,"global/window":2,"safe-json-parse/tuple":53}],119:[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}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../utils/url.js"),y=a("xhr"),z=e(y),A=function E(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in E.prototype)b[c]=E.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"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;d>c;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(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var B=function F(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){F(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},C=function(a,b){var c={uri:a},d=x.isCrossOrigin(a);d&&(c.cors=d),z["default"](c,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void B(d,b))}))},D=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=A,b.exports=c["default"]},{"../event-target":95,"../utils/browser.js":120,"../utils/fn.js":125,"../utils/guid.js":127,"../utils/log.js":128,"../utils/url.js":133,"./text-track-cue-list":113,"./text-track-enums":115,"global/document":1,"global/window":2,xhr:55}],120:[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=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();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?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],121:[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;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":131}],122:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={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){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":128}],123:[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){return a.raw=b,a}function g(a){return 0===a.indexOf("#")&&(a=a.slice(1)),x["default"].getElementById(a)}function h(){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=x["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var c=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?(D["default"].warn(F["default"](v,a,c)),d.setAttribute(a,c)):d[a]=c}),Object.getOwnPropertyNames(c).forEach(function(a){c[a];d.setAttribute(a,c[a])}),d}function i(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function j(a){var b=a[H];return b||(b=a[H]=B.newGUID()),G[b]||(G[b]={}),G[b]}function k(a){var b=a[H];return b?!!Object.getOwnPropertyNames(G[b]).length:!1}function l(a){var b=a[H];if(b){delete G[b];try{delete a[H]}catch(c){a.removeAttribute?a.removeAttribute(H):a[H]=null}}}function m(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function n(a,b){m(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function o(a,b){if(m(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1); -a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(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?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(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}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":122,"./log.js":123,"global/document":1,"global/window":2,tsml:49}],119:[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;h>g&&!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;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],122:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],123:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],124:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],125:[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=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],126:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(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:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||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=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":123}],127:[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"]},{}],128:[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;hx',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=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],129:[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/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.0",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":124,"./component":58,"./event-target":90,"./extend.js":91,"./player":98,"./plugins.js":99,"./setup":101,"./tech/flash.js":104,"./tech/html5.js":105,"./tracks/text-track.js":114,"./utils/browser.js":115,"./utils/create-deprecation-proxy.js":117,"./utils/dom.js":118,"./utils/events.js":119,"./utils/fn.js":120,"./utils/format-time.js":121,"./utils/log.js":123,"./utils/stylesheet.js":125,"./utils/time-ranges.js":126,"./utils/url.js":128,"global/document":1,"lodash-compat/object/merge":40,"object.assign":43,xhr:50}]},{},[129])(129)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||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(0>a||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?h:void 0}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||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}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(b===!1)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||{}),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=o(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: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(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):null,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)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(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=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;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=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=o(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=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"‎","‏":"‏"," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109]; +a.className=c.join(" ")}}function p(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function q(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?!0:!1),b[e]=f}return b}function r(){x["default"].body.focus(),x["default"].onselectstart=function(){return!1}}function s(){x["default"].onselectstart=function(){return!0}}function t(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=x["default"].documentElement,d=x["default"].body,e=c.clientLeft||d.clientLeft||0,f=z["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=z["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}function u(a,b){var c={},d=t(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}c.__esModule=!0,c.getEl=g,c.createEl=h,c.insertElFirst=i,c.getElData=j,c.hasElData=k,c.removeElData=l,c.hasElClass=m,c.addElClass=n,c.removeElClass=o,c.setElAttributes=p,c.getElAttributes=q,c.blockTextSelection=r,c.unblockTextSelection=s,c.findElPosition=t,c.getPointerPosition=u;var v=f(["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 ","."]),w=a("global/document"),x=e(w),y=a("global/window"),z=e(y),A=a("./guid.js"),B=d(A),C=a("./log.js"),D=e(C),E=a("tsml"),F=e(E),G={},H="vdata"+(new Date).getTime()},{"./guid.js":127,"./log.js":128,"global/document":1,"global/window":2,tsml:54}],124:[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;h>g&&!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;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],127:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],128:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],129:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],130:[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=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],131:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){return Array.isArray(a)?f(a):void 0===a||void 0===b?f():f([[a,b]])}function f(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:g.bind(null,"start",0,a),end:g.bind(null,"end",1,a)}}function g(a,b,c,d){return void 0===d&&(j["default"].warn("DEPRECATED: Function '"+a+"' on 'TimeRanges' called without an index argument."),d=0),h(a,d,c.length-1),c[d][b]}function h(a,b,c){if(0>b||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=e;var i=a("./log.js"),j=d(i);c.createTimeRange=e},{"./log.js":128}],132:[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"]},{}],133:[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;hx',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=i(a),c=h["default"].location,d=":"===b.protocol?c.protocol:b.protocol,e=d+b.host!==c.protocol+c.host;return e};c.isCrossOrigin=l},{"global/document":1,"global/window":2}],134:[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/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("./tracks/text-track.js"),B=f(A),C=b("object.assign"),D=(f(C),b("./utils/time-ranges.js")),E=b("./utils/format-time.js"),F=f(E),G=b("./utils/log.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extend.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("xhr"),V=f(U),W=b("./tech/html5.js"),X=(f(W),b("./tech/flash.js"));f(X)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var Y=function _(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),_.getPlayers()[a])return b&&H["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&_.getPlayers()[a].ready(c),_.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},Z=h["default"].querySelector(".vjs-styles-defaults");if(!Z){Z=l.createStyleElement("vjs-styles-defaults");var $=h["default"].querySelector("head");$.insertBefore(Z,$.firstChild),l.setTextContent(Z,"\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n ")}j.autoSetupTimeout(1,Y),Y.VERSION="5.0.2",Y.options=t["default"].prototype.options_,Y.getPlayers=function(){return t["default"].players},Y.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),Y.getComponent=n["default"].getComponent,Y.registerComponent=n["default"].registerComponent,Y.browser=L,Y.TOUCH_ENABLED=L.TOUCH_ENABLED,Y.extend=P["default"],Y.mergeOptions=x["default"],Y.bind=z.bind,Y.plugin=v["default"],Y.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](Y.options.languages,(c={},c[a]=b,c))[a]},Y.log=H["default"],Y.createTimeRange=Y.createTimeRanges=D.createTimeRanges,Y.formatTime=F["default"],Y.parseUrl=N.parseUrl,Y.isCrossOrigin=N.isCrossOrigin,Y.EventTarget=p["default"],Y.on=r.on,Y.one=r.one,Y.off=r.off,Y.trigger=r.trigger,Y.xhr=V["default"],Y.TextTrack=B["default"],"function"==typeof a&&a.amd?a("videojs",[],function(){return Y}):"object"==typeof d&&"object"==typeof c&&(c.exports=Y),d["default"]=Y,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":129,"./component":63,"./event-target":95,"./extend.js":96,"./player":103,"./plugins.js":104,"./setup":106,"./tech/flash.js":109,"./tech/html5.js":110,"./tracks/text-track.js":119,"./utils/browser.js":120,"./utils/create-deprecation-proxy.js":122,"./utils/dom.js":123,"./utils/events.js":124,"./utils/fn.js":125,"./utils/format-time.js":126,"./utils/log.js":128,"./utils/stylesheet.js":130,"./utils/time-ranges.js":131,"./utils/url.js":133,"global/document":1,"lodash-compat/object/merge":40,"object.assign":45,xhr:55}]},{},[134])(134)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||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(0>a||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?h:void 0}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||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}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(b===!1)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||{}),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=o(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: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(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):null,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)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(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=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;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=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=o(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=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","‎":"‎","‏":"‏"," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109]; j.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},j.prototype.formatStyle=function(a,b){return 0===a?0:a+b},k.prototype=o(j.prototype),k.prototype.constructor=k,l.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}},l.prototype.overlaps=function(a){return this.lefta.left&&this.topa.top},l.prototype.overlapsAny=function(a){for(var b=0;b=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},l.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.lefta.right;case"+y":return this.topa.bottom}},l.prototype.intersectPercentage=function(a){var b=Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left)),c=Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top)),d=b*c;return d/(this.height*this.width)},l.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}},l.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;a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a;var e={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};return e},n.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},n.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};var u=.05,v="sans-serif",w="1.5%";n.processCues=function(a,b,c){function d(a){for(var b=0;b")){i.cue.id=j;continue}case"CUE":try{f(j,i.cue,i.regionList)}catch(m){i.reportOrThrowError(m),i.cue=null,i.state="BADCUE";continue}i.state="CUETEXT";continue;case"CUETEXT":var n=-1!==j.indexOf("-->");if(!j||n&&(l=!0)){i.oncue&&i.oncue(i.cue),i.cue=null,i.state="ID";continue}i.cue.text&&(i.cue.text+="\n"),i.cue.text+=j;continue;case"BADCUE":j||(i.state="ID");continue}}}catch(m){i.reportOrThrowError(m),"CUETEXT"===i.state&&i.cue&&i.oncue&&i.oncue(i.cue),i.cue=null,i.state="INITIAL"===i.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(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=n}(this,this.vttjs||{}); //# sourceMappingURL=video.min.js.map \ No newline at end of file diff --git a/ennstatus/static/js/video.js/dist/video.min.js.map b/ennstatus/static/js/video.js/dist/video.min.js.map --- a/ennstatus/static/js/video.js/dist/video.min.js.map +++ b/ennstatus/static/js/video.js/dist/video.min.js.map @@ -1,1 +1,1 @@ -{"version":3,"file":"video.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"baseProperty","toObject","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","enumPrototypes","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",44,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",45,"hasOwn","ctx","k",46,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",47,"str","callee",48,"SafeParseTuple","reviver","error","json","JSON","parse","err",49,"clean","sa",50,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",51,"called",52,"forEach","list","iterator","context","forEachArray","forEachString","forEachObject","len","string","is-function",53,"alert","confirm","prompt",54,"trim","left","right",55,"arg","split","row","indexOf","toLowerCase","_componentJs2","_interopRequireDefault","_componentJs","_classCallCheck","BigPlayButton","_Button","player","buildCSSClass","__esModule","newObj","default","Constructor","instance","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_component","_objectAssign","Button","_Component","on","handleBlur","createEl","attributes","_objectAssign2","tabIndex","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","_globalDocument2","Fn","bind","handleKeyPress","event","which","preventDefault","handleClick","_interopRequireWildcard","_globalWindow2","_globalWindow","Dom","_utilsDomJs","Component","player_","id_","Guid","newGUID","el_","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","properties","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_utilsToTitleCaseJs2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","one","_this3","_arguments","newFunc","ready","isReady_","triggerReady","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","intervalId","comp","init","subObj","extend","_name2","_spacerControlsCustomControlSpacerJs","ControlBar","className","FullscreenToggle","isFullscreen","controlText","updateShowing","LiveDisplay","contentEl_","aria-live","MuteToggle","update","tech_","addClass","vol","muted","level","toMute","handlePlay","handlePause","PlayToggle","play","pause","_menuMenuJs2","_menuMenuJs","PlaybackRateMenuButton","_MenuButton","updateVisibility","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","updateLabel","PlaybackRateMenuItem","_MenuItem","label","rate","buffered","percentify","time","end","percent","part","width","bufferedEnd","_lodashCompatFunctionThrottle2","_lodashCompatFunctionThrottle","MouseTimeDisplay","controlBar","progressControl","handleMouseMove","duration","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs","updateDataAttr","_mouseTimeDisplayJs","ProgressControl","_Slider","updateARIAAttributes","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","_utilsFormatTimeJs2","SeekBar","videoWasPlaying","stepForward","stepBack","CustomControlSpacer","_Spacer","Spacer","_TextTrackMenuItem","CaptionSettingsMenuItem","_captionSettingsMenuItemJs2","_captionSettingsMenuItemJs","_TextTrackButton","CaptionsButton","threshold","hide","items","kind","kind_","_textTrackMenuItemJs2","_textTrackMenuItemJs","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","ChaptersButton","createItems","tracks","textTracks","createMenu","track","cues","chaptersTrack","contentEl","cue","mi","_utilsFnJs","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_offTextTrackMenuItemJs","TextTrackButton","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","_globalDocument","TextTrackMenuItem","onchange","Event","dispatchEvent","updateContent","DurationDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_sliderSliderJs","_volumeLevelJs","volume","calculateDistance","VolumeBar","VolumeControl","_volumeBarJs","VolumeLevel","_volumeControlVolumeBarJs","VolumeMenuButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","vb","./utils/dom.js",90,"_utilsEventsJs","EventTarget","allowedEvents_","ael","_utilsLog","_utilsLog2","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","message","errorTypes","_buttonJs2","_buttonJs","_utilsToTitleCaseJs","MenuButton","title","buttonPressed_","unpressButton","focus","MenuItem","_selected","Menu","unlockShowing","contentElType","append","_utilsBrowserJs","_utilsLogJs2","_utilsLogJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_controlBarControlBarJs","tagAttributes","getElAttributes","languagesToLower","_utilsMergeOptionsJs2","plugins","getOwnPropertyNames","playerOptionsCopy","isAudio","controls","Player","styleEl_","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","privDimension","_dimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","width_","height_","ratioMultiplier","loadTech_","techName","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","poster","src","cache_","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechAbort_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","addTechControlsListeners_","removeTechControlsListeners_","handleTechClick_","handleTechTouchMove_","handleTechTouchEnd_","hasStarted","_hasStarted","hasStarted_","handleTechTap_","userActive","handleTechTouchStart_","userWasActive","handleStageClick_","handleTechSuspend_","handleTechEmptied_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","techCall_","techGet_","isScrubbing","scrubbing_","seconds","bufferedPercent","_utilsBufferJs","percentAsDecimal","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","exitFullWindow","tech","b","currentTech","sourceList_","currentType_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_mediaErrorJs2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","tagOptions","dataSetup","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","_playerJs","PosterImage","fallbackImg_","setSrc","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","Slider","bar","barName","playerEvent","progress","percentage","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","_api","vjs_setProperty","vjs_getProperty","_tech","_utilsUrlJs","_Tech","setSource","swf","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","setCurrentTime","vjs_pause","lastSeekTarget_","currentSource_","setPoster","_utilsTimeRangesJs","createTimeRange","ranges","enterFullScreen","_tech2","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","onEvent","swfID","eventName","getEl","version","navigator","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","_techJs2","_techJs","Html5","currentSrc","initNetworkState_","handleLateInit_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","clone","cloneNode","createElement","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","paused","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","webkitExitFullScreen","_src","setPreload","autoplay","setAutoplay","setControls","setLoop","defaultMuted","played","removeTrack_","TEST_VID","srclang","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_tracksTextTrackList","Tech","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","script","textTracksChanges","updateDisplay","_tracksTextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document",108,"IS_IE8","prop","TextTrackCueList","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","fontFamily","fontVariant","fontMap","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",110,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_eventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","_safeJsonParseTuple2","localStorage","getItem","removeItem","ttDisplay","safe-json-parse/tuple",114,"_textTrackCueList2","_textTrackCueList","_eventTarget","TextTrack","TextTrackEnum","TextTrackKind","mode","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","addCue","removeCue","removed","parseCues","srcContent","parser","loadTrack","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","webkitVersionMap","exec","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","appleWebkitVersion","bufferedDuration","_timeRangesJs","_logJs","_logJs2","messages","Proxy","warn","defaultBehaviors","_taggedTemplateLiteralLoose","strings","raw","getElementById","propName","_tsml2","_templateObject","parent","getElData","elData","elIdAttr","element","classNames","join","knownBooleans","attrs","attrName","attrVal","onselectstart","getBoundingClientRect","box","top","docEl","clientLeft","scrollLeft","pageXOffset","getPointerPosition","boxH","boxX","pageY","unblockTextSelection","_tsml","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","srcElement","relatedTarget","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","guide","h","floor",122,"_logType","console","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",125,"createStyleElement","createTimeRanges","createTimeRangesObj","getRange","fnName","valueIndex","rangeIndex","parseUrl","href","addToBody","div","details","protocol",129,"stylesheet","_utilsStylesheetJs","_player2","_player","_tracksTextTrackJs","_lodashCompatObjectMerge","_utilsCreateDeprecationProxyJs","_techHtml5Js","getPlayers","setTextContent","addLanguage"],"mappings":"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iB,EAAS60C,aAAA/xC,GAAAwf,MAAAA,oBAMV7R,GAAAuO,EAAA8f,MAAAh8B,OAKD2N,GAAA3N,CAIF,KAAK2N,IAAOA,EAAAwR,SAEV,KAAQ,IAAGne,WAAA,kRAuBbuwC,EAAQS,eAAUrxB,EAAc,qNAkC9BzjB,EAAK60C,WAAA,WACL,MAAKN,GAAA,WAAAljB,wZA2NPrxB,EAAQ+0C,YAAG,SAAAn0C,EAAOqY,gHAsBlBjZ,EAAQ29B,gBAAU39B,EAAAwzC,iBAAc9V,EAAA8V;AhIhYhC;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1HA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.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`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file +{"version":3,"file":"video.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/date/now.js","node_modules/lodash-compat/function/debounce.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/function/throttle.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/hasSymbols.js","node_modules/object.assign/implementation.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/function-bind/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/object.assign/polyfill.js","node_modules/object.assign/shim.js","node_modules/safe-json-parse/tuple.js","node_modules/tsml/tsml.js","node_modules/xhr/index.js","node_modules/xhr/node_modules/once/once.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/for-each/node_modules/is-function/index.js","node_modules/xhr/node_modules/parse-headers/node_modules/trim/index.js","node_modules/xhr/node_modules/parse-headers/parse-headers.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/mouse-time-display.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extend.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"getNative","nativeNow","Date","now","getTime","../internal/getNative",5,"debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject",6,"restParam","start","index","rest","Array","otherArgs",7,"throttle","./debounce",8,"arrayCopy","source","array",9,"arrayEach","iteratee",10,"baseCopy","props","object","key",11,"createBaseFor","baseFor","./createBaseFor",12,"baseForIn","keysIn","../object/keysIn","./baseFor",13,"baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",14,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",15,"baseProperty","toObject","./toObject",16,"bindCallback","argCount","identity","collection","accumulator","other","../utility/identity",17,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",18,"fromRight","keysFunc","iterable",19,"getLength","./baseProperty",20,"isNative","../lang/isNative",21,"isLength","./getLength","./isLength",22,"isHostObject","Object","toString",23,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",24,"type","./isIndex",25,26,27,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",28,"support","unindexedChars","charAt","../support",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","objToString","nativeIsArray","../internal/isLength",31,"isFunction","funcTag","./isObject",32,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",33,34,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",35,"stringTag",36,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","enumPrototypes","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"arrayProto","splice","x","0","y","spliceObjects",42,43,"Symbol","getOwnPropertySymbols","iterator","obj","sym","getOwnPropertyNames","syms","getOwnPropertyDescriptor","descriptor","enumerable","object-keys",44,"bind","canBeObject","hasSymbols","propIsEnumerable","target","objTarget","./hasSymbols","function-bind",45,"defineProperties","getPolyfill","shim","implementation","./implementation","./polyfill","./shim","define-properties",46,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",47,"hasOwn","ctx","k",48,"ERROR_MESSAGE","slice","funcType","that","binder","bound","boundLength","boundArgs","join","Empty",49,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$parent","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",50,"str","callee",51,"assignHasPendingExceptions","assign","preventExtensions","thrower",52,"polyfill",53,"SafeParseTuple","reviver","error","json","JSON","parse","err",54,"clean","sa",55,"isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers",56,"called",57,"forEach","list","context","forEachArray","forEachString","forEachObject","len","string","is-function",58,"alert","confirm","prompt",59,"trim","left","right",60,"arg","split","row","indexOf","toLowerCase","_componentJs2","_interopRequireDefault","_componentJs","_classCallCheck","BigPlayButton","_Button","player","buildCSSClass","__esModule","newObj","default","Constructor","instance","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_component","_objectAssign","Button","_Component","on","handleBlur","createEl","attributes","_objectAssign2","tabIndex","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","_globalDocument2","Fn","handleKeyPress","event","which","preventDefault","handleClick","_interopRequireWildcard","_globalWindow2","_globalWindow","Dom","_utilsDomJs","Component","player_","id_","Guid","newGUID","el_","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","properties","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_utilsToTitleCaseJs2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","one","_this3","_arguments","newFunc","ready","isReady_","triggerReady","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","intervalId","comp","init","subObj","extend","_name2","_spacerControlsCustomControlSpacerJs","ControlBar","className","FullscreenToggle","isFullscreen","controlText","updateShowing","LiveDisplay","contentEl_","aria-live","MuteToggle","update","tech_","addClass","vol","muted","level","toMute","handlePlay","handlePause","PlayToggle","play","pause","_menuMenuJs2","_menuMenuJs","PlaybackRateMenuButton","_MenuButton","updateVisibility","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","updateLabel","PlaybackRateMenuItem","_MenuItem","label","rate","buffered","percentify","time","end","percent","part","width","bufferedEnd","_lodashCompatFunctionThrottle2","_lodashCompatFunctionThrottle","MouseTimeDisplay","controlBar","progressControl","handleMouseMove","duration","position","findElPosition","parentNode","newTime","_utilsFormatTimeJs","updateDataAttr","_mouseTimeDisplayJs","ProgressControl","_Slider","updateARIAAttributes","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","_utilsFormatTimeJs2","SeekBar","videoWasPlaying","stepForward","stepBack","CustomControlSpacer","_Spacer","Spacer","_TextTrackMenuItem","CaptionSettingsMenuItem","_captionSettingsMenuItemJs2","_captionSettingsMenuItemJs","_TextTrackButton","CaptionsButton","threshold","hide","items","kind","kind_","_textTrackMenuItemJs2","_textTrackMenuItemJs","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","ChaptersButton","createItems","tracks","textTracks","createMenu","track","cues","chaptersTrack","contentEl","cue","mi","_utilsFnJs","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_offTextTrackMenuItemJs","TextTrackButton","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","_globalDocument","TextTrackMenuItem","onchange","Event","dispatchEvent","updateContent","DurationDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_sliderSliderJs","_volumeLevelJs","volume","calculateDistance","VolumeBar","VolumeControl","_volumeBarJs","VolumeLevel","_volumeControlVolumeBarJs","VolumeMenuButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","vb","./utils/dom.js",95,"_utilsEventsJs","EventTarget","allowedEvents_","ael","_utilsLog","_utilsLog2","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","message","errorTypes","_buttonJs2","_buttonJs","_utilsToTitleCaseJs","MenuButton","title","buttonPressed_","unpressButton","focus","MenuItem","_selected","Menu","unlockShowing","contentElType","append","_utilsBrowserJs","_utilsLogJs2","_utilsLogJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_controlBarControlBarJs","tagAttributes","getElAttributes","languagesToLower","_utilsMergeOptionsJs2","plugins","playerOptionsCopy","isAudio","controls","Player","styleEl_","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","privDimension","_dimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","width_","height_","ratioMultiplier","loadTech_","techName","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","poster","src","cache_","techComponent","handleTechReady_","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechAbort_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","addTechControlsListeners_","removeTechControlsListeners_","handleTechClick_","handleTechTouchMove_","handleTechTouchEnd_","hasStarted","_hasStarted","hasStarted_","handleTechTap_","userActive","handleTechTouchStart_","userWasActive","handleStageClick_","handleTechSuspend_","handleTechEmptied_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","techCall_","techGet_","isScrubbing","scrubbing_","seconds","bufferedPercent","_utilsBufferJs","percentAsDecimal","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","exitFullWindow","tech","b","currentTech","sourceList_","currentType_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_mediaErrorJs2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","tagOptions","dataSetup","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","_playerJs","PosterImage","fallbackImg_","setSrc","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","Slider","bar","barName","playerEvent","progress","percentage","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","_api","vjs_setProperty","vjs_getProperty","_tech","_utilsUrlJs","_Tech","setSource","swf","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","setCurrentTime","vjs_pause","lastSeekTarget_","currentSource_","setPoster","_utilsTimeRangesJs","createTimeRange","ranges","enterFullScreen","_tech2","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","onEvent","swfID","eventName","getEl","version","navigator","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","_techJs2","_techJs","Html5","currentSrc","initNetworkState_","handleLateInit_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","clone","cloneNode","createElement","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","eventsToTrigger","paused","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","webkitExitFullScreen","_src","setPreload","autoplay","setAutoplay","setControls","setLoop","defaultMuted","played","removeTrack_","TEST_VID","srclang","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_tracksTextTrackList","Tech","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","script","textTracksChanges","updateDisplay","_tracksTextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document",113,"IS_IE8","prop","TextTrackCueList","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","fontFamily","fontVariant","fontMap","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",115,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_eventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","_safeJsonParseTuple2","localStorage","getItem","removeItem","ttDisplay","safe-json-parse/tuple",119,"_textTrackCueList2","_textTrackCueList","_eventTarget","TextTrack","TextTrackEnum","TextTrackKind","mode","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","addCue","removeCue","removed","parseCues","srcContent","parser","loadTrack","crossOrigin","isCrossOrigin","_xhr2","responseBody","O","fromIndex","abs","webkitVersionMap","exec","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","appleWebkitVersion","bufferedDuration","_timeRangesJs","_logJs","_logJs2","messages","Proxy","warn","defaultBehaviors","_taggedTemplateLiteralLoose","strings","raw","getElementById","propName","_tsml2","_templateObject","parent","getElData","elData","elIdAttr","element","classNames","knownBooleans","attrs","attrName","attrVal","onselectstart","getBoundingClientRect","box","top","docEl","clientLeft","scrollLeft","pageXOffset","getPointerPosition","boxH","boxX","pageY","unblockTextSelection","_tsml","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","srcElement","relatedTarget","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","guide","h","floor",127,"_logType","console","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",130,"createStyleElement","createTimeRanges","createTimeRangesObj","getRange","fnName","valueIndex","rangeIndex","parseUrl","href","addToBody","div","details","protocol",134,"stylesheet","_utilsStylesheetJs","_player2","_player","_tracksTextTrackJs","_lodashCompatObjectMerge","_utilsCreateDeprecationProxyJs","_techHtml5Js","getPlayers","setTextContent","addLanguage"],"mappings":"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AAG9f,WAAA,kRAuBbgyC,EAAQS,eAAUnxB,EAAc,qNAkC9BplB,EAAKs2C,WAAA,WACL,MAAKN,GAAA,WAAAjjB,wZA2NP/yB,EAAQw2C,YAAG,SAAA51C,EAAOka,gHAsBlB9a,EAAQq/B,gBAAUr/B,EAAAi1C,iBAAc7V,EAAA6V;ArIhYhC;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrLA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnBA;AACA;AACA;AACA;AACA;AACA;AAC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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n","var isObject = require('../lang/isObject'),\n now = require('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n","/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","var debounce = require('./debounce'),\n isObject = require('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\nvar keys = require('object-keys');\n\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tif (typeof sym === 'string') { return false; }\n\tif (sym instanceof Symbol) { return false; }\n\tobj[sym] = 42;\n\tfor (sym in obj) { return false; }\n\tif (keys(obj).length !== 0) { return false; }\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== 42 || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar bind = require('function-bind');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = require('./hasSymbols')();\nvar toObject = Object;\nvar push = bind.call(Function.call, Array.prototype.push);\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\n\nmodule.exports = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable(source, syms[i])) {\n\t\t\t\t\tpush(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n","'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\ndefineProperties(implementation, {\n\timplementation: implementation,\n\tgetPolyfill: getPolyfill,\n\tshim: shim\n});\n\nmodule.exports = implementation;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\n /* eslint-disable no-unused-vars, no-restricted-syntax */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars, no-restricted-syntax */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n var bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$console: true,\n\t$frame: true,\n\t$frameElement: true,\n\t$frames: true,\n\t$parent: true,\n\t$self: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true,\n\t$window: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\ttry {\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\ttry {\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t} catch (e) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar assignHasPendingExceptions = function () {\n\tif (!Object.assign || !Object.preventExtensions) {\n\t\treturn false;\n\t}\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\tvar thrower = Object.preventExtensions({ 1: 2 });\n\ttry {\n\t\tObject.assign(thrower, 'xy');\n\t} catch (e) {\n\t\treturn thrower[1] === 'y';\n\t}\n};\n\nmodule.exports = function getPolyfill() {\n\treturn !Object.assign || assignHasPendingExceptions() ? implementation : Object.assign;\n};\n","'use strict';\n\nvar define = require('define-properties');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimAssign() {\n\tvar polyfill = getPolyfill();\n\tif (Object.assign !== polyfill) {\n\t\tdefine(Object, { assign: polyfill });\n\t}\n\treturn polyfill;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","function clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}","\"use strict\";\nvar window = require(\"global/window\")\nvar once = require(\"once\")\nvar parseHeaders = require(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n","module.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n","var isFunction = require('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n","module.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n","\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n","var trim = require('trim')\n , forEach = require('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}, attributes={}) {\n props = assign({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = assign({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n let el = super.createEl(tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
    \n *
    Button
    \n *
    \n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // ->
    \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
    myButton
    \n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.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`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech_\n && this.player().tech_['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file mouse-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport throttle from 'lodash-compat/function/throttle';\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\nclass MouseTimeDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update(0, 0);\n\n player.on('ready', () => {\n this.on(player.controlBar.progressControl.el(), 'mousemove', throttle(Fn.bind(this, this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-mouse-display'\n });\n }\n\n handleMouseMove(event) {\n let duration = this.player_.duration();\n let newTime = this.calculateDistance(event) * duration;\n let position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n }\n\n update(newTime, position) {\n let time = formatTime(newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n }\n\n calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n }\n}\n\nComponent.registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexport default MouseTimeDisplay;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\nimport MouseTimeDisplay from './mouse-time-display.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: [\n 'seekBar'\n ]\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\nimport assign from 'object.assign';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: [\n 'loadProgressBar',\n 'mouseTimeDisplay',\n 'playProgressBar'\n ],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl({\n className: this.buildCSSClass(),\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00',\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: `${this.localize('Duration Time')} 0:00`\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: `${this.localize('Remaining Time')} -0:00`,\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
    /
    '\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: [\n 'volumeLevel'\n ],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: [\n 'volumeBar'\n ]\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function(){\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function(){\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vb = new VolumeBar(this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
  • `\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n createEl(type, props, attrs) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech_) { this.tech_.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n }\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n handleTechProgress_() {\n this.trigger('progress');\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n handleTechTap_() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n handleTechTouchMove_() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n handleStageClick_() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n handleTechError_() {\n let error = this.tech_.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n handleTechSuspend_() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n handleTechAbort_() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n handleTechEmptied_() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n handleTechStalled_() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n handleTechLoadedData_() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n handleTechRateChange_() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n handleTechVolumeChange_() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName_} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName_} playback technology element.`, e);\n this.tech_.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall_('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall_('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet_('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet_('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall_('setMuted', muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet_('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet_('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n handleLateInit_(el) {\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n let loadstartFired = false;\n let setLoadstartFired = function() {\n loadstartFired = true;\n };\n this.on('loadstart', setLoadstartFired);\n\n let triggerLoadstart = function() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n this.on('loadedmetadata', triggerLoadstart);\n\n this.ready(function(){\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n let eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function(){\n eventsToTrigger.forEach(function(type){\n this.trigger(type);\n }, this);\n });\n }\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n this.el_.src = src;\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){\n this.el_.load();\n }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n \n \n
    `;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport { isCrossOrigin } from '../utils/url.js';\nimport XHR from 'xhr';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n let opts = {\n uri: src\n };\n\n let crossOrigin = isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n XHR(opts, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\nimport log from './log.js';\nimport tsml from 'tsml';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}, attributes={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n log.warn(tsml`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 ${propName} to ${val}.`);\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\nexport function getPointerPosition(el, event) {\n let position = {};\n let box = findElPosition(el);\n let boxW = el.offsetWidth;\n let boxH = el.offsetHeight;\n\n let boxY = box.top;\n let boxX = box.left;\n let pageY = event.pageY;\n let pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, ((boxY - pageY) + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' &&\n key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","import log from './log.js';\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\nexport function createTimeRanges(start, end){\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexport { createTimeRanges as createTimeRange };\n\nfunction createTimeRangesObj(ranges){\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex){\n if (rangeIndex === undefined) {\n log.warn(`DEPRECATED: Function '${fnName}' on 'TimeRanges' called without an index argument.`);\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex){\n if (index < 0 || index > maxIndex) {\n throw new Error(`Failed to execute '${fnName}' on 'TimeRanges': The index provided (${index}) is greater than or equal to the maximum bound (${maxIndex}).`);\n }\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nexport const isCrossOrigin = function(url) {\n let urlInfo = parseUrl(url);\n let winLoc = window.location;\n\n // IE8 protocol relative urls will return ':' for protocol\n let srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n let crossOrigin = (srcProtocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n return crossOrigin;\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\nimport TextTrack from './tracks/text-track.js';\n\nimport assign from 'object.assign';\nimport { createTimeRanges } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendFn from './extend.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\nimport xhr from 'xhr';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = document.querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n }\n\n .vjs-fluid {\n padding-top: 56.25%\n }\n `);\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = extendFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = xhr;\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = TextTrack;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n"]} \ No newline at end of file diff --git a/ennstatus/static/js/video.js/src/js/tech/tech.js b/ennstatus/static/js/video.js/src/js/tech/tech.js --- a/ennstatus/static/js/video.js/src/js/tech/tech.js +++ b/ennstatus/static/js/video.js/src/js/tech/tech.js @@ -58,7 +58,7 @@ class Tech extends Component { } if (!this.featuresNativeTextTracks) { - this.emulateTextTracks(); + this.on('ready', this.emulateTextTracks); } this.initTextTrackListeners();